]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONSegmentation.h
Activate Trigger2Trigger at line 362 to avoid problems during
[u/mrichter/AliRoot.git] / MUON / AliMUONSegmentation.h
index f001a335dc1b58a12ceb07f2d04a941cec3c0a9a..dd1e7077c9c2f4569c61f2ecb9d49a74fd8ae6bd 100644 (file)
@@ -7,6 +7,15 @@
 /// \class AliMUONSegmentation
 /// \brief Container class for modules segmentations
 ///
+/// It provides access to segmentations on all levels:
+/// - mapping segmentation
+/// - DE segmentation (operating in local DE reference frame)
+/// - module segmentation (operating in global reference frame)
+/// As some detection element are sharing the same objects
+/// (AliMpVSegmentation, AliMUONVGeometryDESegmentation),
+/// all segmentations objects have to be always deleted
+/// altogether via deleting this container object. 
+/// 
 /// Author: Ivana Hrivnacova, IPN Orsay
 
 #ifndef ALI_MUON_SEGMENTATION_H
@@ -30,11 +39,15 @@ class AliMUONSegmentation : public TObject
     virtual  ~AliMUONSegmentation();
     
     // methods
+    void  AddMpSegmentation(AliMpVSegmentation* segmentation);
     void  AddDESegmentation(AliMUONVGeometryDESegmentation* segmentation);
 
     void  AddModuleSegmentation(Int_t moduleId, Int_t cathod,
                             AliMUONGeometrySegmentation* segmentation);
-    void  Init();                          
+    void  Init();
+            // This function should not be needed;
+           // the segmentations should be built in a valid state
+           // To be revised                        
 
     //
     // get methods
@@ -53,11 +66,14 @@ class AliMUONSegmentation : public TObject
     const AliMUONVGeometryDESegmentation* GetDESegmentation(
                      Int_t detElemId, Int_t cathod, Bool_t warn = true) const;
 
-    // Mapping segmentations
-    //
+    /** Mapping segmentations access by cathode number.
+      cathod can be 0 or 1. Note that there's no trivial relationship
+      between the cathode number and whether the corresponding plane
+      is a Bending or NonBending one.
+      **/
     const AliMpVSegmentation* GetMpSegmentation(
                      Int_t detElemId, Int_t cathod, Bool_t warn = true) const;
-                    
+                        
     // DE properties
     //
     Bool_t   HasDE(Int_t detElemId, Int_t cathod = 0) const;
@@ -66,14 +82,14 @@ class AliMUONSegmentation : public TObject
   protected:
     AliMUONSegmentation(const AliMUONSegmentation& right);
     AliMUONSegmentation&  operator = (const AliMUONSegmentation& right);
+     
   private:
     // data members
+    TObjArray*  fMpSegmentations;        // array of mapping segmentations
     TObjArray*  fDESegmentations;        // array of DE segmentations
     TObjArray*  fModuleSegmentations[2]; // array of module segmentations
                                          // for two cathods         
-
-  ClassDef(AliMUONSegmentation,1)  // Container class for module segmentations
+  ClassDef(AliMUONSegmentation,2)  // Container class for module segmentations
 };
 
 #endif //ALI_MUON_SEGMENTATION_H