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 AliMUONChamberGeometry
9 // -----------------------------
10 // Class for definititon of the MUON chamber positions in ALIC.
12 // Author: Ivana Hrivnacova, IPN Orsay
14 #ifndef ALI_MUON_CHAMBER_GEOMETRY_H
15 #define ALI_MUON_CHAMBER_GEOMETRY_H
20 class TGeoTranslation;
27 class AliMUONGeometryEnvelope;
28 class AliMUONGeometryEnvelopeStore;
29 class AliMUONGeometryTransformStore;
30 class AliMUONGeometrySVMap;
32 class AliMUONChamberGeometry : public TObject
35 AliMUONChamberGeometry(Int_t chamberId);
36 AliMUONChamberGeometry();
37 virtual ~AliMUONChamberGeometry();
40 void SetMotherVolume(const TString& motherVolumeName);
41 void SetTranslation(const TGeoTranslation& translation);
42 void SetRotation(const TGeoRotation& rotation);
44 void SetSensitiveVolume(Int_t volId);
45 void SetSensitiveVolume(const TString& name);
46 void SetAlign(Bool_t align);
49 TString GetMotherVolume() const;
50 const TGeoCombiTrans* GetTransformation() const;
51 AliMUONGeometryEnvelopeStore* GetEnvelopeStore() const;
52 AliMUONGeometryTransformStore* GetTransformStore() const;
53 AliMUONGeometrySVMap* GetSVMap() const;
54 Bool_t IsSensitiveVolume(Int_t volId) const;
55 Bool_t IsSensitiveVolume(const TString& volName) const;
57 //Int_t GetDEVolId(Int_t svVolId) const;
60 AliMUONChamberGeometry(const AliMUONChamberGeometry& rhs);
62 AliMUONChamberGeometry& operator = (const AliMUONChamberGeometry& rhs);
66 Int_t GetSVIndex(Int_t svVolId) const;
69 Int_t fChamberId; // the chamber Id
70 TString fMotherVolume; // mother volume name
71 Int_t fNofSVs; // number of sensitive volumes
72 TArrayI* fSVVolumeIds; // densitive volumes IDs
73 TGeoCombiTrans* fTransformation;// the chamber transformation wrt to mother
75 AliMUONGeometryTransformStore* fDETransforms; // det elements transformations
76 AliMUONGeometryEnvelopeStore* fEnvelopes; // envelopes
77 AliMUONGeometrySVMap* fSVMap; // sensitive volumes map
79 ClassDef(AliMUONChamberGeometry,1) // MUON chamber geometry base class
85 AliMUONChamberGeometry::SetMotherVolume(const TString& motherVolumeName)
86 { fMotherVolume = motherVolumeName; }
88 inline TString AliMUONChamberGeometry::GetMotherVolume() const
89 { return fMotherVolume; }
91 inline const TGeoCombiTrans* AliMUONChamberGeometry::GetTransformation() const
92 { return fTransformation; }
94 inline AliMUONGeometryEnvelopeStore*
95 AliMUONChamberGeometry::GetEnvelopeStore() const
96 { return fEnvelopes; }
98 inline AliMUONGeometryTransformStore*
99 AliMUONChamberGeometry::GetTransformStore() const
100 { return fDETransforms; }
102 inline AliMUONGeometrySVMap* AliMUONChamberGeometry::GetSVMap() const
105 #endif //ALI_MUON_CHAMBER_GEOMETRY_H