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