]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONClusterFinderVS.h
Bug on error calculations (Christian)
[u/mrichter/AliRoot.git] / MUON / AliMUONClusterFinderVS.h
index e0b73cdf24684800c58514d580af748a1499f33e..ffa68abb9dd1e78d44b65b4250fdae227e1d4122 100644 (file)
@@ -4,6 +4,7 @@
  * See cxx source for full Copyright notice                               */
 
 /* $Id$ */
+// Revision of includes 07/05/2004
 
 ////////////////////////////////////////////////
 //  MUON Cluster Finder Class                 //
 
 #include <TObject.h>
 
+class TClonesArray;
+
 class AliMUONClusterInput;
 class AliMUONHitMapA1;
 class AliMUONResponse;
 class AliSegmentation;
-class TClonesArray;
 class AliMUONRawCluster;
 class AliMUONDigit;
 
@@ -24,8 +26,7 @@ class AliMUONClusterFinderVS : public TObject
 {
  public:
     AliMUONClusterFinderVS();
-    AliMUONClusterFinderVS(const AliMUONClusterFinderVS& clusterFinder);
-    virtual ~AliMUONClusterFinderVS(){;}
+    virtual ~AliMUONClusterFinderVS();
 // Decluster ?
     virtual void SetDeclusterFlag(Int_t flag=1) {fDeclusterFlag =flag;}
 // Set max. cluster size ; bigger clusters will deconvoluted
@@ -52,33 +53,53 @@ class AliMUONClusterFinderVS : public TObject
     virtual void   FillCluster(AliMUONRawCluster *cluster, Int_t cath);
     virtual void   FillCluster(AliMUONRawCluster *cluster) {FillCluster(cluster,1,0);}
 // Add a new raw cluster    
-    virtual void AddRawCluster(const AliMUONRawCluster cluster);
+    virtual void AddRawCluster(const AliMUONRawCluster& cluster);
 //  Set tracks for debugging    
     virtual void SetTracks(Int_t t1, Int_t t2) {fTrack[0]=t1; fTrack[1]=t2;}
-    virtual Bool_t TestTrack(Int_t t);
+    virtual Bool_t TestTrack(Int_t t) const;
+//  debug level
+    void SetDebugLevel(Int_t level) {fDebugLevel = level;}
+    void SetGhostChi2Cut(Float_t cut) {fGhostChi2Cut = cut;}
+// get raw cluster pointer 
+    TClonesArray*  GetRawClusters() {return fRawClusters;}
+// reset raw clusters
+    void ResetRawClusters();
+
+ protected:
+    AliMUONClusterFinderVS(const AliMUONClusterFinderVS& clusterFinder);
 //  Assignment operator
     AliMUONClusterFinderVS & operator = (const AliMUONClusterFinderVS& rhs);
 
- protected:
-    AliMUONClusterInput*    fInput;              // AliMUONClusterInput instance
-    AliMUONHitMapA1*        fHitMap[2];          // Hit Map cathode 1
+    AliMUONClusterInput*    fInput;              // ! AliMUONClusterInput instance
+    AliMUONHitMapA1*        fHitMap[2];          // Hit Maps for cathode 1 and 2
+    AliSegmentation*        fSeg[2];             // Segmentations for cathode 1 and 2
+    
 // Configuration    
     Int_t                   fDeclusterFlag;      // flag for declusterin
     Int_t                   fClusterSize;        // cluster size 
     Int_t                   fNperMax;            // Maximum number of pads per peak
+    Float_t                 fGhostChi2Cut;       // Cut in charge matching chi2
+                                                // (2 degrees of freedom)
+                                                 // Used by ghost removal
 // Current decluster result    
     Int_t                   fMul[2];             // current multiplicity
     Int_t                   fNPeaks;             // number of local maxima
     Int_t                   fNRawClusters;       // Number of Raw Clusters
+    TClonesArray*           fRawClusters;        // array of cluster per ch.
+
 // Local data store    
     AliMUONDigit*           fDig[100][2];        // current list of digits 
     Int_t                   fIx[100][2];         // current list of x-pad-coord.
     Int_t                   fIy[100][2];         // current list of y-pad-coord.
     Float_t                 fX[100][2];          // current list of x-coord.
     Float_t                 fY[100][2];          // current list of y-coord.
+    Float_t                 fZ[100][2];          // current list of z-coord.
     Int_t                   fIndLocal[100][2];   // indices of local maxima
     Int_t                   fNLocal[2];          // Number of local maxima
     Int_t                   fQ[100][2];          // current list of charges
+    Float_t                 fZPlane;             // currenz z-plane position
+    Int_t                   fSector;             // current sector
+    
 // Current Fit
     Double_t                 fXFit[2];         // x-coordinate
     Double_t                 fYFit[2];         // y-coordinate
@@ -92,8 +113,10 @@ class AliMUONClusterFinderVS : public TObject
 // Selected track for debugging
     Int_t                    fTrack[2];        // Only digits with main contributions from these tracks are
                                                // considered 
+    Int_t                    fDebugLevel;      // prinout control
+
 //  Return pointer to raw clusters    
-    ClassDef(AliMUONClusterFinderVS,1) //Class for clustering and reconstruction of space points
+    ClassDef(AliMUONClusterFinderVS,2) //Class for clustering and reconstruction of space points
 };
 #endif