]>
Commit | Line | Data |
---|---|---|
108615fc | 1 | #ifndef ALIL3_ClustFinder |
2 | #define ALIL3_ClustFinder | |
3 | ||
4 | #include "AliL3RootTypes.h" | |
5 | class AliL3Transform; | |
6 | ||
7 | #define FLAG_ONEPAD 1 //cluster had only one pad | |
8 | #define FLAG_DOUBLE_PAD 2 | |
9 | #define FLAG_DOUBLE_T 1//4 | |
10 | #define PARAM1 1//4 | |
11 | #define MAX_C 112 //Maximum number of clusters on 1 pad. | |
12 | ||
13 | ||
14 | ||
15 | struct resx | |
16 | { | |
17 | UInt_t t ; | |
18 | UInt_t pad ; | |
19 | UInt_t charge ; | |
20 | UInt_t flags ; | |
21 | Int_t mean ; | |
22 | UInt_t falling ; | |
23 | UInt_t scharge ; | |
24 | ||
25 | Int_t trackID[3]; | |
26 | }; | |
27 | typedef struct resx resx; | |
28 | ||
29 | class AliL3DigitRowData; | |
30 | class AliL3SpacePointData; | |
31 | ||
32 | class AliL3ClustFinder { | |
33 | ||
34 | private: | |
35 | ||
36 | AliL3Transform *fTransform; //! | |
37 | ||
38 | UInt_t fNDigitRowData; | |
39 | AliL3DigitRowData *fDigitRowData; //! | |
40 | ||
41 | ||
42 | AliL3SpacePointData *fSpacePointData; //! | |
43 | Int_t fNClusters; | |
44 | Int_t fMaxNClusters; | |
45 | Int_t fFirstRow; | |
46 | Int_t fLastRow; | |
47 | Int_t fCurrentSlice; | |
48 | Int_t fCurrentPatch; | |
49 | Int_t fCurrentRow; | |
50 | Bool_t fDeconvTime; | |
51 | Bool_t fDeconvPad; | |
52 | UInt_t fThreshold; | |
53 | ||
54 | Float_t fXYErr; | |
55 | Float_t fZErr; | |
56 | ||
57 | public: | |
58 | AliL3ClustFinder(); | |
59 | AliL3ClustFinder(AliL3Transform *transform); | |
60 | virtual ~AliL3ClustFinder(); | |
61 | ||
62 | void SetTransformer( AliL3Transform *transform ); | |
63 | void InitSlice(Int_t slice,Int_t patch,Int_t firstrow, Int_t lastrow,Int_t maxpoints); | |
64 | void InitSlice(Int_t slice,Int_t patch,Int_t maxpoints); | |
65 | void Read(UInt_t ndigits,AliL3DigitRowData *ptr); | |
66 | void ProcessDigits(); | |
67 | void ProcessRow(AliL3DigitRowData *tempPt); | |
68 | void SetOutputArray(AliL3SpacePointData *pt); | |
69 | ||
70 | void memcpy7(UInt_t *dst, UInt_t *src); | |
71 | void mstore(UInt_t *r,UInt_t av,UInt_t pad,UInt_t ch,UInt_t flags,UInt_t mean,Int_t *trackID); | |
72 | void WriteClusters(Int_t ncl,resx *r); | |
73 | ||
74 | void SetXYError(Float_t f) {fXYErr = f;} | |
75 | void SetZError(Float_t f) {fZErr = f;} | |
76 | ||
77 | //Getters | |
78 | Int_t GetNumberOfClusters() {return fNClusters;} | |
79 | ||
80 | ClassDef(AliL3ClustFinder,1) | |
81 | }; | |
82 | ||
83 | #endif |