]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSClusterFinder.h
Include forward declaration of AliITSRad
[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 class AliITSdigit;
18 class AliITSRecPoint;
19
20 //---------------------------------------------------------------
21 class AliITSClusterFinder :public TObject
22 {
23 public:
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   }
41   virtual void SetDigits(TClonesArray *ITSdigits) {
42     // set digits
43     fDigits=ITSdigits;
44     fNdigits = fDigits->GetEntriesFast();
45   }
46   virtual AliITSdigit* GetDigit(Int_t i){
47       return (AliITSdigit*) fDigits->UncheckedAt(i);
48   }
49   virtual TClonesArray* Digits(){
50       return fDigits;
51   }
52   virtual Int_t   NDigits() {
53     // Get Number of Digits
54     return fNdigits;
55   }
56   
57   AliITSMap   *Map()  {
58     // map
59     return fMap;
60   }
61   //
62   virtual void AddCluster(Int_t branch, AliITSRawCluster *c);
63   virtual void AddCluster(Int_t branch, AliITSRawCluster *c, AliITSRecPoint &rp);
64   
65   virtual void FindRawClusters(Int_t mod=0) {
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 
110
111   // data members
112
113   TClonesArray           *fDigits;      // digits
114   Int_t                   fNdigits;     // num of digits
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