]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUON.h
New segmentation with switch between old and new (Ch. Finck)
[u/mrichter/AliRoot.git] / MUON / AliMUON.h
index ae57d4874c489f62ae04f611afe0845f3039acfa..c3ba1547b72c3fc42438934d18f5c5bd4290abe2 100644 (file)
@@ -22,6 +22,7 @@ class TTree;
 
 class AliLoader;
 class AliSegmentation;
+class AliMUONGeometrySegmentation;
 class AliMUONTriggerCircuit;
 class AliMUONData;
 class AliMUONResponse;
@@ -31,7 +32,9 @@ class AliMUONPadHit;
 class AliMUONRawCluster;
 class AliMUONReconstHit;
 class AliMUONMerger;
+class AliMUONGeometryBuilder;
 class AliMUONVGeometryBuilder;
+class AliMUONGeometryDEIndexing;
 class AliESD;
 
 class AliMUON : public  AliDetector 
@@ -44,6 +47,7 @@ class AliMUON : public  AliDetector
     void           AddGeometryBuilder(AliMUONVGeometryBuilder* geomBuilder);
     virtual void   BuildGeometry();
     AliMUONData*   GetMUONData() {return fMUONData;}
+    AliMUONGeometryBuilder*  GetGeometryBuilder() {return fGeometryBuilder;}
     virtual Int_t  IsVersion()   const {return 0;}
 
     // MUONLoader definition
@@ -61,6 +65,9 @@ class AliMUON : public  AliDetector
     virtual AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const;
     virtual void   SDigits2Digits();      
     virtual void   Hits2SDigits();
+    virtual void   Digits2Raw();
+
+
     // Configuration Methods (per station id)
     //
     // Set Chamber Segmentation Parameters
@@ -77,6 +84,12 @@ class AliMUON : public  AliDetector
     // Set Segmentation and Response Model
     virtual void   SetSegmentationModel(Int_t id, Int_t isec,
                                        AliSegmentation *segmentation);
+    virtual void   SetSegmentationModel(Int_t id, Int_t isec,
+                                       AliMUONGeometrySegmentation* segmentation);
+
+    void SetSegmentationType(Int_t type) {fSegmentationType = type;}// 1 for old 2 for new, 0 undefined
+    Int_t WhichSegmentation() {return fSegmentationType; }
+
     virtual void   SetResponseModel(Int_t id, AliMUONResponse *response);
     virtual void   SetNsec(Int_t id, Int_t nsec);
 
@@ -96,6 +109,9 @@ class AliMUON : public  AliDetector
     virtual Float_t  GetMaxStepAlu() const;
     virtual Float_t  GetMaxDestepGas() const;
     virtual Float_t  GetMaxDestepAlu() const;
+    
+    // Set alignement option
+    virtual void  SetAlign(Bool_t align);
    
     // Return reference to Chamber #id
     virtual AliMUONChamber& Chamber(Int_t id)
@@ -110,7 +126,7 @@ class AliMUON : public  AliDetector
     AliMUONRawCluster    *RawCluster(Int_t ichamber, Int_t icathod,
                                     Int_t icluster);
     // Inherited and overridden from AliModule:
-    virtual void RemapTrackHitIDs(Int_t * map);
+    //PH    virtual void RemapTrackHitIDs(Int_t * map);
 
   protected:
     AliMUON(const AliMUON& rMUON);
@@ -122,8 +138,10 @@ class AliMUON : public  AliDetector
     AliMUONData*          fMUONData;           // Data container for MUON subsystem  
     Int_t                 fSplitLevel;         // Splitlevel when making branches in outfiles.
     TObjArray*            fChambers;           // List of Tracking Chambers
-    TObjArray            *fGeometryBuilders;   // List of Geometry Builders
     TObjArray*            fTriggerCircuits;    // List of Trigger Circuits
+    AliMUONGeometryBuilder*     fGeometryBuilder; // Geometry builder 
+    Int_t                 fSegmentationType;    // type for  segmentation
+    AliMUONGeometryDEIndexing*  fDEIndexing;   // Geometry DE indexing 
    
     //
     Bool_t   fAccCut;          //Transport acceptance cut
@@ -142,7 +160,7 @@ class AliMUON : public  AliDetector
     // Background eent for event mixing
     AliMUONMerger *fMerger;   // ! pointer to merger
     
-    ClassDef(AliMUON,4)  // MUON Detector base class
+    ClassDef(AliMUON,8)  // MUON Detector base class
 };
 #endif