]>
Commit | Line | Data |
---|---|---|
3e87ef69 | 1 | // @(#) $Id$ |
2 | ||
c62b480b | 3 | #ifndef ALIL3HOUGHTRANSFORMERGLOBAL_H |
4 | #define ALIL3HOUGHTRANSFORMERGLOBAL_H | |
3e87ef69 | 5 | |
4aa41877 | 6 | #include "AliHLTRootTypes.h" |
7 | #include "AliHLTHoughTransformer.h" | |
3e87ef69 | 8 | |
4aa41877 | 9 | class AliHLTHistogram; |
10 | class AliHLTMemHandler; | |
11 | class AliHLTTrackArray; | |
12 | class AliHLTHoughMaxFinder; | |
3e87ef69 | 13 | class TH2F; |
14 | ||
4aa41877 | 15 | struct AliHLTSeed { |
c62b480b | 16 | Float_t fPhi;//Track emission angle |
17 | Float_t fRadius;//Track radius | |
18 | Float_t fEta;//Track eta | |
19 | Int_t fIndex;//index? | |
3e87ef69 | 20 | }; |
21 | ||
4aa41877 | 22 | class AliHLTHoughTransformerGlobal : public AliHLTHoughTransformer { |
c62b480b | 23 | |
3e87ef69 | 24 | public: |
4aa41877 | 25 | AliHLTHoughTransformerGlobal(); |
26 | AliHLTHoughTransformerGlobal(Char_t *path,Int_t event=0); | |
27 | virtual ~AliHLTHoughTransformerGlobal(); | |
3e87ef69 | 28 | |
b2a02bce | 29 | void CreateHistograms(Float_t ptmin,Int_t nxbin,Int_t nybin); |
298edb8a | 30 | void CreateHistograms(Float_t ptmin,Float_t ptmax,Float_t pres,Int_t nybin,Float_t psi) { |
4aa41877 | 31 | AliHLTHoughTransformer::CreateHistograms(ptmin,ptmax,pres,nybin,psi); |
298edb8a | 32 | } |
33 | void CreateHistograms(Int_t nxbin,Float_t ptmin,Int_t nybin,Float_t phimin,Float_t phimax) { | |
4aa41877 | 34 | AliHLTHoughTransformer::CreateHistograms(nxbin,ptmin,nybin,phimin,phimax); |
298edb8a | 35 | } |
36 | void CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax, | |
37 | Int_t nybin,Float_t ymin,Float_t ymax) { | |
4aa41877 | 38 | AliHLTHoughTransformer::CreateHistograms(nxbin,xmin,xmax,nybin,ymin,ymax); |
298edb8a | 39 | } |
4aa41877 | 40 | void VerifyTracks(AliHLTTrackArray *tracks,Int_t &index); |
3e87ef69 | 41 | void TransformCircle(); |
298edb8a | 42 | void TransformCircle(Int_t *row_range,Int_t every) { |
4aa41877 | 43 | AliHLTHoughTransformer::TransformCircle(row_range,every); |
298edb8a | 44 | } |
3e87ef69 | 45 | void TransformCircleC(); |
298edb8a | 46 | void TransformCircleC(Int_t *rowrange,Int_t every){ |
4aa41877 | 47 | AliHLTHoughTransformer::TransformCircleC(rowrange,every); |
298edb8a | 48 | } |
3e87ef69 | 49 | void DefineRegion(Float_t ptmin,Float_t linephi,Int_t seedpadrow); |
50 | void LoadActiveSlices(Bool_t binary=kTRUE); | |
51 | void UnloadActiveSlices(); | |
c62b480b | 52 | void DisplayActiveRegion(TH2F *hist,Int_t etaindex=0); |
3e87ef69 | 53 | |
54 | void SetSeedPadRow(Int_t i) {fSeedPadRow=i;} | |
55 | ||
4aa41877 | 56 | AliHLTTrackArray *GetTracks() {return fTracks;} |
3e87ef69 | 57 | |
c62b480b | 58 | private: |
59 | Int_t fEvent;//Event index | |
60 | Char_t fPath[1024];//path to the input files | |
61 | Int_t *fPadMin; //! | |
62 | Int_t *fPadMax; //! | |
63 | Int_t fNActiveSlice;//number of active slices | |
64 | Float_t fPsi;//psi range | |
65 | Float_t fPtMin;//minimum pt | |
66 | Int_t fSeedPadRow;//? | |
4aa41877 | 67 | AliHLTMemHandler **fMemHandler; //! |
68 | AliHLTTrackArray *fTracks; //! | |
69 | AliHLTHoughMaxFinder *fPeakFinder; //! | |
c62b480b | 70 | |
71 | void Rotate(Float_t *xyz,Int_t relslice); | |
4aa41877 | 72 | void FindPeaks(AliHLTHistogram *hist,Float_t eta); |
73 | Int_t LoadClusterSeeds(AliHLTSeed *seeds); | |
c62b480b | 74 | Float_t CalculateBorder(Float_t *xyz,Int_t charge); |
75 | ||
4aa41877 | 76 | ClassDef(AliHLTHoughTransformerGlobal,1) |
3e87ef69 | 77 | |
78 | }; | |
79 | ||
4aa41877 | 80 | typedef AliHLTHoughTransformerGlobal AliL3HoughTransformerGlobal; // for backward compatibility |
81 | ||
3e87ef69 | 82 | #endif |
83 | ||
84 | ||
85 | ||
86 |