Changes related to the extraction of the V0 finder into a separate class (A. Dainese...
[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),
d695268b 153fUseUnfoldingInClusterFinderSSD(kFALSE),
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),
9364069b 166fSPDRemoveDeadFlag(kTRUE),
167fVertexerFastSmearX(0.005),
168fVertexerFastSmearY(0.005),
f27a7e81 169fVertexerFastSmearZ(0.01),
170fAlignFilterCosmics(kFALSE),
171fAlignFilterCosmicMergeTracks(kTRUE),
172fAlignFilterMinITSPoints(4),
173fAlignFilterMinITSPointsMerged(4),
174fAlignFilterOnlyITSSATracks(kTRUE),
175fAlignFilterOnlyITSTPCTracks(kFALSE),
176fAlignFilterSkipExtra(kFALSE),
177fAlignFilterMaxMatchingAngle(0.085),
178fAlignFilterMinAngleWrtModulePlanes(0.52),
179fAlignFilterMinPt(0.),
180fAlignFilterMaxPt(1.e10),
181fAlignFilterFillQANtuples(kTRUE)
44347160 182{
183 //
184 // constructor
185 //
6518a6c5 186 SetName("ITS");
187 SetTitle("ITS");
188
44347160 189 SetLayersParameters();
2755f080 190 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fLayersToSkip[i]=0;
6518a6c5 191 SetUseTGeoInTracker(3);
908753cb 192 SetStepSizeTGeo(5.);
afd25725 193 SetAllowSharedClusters(kTRUE);
194 SetFindV0s(kTRUE);
6518a6c5 195 SetAddVirtualClustersInDeadZone(kFALSE);
572f41f9 196 SetUseAmplitudeInfo(kTRUE);
e50912db 197 SetClusterErrorsParam(1);
f9119eb9 198 SetClusterMisalError(0.);
7203e11a 199 SetVertexer3DDefaults();
f27a7e81 200
201 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fAlignFilterUseLayer[i]=kTRUE;
44347160 202}
203//_____________________________________________________________________________
204AliITSRecoParam::~AliITSRecoParam()
205{
206 //
207 // destructor
208 //
209}
210//_____________________________________________________________________________
211AliITSRecoParam *AliITSRecoParam::GetHighFluxParam()
212{
213 //
214 // make default reconstruction parameters for hig flux env.
215 //
216 AliITSRecoParam *param = new AliITSRecoParam();
14bcd755 217 param->SetVertexerZ();
44347160 218
1aa655ec 219 // use of bads from OCDB
220 param->SetUseBadZonesFromOCDB(kTRUE);
221 param->SetUseSingleBadChannelsFromOCDB(kFALSE);
222 // extended eta acceptance
223 param->SetExtendedEtaAcceptance(kFALSE);
224 // allow to skip layer if no cluster and no bad
225 param->SetAllowProlongationWithEmptyRoad(kFALSE);
226
9be1d1c7 227
44347160 228 param->fMaxSnp = 0.95;
229
230 param->fNSigmaYLayerForRoadY = 4.;
231 param->fNSigmaRoadY = 7.5;
232 param->fNSigmaZLayerForRoadZ = 4.;
233 param->fNSigmaRoadZ = 7.5;
234
235 param->fNSigma2RoadZC = 60.; //7.75^2
236 param->fNSigma2RoadYC = 60.; //7.75^2
237 param->fNSigma2RoadZNonC = 50.; //7.07^2
238 param->fNSigma2RoadYNonC = 50.; //7.07^2
239
240 param->fMaxChi2PerCluster[0] = 11.; //7
241 param->fMaxChi2PerCluster[1] = 12.; //5
242 param->fMaxChi2PerCluster[2] = 12.; //8
243 param->fMaxChi2PerCluster[3] = 5.; //8
244 param->fMaxChi2PerCluster[4] = 12.; //6.5
245
246 param->fMaxNormChi2NonC[0] = 7.;
247 param->fMaxNormChi2NonC[1] = 8.;
248 param->fMaxNormChi2NonC[2] = 8.;
249 param->fMaxNormChi2NonC[3] = 11.;
250 param->fMaxNormChi2NonC[4] = 14.;
251 param->fMaxNormChi2NonC[5] = 25.;
252
253 param->fMaxNormChi2C[0] = 11.;
254 param->fMaxNormChi2C[1] = 13.;
255 param->fMaxNormChi2C[2] = 15.;
256 param->fMaxNormChi2C[3] = 18.;
257 param->fMaxNormChi2C[4] = 30.;
258 param->fMaxNormChi2C[5] = 35.;
afd25725 259
260 param->fMaxNormChi2NonCForHypothesis = 7.;
44347160 261
262 param->fMaxChi2 = 35.;
263
264 param->fMaxChi2s[0] = 25.; //40
265 param->fMaxChi2s[1] = 25.; //40
266 param->fMaxChi2s[2] = 25.; //40
267 param->fMaxChi2s[3] = 25.; //40
268 param->fMaxChi2s[4] = 40.; //40
269 param->fMaxChi2s[5] = 50.; //40
270
271 param->fMaxRoad = 6.;
272
273 // not used
274 param->fMaxChi2In = 16.;
275
276 param->fMaxChi2sR[0] = 10.;
277 param->fMaxChi2sR[1] = 10.;
278 param->fMaxChi2sR[2] = 10.;
279 param->fMaxChi2sR[3] = 10.;
280 param->fMaxChi2sR[4] = 30.;
281 param->fMaxChi2sR[5] = 40.;
282
283 param->fChi2PerCluster = 9.;
284 // not used
285
286 param->fXV = 0.;
287 param->fYV = 0.;
288 param->fZV = 0.;
289 param->fSigmaXV = 0.0050;
290 param->fSigmaYV = 0.0050;
291 param->fSigmaZV = 0.0100;
292
293 param->fVertexCut = 25.;
afd25725 294
295 param->fMaxDZforPrimTrk = 0.4;
296 param->fMaxDZToUseConstraint = 3.;
297
298 param->fMaxDforV0dghtrForProlongation = 30.;
6518a6c5 299 param->fMaxDForProlongation = 40.;//10.;
300 param->fMaxDZForProlongation = 60.;//20.;
afd25725 301 param->fMinPtForProlongation = 0.120;
302
303 param->fZWindowDeadZone = 2.0;
304 param->fSigmaXDeadZoneHit2 = 0.004/12.;
305 param->fSigmaZDeadZoneHit2 = 0.001/12.;
306 param->fXPassDeadZoneHits = 0.018;
44347160 307
308 return param;
309}
310//_____________________________________________________________________________
311AliITSRecoParam *AliITSRecoParam::GetLowFluxParam()
312{
313 //
314 // make default reconstruction parameters for low flux env.
315 //
c7d6d7b7 316 AliITSRecoParam *param = new AliITSRecoParam();
7203e11a 317 param->SetVertexer3DDefaults();
c7d6d7b7 318
1aa655ec 319 // full use of bads from OCDB
320 param->SetUseBadZonesFromOCDB(kTRUE);
321 param->SetUseSingleBadChannelsFromOCDB(kTRUE);
322 // extended eta acceptance
323 param->SetExtendedEtaAcceptance(kTRUE);
324 // allow to skip layer if no cluster and no bad
325 param->SetAllowProlongationWithEmptyRoad(kTRUE);
326
9be1d1c7 327
c7d6d7b7 328 param->fMaxSnp = 0.95;
329
330 param->fNSigmaYLayerForRoadY = 4.;
331 param->fNSigmaRoadY = 7.5;
332 param->fNSigmaZLayerForRoadZ = 4.;
333 param->fNSigmaRoadZ = 7.5;
334
335 param->fNSigma2RoadZC = 60.; //7.75^2
336 param->fNSigma2RoadYC = 60.; //7.75^2
337 param->fNSigma2RoadZNonC = 50.; //7.07^2
338 param->fNSigma2RoadYNonC = 50.; //7.07^2
339
340 param->fMaxChi2PerCluster[0] = 11.; //7
341 param->fMaxChi2PerCluster[1] = 12.; //5
342 param->fMaxChi2PerCluster[2] = 12.; //8
343 param->fMaxChi2PerCluster[3] = 5.; //8
344 param->fMaxChi2PerCluster[4] = 12.; //6.5
345
346 param->fMaxNormChi2NonC[0] = 7.;
347 param->fMaxNormChi2NonC[1] = 8.;
348 param->fMaxNormChi2NonC[2] = 8.;
349 param->fMaxNormChi2NonC[3] = 11.;
350 param->fMaxNormChi2NonC[4] = 14.;
351 param->fMaxNormChi2NonC[5] = 25.;
352
353 param->fMaxNormChi2C[0] = 11.;
354 param->fMaxNormChi2C[1] = 13.;
355 param->fMaxNormChi2C[2] = 15.;
356 param->fMaxNormChi2C[3] = 18.;
357 param->fMaxNormChi2C[4] = 30.;
358 param->fMaxNormChi2C[5] = 35.;
359
360 param->fMaxNormChi2NonCForHypothesis = 7.;
361
362 param->fMaxChi2 = 35.;
363
364 param->fMaxChi2s[0] = 25.; //40
365 param->fMaxChi2s[1] = 25.; //40
366 param->fMaxChi2s[2] = 25.; //40
367 param->fMaxChi2s[3] = 25.; //40
368 param->fMaxChi2s[4] = 40.; //40
369 param->fMaxChi2s[5] = 50.; //40
370
371 param->fMaxRoad = 6.;
372
373 // not used
374 param->fMaxChi2In = 16.;
375
376 param->fMaxChi2sR[0] = 10.;
377 param->fMaxChi2sR[1] = 10.;
378 param->fMaxChi2sR[2] = 10.;
379 param->fMaxChi2sR[3] = 10.;
380 param->fMaxChi2sR[4] = 30.;
381 param->fMaxChi2sR[5] = 40.;
382
383 param->fChi2PerCluster = 9.;
384 // not used
385
386 param->fXV = 0.;
387 param->fYV = 0.;
388 param->fZV = 0.;
389 param->fSigmaXV = 0.0050;
390 param->fSigmaYV = 0.0050;
391 param->fSigmaZV = 0.0100;
392
393 param->fVertexCut = 25.;
394
395 param->fMaxDZforPrimTrk = 0.4;
396 param->fMaxDZToUseConstraint = 3.;
397
398 param->fMaxDforV0dghtrForProlongation = 30.;
399 param->fMaxDForProlongation = 40.;//10.;
400 param->fMaxDZForProlongation = 60.;//20.;
401 param->fMinPtForProlongation = 0.120;
402
403 param->fZWindowDeadZone = 2.0;
404 param->fSigmaXDeadZoneHit2 = 0.004/12.;
405 param->fSigmaZDeadZoneHit2 = 0.001/12.;
406 param->fXPassDeadZoneHits = 0.018;
3733ccd2 407 param->SetNLoopsSA(20);
408 param->fMaxPhiSA = 0.07;
409 param->fMaxLambdaSA = 0.04;
c7d6d7b7 410 return param;
44347160 411}
412//_____________________________________________________________________________
413AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam()
414{
415 //
416 // make default reconstruction parameters for cosmics
417 //
e340bb86 418 AliITSRecoParam *param = new AliITSRecoParam();
419
f9119eb9 420 // vertexer for cosmics
421 param->SetVertexer(2);
422
9f9cae94 423 // find independently ITS SA tracks
424 param->SetSAUseAllClusters();
425 param->SetOuterStartLayerSA(AliITSgeomTGeo::GetNLayers()-2);
f9119eb9 426
2755f080 427 // larger seach windows for SA (in case of large misalignments)
428 param->SetFactorSAWindowSizes(3.);
e340bb86 429
f27a7e81 430 // alignment data filter
431 param->SetAlignFilterCosmics(kTRUE);
432 param->SetAlignFilterCosmicMergeTracks(kTRUE);
433 param->SetAlignFilterMinITSPoints(1);
434 param->SetAlignFilterMinITSPointsMerged(3);
435 param->SetAlignFilterOnlyITSSATracks(kTRUE);
436 param->SetAlignFilterOnlyITSTPCTracks(kFALSE);
437 param->SetAlignFilterSkipExtra(kFALSE);
438 param->SetAlignFilterMaxMatchingAngle(0.085/*5deg*/);
439 param->SetAlignFilterMinPt(0.2);
440 param->SetAlignFilterMaxPt(1.e10);
441 param->SetAlignFilterFillQANtuples(kTRUE);
442
e340bb86 443 param->fMaxSnp = 0.95;
444
445 param->fNSigmaYLayerForRoadY = 4.;
446 param->fNSigmaRoadY = 7.5;
447 param->fNSigmaZLayerForRoadZ = 4.;
448 param->fNSigmaRoadZ = 7.5;
449
450 param->fNSigma2RoadZC = 60.; //7.75^2
451 param->fNSigma2RoadYC = 60.; //7.75^2
452 param->fNSigma2RoadZNonC = 50.; //7.07^2
453 param->fNSigma2RoadYNonC = 50.; //7.07^2
454
455 param->fMaxChi2PerCluster[0] = 11.; //7
456 param->fMaxChi2PerCluster[1] = 12.; //5
457 param->fMaxChi2PerCluster[2] = 12.; //8
458 param->fMaxChi2PerCluster[3] = 5.; //8
459 param->fMaxChi2PerCluster[4] = 12.; //6.5
460
461 param->fMaxNormChi2NonC[0] = 7.;
462 param->fMaxNormChi2NonC[1] = 8.;
463 param->fMaxNormChi2NonC[2] = 8.;
464 param->fMaxNormChi2NonC[3] = 11.;
465 param->fMaxNormChi2NonC[4] = 14.;
466 param->fMaxNormChi2NonC[5] = 25.;
467
468 param->fMaxNormChi2C[0] = 11.;
469 param->fMaxNormChi2C[1] = 13.;
470 param->fMaxNormChi2C[2] = 15.;
471 param->fMaxNormChi2C[3] = 18.;
472 param->fMaxNormChi2C[4] = 30.;
473 param->fMaxNormChi2C[5] = 35.;
474
475 param->fMaxNormChi2NonCForHypothesis = 7.;
476
477 param->fMaxChi2 = 35.;
478
479 param->fMaxChi2s[0] = 25.; //40
480 param->fMaxChi2s[1] = 25.; //40
481 param->fMaxChi2s[2] = 25.; //40
482 param->fMaxChi2s[3] = 25.; //40
483 param->fMaxChi2s[4] = 40.; //40
484 param->fMaxChi2s[5] = 50.; //40
485
486 param->fMaxRoad = 6.;
487
488 // not used
489 param->fMaxChi2In = 16.;
490
491 param->fMaxChi2sR[0] = 10.;
492 param->fMaxChi2sR[1] = 10.;
493 param->fMaxChi2sR[2] = 10.;
494 param->fMaxChi2sR[3] = 10.;
495 param->fMaxChi2sR[4] = 30.;
496 param->fMaxChi2sR[5] = 40.;
497
498 param->fChi2PerCluster = 9.;
499 // not used
500
501 param->fXV = 0.;
502 param->fYV = 0.;
503 param->fZV = 0.;
504 param->fSigmaXV = 0.0050;
505 param->fSigmaYV = 0.0050;
506 param->fSigmaZV = 0.0100;
507
508 param->fVertexCut = 25.;
509
510 param->fMaxDZforPrimTrk = 0.4;
511 param->fMaxDZToUseConstraint = 3.;
512
513 param->fMaxDforV0dghtrForProlongation = 30.;
514 param->fMaxDForProlongation = 10.;
515 param->fMaxDZForProlongation = 20.;
516 param->fMinPtForProlongation = 0.120;
517
518 param->fZWindowDeadZone = 2.0;
519 param->fSigmaXDeadZoneHit2 = 0.004/12.;
520 param->fSigmaZDeadZoneHit2 = 0.001/12.;
521 param->fXPassDeadZoneHits = 0.018;
522
ba0a07bf 523 param->fUseSDDCorrectionMaps = kFALSE;
e340bb86 524
525 return param;
44347160 526}
527//_____________________________________________________________________________
ae00569a 528AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i)
529{
530 //
58e8dc31 531 // make special reconstruction parameters for Plane Efficiency study on layer i (0,5)
532 //
533 // if i=-1, then the evaluation for both pixel layers is tried with the tracklet method
ae00569a 534 //
58e8dc31 535 if (i<-1 || i>=AliITSgeomTGeo::kNLayers) {
536 printf("AliITSRecoParam::GetPlaneEffParam: index of ITS Plane nor in the range [0,5] neither =-1\n");
0ed58a47 537 printf("returning null pointer");
538 return NULL;
539 }
58e8dc31 540 if(i>=0) { // Method using tracks (remove given plane from tracking)
541 AliITSRecoParam *param;
542 param = GetHighFluxParam();
543 param->SetComputePlaneEff();
544 param->SetLayerToSkip(i);
545 param->SetIPlanePlaneEff(i);
546 // optimized setting for SPD0 (i==0)
547 if (i==0 || i==1) {
548 param->fMinPtPlaneEff = 0.200; // high pt particles
549 param->fMaxMissingClustersPlaneEff = 1; // at most 1 layer out of 5 without cluster
550 param->fRequireClusterInOuterLayerPlaneEff = kTRUE; // cluster on SPD1 must be
551 //param->fOnlyConstraintPlaneEff = kTRUE;
552 }
553 if (i==2 || i==3) {
554 param->fMinPtPlaneEff = 0.200; // high pt particles
555 param->fMaxMissingClustersPlaneEff = 1; // at most 1 layer out of 5 without cluster
556 param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
557 //param->fOnlyConstraintPlaneEff = kTRUE;
558 }
559 if (i==4) {
560 param->fMinPtPlaneEff = 0.200; // high pt particles
561 param->fMaxMissingClustersPlaneEff = 0; // at most 1 layer out of 5 without cluster
562 param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
563 //param->fOnlyConstraintPlaneEff = kTRUE;
564 }
565 if (i==5) {
566 param->fMinPtPlaneEff = 0.200; // high pt particles
567 }
568 //
569 return param;
0ed58a47 570 }
58e8dc31 571 else if (i==-1) { // Method using tracklets
572 AliITSRecoParam *param;
573 param = GetLowFluxParam();
574 param->SetIPlanePlaneEff(i);
575 param->SetComputePlaneEff(kTRUE,kFALSE);
576 param->SetUseTrackletsPlaneEff(kTRUE);
577 param->SetTrackleterPhiWindow(0.07);
578 param->SetTrackleterZetaWindow(0.4);
579 param->SetTrackleterPhiWindowL1(0.10);
580 param->SetTrackleterZetaWindowL1(0.6);
581 param->SetUpdateOncePerEventPlaneEff(kTRUE);
582 param->SetMinContVtxPlaneEff(3);
583 return param;
0ed58a47 584 }
5bd7ec3a 585 else {
586 AliErrorGeneral("AliITSRecoParam",Form("Unrecognised value of i %d\n",i));
587 return 0;
588 }
ae00569a 589}
590//_____________________________________________________________________________
44347160 591void AliITSRecoParam::SetLayersParameters()
592{
593 //
594 // number of layers and layers spatial resolutions
595 //
596
597 // spatial resolutions of the detectors
598 // y: 12 12 38 38 20 20 micron
599 fSigmaY2[0]=1.44e-6;
600 fSigmaY2[1]=1.44e-6;
601 fSigmaY2[2]=1.444e-5;
602 fSigmaY2[3]=1.444e-5;
603 fSigmaY2[4]=4.0e-6;
604 fSigmaY2[5]=4.0e-6;
605 // z: 120 120 28 28 830 830 micron
606 fSigmaZ2[0]=1.44e-4;
607 fSigmaZ2[1]=1.44e-4;
608 fSigmaZ2[2]=7.84e-6;
609 fSigmaZ2[3]=7.84e-6;
610 fSigmaZ2[4]=6.889e-3;
611 fSigmaZ2[5]=6.889e-3;
612
613 return;
614}
ed446fa3 615//_____________________________________________________________________________
616void AliITSRecoParam::PrintParameters() const
617{
618 //
619 // print parameters
620 //
621
622 printf("============================= AliITSRecoParam::PrintParameters ");
f9119eb9 623 printf("============================= \n\n");
ed446fa3 624 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
625 if(!fLayersToSkip[i]) {
626 printf("ITS Traking: using layer %d\n",i);
627 } else {
628 printf("ITS Traking: skipping layer %d\n",i);
629 }
630 }
631 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
632 if(fUseAmplitudeInfo[i]) {
633 printf("ITS Traking: use amplitude info for layer %d\n",i);
634 } else {
635 printf("ITS Traking: don't use amplitude info for layer %d\n",i);
636 }
637 }
638 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++)
f9119eb9 639 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 640
641
642 Dump();
643
644 return;
645}