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