]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSClusterFinder.h
Release version of ITS code
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinder.h
1 #ifndef ALIITSCLUSTERFINDER_H
2 #define ALIITSCLUSTERFINDER_H
3
4
5 ////////////////////////////////////////////////
6 //  ITS Cluster Finder Class                  //
7 ////////////////////////////////////////////////
8
9 #include <TObject.h>
10 #include <TClonesArray.h>
11
12 class AliITSMap;
13 class AliITSresponse;
14 class AliITSsegmentation;
15 class AliITSRawCluster;
16 class AliITS;
17
18 //---------------------------------------------------------------
19 class AliITSClusterFinder :public TObject
20 {
21 public:
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 
105
106   // data members
107
108   TClonesArray           *fDigits;      // digits
109   Int_t                   fNdigits;     // num of digits
110   
111 protected:
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