1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
7 /// \class AliMUONGeometryDetElement
8 /// \brief Class for storing detection element transformations
10 /// \author Ivana Hrivnacova, IPN Orsay
12 #ifndef ALI_MUON_GEOMETRY_DET_ELEMENT_H
13 #define ALI_MUON_GEOMETRY_DET_ELEMENT_H
20 class AliMUONGeometryDetElement : public TObject
23 AliMUONGeometryDetElement(Int_t detElemId,
24 const TString& volumePath);
25 AliMUONGeometryDetElement();
26 virtual ~AliMUONGeometryDetElement();
29 static TString GetDENamePrefix();
33 Float_t xg, Float_t yg, Float_t zg,
34 Float_t& xl, Float_t& yl, Float_t& zl) const;
36 Double_t xg, Double_t yg, Double_t zg,
37 Double_t& xl, Double_t& yl, Double_t& zl) const;
40 Float_t xl, Float_t yl, Float_t zl,
41 Float_t& xg, Float_t& yg, Float_t& zg) const;
43 Double_t xl, Double_t yl, Double_t zl,
44 Double_t& xg, Double_t& yg, Double_t& zg) const;
45 void PrintLocalTransform() const;
46 void PrintGlobalTransform() const;
49 void SetLocalTransformation(const TGeoHMatrix& transform);
50 void SetGlobalTransformation(const TGeoHMatrix& transform);
51 void SetVolumePath(const TString& volumePath);
55 TString GetDEName() const;
56 TString GetVolumePath() const;
57 TString GetVolumeName() const;
58 Int_t GetVolumeCopyNo() const;
59 const TGeoHMatrix* GetLocalTransformation() const;
60 const TGeoHMatrix* GetGlobalTransformation() const;
64 AliMUONGeometryDetElement(const AliMUONGeometryDetElement& rhs);
66 AliMUONGeometryDetElement& operator = (const AliMUONGeometryDetElement& rhs);
70 void PrintTransform(const TGeoHMatrix* transform) const;
72 // static data members
73 static const TString fgkDENamePrefix; ///< Geometry module name prefix
76 TString fDEName; ///< detection element name
77 TString fVolumePath; ///< \brief the full path of aligned volume
78 /// or envelope in geometry
79 TGeoHMatrix* fLocalTransformation; ///< the transformation wrt module
80 TGeoHMatrix* fGlobalTransformation; ///< the transformation wrt world
82 ClassDef(AliMUONGeometryDetElement,2) // MUON det element transformations
87 /// Return module name prefix
88 inline TString AliMUONGeometryDetElement::GetDENamePrefix()
89 { return fgkDENamePrefix; }
91 /// Set the full path of the aligned volume or envelope in geometry
92 inline void AliMUONGeometryDetElement::SetVolumePath(const TString& volumePath)
93 { fVolumePath = volumePath; }
95 /// Return detection element ID
96 inline Int_t AliMUONGeometryDetElement::GetId() const
97 { return GetUniqueID(); }
99 /// Return detection element ID
100 inline TString AliMUONGeometryDetElement::GetDEName() const
103 /// Return the full path of the aligned volume or envelope in geometry
104 inline TString AliMUONGeometryDetElement::GetVolumePath() const
105 { return fVolumePath; }
107 /// Return the detection element transformation wrt module
108 inline const TGeoHMatrix*
109 AliMUONGeometryDetElement::GetLocalTransformation() const
110 { return fLocalTransformation; }
112 /// Return the detection element transformation wrt world
113 inline const TGeoHMatrix*
114 AliMUONGeometryDetElement::GetGlobalTransformation() const
115 { return fGlobalTransformation; }
117 #endif //ALI_MUON_GEOMETRY_DET_ELEMENT_H