3 #ifndef AliL3_ClustFinderNew
4 #define AliL3_ClustFinderNew
6 #include "AliL3RootTypes.h"
14 UInt_t fPad2; //for error in XY direction
15 ULong64_t fTime2; //for error in Z direction
18 UInt_t fChargeFalling; //for deconvolution
19 UInt_t fLastCharge; //for deconvolution
20 UInt_t fLastMergedPad; //dont merge twice per pad
22 typedef struct AliClusterData AliClusterData;
24 class AliL3DigitRowData;
25 class AliL3SpacePointData;
27 class AliL3ClustFinderNew {
31 AliL3DigitRowData *fDigitRowData; //!
32 AliL3SpacePointData *fSpacePointData; //!
33 Bool_t fDeconvTime; //deconv in time direction
34 Bool_t fDeconvPad; //deconv in pad direction
35 Bool_t fStdout; //have print out in write clusters
36 Bool_t fCalcerr; //calculate centroid sigmas
37 Bool_t fRawSP; //store centroids in raw system
39 UInt_t fNDigitRowData; //ndigts on row
40 Int_t fFirstRow; //first row
41 Int_t fLastRow; //last row
42 Int_t fCurrentRow; //current active row
43 Int_t fCurrentSlice; //current slice
44 Int_t fCurrentPatch; //current patch
45 Int_t fMatch; //size of match
46 UInt_t fThreshold; //threshold for clusters
47 Int_t fNClusters; //number of found clusters
48 Int_t fMaxNClusters; //max. number of clusters
49 Float_t fXYErr; //fixed error in XY
50 Float_t fZErr; //fixed error in Z
53 void GetTrackID(Int_t pad,Int_t time,Int_t *trackID);
57 AliL3ClustFinderNew();
58 virtual ~AliL3ClustFinderNew();
60 void Read(UInt_t ndigits,AliL3DigitRowData *ptr);
61 void InitSlice(Int_t slice,Int_t patch,Int_t firstrow, Int_t lastrow,Int_t maxpoints);
62 void InitSlice(Int_t slice,Int_t patch,Int_t maxpoints);
64 void ProcessRow(AliL3DigitRowData *tempPt);
65 void SetOutputArray(AliL3SpacePointData *pt);
66 void WriteClusters(Int_t n_clusters,AliClusterData *list);
68 void SetXYError(Float_t f) {fXYErr=f;}
69 void SetZError(Float_t f) {fZErr=f;}
70 void SetDeconv(Bool_t f) {fDeconvPad=f; fDeconvTime=f;}
71 void SetThreshold(UInt_t i) {fThreshold=i;}
72 void SetMatchWidth(UInt_t i) {fMatch=i;}
73 void SetSTDOutput(Bool_t f=kFALSE) {fStdout=f;}
74 void SetCalcErr(Bool_t f=kTRUE) {fCalcerr=f;}
75 void SetRawSP(Bool_t f=kFALSE) {fRawSP=f;}
76 Int_t GetNumberOfClusters() const {return fNClusters;}
78 ClassDef(AliL3ClustFinderNew,1) //Fast cluster finder