]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/src/AliL3ClustFinderNew.h
Additional protection
[u/mrichter/AliRoot.git] / HLT / src / AliL3ClustFinderNew.h
CommitLineData
3e87ef69 1// @(#) $Id$
2
46fbeb8a 3#ifndef AliL3_ClustFinderNew
4#define AliL3_ClustFinderNew
5
46fbeb8a 6class AliL3DigitRowData;
46fbeb8a 7class AliL3SpacePointData;
8
9class AliL3ClustFinderNew {
14e76e91 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
46fbeb8a 27 private:
46fbeb8a 28 AliL3DigitRowData *fDigitRowData; //!
46fbeb8a 29 AliL3SpacePointData *fSpacePointData; //!
3e87ef69 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
c3dd27a3 35
b1ed0288 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
10f815d9 48
49#ifdef do_mc
50 void GetTrackID(Int_t pad,Int_t time,Int_t *trackID);
51#endif
46fbeb8a 52
53 public:
54 AliL3ClustFinderNew();
46fbeb8a 55 virtual ~AliL3ClustFinderNew();
56
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);
60 void ProcessDigits();
61 void ProcessRow(AliL3DigitRowData *tempPt);
62 void SetOutputArray(AliL3SpacePointData *pt);
b1ed0288 63 void WriteClusters(Int_t n_clusters,AliClusterData *list);
46fbeb8a 64
77f08cd3 65 void SetXYError(Float_t f) {fXYErr=f;}
66 void SetZError(Float_t f) {fZErr=f;}
4ec96209 67 void SetDeconv(Bool_t f) {fDeconvPad=f; fDeconvTime=f;}
77f08cd3 68 void SetThreshold(UInt_t i) {fThreshold=i;}
69 void SetMatchWidth(UInt_t i) {fMatch=i;}
3e87ef69 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;}
b1ed0288 73 Int_t GetNumberOfClusters() const {return fNClusters;}
46fbeb8a 74
b661165c 75 ClassDef(AliL3ClustFinderNew,1) //Fast cluster finder
46fbeb8a 76};
46fbeb8a 77#endif
b62fa469 78
79