2 #ifndef ALIHLTTPCMERGER_H
3 #define ALIHLTTPCMERGER_H
4 #define PI 3.14159265358979312
6 #include "AliHLTTPCRootTypes.h"
9 class AliHLTTPCTrackSegmentData;
10 class AliHLTTPCVertex;
11 class AliHLTTPCTrackArray;
13 class AliHLTTPCMerger {
20 void SetArray(Int_t nin);
24 AliHLTTPCTrackArray **fInTrack;//!
27 AliHLTTPCTrackArray *fOutTrack;//!
32 AliHLTTPCVertex *fVertex;//!
34 Bool_t Is2Global(Bool_t is){f2Global=is;return f2Global;}
35 void InitMerger(Int_t ntrackarrays,Char_t *tracktype="AliHLTTPCTrack");
39 virtual ~AliHLTTPCMerger();
41 Int_t GetNIn(){return fNIn;}
42 AliHLTTPCTrackArray *GetInTracks(Int_t in){return fInTrack[in];}
43 AliHLTTPCTrackArray *GetOutTracks(){return fOutTrack;}
45 Bool_t Is2Global(){return f2Global;}
46 void SetVertex(AliHLTTPCVertex *vertex){fVertex=vertex;}
48 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);
49 void FillTracks(Int_t ntracks, AliHLTTPCTrackSegmentData* tr); //Fill tracks in fTrackArray[fCurrentTracks]
50 Double_t GetAngle(Double_t a1,Double_t a2);
52 void* GetNtuple(char *varlist);
53 Bool_t WriteNtuple(char *filename,void* nt);
54 void FillNtuple(void* nt,Float_t *data);
55 void FillNtuple(void* nt,AliHLTTPCTrack *innertrack,AliHLTTPCTrack *outertrack);
56 void AddAllTracks();//Copy all Tracks to Output Array
57 void SortGlobalTracks(AliHLTTPCTrack **tracks, Int_t ntrack);
58 virtual void SortTracks(AliHLTTPCTrack **tracks, Int_t ntrack);
59 virtual void AddTrack(AliHLTTPCTrackArray *mergedtrack,AliHLTTPCTrack *track);
60 virtual AliHLTTPCTrack * MultiMerge(AliHLTTPCTrackArray *mergedtrack,AliHLTTPCTrack **tracks, Int_t ntrack);
61 AliHLTTPCTrack * MergeTracks(AliHLTTPCTrackArray *mergedtrack,AliHLTTPCTrack *t0,AliHLTTPCTrack *t1);
62 virtual Bool_t IsTrack(AliHLTTPCTrack *innertrack,AliHLTTPCTrack *outertrack);
63 Bool_t IsRTrack(AliHLTTPCTrack *innertrack,AliHLTTPCTrack *outertrack);
64 Double_t TrackDiff(AliHLTTPCTrack *innertrack,AliHLTTPCTrack *outertrack);
66 void PrintDiff(AliHLTTPCTrack *innertrack,AliHLTTPCTrack *outertrack);
67 void PrintTrack(AliHLTTPCTrack *track);
68 // Int_t WriteTracks(Char_t *file);
69 // Int_t WriteInTracks(Char_t *file);
70 // Int_t WriteAllTracks(Char_t *file);
72 ClassDef(AliHLTTPCMerger,1) //Merging base class