Adding some further mother volumes to speed-up the overlap checking and particle...
[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"
5bd7ec3a 17#include "AliLog.h"
572f41f9 18
19/* $Id$ */
44347160 20
21///////////////////////////////////////////////////////////////////////////////
22// //
23// Class with ITS reconstruction parameters //
24// Origin: andrea.dainese@lnl.infn.it //
25// //
26///////////////////////////////////////////////////////////////////////////////
27
28
44347160 29
30ClassImp(AliITSRecoParam)
31
e50912db 32const Int_t AliITSRecoParam::fgkLayersNotToSkip[AliITSgeomTGeo::kNLayers]={0,0,0,0,0,0};
33const Int_t AliITSRecoParam::fgkLastLayerToTrackTo=0;
34const Int_t AliITSRecoParam::fgkMaxDetectorPerLayer=1000;
35const Double_t AliITSRecoParam::fgkriw=80.0;
36const Double_t AliITSRecoParam::fgkdiw=0.0053;
37const Double_t AliITSRecoParam::fgkX0iw=30.0;
38const Double_t AliITSRecoParam::fgkrcd=61.0;
39const Double_t AliITSRecoParam::fgkdcd=0.0053;
40const Double_t AliITSRecoParam::fgkX0cd=30.0;
41const Double_t AliITSRecoParam::fgkyr=12.8;
42const Double_t AliITSRecoParam::fgkdr=0.03;
43const Double_t AliITSRecoParam::fgkzm=0.2;
44const Double_t AliITSRecoParam::fgkdm=0.40;
45const Double_t AliITSRecoParam::fgkrs=50.0;
46const Double_t AliITSRecoParam::fgkds=0.001;
47const Double_t AliITSRecoParam::fgkrInsideITSscreen=49.0;
48const Double_t AliITSRecoParam::fgkrInsideSPD1=3.7;
49const Double_t AliITSRecoParam::fgkrPipe=3.;
50const Double_t AliITSRecoParam::fgkrInsidePipe=2.7;
51const Double_t AliITSRecoParam::fgkrOutsidePipe=3.3;
52const Double_t AliITSRecoParam::fgkdPipe=0.0028;
53const Double_t AliITSRecoParam::fgkrInsideShield[2]={7.5,25.0};
54const Double_t AliITSRecoParam::fgkrOutsideShield[2]={10.5,30.0};
55const Double_t AliITSRecoParam::fgkdshield[2]={0.0097,0.0034};
56const Double_t AliITSRecoParam::fgkX0shield[2]={38.6,42.0};
57const Double_t AliITSRecoParam::fgkX0Air=21.82;
58const Double_t AliITSRecoParam::fgkX0Be=65.19;
59const Double_t AliITSRecoParam::fgkBoundaryWidth=0.2;
60const Double_t AliITSRecoParam::fgkDeltaXNeighbDets=0.5;
61const Double_t AliITSRecoParam::fgkSPDdetzlength=6.960; // 7.072-2*0.056
62const Double_t AliITSRecoParam::fgkSPDdetxlength=1.298; // 1.410-2*0.056
44347160 63
64//_____________________________________________________________________________
6518a6c5 65AliITSRecoParam::AliITSRecoParam() : AliDetectorRecoParam(),
f9119eb9 66fTracker(0),
67fITSonly(kFALSE),
68fVertexer(0),
876026b6 69fClusterFinder(0),
70fPID(0),
7203e11a 71fVtxr3DZCutWide(0.),
72fVtxr3DRCutWide(0.),
73fVtxr3DZCutNarrow(0.),
74fVtxr3DRCutNarrow(0.),
75fVtxr3DPhiCutLoose(0.),
76fVtxr3DPhiCutTight(0.),
77fVtxr3DDCACut(0.),
e50912db 78fMaxSnp(1.),
572f41f9 79fNSigmaYLayerForRoadY(0),
80fNSigmaRoadY(0),
81fNSigmaZLayerForRoadZ(0),
82fNSigmaRoadZ(0),
83fNSigma2RoadZC(0),
84fNSigma2RoadYC(0),
85fNSigma2RoadZNonC(0),
86fNSigma2RoadYNonC(0),
1c97ce2f 87fRoadMisal(0),
572f41f9 88fMaxNormChi2NonCForHypothesis(0),
89fMaxChi2(0),
90fMaxRoad(0),
91fMaxChi2In(0),
92fChi2PerCluster(0),
93fXV(0),
94fYV(0),
95fZV(0),
96fSigmaXV(0),
97fSigmaYV(0),
98fSigmaZV(0),
99fVertexCut(0),
100fMaxDZforPrimTrk(0),
101fMaxDZToUseConstraint(0),
102fMaxDforV0dghtrForProlongation(0),
103fMaxDForProlongation(0),
104fMaxDZForProlongation(0),
105fMinPtForProlongation(0),
6518a6c5 106fAddVirtualClustersInDeadZone(kFALSE),
572f41f9 107fZWindowDeadZone(0),
108fSigmaXDeadZoneHit2(0),
109fSigmaZDeadZoneHit2(0),
110fXPassDeadZoneHits(0),
6518a6c5 111fUseTGeoInTracker(3),
908753cb 112fStepSizeTGeo(5.),
572f41f9 113fAllowSharedClusters(kTRUE),
e50912db 114fClusterErrorsParam(1),
4a66240a 115fComputePlaneEff(kFALSE),
5fbd4fd6 116fHistoPlaneEff(kFALSE),
58e8dc31 117fUseTrackletsPlaneEff(kFALSE),
118fMCTrackletsPlaneEff(kFALSE),
119fBkgTrackletsPlaneEff(kFALSE),
120fTrackleterPhiWindowL1(0.10),
121fTrackleterZetaWindowL1(0.6),
122fUpdateOncePerEventPlaneEff(kTRUE),
123fMinContVtxPlaneEff(3),
0ed58a47 124fIPlanePlaneEff(0),
275a301c 125fReadPlaneEffFromOCDB(kFALSE),
0ed58a47 126fMinPtPlaneEff(0),
127fMaxMissingClustersPlaneEff(0),
128fRequireClusterInOuterLayerPlaneEff(kFALSE),
129fRequireClusterInInnerLayerPlaneEff(kFALSE),
130fOnlyConstraintPlaneEff(kFALSE),
2755f080 131fExtendedEtaAcceptance(kFALSE),
b406db2e 132fUseBadZonesFromOCDB(kTRUE),
23197852 133fUseSingleBadChannelsFromOCDB(kFALSE),
134fMinFractionOfBadInRoad(0),
ae00569a 135fAllowProlongationWithEmptyRoad(kFALSE),
12b1afb7 136fInwardFlagSA(kFALSE),
137fOuterStartLayerSA(2),
138fInnerStartLayerSA(3),
139fMinNPointsSA(3),
2755f080 140fFactorSAWindowSizes(1.),
c7d6d7b7 141fNLoopsSA(33),
142fMinPhiSA(0.002),
143fMaxPhiSA(0.0145),
144fMinLambdaSA(0.003),
145fMaxLambdaSA(0.008),
3733ccd2 146fMinClusterChargeSA(0.),
5a03f353 147fSAOnePointTracks(kFALSE),
148fSAUseAllClusters(kFALSE),
6518a6c5 149fFindV0s(kTRUE),
b0160ebc 150fStoreLikeSignV0s(kFALSE),
6518a6c5 151fUseUnfoldingInClusterFinderSPD(kFALSE),
152fUseUnfoldingInClusterFinderSDD(kTRUE),
a86176e3 153fUseUnfoldingInClusterFinderSSD(kTRUE),
ba0a07bf 154fUseSDDCorrectionMaps(kTRUE),
b779c7dc 155fUseSDDClusterSizeSelection(kFALSE),
156fMinClusterChargeSDD(0.),
7b116aa1 157fUseChargeMatchingInClusterFinderSSD(kTRUE),
158fTrackleterOnlyOneTrackletPerC2(kTRUE),
159fTrackleterPhiWindow(0.08),
160fTrackleterZetaWindow(1.00),
161fTrackleterRemoveClustersFromOverlaps(kFALSE),
162fTrackleterPhiOverlapCut(0.005),
42ed6062 163fTrackleterZetaOverlapCut(0.05),
ad7f2bfa 164fUseCosmicRunShiftsSSD(kFALSE),
165fSPDRemoveNoisyFlag(kTRUE),
166fSPDRemoveDeadFlag(kTRUE)
44347160 167{
168 //
169 // constructor
170 //
6518a6c5 171 SetName("ITS");
172 SetTitle("ITS");
173
44347160 174 SetLayersParameters();
2755f080 175 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fLayersToSkip[i]=0;
6518a6c5 176 SetUseTGeoInTracker(3);
908753cb 177 SetStepSizeTGeo(5.);
afd25725 178 SetAllowSharedClusters(kTRUE);
179 SetFindV0s(kTRUE);
6518a6c5 180 SetAddVirtualClustersInDeadZone(kFALSE);
572f41f9 181 SetUseAmplitudeInfo(kTRUE);
e50912db 182 SetClusterErrorsParam(1);
f9119eb9 183 SetClusterMisalError(0.);
7203e11a 184 SetVertexer3DDefaults();
44347160 185}
186//_____________________________________________________________________________
187AliITSRecoParam::~AliITSRecoParam()
188{
189 //
190 // destructor
191 //
192}
193//_____________________________________________________________________________
194AliITSRecoParam *AliITSRecoParam::GetHighFluxParam()
195{
196 //
197 // make default reconstruction parameters for hig flux env.
198 //
199 AliITSRecoParam *param = new AliITSRecoParam();
14bcd755 200 param->SetVertexerZ();
44347160 201
1aa655ec 202 // use of bads from OCDB
203 param->SetUseBadZonesFromOCDB(kTRUE);
204 param->SetUseSingleBadChannelsFromOCDB(kFALSE);
205 // extended eta acceptance
206 param->SetExtendedEtaAcceptance(kFALSE);
207 // allow to skip layer if no cluster and no bad
208 param->SetAllowProlongationWithEmptyRoad(kFALSE);
209
9be1d1c7 210
44347160 211 param->fMaxSnp = 0.95;
212
213 param->fNSigmaYLayerForRoadY = 4.;
214 param->fNSigmaRoadY = 7.5;
215 param->fNSigmaZLayerForRoadZ = 4.;
216 param->fNSigmaRoadZ = 7.5;
217
218 param->fNSigma2RoadZC = 60.; //7.75^2
219 param->fNSigma2RoadYC = 60.; //7.75^2
220 param->fNSigma2RoadZNonC = 50.; //7.07^2
221 param->fNSigma2RoadYNonC = 50.; //7.07^2
222
223 param->fMaxChi2PerCluster[0] = 11.; //7
224 param->fMaxChi2PerCluster[1] = 12.; //5
225 param->fMaxChi2PerCluster[2] = 12.; //8
226 param->fMaxChi2PerCluster[3] = 5.; //8
227 param->fMaxChi2PerCluster[4] = 12.; //6.5
228
229 param->fMaxNormChi2NonC[0] = 7.;
230 param->fMaxNormChi2NonC[1] = 8.;
231 param->fMaxNormChi2NonC[2] = 8.;
232 param->fMaxNormChi2NonC[3] = 11.;
233 param->fMaxNormChi2NonC[4] = 14.;
234 param->fMaxNormChi2NonC[5] = 25.;
235
236 param->fMaxNormChi2C[0] = 11.;
237 param->fMaxNormChi2C[1] = 13.;
238 param->fMaxNormChi2C[2] = 15.;
239 param->fMaxNormChi2C[3] = 18.;
240 param->fMaxNormChi2C[4] = 30.;
241 param->fMaxNormChi2C[5] = 35.;
afd25725 242
243 param->fMaxNormChi2NonCForHypothesis = 7.;
44347160 244
245 param->fMaxChi2 = 35.;
246
247 param->fMaxChi2s[0] = 25.; //40
248 param->fMaxChi2s[1] = 25.; //40
249 param->fMaxChi2s[2] = 25.; //40
250 param->fMaxChi2s[3] = 25.; //40
251 param->fMaxChi2s[4] = 40.; //40
252 param->fMaxChi2s[5] = 50.; //40
253
254 param->fMaxRoad = 6.;
255
256 // not used
257 param->fMaxChi2In = 16.;
258
259 param->fMaxChi2sR[0] = 10.;
260 param->fMaxChi2sR[1] = 10.;
261 param->fMaxChi2sR[2] = 10.;
262 param->fMaxChi2sR[3] = 10.;
263 param->fMaxChi2sR[4] = 30.;
264 param->fMaxChi2sR[5] = 40.;
265
266 param->fChi2PerCluster = 9.;
267 // not used
268
269 param->fXV = 0.;
270 param->fYV = 0.;
271 param->fZV = 0.;
272 param->fSigmaXV = 0.0050;
273 param->fSigmaYV = 0.0050;
274 param->fSigmaZV = 0.0100;
275
276 param->fVertexCut = 25.;
afd25725 277
278 param->fMaxDZforPrimTrk = 0.4;
279 param->fMaxDZToUseConstraint = 3.;
280
281 param->fMaxDforV0dghtrForProlongation = 30.;
6518a6c5 282 param->fMaxDForProlongation = 40.;//10.;
283 param->fMaxDZForProlongation = 60.;//20.;
afd25725 284 param->fMinPtForProlongation = 0.120;
285
286 param->fZWindowDeadZone = 2.0;
287 param->fSigmaXDeadZoneHit2 = 0.004/12.;
288 param->fSigmaZDeadZoneHit2 = 0.001/12.;
289 param->fXPassDeadZoneHits = 0.018;
44347160 290
291 return param;
292}
293//_____________________________________________________________________________
294AliITSRecoParam *AliITSRecoParam::GetLowFluxParam()
295{
296 //
297 // make default reconstruction parameters for low flux env.
298 //
c7d6d7b7 299 AliITSRecoParam *param = new AliITSRecoParam();
7203e11a 300 param->SetVertexer3DDefaults();
c7d6d7b7 301
1aa655ec 302 // full use of bads from OCDB
303 param->SetUseBadZonesFromOCDB(kTRUE);
304 param->SetUseSingleBadChannelsFromOCDB(kTRUE);
305 // extended eta acceptance
306 param->SetExtendedEtaAcceptance(kTRUE);
307 // allow to skip layer if no cluster and no bad
308 param->SetAllowProlongationWithEmptyRoad(kTRUE);
309
9be1d1c7 310
c7d6d7b7 311 param->fMaxSnp = 0.95;
312
313 param->fNSigmaYLayerForRoadY = 4.;
314 param->fNSigmaRoadY = 7.5;
315 param->fNSigmaZLayerForRoadZ = 4.;
316 param->fNSigmaRoadZ = 7.5;
317
318 param->fNSigma2RoadZC = 60.; //7.75^2
319 param->fNSigma2RoadYC = 60.; //7.75^2
320 param->fNSigma2RoadZNonC = 50.; //7.07^2
321 param->fNSigma2RoadYNonC = 50.; //7.07^2
322
323 param->fMaxChi2PerCluster[0] = 11.; //7
324 param->fMaxChi2PerCluster[1] = 12.; //5
325 param->fMaxChi2PerCluster[2] = 12.; //8
326 param->fMaxChi2PerCluster[3] = 5.; //8
327 param->fMaxChi2PerCluster[4] = 12.; //6.5
328
329 param->fMaxNormChi2NonC[0] = 7.;
330 param->fMaxNormChi2NonC[1] = 8.;
331 param->fMaxNormChi2NonC[2] = 8.;
332 param->fMaxNormChi2NonC[3] = 11.;
333 param->fMaxNormChi2NonC[4] = 14.;
334 param->fMaxNormChi2NonC[5] = 25.;
335
336 param->fMaxNormChi2C[0] = 11.;
337 param->fMaxNormChi2C[1] = 13.;
338 param->fMaxNormChi2C[2] = 15.;
339 param->fMaxNormChi2C[3] = 18.;
340 param->fMaxNormChi2C[4] = 30.;
341 param->fMaxNormChi2C[5] = 35.;
342
343 param->fMaxNormChi2NonCForHypothesis = 7.;
344
345 param->fMaxChi2 = 35.;
346
347 param->fMaxChi2s[0] = 25.; //40
348 param->fMaxChi2s[1] = 25.; //40
349 param->fMaxChi2s[2] = 25.; //40
350 param->fMaxChi2s[3] = 25.; //40
351 param->fMaxChi2s[4] = 40.; //40
352 param->fMaxChi2s[5] = 50.; //40
353
354 param->fMaxRoad = 6.;
355
356 // not used
357 param->fMaxChi2In = 16.;
358
359 param->fMaxChi2sR[0] = 10.;
360 param->fMaxChi2sR[1] = 10.;
361 param->fMaxChi2sR[2] = 10.;
362 param->fMaxChi2sR[3] = 10.;
363 param->fMaxChi2sR[4] = 30.;
364 param->fMaxChi2sR[5] = 40.;
365
366 param->fChi2PerCluster = 9.;
367 // not used
368
369 param->fXV = 0.;
370 param->fYV = 0.;
371 param->fZV = 0.;
372 param->fSigmaXV = 0.0050;
373 param->fSigmaYV = 0.0050;
374 param->fSigmaZV = 0.0100;
375
376 param->fVertexCut = 25.;
377
378 param->fMaxDZforPrimTrk = 0.4;
379 param->fMaxDZToUseConstraint = 3.;
380
381 param->fMaxDforV0dghtrForProlongation = 30.;
382 param->fMaxDForProlongation = 40.;//10.;
383 param->fMaxDZForProlongation = 60.;//20.;
384 param->fMinPtForProlongation = 0.120;
385
386 param->fZWindowDeadZone = 2.0;
387 param->fSigmaXDeadZoneHit2 = 0.004/12.;
388 param->fSigmaZDeadZoneHit2 = 0.001/12.;
389 param->fXPassDeadZoneHits = 0.018;
3733ccd2 390 param->SetNLoopsSA(20);
391 param->fMaxPhiSA = 0.07;
392 param->fMaxLambdaSA = 0.04;
c7d6d7b7 393 return param;
44347160 394}
395//_____________________________________________________________________________
396AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam()
397{
398 //
399 // make default reconstruction parameters for cosmics
400 //
e340bb86 401 AliITSRecoParam *param = new AliITSRecoParam();
402
f9119eb9 403 // vertexer for cosmics
404 param->SetVertexer(2);
405
9f9cae94 406 // find independently ITS SA tracks
407 param->SetSAUseAllClusters();
408 param->SetOuterStartLayerSA(AliITSgeomTGeo::GetNLayers()-2);
f9119eb9 409
2755f080 410 // larger seach windows for SA (in case of large misalignments)
411 param->SetFactorSAWindowSizes(3.);
e340bb86 412
413 param->fMaxSnp = 0.95;
414
415 param->fNSigmaYLayerForRoadY = 4.;
416 param->fNSigmaRoadY = 7.5;
417 param->fNSigmaZLayerForRoadZ = 4.;
418 param->fNSigmaRoadZ = 7.5;
419
420 param->fNSigma2RoadZC = 60.; //7.75^2
421 param->fNSigma2RoadYC = 60.; //7.75^2
422 param->fNSigma2RoadZNonC = 50.; //7.07^2
423 param->fNSigma2RoadYNonC = 50.; //7.07^2
424
425 param->fMaxChi2PerCluster[0] = 11.; //7
426 param->fMaxChi2PerCluster[1] = 12.; //5
427 param->fMaxChi2PerCluster[2] = 12.; //8
428 param->fMaxChi2PerCluster[3] = 5.; //8
429 param->fMaxChi2PerCluster[4] = 12.; //6.5
430
431 param->fMaxNormChi2NonC[0] = 7.;
432 param->fMaxNormChi2NonC[1] = 8.;
433 param->fMaxNormChi2NonC[2] = 8.;
434 param->fMaxNormChi2NonC[3] = 11.;
435 param->fMaxNormChi2NonC[4] = 14.;
436 param->fMaxNormChi2NonC[5] = 25.;
437
438 param->fMaxNormChi2C[0] = 11.;
439 param->fMaxNormChi2C[1] = 13.;
440 param->fMaxNormChi2C[2] = 15.;
441 param->fMaxNormChi2C[3] = 18.;
442 param->fMaxNormChi2C[4] = 30.;
443 param->fMaxNormChi2C[5] = 35.;
444
445 param->fMaxNormChi2NonCForHypothesis = 7.;
446
447 param->fMaxChi2 = 35.;
448
449 param->fMaxChi2s[0] = 25.; //40
450 param->fMaxChi2s[1] = 25.; //40
451 param->fMaxChi2s[2] = 25.; //40
452 param->fMaxChi2s[3] = 25.; //40
453 param->fMaxChi2s[4] = 40.; //40
454 param->fMaxChi2s[5] = 50.; //40
455
456 param->fMaxRoad = 6.;
457
458 // not used
459 param->fMaxChi2In = 16.;
460
461 param->fMaxChi2sR[0] = 10.;
462 param->fMaxChi2sR[1] = 10.;
463 param->fMaxChi2sR[2] = 10.;
464 param->fMaxChi2sR[3] = 10.;
465 param->fMaxChi2sR[4] = 30.;
466 param->fMaxChi2sR[5] = 40.;
467
468 param->fChi2PerCluster = 9.;
469 // not used
470
471 param->fXV = 0.;
472 param->fYV = 0.;
473 param->fZV = 0.;
474 param->fSigmaXV = 0.0050;
475 param->fSigmaYV = 0.0050;
476 param->fSigmaZV = 0.0100;
477
478 param->fVertexCut = 25.;
479
480 param->fMaxDZforPrimTrk = 0.4;
481 param->fMaxDZToUseConstraint = 3.;
482
483 param->fMaxDforV0dghtrForProlongation = 30.;
484 param->fMaxDForProlongation = 10.;
485 param->fMaxDZForProlongation = 20.;
486 param->fMinPtForProlongation = 0.120;
487
488 param->fZWindowDeadZone = 2.0;
489 param->fSigmaXDeadZoneHit2 = 0.004/12.;
490 param->fSigmaZDeadZoneHit2 = 0.001/12.;
491 param->fXPassDeadZoneHits = 0.018;
492
ba0a07bf 493 param->fUseSDDCorrectionMaps = kFALSE;
e340bb86 494
495 return param;
44347160 496}
497//_____________________________________________________________________________
ae00569a 498AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i)
499{
500 //
58e8dc31 501 // make special reconstruction parameters for Plane Efficiency study on layer i (0,5)
502 //
503 // if i=-1, then the evaluation for both pixel layers is tried with the tracklet method
ae00569a 504 //
58e8dc31 505 if (i<-1 || i>=AliITSgeomTGeo::kNLayers) {
506 printf("AliITSRecoParam::GetPlaneEffParam: index of ITS Plane nor in the range [0,5] neither =-1\n");
0ed58a47 507 printf("returning null pointer");
508 return NULL;
509 }
58e8dc31 510 if(i>=0) { // Method using tracks (remove given plane from tracking)
511 AliITSRecoParam *param;
512 param = GetHighFluxParam();
513 param->SetComputePlaneEff();
514 param->SetLayerToSkip(i);
515 param->SetIPlanePlaneEff(i);
516 // optimized setting for SPD0 (i==0)
517 if (i==0 || i==1) {
518 param->fMinPtPlaneEff = 0.200; // high pt particles
519 param->fMaxMissingClustersPlaneEff = 1; // at most 1 layer out of 5 without cluster
520 param->fRequireClusterInOuterLayerPlaneEff = kTRUE; // cluster on SPD1 must be
521 //param->fOnlyConstraintPlaneEff = kTRUE;
522 }
523 if (i==2 || i==3) {
524 param->fMinPtPlaneEff = 0.200; // high pt particles
525 param->fMaxMissingClustersPlaneEff = 1; // at most 1 layer out of 5 without cluster
526 param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
527 //param->fOnlyConstraintPlaneEff = kTRUE;
528 }
529 if (i==4) {
530 param->fMinPtPlaneEff = 0.200; // high pt particles
531 param->fMaxMissingClustersPlaneEff = 0; // at most 1 layer out of 5 without cluster
532 param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
533 //param->fOnlyConstraintPlaneEff = kTRUE;
534 }
535 if (i==5) {
536 param->fMinPtPlaneEff = 0.200; // high pt particles
537 }
538 //
539 return param;
0ed58a47 540 }
58e8dc31 541 else if (i==-1) { // Method using tracklets
542 AliITSRecoParam *param;
543 param = GetLowFluxParam();
544 param->SetIPlanePlaneEff(i);
545 param->SetComputePlaneEff(kTRUE,kFALSE);
546 param->SetUseTrackletsPlaneEff(kTRUE);
547 param->SetTrackleterPhiWindow(0.07);
548 param->SetTrackleterZetaWindow(0.4);
549 param->SetTrackleterPhiWindowL1(0.10);
550 param->SetTrackleterZetaWindowL1(0.6);
551 param->SetUpdateOncePerEventPlaneEff(kTRUE);
552 param->SetMinContVtxPlaneEff(3);
553 return param;
0ed58a47 554 }
5bd7ec3a 555 else {
556 AliErrorGeneral("AliITSRecoParam",Form("Unrecognised value of i %d\n",i));
557 return 0;
558 }
ae00569a 559}
560//_____________________________________________________________________________
44347160 561void AliITSRecoParam::SetLayersParameters()
562{
563 //
564 // number of layers and layers spatial resolutions
565 //
566
567 // spatial resolutions of the detectors
568 // y: 12 12 38 38 20 20 micron
569 fSigmaY2[0]=1.44e-6;
570 fSigmaY2[1]=1.44e-6;
571 fSigmaY2[2]=1.444e-5;
572 fSigmaY2[3]=1.444e-5;
573 fSigmaY2[4]=4.0e-6;
574 fSigmaY2[5]=4.0e-6;
575 // z: 120 120 28 28 830 830 micron
576 fSigmaZ2[0]=1.44e-4;
577 fSigmaZ2[1]=1.44e-4;
578 fSigmaZ2[2]=7.84e-6;
579 fSigmaZ2[3]=7.84e-6;
580 fSigmaZ2[4]=6.889e-3;
581 fSigmaZ2[5]=6.889e-3;
582
583 return;
584}
ed446fa3 585//_____________________________________________________________________________
586void AliITSRecoParam::PrintParameters() const
587{
588 //
589 // print parameters
590 //
591
592 printf("============================= AliITSRecoParam::PrintParameters ");
f9119eb9 593 printf("============================= \n\n");
ed446fa3 594 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
595 if(!fLayersToSkip[i]) {
596 printf("ITS Traking: using layer %d\n",i);
597 } else {
598 printf("ITS Traking: skipping layer %d\n",i);
599 }
600 }
601 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
602 if(fUseAmplitudeInfo[i]) {
603 printf("ITS Traking: use amplitude info for layer %d\n",i);
604 } else {
605 printf("ITS Traking: don't use amplitude info for layer %d\n",i);
606 }
607 }
608 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++)
f9119eb9 609 printf("Layer %d:\n sigmaY2 %f, sigmaZ2 %f\n sigmaMisalY %f, sigmaMisalZ %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],fClusterMisalErrorY[i],fClusterMisalErrorZ[i],fMaxNormChi2NonC[i],fMaxNormChi2C[i],fMaxChi2s[i]);
ed446fa3 610
611
612 Dump();
613
614 return;
615}