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