1 #ifndef AliL3_ClustFinderNew
2 #define AliL3_ClustFinderNew
4 #include "AliL3RootTypes.h"
12 UInt_t fPad2; //for error in XY direction
13 UInt_t fTime2; //for error in Z direction
16 UInt_t fChargeFalling; //for deconvolution
17 UInt_t fLastCharge; //for deconvolution
18 UInt_t fLastMergedPad; //dont merge twice per pad
20 typedef struct ClusterData ClusterData;
22 class AliL3DigitRowData;
23 class AliL3SpacePointData;
25 class AliL3ClustFinderNew {
29 AliL3DigitRowData *fDigitRowData; //!
30 AliL3SpacePointData *fSpacePointData; //!
36 UInt_t fNDigitRowData;
50 void GetTrackID(Int_t pad,Int_t time,Int_t *trackID);
54 AliL3ClustFinderNew();
55 virtual ~AliL3ClustFinderNew();
57 void Read(UInt_t ndigits,AliL3DigitRowData *ptr);
58 void InitSlice(Int_t slice,Int_t patch,Int_t firstrow, Int_t lastrow,Int_t maxpoints);
59 void InitSlice(Int_t slice,Int_t patch,Int_t maxpoints);
61 void ProcessRow(AliL3DigitRowData *tempPt);
62 void SetOutputArray(AliL3SpacePointData *pt);
63 void WriteClusters(Int_t n_clusters,ClusterData *list);
65 void SetXYError(Float_t f) {fXYErr=f;}
66 void SetZError(Float_t f) {fZErr=f;}
67 void SetDeconv(Bool_t f) {fDeconvPad=f; fDeconvTime=f;}
68 void SetThreshold(UInt_t i) {fThreshold=i;}
69 void SetMatchWidth(UInt_t i) {fMatch=i;}
70 void SetSTDOutput(Bool_t f=kFALSE) {fstdout=f;}
71 void SetCalcErr(Bool_t f=kTRUE) {fcalcerr=f;}
73 Int_t GetNumberOfClusters() {return fNClusters;}
75 ClassDef(AliL3ClustFinderNew,1) //Fast cluster finder