]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCClustFinderNew.h
effC++ and warnings
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCClustFinderNew.h
CommitLineData
a6c02c85 1// @(#) $Id$
4aa41877 2// Original: AliHLTClustFinderNew.h,v 1.13 2004/06/18 10:55:26 loizides
a6c02c85 3#ifndef AliHLTTPC_ClustFinderNew
4#define AliHLTTPC_ClustFinderNew
5
6class AliHLTTPCDigitRowData;
7class AliHLTTPCSpacePointData;
8
9class 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