/// (the transformations of detection elements, mapping between
/// sensitive volumes and detection elements).
///
-/// Author: Ivana Hrivnacova, IPN Orsay
+/// \author Ivana Hrivnacova, IPN Orsay
#ifndef ALI_MUON_GEOMETRY_MODULE_H
#define ALI_MUON_GEOMETRY_MODULE_H
+#include "AliMUONGeometryModuleTransformer.h"
+
#include <TObject.h>
#include <TString.h>
-#include "AliMUONGeometryModuleTransformer.h"
+class AliMUONGeometryEnvelope;
+class AliMUONGeometryEnvelopeStore;
+class AliMUONGeometryDetElement;
+class AliMUONStringIntMap;
class TGeoTranslation;
class TGeoRotation;
class TObjArray;
class TArrayI;
-class AliMUONGeometryEnvelope;
-class AliMUONGeometryEnvelopeStore;
-class AliMUONGeometryDetElement;
-class AliMUONGeometryStore;
-class AliMUONGeometrySVMap;
-
class AliMUONGeometryModule : public TObject
{
public:
// set methods
//
- void AddSVPath(const TString& sensVolumePath, Int_t detElemId);
- void SetMotherVolume(const TString& motherVolumeName);
- void SetVolume(const TString& volumeName);
void SetTransformation(const TGeoCombiTrans& transform);
+ void SetVolumePath(const TString& volumePath);
+ void SetIsVirtual(Bool_t isVirtual);
void SetSensitiveVolume(Int_t volId);
void SetSensitiveVolume(const TString& name);
//
Bool_t IsVirtual() const;
Int_t GetModuleId() const;
- TString GetMotherVolume() const;
- TString GetVolume() const;
+ TString GetVolumePath() const;
AliMUONGeometryDetElement* FindBySensitiveVolume(
const TString& volumePath) const;
Bool_t IsSensitiveVolume(const TString& volName) const;
AliMUONGeometryEnvelopeStore* GetEnvelopeStore() const;
- AliMUONGeometrySVMap* GetSVMap() const;
+ AliMUONStringIntMap* GetSVMap() const;
AliMUONGeometryModuleTransformer* GetTransformer() const;
protected:
+ /// Not implemented
AliMUONGeometryModule(const AliMUONGeometryModule& rhs);
- AliMUONGeometryModule& operator = (const AliMUONGeometryModule& rhs);
+ /// Not implemented
+ AliMUONGeometryModule& operator = (const AliMUONGeometryModule& rhs);
private:
// methods
Int_t GetSVIndex(Int_t svVolId) const;
// data members
- Bool_t fIsVirtual; // true if module is not represented
- // by a real volume
- TString fMotherVolume; // mother volume name
- TString fVolume; // the volume name if not virtual
- Int_t fNofSVs; // number of sensitive volumes
- TArrayI* fSVVolumeIds; // densitive volumes IDs
-
- AliMUONGeometryEnvelopeStore* fEnvelopes; // envelopes
- AliMUONGeometrySVMap* fSVMap; // sensitive volumes map
- AliMUONGeometryModuleTransformer* fTransformer;// geometry transformations
+ Bool_t fIsVirtual; ///< \brief true if module is not represented
+ /// by a real volume
+ Int_t fNofSVs; ///< number of sensitive volumes
+ TArrayI* fSVVolumeIds; ///< sensitive volumes IDs
+
+ AliMUONGeometryEnvelopeStore* fEnvelopes; ///< envelopes
+ AliMUONStringIntMap* fSVMap; ///< sensitive volumes map
+ AliMUONGeometryModuleTransformer* fTransformer;///< geometry transformations
- ClassDef(AliMUONGeometryModule,3) // MUON geometry module class
+ ClassDef(AliMUONGeometryModule,4) // MUON geometry module class
};
// inline functions
-inline
-void AliMUONGeometryModule::SetMotherVolume(const TString& motherVolumeName)
-{ fMotherVolume = motherVolumeName; }
+/// Set virtuality (true if module is not represented by a real volume)
+inline void AliMUONGeometryModule::SetIsVirtual(Bool_t isVirtual)
+{ fIsVirtual = isVirtual; }
+/// Return true if module is not represented by a real volume
inline Bool_t AliMUONGeometryModule::IsVirtual() const
{ return fIsVirtual; }
+/// Return module ID
inline Int_t AliMUONGeometryModule::GetModuleId() const
{ return fTransformer->GetModuleId(); }
-inline TString AliMUONGeometryModule::GetMotherVolume() const
-{ return fMotherVolume; }
-
-inline TString AliMUONGeometryModule::GetVolume() const
-{ return fVolume; }
+/// Return the full path of aligned module volume or envelope in geometry
+inline TString AliMUONGeometryModule::GetVolumePath() const
+{ return fTransformer->GetVolumePath(); }
+/// Return envelopes associated with this module
inline
AliMUONGeometryEnvelopeStore* AliMUONGeometryModule::GetEnvelopeStore() const
{ return fEnvelopes; }
+/// Return sensitive volume map
inline
-AliMUONGeometrySVMap* AliMUONGeometryModule::GetSVMap() const
+AliMUONStringIntMap* AliMUONGeometryModule::GetSVMap() const
{ return fSVMap; }
+/// Return transformer
inline
AliMUONGeometryModuleTransformer* AliMUONGeometryModule::GetTransformer() const
{ return fTransformer; }