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