]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCMerger.h
Acceptance data (Gines)
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCMerger.h
CommitLineData
a6c02c85 1// @(#) $Id$
2#ifndef ALIHLTTPCMERGER_H
3#define ALIHLTTPCMERGER_H
4//#define PI 3.14159265358979312
5
6#include "AliHLTTPCRootTypes.h"
7
8class AliHLTTPCTrack;
9class AliHLTTPCTrackSegmentData;
10class AliHLTTPCVertex;
11class AliHLTTPCTrackArray;
12
13class AliHLTTPCMerger {
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 AliHLTTPCTrackArray **fInTrack;//!
23 Int_t fNIn; //ntracks
24
25 AliHLTTPCTrackArray *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 AliHLTTPCVertex *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="AliHLTTPCTrack");
37
38 public:
39 AliHLTTPCMerger();
40 virtual ~AliHLTTPCMerger();
41
42 Int_t GetNIn() const {return fNIn;}
43 AliHLTTPCTrackArray *GetInTracks(Int_t in){return fInTrack[in];}
44 AliHLTTPCTrackArray *GetOutTracks(){return fOutTrack;}
45
46 Bool_t Is2Global() const {return f2Global;}
47 void SetVertex(AliHLTTPCVertex *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, AliHLTTPCTrackSegmentData* 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,AliHLTTPCTrack *innertrack,AliHLTTPCTrack *outertrack);
57 void AddAllTracks();//Copy all Tracks to Output Array
58 void SortGlobalTracks(AliHLTTPCTrack **tracks, Int_t ntrack);
59 virtual void SortTracks(AliHLTTPCTrack **tracks, Int_t ntrack) const;
60 virtual void AddTrack(AliHLTTPCTrackArray *mergedtrack,AliHLTTPCTrack *track);
61 virtual AliHLTTPCTrack * MultiMerge(AliHLTTPCTrackArray *mergedtrack,AliHLTTPCTrack **tracks, Int_t ntrack);
62 AliHLTTPCTrack * MergeTracks(AliHLTTPCTrackArray *mergedtrack,AliHLTTPCTrack *t0,AliHLTTPCTrack *t1);
63 virtual Bool_t IsTrack(AliHLTTPCTrack *innertrack,AliHLTTPCTrack *outertrack);
64 Bool_t IsRTrack(AliHLTTPCTrack *innertrack,AliHLTTPCTrack *outertrack);
65 Double_t TrackDiff(AliHLTTPCTrack *innertrack,AliHLTTPCTrack *outertrack);
66 void Print();
67 void PrintDiff(AliHLTTPCTrack *innertrack,AliHLTTPCTrack *outertrack);
68 void PrintTrack(AliHLTTPCTrack *track);
69
70 ClassDef(AliHLTTPCMerger,1) //Merging base class
71};
72
73#endif