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