]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/src/AliLevel3.h
Added support for NEWIO, merged cern-hlt tree, updated to latest track candidate...
[u/mrichter/AliRoot.git] / HLT / src / AliLevel3.h
1 // @(#) $Id$
2
3 #ifndef ALILEVEL3_H
4 #define ALILEVEL3_H
5
6 #ifndef no_root
7 #include <TObject.h>
8 #include <TFile.h>
9 #endif
10
11 #include "AliL3DigitData.h"
12 #include "AliL3RootTypes.h"
13
14 class AliL3SpacePointData;
15 class AliL3DigitRowData;
16 class AliL3TrackSegmentData;
17 class AliL3DigitData;
18 class AliL3ConfMapper;
19 class AliL3Vertex;
20 class AliL3VertexFinder;
21 class AliL3TrackMerger;
22 class AliL3GlobalMerger;
23 #ifndef no_root
24 class TDirectory;
25 #endif
26 class AliL3ClustFinderNew;
27 class AliL3Merger;
28 class AliL3InterMerger;
29
30 //#ifdef use_aliroot
31 class AliL3FileHandler;
32 //#else
33 class AliL3MemHandler;
34 //#endif
35 class AliL3Benchmark;
36
37 #ifdef no_root
38 class AliLevel3 {
39 #else
40 class AliLevel3 : public TObject {
41 #endif
42
43  private:
44   UInt_t fNTrackData;
45   AliL3TrackSegmentData* fTrackData; //!
46   AliL3ConfMapper *fTracker; //!
47   AliL3Vertex *fVertex; //! 
48   AliL3VertexFinder *fVertexFinder; //!
49   AliL3TrackMerger *fTrackMerger; //!
50   AliL3GlobalMerger *fGlobalMerger; //!
51   AliL3InterMerger *fInterMerger; //!
52   AliL3ClustFinderNew *fClusterFinder; //! 
53   //#ifdef use_aliroot
54   //AliL3FileHandler *fFileHandler; //!
55   ///#else
56   AliL3MemHandler *fFileHandler; //!
57   //#endif
58   AliL3Benchmark *fBenchmark;//!
59
60   Int_t fEvent;
61   Int_t fNPatch;
62   Int_t fRow[6][2];
63   Float_t fEta[2];
64   
65 #ifdef no_root
66   FILE *fInputFile;
67 #else
68   Char_t *fInputFile;//!
69   TDirectory *savedir;
70   //TFile *fInputFile;
71 #endif
72
73   Char_t fPath[256];
74   Char_t fWriteOutPath[256];
75   
76   Bool_t fDoRoi;
77   Bool_t fFindVertex;
78   Bool_t fDoNonVertex;
79   Bool_t fPileUp;
80   Bool_t fNoCF;
81   
82   Bool_t fUseBinary;
83   Bool_t fWriteOut;
84
85   Bool_t fClusterDeconv;
86   Float_t fXYClusterError;
87   Float_t fZClusterError;
88
89
90   void WriteSpacePoints(UInt_t npoints,AliL3SpacePointData *points,
91                                           Int_t slice,Int_t patch);
92   Int_t WriteTracks(char *filename,AliL3Merger *merger,char opt='o');  
93   void WriteResults();
94   void FitGlobalTracks();
95   void SetPath(char *p){sprintf(fPath,"%s",p);}
96
97  public:
98   AliLevel3 ();
99   AliLevel3(Char_t *infile);
100   //AliLevel3(TFile *in);
101   virtual ~AliLevel3();
102   enum EFileType {kBinary, kBinary8, kRoot, kRaw};
103   void Init(Char_t *path,EFileType filetype=kBinary,Int_t npatches=6);
104   //void Init(Char_t *path,Bool_t binary=kTRUE,Int_t npatches=6);
105   void SetMergerParameters(Double_t maxy=1.2,Double_t maxz=1.6,Double_t maxkappa=0.003,
106                            Double_t maxpsi=0.02,Double_t maxtgl=0.03);
107   void SetTrackerParam(Int_t phi_segments=50,Int_t eta_segments=100,
108                        Int_t trackletlength=3,Int_t tracklength=5,
109                        Int_t rowscopetracklet=2,Int_t rowscopetrack=3,
110                        Double_t min_pt_fit=0,Double_t maxangle=1.31,
111                        Double_t goodDist=5,Double_t hitChi2Cut=10,
112                        Double_t goodHitChi2=20,Double_t trackChi2Cut=50,
113                        Int_t maxdist=50,Double_t maxphi=0.1,Double_t maxeta=0.1,
114                        Bool_t vertexconstraint=kTRUE);
115   void SetClusterFinderParam(Float_t fXYError=0.2,Float_t fZError=0.3,Bool_t deconv=kTRUE);
116
117   void ProcessEvent(Int_t first,Int_t last,Int_t event=0);
118   void ProcessSlice(Int_t slice);
119
120   void DoMc(char* file="point_mc.dat");
121   void DoNonVertexTracking() {fDoNonVertex=kTRUE;}
122   void FindVertex() {fFindVertex=kTRUE;}
123   void DoBench(char* name="benchmark");
124   void DoPileup() {fPileUp = kTRUE;}
125   void NoCF() {fNoCF=kTRUE;}
126   void DoRoi(Float_t e0=0.4,Float_t e1=0.5){fEta[0]=e0;fEta[1]=e1;fDoRoi=kTRUE;}
127   void WriteFiles(Char_t *path="./"){fWriteOut = kTRUE; sprintf(fWriteOutPath,"%s",path);}
128   //void UseBinaryInput(char *path){SetPath(path);fUseBinary=kTRUE;}
129
130   ClassDef(AliLevel3,1) //Interface class for Level3-tracking
131 };
132
133 #endif
134
135
136
137
138