AliRoot Core  ee782a0 (ee782a0)
AliMUONGeometryModuleTransformer.h
Go to the documentation of this file.
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice */
3 
4 /* $Id$ */
5 // Revision of includes 07/05/2004
6 
15 
16 #ifndef ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H
17 #define ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H
18 
19 #include <TObject.h>
20 #include <TString.h>
21 
23 
24 class AliMpExMap;
25 
26 class TGeoTranslation;
27 class TGeoRotation;
28 class TGeoHMatrix;
29 class TObjArray;
30 class TArrayI;
31 
32 class AliMUONGeometryModuleTransformer : public TObject
33 {
34  public:
35  AliMUONGeometryModuleTransformer(Int_t moduleId);
36  AliMUONGeometryModuleTransformer(TRootIOCtor* /*ioCtor*/);
38 
39  // static methods
40  static const TString& GetModuleNamePrefix();
41  static TString GetModuleName(Int_t moduleId);
42 
43  // methods
44  void Global2Local(Int_t detElemId,
45  Float_t xg, Float_t yg, Float_t zg,
46  Float_t& xl, Float_t& yl, Float_t& zl) const;
47  void Global2Local(Int_t detElemId,
48  Double_t xg, Double_t yg, Double_t zg,
49  Double_t& xl, Double_t& yl, Double_t& zl) const;
50 
51  void Local2Global(Int_t detElemId,
52  Float_t xl, Float_t yl, Float_t zl,
53  Float_t& xg, Float_t& yg, Float_t& zg) const;
54  void Local2Global(Int_t detElemId,
55  Double_t xl, Double_t yl, Double_t zl,
56  Double_t& xg, Double_t& yg, Double_t& zg) const;
57 
58  // set methods
59  void SetTransformation(const TGeoHMatrix& transform);
60  void SetVolumePath(const TString& volumePath);
61 
62  // get methods
63  Int_t GetModuleId() const;
64  TString GetModuleName() const;
65  TString GetVolumePath() const;
66  TString GetVolumeName() const;
67  TString GetMotherVolumeName() const;
68 
69  const TGeoHMatrix* GetTransformation() const;
72  GetDetElement(Int_t detElemId, Bool_t warn = true) const;
73 
74  protected:
82 
83  private:
84  // data members
85  Int_t fModuleId;
86  TString fModuleName;
87  TString fVolumePath;
88  TGeoHMatrix* fTransformation;
92 
93  ClassDef(AliMUONGeometryModuleTransformer,3) // MUON geometry module class
94 };
95 
96 // inline functions
97 
99 inline void
101 { fVolumePath = volumePath; }
102 
104 inline Int_t
106 { return fModuleId; }
107 
109 inline TString
111 { return fModuleName; }
112 
114 inline TString
116 { return fVolumePath; }
117 
119 inline const TGeoHMatrix*
121 { return fTransformation; }
122 
124 inline AliMpExMap*
126 { return fDetElements; }
127 
128 #endif //ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H
void SetVolumePath(const TString &volumePath)
Set the full path of aligned module volume or envelope in geometry.
Geometry transformer for a detector module.
void Local2Global(Int_t detElemId, Float_t xl, Float_t yl, Float_t zl, Float_t &xg, Float_t &yg, Float_t &zg) const
void Global2Local(Int_t detElemId, Float_t xg, Float_t yg, Float_t zg, Float_t &xl, Float_t &yl, Float_t &zl) const
#define TObjArray
AliMUONGeometryModuleTransformer & operator=(const AliMUONGeometryModuleTransformer &rhs)
Not implemented.
AliMUONGeometryModuleTransformer()
Not implemented.
AliMpExMap * fDetElements
detection elements
TGeoHMatrix * fTransformation
the module transformation wrt to top volume (world)
TString fVolumePath
the full path of aligned module volume or envelope in geometry
const TGeoHMatrix * GetTransformation() const
Return the module transformation wrt to the top volume (world)
TString GetVolumePath() const
Return the full path of aligned module volume or envelope in geometry.
TString GetModuleName() const
Return module name.
Int_t GetModuleId() const
Return module ID.
AliMpExMap * GetDetElementStore() const
Return detection elements associated with this module.
void SetTransformation(const TGeoHMatrix &transform)
Class for storing detection element transformations.
AliMUONGeometryDetElement * GetDetElement(Int_t detElemId, Bool_t warn=true) const
Helper class making Root persistent TExMap.
Definition: AliMpExMap.h:28