La Navale continue ses frappes
[u/mrichter/AliRoot.git] / HLT / hough / AliL3HoughTransformer.h
CommitLineData
4de874d1 1#ifndef ALIL3_HOUGHTRANSFORMER
2#define ALIL3_HOUGHTRANSFORMER
3
4#include "AliL3RootTypes.h"
5
6struct AliL3Digits
7{
8 UShort_t fCharge;
9 UChar_t fPad;
10 UShort_t fTime;
11 Int_t fIndex;
52a2a604 12 AliL3Digits *fNextVolumePixel;
13 //AliL3Digits *nextPhiRowPixel;
4de874d1 14 AliL3Digits *nextRowPixel;
15};
16
17struct AliL3HoughContainer
18{
19 void *first;
20 void *last;
21};
22
4cafa5fc 23
24
25class AliL3Histogram;
4de874d1 26class AliL3Transform;
27class AliL3HoughEvaluate;
28class AliL3TrackArray;
4cafa5fc 29class AliL3DigitRowData;
4de874d1 30
31class 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;
4cafa5fc 44 Int_t fNRowsInPatch;
45 Int_t fBinTableBounds;
46
47 UInt_t fNDigitRowData; //!
48 AliL3DigitRowData *fDigitRowData; //!
4de874d1 49
50 AliL3HoughContainer *fRowContainer; //!
51 AliL3HoughContainer *fPhiRowContainer; //!
52a2a604 52 AliL3HoughContainer *fVolume; //!
4cafa5fc 53
4de874d1 54 Int_t fContainerBounds;
55 Int_t fNDigits;
4cafa5fc 56 Int_t **fBinTable; //!
57 Int_t *fEtaIndex; //!
9f33a1db 58 Char_t **fTrackTable; //!
4cafa5fc 59 AliL3Histogram *fHistoPt;
4de874d1 60
61 Int_t fSlice;
62 Int_t fPatch;
63
64 public:
65 AliL3HoughTransformer();
52a2a604 66 AliL3HoughTransformer(Int_t slice,Int_t patch,Float_t *etarange);
9f33a1db 67 AliL3HoughTransformer(Int_t slice,Int_t patch,Double_t *etarange=0,Int_t n_eta_segments=90);
4de874d1 68 virtual ~AliL3HoughTransformer();
4de874d1 69
4cafa5fc 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;}
9f33a1db 75 Double_t CpuTime();
76 Int_t GetNumEtaSegments() {return fNumEtaSegments;}
4cafa5fc 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 */
4de874d1 85 ClassDef(AliL3HoughTransformer,1)
86
87};
88
89#endif