]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONGeometryModule.h
Fix for ESD analysis
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryModule.h
index 9194a882d6cddb967c722e427a74aa772c826dfa..dce48e7ce24945d9b07665703f9f22b96f4d9659 100644 (file)
 /// (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;
@@ -28,12 +33,6 @@ class TGeoCombiTrans;
 class TObjArray;
 class TArrayI;
 
-class AliMUONGeometryEnvelope;
-class AliMUONGeometryEnvelopeStore;
-class AliMUONGeometryDetElement;
-class AliMUONGeometryStore;
-class AliMUONGeometrySVMap;
-
 class AliMUONGeometryModule : public TObject
 {
   public:
@@ -43,10 +42,9 @@ class AliMUONGeometryModule : public TObject
 
     // 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);
@@ -56,8 +54,7 @@ class AliMUONGeometryModule : public TObject
     //
     Bool_t   IsVirtual() const;  
     Int_t    GetModuleId() const;
-    TString  GetMotherVolume() const;
-    TString  GetVolume() const;
+    TString  GetVolumePath() const;
     
     AliMUONGeometryDetElement* FindBySensitiveVolume(
                                          const TString& volumePath) const;
@@ -65,58 +62,61 @@ class AliMUONGeometryModule : public TObject
     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; }