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