]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - TPC/AliTPCRecoParam.cxx
skim task first usable version
[u/mrichter/AliRoot.git] / TPC / AliTPCRecoParam.cxx
... / ...
CommitLineData
1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16
17///////////////////////////////////////////////////////////////////////////////
18// //
19// Class with TPC reconstruction parameters //
20// //
21//
22/*
23 The reconstruction parameters are used in the AliTPCclustererMI and AliTPCtrackerMI
24
25 They are retrieved:
26 0. User speciefied it in reconstruction macro
27 1. if (not 0) from OCDB - AliTPCcalibDB::GetRecoParam(eventtype)
28 2. if (not 0 or 1) default parameter - High flux enevironment used
29
30 FIXME:
31 In the future reconstruction parameters should be changed on event basis
32 But for the moment, event types are still not defined
33
34
35 // Setting for systematic errors addition
36 [0] - systematic RMSY
37 [1] - systematic RMSZ
38 [2] - systematic RMSSNP
39 [3] - systematic RMSTheta
40 [4] - systematic RMSCuravture - systematic error in 1/cm not in 1/pt
41 //
42 // How to add it example - 3 mm systematic error y, 3 cm systematic error z (drift)
43 Double_t sysError[5]={0.3,3, 0.3/150., 3./150.,0.3/(150*150.)}
44 param->SetSystematicError(sysError);
45
46*/
47 //
48///////////////////////////////////////////////////////////////////////////////
49
50
51#include "AliTPCRecoParam.h"
52
53ClassImp(AliTPCRecoParam)
54
55
56Bool_t AliTPCRecoParam::fgUseTimeCalibration=kTRUE; // flag usage the time dependent calibration
57 // to be switched off for pass 0 reconstruction
58 // Use static function, other option will be to use
59 // additional specific storage ?
60
61//_____________________________________________________________________________
62AliTPCRecoParam::AliTPCRecoParam():
63 AliDetectorRecoParam(),
64 fUseHLTClusters(4), // use HLTorRAW data
65 fBClusterSharing(kTRUE),
66 fCtgRange(1.05),
67 fMaxSnpTracker(0.95),
68 fMaxSnpTrack(0.999),
69 fUseOuterDetectors(kFALSE),
70 fDumpSignal(kFALSE),
71 fFirstBin(0),
72 fLastBin(-1),
73 fBCalcPedestal(kFALSE),
74 fBDoUnfold(kTRUE),
75 fDumpAmplitudeMin(100),
76 fMaxNoise(2.),
77 //
78 fUseOnePadCluster(kTRUE),
79 fUseHLTOnePadCluster(kFALSE),
80 fMinMaxCutAbs(4.),
81 fMinLeftRightCutAbs(6.),
82 fMinUpDownCutAbs(6.),
83 //
84 fMinMaxCutSigma(4.),
85 fMinLeftRightCutSigma(7.),
86 fMinUpDownCutSigma(8.),
87 fMaxC(0.3),
88 fBSpecialSeeding(kFALSE),
89 fBKinkFinder(kTRUE),
90 fLastSeedRowSec(120),
91 fSeedGapPrim(6),
92 fSeedGapSec(6),
93 fUseFieldCorrection(2), // use field correction
94 fUseComposedCorrection(kFALSE), // use field correction
95 fUseRPHICorrection(0), // use rphi correction
96 fUseRadialCorrection(0), // use radial correction
97 fUseQuadrantAlignment(0), // use quadrant alignment
98 fUseSectorAlignment(0), // use sector alignment
99 fUseDriftCorrectionTime(1), // use drift correction time
100 fUseDriftCorrectionGY(1), // use drif correction global y
101 fUseGainCorrectionTime(0), // use gain correction time
102 fUseExBCorrection(1), // use ExB correction
103 fUseMultiplicityCorrectionDedx(kTRUE), // use Dedx multiplicity correction
104 fUseAlignmentTime(kTRUE), // use time dependent alignment correction
105 //
106 fUseTotCharge(kTRUE), // switch use total or max charge
107 fMinFraction(0.01), // truncated mean - lower threshold
108 fMaxFaction(0.7), // truncated mean - upper threshold
109 fNeighborRowsDedx(2), // neighbour rows for below threshold dEdx calculation
110 fUseTOFCorrection(kTRUE),
111 fUseSystematicCorrelation(kTRUE)
112{
113 //
114 // constructor
115 //
116 SetName("TPC");
117 SetTitle("TPC");
118 for (Int_t i=0;i<5;i++) fSystematicErrors[i]=0;
119 fCutSharedClusters[0]=0.5; // maximal allowed fraction of shared clusters - shorter track
120 fCutSharedClusters[1]=0.25; // maximal allowed fraction of shared clusters - longer track
121 fClusterMaxRange[0]=1; // y - pad range
122 fClusterMaxRange[1]=1; // z - time bin range
123 fKinkAngleCutChi2[0]=9; // angular cut for kink finder - to create a kink
124 // ~ about 5 % rate for high pt kink finder
125 fKinkAngleCutChi2[1]=12; // angular cut for kink finder - to use the partial track // form kink
126 // ~ about 2 % rate for high pt kink finder
127}
128
129//_____________________________________________________________________________
130AliTPCRecoParam::~AliTPCRecoParam()
131{
132 //
133 // destructor
134 //
135}
136
137void AliTPCRecoParam::Print(const Option_t* /*option*/) const{
138 //
139 //
140 //
141 AliTPCRecoParam::Dump();
142 printf("Systematic errors:\n");
143 const char * cherrs[5]={"sy=","sz=","ssnp=","stheta=","s1pt="};
144 for (Int_t i=0; i<5; i++){
145 printf("%s%f\n",cherrs[i],fSystematicErrors[i]);
146 }
147}
148
149
150AliTPCRecoParam *AliTPCRecoParam::GetLowFluxParam(){
151 //
152 // make default reconstruction parameters for low flux env.
153 //
154 AliTPCRecoParam *param = new AliTPCRecoParam;
155 param->fCtgRange = 10;
156 param->fFirstBin = 0;
157 param->fLastBin = 1000;
158 param->SetName("Low Flux");
159 param->SetTitle("Low Flux");
160 return param;
161}
162
163AliTPCRecoParam *AliTPCRecoParam::GetHighFluxParam(){
164 //
165 // make reco parameters for high flux env.
166 //
167 AliTPCRecoParam *param = new AliTPCRecoParam;
168 param->fCtgRange = 1.05;
169 param->fFirstBin = 0;
170 param->fLastBin = 1000;
171 param->fUseTotCharge=kFALSE;
172 param->SetName("High Flux");
173 param->SetTitle("High Flux");
174 return param;
175}
176
177AliTPCRecoParam *AliTPCRecoParam::GetHLTParam(){
178 //
179 // make reco parameters for high flux env.
180 //
181 AliTPCRecoParam *param = new AliTPCRecoParam;
182 param->fCtgRange = 1.05;
183 param->fFirstBin = 80;
184 param->fLastBin = 1000;
185 param->fMaxSnpTracker = 0.9;
186 param->fMaxC = 0.06;
187 //
188 param->SetName("Hlt Param");
189 param->SetTitle("Hlt Param");
190 param->fBKinkFinder = kFALSE;
191 return param;
192}
193
194AliTPCRecoParam *AliTPCRecoParam::GetLaserTestParam(Bool_t bPedestal){
195 //
196 // special setting for laser
197 //
198 AliTPCRecoParam *param = new AliTPCRecoParam;
199 param->fDumpSignal=kTRUE;
200 param->fCtgRange = 10.05;
201 param->fFirstBin = 0;
202 param->fLastBin = 1000;
203 param->fBCalcPedestal = bPedestal;
204 param->fBDoUnfold = kFALSE;
205 param->fDumpAmplitudeMin = 150;
206 param->fBKinkFinder = kFALSE;
207 param->fMaxSnpTracker = 0.98;
208 param->fMaxC = 0.02;
209 param->fBSpecialSeeding = kTRUE;
210 param->fUseTOFCorrection=kFALSE;
211 param->fUseHLTClusters=1; // always RAW data
212 //
213 //
214 param->SetName("Laser Flux");
215 param->SetTitle("Laser Flux");
216 return param;
217}
218
219AliTPCRecoParam *AliTPCRecoParam::GetCosmicTestParam(Bool_t bPedestal){
220 //
221 // special setting for cosmic
222 //
223 AliTPCRecoParam *param = new AliTPCRecoParam;
224 param->fDumpSignal=kTRUE;
225 param->fCtgRange = 10.05; // full TPC
226 param->fFirstBin = 60;
227 param->fLastBin = 1000;
228 param->fBCalcPedestal = bPedestal;
229 param->fBDoUnfold = kFALSE;
230 param->fBSpecialSeeding = kTRUE;
231 param->fMaxC = 0.07;
232 param->fBKinkFinder = kFALSE;
233 param->fUseTOFCorrection =kFALSE;
234 param->SetName("Cosmic Flux");
235 param->SetTitle("Cosmic Flux");
236
237 return param;
238}
239
240
241Bool_t AliTPCRecoParam::GetUseTimeCalibration(){
242 //
243 // get
244 //
245 return fgUseTimeCalibration;
246}
247void AliTPCRecoParam::SetUseTimeCalibration(Bool_t useTimeCalibration) {
248 //
249 // set
250 //
251 fgUseTimeCalibration = useTimeCalibration;
252}
253