30178c30 |
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 | |
d1cd2474 |
7 | // |
8 | // Class AliMUONChamberGeometry |
9 | // ----------------------------- |
10 | // Class for definititon of the MUON chamber positions in ALIC. |
11 | // |
12 | // Author: Ivana Hrivnacova, IPN Orsay |
13 | |
14 | #ifndef ALI_MUON_CHAMBER_GEOMETRY_H |
15 | #define ALI_MUON_CHAMBER_GEOMETRY_H |
16 | |
17 | #include <TObject.h> |
87894cc7 |
18 | #include <TString.h> |
d1cd2474 |
19 | |
20 | class TGeoTranslation; |
21 | class TGeoRotation; |
22 | class TGeoCombiTrans; |
23 | class TObjArray; |
24 | class TArrayI; |
25 | |
26 | class AliMUONChamber; |
27 | class AliMUONGeometryEnvelope; |
87894cc7 |
28 | class AliMUONGeometryEnvelopeStore; |
29 | class AliMUONGeometryTransformStore; |
30 | class AliMUONGeometrySVMap; |
d1cd2474 |
31 | |
32 | class AliMUONChamberGeometry : public TObject |
33 | { |
34 | public: |
35 | AliMUONChamberGeometry(Int_t chamberId); |
36 | AliMUONChamberGeometry(); |
d1cd2474 |
37 | virtual ~AliMUONChamberGeometry(); |
38 | |
d1cd2474 |
39 | // methods |
d1cd2474 |
40 | void SetMotherVolume(const TString& motherVolumeName); |
41 | void SetTranslation(const TGeoTranslation& translation); |
42 | void SetRotation(const TGeoRotation& rotation); |
43 | |
44 | void SetSensitiveVolume(Int_t volId); |
45 | void SetSensitiveVolume(const TString& name); |
87894cc7 |
46 | void SetAlign(Bool_t align); |
47 | |
d1cd2474 |
48 | // get methods |
49 | TString GetMotherVolume() const; |
87894cc7 |
50 | const TGeoCombiTrans* GetTransformation() const; |
51 | AliMUONGeometryEnvelopeStore* GetEnvelopeStore() const; |
52 | AliMUONGeometryTransformStore* GetTransformStore() const; |
53 | AliMUONGeometrySVMap* GetSVMap() const; |
d1cd2474 |
54 | Bool_t IsSensitiveVolume(Int_t volId) const; |
87894cc7 |
55 | Bool_t IsSensitiveVolume(const TString& volName) const; |
56 | // |
57 | //Int_t GetDEVolId(Int_t svVolId) const; |
d1cd2474 |
58 | |
30178c30 |
59 | protected: |
60 | AliMUONChamberGeometry(const AliMUONChamberGeometry& rhs); |
61 | // operators |
62 | AliMUONChamberGeometry& operator = (const AliMUONChamberGeometry& rhs); |
63 | |
d1cd2474 |
64 | private: |
65 | // methods |
87894cc7 |
66 | Int_t GetSVIndex(Int_t svVolId) const; |
d1cd2474 |
67 | |
68 | // data members |
69 | Int_t fChamberId; // the chamber Id |
70 | TString fMotherVolume; // mother volume name |
87894cc7 |
71 | Int_t fNofSVs; // number of sensitive volumes |
72 | TArrayI* fSVVolumeIds; // densitive volumes IDs |
d1cd2474 |
73 | TGeoCombiTrans* fTransformation;// the chamber transformation wrt to mother |
74 | // volume |
87894cc7 |
75 | AliMUONGeometryTransformStore* fDETransforms; // det elements transformations |
76 | AliMUONGeometryEnvelopeStore* fEnvelopes; // envelopes |
77 | AliMUONGeometrySVMap* fSVMap; // sensitive volumes map |
d1cd2474 |
78 | |
118f308a |
79 | ClassDef(AliMUONChamberGeometry,2) // MUON chamber geometry base class |
d1cd2474 |
80 | }; |
81 | |
82 | // inline functions |
83 | |
87894cc7 |
84 | inline void |
85 | AliMUONChamberGeometry::SetMotherVolume(const TString& motherVolumeName) |
d1cd2474 |
86 | { fMotherVolume = motherVolumeName; } |
87 | |
d1cd2474 |
88 | inline TString AliMUONChamberGeometry::GetMotherVolume() const |
89 | { return fMotherVolume; } |
90 | |
91 | inline const TGeoCombiTrans* AliMUONChamberGeometry::GetTransformation() const |
92 | { return fTransformation; } |
93 | |
87894cc7 |
94 | inline AliMUONGeometryEnvelopeStore* |
95 | AliMUONChamberGeometry::GetEnvelopeStore() const |
d1cd2474 |
96 | { return fEnvelopes; } |
97 | |
87894cc7 |
98 | inline AliMUONGeometryTransformStore* |
99 | AliMUONChamberGeometry::GetTransformStore() const |
100 | { return fDETransforms; } |
101 | |
102 | inline AliMUONGeometrySVMap* AliMUONChamberGeometry::GetSVMap() const |
103 | { return fSVMap; } |
104 | |
105 | #endif //ALI_MUON_CHAMBER_GEOMETRY_H |