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