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