4 //#define PI 3.14159265358979312
6 #include "AliL3RootTypes.h"
9 class AliL3TrackSegmentData;
11 class AliL3TrackArray;
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
22 AliL3TrackArray **fInTrack;//!
25 AliL3TrackArray *fOutTrack;//!
27 void SetArray(Int_t nin);
31 Int_t fCurrentTracks; //current number
33 AliL3Vertex *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="AliL3Track");
40 virtual ~AliL3Merger();
42 Int_t GetNIn() const {return fNIn;}
43 AliL3TrackArray *GetInTracks(Int_t in){return fInTrack[in];}
44 AliL3TrackArray *GetOutTracks(){return fOutTrack;}
46 Bool_t Is2Global() const {return f2Global;}
47 void SetVertex(AliL3Vertex *vertex){fVertex=vertex;}
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);
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,AliL3Track *innertrack,AliL3Track *outertrack);
57 void AddAllTracks();//Copy all Tracks to Output Array
58 void SortGlobalTracks(AliL3Track **tracks, Int_t ntrack);
59 virtual void SortTracks(AliL3Track **tracks, Int_t ntrack) const;
60 virtual void AddTrack(AliL3TrackArray *mergedtrack,AliL3Track *track);
61 virtual AliL3Track * MultiMerge(AliL3TrackArray *mergedtrack,AliL3Track **tracks, Int_t ntrack);
62 AliL3Track * MergeTracks(AliL3TrackArray *mergedtrack,AliL3Track *t0,AliL3Track *t1);
63 virtual Bool_t IsTrack(AliL3Track *innertrack,AliL3Track *outertrack);
64 Bool_t IsRTrack(AliL3Track *innertrack,AliL3Track *outertrack);
65 Double_t TrackDiff(AliL3Track *innertrack,AliL3Track *outertrack);
67 void PrintDiff(AliL3Track *innertrack,AliL3Track *outertrack);
68 void PrintTrack(AliL3Track *track);
70 ClassDef(AliL3Merger,1) //Merging base class