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