]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RICH/AliRICHClusterFinder.h
AliCRTModule added
[u/mrichter/AliRoot.git] / RICH / AliRICHClusterFinder.h
index a4aed4667cf3ba045ce8c1cc8f00f06e0dfe9901..d1c020632a4d76cd2693351cce68900e8321bc35 100644 (file)
@@ -4,52 +4,31 @@
 /* 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
+  AliRICH *Rich() {return fRICH;}                                             //Pointer to RICH  
+  void     Exec();                                                            //Loop on events and chambers  
+  void     FindClusters(Int_t iChamber);                                      //Find raw clusters
+  void     FindClusterContribs();                                             //Find CombiPid 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     ResolveCluster();                                                  //Try to resolve a cluster with maxima > 2
+  void     FitCoG();                                                          //Evaluate the CoG as the best 
+  void     WriteRawCluster();                                                 //write in the list of the raw clusters  
+  AliRICHcluster *GetCurrentCluster() {return &fCurrentCluster;}              //Return pointer to the current cluster
+protected:
+  AliRICH                *fRICH;                         //Pointer to RICH
   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    
+  AliRICHcluster         fCurrentCluster;                //Current cluster to examine
+  ClassDef(AliRICHClusterFinder,0) //Finds raw clusters, trasfers them to resolved clusters through declustering.
 };
 #endif