Updated version of the Bari code to work with the HEAD. A new test macros has also...
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinderSPDbari.h
1 #ifndef ALIITSCLUSTERFINDERSPDBARI_H
2 #define ALIITSCLUSTERFINDERSPDBARI_H
3
4 ////////////////////////////////////////////////
5 //  ITS Cluster Finder Class                 //
6 ////////////////////////////////////////////////
7
8 #include "AliITSClusterFinder.h"
9
10 class AliITSMapA1;
11
12 class AliITSClusterFinderSPDbari :
13   public AliITSClusterFinder
14
15 {
16 public:
17   AliITSClusterFinderSPDbari
18   (AliITSsegmentation *segmentation,
19    TClonesArray *digits, TClonesArray *recpoints);
20   AliITSClusterFinderSPDbari();
21   virtual ~AliITSClusterFinderSPDbari(){
22     // destructor
23   }
24   AliITSClusterFinderSPDbari(const AliITSClusterFinderSPDbari &source); // copy constructor
25   AliITSClusterFinderSPDbari& operator=(const AliITSClusterFinderSPDbari &source); // assignment operator
26   
27   
28   virtual void SetDx(Float_t dx=1.) {
29     // set dx
30     fDx=dx;
31   }
32   virtual void SetDz(Float_t dz=0.) {
33     // set dz
34     fDz=dz;
35   }
36
37   // Search for clusters
38   virtual void FindRawClusters(Int_t module); 
39   void  DigitToPoint(Int_t nclus, Float_t *xcenter, Float_t *zcenter,
40                    Float_t *errxcenter,Float_t *errzcenter,
41                   Int_t *tr1clus, Int_t *tr2clus, Int_t *tr3clus);
42   void  ClusterFinder(Int_t ndigits,Int_t digx[],Int_t digz[],
43                       Int_t digtr1[],Int_t digtr2[],Int_t digtr3[],Int_t digtr4[],
44                       Int_t &nclus,
45                       Float_t xcenter[],Float_t zcenter[],
46                       Float_t errxcenter[],Float_t errzcenter[],  
47                       Int_t tr1clus[],Int_t tr2clus[], Int_t tr3clus[]);  
48   
49   
50   
51 private:
52   
53   TClonesArray       *fClusters;      // clusters
54   Int_t               fNclusters;     // num of clusters
55   Float_t             fDz;            // dz
56   Float_t             fDx;            // dx
57   
58   Int_t               fMinNCells;     // min num of cells in the cluster
59   
60   ClassDef(AliITSClusterFinderSPDbari,1)  // SPD clustering based
61                                           // on Nico Di Bari algorithm
62     };
63 #endif
64