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