For the tracks reconstructed with ITS alone, keep the track parameters at the outer...
[u/mrichter/AliRoot.git] / ITS / AliITSRecoParam.cxx
CommitLineData
44347160 1/**************************************************************************
572f41f9 2 * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
44347160 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
572f41f9 16#include "AliITSRecoParam.h"
17
18/* $Id$ */
44347160 19
20///////////////////////////////////////////////////////////////////////////////
21// //
22// Class with ITS reconstruction parameters //
23// Origin: andrea.dainese@lnl.infn.it //
24// //
25///////////////////////////////////////////////////////////////////////////////
26
27
44347160 28
29ClassImp(AliITSRecoParam)
30
e50912db 31const Int_t AliITSRecoParam::fgkLayersNotToSkip[AliITSgeomTGeo::kNLayers]={0,0,0,0,0,0};
32const Int_t AliITSRecoParam::fgkLastLayerToTrackTo=0;
33const Int_t AliITSRecoParam::fgkMaxDetectorPerLayer=1000;
34const Double_t AliITSRecoParam::fgkriw=80.0;
35const Double_t AliITSRecoParam::fgkdiw=0.0053;
36const Double_t AliITSRecoParam::fgkX0iw=30.0;
37const Double_t AliITSRecoParam::fgkrcd=61.0;
38const Double_t AliITSRecoParam::fgkdcd=0.0053;
39const Double_t AliITSRecoParam::fgkX0cd=30.0;
40const Double_t AliITSRecoParam::fgkyr=12.8;
41const Double_t AliITSRecoParam::fgkdr=0.03;
42const Double_t AliITSRecoParam::fgkzm=0.2;
43const Double_t AliITSRecoParam::fgkdm=0.40;
44const Double_t AliITSRecoParam::fgkrs=50.0;
45const Double_t AliITSRecoParam::fgkds=0.001;
46const Double_t AliITSRecoParam::fgkrInsideITSscreen=49.0;
47const Double_t AliITSRecoParam::fgkrInsideSPD1=3.7;
48const Double_t AliITSRecoParam::fgkrPipe=3.;
49const Double_t AliITSRecoParam::fgkrInsidePipe=2.7;
50const Double_t AliITSRecoParam::fgkrOutsidePipe=3.3;
51const Double_t AliITSRecoParam::fgkdPipe=0.0028;
52const Double_t AliITSRecoParam::fgkrInsideShield[2]={7.5,25.0};
53const Double_t AliITSRecoParam::fgkrOutsideShield[2]={10.5,30.0};
54const Double_t AliITSRecoParam::fgkdshield[2]={0.0097,0.0034};
55const Double_t AliITSRecoParam::fgkX0shield[2]={38.6,42.0};
56const Double_t AliITSRecoParam::fgkX0Air=21.82;
57const Double_t AliITSRecoParam::fgkX0Be=65.19;
58const Double_t AliITSRecoParam::fgkBoundaryWidth=0.2;
59const Double_t AliITSRecoParam::fgkDeltaXNeighbDets=0.5;
60const Double_t AliITSRecoParam::fgkSPDdetzlength=6.960; // 7.072-2*0.056
61const Double_t AliITSRecoParam::fgkSPDdetxlength=1.298; // 1.410-2*0.056
44347160 62
63//_____________________________________________________________________________
6518a6c5 64AliITSRecoParam::AliITSRecoParam() : AliDetectorRecoParam(),
e50912db 65fMaxSnp(1.),
572f41f9 66fNSigmaYLayerForRoadY(0),
67fNSigmaRoadY(0),
68fNSigmaZLayerForRoadZ(0),
69fNSigmaRoadZ(0),
70fNSigma2RoadZC(0),
71fNSigma2RoadYC(0),
72fNSigma2RoadZNonC(0),
73fNSigma2RoadYNonC(0),
1c97ce2f 74fRoadMisal(0),
572f41f9 75fMaxNormChi2NonCForHypothesis(0),
76fMaxChi2(0),
77fMaxRoad(0),
78fMaxChi2In(0),
79fChi2PerCluster(0),
80fXV(0),
81fYV(0),
82fZV(0),
83fSigmaXV(0),
84fSigmaYV(0),
85fSigmaZV(0),
86fVertexCut(0),
87fMaxDZforPrimTrk(0),
88fMaxDZToUseConstraint(0),
89fMaxDforV0dghtrForProlongation(0),
90fMaxDForProlongation(0),
91fMaxDZForProlongation(0),
92fMinPtForProlongation(0),
6518a6c5 93fAddVirtualClustersInDeadZone(kFALSE),
572f41f9 94fZWindowDeadZone(0),
95fSigmaXDeadZoneHit2(0),
96fSigmaZDeadZoneHit2(0),
97fXPassDeadZoneHits(0),
6518a6c5 98fUseTGeoInTracker(3),
572f41f9 99fAllowSharedClusters(kTRUE),
e50912db 100fClusterErrorsParam(1),
401eff16 101fClusterMisalError(0.0),
4a66240a 102fComputePlaneEff(kFALSE),
5fbd4fd6 103fHistoPlaneEff(kFALSE),
275a301c 104fReadPlaneEffFromOCDB(kFALSE),
2755f080 105fExtendedEtaAcceptance(kFALSE),
23197852 106fUseBadZonesFromOCDB(kFALSE),
107fUseSingleBadChannelsFromOCDB(kFALSE),
108fMinFractionOfBadInRoad(0),
ae00569a 109fAllowProlongationWithEmptyRoad(kFALSE),
2755f080 110fFactorSAWindowSizes(1.),
c7d6d7b7 111fNLoopsSA(33),
112fMinPhiSA(0.002),
113fMaxPhiSA(0.0145),
114fMinLambdaSA(0.003),
115fMaxLambdaSA(0.008),
5a03f353 116fSAOnePointTracks(kFALSE),
117fSAUseAllClusters(kFALSE),
6518a6c5 118fFindV0s(kTRUE),
119fUseUnfoldingInClusterFinderSPD(kFALSE),
120fUseUnfoldingInClusterFinderSDD(kTRUE),
a86176e3 121fUseUnfoldingInClusterFinderSSD(kTRUE),
122fUseChargeMatchingInClusterFinderSSD(kTRUE)
44347160 123{
124 //
125 // constructor
126 //
6518a6c5 127 SetName("ITS");
128 SetTitle("ITS");
129
44347160 130 SetLayersParameters();
2755f080 131 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fLayersToSkip[i]=0;
6518a6c5 132 SetUseTGeoInTracker(3);
afd25725 133 SetAllowSharedClusters(kTRUE);
134 SetFindV0s(kTRUE);
6518a6c5 135 SetAddVirtualClustersInDeadZone(kFALSE);
572f41f9 136 SetUseAmplitudeInfo(kTRUE);
e50912db 137 SetClusterErrorsParam(1);
44347160 138}
139//_____________________________________________________________________________
140AliITSRecoParam::~AliITSRecoParam()
141{
142 //
143 // destructor
144 //
145}
146//_____________________________________________________________________________
147AliITSRecoParam *AliITSRecoParam::GetHighFluxParam()
148{
149 //
150 // make default reconstruction parameters for hig flux env.
151 //
152 AliITSRecoParam *param = new AliITSRecoParam();
153
154 param->fMaxSnp = 0.95;
155
156 param->fNSigmaYLayerForRoadY = 4.;
157 param->fNSigmaRoadY = 7.5;
158 param->fNSigmaZLayerForRoadZ = 4.;
159 param->fNSigmaRoadZ = 7.5;
160
161 param->fNSigma2RoadZC = 60.; //7.75^2
162 param->fNSigma2RoadYC = 60.; //7.75^2
163 param->fNSigma2RoadZNonC = 50.; //7.07^2
164 param->fNSigma2RoadYNonC = 50.; //7.07^2
165
166 param->fMaxChi2PerCluster[0] = 11.; //7
167 param->fMaxChi2PerCluster[1] = 12.; //5
168 param->fMaxChi2PerCluster[2] = 12.; //8
169 param->fMaxChi2PerCluster[3] = 5.; //8
170 param->fMaxChi2PerCluster[4] = 12.; //6.5
171
172 param->fMaxNormChi2NonC[0] = 7.;
173 param->fMaxNormChi2NonC[1] = 8.;
174 param->fMaxNormChi2NonC[2] = 8.;
175 param->fMaxNormChi2NonC[3] = 11.;
176 param->fMaxNormChi2NonC[4] = 14.;
177 param->fMaxNormChi2NonC[5] = 25.;
178
179 param->fMaxNormChi2C[0] = 11.;
180 param->fMaxNormChi2C[1] = 13.;
181 param->fMaxNormChi2C[2] = 15.;
182 param->fMaxNormChi2C[3] = 18.;
183 param->fMaxNormChi2C[4] = 30.;
184 param->fMaxNormChi2C[5] = 35.;
afd25725 185
186 param->fMaxNormChi2NonCForHypothesis = 7.;
44347160 187
188 param->fMaxChi2 = 35.;
189
190 param->fMaxChi2s[0] = 25.; //40
191 param->fMaxChi2s[1] = 25.; //40
192 param->fMaxChi2s[2] = 25.; //40
193 param->fMaxChi2s[3] = 25.; //40
194 param->fMaxChi2s[4] = 40.; //40
195 param->fMaxChi2s[5] = 50.; //40
196
197 param->fMaxRoad = 6.;
198
199 // not used
200 param->fMaxChi2In = 16.;
201
202 param->fMaxChi2sR[0] = 10.;
203 param->fMaxChi2sR[1] = 10.;
204 param->fMaxChi2sR[2] = 10.;
205 param->fMaxChi2sR[3] = 10.;
206 param->fMaxChi2sR[4] = 30.;
207 param->fMaxChi2sR[5] = 40.;
208
209 param->fChi2PerCluster = 9.;
210 // not used
211
212 param->fXV = 0.;
213 param->fYV = 0.;
214 param->fZV = 0.;
215 param->fSigmaXV = 0.0050;
216 param->fSigmaYV = 0.0050;
217 param->fSigmaZV = 0.0100;
218
219 param->fVertexCut = 25.;
afd25725 220
221 param->fMaxDZforPrimTrk = 0.4;
222 param->fMaxDZToUseConstraint = 3.;
223
224 param->fMaxDforV0dghtrForProlongation = 30.;
6518a6c5 225 param->fMaxDForProlongation = 40.;//10.;
226 param->fMaxDZForProlongation = 60.;//20.;
afd25725 227 param->fMinPtForProlongation = 0.120;
228
229 param->fZWindowDeadZone = 2.0;
230 param->fSigmaXDeadZoneHit2 = 0.004/12.;
231 param->fSigmaZDeadZoneHit2 = 0.001/12.;
232 param->fXPassDeadZoneHits = 0.018;
44347160 233
234 return param;
235}
236//_____________________________________________________________________________
237AliITSRecoParam *AliITSRecoParam::GetLowFluxParam()
238{
239 //
240 // make default reconstruction parameters for low flux env.
241 //
c7d6d7b7 242 AliITSRecoParam *param = new AliITSRecoParam();
243
244 param->fMaxSnp = 0.95;
245
246 param->fNSigmaYLayerForRoadY = 4.;
247 param->fNSigmaRoadY = 7.5;
248 param->fNSigmaZLayerForRoadZ = 4.;
249 param->fNSigmaRoadZ = 7.5;
250
251 param->fNSigma2RoadZC = 60.; //7.75^2
252 param->fNSigma2RoadYC = 60.; //7.75^2
253 param->fNSigma2RoadZNonC = 50.; //7.07^2
254 param->fNSigma2RoadYNonC = 50.; //7.07^2
255
256 param->fMaxChi2PerCluster[0] = 11.; //7
257 param->fMaxChi2PerCluster[1] = 12.; //5
258 param->fMaxChi2PerCluster[2] = 12.; //8
259 param->fMaxChi2PerCluster[3] = 5.; //8
260 param->fMaxChi2PerCluster[4] = 12.; //6.5
261
262 param->fMaxNormChi2NonC[0] = 7.;
263 param->fMaxNormChi2NonC[1] = 8.;
264 param->fMaxNormChi2NonC[2] = 8.;
265 param->fMaxNormChi2NonC[3] = 11.;
266 param->fMaxNormChi2NonC[4] = 14.;
267 param->fMaxNormChi2NonC[5] = 25.;
268
269 param->fMaxNormChi2C[0] = 11.;
270 param->fMaxNormChi2C[1] = 13.;
271 param->fMaxNormChi2C[2] = 15.;
272 param->fMaxNormChi2C[3] = 18.;
273 param->fMaxNormChi2C[4] = 30.;
274 param->fMaxNormChi2C[5] = 35.;
275
276 param->fMaxNormChi2NonCForHypothesis = 7.;
277
278 param->fMaxChi2 = 35.;
279
280 param->fMaxChi2s[0] = 25.; //40
281 param->fMaxChi2s[1] = 25.; //40
282 param->fMaxChi2s[2] = 25.; //40
283 param->fMaxChi2s[3] = 25.; //40
284 param->fMaxChi2s[4] = 40.; //40
285 param->fMaxChi2s[5] = 50.; //40
286
287 param->fMaxRoad = 6.;
288
289 // not used
290 param->fMaxChi2In = 16.;
291
292 param->fMaxChi2sR[0] = 10.;
293 param->fMaxChi2sR[1] = 10.;
294 param->fMaxChi2sR[2] = 10.;
295 param->fMaxChi2sR[3] = 10.;
296 param->fMaxChi2sR[4] = 30.;
297 param->fMaxChi2sR[5] = 40.;
298
299 param->fChi2PerCluster = 9.;
300 // not used
301
302 param->fXV = 0.;
303 param->fYV = 0.;
304 param->fZV = 0.;
305 param->fSigmaXV = 0.0050;
306 param->fSigmaYV = 0.0050;
307 param->fSigmaZV = 0.0100;
308
309 param->fVertexCut = 25.;
310
311 param->fMaxDZforPrimTrk = 0.4;
312 param->fMaxDZToUseConstraint = 3.;
313
314 param->fMaxDforV0dghtrForProlongation = 30.;
315 param->fMaxDForProlongation = 40.;//10.;
316 param->fMaxDZForProlongation = 60.;//20.;
317 param->fMinPtForProlongation = 0.120;
318
319 param->fZWindowDeadZone = 2.0;
320 param->fSigmaXDeadZoneHit2 = 0.004/12.;
321 param->fSigmaZDeadZoneHit2 = 0.001/12.;
322 param->fXPassDeadZoneHits = 0.018;
323 param->SetNLoopsSA(10);
324
325 return param;
44347160 326}
327//_____________________________________________________________________________
328AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam()
329{
330 //
331 // make default reconstruction parameters for cosmics
332 //
e340bb86 333 AliITSRecoParam *param = new AliITSRecoParam();
334
2755f080 335 // larger seach windows for SA (in case of large misalignments)
336 param->SetFactorSAWindowSizes(3.);
e340bb86 337
338 param->fMaxSnp = 0.95;
339
340 param->fNSigmaYLayerForRoadY = 4.;
341 param->fNSigmaRoadY = 7.5;
342 param->fNSigmaZLayerForRoadZ = 4.;
343 param->fNSigmaRoadZ = 7.5;
344
345 param->fNSigma2RoadZC = 60.; //7.75^2
346 param->fNSigma2RoadYC = 60.; //7.75^2
347 param->fNSigma2RoadZNonC = 50.; //7.07^2
348 param->fNSigma2RoadYNonC = 50.; //7.07^2
349
350 param->fMaxChi2PerCluster[0] = 11.; //7
351 param->fMaxChi2PerCluster[1] = 12.; //5
352 param->fMaxChi2PerCluster[2] = 12.; //8
353 param->fMaxChi2PerCluster[3] = 5.; //8
354 param->fMaxChi2PerCluster[4] = 12.; //6.5
355
356 param->fMaxNormChi2NonC[0] = 7.;
357 param->fMaxNormChi2NonC[1] = 8.;
358 param->fMaxNormChi2NonC[2] = 8.;
359 param->fMaxNormChi2NonC[3] = 11.;
360 param->fMaxNormChi2NonC[4] = 14.;
361 param->fMaxNormChi2NonC[5] = 25.;
362
363 param->fMaxNormChi2C[0] = 11.;
364 param->fMaxNormChi2C[1] = 13.;
365 param->fMaxNormChi2C[2] = 15.;
366 param->fMaxNormChi2C[3] = 18.;
367 param->fMaxNormChi2C[4] = 30.;
368 param->fMaxNormChi2C[5] = 35.;
369
370 param->fMaxNormChi2NonCForHypothesis = 7.;
371
372 param->fMaxChi2 = 35.;
373
374 param->fMaxChi2s[0] = 25.; //40
375 param->fMaxChi2s[1] = 25.; //40
376 param->fMaxChi2s[2] = 25.; //40
377 param->fMaxChi2s[3] = 25.; //40
378 param->fMaxChi2s[4] = 40.; //40
379 param->fMaxChi2s[5] = 50.; //40
380
381 param->fMaxRoad = 6.;
382
383 // not used
384 param->fMaxChi2In = 16.;
385
386 param->fMaxChi2sR[0] = 10.;
387 param->fMaxChi2sR[1] = 10.;
388 param->fMaxChi2sR[2] = 10.;
389 param->fMaxChi2sR[3] = 10.;
390 param->fMaxChi2sR[4] = 30.;
391 param->fMaxChi2sR[5] = 40.;
392
393 param->fChi2PerCluster = 9.;
394 // not used
395
396 param->fXV = 0.;
397 param->fYV = 0.;
398 param->fZV = 0.;
399 param->fSigmaXV = 0.0050;
400 param->fSigmaYV = 0.0050;
401 param->fSigmaZV = 0.0100;
402
403 param->fVertexCut = 25.;
404
405 param->fMaxDZforPrimTrk = 0.4;
406 param->fMaxDZToUseConstraint = 3.;
407
408 param->fMaxDforV0dghtrForProlongation = 30.;
409 param->fMaxDForProlongation = 10.;
410 param->fMaxDZForProlongation = 20.;
411 param->fMinPtForProlongation = 0.120;
412
413 param->fZWindowDeadZone = 2.0;
414 param->fSigmaXDeadZoneHit2 = 0.004/12.;
415 param->fSigmaZDeadZoneHit2 = 0.001/12.;
416 param->fXPassDeadZoneHits = 0.018;
417
418
419 return param;
44347160 420}
421//_____________________________________________________________________________
ae00569a 422AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i)
423{
424 //
425 // make special reconstruction parameters for Plane Efficiency study on layer i
426 //
427 AliITSRecoParam *param;
428 param = GetHighFluxParam();
429 param->SetComputePlaneEff();
430 param->SetLayerToSkip(i);
431 return param;
432}
433//_____________________________________________________________________________
44347160 434void AliITSRecoParam::SetLayersParameters()
435{
436 //
437 // number of layers and layers spatial resolutions
438 //
439
440 // spatial resolutions of the detectors
441 // y: 12 12 38 38 20 20 micron
442 fSigmaY2[0]=1.44e-6;
443 fSigmaY2[1]=1.44e-6;
444 fSigmaY2[2]=1.444e-5;
445 fSigmaY2[3]=1.444e-5;
446 fSigmaY2[4]=4.0e-6;
447 fSigmaY2[5]=4.0e-6;
448 // z: 120 120 28 28 830 830 micron
449 fSigmaZ2[0]=1.44e-4;
450 fSigmaZ2[1]=1.44e-4;
451 fSigmaZ2[2]=7.84e-6;
452 fSigmaZ2[3]=7.84e-6;
453 fSigmaZ2[4]=6.889e-3;
454 fSigmaZ2[5]=6.889e-3;
455
456 return;
457}
ed446fa3 458//_____________________________________________________________________________
459void AliITSRecoParam::PrintParameters() const
460{
461 //
462 // print parameters
463 //
464
465 printf("============================= AliITSRecoParam::PrintParameters ");
1c97ce2f 466 printf("============================= \n \n");
ed446fa3 467 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
468 if(!fLayersToSkip[i]) {
469 printf("ITS Traking: using layer %d\n",i);
470 } else {
471 printf("ITS Traking: skipping layer %d\n",i);
472 }
473 }
474 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
475 if(fUseAmplitudeInfo[i]) {
476 printf("ITS Traking: use amplitude info for layer %d\n",i);
477 } else {
478 printf("ITS Traking: don't use amplitude info for layer %d\n",i);
479 }
480 }
481 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++)
482 printf("Layer %d:\n sigmaY2 %f, sigma Z2 %f\n max norm chi2 for non constrained tracks %f\n max norm chi2 for constrained tracks %f\n max predicted chi2 (cluster & track prol.) %f\n",i,fSigmaY2[i],fSigmaZ2[i],fMaxNormChi2NonC[i],fMaxNormChi2C[i],fMaxChi2s[i]);
483
484
485 Dump();
486
487 return;
488}