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