updating the ESD tracks with the result of the ITS reconstruction
[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.),
8b78365f 78fVtxr3DPileupAlgo(1),
e50912db 79fMaxSnp(1.),
572f41f9 80fNSigmaYLayerForRoadY(0),
81fNSigmaRoadY(0),
82fNSigmaZLayerForRoadZ(0),
83fNSigmaRoadZ(0),
84fNSigma2RoadZC(0),
85fNSigma2RoadYC(0),
86fNSigma2RoadZNonC(0),
87fNSigma2RoadYNonC(0),
1c97ce2f 88fRoadMisal(0),
572f41f9 89fMaxNormChi2NonCForHypothesis(0),
90fMaxChi2(0),
91fMaxRoad(0),
92fMaxChi2In(0),
93fChi2PerCluster(0),
94fXV(0),
95fYV(0),
96fZV(0),
97fSigmaXV(0),
98fSigmaYV(0),
99fSigmaZV(0),
100fVertexCut(0),
101fMaxDZforPrimTrk(0),
102fMaxDZToUseConstraint(0),
103fMaxDforV0dghtrForProlongation(0),
104fMaxDForProlongation(0),
105fMaxDZForProlongation(0),
106fMinPtForProlongation(0),
6518a6c5 107fAddVirtualClustersInDeadZone(kFALSE),
572f41f9 108fZWindowDeadZone(0),
109fSigmaXDeadZoneHit2(0),
110fSigmaZDeadZoneHit2(0),
111fXPassDeadZoneHits(0),
6518a6c5 112fUseTGeoInTracker(3),
908753cb 113fStepSizeTGeo(5.),
572f41f9 114fAllowSharedClusters(kTRUE),
e50912db 115fClusterErrorsParam(1),
4a66240a 116fComputePlaneEff(kFALSE),
5fbd4fd6 117fHistoPlaneEff(kFALSE),
58e8dc31 118fUseTrackletsPlaneEff(kFALSE),
119fMCTrackletsPlaneEff(kFALSE),
120fBkgTrackletsPlaneEff(kFALSE),
121fTrackleterPhiWindowL1(0.10),
7284b2b2 122fTrackleterPhiWindowL2(0.07),
58e8dc31 123fTrackleterZetaWindowL1(0.6),
7284b2b2 124fTrackleterZetaWindowL2(0.4),
58e8dc31 125fUpdateOncePerEventPlaneEff(kTRUE),
126fMinContVtxPlaneEff(3),
0ed58a47 127fIPlanePlaneEff(0),
275a301c 128fReadPlaneEffFromOCDB(kFALSE),
0ed58a47 129fMinPtPlaneEff(0),
130fMaxMissingClustersPlaneEff(0),
131fRequireClusterInOuterLayerPlaneEff(kFALSE),
132fRequireClusterInInnerLayerPlaneEff(kFALSE),
133fOnlyConstraintPlaneEff(kFALSE),
2755f080 134fExtendedEtaAcceptance(kFALSE),
b406db2e 135fUseBadZonesFromOCDB(kTRUE),
23197852 136fUseSingleBadChannelsFromOCDB(kFALSE),
137fMinFractionOfBadInRoad(0),
ae00569a 138fAllowProlongationWithEmptyRoad(kFALSE),
12b1afb7 139fInwardFlagSA(kFALSE),
140fOuterStartLayerSA(2),
141fInnerStartLayerSA(3),
142fMinNPointsSA(3),
2755f080 143fFactorSAWindowSizes(1.),
c7d6d7b7 144fNLoopsSA(33),
145fMinPhiSA(0.002),
146fMaxPhiSA(0.0145),
147fMinLambdaSA(0.003),
148fMaxLambdaSA(0.008),
3733ccd2 149fMinClusterChargeSA(0.),
5a03f353 150fSAOnePointTracks(kFALSE),
151fSAUseAllClusters(kFALSE),
6518a6c5 152fFindV0s(kTRUE),
b0160ebc 153fStoreLikeSignV0s(kFALSE),
6518a6c5 154fUseUnfoldingInClusterFinderSPD(kFALSE),
155fUseUnfoldingInClusterFinderSDD(kTRUE),
d695268b 156fUseUnfoldingInClusterFinderSSD(kFALSE),
7101948c 157fUseBadChannelsInClusterFinderSSD(kFALSE),
ba0a07bf 158fUseSDDCorrectionMaps(kTRUE),
b779c7dc 159fUseSDDClusterSizeSelection(kFALSE),
160fMinClusterChargeSDD(0.),
7b116aa1 161fUseChargeMatchingInClusterFinderSSD(kTRUE),
7b116aa1 162fTrackleterPhiWindow(0.08),
7284b2b2 163fTrackleterThetaWindow(0.025),
7b116aa1 164fTrackleterRemoveClustersFromOverlaps(kFALSE),
165fTrackleterPhiOverlapCut(0.005),
42ed6062 166fTrackleterZetaOverlapCut(0.05),
ad7f2bfa 167fUseCosmicRunShiftsSSD(kFALSE),
168fSPDRemoveNoisyFlag(kTRUE),
9364069b 169fSPDRemoveDeadFlag(kTRUE),
170fVertexerFastSmearX(0.005),
171fVertexerFastSmearY(0.005),
f27a7e81 172fVertexerFastSmearZ(0.01),
173fAlignFilterCosmics(kFALSE),
174fAlignFilterCosmicMergeTracks(kTRUE),
175fAlignFilterMinITSPoints(4),
176fAlignFilterMinITSPointsMerged(4),
177fAlignFilterOnlyITSSATracks(kTRUE),
178fAlignFilterOnlyITSTPCTracks(kFALSE),
179fAlignFilterSkipExtra(kFALSE),
180fAlignFilterMaxMatchingAngle(0.085),
181fAlignFilterMinAngleWrtModulePlanes(0.52),
182fAlignFilterMinPt(0.),
183fAlignFilterMaxPt(1.e10),
184fAlignFilterFillQANtuples(kTRUE)
44347160 185{
186 //
187 // constructor
188 //
6518a6c5 189 SetName("ITS");
190 SetTitle("ITS");
191
44347160 192 SetLayersParameters();
2755f080 193 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fLayersToSkip[i]=0;
6518a6c5 194 SetUseTGeoInTracker(3);
908753cb 195 SetStepSizeTGeo(5.);
afd25725 196 SetAllowSharedClusters(kTRUE);
197 SetFindV0s(kTRUE);
6518a6c5 198 SetAddVirtualClustersInDeadZone(kFALSE);
572f41f9 199 SetUseAmplitudeInfo(kTRUE);
e50912db 200 SetClusterErrorsParam(1);
f9119eb9 201 SetClusterMisalError(0.);
4fd4a5d7 202 SetClusterMisalErrorBOn(0.);
7203e11a 203 SetVertexer3DDefaults();
f27a7e81 204
205 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fAlignFilterUseLayer[i]=kTRUE;
44347160 206}
207//_____________________________________________________________________________
208AliITSRecoParam::~AliITSRecoParam()
209{
210 //
211 // destructor
212 //
213}
214//_____________________________________________________________________________
215AliITSRecoParam *AliITSRecoParam::GetHighFluxParam()
216{
217 //
218 // make default reconstruction parameters for hig flux env.
219 //
220 AliITSRecoParam *param = new AliITSRecoParam();
14bcd755 221 param->SetVertexerZ();
44347160 222
1aa655ec 223 // use of bads from OCDB
224 param->SetUseBadZonesFromOCDB(kTRUE);
225 param->SetUseSingleBadChannelsFromOCDB(kFALSE);
226 // extended eta acceptance
227 param->SetExtendedEtaAcceptance(kFALSE);
228 // allow to skip layer if no cluster and no bad
229 param->SetAllowProlongationWithEmptyRoad(kFALSE);
230
9be1d1c7 231
44347160 232 param->fMaxSnp = 0.95;
233
234 param->fNSigmaYLayerForRoadY = 4.;
235 param->fNSigmaRoadY = 7.5;
236 param->fNSigmaZLayerForRoadZ = 4.;
237 param->fNSigmaRoadZ = 7.5;
238
239 param->fNSigma2RoadZC = 60.; //7.75^2
240 param->fNSigma2RoadYC = 60.; //7.75^2
241 param->fNSigma2RoadZNonC = 50.; //7.07^2
242 param->fNSigma2RoadYNonC = 50.; //7.07^2
243
244 param->fMaxChi2PerCluster[0] = 11.; //7
245 param->fMaxChi2PerCluster[1] = 12.; //5
246 param->fMaxChi2PerCluster[2] = 12.; //8
247 param->fMaxChi2PerCluster[3] = 5.; //8
248 param->fMaxChi2PerCluster[4] = 12.; //6.5
249
250 param->fMaxNormChi2NonC[0] = 7.;
251 param->fMaxNormChi2NonC[1] = 8.;
252 param->fMaxNormChi2NonC[2] = 8.;
253 param->fMaxNormChi2NonC[3] = 11.;
254 param->fMaxNormChi2NonC[4] = 14.;
255 param->fMaxNormChi2NonC[5] = 25.;
256
257 param->fMaxNormChi2C[0] = 11.;
258 param->fMaxNormChi2C[1] = 13.;
259 param->fMaxNormChi2C[2] = 15.;
260 param->fMaxNormChi2C[3] = 18.;
261 param->fMaxNormChi2C[4] = 30.;
262 param->fMaxNormChi2C[5] = 35.;
afd25725 263
264 param->fMaxNormChi2NonCForHypothesis = 7.;
44347160 265
266 param->fMaxChi2 = 35.;
267
268 param->fMaxChi2s[0] = 25.; //40
269 param->fMaxChi2s[1] = 25.; //40
270 param->fMaxChi2s[2] = 25.; //40
271 param->fMaxChi2s[3] = 25.; //40
272 param->fMaxChi2s[4] = 40.; //40
273 param->fMaxChi2s[5] = 50.; //40
274
275 param->fMaxRoad = 6.;
276
277 // not used
278 param->fMaxChi2In = 16.;
279
280 param->fMaxChi2sR[0] = 10.;
281 param->fMaxChi2sR[1] = 10.;
282 param->fMaxChi2sR[2] = 10.;
283 param->fMaxChi2sR[3] = 10.;
284 param->fMaxChi2sR[4] = 30.;
285 param->fMaxChi2sR[5] = 40.;
286
287 param->fChi2PerCluster = 9.;
288 // not used
289
290 param->fXV = 0.;
291 param->fYV = 0.;
292 param->fZV = 0.;
293 param->fSigmaXV = 0.0050;
294 param->fSigmaYV = 0.0050;
295 param->fSigmaZV = 0.0100;
296
297 param->fVertexCut = 25.;
afd25725 298
299 param->fMaxDZforPrimTrk = 0.4;
300 param->fMaxDZToUseConstraint = 3.;
301
302 param->fMaxDforV0dghtrForProlongation = 30.;
6518a6c5 303 param->fMaxDForProlongation = 40.;//10.;
304 param->fMaxDZForProlongation = 60.;//20.;
afd25725 305 param->fMinPtForProlongation = 0.120;
306
307 param->fZWindowDeadZone = 2.0;
308 param->fSigmaXDeadZoneHit2 = 0.004/12.;
309 param->fSigmaZDeadZoneHit2 = 0.001/12.;
310 param->fXPassDeadZoneHits = 0.018;
44347160 311
312 return param;
313}
314//_____________________________________________________________________________
315AliITSRecoParam *AliITSRecoParam::GetLowFluxParam()
316{
317 //
318 // make default reconstruction parameters for low flux env.
319 //
c7d6d7b7 320 AliITSRecoParam *param = new AliITSRecoParam();
7203e11a 321 param->SetVertexer3DDefaults();
c7d6d7b7 322
1aa655ec 323 // full use of bads from OCDB
324 param->SetUseBadZonesFromOCDB(kTRUE);
325 param->SetUseSingleBadChannelsFromOCDB(kTRUE);
326 // extended eta acceptance
327 param->SetExtendedEtaAcceptance(kTRUE);
328 // allow to skip layer if no cluster and no bad
329 param->SetAllowProlongationWithEmptyRoad(kTRUE);
330
9be1d1c7 331
c7d6d7b7 332 param->fMaxSnp = 0.95;
333
334 param->fNSigmaYLayerForRoadY = 4.;
335 param->fNSigmaRoadY = 7.5;
336 param->fNSigmaZLayerForRoadZ = 4.;
337 param->fNSigmaRoadZ = 7.5;
338
339 param->fNSigma2RoadZC = 60.; //7.75^2
340 param->fNSigma2RoadYC = 60.; //7.75^2
341 param->fNSigma2RoadZNonC = 50.; //7.07^2
342 param->fNSigma2RoadYNonC = 50.; //7.07^2
343
344 param->fMaxChi2PerCluster[0] = 11.; //7
345 param->fMaxChi2PerCluster[1] = 12.; //5
346 param->fMaxChi2PerCluster[2] = 12.; //8
347 param->fMaxChi2PerCluster[3] = 5.; //8
348 param->fMaxChi2PerCluster[4] = 12.; //6.5
349
350 param->fMaxNormChi2NonC[0] = 7.;
351 param->fMaxNormChi2NonC[1] = 8.;
352 param->fMaxNormChi2NonC[2] = 8.;
353 param->fMaxNormChi2NonC[3] = 11.;
354 param->fMaxNormChi2NonC[4] = 14.;
355 param->fMaxNormChi2NonC[5] = 25.;
356
357 param->fMaxNormChi2C[0] = 11.;
358 param->fMaxNormChi2C[1] = 13.;
359 param->fMaxNormChi2C[2] = 15.;
360 param->fMaxNormChi2C[3] = 18.;
361 param->fMaxNormChi2C[4] = 30.;
362 param->fMaxNormChi2C[5] = 35.;
363
364 param->fMaxNormChi2NonCForHypothesis = 7.;
365
366 param->fMaxChi2 = 35.;
367
368 param->fMaxChi2s[0] = 25.; //40
369 param->fMaxChi2s[1] = 25.; //40
370 param->fMaxChi2s[2] = 25.; //40
371 param->fMaxChi2s[3] = 25.; //40
372 param->fMaxChi2s[4] = 40.; //40
373 param->fMaxChi2s[5] = 50.; //40
374
375 param->fMaxRoad = 6.;
376
377 // not used
378 param->fMaxChi2In = 16.;
379
380 param->fMaxChi2sR[0] = 10.;
381 param->fMaxChi2sR[1] = 10.;
382 param->fMaxChi2sR[2] = 10.;
383 param->fMaxChi2sR[3] = 10.;
384 param->fMaxChi2sR[4] = 30.;
385 param->fMaxChi2sR[5] = 40.;
386
387 param->fChi2PerCluster = 9.;
388 // not used
389
390 param->fXV = 0.;
391 param->fYV = 0.;
392 param->fZV = 0.;
393 param->fSigmaXV = 0.0050;
394 param->fSigmaYV = 0.0050;
395 param->fSigmaZV = 0.0100;
396
397 param->fVertexCut = 25.;
398
399 param->fMaxDZforPrimTrk = 0.4;
400 param->fMaxDZToUseConstraint = 3.;
401
402 param->fMaxDforV0dghtrForProlongation = 30.;
403 param->fMaxDForProlongation = 40.;//10.;
404 param->fMaxDZForProlongation = 60.;//20.;
405 param->fMinPtForProlongation = 0.120;
406
407 param->fZWindowDeadZone = 2.0;
408 param->fSigmaXDeadZoneHit2 = 0.004/12.;
409 param->fSigmaZDeadZoneHit2 = 0.001/12.;
410 param->fXPassDeadZoneHits = 0.018;
3733ccd2 411 param->SetNLoopsSA(20);
412 param->fMaxPhiSA = 0.07;
413 param->fMaxLambdaSA = 0.04;
c7d6d7b7 414 return param;
44347160 415}
416//_____________________________________________________________________________
417AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam()
418{
419 //
420 // make default reconstruction parameters for cosmics
421 //
e340bb86 422 AliITSRecoParam *param = new AliITSRecoParam();
423
f9119eb9 424 // vertexer for cosmics
425 param->SetVertexer(2);
426
4fd4a5d7 427 param->SetClusterErrorsParam(2);
428 param->SetFindV0s(kFALSE);
429 param->SetAddVirtualClustersInDeadZone(kFALSE);
430 param->SetUseAmplitudeInfo(kFALSE);
431
432 // full use of bads from OCDB
433 param->SetUseBadZonesFromOCDB(kTRUE);
434 param->SetUseSingleBadChannelsFromOCDB(kTRUE);
435
9f9cae94 436 // find independently ITS SA tracks
437 param->SetSAUseAllClusters();
438 param->SetOuterStartLayerSA(AliITSgeomTGeo::GetNLayers()-2);
f9119eb9 439
4fd4a5d7 440 //****** COSMICS 2009 (same as COSMICS 2008) *********************
441
442 // to maximize efficiency
443 param->SetAllowProlongationWithEmptyRoad();
444
2755f080 445 // larger seach windows for SA (in case of large misalignments)
4fd4a5d7 446 param->SetNLoopsSA(33);
447 param->SetFactorSAWindowSizes(20);
448
449 // additional error due to misal (B off)
450 param->SetClusterMisalErrorY(1.0,1.0,1.0,1.0,1.0,1.0); // [cm]
451 param->SetClusterMisalErrorZ(1.0,1.0,1.0,1.0,1.0,1.0); // [cm]
452 // additional error due to misal (B on)
453 param->SetClusterMisalErrorYBOn(0.0,0.0,0.1,0.1,0.1,0.1); // [cm]
454 param->SetClusterMisalErrorZBOn(0.1,0.1,0.1,0.1,0.1,0.1); // [cm]
455
456
457 // SDD configuration
458 param->fUseSDDCorrectionMaps = kFALSE;
459 param->fUseSDDClusterSizeSelection=kTRUE;
460 param->fMinClusterChargeSDD=30.;
461
e340bb86 462
f27a7e81 463 // alignment data filter
464 param->SetAlignFilterCosmics(kTRUE);
465 param->SetAlignFilterCosmicMergeTracks(kTRUE);
466 param->SetAlignFilterMinITSPoints(1);
467 param->SetAlignFilterMinITSPointsMerged(3);
468 param->SetAlignFilterOnlyITSSATracks(kTRUE);
469 param->SetAlignFilterOnlyITSTPCTracks(kFALSE);
470 param->SetAlignFilterSkipExtra(kFALSE);
471 param->SetAlignFilterMaxMatchingAngle(0.085/*5deg*/);
472 param->SetAlignFilterMinPt(0.2);
473 param->SetAlignFilterMaxPt(1.e10);
474 param->SetAlignFilterFillQANtuples(kTRUE);
475
4fd4a5d7 476 //******************************************************************
477
e340bb86 478 param->fMaxSnp = 0.95;
479
480 param->fNSigmaYLayerForRoadY = 4.;
481 param->fNSigmaRoadY = 7.5;
482 param->fNSigmaZLayerForRoadZ = 4.;
483 param->fNSigmaRoadZ = 7.5;
484
485 param->fNSigma2RoadZC = 60.; //7.75^2
486 param->fNSigma2RoadYC = 60.; //7.75^2
487 param->fNSigma2RoadZNonC = 50.; //7.07^2
488 param->fNSigma2RoadYNonC = 50.; //7.07^2
489
490 param->fMaxChi2PerCluster[0] = 11.; //7
491 param->fMaxChi2PerCluster[1] = 12.; //5
492 param->fMaxChi2PerCluster[2] = 12.; //8
493 param->fMaxChi2PerCluster[3] = 5.; //8
494 param->fMaxChi2PerCluster[4] = 12.; //6.5
495
496 param->fMaxNormChi2NonC[0] = 7.;
497 param->fMaxNormChi2NonC[1] = 8.;
498 param->fMaxNormChi2NonC[2] = 8.;
499 param->fMaxNormChi2NonC[3] = 11.;
500 param->fMaxNormChi2NonC[4] = 14.;
501 param->fMaxNormChi2NonC[5] = 25.;
502
503 param->fMaxNormChi2C[0] = 11.;
504 param->fMaxNormChi2C[1] = 13.;
505 param->fMaxNormChi2C[2] = 15.;
506 param->fMaxNormChi2C[3] = 18.;
507 param->fMaxNormChi2C[4] = 30.;
508 param->fMaxNormChi2C[5] = 35.;
509
510 param->fMaxNormChi2NonCForHypothesis = 7.;
511
512 param->fMaxChi2 = 35.;
513
514 param->fMaxChi2s[0] = 25.; //40
515 param->fMaxChi2s[1] = 25.; //40
516 param->fMaxChi2s[2] = 25.; //40
517 param->fMaxChi2s[3] = 25.; //40
518 param->fMaxChi2s[4] = 40.; //40
519 param->fMaxChi2s[5] = 50.; //40
520
521 param->fMaxRoad = 6.;
522
523 // not used
524 param->fMaxChi2In = 16.;
525
526 param->fMaxChi2sR[0] = 10.;
527 param->fMaxChi2sR[1] = 10.;
528 param->fMaxChi2sR[2] = 10.;
529 param->fMaxChi2sR[3] = 10.;
530 param->fMaxChi2sR[4] = 30.;
531 param->fMaxChi2sR[5] = 40.;
532
533 param->fChi2PerCluster = 9.;
534 // not used
535
536 param->fXV = 0.;
537 param->fYV = 0.;
538 param->fZV = 0.;
539 param->fSigmaXV = 0.0050;
540 param->fSigmaYV = 0.0050;
541 param->fSigmaZV = 0.0100;
542
543 param->fVertexCut = 25.;
544
545 param->fMaxDZforPrimTrk = 0.4;
546 param->fMaxDZToUseConstraint = 3.;
547
548 param->fMaxDforV0dghtrForProlongation = 30.;
549 param->fMaxDForProlongation = 10.;
550 param->fMaxDZForProlongation = 20.;
551 param->fMinPtForProlongation = 0.120;
552
553 param->fZWindowDeadZone = 2.0;
554 param->fSigmaXDeadZoneHit2 = 0.004/12.;
555 param->fSigmaZDeadZoneHit2 = 0.001/12.;
556 param->fXPassDeadZoneHits = 0.018;
557
e340bb86 558 return param;
44347160 559}
560//_____________________________________________________________________________
ae00569a 561AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i)
562{
563 //
58e8dc31 564 // make special reconstruction parameters for Plane Efficiency study on layer i (0,5)
565 //
566 // if i=-1, then the evaluation for both pixel layers is tried with the tracklet method
ae00569a 567 //
58e8dc31 568 if (i<-1 || i>=AliITSgeomTGeo::kNLayers) {
569 printf("AliITSRecoParam::GetPlaneEffParam: index of ITS Plane nor in the range [0,5] neither =-1\n");
0ed58a47 570 printf("returning null pointer");
571 return NULL;
572 }
58e8dc31 573 if(i>=0) { // Method using tracks (remove given plane from tracking)
574 AliITSRecoParam *param;
575 param = GetHighFluxParam();
576 param->SetComputePlaneEff();
577 param->SetLayerToSkip(i);
578 param->SetIPlanePlaneEff(i);
579 // optimized setting for SPD0 (i==0)
580 if (i==0 || i==1) {
581 param->fMinPtPlaneEff = 0.200; // high pt particles
582 param->fMaxMissingClustersPlaneEff = 1; // at most 1 layer out of 5 without cluster
583 param->fRequireClusterInOuterLayerPlaneEff = kTRUE; // cluster on SPD1 must be
584 //param->fOnlyConstraintPlaneEff = kTRUE;
585 }
586 if (i==2 || i==3) {
587 param->fMinPtPlaneEff = 0.200; // high pt particles
588 param->fMaxMissingClustersPlaneEff = 1; // at most 1 layer out of 5 without cluster
589 param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
590 //param->fOnlyConstraintPlaneEff = kTRUE;
591 }
592 if (i==4) {
593 param->fMinPtPlaneEff = 0.200; // high pt particles
594 param->fMaxMissingClustersPlaneEff = 0; // at most 1 layer out of 5 without cluster
595 param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
596 //param->fOnlyConstraintPlaneEff = kTRUE;
597 }
598 if (i==5) {
599 param->fMinPtPlaneEff = 0.200; // high pt particles
600 }
601 //
602 return param;
0ed58a47 603 }
58e8dc31 604 else if (i==-1) { // Method using tracklets
605 AliITSRecoParam *param;
606 param = GetLowFluxParam();
607 param->SetIPlanePlaneEff(i);
608 param->SetComputePlaneEff(kTRUE,kFALSE);
609 param->SetUseTrackletsPlaneEff(kTRUE);
7284b2b2 610 param->SetTrackleterPhiWindowL2(0.07);
611 param->SetTrackleterZetaWindowL2(0.4);
58e8dc31 612 param->SetTrackleterPhiWindowL1(0.10);
613 param->SetTrackleterZetaWindowL1(0.6);
614 param->SetUpdateOncePerEventPlaneEff(kTRUE);
615 param->SetMinContVtxPlaneEff(3);
616 return param;
0ed58a47 617 }
5bd7ec3a 618 else {
619 AliErrorGeneral("AliITSRecoParam",Form("Unrecognised value of i %d\n",i));
620 return 0;
621 }
ae00569a 622}
623//_____________________________________________________________________________
44347160 624void AliITSRecoParam::SetLayersParameters()
625{
626 //
627 // number of layers and layers spatial resolutions
628 //
629
630 // spatial resolutions of the detectors
631 // y: 12 12 38 38 20 20 micron
632 fSigmaY2[0]=1.44e-6;
633 fSigmaY2[1]=1.44e-6;
634 fSigmaY2[2]=1.444e-5;
635 fSigmaY2[3]=1.444e-5;
636 fSigmaY2[4]=4.0e-6;
637 fSigmaY2[5]=4.0e-6;
638 // z: 120 120 28 28 830 830 micron
639 fSigmaZ2[0]=1.44e-4;
640 fSigmaZ2[1]=1.44e-4;
641 fSigmaZ2[2]=7.84e-6;
642 fSigmaZ2[3]=7.84e-6;
643 fSigmaZ2[4]=6.889e-3;
644 fSigmaZ2[5]=6.889e-3;
645
646 return;
647}
ed446fa3 648//_____________________________________________________________________________
649void AliITSRecoParam::PrintParameters() const
650{
651 //
652 // print parameters
653 //
654
655 printf("============================= AliITSRecoParam::PrintParameters ");
f9119eb9 656 printf("============================= \n\n");
ed446fa3 657 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
658 if(!fLayersToSkip[i]) {
659 printf("ITS Traking: using layer %d\n",i);
660 } else {
661 printf("ITS Traking: skipping layer %d\n",i);
662 }
663 }
664 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
665 if(fUseAmplitudeInfo[i]) {
666 printf("ITS Traking: use amplitude info for layer %d\n",i);
667 } else {
668 printf("ITS Traking: don't use amplitude info for layer %d\n",i);
669 }
670 }
671 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++)
f9119eb9 672 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 673
674
675 Dump();
676
677 return;
0a56760a 678}