a4aed4667cf3ba045ce8c1cc8f00f06e0dfe9901
[u/mrichter/AliRoot.git] / RICH / AliRICHClusterFinder.h
1 #ifndef AliRICHClusterFinder_h
2 #define AliRICHClusterFinder_h
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 #include "TObject.h"
8 #include "AliRICH.h"
9
10 class AliHitMap;
11 class TF1;
12 class TClonesArray;
13 class AliSegmentation;
14 class AliRICHResponse;
15 class TClonesArray;
16
17 class AliRICHClusterFinder : public TObject
18 {
19 public:
20   AliRICHClusterFinder(AliRICH *pRICH);
21   virtual ~AliRICHClusterFinder()                                                   {;}
22   
23   void   Exec();                                                                     //Loop on events and chambers  
24   void   FindRawClusters();                                                          //Search for clusters  
25   void   AddDigit2Cluster(Int_t i, Int_t j, AliRICHRawCluster &c);
26   void   Decluster(AliRICHRawCluster *cluster);                                      //Decluster
27   void   CalibrateCOG();                                                             //Self Calibration of COG 
28   void   SinoidalFit(Double_t x,Double_t y, TF1 *func);
29   void   CorrectCOG(){;}      
30   Bool_t Centered(AliRICHRawCluster *cluster);
31   void   SplitByLocalMaxima(AliRICHRawCluster *cluster);
32   void   FillCluster(AliRICHRawCluster *cluster, Int_t flag);
33   
34   void   AddRawCluster(const AliRICHRawCluster c)  {c.Print("");Rich()->AddClusterOld(fChamber,c);fNRawClusters++;}
35   void   FillCluster(AliRICHRawCluster *cluster)   {FillCluster(cluster,1);}
36   void   SetNperMax(Int_t npermax=5)               {fNperMax = npermax;}     //Set max. Number of pads per local cluster
37   void   SetClusterSize(Int_t clsize=100)          {fMaxClusterSize = clsize;}//Max. cluster size; bigger clusters will be rejected
38   
39   AliRICH * Rich() {return fRICH;}
40 //protected:
41   AliRICH                *fRICH;  
42   AliSegmentation        *fSegmentation;                 //Segmentation model
43   AliRICHResponse*        fResponse;                     //Response model
44   AliHitMap              *fHitMap;                       //Hit Map with digit positions
45   TF1*                    fCogCorr;                      //Correction for center of gravity
46   TClonesArray*           fDigits;                       //List of digits
47   Int_t                   fNdigits;                      //Number of digits
48   Int_t                   fChamber;                      //Chamber number
49   Int_t                   fNRawClusters;                 //Number of raw clusters
50   Int_t                   fNperMax;                      //Number of pad hits per local maximum
51   Int_t                   fMaxClusterSize;               //Max size of cluster allowed
52   Int_t                   fNPeaks;                       //Number of maxima in the cluster
53   ClassDef(AliRICHClusterFinder,0) //Class for clustering and reconstruction of space points    
54 };
55 #endif