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