4de874d1 |
1 | #ifndef ALIL3_HOUGHTRANSFORMER |
2 | #define ALIL3_HOUGHTRANSFORMER |
3 | |
4 | #include "AliL3RootTypes.h" |
5 | |
6 | struct AliL3Digits |
7 | { |
8 | UShort_t fCharge; |
9 | UChar_t fPad; |
10 | UShort_t fTime; |
11 | Int_t fIndex; |
12 | AliL3Digits *nextPhiRowPixel; |
13 | AliL3Digits *nextRowPixel; |
14 | }; |
15 | |
16 | struct AliL3HoughContainer |
17 | { |
18 | void *first; |
19 | void *last; |
20 | }; |
21 | |
22 | class TH2F; |
23 | class AliL3Transform; |
24 | class AliL3HoughEvaluate; |
25 | class AliL3TrackArray; |
26 | |
27 | class AliL3HoughTransformer : public TObject { |
28 | |
29 | private: |
30 | |
31 | friend class AliL3HoughEval; |
32 | |
33 | AliL3Transform *fTransform; //! |
34 | |
35 | Int_t fNPhiSegments; //Number of patches in phi. |
36 | Float_t fEtaMin; |
37 | Float_t fEtaMax; |
38 | Int_t fNumEtaSegments; |
39 | Int_t fNumOfPadRows; |
40 | |
41 | AliL3HoughContainer *fRowContainer; //! |
42 | AliL3HoughContainer *fPhiRowContainer; //! |
43 | Int_t fContainerBounds; |
44 | Int_t fNDigits; |
45 | Int_t **fIndex; //! |
46 | |
47 | |
48 | Int_t fSlice; |
49 | Int_t fPatch; |
50 | |
51 | public: |
52 | AliL3HoughTransformer(); |
53 | AliL3HoughTransformer(Int_t slice,Int_t patch,Float_t *etarange,Int_t phi_segments); |
54 | virtual ~AliL3HoughTransformer(); |
55 | |
56 | void Transform2Circle(TH2F *hist,Int_t middle_row); |
57 | void Transform2Circle(TH2F *hist); |
58 | void Transform2Line(TH2F *hist,Int_t ref_row,Int_t *rowrange,Double_t *phirange,TH2F *raw=0); |
59 | void TransformLines2Circle(TH2F *hist,AliL3TrackArray *tracks); |
60 | void GetPixels(Char_t *rootfile,TH2F *hist=0); |
61 | void InitTemplates(TH2F *hist); |
62 | void CountBins(); |
63 | |
64 | ClassDef(AliL3HoughTransformer,1) |
65 | |
66 | }; |
67 | |
68 | #endif |