]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSRecoParam.cxx
Updated macro
[u/mrichter/AliRoot.git] / ITS / AliITSRecoParam.cxx
CommitLineData
44347160 1/**************************************************************************
572f41f9 2 * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
44347160 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
572f41f9 16#include "AliITSRecoParam.h"
17
18/* $Id$ */
44347160 19
20///////////////////////////////////////////////////////////////////////////////
21// //
22// Class with ITS reconstruction parameters //
23// Origin: andrea.dainese@lnl.infn.it //
24// //
25///////////////////////////////////////////////////////////////////////////////
26
27
44347160 28
29ClassImp(AliITSRecoParam)
30
e50912db 31const Int_t AliITSRecoParam::fgkLayersNotToSkip[AliITSgeomTGeo::kNLayers]={0,0,0,0,0,0};
32const Int_t AliITSRecoParam::fgkLastLayerToTrackTo=0;
33const Int_t AliITSRecoParam::fgkMaxDetectorPerLayer=1000;
34const Double_t AliITSRecoParam::fgkriw=80.0;
35const Double_t AliITSRecoParam::fgkdiw=0.0053;
36const Double_t AliITSRecoParam::fgkX0iw=30.0;
37const Double_t AliITSRecoParam::fgkrcd=61.0;
38const Double_t AliITSRecoParam::fgkdcd=0.0053;
39const Double_t AliITSRecoParam::fgkX0cd=30.0;
40const Double_t AliITSRecoParam::fgkyr=12.8;
41const Double_t AliITSRecoParam::fgkdr=0.03;
42const Double_t AliITSRecoParam::fgkzm=0.2;
43const Double_t AliITSRecoParam::fgkdm=0.40;
44const Double_t AliITSRecoParam::fgkrs=50.0;
45const Double_t AliITSRecoParam::fgkds=0.001;
46const Double_t AliITSRecoParam::fgkrInsideITSscreen=49.0;
47const Double_t AliITSRecoParam::fgkrInsideSPD1=3.7;
48const Double_t AliITSRecoParam::fgkrPipe=3.;
49const Double_t AliITSRecoParam::fgkrInsidePipe=2.7;
50const Double_t AliITSRecoParam::fgkrOutsidePipe=3.3;
51const Double_t AliITSRecoParam::fgkdPipe=0.0028;
52const Double_t AliITSRecoParam::fgkrInsideShield[2]={7.5,25.0};
53const Double_t AliITSRecoParam::fgkrOutsideShield[2]={10.5,30.0};
54const Double_t AliITSRecoParam::fgkdshield[2]={0.0097,0.0034};
55const Double_t AliITSRecoParam::fgkX0shield[2]={38.6,42.0};
56const Double_t AliITSRecoParam::fgkX0Air=21.82;
57const Double_t AliITSRecoParam::fgkX0Be=65.19;
58const Double_t AliITSRecoParam::fgkBoundaryWidth=0.2;
59const Double_t AliITSRecoParam::fgkDeltaXNeighbDets=0.5;
60const Double_t AliITSRecoParam::fgkSPDdetzlength=6.960; // 7.072-2*0.056
61const Double_t AliITSRecoParam::fgkSPDdetxlength=1.298; // 1.410-2*0.056
44347160 62
63//_____________________________________________________________________________
6518a6c5 64AliITSRecoParam::AliITSRecoParam() : AliDetectorRecoParam(),
e50912db 65fMaxSnp(1.),
572f41f9 66fNSigmaYLayerForRoadY(0),
67fNSigmaRoadY(0),
68fNSigmaZLayerForRoadZ(0),
69fNSigmaRoadZ(0),
70fNSigma2RoadZC(0),
71fNSigma2RoadYC(0),
72fNSigma2RoadZNonC(0),
73fNSigma2RoadYNonC(0),
1c97ce2f 74fRoadMisal(0),
572f41f9 75fMaxNormChi2NonCForHypothesis(0),
76fMaxChi2(0),
77fMaxRoad(0),
78fMaxChi2In(0),
79fChi2PerCluster(0),
80fXV(0),
81fYV(0),
82fZV(0),
83fSigmaXV(0),
84fSigmaYV(0),
85fSigmaZV(0),
86fVertexCut(0),
87fMaxDZforPrimTrk(0),
88fMaxDZToUseConstraint(0),
89fMaxDforV0dghtrForProlongation(0),
90fMaxDForProlongation(0),
91fMaxDZForProlongation(0),
92fMinPtForProlongation(0),
6518a6c5 93fAddVirtualClustersInDeadZone(kFALSE),
572f41f9 94fZWindowDeadZone(0),
95fSigmaXDeadZoneHit2(0),
96fSigmaZDeadZoneHit2(0),
97fXPassDeadZoneHits(0),
6518a6c5 98fUseTGeoInTracker(3),
572f41f9 99fAllowSharedClusters(kTRUE),
e50912db 100fClusterErrorsParam(1),
4a66240a 101fComputePlaneEff(kFALSE),
5fbd4fd6 102fHistoPlaneEff(kFALSE),
275a301c 103fReadPlaneEffFromOCDB(kFALSE),
2755f080 104fExtendedEtaAcceptance(kFALSE),
23197852 105fUseBadZonesFromOCDB(kFALSE),
106fUseSingleBadChannelsFromOCDB(kFALSE),
107fMinFractionOfBadInRoad(0),
ae00569a 108fAllowProlongationWithEmptyRoad(kFALSE),
2755f080 109fFactorSAWindowSizes(1.),
c7d6d7b7 110fNLoopsSA(33),
111fMinPhiSA(0.002),
112fMaxPhiSA(0.0145),
113fMinLambdaSA(0.003),
114fMaxLambdaSA(0.008),
5a03f353 115fSAOnePointTracks(kFALSE),
116fSAUseAllClusters(kFALSE),
6518a6c5 117fFindV0s(kTRUE),
118fUseUnfoldingInClusterFinderSPD(kFALSE),
119fUseUnfoldingInClusterFinderSDD(kTRUE),
a86176e3 120fUseUnfoldingInClusterFinderSSD(kTRUE),
121fUseChargeMatchingInClusterFinderSSD(kTRUE)
44347160 122{
123 //
124 // constructor
125 //
6518a6c5 126 SetName("ITS");
127 SetTitle("ITS");
128
44347160 129 SetLayersParameters();
2755f080 130 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fLayersToSkip[i]=0;
6518a6c5 131 SetUseTGeoInTracker(3);
afd25725 132 SetAllowSharedClusters(kTRUE);
133 SetFindV0s(kTRUE);
6518a6c5 134 SetAddVirtualClustersInDeadZone(kFALSE);
572f41f9 135 SetUseAmplitudeInfo(kTRUE);
e50912db 136 SetClusterErrorsParam(1);
44347160 137}
138//_____________________________________________________________________________
139AliITSRecoParam::~AliITSRecoParam()
140{
141 //
142 // destructor
143 //
144}
145//_____________________________________________________________________________
146AliITSRecoParam *AliITSRecoParam::GetHighFluxParam()
147{
148 //
149 // make default reconstruction parameters for hig flux env.
150 //
151 AliITSRecoParam *param = new AliITSRecoParam();
152
153 param->fMaxSnp = 0.95;
154
155 param->fNSigmaYLayerForRoadY = 4.;
156 param->fNSigmaRoadY = 7.5;
157 param->fNSigmaZLayerForRoadZ = 4.;
158 param->fNSigmaRoadZ = 7.5;
159
160 param->fNSigma2RoadZC = 60.; //7.75^2
161 param->fNSigma2RoadYC = 60.; //7.75^2
162 param->fNSigma2RoadZNonC = 50.; //7.07^2
163 param->fNSigma2RoadYNonC = 50.; //7.07^2
164
165 param->fMaxChi2PerCluster[0] = 11.; //7
166 param->fMaxChi2PerCluster[1] = 12.; //5
167 param->fMaxChi2PerCluster[2] = 12.; //8
168 param->fMaxChi2PerCluster[3] = 5.; //8
169 param->fMaxChi2PerCluster[4] = 12.; //6.5
170
171 param->fMaxNormChi2NonC[0] = 7.;
172 param->fMaxNormChi2NonC[1] = 8.;
173 param->fMaxNormChi2NonC[2] = 8.;
174 param->fMaxNormChi2NonC[3] = 11.;
175 param->fMaxNormChi2NonC[4] = 14.;
176 param->fMaxNormChi2NonC[5] = 25.;
177
178 param->fMaxNormChi2C[0] = 11.;
179 param->fMaxNormChi2C[1] = 13.;
180 param->fMaxNormChi2C[2] = 15.;
181 param->fMaxNormChi2C[3] = 18.;
182 param->fMaxNormChi2C[4] = 30.;
183 param->fMaxNormChi2C[5] = 35.;
afd25725 184
185 param->fMaxNormChi2NonCForHypothesis = 7.;
44347160 186
187 param->fMaxChi2 = 35.;
188
189 param->fMaxChi2s[0] = 25.; //40
190 param->fMaxChi2s[1] = 25.; //40
191 param->fMaxChi2s[2] = 25.; //40
192 param->fMaxChi2s[3] = 25.; //40
193 param->fMaxChi2s[4] = 40.; //40
194 param->fMaxChi2s[5] = 50.; //40
195
196 param->fMaxRoad = 6.;
197
198 // not used
199 param->fMaxChi2In = 16.;
200
201 param->fMaxChi2sR[0] = 10.;
202 param->fMaxChi2sR[1] = 10.;
203 param->fMaxChi2sR[2] = 10.;
204 param->fMaxChi2sR[3] = 10.;
205 param->fMaxChi2sR[4] = 30.;
206 param->fMaxChi2sR[5] = 40.;
207
208 param->fChi2PerCluster = 9.;
209 // not used
210
211 param->fXV = 0.;
212 param->fYV = 0.;
213 param->fZV = 0.;
214 param->fSigmaXV = 0.0050;
215 param->fSigmaYV = 0.0050;
216 param->fSigmaZV = 0.0100;
217
218 param->fVertexCut = 25.;
afd25725 219
220 param->fMaxDZforPrimTrk = 0.4;
221 param->fMaxDZToUseConstraint = 3.;
222
223 param->fMaxDforV0dghtrForProlongation = 30.;
6518a6c5 224 param->fMaxDForProlongation = 40.;//10.;
225 param->fMaxDZForProlongation = 60.;//20.;
afd25725 226 param->fMinPtForProlongation = 0.120;
227
228 param->fZWindowDeadZone = 2.0;
229 param->fSigmaXDeadZoneHit2 = 0.004/12.;
230 param->fSigmaZDeadZoneHit2 = 0.001/12.;
231 param->fXPassDeadZoneHits = 0.018;
44347160 232
233 return param;
234}
235//_____________________________________________________________________________
236AliITSRecoParam *AliITSRecoParam::GetLowFluxParam()
237{
238 //
239 // make default reconstruction parameters for low flux env.
240 //
c7d6d7b7 241 AliITSRecoParam *param = new AliITSRecoParam();
242
243 param->fMaxSnp = 0.95;
244
245 param->fNSigmaYLayerForRoadY = 4.;
246 param->fNSigmaRoadY = 7.5;
247 param->fNSigmaZLayerForRoadZ = 4.;
248 param->fNSigmaRoadZ = 7.5;
249
250 param->fNSigma2RoadZC = 60.; //7.75^2
251 param->fNSigma2RoadYC = 60.; //7.75^2
252 param->fNSigma2RoadZNonC = 50.; //7.07^2
253 param->fNSigma2RoadYNonC = 50.; //7.07^2
254
255 param->fMaxChi2PerCluster[0] = 11.; //7
256 param->fMaxChi2PerCluster[1] = 12.; //5
257 param->fMaxChi2PerCluster[2] = 12.; //8
258 param->fMaxChi2PerCluster[3] = 5.; //8
259 param->fMaxChi2PerCluster[4] = 12.; //6.5
260
261 param->fMaxNormChi2NonC[0] = 7.;
262 param->fMaxNormChi2NonC[1] = 8.;
263 param->fMaxNormChi2NonC[2] = 8.;
264 param->fMaxNormChi2NonC[3] = 11.;
265 param->fMaxNormChi2NonC[4] = 14.;
266 param->fMaxNormChi2NonC[5] = 25.;
267
268 param->fMaxNormChi2C[0] = 11.;
269 param->fMaxNormChi2C[1] = 13.;
270 param->fMaxNormChi2C[2] = 15.;
271 param->fMaxNormChi2C[3] = 18.;
272 param->fMaxNormChi2C[4] = 30.;
273 param->fMaxNormChi2C[5] = 35.;
274
275 param->fMaxNormChi2NonCForHypothesis = 7.;
276
277 param->fMaxChi2 = 35.;
278
279 param->fMaxChi2s[0] = 25.; //40
280 param->fMaxChi2s[1] = 25.; //40
281 param->fMaxChi2s[2] = 25.; //40
282 param->fMaxChi2s[3] = 25.; //40
283 param->fMaxChi2s[4] = 40.; //40
284 param->fMaxChi2s[5] = 50.; //40
285
286 param->fMaxRoad = 6.;
287
288 // not used
289 param->fMaxChi2In = 16.;
290
291 param->fMaxChi2sR[0] = 10.;
292 param->fMaxChi2sR[1] = 10.;
293 param->fMaxChi2sR[2] = 10.;
294 param->fMaxChi2sR[3] = 10.;
295 param->fMaxChi2sR[4] = 30.;
296 param->fMaxChi2sR[5] = 40.;
297
298 param->fChi2PerCluster = 9.;
299 // not used
300
301 param->fXV = 0.;
302 param->fYV = 0.;
303 param->fZV = 0.;
304 param->fSigmaXV = 0.0050;
305 param->fSigmaYV = 0.0050;
306 param->fSigmaZV = 0.0100;
307
308 param->fVertexCut = 25.;
309
310 param->fMaxDZforPrimTrk = 0.4;
311 param->fMaxDZToUseConstraint = 3.;
312
313 param->fMaxDforV0dghtrForProlongation = 30.;
314 param->fMaxDForProlongation = 40.;//10.;
315 param->fMaxDZForProlongation = 60.;//20.;
316 param->fMinPtForProlongation = 0.120;
317
318 param->fZWindowDeadZone = 2.0;
319 param->fSigmaXDeadZoneHit2 = 0.004/12.;
320 param->fSigmaZDeadZoneHit2 = 0.001/12.;
321 param->fXPassDeadZoneHits = 0.018;
322 param->SetNLoopsSA(10);
323
324 return param;
44347160 325}
326//_____________________________________________________________________________
327AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam()
328{
329 //
330 // make default reconstruction parameters for cosmics
331 //
e340bb86 332 AliITSRecoParam *param = new AliITSRecoParam();
333
2755f080 334 // larger seach windows for SA (in case of large misalignments)
335 param->SetFactorSAWindowSizes(3.);
e340bb86 336
337 param->fMaxSnp = 0.95;
338
339 param->fNSigmaYLayerForRoadY = 4.;
340 param->fNSigmaRoadY = 7.5;
341 param->fNSigmaZLayerForRoadZ = 4.;
342 param->fNSigmaRoadZ = 7.5;
343
344 param->fNSigma2RoadZC = 60.; //7.75^2
345 param->fNSigma2RoadYC = 60.; //7.75^2
346 param->fNSigma2RoadZNonC = 50.; //7.07^2
347 param->fNSigma2RoadYNonC = 50.; //7.07^2
348
349 param->fMaxChi2PerCluster[0] = 11.; //7
350 param->fMaxChi2PerCluster[1] = 12.; //5
351 param->fMaxChi2PerCluster[2] = 12.; //8
352 param->fMaxChi2PerCluster[3] = 5.; //8
353 param->fMaxChi2PerCluster[4] = 12.; //6.5
354
355 param->fMaxNormChi2NonC[0] = 7.;
356 param->fMaxNormChi2NonC[1] = 8.;
357 param->fMaxNormChi2NonC[2] = 8.;
358 param->fMaxNormChi2NonC[3] = 11.;
359 param->fMaxNormChi2NonC[4] = 14.;
360 param->fMaxNormChi2NonC[5] = 25.;
361
362 param->fMaxNormChi2C[0] = 11.;
363 param->fMaxNormChi2C[1] = 13.;
364 param->fMaxNormChi2C[2] = 15.;
365 param->fMaxNormChi2C[3] = 18.;
366 param->fMaxNormChi2C[4] = 30.;
367 param->fMaxNormChi2C[5] = 35.;
368
369 param->fMaxNormChi2NonCForHypothesis = 7.;
370
371 param->fMaxChi2 = 35.;
372
373 param->fMaxChi2s[0] = 25.; //40
374 param->fMaxChi2s[1] = 25.; //40
375 param->fMaxChi2s[2] = 25.; //40
376 param->fMaxChi2s[3] = 25.; //40
377 param->fMaxChi2s[4] = 40.; //40
378 param->fMaxChi2s[5] = 50.; //40
379
380 param->fMaxRoad = 6.;
381
382 // not used
383 param->fMaxChi2In = 16.;
384
385 param->fMaxChi2sR[0] = 10.;
386 param->fMaxChi2sR[1] = 10.;
387 param->fMaxChi2sR[2] = 10.;
388 param->fMaxChi2sR[3] = 10.;
389 param->fMaxChi2sR[4] = 30.;
390 param->fMaxChi2sR[5] = 40.;
391
392 param->fChi2PerCluster = 9.;
393 // not used
394
395 param->fXV = 0.;
396 param->fYV = 0.;
397 param->fZV = 0.;
398 param->fSigmaXV = 0.0050;
399 param->fSigmaYV = 0.0050;
400 param->fSigmaZV = 0.0100;
401
402 param->fVertexCut = 25.;
403
404 param->fMaxDZforPrimTrk = 0.4;
405 param->fMaxDZToUseConstraint = 3.;
406
407 param->fMaxDforV0dghtrForProlongation = 30.;
408 param->fMaxDForProlongation = 10.;
409 param->fMaxDZForProlongation = 20.;
410 param->fMinPtForProlongation = 0.120;
411
412 param->fZWindowDeadZone = 2.0;
413 param->fSigmaXDeadZoneHit2 = 0.004/12.;
414 param->fSigmaZDeadZoneHit2 = 0.001/12.;
415 param->fXPassDeadZoneHits = 0.018;
416
417
418 return param;
44347160 419}
420//_____________________________________________________________________________
ae00569a 421AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i)
422{
423 //
424 // make special reconstruction parameters for Plane Efficiency study on layer i
425 //
426 AliITSRecoParam *param;
427 param = GetHighFluxParam();
428 param->SetComputePlaneEff();
429 param->SetLayerToSkip(i);
430 return param;
431}
432//_____________________________________________________________________________
44347160 433void AliITSRecoParam::SetLayersParameters()
434{
435 //
436 // number of layers and layers spatial resolutions
437 //
438
439 // spatial resolutions of the detectors
440 // y: 12 12 38 38 20 20 micron
441 fSigmaY2[0]=1.44e-6;
442 fSigmaY2[1]=1.44e-6;
443 fSigmaY2[2]=1.444e-5;
444 fSigmaY2[3]=1.444e-5;
445 fSigmaY2[4]=4.0e-6;
446 fSigmaY2[5]=4.0e-6;
447 // z: 120 120 28 28 830 830 micron
448 fSigmaZ2[0]=1.44e-4;
449 fSigmaZ2[1]=1.44e-4;
450 fSigmaZ2[2]=7.84e-6;
451 fSigmaZ2[3]=7.84e-6;
452 fSigmaZ2[4]=6.889e-3;
453 fSigmaZ2[5]=6.889e-3;
454
455 return;
456}
ed446fa3 457//_____________________________________________________________________________
458void AliITSRecoParam::PrintParameters() const
459{
460 //
461 // print parameters
462 //
463
464 printf("============================= AliITSRecoParam::PrintParameters ");
1c97ce2f 465 printf("============================= \n \n");
ed446fa3 466 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
467 if(!fLayersToSkip[i]) {
468 printf("ITS Traking: using layer %d\n",i);
469 } else {
470 printf("ITS Traking: skipping layer %d\n",i);
471 }
472 }
473 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
474 if(fUseAmplitudeInfo[i]) {
475 printf("ITS Traking: use amplitude info for layer %d\n",i);
476 } else {
477 printf("ITS Traking: don't use amplitude info for layer %d\n",i);
478 }
479 }
480 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++)
481 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]);
482
483
484 Dump();
485
486 return;
487}