]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPC.h
Added the digit reader classes that allow reading of raw packed and unpacked
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPC.h
CommitLineData
a6c02c85 1// @(#) $Id$
2
3#ifndef ALIHLTTPC_H
4#define ALIHLTTPC_H
5
6#ifndef no_root
7#include <TObject.h>
8#include <TFile.h>
9#endif
10
11#ifdef use_newio
12class AliRunLoader;
13#endif
14
15#include "AliHLTTPCDigitData.h"
16#include "AliHLTTPCRootTypes.h"
17
18class AliHLTTPCSpacePointData;
19class AliHLTTPCDigitRowData;
20class AliHLTTPCTrackSegmentData;
21class AliHLTTPCDigitData;
22class AliHLTTPCConfMapper;
23class AliHLTTPCVertex;
24class AliHLTTPCVertexFinder;
25class AliHLTTPCTrackMerger;
26class AliHLTTPCGlobalMerger;
27#ifndef no_root
28class TDirectory;
29#endif
a38a7850 30class AliHLTTPCClusterFinder;
31class AliHLTTPCDigitReaderUnpacked;
a6c02c85 32class AliHLTTPCMerger;
33class AliHLTTPCInterMerger;
34class AliHLTTPCFileHandler;
35class AliHLTTPCMemHandler;
36class AliHLTTPCBenchmark;
37
38#ifdef no_root
39class AliHLTTPC {
40#else
41class AliHLTTPC : public TObject {
42#endif
43
44 private:
45 UInt_t fNTrackData; //count data
46 AliHLTTPCTrackSegmentData* fTrackData; //!
47 AliHLTTPCConfMapper *fTracker; //!
48 AliHLTTPCVertex *fVertex; //!
49 AliHLTTPCVertexFinder *fVertexFinder; //!
50 AliHLTTPCTrackMerger *fTrackMerger; //!
51 AliHLTTPCGlobalMerger *fGlobalMerger; //!
52 AliHLTTPCInterMerger *fInterMerger; //!
a38a7850 53 AliHLTTPCClusterFinder *fClusterFinder; //!
54 AliHLTTPCDigitReaderUnpacked* fDigitReader; //!
a6c02c85 55 AliHLTTPCMemHandler *fFileHandler; //!
56 AliHLTTPCBenchmark *fBenchmark;//!
57
58 Int_t fEvent; //event number
59 Int_t fNPatch; //number of patches
60 Int_t fRow[6][2];//rows
61 Float_t fEta[2]; //eta
62
63 Char_t *fInputFile;//!
64#ifdef use_newio
65 AliRunLoader *fRunLoader; //runloader
66#endif
67 Char_t fPath[256]; //path to aliroot
68 Char_t fWriteOutPath[256]; //path to store
69
70 Bool_t fDoRoi; //do region of interest
71 Bool_t fFindVertex; //find vertex
72 Bool_t fDoNonVertex;//do non vertex pass
73 Bool_t fPileUp; //do pileup
74 Bool_t fNoCF; //dont do cluster finder
75
76 Bool_t fUseBinary; //use binary input
77 Bool_t fWriteOut; //write tracks
78
79 static Bool_t fgDoVertexFit; //do vertex fix
80
81 Bool_t fClusterDeconv; //do cluster deconv
82 Float_t fXYClusterError; //Cluster error
83 Float_t fZClusterError; //Cluster error
84
85 void WriteSpacePoints(UInt_t npoints,AliHLTTPCSpacePointData *points,
86 Int_t slice,Int_t patch) const;
87 Int_t WriteTracks(char *filename,AliHLTTPCMerger *merger,char opt='o') const;
88 void WriteResults();
89 void FitGlobalTracks();
90 void SetPath(char *p){sprintf(fPath,"%s",p);}
91
92 public:
93 AliHLTTPC ();
94 AliHLTTPC(Char_t *infile);
95#ifdef use_newio
96 AliHLTTPC(AliRunLoader *rl);
97#endif
98 virtual ~AliHLTTPC();
99 enum EFileType {kBinary, kBinary8, kRoot, kRaw, kDate, kRunLoader};
100 void Init(Char_t *path,EFileType filetype=kBinary,Int_t npatches=6);
101 void SetMergerParameters(Double_t maxy=1.2,Double_t maxz=1.6,Double_t maxkappa=0.003,
102 Double_t maxpsi=0.02,Double_t maxtgl=0.03);
103 void SetTrackerParam(Int_t phi_segments=50,Int_t eta_segments=100,
104 Int_t trackletlength=3,Int_t tracklength=5,
105 Int_t rowscopetracklet=2,Int_t rowscopetrack=3,
106 Double_t min_pt_fit=0,Double_t maxangle=1.31,
107 Double_t goodDist=5,Double_t hitChi2Cut=10,
108 Double_t goodHitChi2=20,Double_t trackChi2Cut=50,
109 Int_t maxdist=50,Double_t maxphi=0.1,Double_t maxeta=0.1,
110 Bool_t vertexconstraint=kTRUE);
111 void SetClusterFinderParam(Float_t fXYError=0.2,Float_t fZError=0.3,Bool_t deconv=kTRUE);
112
113 void ProcessEvent(Int_t first,Int_t last,Int_t event=0);
114 void ProcessSlice(Int_t slice);
115
116 void DoMc(char* file="point_mc.dat");
117 void DoNonVertexTracking() {fDoNonVertex=kTRUE;}
118 void FindVertex() {fFindVertex=kTRUE;}
119 void DoBench(char* name="benchmark");
120 void DoPileup() {fPileUp = kTRUE;}
121 void NoCF() {fNoCF=kTRUE;}
122 void DoRoi(Float_t e0=0.4,Float_t e1=0.5){fEta[0]=e0;fEta[1]=e1;fDoRoi=kTRUE;}
123 void WriteFiles(Char_t *path="./"){fWriteOut = kTRUE; sprintf(fWriteOutPath,"%s",path);}
124
125 static void SetVertexFit(Bool_t f) {fgDoVertexFit=f;}
126 static Bool_t DoVertexFit() {return fgDoVertexFit;}
127
128 ClassDef(AliHLTTPC,1) //Interface class for HLTTPC-tracking
129};
130
131#endif
132
133
134
135
136