]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCMerger.h
- adapted to AliRoot logging system, messages printed out via AliRoot
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCMerger.h
CommitLineData
a6c02c85 1// @(#) $Id$
4aa41877 2// Original: AliHLTMerger.h,v 1.8 2004/06/11 16:06:33 loizides
a6c02c85 3#ifndef ALIHLTTPCMERGER_H
4#define ALIHLTTPCMERGER_H
2a083ac4 5/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6 * See cxx source for full Copyright notice */
7
8/** @file AliHLTTPCMerger.h
9 @author Uli Frankenfeld, maintained by Matthias Richter
10 @date
11 @brief The HLT TPC merger base class
12*/
13
a6c02c85 14//#define PI 3.14159265358979312
15
16#include "AliHLTTPCRootTypes.h"
17
18class AliHLTTPCTrack;
19class AliHLTTPCTrackSegmentData;
20class AliHLTTPCVertex;
21class AliHLTTPCTrackArray;
22
2a083ac4 23/**
24 * @class AliHLTTPCMerger
25 * The HLTTPC merger base class
26*/
a6c02c85 27class AliHLTTPCMerger {
a6c02c85 28 public:
29 AliHLTTPCMerger();
2a083ac4 30 /** not a valid copy constructor, defined according to effective C++ style */
31 AliHLTTPCMerger(const AliHLTTPCMerger&);
32 /** not a valid assignment op, but defined according to effective C++ style */
33 AliHLTTPCMerger& operator=(const AliHLTTPCMerger&);
34 /** destructor */
a6c02c85 35 virtual ~AliHLTTPCMerger();
36
37 Int_t GetNIn() const {return fNIn;}
38 AliHLTTPCTrackArray *GetInTracks(Int_t in){return fInTrack[in];}
39 AliHLTTPCTrackArray *GetOutTracks(){return fOutTrack;}
40
41 Bool_t Is2Global() const {return f2Global;}
42 void SetVertex(AliHLTTPCVertex *vertex){fVertex=vertex;}
43 void Reset();
44 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);
45 void FillTracks(Int_t ntracks, AliHLTTPCTrackSegmentData* tr); //Fill tracks in fTrackArray[fCurrentTracks]
46 Double_t GetAngle(Double_t a1,Double_t a2);
47 void* GetNtuple() const;
48 void* GetNtuple(char *varlist) const;
49 Bool_t WriteNtuple(char *filename,void* nt) const;
50 void FillNtuple(void* nt,Float_t *data) const ;
51 void FillNtuple(void* nt,AliHLTTPCTrack *innertrack,AliHLTTPCTrack *outertrack);
52 void AddAllTracks();//Copy all Tracks to Output Array
53 void SortGlobalTracks(AliHLTTPCTrack **tracks, Int_t ntrack);
54 virtual void SortTracks(AliHLTTPCTrack **tracks, Int_t ntrack) const;
55 virtual void AddTrack(AliHLTTPCTrackArray *mergedtrack,AliHLTTPCTrack *track);
56 virtual AliHLTTPCTrack * MultiMerge(AliHLTTPCTrackArray *mergedtrack,AliHLTTPCTrack **tracks, Int_t ntrack);
57 AliHLTTPCTrack * MergeTracks(AliHLTTPCTrackArray *mergedtrack,AliHLTTPCTrack *t0,AliHLTTPCTrack *t1);
58 virtual Bool_t IsTrack(AliHLTTPCTrack *innertrack,AliHLTTPCTrack *outertrack);
59 Bool_t IsRTrack(AliHLTTPCTrack *innertrack,AliHLTTPCTrack *outertrack);
60 Double_t TrackDiff(AliHLTTPCTrack *innertrack,AliHLTTPCTrack *outertrack);
61 void Print();
62 void PrintDiff(AliHLTTPCTrack *innertrack,AliHLTTPCTrack *outertrack);
63 void PrintTrack(AliHLTTPCTrack *track);
64
2a083ac4 65 protected:
66 Int_t fCurrentTracks; //current number
67 Int_t fSlice; //slice
68 AliHLTTPCVertex *fVertex; //!
69 Bool_t f2Global; //global
70 Bool_t Is2Global(Bool_t is){f2Global=is;return f2Global;}
71 void InitMerger(Int_t ntrackarrays,Char_t *tracktype="AliHLTTPCTrack");
72
73 private:
74 void SetArray(Int_t nin);
75 void DeleteArray();
76
77 Double_t fMaxY; //maxy
78 Double_t fMaxZ; //maxz
79 Double_t fMaxKappa;//maxkappa
80 Double_t fMaxPsi; //maxpsi
81 Double_t fMaxTgl; //maxtgl
82 Char_t fTrackType; //track type to merge
83
84 AliHLTTPCTrackArray **fInTrack;//!
85 Int_t fNIn; //ntracks
86
87 AliHLTTPCTrackArray *fOutTrack;//!
88
a6c02c85 89 ClassDef(AliHLTTPCMerger,1) //Merging base class
90};
91
92#endif