]>
Commit | Line | Data |
---|---|---|
3e87ef69 | 1 | // @(#) $Id$ |
2 | ||
b2a02bce | 3 | #ifndef ALIL3HOUGH |
4 | #define ALIL3HOUGH | |
f000f8a5 | 5 | |
6 | #include "AliL3RootTypes.h" | |
7 | ||
8 | class AliL3HoughMaxFinder; | |
237d3f5c | 9 | class AliL3HoughBaseTransformer; |
f80b98cb | 10 | class AliL3Histogram; |
95a00d93 | 11 | class AliL3MemHandler; |
f80b98cb | 12 | class AliL3FileHandler; |
13 | class AliL3HoughEval; | |
f80b98cb | 14 | class AliL3TrackArray; |
b1886074 | 15 | class AliL3HoughMerger; |
16 | class AliL3HoughIntMerger; | |
1c404dd5 | 17 | class AliL3HoughGlobalMerger; |
3e87ef69 | 18 | class AliL3Benchmark; |
f000f8a5 | 19 | |
de3c3890 | 20 | #ifdef use_newio |
21 | #include <AliRunLoader.h> | |
22 | #endif | |
23 | ||
b1886074 | 24 | class AliL3Hough { |
f000f8a5 | 25 | |
26 | private: | |
b2a02bce | 27 | Char_t *fInputFile;//! |
0bd0c1ef | 28 | Char_t *fInputPtr;//! |
b2a02bce | 29 | Char_t fPath[1024]; |
4fc9a6a4 | 30 | Bool_t fBinary; |
a6008206 | 31 | Bool_t fAddHistograms; |
b1886074 | 32 | Bool_t fDoIterative; |
a6008206 | 33 | Bool_t fWriteDigits; |
d96f6a4a | 34 | Bool_t fUse8bits; |
f80b98cb | 35 | Int_t fNEtaSegments; |
1c404dd5 | 36 | Int_t fNPatches; |
636080ea | 37 | Int_t fVersion; //which HoughTransformer to use |
3bb06991 | 38 | Int_t fCurrentSlice; |
b2a02bce | 39 | Int_t fEvent; |
40 | ||
41 | Int_t fPeakThreshold[6]; | |
42 | Float_t fLowPt[6]; | |
43 | Float_t fUpperPt[6]; | |
44 | Float_t fPtRes[6]; | |
45 | Float_t fPhi[6]; | |
46 | Int_t fNBinX[6]; | |
47 | Int_t fNBinY[6]; | |
48 | Int_t fThreshold[6]; | |
49 | Int_t fNSaveIterations; //for HoughtransformerVhdl | |
5a31e9df | 50 | |
51 | //parameters for the peak finder: | |
52 | Int_t fKappaSpread; | |
53 | Float_t fPeakRatio; | |
636080ea | 54 | |
0bd0c1ef | 55 | Float_t fZVertex; |
56 | ||
95a00d93 | 57 | AliL3MemHandler **fMemHandler; //! |
237d3f5c | 58 | AliL3HoughBaseTransformer **fHoughTransformer; //! |
a6008206 | 59 | AliL3HoughEval **fEval; //! |
60 | AliL3HoughMaxFinder *fPeakFinder; //! | |
b1886074 | 61 | AliL3TrackArray **fTracks; //! |
3e87ef69 | 62 | AliL3TrackArray *fGlobalTracks; //! |
b1886074 | 63 | AliL3HoughMerger *fMerger; //! |
64 | AliL3HoughIntMerger *fInterMerger; //! | |
1c404dd5 | 65 | AliL3HoughGlobalMerger *fGlobalMerger; //! |
3e87ef69 | 66 | AliL3Benchmark *fBenchmark; //! |
1c404dd5 | 67 | |
de3c3890 | 68 | #ifdef use_newio |
69 | AliRunLoader *fRunLoader; | |
70 | #endif | |
71 | ||
b1886074 | 72 | void CleanUp(); |
0309a5ee | 73 | Double_t GetCpuTime(); |
4fc9a6a4 | 74 | |
f000f8a5 | 75 | public: |
4fc9a6a4 | 76 | |
f000f8a5 | 77 | AliL3Hough(); |
0bd0c1ef | 78 | AliL3Hough(Char_t *path,Bool_t binary,Int_t n_eta_segments=100,Bool_t bit8=kFALSE,Int_t tv=0,Char_t *infile=0,Char_t *ptr=0); |
f000f8a5 | 79 | virtual ~AliL3Hough(); |
de3c3890 | 80 | |
81 | #ifdef use_newio | |
82 | void SetRunLoader(AliRunLoader *runloader) {fRunLoader = runloader;} | |
83 | #endif | |
84 | ||
0bd0c1ef | 85 | void Init(Char_t *path,Bool_t binary,Int_t n_eta_segments=100,Bool_t bit8=kFALSE,Int_t tv=0,Char_t *infile=0,Char_t *ptr=0,Float_t zvertex=0.0); |
6dbc57b4 | 86 | void Init(Bool_t doit=kFALSE, Bool_t addhists=kFALSE); |
87 | ||
a6008206 | 88 | void Process(Int_t minslice,Int_t maxslice); |
208b54c5 | 89 | void ReadData(Int_t slice,Int_t eventnr=0); |
3e87ef69 | 90 | void Transform(Int_t *row_range = 0); |
b1886074 | 91 | void ProcessSliceIter(); |
92 | void ProcessPatchIter(Int_t patch); | |
93 | void MergePatches(); | |
94 | void MergeInternally(); | |
44c7f8de | 95 | void MergeEtaSlices(); |
96 | ||
a6008206 | 97 | void FindTrackCandidates(); |
de3c3890 | 98 | void FindTrackCandidatesRow(); |
a6008206 | 99 | void AddAllHistograms(); |
0bd0c1ef | 100 | void AddAllHistogramsRows(); |
0309a5ee | 101 | Int_t Evaluate(Int_t road_width=1,Int_t nrowstomiss=1); |
a4639de2 | 102 | void EvaluatePatch(Int_t i,Int_t road_width,Int_t nrowstomiss); |
3fe49b5b | 103 | void WriteTracks(Int_t slice,Char_t *path="./"); |
b2a02bce | 104 | void WriteTracks(Char_t *path); |
a6008206 | 105 | void WriteDigits(Char_t *outfile="output_digits.root"); |
3fe49b5b | 106 | void InitEvaluate(); |
3e87ef69 | 107 | void DoBench(Char_t *filename); |
b2a02bce | 108 | void AddTracks(); |
3fe49b5b | 109 | |
4fc9a6a4 | 110 | //Setters |
111 | void SetNEtaSegments(Int_t i) {fNEtaSegments = i;} | |
a6008206 | 112 | void SetAddHistograms() {fAddHistograms = kTRUE;} |
b1886074 | 113 | void DoIterative() {fDoIterative = kTRUE;} |
a6008206 | 114 | void SetWriteDigits() {fWriteDigits = kTRUE;} |
b2a02bce | 115 | void SetTransformerParams(Float_t ptres=0,Float_t ptmin=0,Float_t ptmax=0,Int_t ny=0,Int_t patch=-1); |
116 | //{fPtRes=ptres;fNBinY=ny;fLowPt=ptmin;fUpperPt=ptmax;fPhi=psi;} | |
117 | void SetTransformerParams(Int_t nx,Int_t ny,Float_t lpt,Int_t patch); | |
118 | void SetTransformerParams(Int_t nx,Int_t ny,Float_t lpt,Float_t phi); | |
119 | //{fNBinX=nx;fNBinY=ny;fLowPt=lpt;fPhi=phi;} | |
120 | void SetThreshold(Int_t t=3,Int_t patch=-1); | |
636080ea | 121 | void SetNSaveIterations(Int_t t=10) {fNSaveIterations=t;} |
b2a02bce | 122 | void SetPeakThreshold(Int_t threshold=0,Int_t patch=-1); |
3e87ef69 | 123 | |
5a31e9df | 124 | void SetPeakParameters(Int_t kspread,Float_t pratio) {fKappaSpread=kspread; fPeakRatio=pratio;} |
125 | ||
4fc9a6a4 | 126 | //Getters |
237d3f5c | 127 | AliL3HoughBaseTransformer *GetTransformer(Int_t i) {if(!fHoughTransformer[i]) return 0; return fHoughTransformer[i];} |
b1886074 | 128 | AliL3TrackArray *GetTracks(Int_t i) {if(!fTracks[i]) return 0; return fTracks[i];} |
129 | AliL3HoughEval *GetEval(Int_t i) {if(!fEval[i]) return 0; return fEval[i];} | |
130 | AliL3HoughMerger *GetMerger() {if(!fMerger) return 0; return fMerger;} | |
131 | AliL3HoughIntMerger *GetInterMerger() {if(!fInterMerger) return 0; return fInterMerger;} | |
95a00d93 | 132 | AliL3MemHandler *GetMemHandler(Int_t i) {if(!fMemHandler[i]) return 0; return fMemHandler[i];} |
208b54c5 | 133 | AliL3HoughMaxFinder *GetMaxFinder() {return fPeakFinder;} |
f000f8a5 | 134 | |
b1886074 | 135 | ClassDef(AliL3Hough,1) //Hough transform base class |
f000f8a5 | 136 | }; |
137 | ||
138 | #endif | |
6dbc57b4 | 139 | |
140 | ||
141 | ||
142 | ||
143 | ||
144 | ||
145 |