46fbeb8a |
1 | #ifndef AliL3_ClustFinderNew |
2 | #define AliL3_ClustFinderNew |
3 | |
4 | #include "AliL3RootTypes.h" |
5 | |
6 | |
7 | struct ClusterData |
8 | { |
9 | |
10 | UInt_t fTotalCharge; |
11 | UInt_t fPad; |
12 | UInt_t fTime; |
13 | UInt_t fMean; |
14 | UInt_t fFlags; |
99a6d5c9 |
15 | UInt_t fChargeFalling; //for deconvolution |
16 | UInt_t fLastCharge; //for deconvolution |
46fbeb8a |
17 | }; |
18 | typedef struct ClusterData ClusterData; |
19 | |
20 | class AliL3DigitRowData; |
21 | class AliL3Transform; |
22 | class AliL3SpacePointData; |
23 | |
24 | class AliL3ClustFinderNew { |
25 | |
26 | private: |
27 | |
28 | AliL3DigitRowData *fDigitRowData; //! |
29 | AliL3Transform *fTransform; //! |
30 | AliL3SpacePointData *fSpacePointData; //! |
99a6d5c9 |
31 | Bool_t fDeconvTime; |
32 | Bool_t fDeconvPad; |
46fbeb8a |
33 | UInt_t fNDigitRowData; |
34 | Int_t fFirstRow; |
35 | Int_t fLastRow; |
36 | Int_t fCurrentRow; |
37 | Int_t fCurrentSlice; |
38 | Int_t fCurrentPatch; |
39 | Int_t fMatch; |
40 | UInt_t fThreshold; |
41 | Int_t fNClusters; |
42 | Int_t fMaxNClusters; |
43 | Float_t fXYErr; |
44 | Float_t fZErr; |
10f815d9 |
45 | |
46 | #ifdef do_mc |
47 | void GetTrackID(Int_t pad,Int_t time,Int_t *trackID); |
48 | #endif |
46fbeb8a |
49 | |
50 | public: |
51 | AliL3ClustFinderNew(); |
52 | AliL3ClustFinderNew(AliL3Transform *transform); |
53 | virtual ~AliL3ClustFinderNew(); |
54 | |
55 | void Read(UInt_t ndigits,AliL3DigitRowData *ptr); |
56 | void InitSlice(Int_t slice,Int_t patch,Int_t firstrow, Int_t lastrow,Int_t maxpoints); |
57 | void InitSlice(Int_t slice,Int_t patch,Int_t maxpoints); |
58 | void ProcessDigits(); |
59 | void ProcessRow(AliL3DigitRowData *tempPt); |
60 | void SetOutputArray(AliL3SpacePointData *pt); |
61 | void WriteClusters(Int_t n_clusters,ClusterData *list); |
62 | |
63 | void SetXYError(Float_t f) {fXYErr = f;} |
64 | void SetZError(Float_t f) {fZErr = f;} |
65 | void SetTransformer(AliL3Transform *transform) {fTransform = transform;} |
4ec96209 |
66 | void SetDeconv(Bool_t f) {fDeconvPad=f; fDeconvTime=f;} |
46fbeb8a |
67 | |
68 | Int_t GetNumberOfClusters() {return fNClusters;} |
69 | |
b661165c |
70 | ClassDef(AliL3ClustFinderNew,1) //Fast cluster finder |
46fbeb8a |
71 | |
72 | }; |
73 | |
74 | #endif |