]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/src/AliL3ClustFinderNew.h
Minor updates
[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  public:
47   AliL3ClustFinderNew();
48   AliL3ClustFinderNew(AliL3Transform *transform);
49   virtual ~AliL3ClustFinderNew();
50   
51   void Read(UInt_t ndigits,AliL3DigitRowData *ptr);
52   void InitSlice(Int_t slice,Int_t patch,Int_t firstrow, Int_t lastrow,Int_t maxpoints);
53   void InitSlice(Int_t slice,Int_t patch,Int_t maxpoints);
54   void ProcessDigits();
55   void ProcessRow(AliL3DigitRowData *tempPt);
56   void SetOutputArray(AliL3SpacePointData *pt);
57   void WriteClusters(Int_t n_clusters,ClusterData *list);
58
59   void SetXYError(Float_t f) {fXYErr = f;}
60   void SetZError(Float_t f) {fZErr = f;}
61   void SetTransformer(AliL3Transform *transform) {fTransform = transform;}
62   void SetDeconv(Bool_t f) {fDeconvPad=f; fDeconvTime=f;}
63   
64   Int_t GetNumberOfClusters() {return fNClusters;}
65   
66   ClassDef(AliL3ClustFinderNew,1) //Fast cluster finder
67
68 };
69
70 #endif