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