1 #ifndef ALIL3_HOUGHTRANSFORMER
2 #define ALIL3_HOUGHTRANSFORMER
4 #include "AliL3RootTypes.h"
12 AliL3Digits *fNextVolumePixel;
13 //AliL3Digits *nextPhiRowPixel;
14 AliL3Digits *nextRowPixel;
17 struct AliL3HoughContainer
27 class AliL3HoughEvaluate;
28 class AliL3TrackArray;
29 class AliL3DigitRowData;
31 class AliL3HoughTransformer : public TObject {
35 friend class AliL3HoughEval;
37 AliL3Transform *fTransform; //!
39 Int_t fNPhiSegments; //Number of patches in phi.
42 Int_t fNumEtaSegments;
45 Int_t fBinTableBounds;
47 UInt_t fNDigitRowData; //!
48 AliL3DigitRowData *fDigitRowData; //!
50 AliL3HoughContainer *fRowContainer; //!
51 AliL3HoughContainer *fPhiRowContainer; //!
52 AliL3HoughContainer *fVolume; //!
54 Int_t fContainerBounds;
56 Int_t **fBinTable; //!
58 UChar_t **fTrackTable; //!
59 AliL3Histogram *fHistoPt;
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=1);
68 virtual ~AliL3HoughTransformer();
71 void TransformTables(AliL3Histogram **histos,AliL3Histogram **images=0);
72 void SetInputData(UInt_t ndigits,AliL3DigitRowData *ptr);
74 void SetHistogram(AliL3Histogram *hist) {fHistoPt = hist;}
76 void Transform2Circle(TH2F *hist,Int_t eta_index);
77 void Transform2Circle(TH2F **histos,Int_t n_eta_segments,UInt_t ndigits,AliL3DigitRowData *ptr);
78 void Transform2Line(TH2F *hist,Int_t ref_row,Int_t *rowrange,Double_t *phirange,TH2F *raw=0);
79 void TransformLines2Circle(TH2F *hist,AliL3TrackArray *tracks);
80 void GetPixels(Char_t *rootfile,TH2F *hist=0);
81 void InitTemplates(TH2F *hist);
83 ClassDef(AliL3HoughTransformer,1)