]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/src/AliLevel3.h
Reworked to work for the ITS only. Based on Jiri's MergeV1.C
[u/mrichter/AliRoot.git] / HLT / src / AliLevel3.h
CommitLineData
108615fc 1#ifndef ALILEVEL3_H
2#define ALILEVEL3_H
3
4#include <TObject.h>
108615fc 5#include <TFile.h>
6
7#include "AliL3DigitData.h"
2e1fe9ef 8#include "AliL3RootTypes.h"
108615fc 9
10class AliL3SpacePointData;
11class AliL3DigitRowData;
12class AliL3TrackSegmentData;
13class AliL3DigitData;
108615fc 14class AliL3ConfMapper;
15class AliL3Vertex;
16class AliL3VertexFinder;
17class AliL3TrackMerger;
18class AliL3GlobalMerger;
19class TDirectory;
f3e63a47 20class AliL3ClustFinderNew;
108615fc 21class AliL3Merger;
22class AliL3InterMerger;
eeddc64d 23
2e1fe9ef 24#ifdef use_aliroot
108615fc 25class AliL3FileHandler;
2e1fe9ef 26#else
27class AliL3MemHandler;
28#endif
108615fc 29class AliL3Benchmark;
30
31class AliLevel3 : public TObject {
32
33 private:
34 UInt_t fNTrackData;
35 AliL3TrackSegmentData* fTrackData; //!
36 AliL3ConfMapper *fTracker; //!
37 AliL3Vertex *fVertex; //!
38 AliL3VertexFinder *fVertexFinder; //!
39 AliL3TrackMerger *fTrackMerger; //!
40 AliL3GlobalMerger *fGlobalMerger; //!
41 AliL3InterMerger *fInterMerger; //!
f3e63a47 42 AliL3ClustFinderNew *fClusterFinder; //!
eeddc64d 43#ifdef use_aliroot
108615fc 44 AliL3FileHandler *fFileHandler; //!
eeddc64d 45#else
2e1fe9ef 46 AliL3MemHandler *fFileHandler; //!
eeddc64d 47#endif
108615fc 48 AliL3Benchmark *fBenchmark;//!
eeddc64d 49
50 Int_t fEvent;
108615fc 51 Int_t fNPatch;
b1c440c6 52 Int_t fRow[6][2];
eeddc64d 53 Float_t fEta[2];
54
108615fc 55 TDirectory *savedir;
56 TFile *fInputFile;
eeddc64d 57 Char_t fPath[256];
58 Char_t fWriteOutPath[256];
59
60 Bool_t fDoRoi;
108615fc 61 Bool_t fFindVertex;
532bd2d0 62 Bool_t fDoNonVertex;
eeddc64d 63
64 Bool_t fUseBinary;
65 Bool_t fWriteOut;
66
67 Float_t fXYClusterError;
68 Float_t fZClusterError;
532bd2d0 69 Bool_t fClusterDeconv;
eeddc64d 70
108615fc 71 void WriteSpacePoints(UInt_t npoints,AliL3SpacePointData *points,
eeddc64d 72 Int_t slice,Int_t patch);
108615fc 73 void WriteResults();
74 Int_t WriteTracks(char *filename,AliL3Merger *merger,char opt='o');
108615fc 75 void SetPath(char *p){sprintf(fPath,"%s",p);}
eeddc64d 76
108615fc 77 public:
78 AliLevel3 ();
f59eed2d 79 AliLevel3(Char_t *infile);
80 AliLevel3(TFile *in);
108615fc 81 virtual ~AliLevel3();
82
f59eed2d 83 void Init(Char_t *path,Bool_t binary=kTRUE,Int_t npatches=6);
108615fc 84 void SetTrackerParam(Int_t phi_segments=50,Int_t eta_segments=100,
85 Int_t trackletlength=3,Int_t tracklength=5,
86 Int_t rowscopetracklet=2,Int_t rowscopetrack=3,
87 Double_t min_pt_fit=0,Double_t maxangle=1.31,
88 Double_t goodDist=5,Double_t hitChi2Cut=10,
89 Double_t goodHitChi2=20,Double_t trackChi2Cut=50,
eeddc64d 90 Int_t maxdist=50,Double_t maxphi=0.1,Double_t maxeta=0.1,
91 Bool_t vertexconstraint=kTRUE);
92 void SetClusterFinderParam(Float_t fXYError=0.2,Float_t fZError=0.3,Bool_t deconv=kTRUE);
108615fc 93
532bd2d0 94 void ProcessEvent(Int_t first,Int_t last,Int_t event=0);
108615fc 95 void ProcessSlice(Int_t slice);
96
108615fc 97 void DoMc(char* file="point_mc.dat");
532bd2d0 98 void DoNonVertexTracking() {fDoNonVertex=kTRUE;}
99 void FindVertex() {fFindVertex=kTRUE;}
108615fc 100 void DoBench(char* name="benchmark");
101 void DoRoi(Float_t e0=0.4,Float_t e1=0.5){fEta[0]=e0;fEta[1]=e1;fDoRoi=kTRUE;}
6e32a12a 102 void WriteFiles(Char_t *path="./"){fWriteOut = kTRUE; sprintf(fWriteOutPath,"%s",path);}
eeddc64d 103 //void UseBinaryInput(char *path){SetPath(path);fUseBinary=kTRUE;}
104
108615fc 105 ClassDef(AliLevel3,1) //Interface class for Level3-tracking
106};
107
108#endif