]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/src/AliL3Merger.h
Added the magnetic field as a static member of the AliL3Transform class,
[u/mrichter/AliRoot.git] / HLT / src / AliL3Merger.h
1 #ifndef ALIL3MERGER_H
2 #define ALIL3MERGER_H
3 #define PI 3.14159265358979312
4
5 #include "AliL3RootTypes.h"
6
7 class AliL3Track;
8 class AliL3TrackSegmentData;
9 class AliL3Vertex;
10 class AliL3TrackArray;
11
12 class AliL3Merger {
13  private:
14   Double_t fMaxY;
15   Double_t fMaxZ;
16   Double_t fMaxKappa;
17   Double_t fMaxPsi;
18   Double_t fMaxTgl;
19   void SetArray(Int_t nin);
20   void DeleteArray();
21   Char_t fTrackType;
22   
23   AliL3TrackArray **fInTrack;//!
24   Int_t fNIn;
25
26   AliL3TrackArray *fOutTrack;//!
27
28  protected:
29   Int_t fCurrentTracks;
30   Int_t fSlice;
31   AliL3Vertex *fVertex;//!
32   Bool_t f2Global;
33   Bool_t Is2Global(Bool_t is){f2Global=is;return f2Global;}
34
35  public:
36   AliL3Merger();
37   AliL3Merger(Int_t ntrackarrays,Char_t *tracktype="AliL3Track");
38   virtual ~AliL3Merger();
39
40   Int_t GetNIn(){return fNIn;}
41   AliL3TrackArray *GetInTracks(Int_t in){return fInTrack[in];}
42   AliL3TrackArray *GetOutTracks(){return fOutTrack;}
43
44   Bool_t Is2Global(){return f2Global;}
45   void SetVertex(AliL3Vertex *vertex){fVertex=vertex;}
46   void Reset();
47   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);
48   void FillTracks(Int_t ntracks, AliL3TrackSegmentData* tr); //Fill tracks in fTrackArray[fCurrentTracks] 
49   Double_t GetAngle(Double_t a1,Double_t a2);
50   void* GetNtuple();
51   void* GetNtuple(char *varlist);
52   Bool_t WriteNtuple(char *filename,void* nt);
53   void FillNtuple(void* nt,Float_t *data);
54   void FillNtuple(void* nt,AliL3Track *innertrack,AliL3Track *outertrack);
55   void AddAllTracks();//Copy all Tracks to Output Array
56   void SortGlobalTracks(AliL3Track **tracks, Int_t ntrack);
57   virtual void SortTracks(AliL3Track **tracks, Int_t ntrack);
58   virtual void AddTrack(AliL3TrackArray *mergedtrack,AliL3Track *track);
59   virtual AliL3Track * MultiMerge(AliL3TrackArray *mergedtrack,AliL3Track **tracks, Int_t ntrack);
60   AliL3Track * MergeTracks(AliL3TrackArray *mergedtrack,AliL3Track *t0,AliL3Track *t1);
61   virtual Bool_t IsTrack(AliL3Track *innertrack,AliL3Track *outertrack);
62   Bool_t IsRTrack(AliL3Track *innertrack,AliL3Track *outertrack);
63   Double_t TrackDiff(AliL3Track *innertrack,AliL3Track *outertrack);
64   void Print();
65   void PrintDiff(AliL3Track *innertrack,AliL3Track *outertrack);
66   void PrintTrack(AliL3Track *track);
67 //  Int_t WriteTracks(Char_t *file);
68 //  Int_t WriteInTracks(Char_t *file);
69 //  Int_t WriteAllTracks(Char_t *file);
70   
71   ClassDef(AliL3Merger,1) //Merging base class
72 };
73
74 #endif