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