]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/src/AliL3Merger.h
Coding conventions.
[u/mrichter/AliRoot.git] / HLT / src / AliL3Merger.h
1 // @(#) $Id$
2 #ifndef ALIL3MERGER_H
3 #define ALIL3MERGER_H
4 //#define PI 3.14159265358979312
5
6 #include "AliL3RootTypes.h"
7
8 class AliL3Track;
9 class AliL3TrackSegmentData;
10 class AliL3Vertex;
11 class AliL3TrackArray;
12
13 class AliL3Merger {
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   AliL3TrackArray **fInTrack;//!
23   Int_t fNIn; //ntracks
24
25   AliL3TrackArray *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   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");
37   
38  public:
39   AliL3Merger();
40   virtual ~AliL3Merger();
41
42   Int_t GetNIn() const {return fNIn;}
43   AliL3TrackArray *GetInTracks(Int_t in){return fInTrack[in];}
44   AliL3TrackArray *GetOutTracks(){return fOutTrack;}
45
46   Bool_t Is2Global() const {return f2Global;}
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);
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);
66   void Print();
67   void PrintDiff(AliL3Track *innertrack,AliL3Track *outertrack);
68   void PrintTrack(AliL3Track *track);
69   
70   ClassDef(AliL3Merger,1) //Merging base class
71 };
72
73 #endif