]>
Commit | Line | Data |
---|---|---|
3e87ef69 | 1 | // @(#) $Id$ |
108615fc | 2 | #ifndef ALIL3MERGER_H |
3 | #define ALIL3MERGER_H | |
5a31e9df | 4 | //#define PI 3.14159265358979312 |
108615fc | 5 | |
6 | #include "AliL3RootTypes.h" | |
7 | ||
8 | class AliL3Track; | |
9 | class AliL3TrackSegmentData; | |
10 | class AliL3Vertex; | |
108615fc | 11 | class AliL3TrackArray; |
12 | ||
13 | class AliL3Merger { | |
14 | private: | |
b1ed0288 | 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 | |
5dcd65ea | 21 | |
108615fc | 22 | AliL3TrackArray **fInTrack;//! |
b1ed0288 | 23 | Int_t fNIn; //ntracks |
108615fc | 24 | |
25 | AliL3TrackArray *fOutTrack;//! | |
26 | ||
b1ed0288 | 27 | void SetArray(Int_t nin); |
28 | void DeleteArray(); | |
29 | ||
108615fc | 30 | protected: |
b1ed0288 | 31 | Int_t fCurrentTracks; //current number |
32 | Int_t fSlice; //slice | |
33 | AliL3Vertex *fVertex; //! | |
34 | Bool_t f2Global; //global | |
108615fc | 35 | Bool_t Is2Global(Bool_t is){f2Global=is;return f2Global;} |
0a86fbb7 | 36 | void InitMerger(Int_t ntrackarrays,Char_t *tracktype="AliL3Track"); |
37 | ||
108615fc | 38 | public: |
39 | AliL3Merger(); | |
108615fc | 40 | virtual ~AliL3Merger(); |
41 | ||
b1ed0288 | 42 | Int_t GetNIn() const {return fNIn;} |
108615fc | 43 | AliL3TrackArray *GetInTracks(Int_t in){return fInTrack[in];} |
44 | AliL3TrackArray *GetOutTracks(){return fOutTrack;} | |
45 | ||
b1ed0288 | 46 | Bool_t Is2Global() const {return f2Global;} |
108615fc | 47 | void SetVertex(AliL3Vertex *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, AliL3TrackSegmentData* tr); //Fill tracks in fTrackArray[fCurrentTracks] | |
51 | Double_t GetAngle(Double_t a1,Double_t a2); | |
b1ed0288 | 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 ; | |
108615fc | 56 | void FillNtuple(void* nt,AliL3Track *innertrack,AliL3Track *outertrack); |
57 | void AddAllTracks();//Copy all Tracks to Output Array | |
58 | void SortGlobalTracks(AliL3Track **tracks, Int_t ntrack); | |
b1ed0288 | 59 | virtual void SortTracks(AliL3Track **tracks, Int_t ntrack) const; |
b661165c | 60 | virtual void AddTrack(AliL3TrackArray *mergedtrack,AliL3Track *track); |
5dcd65ea | 61 | virtual AliL3Track * MultiMerge(AliL3TrackArray *mergedtrack,AliL3Track **tracks, Int_t ntrack); |
108615fc | 62 | AliL3Track * MergeTracks(AliL3TrackArray *mergedtrack,AliL3Track *t0,AliL3Track *t1); |
5dcd65ea | 63 | virtual Bool_t IsTrack(AliL3Track *innertrack,AliL3Track *outertrack); |
108615fc | 64 | Bool_t IsRTrack(AliL3Track *innertrack,AliL3Track *outertrack); |
65 | Double_t TrackDiff(AliL3Track *innertrack,AliL3Track *outertrack); | |
66 | void Print(); | |
67 | void PrintDiff(AliL3Track *innertrack,AliL3Track *outertrack); | |
68 | void PrintTrack(AliL3Track *track); | |
108615fc | 69 | |
b661165c | 70 | ClassDef(AliL3Merger,1) //Merging base class |
108615fc | 71 | }; |
72 | ||
73 | #endif |