L3 becomes HLT
[u/mrichter/AliRoot.git] / HLT / src / AliLevel3.h
CommitLineData
3e87ef69 1// @(#) $Id$
2
108615fc 3#ifndef ALILEVEL3_H
4#define ALILEVEL3_H
5
73d9267f 6#ifndef no_root
108615fc 7#include <TObject.h>
b2a02bce 8#include <TFile.h>
73d9267f 9#endif
108615fc 10
de3c3890 11#ifdef use_newio
12class AliRunLoader;
13#endif
14
4aa41877 15#include "AliHLTDigitData.h"
16#include "AliHLTRootTypes.h"
108615fc 17
4aa41877 18class AliHLTSpacePointData;
19class AliHLTDigitRowData;
20class AliHLTTrackSegmentData;
21class AliHLTDigitData;
22class AliHLTConfMapper;
23class AliHLTVertex;
24class AliHLTVertexFinder;
25class AliHLTTrackMerger;
26class AliHLTGlobalMerger;
b2a02bce 27#ifndef no_root
28class TDirectory;
29#endif
4aa41877 30class AliHLTClustFinderNew;
31class AliHLTMerger;
32class AliHLTInterMerger;
33class AliHLTFileHandler;
34class AliHLTMemHandler;
35class AliHLTBenchmark;
108615fc 36
73d9267f 37#ifdef no_root
38class AliLevel3 {
39#else
108615fc 40class AliLevel3 : public TObject {
73d9267f 41#endif
108615fc 42
43 private:
b1ed0288 44 UInt_t fNTrackData; //count data
4aa41877 45 AliHLTTrackSegmentData* fTrackData; //!
46 AliHLTConfMapper *fTracker; //!
47 AliHLTVertex *fVertex; //!
48 AliHLTVertexFinder *fVertexFinder; //!
49 AliHLTTrackMerger *fTrackMerger; //!
50 AliHLTGlobalMerger *fGlobalMerger; //!
51 AliHLTInterMerger *fInterMerger; //!
52 AliHLTClustFinderNew *fClusterFinder; //!
53 AliHLTMemHandler *fFileHandler; //!
54 AliHLTBenchmark *fBenchmark;//!
eeddc64d 55
b1ed0288 56 Int_t fEvent; //event number
57 Int_t fNPatch; //number of patches
58 Int_t fRow[6][2];//rows
59 Float_t fEta[2]; //eta
eeddc64d 60
a27af97b 61 Char_t *fInputFile;//!
de3c3890 62#ifdef use_newio
b1ed0288 63 AliRunLoader *fRunLoader; //runloader
de3c3890 64#endif
b1ed0288 65 Char_t fPath[256]; //path to aliroot
66 Char_t fWriteOutPath[256]; //path to store
3e87ef69 67
b1ed0288 68 Bool_t fDoRoi; //do region of interest
69 Bool_t fFindVertex; //find vertex
70 Bool_t fDoNonVertex;//do non vertex pass
71 Bool_t fPileUp; //do pileup
72 Bool_t fNoCF; //dont do cluster finder
3e87ef69 73
b1ed0288 74 Bool_t fUseBinary; //use binary input
75 Bool_t fWriteOut; //write tracks
6f388e0d 76
b1ed0288 77 static Bool_t fgDoVertexFit; //do vertex fix
c3dd27a3 78
b1ed0288 79 Bool_t fClusterDeconv; //do cluster deconv
80 Float_t fXYClusterError; //Cluster error
81 Float_t fZClusterError; //Cluster error
eeddc64d 82
4aa41877 83 void WriteSpacePoints(UInt_t npoints,AliHLTSpacePointData *points,
b1ed0288 84 Int_t slice,Int_t patch) const;
4aa41877 85 Int_t WriteTracks(char *filename,AliHLTMerger *merger,char opt='o') const;
c3dd27a3 86 void WriteResults();
3e87ef69 87 void FitGlobalTracks();
108615fc 88 void SetPath(char *p){sprintf(fPath,"%s",p);}
eeddc64d 89
108615fc 90 public:
91 AliLevel3 ();
f59eed2d 92 AliLevel3(Char_t *infile);
de3c3890 93#ifdef use_newio
94 AliLevel3(AliRunLoader *rl);
95#endif
108615fc 96 virtual ~AliLevel3();
de3c3890 97 enum EFileType {kBinary, kBinary8, kRoot, kRaw, kDate, kRunLoader};
a27af97b 98 void Init(Char_t *path,EFileType filetype=kBinary,Int_t npatches=6);
0a86fbb7 99 void SetMergerParameters(Double_t maxy=1.2,Double_t maxz=1.6,Double_t maxkappa=0.003,
100 Double_t maxpsi=0.02,Double_t maxtgl=0.03);
108615fc 101 void SetTrackerParam(Int_t phi_segments=50,Int_t eta_segments=100,
102 Int_t trackletlength=3,Int_t tracklength=5,
103 Int_t rowscopetracklet=2,Int_t rowscopetrack=3,
104 Double_t min_pt_fit=0,Double_t maxangle=1.31,
105 Double_t goodDist=5,Double_t hitChi2Cut=10,
106 Double_t goodHitChi2=20,Double_t trackChi2Cut=50,
eeddc64d 107 Int_t maxdist=50,Double_t maxphi=0.1,Double_t maxeta=0.1,
108 Bool_t vertexconstraint=kTRUE);
109 void SetClusterFinderParam(Float_t fXYError=0.2,Float_t fZError=0.3,Bool_t deconv=kTRUE);
108615fc 110
532bd2d0 111 void ProcessEvent(Int_t first,Int_t last,Int_t event=0);
108615fc 112 void ProcessSlice(Int_t slice);
113
108615fc 114 void DoMc(char* file="point_mc.dat");
532bd2d0 115 void DoNonVertexTracking() {fDoNonVertex=kTRUE;}
116 void FindVertex() {fFindVertex=kTRUE;}
108615fc 117 void DoBench(char* name="benchmark");
3e87ef69 118 void DoPileup() {fPileUp = kTRUE;}
119 void NoCF() {fNoCF=kTRUE;}
108615fc 120 void DoRoi(Float_t e0=0.4,Float_t e1=0.5){fEta[0]=e0;fEta[1]=e1;fDoRoi=kTRUE;}
6e32a12a 121 void WriteFiles(Char_t *path="./"){fWriteOut = kTRUE; sprintf(fWriteOutPath,"%s",path);}
6f388e0d 122
b1ed0288 123 static void SetVertexFit(Bool_t f) {fgDoVertexFit=f;}
124 static Bool_t DoVertexFit() {return fgDoVertexFit;}
1f1942b8 125
108615fc 126 ClassDef(AliLevel3,1) //Interface class for Level3-tracking
127};
128
129#endif
c3dd27a3 130
131
132
133
134