]>
Commit | Line | Data |
---|---|---|
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 | /* $Id$ */ | |
8 | ||
9 | ||
10 | //////////////////////////////////////////////// | |
11 | // RICH Cluster Finder Class // | |
12 | //////////////////////////////////////////////// | |
13 | class AliRICHHitMapA1; | |
14 | ||
15 | #include "TF1.h" | |
16 | #include "TObject.h" | |
17 | class TClonesArray; | |
18 | class AliSegmentation; | |
19 | class AliRICHRawCluster; | |
20 | class AliRICHResponse; | |
21 | class TClonesArray; | |
22 | ||
23 | ||
24 | class AliRICHClusterFinder : public TObject | |
25 | { | |
26 | public: | |
27 | AliRICHClusterFinder | |
28 | (AliSegmentation *segmentation, | |
29 | AliRICHResponse *response, TClonesArray *digits, Int_t chamber); | |
30 | AliRICHClusterFinder(); | |
31 | AliRICHClusterFinder(const AliRICHClusterFinder & ClusterFinder); | |
32 | virtual ~AliRICHClusterFinder(); | |
33 | virtual void SetSegmentation( | |
34 | AliSegmentation *segmentation){ | |
35 | fSegmentation=segmentation; | |
36 | } | |
37 | virtual void SetResponse(AliRICHResponse *response) { | |
38 | fResponse=response; | |
39 | } | |
40 | ||
41 | virtual void SetDigits(TClonesArray *RICHdigits); | |
42 | ||
43 | virtual void SetChamber(Int_t ich){ | |
44 | fChamber=ich; | |
45 | } | |
46 | ||
47 | virtual void AddRawCluster(const AliRICHRawCluster c); | |
48 | // Search for raw clusters | |
49 | virtual void FindRawClusters(); | |
50 | virtual void FindCluster(Int_t i, Int_t j, AliRICHRawCluster &c); | |
51 | // Decluster | |
52 | virtual void Decluster(AliRICHRawCluster *cluster); | |
53 | // Set max. Number of pads per local cluster | |
54 | virtual void SetNperMax(Int_t npermax=5) {fNperMax = npermax;} | |
55 | // Decluster ? | |
56 | virtual void SetDeclusterFlag(Int_t flag=1) {fDeclusterFlag =flag;} | |
57 | // Set max. cluster size ; bigger clusters will be rejected | |
58 | virtual void SetClusterSize(Int_t clsize=5) {fClusterSize = clsize;} | |
59 | // Self Calibration of COG | |
60 | virtual void CalibrateCOG(); | |
61 | virtual void SinoidalFit(Float_t x, Float_t y, TF1 &func); | |
62 | // | |
63 | virtual void CorrectCOG(){;} | |
64 | ||
65 | // | |
66 | virtual Bool_t Centered(AliRICHRawCluster *cluster); | |
67 | virtual void SplitByLocalMaxima(AliRICHRawCluster *cluster); | |
68 | virtual void FillCluster(AliRICHRawCluster *cluster, Int_t flag); | |
69 | virtual void FillCluster(AliRICHRawCluster *cluster) { | |
70 | FillCluster(cluster,1);} | |
71 | ||
72 | TClonesArray* RawClusters(){return fRawClusters;} | |
73 | AliRICHClusterFinder& operator=(const AliRICHClusterFinder& rhs); | |
74 | ClassDef(AliRICHClusterFinder,1) //Class for clustering and reconstruction of space points | |
75 | ||
76 | protected: | |
77 | AliSegmentation* fSegmentation; //Segmentation model | |
78 | AliRICHResponse* fResponse; //Response model | |
79 | TClonesArray* fRawClusters; //Raw clusters list | |
80 | AliRICHHitMapA1* fHitMap; //Hit Map with digit positions | |
81 | TF1* fCogCorr; //Correction for center of gravity | |
82 | TClonesArray* fDigits; //List of digits | |
83 | Int_t fNdigits; //Number of digits | |
84 | Int_t fChamber; //Chamber number | |
85 | Int_t fNRawClusters; //Number of raw clusters | |
86 | Int_t fNperMax; //Number of pad hits per local maximum | |
87 | Int_t fDeclusterFlag; //Split clusters flag | |
88 | Int_t fClusterSize; //Size of cluster | |
89 | Int_t fNPeaks; //Number of maxima in the cluster | |
90 | }; | |
91 | #endif | |
92 | ||
93 | ||
94 | ||
95 | ||
96 | ||
97 | ||
98 |