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 AliMUONGeometryModule
9 /// \brief Geometry parameters for detector module
11 /// Class for definition of the detector module parameters
12 /// (the transformations of detection elements, mapping between
13 /// sensitive volumes and detection elements).
15 /// Author: Ivana Hrivnacova, IPN Orsay
17 #ifndef ALI_MUON_GEOMETRY_MODULE_H
18 #define ALI_MUON_GEOMETRY_MODULE_H
23 #include "AliMUONGeometryModuleTransformer.h"
25 class TGeoTranslation;
31 class AliMUONGeometryEnvelope;
32 class AliMUONGeometryEnvelopeStore;
33 class AliMUONGeometryDetElement;
34 class AliMUONGeometryStore;
35 class AliMUONGeometrySVMap;
37 class AliMUONGeometryModule : public TObject
40 AliMUONGeometryModule(Int_t moduleId);
41 AliMUONGeometryModule();
42 virtual ~AliMUONGeometryModule();
46 void SetMotherVolume(const TString& motherVolumeName);
47 void SetVolume(const TString& volumeName);
48 void SetTransformation(const TGeoCombiTrans& transform);
50 void SetSensitiveVolume(Int_t volId);
51 void SetSensitiveVolume(const TString& name);
52 void SetAlign(Bool_t align);
56 Bool_t IsVirtual() const;
57 Int_t GetModuleId() const;
58 TString GetMotherVolume() const;
59 TString GetVolume() const;
61 AliMUONGeometryDetElement* FindBySensitiveVolume(
62 const TString& volumePath) const;
63 Bool_t IsSensitiveVolume(Int_t volId) const;
64 Bool_t IsSensitiveVolume(const TString& volName) const;
66 AliMUONGeometryEnvelopeStore* GetEnvelopeStore() const;
67 AliMUONGeometrySVMap* GetSVMap() const;
68 AliMUONGeometryModuleTransformer* GetTransformer() const;
71 AliMUONGeometryModule(const AliMUONGeometryModule& rhs);
72 AliMUONGeometryModule& operator = (const AliMUONGeometryModule& rhs);
76 Int_t GetSVIndex(Int_t svVolId) const;
79 Bool_t fIsVirtual; // true if module is not represented
81 TString fMotherVolume; // mother volume name
82 TString fVolume; // the volume name if not virtual
83 Int_t fNofSVs; // number of sensitive volumes
84 TArrayI* fSVVolumeIds; // densitive volumes IDs
86 AliMUONGeometryEnvelopeStore* fEnvelopes; // envelopes
87 AliMUONGeometrySVMap* fSVMap; // sensitive volumes map
88 AliMUONGeometryModuleTransformer* fTransformer;// geometry transformations
90 ClassDef(AliMUONGeometryModule,3) // MUON geometry module class
96 void AliMUONGeometryModule::SetMotherVolume(const TString& motherVolumeName)
97 { fMotherVolume = motherVolumeName; }
99 inline Bool_t AliMUONGeometryModule::IsVirtual() const
100 { return fIsVirtual; }
102 inline Int_t AliMUONGeometryModule::GetModuleId() const
103 { return fTransformer->GetModuleId(); }
105 inline TString AliMUONGeometryModule::GetMotherVolume() const
106 { return fMotherVolume; }
108 inline TString AliMUONGeometryModule::GetVolume() const
112 AliMUONGeometryEnvelopeStore* AliMUONGeometryModule::GetEnvelopeStore() const
113 { return fEnvelopes; }
116 AliMUONGeometrySVMap* AliMUONGeometryModule::GetSVMap() const
120 AliMUONGeometryModuleTransformer* AliMUONGeometryModule::GetTransformer() const
121 { return fTransformer; }
123 #endif //ALI_MUON_GEOMETRY_MODULE_H