]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - ITS/AliITSRecoParam.cxx
Changes related to the extraction of the V0 finder into a separate class (A. Dainese...
[u/mrichter/AliRoot.git] / ITS / AliITSRecoParam.cxx
... / ...
CommitLineData
1/**************************************************************************
2 * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
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
16#include "AliITSRecoParam.h"
17#include "AliLog.h"
18
19/* $Id$ */
20
21///////////////////////////////////////////////////////////////////////////////
22// //
23// Class with ITS reconstruction parameters //
24// Origin: andrea.dainese@lnl.infn.it //
25// //
26///////////////////////////////////////////////////////////////////////////////
27
28
29
30ClassImp(AliITSRecoParam)
31
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
63
64//_____________________________________________________________________________
65AliITSRecoParam::AliITSRecoParam() : AliDetectorRecoParam(),
66fTracker(0),
67fITSonly(kFALSE),
68fVertexer(0),
69fClusterFinder(0),
70fPID(0),
71fVtxr3DZCutWide(0.),
72fVtxr3DRCutWide(0.),
73fVtxr3DZCutNarrow(0.),
74fVtxr3DRCutNarrow(0.),
75fVtxr3DPhiCutLoose(0.),
76fVtxr3DPhiCutTight(0.),
77fVtxr3DDCACut(0.),
78fMaxSnp(1.),
79fNSigmaYLayerForRoadY(0),
80fNSigmaRoadY(0),
81fNSigmaZLayerForRoadZ(0),
82fNSigmaRoadZ(0),
83fNSigma2RoadZC(0),
84fNSigma2RoadYC(0),
85fNSigma2RoadZNonC(0),
86fNSigma2RoadYNonC(0),
87fRoadMisal(0),
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),
106fAddVirtualClustersInDeadZone(kFALSE),
107fZWindowDeadZone(0),
108fSigmaXDeadZoneHit2(0),
109fSigmaZDeadZoneHit2(0),
110fXPassDeadZoneHits(0),
111fUseTGeoInTracker(3),
112fStepSizeTGeo(5.),
113fAllowSharedClusters(kTRUE),
114fClusterErrorsParam(1),
115fComputePlaneEff(kFALSE),
116fHistoPlaneEff(kFALSE),
117fUseTrackletsPlaneEff(kFALSE),
118fMCTrackletsPlaneEff(kFALSE),
119fBkgTrackletsPlaneEff(kFALSE),
120fTrackleterPhiWindowL1(0.10),
121fTrackleterZetaWindowL1(0.6),
122fUpdateOncePerEventPlaneEff(kTRUE),
123fMinContVtxPlaneEff(3),
124fIPlanePlaneEff(0),
125fReadPlaneEffFromOCDB(kFALSE),
126fMinPtPlaneEff(0),
127fMaxMissingClustersPlaneEff(0),
128fRequireClusterInOuterLayerPlaneEff(kFALSE),
129fRequireClusterInInnerLayerPlaneEff(kFALSE),
130fOnlyConstraintPlaneEff(kFALSE),
131fExtendedEtaAcceptance(kFALSE),
132fUseBadZonesFromOCDB(kTRUE),
133fUseSingleBadChannelsFromOCDB(kFALSE),
134fMinFractionOfBadInRoad(0),
135fAllowProlongationWithEmptyRoad(kFALSE),
136fInwardFlagSA(kFALSE),
137fOuterStartLayerSA(2),
138fInnerStartLayerSA(3),
139fMinNPointsSA(3),
140fFactorSAWindowSizes(1.),
141fNLoopsSA(33),
142fMinPhiSA(0.002),
143fMaxPhiSA(0.0145),
144fMinLambdaSA(0.003),
145fMaxLambdaSA(0.008),
146fMinClusterChargeSA(0.),
147fSAOnePointTracks(kFALSE),
148fSAUseAllClusters(kFALSE),
149fFindV0s(kTRUE),
150fStoreLikeSignV0s(kFALSE),
151fUseUnfoldingInClusterFinderSPD(kFALSE),
152fUseUnfoldingInClusterFinderSDD(kTRUE),
153fUseUnfoldingInClusterFinderSSD(kFALSE),
154fUseSDDCorrectionMaps(kTRUE),
155fUseSDDClusterSizeSelection(kFALSE),
156fMinClusterChargeSDD(0.),
157fUseChargeMatchingInClusterFinderSSD(kTRUE),
158fTrackleterOnlyOneTrackletPerC2(kTRUE),
159fTrackleterPhiWindow(0.08),
160fTrackleterZetaWindow(1.00),
161fTrackleterRemoveClustersFromOverlaps(kFALSE),
162fTrackleterPhiOverlapCut(0.005),
163fTrackleterZetaOverlapCut(0.05),
164fUseCosmicRunShiftsSSD(kFALSE),
165fSPDRemoveNoisyFlag(kTRUE),
166fSPDRemoveDeadFlag(kTRUE),
167fVertexerFastSmearX(0.005),
168fVertexerFastSmearY(0.005),
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)
182{
183 //
184 // constructor
185 //
186 SetName("ITS");
187 SetTitle("ITS");
188
189 SetLayersParameters();
190 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fLayersToSkip[i]=0;
191 SetUseTGeoInTracker(3);
192 SetStepSizeTGeo(5.);
193 SetAllowSharedClusters(kTRUE);
194 SetFindV0s(kTRUE);
195 SetAddVirtualClustersInDeadZone(kFALSE);
196 SetUseAmplitudeInfo(kTRUE);
197 SetClusterErrorsParam(1);
198 SetClusterMisalError(0.);
199 SetVertexer3DDefaults();
200
201 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fAlignFilterUseLayer[i]=kTRUE;
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();
217 param->SetVertexerZ();
218
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
227
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.;
259
260 param->fMaxNormChi2NonCForHypothesis = 7.;
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.;
294
295 param->fMaxDZforPrimTrk = 0.4;
296 param->fMaxDZToUseConstraint = 3.;
297
298 param->fMaxDforV0dghtrForProlongation = 30.;
299 param->fMaxDForProlongation = 40.;//10.;
300 param->fMaxDZForProlongation = 60.;//20.;
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;
307
308 return param;
309}
310//_____________________________________________________________________________
311AliITSRecoParam *AliITSRecoParam::GetLowFluxParam()
312{
313 //
314 // make default reconstruction parameters for low flux env.
315 //
316 AliITSRecoParam *param = new AliITSRecoParam();
317 param->SetVertexer3DDefaults();
318
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
327
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;
407 param->SetNLoopsSA(20);
408 param->fMaxPhiSA = 0.07;
409 param->fMaxLambdaSA = 0.04;
410 return param;
411}
412//_____________________________________________________________________________
413AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam()
414{
415 //
416 // make default reconstruction parameters for cosmics
417 //
418 AliITSRecoParam *param = new AliITSRecoParam();
419
420 // vertexer for cosmics
421 param->SetVertexer(2);
422
423 // find independently ITS SA tracks
424 param->SetSAUseAllClusters();
425 param->SetOuterStartLayerSA(AliITSgeomTGeo::GetNLayers()-2);
426
427 // larger seach windows for SA (in case of large misalignments)
428 param->SetFactorSAWindowSizes(3.);
429
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
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
523 param->fUseSDDCorrectionMaps = kFALSE;
524
525 return param;
526}
527//_____________________________________________________________________________
528AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i)
529{
530 //
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
534 //
535 if (i<-1 || i>=AliITSgeomTGeo::kNLayers) {
536 printf("AliITSRecoParam::GetPlaneEffParam: index of ITS Plane nor in the range [0,5] neither =-1\n");
537 printf("returning null pointer");
538 return NULL;
539 }
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;
570 }
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;
584 }
585 else {
586 AliErrorGeneral("AliITSRecoParam",Form("Unrecognised value of i %d\n",i));
587 return 0;
588 }
589}
590//_____________________________________________________________________________
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}
615//_____________________________________________________________________________
616void AliITSRecoParam::PrintParameters() const
617{
618 //
619 // print parameters
620 //
621
622 printf("============================= AliITSRecoParam::PrintParameters ");
623 printf("============================= \n\n");
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++)
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]);
640
641
642 Dump();
643
644 return;
645}