]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/Ref/AliHLTTPCMerger.h
Effective c++ corrections (T.Pocheptsov)
[u/mrichter/AliRoot.git] / HLT / TPCLib / Ref / AliHLTTPCMerger.h
1 // @(#) $Id$
2 #ifndef ALIHLTTPCMERGER_H
3 #define ALIHLTTPCMERGER_H
4 #define PI 3.14159265358979312
5
6 #include "AliHLTTPCRootTypes.h"
7
8 class AliHLTTPCTrack;
9 class AliHLTTPCTrackSegmentData;
10 class AliHLTTPCVertex;
11 class AliHLTTPCTrackArray;
12
13 class AliHLTTPCMerger {
14  private:
15   Double_t fMaxY;
16   Double_t fMaxZ;
17   Double_t fMaxKappa;
18   Double_t fMaxPsi;
19   Double_t fMaxTgl;
20   void SetArray(Int_t nin);
21   void DeleteArray();
22   Char_t fTrackType;
23   
24   AliHLTTPCTrackArray **fInTrack;//!
25   Int_t fNIn;
26
27   AliHLTTPCTrackArray *fOutTrack;//!
28
29  protected:
30   Int_t fCurrentTracks;
31   Int_t fSlice;
32   AliHLTTPCVertex *fVertex;//!
33   Bool_t f2Global;
34   Bool_t Is2Global(Bool_t is){f2Global=is;return f2Global;}
35   void InitMerger(Int_t ntrackarrays,Char_t *tracktype="AliHLTTPCTrack");
36   
37  public:
38   AliHLTTPCMerger();
39   virtual ~AliHLTTPCMerger();
40
41   Int_t GetNIn(){return fNIn;}
42   AliHLTTPCTrackArray *GetInTracks(Int_t in){return fInTrack[in];}
43   AliHLTTPCTrackArray *GetOutTracks(){return fOutTrack;}
44
45   Bool_t Is2Global(){return f2Global;}
46   void SetVertex(AliHLTTPCVertex *vertex){fVertex=vertex;}
47   void Reset();
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);
51   void* GetNtuple();
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);
65   void Print();
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);
71   
72   ClassDef(AliHLTTPCMerger,1) //Merging base class
73 };
74
75 #endif