]>
Commit | Line | Data |
---|---|---|
b0f5e3fc | 1 | #ifndef ALIITSCLUSTERFINDER_H |
2 | #define ALIITSCLUSTERFINDER_H | |
3 | ||
4 | ||
5 | //////////////////////////////////////////////// | |
e8189707 | 6 | // ITS Cluster Finder Class // |
b0f5e3fc | 7 | //////////////////////////////////////////////// |
8 | ||
e8189707 | 9 | #include <TObject.h> |
10 | #include <TClonesArray.h> | |
11 | ||
12 | class AliITSMap; | |
13 | class AliITSresponse; | |
14 | class AliITSsegmentation; | |
15 | class AliITSRawCluster; | |
16 | class AliITS; | |
8ca6a9a5 | 17 | class AliITSdigit; |
9355b256 | 18 | class AliITSRecPoint; |
b0f5e3fc | 19 | |
20 | //--------------------------------------------------------------- | |
21 | class AliITSClusterFinder :public TObject | |
22 | { | |
23 | public: | |
b0f5e3fc | 24 | |
25 | AliITSClusterFinder(AliITSsegmentation *seg, AliITSresponse *resp, TClonesArray *digits); | |
26 | AliITSClusterFinder(); | |
27 | virtual ~AliITSClusterFinder(){ | |
28 | // destructor | |
29 | } | |
30 | AliITSClusterFinder(const AliITSClusterFinder &source); // copy constructor | |
31 | AliITSClusterFinder& operator=(const AliITSClusterFinder &source); // assignment operator | |
32 | ||
33 | virtual void SetResponse(AliITSresponse *response) { | |
34 | // set response | |
35 | fResponse=response; | |
36 | } | |
37 | virtual void SetSegmentation(AliITSsegmentation *segmentation) { | |
38 | // set segmentation | |
39 | fSegmentation=segmentation; | |
40 | } | |
b0f5e3fc | 41 | virtual void SetDigits(TClonesArray *ITSdigits) { |
42 | // set digits | |
43 | fDigits=ITSdigits; | |
44 | fNdigits = fDigits->GetEntriesFast(); | |
45 | } | |
8ca6a9a5 | 46 | virtual AliITSdigit* GetDigit(Int_t i){ |
47 | return (AliITSdigit*) fDigits->UncheckedAt(i); | |
48 | } | |
49 | virtual TClonesArray* Digits(){ | |
50 | return fDigits; | |
51 | } | |
b0f5e3fc | 52 | virtual Int_t NDigits() { |
53 | // Get Number of Digits | |
54 | return fNdigits; | |
55 | } | |
56 | ||
b0f5e3fc | 57 | AliITSMap *Map() { |
58 | // map | |
59 | return fMap; | |
60 | } | |
61 | // | |
62 | virtual void AddCluster(Int_t branch, AliITSRawCluster *c); | |
9355b256 | 63 | virtual void AddCluster(Int_t branch, AliITSRawCluster *c, AliITSRecPoint &rp); |
b0f5e3fc | 64 | |
65 | virtual void FindRawClusters() { | |
66 | // Search for raw clusters | |
67 | } | |
68 | virtual void FindCluster(Int_t i, Int_t j, AliITSRawCluster *c) { | |
69 | // find cluster | |
70 | } | |
71 | ||
72 | virtual void Decluster(AliITSRawCluster *cluster) { | |
73 | // Decluster | |
74 | } | |
75 | virtual void SetNperMax(Int_t npermax=3) { | |
76 | // Set max. Number of cells per local cluster | |
77 | fNperMax = npermax; | |
78 | } | |
79 | virtual void SetDeclusterFlag(Int_t flag=1) { | |
80 | // Decluster ? | |
81 | fDeclusterFlag =flag; | |
82 | } | |
83 | virtual void SetClusterSize(Int_t clsize=3) { | |
84 | // Set max. cluster size ; bigger clusters will be rejected | |
85 | fClusterSize = clsize; | |
86 | } | |
87 | virtual void CalibrateCOG() { | |
88 | // Self Calibration of COG | |
89 | } | |
90 | virtual void CorrectCOG(){ | |
91 | // correct COG | |
92 | } | |
93 | ||
94 | virtual Bool_t Centered(AliITSRawCluster *cluster) { | |
95 | // cluster | |
96 | return kTRUE; | |
97 | } | |
98 | virtual void SplitByLocalMaxima(AliITSRawCluster *cluster) { | |
99 | // split by local maxima | |
100 | } | |
101 | virtual void FillCluster(AliITSRawCluster *cluster, Int_t) { | |
102 | // fiil cluster | |
103 | } | |
104 | virtual void FillCluster(AliITSRawCluster *cluster) { | |
105 | // fill cluster | |
106 | FillCluster(cluster,1); | |
107 | } | |
108 | ||
109 | // set the fitting methods in the derived classes | |
e8189707 | 110 | |
111 | // data members | |
112 | ||
113 | TClonesArray *fDigits; // digits | |
114 | Int_t fNdigits; // num of digits | |
b0f5e3fc | 115 | |
116 | protected: | |
117 | AliITSresponse *fResponse; // response | |
118 | AliITSsegmentation *fSegmentation; //segmentation | |
119 | ||
120 | Int_t fNRawClusters; // in case we split the cluster | |
121 | // and want to keep track of | |
122 | // the cluster which was splitted | |
123 | AliITSMap *fMap; // map | |
124 | ||
125 | Int_t fNperMax; // NperMax | |
126 | Int_t fDeclusterFlag; // DeclusterFlag | |
127 | Int_t fClusterSize; // ClusterSize | |
128 | Int_t fNPeaks; // NPeaks | |
129 | ||
130 | ||
131 | ClassDef(AliITSClusterFinder,1) //Class for clustering and reconstruction of space points | |
132 | }; | |
133 | #endif | |
134 | ||
135 | ||
136 | ||
137 | ||
138 | ||
139 | ||
140 |