]>
Commit | Line | Data |
---|---|---|
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 |