Adding AliITSDigitizer class to do merging and digitization . Based on the
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinder.h
CommitLineData
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
12class AliITSMap;
13class AliITSresponse;
14class AliITSsegmentation;
15class AliITSRawCluster;
16class AliITS;
8ca6a9a5 17class AliITSdigit;
9355b256 18class AliITSRecPoint;
b0f5e3fc 19
20//---------------------------------------------------------------
21class AliITSClusterFinder :public TObject
22{
23public:
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
ebf6f0ee 65 virtual void FindRawClusters(Int_t mod=0) {
b0f5e3fc 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
116protected:
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