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