2 // Original: AliLevel3.h,v 1.24 2004/06/11 16:06:33 loizides
16 #include "AliHLTTPCDigitData.h"
17 #include "AliHLTTPCRootTypes.h"
19 class AliHLTTPCSpacePointData;
20 class AliHLTTPCDigitRowData;
21 class AliHLTTPCTrackSegmentData;
22 class AliHLTTPCDigitData;
23 class AliHLTTPCConfMapper;
24 class AliHLTTPCVertex;
25 class AliHLTTPCVertexFinder;
26 class AliHLTTPCTrackMerger;
27 class AliHLTTPCGlobalMerger;
31 class AliHLTTPCClusterFinder;
32 class AliHLTTPCDigitReaderUnpacked;
33 class AliHLTTPCMerger;
34 class AliHLTTPCInterMerger;
35 class AliHLTTPCFileHandler;
36 class AliHLTTPCMemHandler;
37 class AliHLTTPCBenchmark;
42 class AliHLTTPC : public TObject {
46 UInt_t fNTrackData; //count data
47 AliHLTTPCTrackSegmentData* fTrackData; //!
48 AliHLTTPCConfMapper *fTracker; //!
49 AliHLTTPCVertex *fVertex; //!
50 AliHLTTPCVertexFinder *fVertexFinder; //!
51 AliHLTTPCTrackMerger *fTrackMerger; //!
52 AliHLTTPCGlobalMerger *fGlobalMerger; //!
53 AliHLTTPCInterMerger *fInterMerger; //!
54 AliHLTTPCClusterFinder *fClusterFinder; //!
55 AliHLTTPCDigitReaderUnpacked* fDigitReader; //!
56 AliHLTTPCMemHandler *fFileHandler; //!
57 AliHLTTPCBenchmark *fBenchmark;//!
59 Int_t fEvent; //event number
60 Int_t fNPatch; //number of patches
61 Int_t fRow[6][2];//rows
62 Float_t fEta[2]; //eta
64 Char_t *fInputFile;//!
66 AliRunLoader *fRunLoader; //runloader
68 Char_t fPath[256]; //path to aliroot
69 Char_t fWriteOutPath[256]; //path to store
71 Bool_t fDoRoi; //do region of interest
72 Bool_t fFindVertex; //find vertex
73 Bool_t fDoNonVertex;//do non vertex pass
74 Bool_t fPileUp; //do pileup
75 Bool_t fNoCF; //dont do cluster finder
77 Bool_t fUseBinary; //use binary input
78 Bool_t fWriteOut; //write tracks
80 static Bool_t fgDoVertexFit; //do vertex fix
82 Bool_t fClusterDeconv; //do cluster deconv
83 Float_t fXYClusterError; //Cluster error
84 Float_t fZClusterError; //Cluster error
86 void WriteSpacePoints(UInt_t npoints,AliHLTTPCSpacePointData *points,
87 Int_t slice,Int_t patch) const;
88 Int_t WriteTracks(char *filename,AliHLTTPCMerger *merger,char opt='o') const;
90 void FitGlobalTracks();
91 void SetPath(char *p){sprintf(fPath,"%s",p);}
95 AliHLTTPC(Char_t *infile);
97 AliHLTTPC(AliRunLoader *rl);
100 enum EFileType {kBinary, kBinary8, kRoot, kRaw, kDate, kRunLoader};
101 void Init(Char_t *path,EFileType filetype=kBinary,Int_t npatches=6);
102 void SetMergerParameters(Double_t maxy=1.2,Double_t maxz=1.6,Double_t maxkappa=0.003,
103 Double_t maxpsi=0.02,Double_t maxtgl=0.03);
104 void SetTrackerParam(Int_t phi_segments=50,Int_t eta_segments=100,
105 Int_t trackletlength=3,Int_t tracklength=5,
106 Int_t rowscopetracklet=2,Int_t rowscopetrack=3,
107 Double_t min_pt_fit=0,Double_t maxangle=1.31,
108 Double_t goodDist=5,Double_t hitChi2Cut=10,
109 Double_t goodHitChi2=20,Double_t trackChi2Cut=50,
110 Int_t maxdist=50,Double_t maxphi=0.1,Double_t maxeta=0.1,
111 Bool_t vertexconstraint=kTRUE);
112 void SetClusterFinderParam(Float_t fXYError=0.2,Float_t fZError=0.3,Bool_t deconv=kTRUE);
114 void ProcessEvent(Int_t first,Int_t last,Int_t event=0);
115 void ProcessSlice(Int_t slice);
117 void DoMc(char* file="point_mc.dat");
118 void DoNonVertexTracking() {fDoNonVertex=kTRUE;}
119 void FindVertex() {fFindVertex=kTRUE;}
120 void DoBench(char* name="benchmark");
121 void DoPileup() {fPileUp = kTRUE;}
122 void NoCF() {fNoCF=kTRUE;}
123 void DoRoi(Float_t e0=0.4,Float_t e1=0.5){fEta[0]=e0;fEta[1]=e1;fDoRoi=kTRUE;}
124 void WriteFiles(Char_t *path="./"){fWriteOut = kTRUE; sprintf(fWriteOutPath,"%s",path);}
126 static void SetVertexFit(Bool_t f) {fgDoVertexFit=f;}
127 static Bool_t DoVertexFit() {return fgDoVertexFit;}
129 ClassDef(AliHLTTPC,1) //Interface class for HLTTPC-tracking