3 #ifndef AliHLTTPC_ClustFinderNew
4 #define AliHLTTPC_ClustFinderNew
6 class AliHLTTPCDigitRowData;
7 class AliHLTTPCSpacePointData;
9 class AliHLTTPCClustFinderNew {
14 UInt_t fTotalCharge; //tot charge of cluster
15 UInt_t fPad; //pad value
16 UInt_t fTime; //time value
17 ULong64_t fPad2; //for error in XY direction
18 ULong64_t fTime2; //for error in Z direction
19 UInt_t fMean; //mean in time
20 UInt_t fFlags; //different flags
21 UInt_t fChargeFalling; //for deconvolution
22 UInt_t fLastCharge; //for deconvolution
23 UInt_t fLastMergedPad; //dont merge twice per pad
25 typedef struct AliClusterData AliClusterData; //!
28 AliHLTTPCDigitRowData *fDigitRowData; //!
29 AliHLTTPCSpacePointData *fSpacePointData; //!
30 Bool_t fDeconvTime; //deconv in time direction
31 Bool_t fDeconvPad; //deconv in pad direction
32 Bool_t fStdout; //have print out in write clusters
33 Bool_t fCalcerr; //calculate centroid sigmas
34 Bool_t fRawSP; //store centroids in raw system
36 UInt_t fNDigitRowData; //ndigts on row
37 Int_t fFirstRow; //first row
38 Int_t fLastRow; //last row
39 Int_t fCurrentRow; //current active row
40 Int_t fCurrentSlice; //current slice
41 Int_t fCurrentPatch; //current patch
42 Int_t fMatch; //size of match
43 UInt_t fThreshold; //threshold for clusters
44 Int_t fNClusters; //number of found clusters
45 Int_t fMaxNClusters; //max. number of clusters
46 Float_t fXYErr; //fixed error in XY
47 Float_t fZErr; //fixed error in Z
50 void GetTrackID(Int_t pad,Int_t time,Int_t *trackID);
54 AliHLTTPCClustFinderNew();
55 virtual ~AliHLTTPCClustFinderNew();
57 void Read(UInt_t ndigits,AliHLTTPCDigitRowData *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(AliHLTTPCDigitRowData *tempPt);
62 void SetOutputArray(AliHLTTPCSpacePointData *pt);
63 void WriteClusters(Int_t n_clusters,AliClusterData *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;}
72 void SetRawSP(Bool_t f=kFALSE) {fRawSP=f;}
73 Int_t GetNumberOfClusters() const {return fNClusters;}
75 ClassDef(AliHLTTPCClustFinderNew,1) //Fast cluster finder