1 /**************************************************************************
2 * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
16 #include "AliITSRecoParam.h"
20 ///////////////////////////////////////////////////////////////////////////////
22 // Class with ITS reconstruction parameters //
23 // Origin: andrea.dainese@lnl.infn.it //
25 ///////////////////////////////////////////////////////////////////////////////
29 ClassImp(AliITSRecoParam)
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
63 //_____________________________________________________________________________
64 AliITSRecoParam::AliITSRecoParam() : AliDetectorRecoParam(),
66 fNSigmaYLayerForRoadY(0),
68 fNSigmaZLayerForRoadZ(0),
74 fMaxNormChi2NonCForHypothesis(0),
87 fMaxDZToUseConstraint(0),
88 fMaxDforV0dghtrForProlongation(0),
89 fMaxDForProlongation(0),
90 fMaxDZForProlongation(0),
91 fMinPtForProlongation(0),
92 fAddVirtualClustersInDeadZone(kFALSE),
94 fSigmaXDeadZoneHit2(0),
95 fSigmaZDeadZoneHit2(0),
96 fXPassDeadZoneHits(0),
98 fAllowSharedClusters(kTRUE),
99 fClusterErrorsParam(1),
100 fComputePlaneEff(kFALSE),
101 fHistoPlaneEff(kFALSE),
102 fReadPlaneEffFromOCDB(kFALSE),
103 fExtendedEtaAcceptance(kFALSE),
104 fUseDeadZonesFromOCDB(kFALSE),
105 fAllowProlongationWithEmptyRoad(kFALSE),
106 fFactorSAWindowSizes(1.),
112 fSAOnePointTracks(kFALSE),
113 fSAUseAllClusters(kFALSE),
115 fUseUnfoldingInClusterFinderSPD(kFALSE),
116 fUseUnfoldingInClusterFinderSDD(kTRUE),
117 fUseUnfoldingInClusterFinderSSD(kTRUE),
118 fUseChargeMatchingInClusterFinderSSD(kTRUE)
126 SetLayersParameters();
127 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fLayersToSkip[i]=0;
128 SetUseTGeoInTracker(3);
129 SetAllowSharedClusters(kTRUE);
131 SetAddVirtualClustersInDeadZone(kFALSE);
132 SetUseAmplitudeInfo(kTRUE);
133 SetClusterErrorsParam(1);
135 //_____________________________________________________________________________
136 AliITSRecoParam::~AliITSRecoParam()
142 //_____________________________________________________________________________
143 AliITSRecoParam *AliITSRecoParam::GetHighFluxParam()
146 // make default reconstruction parameters for hig flux env.
148 AliITSRecoParam *param = new AliITSRecoParam();
150 param->fMaxSnp = 0.95;
152 param->fNSigmaYLayerForRoadY = 4.;
153 param->fNSigmaRoadY = 7.5;
154 param->fNSigmaZLayerForRoadZ = 4.;
155 param->fNSigmaRoadZ = 7.5;
157 param->fNSigma2RoadZC = 60.; //7.75^2
158 param->fNSigma2RoadYC = 60.; //7.75^2
159 param->fNSigma2RoadZNonC = 50.; //7.07^2
160 param->fNSigma2RoadYNonC = 50.; //7.07^2
162 param->fMaxChi2PerCluster[0] = 11.; //7
163 param->fMaxChi2PerCluster[1] = 12.; //5
164 param->fMaxChi2PerCluster[2] = 12.; //8
165 param->fMaxChi2PerCluster[3] = 5.; //8
166 param->fMaxChi2PerCluster[4] = 12.; //6.5
168 param->fMaxNormChi2NonC[0] = 7.;
169 param->fMaxNormChi2NonC[1] = 8.;
170 param->fMaxNormChi2NonC[2] = 8.;
171 param->fMaxNormChi2NonC[3] = 11.;
172 param->fMaxNormChi2NonC[4] = 14.;
173 param->fMaxNormChi2NonC[5] = 25.;
175 param->fMaxNormChi2C[0] = 11.;
176 param->fMaxNormChi2C[1] = 13.;
177 param->fMaxNormChi2C[2] = 15.;
178 param->fMaxNormChi2C[3] = 18.;
179 param->fMaxNormChi2C[4] = 30.;
180 param->fMaxNormChi2C[5] = 35.;
182 param->fMaxNormChi2NonCForHypothesis = 7.;
184 param->fMaxChi2 = 35.;
186 param->fMaxChi2s[0] = 25.; //40
187 param->fMaxChi2s[1] = 25.; //40
188 param->fMaxChi2s[2] = 25.; //40
189 param->fMaxChi2s[3] = 25.; //40
190 param->fMaxChi2s[4] = 40.; //40
191 param->fMaxChi2s[5] = 50.; //40
193 param->fMaxRoad = 6.;
196 param->fMaxChi2In = 16.;
198 param->fMaxChi2sR[0] = 10.;
199 param->fMaxChi2sR[1] = 10.;
200 param->fMaxChi2sR[2] = 10.;
201 param->fMaxChi2sR[3] = 10.;
202 param->fMaxChi2sR[4] = 30.;
203 param->fMaxChi2sR[5] = 40.;
205 param->fChi2PerCluster = 9.;
211 param->fSigmaXV = 0.0050;
212 param->fSigmaYV = 0.0050;
213 param->fSigmaZV = 0.0100;
215 param->fVertexCut = 25.;
217 param->fMaxDZforPrimTrk = 0.4;
218 param->fMaxDZToUseConstraint = 3.;
220 param->fMaxDforV0dghtrForProlongation = 30.;
221 param->fMaxDForProlongation = 40.;//10.;
222 param->fMaxDZForProlongation = 60.;//20.;
223 param->fMinPtForProlongation = 0.120;
225 param->fZWindowDeadZone = 2.0;
226 param->fSigmaXDeadZoneHit2 = 0.004/12.;
227 param->fSigmaZDeadZoneHit2 = 0.001/12.;
228 param->fXPassDeadZoneHits = 0.018;
232 //_____________________________________________________________________________
233 AliITSRecoParam *AliITSRecoParam::GetLowFluxParam()
236 // make default reconstruction parameters for low flux env.
238 AliITSRecoParam *param = new AliITSRecoParam();
240 param->fMaxSnp = 0.95;
242 param->fNSigmaYLayerForRoadY = 4.;
243 param->fNSigmaRoadY = 7.5;
244 param->fNSigmaZLayerForRoadZ = 4.;
245 param->fNSigmaRoadZ = 7.5;
247 param->fNSigma2RoadZC = 60.; //7.75^2
248 param->fNSigma2RoadYC = 60.; //7.75^2
249 param->fNSigma2RoadZNonC = 50.; //7.07^2
250 param->fNSigma2RoadYNonC = 50.; //7.07^2
252 param->fMaxChi2PerCluster[0] = 11.; //7
253 param->fMaxChi2PerCluster[1] = 12.; //5
254 param->fMaxChi2PerCluster[2] = 12.; //8
255 param->fMaxChi2PerCluster[3] = 5.; //8
256 param->fMaxChi2PerCluster[4] = 12.; //6.5
258 param->fMaxNormChi2NonC[0] = 7.;
259 param->fMaxNormChi2NonC[1] = 8.;
260 param->fMaxNormChi2NonC[2] = 8.;
261 param->fMaxNormChi2NonC[3] = 11.;
262 param->fMaxNormChi2NonC[4] = 14.;
263 param->fMaxNormChi2NonC[5] = 25.;
265 param->fMaxNormChi2C[0] = 11.;
266 param->fMaxNormChi2C[1] = 13.;
267 param->fMaxNormChi2C[2] = 15.;
268 param->fMaxNormChi2C[3] = 18.;
269 param->fMaxNormChi2C[4] = 30.;
270 param->fMaxNormChi2C[5] = 35.;
272 param->fMaxNormChi2NonCForHypothesis = 7.;
274 param->fMaxChi2 = 35.;
276 param->fMaxChi2s[0] = 25.; //40
277 param->fMaxChi2s[1] = 25.; //40
278 param->fMaxChi2s[2] = 25.; //40
279 param->fMaxChi2s[3] = 25.; //40
280 param->fMaxChi2s[4] = 40.; //40
281 param->fMaxChi2s[5] = 50.; //40
283 param->fMaxRoad = 6.;
286 param->fMaxChi2In = 16.;
288 param->fMaxChi2sR[0] = 10.;
289 param->fMaxChi2sR[1] = 10.;
290 param->fMaxChi2sR[2] = 10.;
291 param->fMaxChi2sR[3] = 10.;
292 param->fMaxChi2sR[4] = 30.;
293 param->fMaxChi2sR[5] = 40.;
295 param->fChi2PerCluster = 9.;
301 param->fSigmaXV = 0.0050;
302 param->fSigmaYV = 0.0050;
303 param->fSigmaZV = 0.0100;
305 param->fVertexCut = 25.;
307 param->fMaxDZforPrimTrk = 0.4;
308 param->fMaxDZToUseConstraint = 3.;
310 param->fMaxDforV0dghtrForProlongation = 30.;
311 param->fMaxDForProlongation = 40.;//10.;
312 param->fMaxDZForProlongation = 60.;//20.;
313 param->fMinPtForProlongation = 0.120;
315 param->fZWindowDeadZone = 2.0;
316 param->fSigmaXDeadZoneHit2 = 0.004/12.;
317 param->fSigmaZDeadZoneHit2 = 0.001/12.;
318 param->fXPassDeadZoneHits = 0.018;
319 param->SetNLoopsSA(10);
323 //_____________________________________________________________________________
324 AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam()
327 // make default reconstruction parameters for cosmics
329 AliITSRecoParam *param = new AliITSRecoParam();
331 // larger seach windows for SA (in case of large misalignments)
332 param->SetFactorSAWindowSizes(3.);
334 param->fMaxSnp = 0.95;
336 param->fNSigmaYLayerForRoadY = 4.;
337 param->fNSigmaRoadY = 7.5;
338 param->fNSigmaZLayerForRoadZ = 4.;
339 param->fNSigmaRoadZ = 7.5;
341 param->fNSigma2RoadZC = 60.; //7.75^2
342 param->fNSigma2RoadYC = 60.; //7.75^2
343 param->fNSigma2RoadZNonC = 50.; //7.07^2
344 param->fNSigma2RoadYNonC = 50.; //7.07^2
346 param->fMaxChi2PerCluster[0] = 11.; //7
347 param->fMaxChi2PerCluster[1] = 12.; //5
348 param->fMaxChi2PerCluster[2] = 12.; //8
349 param->fMaxChi2PerCluster[3] = 5.; //8
350 param->fMaxChi2PerCluster[4] = 12.; //6.5
352 param->fMaxNormChi2NonC[0] = 7.;
353 param->fMaxNormChi2NonC[1] = 8.;
354 param->fMaxNormChi2NonC[2] = 8.;
355 param->fMaxNormChi2NonC[3] = 11.;
356 param->fMaxNormChi2NonC[4] = 14.;
357 param->fMaxNormChi2NonC[5] = 25.;
359 param->fMaxNormChi2C[0] = 11.;
360 param->fMaxNormChi2C[1] = 13.;
361 param->fMaxNormChi2C[2] = 15.;
362 param->fMaxNormChi2C[3] = 18.;
363 param->fMaxNormChi2C[4] = 30.;
364 param->fMaxNormChi2C[5] = 35.;
366 param->fMaxNormChi2NonCForHypothesis = 7.;
368 param->fMaxChi2 = 35.;
370 param->fMaxChi2s[0] = 25.; //40
371 param->fMaxChi2s[1] = 25.; //40
372 param->fMaxChi2s[2] = 25.; //40
373 param->fMaxChi2s[3] = 25.; //40
374 param->fMaxChi2s[4] = 40.; //40
375 param->fMaxChi2s[5] = 50.; //40
377 param->fMaxRoad = 6.;
380 param->fMaxChi2In = 16.;
382 param->fMaxChi2sR[0] = 10.;
383 param->fMaxChi2sR[1] = 10.;
384 param->fMaxChi2sR[2] = 10.;
385 param->fMaxChi2sR[3] = 10.;
386 param->fMaxChi2sR[4] = 30.;
387 param->fMaxChi2sR[5] = 40.;
389 param->fChi2PerCluster = 9.;
395 param->fSigmaXV = 0.0050;
396 param->fSigmaYV = 0.0050;
397 param->fSigmaZV = 0.0100;
399 param->fVertexCut = 25.;
401 param->fMaxDZforPrimTrk = 0.4;
402 param->fMaxDZToUseConstraint = 3.;
404 param->fMaxDforV0dghtrForProlongation = 30.;
405 param->fMaxDForProlongation = 10.;
406 param->fMaxDZForProlongation = 20.;
407 param->fMinPtForProlongation = 0.120;
409 param->fZWindowDeadZone = 2.0;
410 param->fSigmaXDeadZoneHit2 = 0.004/12.;
411 param->fSigmaZDeadZoneHit2 = 0.001/12.;
412 param->fXPassDeadZoneHits = 0.018;
417 //_____________________________________________________________________________
418 AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i)
421 // make special reconstruction parameters for Plane Efficiency study on layer i
423 AliITSRecoParam *param;
424 param = GetHighFluxParam();
425 param->SetComputePlaneEff();
426 param->SetLayerToSkip(i);
429 //_____________________________________________________________________________
430 void AliITSRecoParam::SetLayersParameters()
433 // number of layers and layers spatial resolutions
436 // spatial resolutions of the detectors
437 // y: 12 12 38 38 20 20 micron
440 fSigmaY2[2]=1.444e-5;
441 fSigmaY2[3]=1.444e-5;
444 // z: 120 120 28 28 830 830 micron
449 fSigmaZ2[4]=6.889e-3;
450 fSigmaZ2[5]=6.889e-3;
454 //_____________________________________________________________________________
455 void AliITSRecoParam::PrintParameters() const
461 printf("============================= AliITSRecoParam::PrintParameters ");
462 printf("============================= \n \n ");
463 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
464 if(!fLayersToSkip[i]) {
465 printf("ITS Traking: using layer %d\n",i);
467 printf("ITS Traking: skipping layer %d\n",i);
470 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
471 if(fUseAmplitudeInfo[i]) {
472 printf("ITS Traking: use amplitude info for layer %d\n",i);
474 printf("ITS Traking: don't use amplitude info for layer %d\n",i);
477 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++)
478 printf("Layer %d:\n sigmaY2 %f, sigma Z2 %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],fMaxNormChi2NonC[i],fMaxNormChi2C[i],fMaxChi2s[i]);