]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RICH/AliRICHClusterFinder.h
Phi analisys preliminary
[u/mrichter/AliRoot.git] / RICH / AliRICHClusterFinder.h
index a4aed4667cf3ba045ce8c1cc8f00f06e0dfe9901..e9a5598f55488d4f5ad6e6f2849edcf63200b44a 100644 (file)
@@ -4,52 +4,37 @@
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
-#include "TObject.h"
-#include "AliRICH.h"
+#include "TTask.h"
 
+#include "AliRICH.h"
 class AliHitMap;
-class TF1;
-class TClonesArray;
-class AliSegmentation;
-class AliRICHResponse;
-class TClonesArray;
 
-class AliRICHClusterFinder : public TObject
+class AliRICHClusterFinder : public TTask
 {
-public:
-  AliRICHClusterFinder(AliRICH *pRICH);
-  virtual ~AliRICHClusterFinder()                                                   {;}
-  
-  void   Exec();                                                                     //Loop on events and chambers  
-  void   FindRawClusters();                                                          //Search for clusters  
-  void   AddDigit2Cluster(Int_t i, Int_t j, AliRICHRawCluster &c);
-  void   Decluster(AliRICHRawCluster *cluster);                                      //Decluster
-  void   CalibrateCOG();                                                             //Self Calibration of COG 
-  void   SinoidalFit(Double_t x,Double_t y, TF1 *func);
-  void   CorrectCOG(){;}      
-  Bool_t Centered(AliRICHRawCluster *cluster);
-  void   SplitByLocalMaxima(AliRICHRawCluster *cluster);
-  void   FillCluster(AliRICHRawCluster *cluster, Int_t flag);
-  
-  void   AddRawCluster(const AliRICHRawCluster c)  {c.Print("");Rich()->AddClusterOld(fChamber,c);fNRawClusters++;}
-  void   FillCluster(AliRICHRawCluster *cluster)   {FillCluster(cluster,1);}
-  void   SetNperMax(Int_t npermax=5)               {fNperMax = npermax;}     //Set max. Number of pads per local cluster
-  void   SetClusterSize(Int_t clsize=100)          {fMaxClusterSize = clsize;}//Max. cluster size; bigger clusters will be rejected
+public:    
+           AliRICHClusterFinder(AliRICH *pRICH);
+  virtual ~AliRICHClusterFinder()                                          {;}
   
-  AliRICH * Rich() {return fRICH;}
-//protected:
-  AliRICH                *fRICH;  
-  AliSegmentation        *fSegmentation;                 //Segmentation model
-  AliRICHResponse*        fResponse;                     //Response model
-  AliHitMap              *fHitMap;                       //Hit Map with digit positions
-  TF1*                    fCogCorr;                      //Correction for center of gravity
-  TClonesArray*           fDigits;                       //List of digits
-  Int_t                   fNdigits;                      //Number of digits
-  Int_t                   fChamber;                      //Chamber number
-  Int_t                   fNRawClusters;                 //Number of raw clusters
-  Int_t                   fNperMax;                      //Number of pad hits per local maximum
-  Int_t                   fMaxClusterSize;               //Max size of cluster allowed
-  Int_t                   fNPeaks;                       //Number of maxima in the cluster
-  ClassDef(AliRICHClusterFinder,0) //Class for clustering and reconstruction of space points    
+  AliRICH        *R()                                              {return fRICH;}   //returns pointer to RICH  
+  void            Exec();                                                            //loop on events and chambers  
+  void            FindClusters(Int_t iChamber);                                      //find all clusters for a given chamber
+  void            FindClusterContribs(AliRICHcluster *pCluster);                     //find CFM for the current cluster
+  void            FormRawCluster(Int_t i, Int_t j);                                  //form a raw cluster
+  void            FindLocalMaxima();                                                 //find local maxima in a cluster
+  void            FitCoG();                                                          //evaluate the CoG as the best 
+  void            WriteRawCluster();                                                 //write in the list of cluster  
+  void            WriteResolvedCluster();                                            //write in the list of cluster  
+  AliRICHcluster *GetRawCluster()                           {return &fRawCluster;}   //returns pointer to the current raw cluster
+  Bool_t          GetDebug()                      const{return fRICH->GetDebug();}   //is debug printout needed?
+protected:
+  AliRICH                *fRICH;                         //pointer to RICH
+  AliHitMap              *fDigitMap;                     //map of digits positions
+  AliRICHcluster         fRawCluster;                    //current raw cluster before deconvolution
+  AliRICHcluster         fResolvedCluster;               //current cluster after deconvolution
+  Int_t                  fNlocals;                       //number of local maxima
+  Double_t               fLocalX[100],fLocalY[100];      //list of locals X,Y
+  Double_t               fLocalQ[100];                   //list of locals charge Q
+  Int_t                  fLocalC[100];                   //list of locals CombiPid
+  ClassDef(AliRICHClusterFinder,0) //finds raw clusters, trasfers them to resolved clusters through declustering.
 };
 #endif