]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONGeometryDetElement.h
From Laurent:
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryDetElement.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 // $Id$
5 //
6 // Class AliMUONGeometryDetElement
7 // --------------------------------
8 // The class defines the detection element.
9 //
10 // Author: Ivana Hrivnacova, IPN Orsay
11
12 #ifndef ALI_MUON_GEOMETRY_DET_ELEMENT_H
13 #define ALI_MUON_GEOMETRY_DET_ELEMENT_H
14
15 #include <TObject.h>
16
17 class TGeoCombiTrans;
18
19 class AliMUONGeometryDetElement : public TObject
20 {
21   public:
22     AliMUONGeometryDetElement(Int_t detElemId,
23                               const TString& alignedVolume, 
24                               const TGeoCombiTrans& relTransform);
25     AliMUONGeometryDetElement();
26     virtual ~AliMUONGeometryDetElement();
27
28     // methods
29     void Global2Local(
30                  Float_t xg, Float_t yg, Float_t zg, 
31                  Float_t& xl, Float_t& yl, Float_t& zl) const;
32     void Global2Local(
33                  Double_t xg, Double_t yg, Double_t zg, 
34                  Double_t& xl, Double_t& yl, Double_t& zl) const;
35
36     void Local2Global(
37                  Float_t xl, Float_t yl, Float_t zl, 
38                  Float_t& xg, Float_t& yg, Float_t& zg) const;
39     void Local2Global(
40                  Double_t xl, Double_t yl, Double_t zl, 
41                  Double_t& xg, Double_t& yg, Double_t& zg) const;
42     void PrintLocalTransform() const;
43     void PrintGlobalTransform() const;
44
45     // set methods
46     void SetGlobalTransformation(const TGeoCombiTrans& transform);
47     
48     // get methods
49     Int_t  GetId() const;
50     const TString&        GetAlignedVolume() const;
51     const TGeoCombiTrans* GetLocalTransformation() const;
52     const TGeoCombiTrans* GetGlobalTransformation() const;
53
54   protected:
55     AliMUONGeometryDetElement(const AliMUONGeometryDetElement& rhs);
56
57     // operators  
58     AliMUONGeometryDetElement& operator = (const AliMUONGeometryDetElement& rhs);
59   
60   private:
61     // methods
62     void PrintTransform(const TGeoCombiTrans* transform) const;
63   
64     // data members
65     TString          fAlignedVolume; // the name of aligned volume or envelope
66                                       // representing this detection element
67     TGeoCombiTrans*  fLocalTransformation;  // the transformation wrt module
68     TGeoCombiTrans*  fGlobalTransformation; // the transformation wrt world
69
70   ClassDef(AliMUONGeometryDetElement,1) // MUON transformations store
71 };
72
73 // inline functions
74
75 inline Int_t AliMUONGeometryDetElement::GetId() const
76 { return GetUniqueID(); }
77
78 inline const TString& AliMUONGeometryDetElement::GetAlignedVolume() const
79 { return fAlignedVolume; }
80
81 inline const TGeoCombiTrans* 
82 AliMUONGeometryDetElement::GetLocalTransformation() const
83 { return fLocalTransformation; }
84
85 inline const TGeoCombiTrans* 
86 AliMUONGeometryDetElement::GetGlobalTransformation() const
87 { return fGlobalTransformation; }
88
89 #endif //ALI_MUON_GEOMETRY_DET_ELEMENT_H