]>
Commit | Line | Data |
---|---|---|
a38a7850 | 1 | // @(#) $Id$ |
c2f37813 | 2 | // Original: AliL3ClustFinderNew.h,v 1.13 2004/06/18 10:55:26 loizides |
a38a7850 | 3 | |
4 | #ifndef AliHLTTPC_ClusterFinder | |
5 | #define AliHLTTPC_ClusterFinder | |
6 | ||
46b33a24 | 7 | #include "AliHLTLogging.h" |
8 | ||
a38a7850 | 9 | class AliHLTTPCSpacePointData; |
10 | class AliHLTTPCDigitReader; | |
11 | ||
46b33a24 | 12 | class AliHLTTPCClusterFinder : public AliHLTLogging { |
a38a7850 | 13 | |
14 | public: | |
15 | struct AliClusterData | |
16 | { | |
17 | UInt_t fTotalCharge; //tot charge of cluster | |
18 | UInt_t fPad; //pad value | |
19 | UInt_t fTime; //time value | |
20 | ULong64_t fPad2; //for error in XY direction | |
21 | ULong64_t fTime2; //for error in Z direction | |
22 | UInt_t fMean; //mean in time | |
23 | UInt_t fFlags; //different flags | |
24 | UInt_t fChargeFalling; //for deconvolution | |
25 | UInt_t fLastCharge; //for deconvolution | |
26 | UInt_t fLastMergedPad; //dont merge twice per pad | |
27 | }; | |
28 | typedef struct AliClusterData AliClusterData; //! | |
29 | ||
30 | private: | |
31 | AliHLTTPCSpacePointData *fSpacePointData; //! | |
32 | AliHLTTPCDigitReader *fDigitReader; | |
33 | ||
34 | UChar_t* fPtr; //pointer to packed block | |
35 | unsigned long fSize; //packed block size | |
36 | Bool_t fDeconvTime; //deconv in time direction | |
37 | Bool_t fDeconvPad; //deconv in pad direction | |
38 | Bool_t fStdout; //have print out in write clusters | |
39 | Bool_t fCalcerr; //calculate centroid sigmas | |
40 | Bool_t fRawSP; //store centroids in raw system | |
41 | ||
42 | ||
43 | Int_t fFirstRow; //first row | |
44 | Int_t fLastRow; //last row | |
45 | Int_t fCurrentRow; //current active row | |
46 | Int_t fCurrentSlice; //current slice | |
47 | Int_t fCurrentPatch; //current patch | |
48 | Int_t fMatch; //size of match | |
49 | UInt_t fThreshold; //threshold for clusters | |
84645eb0 | 50 | /** threshold for zero suppression (applied per bin) */ |
51 | Int_t fSignalThreshold; | |
a38a7850 | 52 | Int_t fNClusters; //number of found clusters |
53 | Int_t fMaxNClusters; //max. number of clusters | |
54 | Float_t fXYErr; //fixed error in XY | |
55 | Float_t fZErr; //fixed error in Z | |
5235c3e9 | 56 | |
57 | Float_t fOccupancyLimit; // Occupancy Limit | |
58 | ||
a38a7850 | 59 | |
60 | #ifdef do_mc | |
61 | void GetTrackID(Int_t pad,Int_t time,Int_t *trackID); | |
62 | #endif | |
63 | ||
64 | public: | |
46b33a24 | 65 | /** standard constructor */ |
a38a7850 | 66 | AliHLTTPCClusterFinder(); |
46b33a24 | 67 | /** not a valid copy constructor, defined according to effective C++ style */ |
68 | AliHLTTPCClusterFinder(const AliHLTTPCClusterFinder&); | |
69 | /** not a valid assignment op, but defined according to effective C++ style */ | |
70 | AliHLTTPCClusterFinder& operator=(const AliHLTTPCClusterFinder&); | |
71 | /** destructor */ | |
a38a7850 | 72 | virtual ~AliHLTTPCClusterFinder(); |
73 | ||
74 | void Read(void* ptr,unsigned long size); | |
75 | ||
76 | void InitSlice(Int_t slice,Int_t patch,Int_t firstrow, Int_t lastrow,Int_t maxpoints); | |
77 | void InitSlice(Int_t slice,Int_t patch,Int_t maxpoints); | |
78 | void ProcessDigits(); | |
79 | ||
80 | void SetOutputArray(AliHLTTPCSpacePointData *pt); | |
81 | void WriteClusters(Int_t n_clusters,AliClusterData *list); | |
82 | ||
83 | void SetXYError(Float_t f) {fXYErr=f;} | |
84 | void SetZError(Float_t f) {fZErr=f;} | |
85 | void SetDeconv(Bool_t f) {fDeconvPad=f; fDeconvTime=f;} | |
86 | void SetThreshold(UInt_t i) {fThreshold=i;} | |
5235c3e9 | 87 | void SetOccupancyLimit(Float_t f) {fOccupancyLimit=f;} |
84645eb0 | 88 | void SetSignalThreshold(Int_t i) {fSignalThreshold=i;} |
a38a7850 | 89 | void SetMatchWidth(UInt_t i) {fMatch=i;} |
90 | void SetSTDOutput(Bool_t f=kFALSE) {fStdout=f;} | |
91 | void SetCalcErr(Bool_t f=kTRUE) {fCalcerr=f;} | |
92 | void SetRawSP(Bool_t f=kFALSE) {fRawSP=f;} | |
93 | void SetReader(AliHLTTPCDigitReader* f){fDigitReader = f;} | |
94 | Int_t GetNumberOfClusters() const {return fNClusters;} | |
95 | ||
db16520a | 96 | ClassDef(AliHLTTPCClusterFinder,0) //Fast cluster finder |
a38a7850 | 97 | }; |
98 | #endif |