]>
Commit | Line | Data |
---|---|---|
3e87ef69 | 1 | // @(#) $Id$ |
2 | ||
108615fc | 3 | #ifndef ALILEVEL3_H |
4 | #define ALILEVEL3_H | |
5 | ||
73d9267f | 6 | #ifndef no_root |
108615fc | 7 | #include <TObject.h> |
b2a02bce | 8 | #include <TFile.h> |
73d9267f | 9 | #endif |
108615fc | 10 | |
de3c3890 | 11 | #ifdef use_newio |
12 | class AliRunLoader; | |
13 | #endif | |
14 | ||
108615fc | 15 | #include "AliL3DigitData.h" |
2e1fe9ef | 16 | #include "AliL3RootTypes.h" |
108615fc | 17 | |
18 | class AliL3SpacePointData; | |
19 | class AliL3DigitRowData; | |
20 | class AliL3TrackSegmentData; | |
21 | class AliL3DigitData; | |
108615fc | 22 | class AliL3ConfMapper; |
23 | class AliL3Vertex; | |
24 | class AliL3VertexFinder; | |
25 | class AliL3TrackMerger; | |
26 | class AliL3GlobalMerger; | |
b2a02bce | 27 | #ifndef no_root |
28 | class TDirectory; | |
29 | #endif | |
f3e63a47 | 30 | class AliL3ClustFinderNew; |
108615fc | 31 | class AliL3Merger; |
32 | class AliL3InterMerger; | |
b2a02bce | 33 | class AliL3FileHandler; |
2e1fe9ef | 34 | class AliL3MemHandler; |
108615fc | 35 | class AliL3Benchmark; |
36 | ||
73d9267f | 37 | #ifdef no_root |
38 | class AliLevel3 { | |
39 | #else | |
108615fc | 40 | class AliLevel3 : public TObject { |
73d9267f | 41 | #endif |
108615fc | 42 | |
43 | private: | |
b1ed0288 | 44 | UInt_t fNTrackData; //count data |
108615fc | 45 | AliL3TrackSegmentData* fTrackData; //! |
46 | AliL3ConfMapper *fTracker; //! | |
47 | AliL3Vertex *fVertex; //! | |
48 | AliL3VertexFinder *fVertexFinder; //! | |
49 | AliL3TrackMerger *fTrackMerger; //! | |
50 | AliL3GlobalMerger *fGlobalMerger; //! | |
51 | AliL3InterMerger *fInterMerger; //! | |
f3e63a47 | 52 | AliL3ClustFinderNew *fClusterFinder; //! |
2e1fe9ef | 53 | AliL3MemHandler *fFileHandler; //! |
108615fc | 54 | AliL3Benchmark *fBenchmark;//! |
eeddc64d | 55 | |
b1ed0288 | 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 | |
eeddc64d | 60 | |
a27af97b | 61 | Char_t *fInputFile;//! |
de3c3890 | 62 | #ifdef use_newio |
b1ed0288 | 63 | AliRunLoader *fRunLoader; //runloader |
de3c3890 | 64 | #endif |
b1ed0288 | 65 | Char_t fPath[256]; //path to aliroot |
66 | Char_t fWriteOutPath[256]; //path to store | |
3e87ef69 | 67 | |
b1ed0288 | 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 | |
3e87ef69 | 73 | |
b1ed0288 | 74 | Bool_t fUseBinary; //use binary input |
75 | Bool_t fWriteOut; //write tracks | |
6f388e0d | 76 | |
b1ed0288 | 77 | static Bool_t fgDoVertexFit; //do vertex fix |
c3dd27a3 | 78 | |
b1ed0288 | 79 | Bool_t fClusterDeconv; //do cluster deconv |
80 | Float_t fXYClusterError; //Cluster error | |
81 | Float_t fZClusterError; //Cluster error | |
eeddc64d | 82 | |
108615fc | 83 | void WriteSpacePoints(UInt_t npoints,AliL3SpacePointData *points, |
b1ed0288 | 84 | Int_t slice,Int_t patch) const; |
85 | Int_t WriteTracks(char *filename,AliL3Merger *merger,char opt='o') const; | |
c3dd27a3 | 86 | void WriteResults(); |
3e87ef69 | 87 | void FitGlobalTracks(); |
108615fc | 88 | void SetPath(char *p){sprintf(fPath,"%s",p);} |
eeddc64d | 89 | |
108615fc | 90 | public: |
91 | AliLevel3 (); | |
f59eed2d | 92 | AliLevel3(Char_t *infile); |
de3c3890 | 93 | #ifdef use_newio |
94 | AliLevel3(AliRunLoader *rl); | |
95 | #endif | |
108615fc | 96 | virtual ~AliLevel3(); |
de3c3890 | 97 | enum EFileType {kBinary, kBinary8, kRoot, kRaw, kDate, kRunLoader}; |
a27af97b | 98 | void Init(Char_t *path,EFileType filetype=kBinary,Int_t npatches=6); |
0a86fbb7 | 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); | |
108615fc | 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, | |
eeddc64d | 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); | |
108615fc | 110 | |
532bd2d0 | 111 | void ProcessEvent(Int_t first,Int_t last,Int_t event=0); |
108615fc | 112 | void ProcessSlice(Int_t slice); |
113 | ||
108615fc | 114 | void DoMc(char* file="point_mc.dat"); |
532bd2d0 | 115 | void DoNonVertexTracking() {fDoNonVertex=kTRUE;} |
116 | void FindVertex() {fFindVertex=kTRUE;} | |
108615fc | 117 | void DoBench(char* name="benchmark"); |
3e87ef69 | 118 | void DoPileup() {fPileUp = kTRUE;} |
119 | void NoCF() {fNoCF=kTRUE;} | |
108615fc | 120 | void DoRoi(Float_t e0=0.4,Float_t e1=0.5){fEta[0]=e0;fEta[1]=e1;fDoRoi=kTRUE;} |
6e32a12a | 121 | void WriteFiles(Char_t *path="./"){fWriteOut = kTRUE; sprintf(fWriteOutPath,"%s",path);} |
6f388e0d | 122 | |
b1ed0288 | 123 | static void SetVertexFit(Bool_t f) {fgDoVertexFit=f;} |
124 | static Bool_t DoVertexFit() {return fgDoVertexFit;} | |
1f1942b8 | 125 | |
108615fc | 126 | ClassDef(AliLevel3,1) //Interface class for Level3-tracking |
127 | }; | |
128 | ||
129 | #endif | |
c3dd27a3 | 130 | |
131 | ||
132 | ||
133 | ||
134 |