]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/src/AliLevel3.h
Set values to zero in constructor. Added print function.
[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 #ifdef use_newio
12 class AliRunLoader;
13 #endif
14
15 #include "AliL3DigitData.h"
16 #include "AliL3RootTypes.h"
17
18 class AliL3SpacePointData;
19 class AliL3DigitRowData;
20 class AliL3TrackSegmentData;
21 class AliL3DigitData;
22 class AliL3ConfMapper;
23 class AliL3Vertex;
24 class AliL3VertexFinder;
25 class AliL3TrackMerger;
26 class AliL3GlobalMerger;
27 #ifndef no_root
28 class TDirectory;
29 #endif
30 class AliL3ClustFinderNew;
31 class AliL3Merger;
32 class AliL3InterMerger;
33 class AliL3FileHandler;
34 class AliL3MemHandler;
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; //count data
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   AliL3MemHandler *fFileHandler; //!
54   AliL3Benchmark *fBenchmark;//!
55
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
60   
61   Char_t *fInputFile;//!
62 #ifdef use_newio
63   AliRunLoader *fRunLoader; //runloader
64 #endif
65   Char_t fPath[256]; //path to aliroot
66   Char_t fWriteOutPath[256]; //path to store
67   
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
73   
74   Bool_t fUseBinary; //use binary input
75   Bool_t fWriteOut; //write tracks
76   
77   static Bool_t fgDoVertexFit; //do vertex fix
78
79   Bool_t fClusterDeconv; //do cluster deconv
80   Float_t fXYClusterError; //Cluster error
81   Float_t fZClusterError; //Cluster error
82
83   void WriteSpacePoints(UInt_t npoints,AliL3SpacePointData *points,
84                         Int_t slice,Int_t patch) const;
85   Int_t WriteTracks(char *filename,AliL3Merger *merger,char opt='o') const;  
86   void WriteResults();
87   void FitGlobalTracks();
88   void SetPath(char *p){sprintf(fPath,"%s",p);}
89
90  public:
91   AliLevel3 ();
92   AliLevel3(Char_t *infile);
93 #ifdef use_newio
94   AliLevel3(AliRunLoader *rl);
95 #endif
96   virtual ~AliLevel3();
97   enum EFileType {kBinary, kBinary8, kRoot, kRaw, kDate, kRunLoader};
98   void Init(Char_t *path,EFileType filetype=kBinary,Int_t npatches=6);
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);
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,
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);
110
111   void ProcessEvent(Int_t first,Int_t last,Int_t event=0);
112   void ProcessSlice(Int_t slice);
113
114   void DoMc(char* file="point_mc.dat");
115   void DoNonVertexTracking() {fDoNonVertex=kTRUE;}
116   void FindVertex() {fFindVertex=kTRUE;}
117   void DoBench(char* name="benchmark");
118   void DoPileup() {fPileUp = kTRUE;}
119   void NoCF() {fNoCF=kTRUE;}
120   void DoRoi(Float_t e0=0.4,Float_t e1=0.5){fEta[0]=e0;fEta[1]=e1;fDoRoi=kTRUE;}
121   void WriteFiles(Char_t *path="./"){fWriteOut = kTRUE; sprintf(fWriteOutPath,"%s",path);}
122   
123   static void SetVertexFit(Bool_t f)   {fgDoVertexFit=f;}
124   static Bool_t DoVertexFit()          {return fgDoVertexFit;}
125
126   ClassDef(AliLevel3,1) //Interface class for Level3-tracking
127 };
128
129 #endif
130
131
132
133
134