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