fix finding of pad neighbours; remove methods to write them in OCDB
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryModuleTransformer.h
... / ...
CommitLineData
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
7/// \ingroup geometry
8/// \class AliMUONGeometryModuleTransformer
9/// \brief Geometry transformer for a detector module
10///
11/// Class for definition of the transformation for a detector module
12/// and its detection elements
13///
14/// \author Ivana Hrivnacova, IPN Orsay
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
22class AliMUONGeometryDetElement;
23
24class AliMpExMap;
25
26class TGeoTranslation;
27class TGeoRotation;
28class TGeoHMatrix;
29class TObjArray;
30class TArrayI;
31
32class AliMUONGeometryModuleTransformer : public TObject
33{
34 public:
35 AliMUONGeometryModuleTransformer(Int_t moduleId);
36 AliMUONGeometryModuleTransformer(TRootIOCtor* /*ioCtor*/);
37 virtual ~AliMUONGeometryModuleTransformer();
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;
70 AliMpExMap* GetDetElementStore() const;
71 AliMUONGeometryDetElement*
72 GetDetElement(Int_t detElemId, Bool_t warn = true) const;
73
74 protected:
75 /// Not implemented
76 AliMUONGeometryModuleTransformer();
77 /// Not implemented
78 AliMUONGeometryModuleTransformer(const AliMUONGeometryModuleTransformer& rhs);
79 /// Not implemented
80 AliMUONGeometryModuleTransformer&
81 operator = (const AliMUONGeometryModuleTransformer& rhs);
82
83 private:
84 // data members
85 Int_t fModuleId; ///< the module Id
86 TString fModuleName; ///< the module name
87 TString fVolumePath; ///< \brief the full path of aligned module volume
88 /// or envelope in geometry
89 TGeoHMatrix* fTransformation;///< \brief the module transformation wrt to top
90 /// volume (world)
91 AliMpExMap* fDetElements; ///< detection elements
92
93 ClassDef(AliMUONGeometryModuleTransformer,3) // MUON geometry module class
94};
95
96// inline functions
97
98/// Set the full path of aligned module volume or envelope in geometry
99inline void
100AliMUONGeometryModuleTransformer::SetVolumePath(const TString& volumePath)
101{ fVolumePath = volumePath; }
102
103/// Return module ID
104inline Int_t
105AliMUONGeometryModuleTransformer::GetModuleId() const
106{ return fModuleId; }
107
108/// Return module name
109inline TString
110AliMUONGeometryModuleTransformer::GetModuleName() const
111{ return fModuleName; }
112
113/// Return the full path of aligned module volume or envelope in geometry
114inline TString
115AliMUONGeometryModuleTransformer::GetVolumePath() const
116{ return fVolumePath; }
117
118/// Return the module transformation wrt to the top volume (world)
119inline const TGeoHMatrix*
120AliMUONGeometryModuleTransformer::GetTransformation() const
121{ return fTransformation; }
122
123/// Return detection elements associated with this module
124inline AliMpExMap*
125AliMUONGeometryModuleTransformer::GetDetElementStore() const
126{ return fDetElements; }
127
128#endif //ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H