1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // Revision of includes 07/05/2004
8 /// \class AliMUONGeometryModuleTransformer
9 /// \brief Geometry transformer for a detector module
11 /// Class for definition of the trasformation for adetector module
12 /// and its detection elements
14 /// \author Ivana Hrivnacova, IPN Orsay
16 #ifndef ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H
17 #define ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H
22 class AliMUONGeometryDetElement;
23 class AliMUONGeometryStore;
25 class TGeoTranslation;
31 class AliMUONGeometryModuleTransformer : public TObject
34 AliMUONGeometryModuleTransformer(Int_t moduleId);
35 AliMUONGeometryModuleTransformer();
36 virtual ~AliMUONGeometryModuleTransformer();
39 void Global2Local(Int_t detElemId,
40 Float_t xg, Float_t yg, Float_t zg,
41 Float_t& xl, Float_t& yl, Float_t& zl) const;
42 void Global2Local(Int_t detElemId,
43 Double_t xg, Double_t yg, Double_t zg,
44 Double_t& xl, Double_t& yl, Double_t& zl) const;
46 void Local2Global(Int_t detElemId,
47 Float_t xl, Float_t yl, Float_t zl,
48 Float_t& xg, Float_t& yg, Float_t& zg) const;
49 void Local2Global(Int_t detElemId,
50 Double_t xl, Double_t yl, Double_t zl,
51 Double_t& xg, Double_t& yg, Double_t& zg) const;
54 void SetTransformation(const TGeoHMatrix& transform);
55 void SetVolumePath(const TString& volumePath);
58 Int_t GetModuleId() const;
59 TString GetVolumePath() const;
60 TString GetVolumeName() const;
61 TString GetMotherVolumeName() const;
63 const TGeoHMatrix* GetTransformation() const;
65 AliMUONGeometryStore* GetDetElementStore() const;
66 AliMUONGeometryDetElement* GetDetElement(
67 Int_t detElemId, Bool_t warn = true) const;
70 AliMUONGeometryModuleTransformer(const AliMUONGeometryModuleTransformer& rhs);
71 AliMUONGeometryModuleTransformer&
72 operator = (const AliMUONGeometryModuleTransformer& rhs);
76 Int_t fModuleId; ///< the module Id
77 TString fVolumePath; ///< \brief the full path of aligned module volume
78 /// or envelope in geometry
79 TGeoHMatrix* fTransformation;///< \brief the module transformation wrt to top
81 AliMUONGeometryStore* fDetElements; ///< detection elements
83 ClassDef(AliMUONGeometryModuleTransformer,3) // MUON geometry module class
88 /// Set the full path of aligned module volume or envelope in geometry
90 AliMUONGeometryModuleTransformer::SetVolumePath(const TString& volumePath)
91 { fVolumePath = volumePath; }
95 AliMUONGeometryModuleTransformer::GetModuleId() const
98 /// Return the full path of aligned module volume or envelope in geometry
100 AliMUONGeometryModuleTransformer::GetVolumePath() const
101 { return fVolumePath; }
103 /// Return the module transformation wrt to the top volume (world)
104 inline const TGeoHMatrix*
105 AliMUONGeometryModuleTransformer::GetTransformation() const
106 { return fTransformation; }
108 /// Return detection elements associated with this module
109 inline AliMUONGeometryStore*
110 AliMUONGeometryModuleTransformer::GetDetElementStore() const
111 { return fDetElements; }
113 #endif //ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H