1 #ifndef ALIRICHCLUSTERFINDER_H
2 #define ALIRICHCLUSTERFINDER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 ////////////////////////////////////////////////
11 // RICH Cluster Finder Class //
12 ////////////////////////////////////////////////
13 class AliRICHHitMapA1;
18 class AliRICHSegmentation;
19 class AliRICHRawCluster;
20 class AliRICHResponse;
24 class AliRICHClusterFinder :
29 (AliRICHSegmentation *segmentation,
30 AliRICHResponse *response, TClonesArray *digits, Int_t chamber);
31 AliRICHClusterFinder();
32 AliRICHClusterFinder(const AliRICHClusterFinder & ClusterFinder);
33 virtual ~AliRICHClusterFinder();
34 virtual void SetSegmentation(
35 AliRICHSegmentation *segmentation){
36 fSegmentation=segmentation;
38 virtual void SetResponse(AliRICHResponse *response) {
42 virtual void SetDigits(TClonesArray *RICHdigits);
44 virtual void SetChamber(Int_t ich){
48 virtual void AddRawCluster(const AliRICHRawCluster c);
49 // Search for raw clusters
50 virtual void FindRawClusters();
51 virtual void FindCluster(Int_t i, Int_t j, AliRICHRawCluster &c);
53 virtual void Decluster(AliRICHRawCluster *cluster);
54 // Set max. Number of pads per local cluster
55 virtual void SetNperMax(Int_t npermax=5) {fNperMax = npermax;}
57 virtual void SetDeclusterFlag(Int_t flag=1) {fDeclusterFlag =flag;}
58 // Set max. cluster size ; bigger clusters will be rejected
59 virtual void SetClusterSize(Int_t clsize=5) {fClusterSize = clsize;}
60 // Self Calibration of COG
61 virtual void CalibrateCOG();
62 virtual void SinoidalFit(Float_t x, Float_t y, TF1 &func);
64 virtual void CorrectCOG(){;}
67 virtual Bool_t Centered(AliRICHRawCluster *cluster);
68 virtual void SplitByLocalMaxima(AliRICHRawCluster *cluster);
69 virtual void FillCluster(AliRICHRawCluster *cluster, Int_t flag);
70 virtual void FillCluster(AliRICHRawCluster *cluster) {
71 FillCluster(cluster,1);}
72 TClonesArray* RawClusters(){return fRawClusters;}
73 AliRICHClusterFinder& operator=(const AliRICHClusterFinder& rhs);
74 ClassDef(AliRICHClusterFinder,1) //Class for clustering and reconstruction of space points
76 AliRICHSegmentation* fSegmentation; //Segmentation model
77 AliRICHResponse* fResponse; //Response model
78 TClonesArray* fRawClusters; //Raw clusters list
79 Int_t fChamber; //Chamber number
80 Int_t fNRawClusters; //Number of raw clusters
81 AliRICHHitMapA1* fHitMap; //Hit Map with digit positions
82 TF1* fCogCorr; //Correction for center of gravity
83 Int_t fNperMax; //Number of pad hits per local maximum
84 Int_t fDeclusterFlag; //Split clusters flag
85 Int_t fClusterSize; //Size of cluster
86 Int_t fNPeaks; //Number of maxima in the cluster
87 TClonesArray* fDigits; //List of digits
88 Int_t fNdigits; //Number of digits