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