]>
Commit | Line | Data |
---|---|---|
4aa41877 | 1 | // @(#) $Id$ |
2 | #ifndef ALIL3MERGER_H | |
3 | #define ALIL3MERGER_H | |
4 | //#define PI 3.14159265358979312 | |
5 | ||
6 | #include "AliHLTRootTypes.h" | |
7 | ||
8 | class AliHLTTrack; | |
9 | class AliHLTTrackSegmentData; | |
10 | class AliHLTVertex; | |
11 | class AliHLTTrackArray; | |
12 | ||
13 | class AliHLTMerger { | |
14 | private: | |
15 | Double_t fMaxY; //maxy | |
16 | Double_t fMaxZ; //maxz | |
17 | Double_t fMaxKappa;//maxkappa | |
18 | Double_t fMaxPsi; //maxpsi | |
19 | Double_t fMaxTgl; //maxtgl | |
20 | Char_t fTrackType; //track type to merge | |
21 | ||
22 | AliHLTTrackArray **fInTrack;//! | |
23 | Int_t fNIn; //ntracks | |
24 | ||
25 | AliHLTTrackArray *fOutTrack;//! | |
26 | ||
27 | void SetArray(Int_t nin); | |
28 | void DeleteArray(); | |
29 | ||
30 | protected: | |
31 | Int_t fCurrentTracks; //current number | |
32 | Int_t fSlice; //slice | |
33 | AliHLTVertex *fVertex; //! | |
34 | Bool_t f2Global; //global | |
35 | Bool_t Is2Global(Bool_t is){f2Global=is;return f2Global;} | |
36 | void InitMerger(Int_t ntrackarrays,Char_t *tracktype="AliHLTTrack"); | |
37 | ||
38 | public: | |
39 | AliHLTMerger(); | |
40 | virtual ~AliHLTMerger(); | |
41 | ||
42 | Int_t GetNIn() const {return fNIn;} | |
43 | AliHLTTrackArray *GetInTracks(Int_t in){return fInTrack[in];} | |
44 | AliHLTTrackArray *GetOutTracks(){return fOutTrack;} | |
45 | ||
46 | Bool_t Is2Global() const {return f2Global;} | |
47 | void SetVertex(AliHLTVertex *vertex){fVertex=vertex;} | |
48 | void Reset(); | |
49 | void SetParameter(Double_t maxy=1., Double_t maxz=1., Double_t maxkappa=0.001, Double_t maxpsi=0.05, Double_t maxtgl=0.1); | |
50 | void FillTracks(Int_t ntracks, AliHLTTrackSegmentData* tr); //Fill tracks in fTrackArray[fCurrentTracks] | |
51 | Double_t GetAngle(Double_t a1,Double_t a2); | |
52 | void* GetNtuple() const; | |
53 | void* GetNtuple(char *varlist) const; | |
54 | Bool_t WriteNtuple(char *filename,void* nt) const; | |
55 | void FillNtuple(void* nt,Float_t *data) const ; | |
56 | void FillNtuple(void* nt,AliHLTTrack *innertrack,AliHLTTrack *outertrack); | |
57 | void AddAllTracks();//Copy all Tracks to Output Array | |
58 | void SortGlobalTracks(AliHLTTrack **tracks, Int_t ntrack); | |
59 | virtual void SortTracks(AliHLTTrack **tracks, Int_t ntrack) const; | |
60 | virtual void AddTrack(AliHLTTrackArray *mergedtrack,AliHLTTrack *track); | |
61 | virtual AliHLTTrack * MultiMerge(AliHLTTrackArray *mergedtrack,AliHLTTrack **tracks, Int_t ntrack); | |
62 | AliHLTTrack * MergeTracks(AliHLTTrackArray *mergedtrack,AliHLTTrack *t0,AliHLTTrack *t1); | |
63 | virtual Bool_t IsTrack(AliHLTTrack *innertrack,AliHLTTrack *outertrack); | |
64 | Bool_t IsRTrack(AliHLTTrack *innertrack,AliHLTTrack *outertrack); | |
65 | Double_t TrackDiff(AliHLTTrack *innertrack,AliHLTTrack *outertrack); | |
66 | void Print(); | |
67 | void PrintDiff(AliHLTTrack *innertrack,AliHLTTrack *outertrack); | |
68 | void PrintTrack(AliHLTTrack *track); | |
69 | ||
70 | ClassDef(AliHLTMerger,1) //Merging base class | |
71 | }; | |
72 | ||
73 | typedef AliHLTMerger AliL3Merger; // for backward compatibility | |
74 | ||
75 | #endif |