Updated comments for Doxygen
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryModule.h
CommitLineData
e118b27e 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
692de412 7/// \ingroup geometry
8/// \class AliMUONGeometryModule
9/// \brief Geometry parameters for detector module
10///
11/// Class for definition of the detector module parameters
12/// (the transformations of detection elements, mapping between
13/// sensitive volumes and detection elements).
14///
15/// Author: Ivana Hrivnacova, IPN Orsay
e118b27e 16
f29ba3e1 17#ifndef ALI_MUON_GEOMETRY_MODULE_H
18#define ALI_MUON_GEOMETRY_MODULE_H
e118b27e 19
fbdfcd24 20#include "AliMUONGeometryModuleTransformer.h"
21
e118b27e 22#include <TObject.h>
23#include <TString.h>
24
fbdfcd24 25class AliMUONGeometryEnvelope;
26class AliMUONGeometryEnvelopeStore;
27class AliMUONGeometryDetElement;
28class AliMUONGeometryStore;
29class AliMUONStringIntMap;
6cfb12b4 30
e118b27e 31class TGeoTranslation;
32class TGeoRotation;
33class TGeoCombiTrans;
34class TObjArray;
35class TArrayI;
36
e118b27e 37class AliMUONGeometryModule : public TObject
38{
39 public:
40 AliMUONGeometryModule(Int_t moduleId);
41 AliMUONGeometryModule();
42 virtual ~AliMUONGeometryModule();
43
e118b27e 44 // set methods
6cfb12b4 45 //
6cfb12b4 46 void SetTransformation(const TGeoCombiTrans& transform);
fbdfcd24 47 void SetVolumePath(const TString& volumePath);
48 void SetIsVirtual(Bool_t isVirtual);
e118b27e 49
50 void SetSensitiveVolume(Int_t volId);
51 void SetSensitiveVolume(const TString& name);
52 void SetAlign(Bool_t align);
53
54 // get methods
6cfb12b4 55 //
56 Bool_t IsVirtual() const;
57 Int_t GetModuleId() const;
fbdfcd24 58 TString GetVolumePath() const;
6cfb12b4 59
e118b27e 60 AliMUONGeometryDetElement* FindBySensitiveVolume(
61 const TString& volumePath) const;
e118b27e 62 Bool_t IsSensitiveVolume(Int_t volId) const;
63 Bool_t IsSensitiveVolume(const TString& volName) const;
64
6cfb12b4 65 AliMUONGeometryEnvelopeStore* GetEnvelopeStore() const;
fbdfcd24 66 AliMUONStringIntMap* GetSVMap() const;
6cfb12b4 67 AliMUONGeometryModuleTransformer* GetTransformer() const;
68
e118b27e 69 protected:
70 AliMUONGeometryModule(const AliMUONGeometryModule& rhs);
fbdfcd24 71 AliMUONGeometryModule& operator = (const AliMUONGeometryModule& rhs);
e118b27e 72
73 private:
74 // methods
75 Int_t GetSVIndex(Int_t svVolId) const;
76
77 // data members
829425a5 78 Bool_t fIsVirtual; ///< \brief true if module is not represented
79 /// by a real volume
80 Int_t fNofSVs; ///< number of sensitive volumes
81 TArrayI* fSVVolumeIds; ///< sensitive volumes IDs
82
83 AliMUONGeometryEnvelopeStore* fEnvelopes; ///< envelopes
84 AliMUONStringIntMap* fSVMap; ///< sensitive volumes map
85 AliMUONGeometryModuleTransformer* fTransformer;///< geometry transformations
e118b27e 86
fbdfcd24 87 ClassDef(AliMUONGeometryModule,4) // MUON geometry module class
e118b27e 88};
89
90// inline functions
91
fbdfcd24 92inline void AliMUONGeometryModule::SetIsVirtual(Bool_t isVirtual)
93{ fIsVirtual = isVirtual; }
e118b27e 94
cfbf2f7d 95inline Bool_t AliMUONGeometryModule::IsVirtual() const
96{ return fIsVirtual; }
97
e118b27e 98inline Int_t AliMUONGeometryModule::GetModuleId() const
6cfb12b4 99{ return fTransformer->GetModuleId(); }
e118b27e 100
fbdfcd24 101inline TString AliMUONGeometryModule::GetVolumePath() const
102{ return fTransformer->GetVolumePath(); }
cfbf2f7d 103
6cfb12b4 104inline
105AliMUONGeometryEnvelopeStore* AliMUONGeometryModule::GetEnvelopeStore() const
e118b27e 106{ return fEnvelopes; }
107
6cfb12b4 108inline
fbdfcd24 109AliMUONStringIntMap* AliMUONGeometryModule::GetSVMap() const
e118b27e 110{ return fSVMap; }
111
6cfb12b4 112inline
113AliMUONGeometryModuleTransformer* AliMUONGeometryModule::GetTransformer() const
114{ return fTransformer; }
115
f29ba3e1 116#endif //ALI_MUON_GEOMETRY_MODULE_H