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