]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSClusterFinder.h
Old versions of macros
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinder.h
1 #ifndef ALIITSCLUSTERFINDER_H
2 #define ALIITSCLUSTERFINDER_H
3  
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6  
7 /* $Id$ */
8
9 ////////////////////////////////////////////////
10 //  ITS Cluster Finder Class                  //
11 ////////////////////////////////////////////////
12
13 #include <TObject.h>
14 #include <TClonesArray.h>
15
16 class AliITSMap;
17 class AliITSresponse;
18 class AliITSsegmentation;
19 class AliITSRawCluster;
20 class AliITS;
21 class AliITSdigit;
22 class AliITSRecPoint;
23
24 //----------------------------------------------------------------------
25 class AliITSClusterFinder :public TObject{
26  public:
27     AliITSClusterFinder();
28     AliITSClusterFinder(AliITSsegmentation *seg, AliITSresponse *resp,
29                         TClonesArray *digits);
30     virtual ~AliITSClusterFinder();
31     AliITSClusterFinder(const AliITSClusterFinder &source); // copy constructor
32     // assignment operator
33     AliITSClusterFinder& operator=(const AliITSClusterFinder &source);
34     virtual void SetResponse(AliITSresponse *response) {
35         // set response
36         fResponse=response;
37     }
38     virtual void SetSegmentation(AliITSsegmentation *segmentation) {
39         // set segmentation
40         fSegmentation=segmentation;
41     }
42     virtual void SetDigits(TClonesArray *ITSdigits) {
43         // set digits
44         fDigits=ITSdigits;
45         fNdigits = fDigits->GetEntriesFast();
46     }
47     virtual AliITSdigit* GetDigit(Int_t i){
48         return (AliITSdigit*) fDigits->UncheckedAt(i);
49     }
50     virtual TClonesArray* Digits(){
51         return fDigits;
52     }
53     virtual Int_t   NDigits() {
54         // Get Number of Digits
55         return fNdigits;
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,
64                             AliITSRecPoint &rp);
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     virtual void Decluster(AliITSRawCluster *cluster) {
72         // Decluster
73     }
74     virtual void SetNperMax(Int_t npermax=3) {
75         // Set max. Number of cells per local cluster
76         fNperMax = npermax;
77     }
78     virtual void SetDeclusterFlag(Int_t flag=1) {
79         // Decluster ?
80         fDeclusterFlag =flag;
81     }
82     virtual void SetClusterSize(Int_t clsize=3) {
83         // Set max. cluster size ; bigger clusters will be rejected
84         fClusterSize = clsize;
85     }
86     virtual void CalibrateCOG() {
87         // Self Calibration of COG 
88     }
89     virtual void CorrectCOG(){
90         // correct COG
91     }
92     virtual Bool_t Centered(AliITSRawCluster *cluster) {
93         // cluster
94         return kTRUE;
95     }
96     virtual void   SplitByLocalMaxima(AliITSRawCluster *cluster) {
97         // split by local maxima
98     }
99     virtual void   FillCluster(AliITSRawCluster *cluster, Int_t) {
100         // fiil cluster
101     }
102     virtual void   FillCluster(AliITSRawCluster *cluster) {
103         // fill cluster
104         FillCluster(cluster,1);
105     }
106     // set the fitting methods in the derived classes
107     // data members
108
109     TClonesArray       *fDigits;       //! digits
110     Int_t              fNdigits;       //! num of digits
111
112  protected:
113     AliITSresponse     *fResponse;     //! response
114     AliITSsegmentation *fSegmentation; //!segmentation
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     Int_t              fNperMax;       //! NperMax
120     Int_t              fDeclusterFlag; //! DeclusterFlag
121     Int_t              fClusterSize;   //! ClusterSize
122     Int_t              fNPeaks;        //! NPeaks  
123   
124     ClassDef(AliITSClusterFinder,2) //Class for clustering and reconstruction of space points
125 };
126 #endif