]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSRecoParam.cxx
Added in AliITSRecoParam a parameter to choose which SPD-vertexer pileup algorithm...
[u/mrichter/AliRoot.git] / ITS / AliITSRecoParam.cxx
1 /**************************************************************************
2  * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
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
16 #include "AliITSRecoParam.h"
17 #include "AliLog.h"
18
19 /* $Id$ */
20
21 ///////////////////////////////////////////////////////////////////////////////
22 //                                                                           //
23 // Class with ITS reconstruction parameters                                  //
24 // Origin: andrea.dainese@lnl.infn.it                                        //
25 //                                                                           //
26 ///////////////////////////////////////////////////////////////////////////////
27
28
29
30 ClassImp(AliITSRecoParam)
31
32 const Int_t AliITSRecoParam::fgkLayersNotToSkip[AliITSgeomTGeo::kNLayers]={0,0,0,0,0,0};
33 const Int_t AliITSRecoParam::fgkLastLayerToTrackTo=0;
34 const Int_t AliITSRecoParam::fgkMaxDetectorPerLayer=1000;
35 const Double_t AliITSRecoParam::fgkriw=80.0;
36 const Double_t AliITSRecoParam::fgkdiw=0.0053;
37 const Double_t AliITSRecoParam::fgkX0iw=30.0;
38 const Double_t AliITSRecoParam::fgkrcd=61.0;
39 const Double_t AliITSRecoParam::fgkdcd=0.0053;
40 const Double_t AliITSRecoParam::fgkX0cd=30.0;
41 const Double_t AliITSRecoParam::fgkyr=12.8;
42 const Double_t AliITSRecoParam::fgkdr=0.03;
43 const Double_t AliITSRecoParam::fgkzm=0.2;
44 const Double_t AliITSRecoParam::fgkdm=0.40;
45 const Double_t AliITSRecoParam::fgkrs=50.0;
46 const Double_t AliITSRecoParam::fgkds=0.001;
47 const Double_t AliITSRecoParam::fgkrInsideITSscreen=49.0;
48 const Double_t AliITSRecoParam::fgkrInsideSPD1=3.7;
49 const Double_t AliITSRecoParam::fgkrPipe=3.;
50 const Double_t AliITSRecoParam::fgkrInsidePipe=2.7;
51 const Double_t AliITSRecoParam::fgkrOutsidePipe=3.3;
52 const Double_t AliITSRecoParam::fgkdPipe=0.0028;
53 const Double_t AliITSRecoParam::fgkrInsideShield[2]={7.5,25.0};
54 const Double_t AliITSRecoParam::fgkrOutsideShield[2]={10.5,30.0};
55 const Double_t AliITSRecoParam::fgkdshield[2]={0.0097,0.0034};
56 const Double_t AliITSRecoParam::fgkX0shield[2]={38.6,42.0};
57 const Double_t AliITSRecoParam::fgkX0Air=21.82;
58 const Double_t AliITSRecoParam::fgkX0Be=65.19;
59 const Double_t AliITSRecoParam::fgkBoundaryWidth=0.2;
60 const Double_t AliITSRecoParam::fgkDeltaXNeighbDets=0.5;
61 const Double_t AliITSRecoParam::fgkSPDdetzlength=6.960; // 7.072-2*0.056
62 const Double_t AliITSRecoParam::fgkSPDdetxlength=1.298; // 1.410-2*0.056
63
64 //_____________________________________________________________________________
65 AliITSRecoParam::AliITSRecoParam() : AliDetectorRecoParam(),
66 fTracker(0),
67 fITSonly(kFALSE),
68 fVertexer(0),
69 fClusterFinder(0),
70 fPID(0),
71 fVtxr3DZCutWide(0.),
72 fVtxr3DRCutWide(0.),
73 fVtxr3DZCutNarrow(0.),
74 fVtxr3DRCutNarrow(0.),
75 fVtxr3DPhiCutLoose(0.),
76 fVtxr3DPhiCutTight(0.),
77 fVtxr3DDCACut(0.),
78 fVtxr3DPileupAlgo(1),
79 fMaxSnp(1.),
80 fNSigmaYLayerForRoadY(0),
81 fNSigmaRoadY(0),
82 fNSigmaZLayerForRoadZ(0),
83 fNSigmaRoadZ(0),
84 fNSigma2RoadZC(0),
85 fNSigma2RoadYC(0),
86 fNSigma2RoadZNonC(0),
87 fNSigma2RoadYNonC(0),
88 fRoadMisal(0),
89 fMaxNormChi2NonCForHypothesis(0),
90 fMaxChi2(0),
91 fMaxRoad(0),
92 fMaxChi2In(0),
93 fChi2PerCluster(0),
94 fXV(0), 
95 fYV(0),
96 fZV(0),
97 fSigmaXV(0),
98 fSigmaYV(0),
99 fSigmaZV(0),
100 fVertexCut(0),
101 fMaxDZforPrimTrk(0),
102 fMaxDZToUseConstraint(0), 
103 fMaxDforV0dghtrForProlongation(0),
104 fMaxDForProlongation(0),
105 fMaxDZForProlongation(0),
106 fMinPtForProlongation(0),
107 fAddVirtualClustersInDeadZone(kFALSE),
108 fZWindowDeadZone(0),
109 fSigmaXDeadZoneHit2(0),
110 fSigmaZDeadZoneHit2(0),
111 fXPassDeadZoneHits(0),
112 fUseTGeoInTracker(3),
113 fStepSizeTGeo(5.),
114 fAllowSharedClusters(kTRUE),
115 fClusterErrorsParam(1),
116 fComputePlaneEff(kFALSE),
117 fHistoPlaneEff(kFALSE),
118 fUseTrackletsPlaneEff(kFALSE),
119 fMCTrackletsPlaneEff(kFALSE),
120 fBkgTrackletsPlaneEff(kFALSE),
121 fTrackleterPhiWindowL1(0.10),
122 fTrackleterZetaWindowL1(0.6),
123 fUpdateOncePerEventPlaneEff(kTRUE),
124 fMinContVtxPlaneEff(3),
125 fIPlanePlaneEff(0),
126 fReadPlaneEffFromOCDB(kFALSE),
127 fMinPtPlaneEff(0),
128 fMaxMissingClustersPlaneEff(0),
129 fRequireClusterInOuterLayerPlaneEff(kFALSE),
130 fRequireClusterInInnerLayerPlaneEff(kFALSE),
131 fOnlyConstraintPlaneEff(kFALSE),
132 fExtendedEtaAcceptance(kFALSE),
133 fUseBadZonesFromOCDB(kTRUE),
134 fUseSingleBadChannelsFromOCDB(kFALSE),
135 fMinFractionOfBadInRoad(0),
136 fAllowProlongationWithEmptyRoad(kFALSE),
137 fInwardFlagSA(kFALSE),
138 fOuterStartLayerSA(2),
139 fInnerStartLayerSA(3),
140 fMinNPointsSA(3),
141 fFactorSAWindowSizes(1.),
142 fNLoopsSA(33),
143 fMinPhiSA(0.002),
144 fMaxPhiSA(0.0145),
145 fMinLambdaSA(0.003),
146 fMaxLambdaSA(0.008),
147 fMinClusterChargeSA(0.),
148 fSAOnePointTracks(kFALSE),
149 fSAUseAllClusters(kFALSE),
150 fFindV0s(kTRUE),
151 fStoreLikeSignV0s(kFALSE),
152 fUseUnfoldingInClusterFinderSPD(kFALSE),
153 fUseUnfoldingInClusterFinderSDD(kTRUE),
154 fUseUnfoldingInClusterFinderSSD(kFALSE),
155 fUseSDDCorrectionMaps(kTRUE),
156 fUseSDDClusterSizeSelection(kFALSE),
157 fMinClusterChargeSDD(0.),
158 fUseChargeMatchingInClusterFinderSSD(kTRUE),
159 fTrackleterOnlyOneTrackletPerC2(kTRUE),
160 fTrackleterPhiWindow(0.08),
161 fTrackleterZetaWindow(1.00),
162 fTrackleterRemoveClustersFromOverlaps(kFALSE),
163 fTrackleterPhiOverlapCut(0.005),
164 fTrackleterZetaOverlapCut(0.05),
165 fUseCosmicRunShiftsSSD(kFALSE),
166 fSPDRemoveNoisyFlag(kTRUE),
167 fSPDRemoveDeadFlag(kTRUE),
168 fVertexerFastSmearX(0.005),
169 fVertexerFastSmearY(0.005),
170 fVertexerFastSmearZ(0.01),
171 fAlignFilterCosmics(kFALSE),
172 fAlignFilterCosmicMergeTracks(kTRUE),
173 fAlignFilterMinITSPoints(4),
174 fAlignFilterMinITSPointsMerged(4),
175 fAlignFilterOnlyITSSATracks(kTRUE),
176 fAlignFilterOnlyITSTPCTracks(kFALSE),
177 fAlignFilterSkipExtra(kFALSE),
178 fAlignFilterMaxMatchingAngle(0.085),
179 fAlignFilterMinAngleWrtModulePlanes(0.52),
180 fAlignFilterMinPt(0.),
181 fAlignFilterMaxPt(1.e10),
182 fAlignFilterFillQANtuples(kTRUE)
183 {
184   //
185   // constructor
186   //
187   SetName("ITS");
188   SetTitle("ITS");
189
190   SetLayersParameters();
191   for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fLayersToSkip[i]=0;
192   SetUseTGeoInTracker(3);
193   SetStepSizeTGeo(5.);
194   SetAllowSharedClusters(kTRUE);
195   SetFindV0s(kTRUE);
196   SetAddVirtualClustersInDeadZone(kFALSE);
197   SetUseAmplitudeInfo(kTRUE);
198   SetClusterErrorsParam(1);
199   SetClusterMisalError(0.);
200   SetVertexer3DDefaults();
201
202   for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fAlignFilterUseLayer[i]=kTRUE;
203 }
204 //_____________________________________________________________________________
205 AliITSRecoParam::~AliITSRecoParam() 
206 {
207   //
208   // destructor
209   //  
210 }
211 //_____________________________________________________________________________
212 AliITSRecoParam *AliITSRecoParam::GetHighFluxParam() 
213 {
214   //
215   // make default reconstruction  parameters for hig  flux env.
216   //
217   AliITSRecoParam *param = new AliITSRecoParam();
218   param->SetVertexerZ();
219
220   // use of bads from OCDB
221   param->SetUseBadZonesFromOCDB(kTRUE);
222   param->SetUseSingleBadChannelsFromOCDB(kFALSE);
223   // extended eta acceptance
224   param->SetExtendedEtaAcceptance(kFALSE);
225   // allow to skip layer if no cluster and no bad
226   param->SetAllowProlongationWithEmptyRoad(kFALSE);
227
228
229   param->fMaxSnp = 0.95;
230
231   param->fNSigmaYLayerForRoadY = 4.;
232   param->fNSigmaRoadY = 7.5;
233   param->fNSigmaZLayerForRoadZ = 4.;
234   param->fNSigmaRoadZ = 7.5;
235
236   param->fNSigma2RoadZC = 60.; //7.75^2
237   param->fNSigma2RoadYC = 60.; //7.75^2
238   param->fNSigma2RoadZNonC = 50.; //7.07^2
239   param->fNSigma2RoadYNonC = 50.; //7.07^2
240
241   param->fMaxChi2PerCluster[0] = 11.; //7
242   param->fMaxChi2PerCluster[1] = 12.; //5
243   param->fMaxChi2PerCluster[2] = 12.; //8
244   param->fMaxChi2PerCluster[3] = 5.;  //8
245   param->fMaxChi2PerCluster[4] = 12.; //6.5
246
247   param->fMaxNormChi2NonC[0] = 7.;
248   param->fMaxNormChi2NonC[1] = 8.;
249   param->fMaxNormChi2NonC[2] = 8.;
250   param->fMaxNormChi2NonC[3] = 11.;
251   param->fMaxNormChi2NonC[4] = 14.;
252   param->fMaxNormChi2NonC[5] = 25.;
253
254   param->fMaxNormChi2C[0] = 11.;
255   param->fMaxNormChi2C[1] = 13.;
256   param->fMaxNormChi2C[2] = 15.;
257   param->fMaxNormChi2C[3] = 18.;
258   param->fMaxNormChi2C[4] = 30.;
259   param->fMaxNormChi2C[5] = 35.;
260
261   param->fMaxNormChi2NonCForHypothesis = 7.;
262   
263   param->fMaxChi2 = 35.;
264
265   param->fMaxChi2s[0] = 25.; //40   
266   param->fMaxChi2s[1] = 25.; //40   
267   param->fMaxChi2s[2] = 25.; //40   
268   param->fMaxChi2s[3] = 25.; //40   
269   param->fMaxChi2s[4] = 40.; //40   
270   param->fMaxChi2s[5] = 50.; //40
271
272   param->fMaxRoad = 6.;
273
274   // not used
275   param->fMaxChi2In = 16.;
276    
277   param->fMaxChi2sR[0] = 10.;   
278   param->fMaxChi2sR[1] = 10.;   
279   param->fMaxChi2sR[2] = 10.;   
280   param->fMaxChi2sR[3] = 10.;   
281   param->fMaxChi2sR[4] = 30.;   
282   param->fMaxChi2sR[5] = 40.;   
283
284   param->fChi2PerCluster = 9.;
285   // not used
286
287   param->fXV = 0.;
288   param->fYV = 0.;
289   param->fZV = 0.;
290   param->fSigmaXV = 0.0050;
291   param->fSigmaYV = 0.0050;
292   param->fSigmaZV = 0.0100;
293
294   param->fVertexCut = 25.;
295
296   param->fMaxDZforPrimTrk = 0.4;
297   param->fMaxDZToUseConstraint = 3.;
298
299   param->fMaxDforV0dghtrForProlongation = 30.;
300   param->fMaxDForProlongation = 40.;//10.;
301   param->fMaxDZForProlongation = 60.;//20.;
302   param->fMinPtForProlongation = 0.120;
303
304   param->fZWindowDeadZone = 2.0;
305   param->fSigmaXDeadZoneHit2 = 0.004/12.;
306   param->fSigmaZDeadZoneHit2 = 0.001/12.;
307   param->fXPassDeadZoneHits = 0.018;
308   
309   return param;
310 }
311 //_____________________________________________________________________________
312 AliITSRecoParam *AliITSRecoParam::GetLowFluxParam() 
313 {
314   //
315   // make default reconstruction  parameters for low  flux env.
316   //
317   AliITSRecoParam *param = new AliITSRecoParam();
318   param->SetVertexer3DDefaults();
319
320   // full use of bads from OCDB
321   param->SetUseBadZonesFromOCDB(kTRUE);
322   param->SetUseSingleBadChannelsFromOCDB(kTRUE);
323   // extended eta acceptance
324   param->SetExtendedEtaAcceptance(kTRUE);
325   // allow to skip layer if no cluster and no bad
326   param->SetAllowProlongationWithEmptyRoad(kTRUE);
327
328
329   param->fMaxSnp = 0.95;
330
331   param->fNSigmaYLayerForRoadY = 4.;
332   param->fNSigmaRoadY = 7.5;
333   param->fNSigmaZLayerForRoadZ = 4.;
334   param->fNSigmaRoadZ = 7.5;
335
336   param->fNSigma2RoadZC = 60.; //7.75^2
337   param->fNSigma2RoadYC = 60.; //7.75^2
338   param->fNSigma2RoadZNonC = 50.; //7.07^2
339   param->fNSigma2RoadYNonC = 50.; //7.07^2
340
341   param->fMaxChi2PerCluster[0] = 11.; //7
342   param->fMaxChi2PerCluster[1] = 12.; //5
343   param->fMaxChi2PerCluster[2] = 12.; //8
344   param->fMaxChi2PerCluster[3] = 5.;  //8
345   param->fMaxChi2PerCluster[4] = 12.; //6.5
346
347   param->fMaxNormChi2NonC[0] = 7.;
348   param->fMaxNormChi2NonC[1] = 8.;
349   param->fMaxNormChi2NonC[2] = 8.;
350   param->fMaxNormChi2NonC[3] = 11.;
351   param->fMaxNormChi2NonC[4] = 14.;
352   param->fMaxNormChi2NonC[5] = 25.;
353
354   param->fMaxNormChi2C[0] = 11.;
355   param->fMaxNormChi2C[1] = 13.;
356   param->fMaxNormChi2C[2] = 15.;
357   param->fMaxNormChi2C[3] = 18.;
358   param->fMaxNormChi2C[4] = 30.;
359   param->fMaxNormChi2C[5] = 35.;
360
361   param->fMaxNormChi2NonCForHypothesis = 7.;
362   
363   param->fMaxChi2 = 35.;
364
365   param->fMaxChi2s[0] = 25.; //40   
366   param->fMaxChi2s[1] = 25.; //40   
367   param->fMaxChi2s[2] = 25.; //40   
368   param->fMaxChi2s[3] = 25.; //40   
369   param->fMaxChi2s[4] = 40.; //40   
370   param->fMaxChi2s[5] = 50.; //40
371
372   param->fMaxRoad = 6.;
373
374   // not used
375   param->fMaxChi2In = 16.;
376    
377   param->fMaxChi2sR[0] = 10.;   
378   param->fMaxChi2sR[1] = 10.;   
379   param->fMaxChi2sR[2] = 10.;   
380   param->fMaxChi2sR[3] = 10.;   
381   param->fMaxChi2sR[4] = 30.;   
382   param->fMaxChi2sR[5] = 40.;   
383
384   param->fChi2PerCluster = 9.;
385   // not used
386
387   param->fXV = 0.;
388   param->fYV = 0.;
389   param->fZV = 0.;
390   param->fSigmaXV = 0.0050;
391   param->fSigmaYV = 0.0050;
392   param->fSigmaZV = 0.0100;
393
394   param->fVertexCut = 25.;
395
396   param->fMaxDZforPrimTrk = 0.4;
397   param->fMaxDZToUseConstraint = 3.;
398
399   param->fMaxDforV0dghtrForProlongation = 30.;
400   param->fMaxDForProlongation = 40.;//10.;
401   param->fMaxDZForProlongation = 60.;//20.;
402   param->fMinPtForProlongation = 0.120;
403
404   param->fZWindowDeadZone = 2.0;
405   param->fSigmaXDeadZoneHit2 = 0.004/12.;
406   param->fSigmaZDeadZoneHit2 = 0.001/12.;
407   param->fXPassDeadZoneHits = 0.018;
408   param->SetNLoopsSA(20);
409   param->fMaxPhiSA = 0.07;
410   param->fMaxLambdaSA = 0.04;
411   return param;
412 }
413 //_____________________________________________________________________________
414 AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam() 
415 {
416   //
417   // make default reconstruction  parameters for cosmics
418   //
419   AliITSRecoParam *param = new AliITSRecoParam();
420
421   // vertexer for cosmics
422   param->SetVertexer(2);
423
424   // find independently ITS SA tracks 
425   param->SetSAUseAllClusters();
426   param->SetOuterStartLayerSA(AliITSgeomTGeo::GetNLayers()-2);
427
428   // larger seach windows for SA (in case of large misalignments)
429   param->SetFactorSAWindowSizes(3.); 
430
431   // alignment data filter
432   param->SetAlignFilterCosmics(kTRUE);
433   param->SetAlignFilterCosmicMergeTracks(kTRUE); 
434   param->SetAlignFilterMinITSPoints(1);
435   param->SetAlignFilterMinITSPointsMerged(3);
436   param->SetAlignFilterOnlyITSSATracks(kTRUE);
437   param->SetAlignFilterOnlyITSTPCTracks(kFALSE);
438   param->SetAlignFilterSkipExtra(kFALSE);
439   param->SetAlignFilterMaxMatchingAngle(0.085/*5deg*/);
440   param->SetAlignFilterMinPt(0.2);          
441   param->SetAlignFilterMaxPt(1.e10);          
442   param->SetAlignFilterFillQANtuples(kTRUE);    
443
444   param->fMaxSnp = 0.95;
445
446   param->fNSigmaYLayerForRoadY = 4.;
447   param->fNSigmaRoadY = 7.5;
448   param->fNSigmaZLayerForRoadZ = 4.;
449   param->fNSigmaRoadZ = 7.5;
450
451   param->fNSigma2RoadZC = 60.; //7.75^2
452   param->fNSigma2RoadYC = 60.; //7.75^2
453   param->fNSigma2RoadZNonC = 50.; //7.07^2
454   param->fNSigma2RoadYNonC = 50.; //7.07^2
455
456   param->fMaxChi2PerCluster[0] = 11.; //7
457   param->fMaxChi2PerCluster[1] = 12.; //5
458   param->fMaxChi2PerCluster[2] = 12.; //8
459   param->fMaxChi2PerCluster[3] = 5.;  //8
460   param->fMaxChi2PerCluster[4] = 12.; //6.5
461
462   param->fMaxNormChi2NonC[0] = 7.;
463   param->fMaxNormChi2NonC[1] = 8.;
464   param->fMaxNormChi2NonC[2] = 8.;
465   param->fMaxNormChi2NonC[3] = 11.;
466   param->fMaxNormChi2NonC[4] = 14.;
467   param->fMaxNormChi2NonC[5] = 25.;
468
469   param->fMaxNormChi2C[0] = 11.;
470   param->fMaxNormChi2C[1] = 13.;
471   param->fMaxNormChi2C[2] = 15.;
472   param->fMaxNormChi2C[3] = 18.;
473   param->fMaxNormChi2C[4] = 30.;
474   param->fMaxNormChi2C[5] = 35.;
475
476   param->fMaxNormChi2NonCForHypothesis = 7.;
477   
478   param->fMaxChi2 = 35.;
479
480   param->fMaxChi2s[0] = 25.; //40   
481   param->fMaxChi2s[1] = 25.; //40   
482   param->fMaxChi2s[2] = 25.; //40   
483   param->fMaxChi2s[3] = 25.; //40   
484   param->fMaxChi2s[4] = 40.; //40   
485   param->fMaxChi2s[5] = 50.; //40
486
487   param->fMaxRoad = 6.;
488
489   // not used
490   param->fMaxChi2In = 16.;
491    
492   param->fMaxChi2sR[0] = 10.;   
493   param->fMaxChi2sR[1] = 10.;   
494   param->fMaxChi2sR[2] = 10.;   
495   param->fMaxChi2sR[3] = 10.;   
496   param->fMaxChi2sR[4] = 30.;   
497   param->fMaxChi2sR[5] = 40.;   
498
499   param->fChi2PerCluster = 9.;
500   // not used
501
502   param->fXV = 0.;
503   param->fYV = 0.;
504   param->fZV = 0.;
505   param->fSigmaXV = 0.0050;
506   param->fSigmaYV = 0.0050;
507   param->fSigmaZV = 0.0100;
508
509   param->fVertexCut = 25.;
510
511   param->fMaxDZforPrimTrk = 0.4;
512   param->fMaxDZToUseConstraint = 3.;
513
514   param->fMaxDforV0dghtrForProlongation = 30.;
515   param->fMaxDForProlongation = 10.;
516   param->fMaxDZForProlongation = 20.;
517   param->fMinPtForProlongation = 0.120;
518
519   param->fZWindowDeadZone = 2.0;
520   param->fSigmaXDeadZoneHit2 = 0.004/12.;
521   param->fSigmaZDeadZoneHit2 = 0.001/12.;
522   param->fXPassDeadZoneHits = 0.018;
523
524   param->fUseSDDCorrectionMaps = kFALSE;
525   
526   return param;
527 }
528 //_____________________________________________________________________________
529 AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i)
530 {
531   //
532   // make special reconstruction parameters for Plane Efficiency study on layer i (0,5)
533   // 
534   // if i=-1, then the evaluation for both pixel layers is tried with the tracklet method
535   //
536  if (i<-1 || i>=AliITSgeomTGeo::kNLayers) {
537     printf("AliITSRecoParam::GetPlaneEffParam: index of ITS Plane nor in the range [0,5] neither =-1\n");
538     printf("returning null pointer");
539     return NULL;
540   }
541   if(i>=0) {  // Method using tracks (remove given plane from tracking)
542     AliITSRecoParam *param;
543     param = GetHighFluxParam();
544     param->SetComputePlaneEff();
545     param->SetLayerToSkip(i);
546     param->SetIPlanePlaneEff(i);
547     // optimized setting for SPD0 (i==0)
548     if (i==0 || i==1) {
549       param->fMinPtPlaneEff = 0.200; // high pt particles
550       param->fMaxMissingClustersPlaneEff = 1; // at most 1 layer out of 5 without cluster
551       param->fRequireClusterInOuterLayerPlaneEff = kTRUE; // cluster on SPD1 must be
552       //param->fOnlyConstraintPlaneEff = kTRUE;
553     }
554     if (i==2 || i==3) {
555       param->fMinPtPlaneEff = 0.200; // high pt particles
556       param->fMaxMissingClustersPlaneEff = 1; // at most 1 layer out of 5 without cluster
557       param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
558       //param->fOnlyConstraintPlaneEff = kTRUE;
559     }
560     if (i==4) {
561       param->fMinPtPlaneEff = 0.200; // high pt particles
562       param->fMaxMissingClustersPlaneEff = 0; // at most 1 layer out of 5 without cluster
563       param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
564       //param->fOnlyConstraintPlaneEff = kTRUE;
565     }
566     if (i==5) {
567       param->fMinPtPlaneEff = 0.200; // high pt particles
568     }
569     //
570     return param;
571   }
572   else if (i==-1) { // Method using tracklets
573     AliITSRecoParam *param;
574     param = GetLowFluxParam();
575     param->SetIPlanePlaneEff(i);
576     param->SetComputePlaneEff(kTRUE,kFALSE);
577     param->SetUseTrackletsPlaneEff(kTRUE);
578     param->SetTrackleterPhiWindow(0.07);
579     param->SetTrackleterZetaWindow(0.4);
580     param->SetTrackleterPhiWindowL1(0.10);
581     param->SetTrackleterZetaWindowL1(0.6);
582     param->SetUpdateOncePerEventPlaneEff(kTRUE);
583     param->SetMinContVtxPlaneEff(3);
584     return param;
585   }
586   else {
587     AliErrorGeneral("AliITSRecoParam",Form("Unrecognised value of i %d\n",i));
588     return 0;
589   }
590 }
591 //_____________________________________________________________________________
592 void AliITSRecoParam::SetLayersParameters() 
593 {
594   //
595   // number of layers and layers spatial resolutions
596   //
597
598   // spatial resolutions of the detectors
599   // y: 12 12 38 38 20 20 micron
600   fSigmaY2[0]=1.44e-6;
601   fSigmaY2[1]=1.44e-6;
602   fSigmaY2[2]=1.444e-5;
603   fSigmaY2[3]=1.444e-5;
604   fSigmaY2[4]=4.0e-6;
605   fSigmaY2[5]=4.0e-6;
606   // z: 120 120 28 28 830 830 micron
607   fSigmaZ2[0]=1.44e-4;
608   fSigmaZ2[1]=1.44e-4;
609   fSigmaZ2[2]=7.84e-6;
610   fSigmaZ2[3]=7.84e-6;
611   fSigmaZ2[4]=6.889e-3;
612   fSigmaZ2[5]=6.889e-3;
613
614   return;
615 }
616 //_____________________________________________________________________________
617 void AliITSRecoParam::PrintParameters() const 
618 {
619   //
620   // print parameters
621   //
622
623   printf("=============================  AliITSRecoParam::PrintParameters ");
624   printf("============================= \n\n");
625   for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
626     if(!fLayersToSkip[i]) {
627       printf("ITS Traking: using layer %d\n",i);
628     } else {
629       printf("ITS Traking: skipping layer %d\n",i);
630     }
631   }
632   for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
633     if(fUseAmplitudeInfo[i]) {
634       printf("ITS Traking: use amplitude info for layer %d\n",i);
635     } else {
636       printf("ITS Traking: don't use amplitude info for layer %d\n",i);
637     }
638   }
639   for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++)
640     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]);
641
642
643   Dump();
644
645   return;
646 }