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