Added the possibility to save the particle id's through the chain, if detailed effici...
[u/mrichter/AliRoot.git] / HLT / src / AliL3ClustFinderNew.h
1 #ifndef AliL3_ClustFinderNew
2 #define AliL3_ClustFinderNew
3
4 #include "AliL3RootTypes.h"
5
6
7 struct ClusterData
8 {
9
10   UInt_t fTotalCharge;
11   UInt_t fPad;
12   UInt_t fTime;
13   UInt_t fMean;
14   UInt_t fFlags;
15   UInt_t fChargeFalling; //for deconvolution
16   UInt_t fLastCharge;    //for deconvolution
17 };
18 typedef struct ClusterData ClusterData;
19
20 class AliL3DigitRowData;
21 class AliL3Transform;
22 class AliL3SpacePointData;
23
24 class AliL3ClustFinderNew {
25  
26  private:
27   
28   AliL3DigitRowData *fDigitRowData; //!
29   AliL3Transform *fTransform; //!
30   AliL3SpacePointData *fSpacePointData; //!
31   Bool_t fDeconvTime;
32   Bool_t fDeconvPad;
33   UInt_t fNDigitRowData;
34   Int_t fFirstRow;
35   Int_t fLastRow;
36   Int_t fCurrentRow;
37   Int_t fCurrentSlice;
38   Int_t fCurrentPatch;
39   Int_t fMatch;
40   UInt_t fThreshold;
41   Int_t fNClusters;
42   Int_t fMaxNClusters;
43   Float_t fXYErr;
44   Float_t fZErr;
45
46 #ifdef do_mc
47   void GetTrackID(Int_t pad,Int_t time,Int_t *trackID);
48 #endif
49   
50  public:
51   AliL3ClustFinderNew();
52   AliL3ClustFinderNew(AliL3Transform *transform);
53   virtual ~AliL3ClustFinderNew();
54   
55   void Read(UInt_t ndigits,AliL3DigitRowData *ptr);
56   void InitSlice(Int_t slice,Int_t patch,Int_t firstrow, Int_t lastrow,Int_t maxpoints);
57   void InitSlice(Int_t slice,Int_t patch,Int_t maxpoints);
58   void ProcessDigits();
59   void ProcessRow(AliL3DigitRowData *tempPt);
60   void SetOutputArray(AliL3SpacePointData *pt);
61   void WriteClusters(Int_t n_clusters,ClusterData *list);
62
63   void SetXYError(Float_t f) {fXYErr = f;}
64   void SetZError(Float_t f) {fZErr = f;}
65   void SetTransformer(AliL3Transform *transform) {fTransform = transform;}
66   void SetDeconv(Bool_t f) {fDeconvPad=f; fDeconvTime=f;}
67   
68   Int_t GetNumberOfClusters() {return fNClusters;}
69   
70   ClassDef(AliL3ClustFinderNew,1) //Fast cluster finder
71
72 };
73
74 #endif