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 transformationer for detector module
11 /// Class for definition of the detector module parameters
12 /// (the transformations of detection elements, mapping between
13 /// sensitive volumes and detection elements).
15 /// Author: Ivana Hrivnacova, IPN Orsay
17 #ifndef ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H
18 #define ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H
23 class AliMUONGeometryDetElement;
24 class AliMUONGeometryStore;
26 class TGeoTranslation;
32 class AliMUONGeometryModuleTransformer : public TObject
35 AliMUONGeometryModuleTransformer(Int_t moduleId);
36 AliMUONGeometryModuleTransformer();
37 virtual ~AliMUONGeometryModuleTransformer();
40 void Global2Local(Int_t detElemId,
41 Float_t xg, Float_t yg, Float_t zg,
42 Float_t& xl, Float_t& yl, Float_t& zl) const;
43 void Global2Local(Int_t detElemId,
44 Double_t xg, Double_t yg, Double_t zg,
45 Double_t& xl, Double_t& yl, Double_t& zl) const;
47 void Local2Global(Int_t detElemId,
48 Float_t xl, Float_t yl, Float_t zl,
49 Float_t& xg, Float_t& yg, Float_t& zg) const;
50 void Local2Global(Int_t detElemId,
51 Double_t xl, Double_t yl, Double_t zl,
52 Double_t& xg, Double_t& yg, Double_t& zg) const;
55 void SetTransformation(const TGeoHMatrix& transform);
56 void SetVolumePath(const TString& volumePath);
59 Int_t GetModuleId() const;
60 TString GetVolumePath() const;
61 TString GetVolumeName() const;
62 TString GetMotherVolumeName() const;
64 const TGeoHMatrix* GetTransformation() const;
66 AliMUONGeometryStore* GetDetElementStore() const;
67 AliMUONGeometryDetElement* GetDetElement(
68 Int_t detElemId, Bool_t warn = true) const;
71 AliMUONGeometryModuleTransformer(const AliMUONGeometryModuleTransformer& rhs);
73 AliMUONGeometryModuleTransformer&
74 operator = (const AliMUONGeometryModuleTransformer& rhs);
78 Int_t fModuleId; // the module Id
79 TString fVolumePath; // the full path of aligned module volume
80 // or envelope in geometry
81 TGeoHMatrix* fTransformation;// the module transformation wrt to top
83 AliMUONGeometryStore* fDetElements; // detection elements
85 ClassDef(AliMUONGeometryModuleTransformer,3) // MUON geometry module class
91 AliMUONGeometryModuleTransformer::SetVolumePath(const TString& volumePath)
92 { fVolumePath = volumePath; }
95 AliMUONGeometryModuleTransformer::GetModuleId() const
99 AliMUONGeometryModuleTransformer::GetVolumePath() const
100 { return fVolumePath; }
102 inline const TGeoHMatrix*
103 AliMUONGeometryModuleTransformer::GetTransformation() const
104 { return fTransformation; }
106 inline AliMUONGeometryStore*
107 AliMUONGeometryModuleTransformer::GetDetElementStore() const
108 { return fDetElements; }
110 #endif //ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H