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