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