]>
Commit | Line | Data |
---|---|---|
a6c02c85 | 1 | // @(#) $Id$ |
2 | ||
3 | #ifndef AliHLTTPC_ClustFinderNew | |
4 | #define AliHLTTPC_ClustFinderNew | |
5 | ||
6 | class AliHLTTPCDigitRowData; | |
7 | class AliHLTTPCSpacePointData; | |
8 | ||
9 | class AliHLTTPCClustFinderNew { | |
10 | ||
11 | public: | |
12 | struct AliClusterData | |
13 | { | |
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 | |
24 | }; | |
25 | typedef struct AliClusterData AliClusterData; //! | |
26 | ||
27 | private: | |
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 | |
35 | ||
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 | |
48 | ||
49 | #ifdef do_mc | |
50 | void GetTrackID(Int_t pad,Int_t time,Int_t *trackID); | |
51 | #endif | |
52 | ||
53 | public: | |
54 | AliHLTTPCClustFinderNew(); | |
55 | virtual ~AliHLTTPCClustFinderNew(); | |
56 | ||
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); | |
60 | void ProcessDigits(); | |
61 | void ProcessRow(AliHLTTPCDigitRowData *tempPt); | |
62 | void SetOutputArray(AliHLTTPCSpacePointData *pt); | |
63 | void WriteClusters(Int_t n_clusters,AliClusterData *list); | |
64 | ||
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;} | |
74 | ||
75 | ClassDef(AliHLTTPCClustFinderNew,1) //Fast cluster finder | |
76 | }; | |
77 | #endif | |
78 | ||
79 |