]>
Commit | Line | Data |
---|---|---|
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 *fNextVolumePixel; | |
13 | //AliL3Digits *nextPhiRowPixel; | |
14 | AliL3Digits *nextRowPixel; | |
15 | }; | |
16 | ||
17 | struct AliL3HoughContainer | |
18 | { | |
19 | void *first; | |
20 | void *last; | |
21 | }; | |
22 | ||
23 | ||
24 | ||
25 | class AliL3Histogram; | |
26 | class AliL3Transform; | |
27 | class AliL3HoughEvaluate; | |
28 | class AliL3TrackArray; | |
29 | class AliL3DigitRowData; | |
30 | ||
31 | class AliL3HoughTransformer : public TObject { | |
32 | ||
33 | private: | |
34 | ||
35 | friend class AliL3HoughEval; | |
36 | ||
37 | AliL3Transform *fTransform; //! | |
38 | ||
39 | Int_t fNPhiSegments; //Number of patches in phi. | |
40 | Float_t fEtaMin; | |
41 | Float_t fEtaMax; | |
42 | Int_t fNumEtaSegments; | |
43 | Int_t fNumOfPadRows; | |
44 | Int_t fNRowsInPatch; | |
45 | Int_t fBinTableBounds; | |
46 | ||
47 | UInt_t fNDigitRowData; //! | |
48 | AliL3DigitRowData *fDigitRowData; //! | |
49 | ||
50 | AliL3HoughContainer *fRowContainer; //! | |
51 | AliL3HoughContainer *fPhiRowContainer; //! | |
52 | AliL3HoughContainer *fVolume; //! | |
53 | ||
54 | Int_t fContainerBounds; | |
55 | Int_t fNDigits; | |
56 | Int_t **fBinTable; //! | |
57 | Int_t *fEtaIndex; //! | |
58 | Char_t **fTrackTable; //! | |
59 | AliL3Histogram *fHistoPt; | |
60 | ||
61 | Int_t fSlice; | |
62 | Int_t fPatch; | |
63 | ||
64 | public: | |
65 | AliL3HoughTransformer(); | |
66 | AliL3HoughTransformer(Int_t slice,Int_t patch,Float_t *etarange); | |
67 | AliL3HoughTransformer(Int_t slice,Int_t patch,Double_t *etarange=0,Int_t n_eta_segments=90); | |
68 | virtual ~AliL3HoughTransformer(); | |
69 | ||
70 | void InitTables(); | |
71 | void TransformTables(AliL3Histogram **histos,AliL3Histogram **images=0); | |
72 | void SetInputData(UInt_t ndigits,AliL3DigitRowData *ptr); | |
73 | void WriteTables(); | |
74 | void SetHistogram(AliL3Histogram *hist) {fHistoPt = hist;} | |
75 | Double_t CpuTime(); | |
76 | Int_t GetNumEtaSegments() {return fNumEtaSegments;} | |
77 | /* | |
78 | void Transform2Circle(TH2F *hist,Int_t eta_index); | |
79 | void Transform2Circle(TH2F **histos,Int_t n_eta_segments,UInt_t ndigits,AliL3DigitRowData *ptr); | |
80 | void Transform2Line(TH2F *hist,Int_t ref_row,Int_t *rowrange,Double_t *phirange,TH2F *raw=0); | |
81 | void TransformLines2Circle(TH2F *hist,AliL3TrackArray *tracks); | |
82 | void GetPixels(Char_t *rootfile,TH2F *hist=0); | |
83 | void InitTemplates(TH2F *hist); | |
84 | */ | |
85 | ClassDef(AliL3HoughTransformer,1) | |
86 | ||
87 | }; | |
88 | ||
89 | #endif |