]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSRecoParam.cxx
Further fixes to the par file generation
[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),
74fMaxNormChi2NonCForHypothesis(0),
75fMaxChi2(0),
76fMaxRoad(0),
77fMaxChi2In(0),
78fChi2PerCluster(0),
79fXV(0),
80fYV(0),
81fZV(0),
82fSigmaXV(0),
83fSigmaYV(0),
84fSigmaZV(0),
85fVertexCut(0),
86fMaxDZforPrimTrk(0),
87fMaxDZToUseConstraint(0),
88fMaxDforV0dghtrForProlongation(0),
89fMaxDForProlongation(0),
90fMaxDZForProlongation(0),
91fMinPtForProlongation(0),
6518a6c5 92fAddVirtualClustersInDeadZone(kFALSE),
572f41f9 93fZWindowDeadZone(0),
94fSigmaXDeadZoneHit2(0),
95fSigmaZDeadZoneHit2(0),
96fXPassDeadZoneHits(0),
6518a6c5 97fUseTGeoInTracker(3),
572f41f9 98fAllowSharedClusters(kTRUE),
e50912db 99fClusterErrorsParam(1),
4a66240a 100fComputePlaneEff(kFALSE),
5fbd4fd6 101fHistoPlaneEff(kFALSE),
275a301c 102fReadPlaneEffFromOCDB(kFALSE),
2755f080 103fExtendedEtaAcceptance(kFALSE),
6518a6c5 104fUseDeadZonesFromOCDB(kFALSE),
ae00569a 105fAllowProlongationWithEmptyRoad(kFALSE),
2755f080 106fFactorSAWindowSizes(1.),
c7d6d7b7 107fNLoopsSA(33),
108fMinPhiSA(0.002),
109fMaxPhiSA(0.0145),
110fMinLambdaSA(0.003),
111fMaxLambdaSA(0.008),
5a03f353 112fSAOnePointTracks(kFALSE),
113fSAUseAllClusters(kFALSE),
6518a6c5 114fFindV0s(kTRUE),
115fUseUnfoldingInClusterFinderSPD(kFALSE),
116fUseUnfoldingInClusterFinderSDD(kTRUE),
a86176e3 117fUseUnfoldingInClusterFinderSSD(kTRUE),
118fUseChargeMatchingInClusterFinderSSD(kTRUE)
44347160 119{
120 //
121 // constructor
122 //
6518a6c5 123 SetName("ITS");
124 SetTitle("ITS");
125
44347160 126 SetLayersParameters();
2755f080 127 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fLayersToSkip[i]=0;
6518a6c5 128 SetUseTGeoInTracker(3);
afd25725 129 SetAllowSharedClusters(kTRUE);
130 SetFindV0s(kTRUE);
6518a6c5 131 SetAddVirtualClustersInDeadZone(kFALSE);
572f41f9 132 SetUseAmplitudeInfo(kTRUE);
e50912db 133 SetClusterErrorsParam(1);
44347160 134}
135//_____________________________________________________________________________
136AliITSRecoParam::~AliITSRecoParam()
137{
138 //
139 // destructor
140 //
141}
142//_____________________________________________________________________________
143AliITSRecoParam *AliITSRecoParam::GetHighFluxParam()
144{
145 //
146 // make default reconstruction parameters for hig flux env.
147 //
148 AliITSRecoParam *param = new AliITSRecoParam();
149
150 param->fMaxSnp = 0.95;
151
152 param->fNSigmaYLayerForRoadY = 4.;
153 param->fNSigmaRoadY = 7.5;
154 param->fNSigmaZLayerForRoadZ = 4.;
155 param->fNSigmaRoadZ = 7.5;
156
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
161
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
167
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.;
174
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.;
afd25725 181
182 param->fMaxNormChi2NonCForHypothesis = 7.;
44347160 183
184 param->fMaxChi2 = 35.;
185
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
192
193 param->fMaxRoad = 6.;
194
195 // not used
196 param->fMaxChi2In = 16.;
197
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.;
204
205 param->fChi2PerCluster = 9.;
206 // not used
207
208 param->fXV = 0.;
209 param->fYV = 0.;
210 param->fZV = 0.;
211 param->fSigmaXV = 0.0050;
212 param->fSigmaYV = 0.0050;
213 param->fSigmaZV = 0.0100;
214
215 param->fVertexCut = 25.;
afd25725 216
217 param->fMaxDZforPrimTrk = 0.4;
218 param->fMaxDZToUseConstraint = 3.;
219
220 param->fMaxDforV0dghtrForProlongation = 30.;
6518a6c5 221 param->fMaxDForProlongation = 40.;//10.;
222 param->fMaxDZForProlongation = 60.;//20.;
afd25725 223 param->fMinPtForProlongation = 0.120;
224
225 param->fZWindowDeadZone = 2.0;
226 param->fSigmaXDeadZoneHit2 = 0.004/12.;
227 param->fSigmaZDeadZoneHit2 = 0.001/12.;
228 param->fXPassDeadZoneHits = 0.018;
44347160 229
230 return param;
231}
232//_____________________________________________________________________________
233AliITSRecoParam *AliITSRecoParam::GetLowFluxParam()
234{
235 //
236 // make default reconstruction parameters for low flux env.
237 //
c7d6d7b7 238 AliITSRecoParam *param = new AliITSRecoParam();
239
240 param->fMaxSnp = 0.95;
241
242 param->fNSigmaYLayerForRoadY = 4.;
243 param->fNSigmaRoadY = 7.5;
244 param->fNSigmaZLayerForRoadZ = 4.;
245 param->fNSigmaRoadZ = 7.5;
246
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
251
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
257
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.;
264
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.;
271
272 param->fMaxNormChi2NonCForHypothesis = 7.;
273
274 param->fMaxChi2 = 35.;
275
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
282
283 param->fMaxRoad = 6.;
284
285 // not used
286 param->fMaxChi2In = 16.;
287
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.;
294
295 param->fChi2PerCluster = 9.;
296 // not used
297
298 param->fXV = 0.;
299 param->fYV = 0.;
300 param->fZV = 0.;
301 param->fSigmaXV = 0.0050;
302 param->fSigmaYV = 0.0050;
303 param->fSigmaZV = 0.0100;
304
305 param->fVertexCut = 25.;
306
307 param->fMaxDZforPrimTrk = 0.4;
308 param->fMaxDZToUseConstraint = 3.;
309
310 param->fMaxDforV0dghtrForProlongation = 30.;
311 param->fMaxDForProlongation = 40.;//10.;
312 param->fMaxDZForProlongation = 60.;//20.;
313 param->fMinPtForProlongation = 0.120;
314
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);
320
321 return param;
44347160 322}
323//_____________________________________________________________________________
324AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam()
325{
326 //
327 // make default reconstruction parameters for cosmics
328 //
e340bb86 329 AliITSRecoParam *param = new AliITSRecoParam();
330
2755f080 331 // larger seach windows for SA (in case of large misalignments)
332 param->SetFactorSAWindowSizes(3.);
e340bb86 333
334 param->fMaxSnp = 0.95;
335
336 param->fNSigmaYLayerForRoadY = 4.;
337 param->fNSigmaRoadY = 7.5;
338 param->fNSigmaZLayerForRoadZ = 4.;
339 param->fNSigmaRoadZ = 7.5;
340
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
345
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
351
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.;
358
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.;
365
366 param->fMaxNormChi2NonCForHypothesis = 7.;
367
368 param->fMaxChi2 = 35.;
369
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
376
377 param->fMaxRoad = 6.;
378
379 // not used
380 param->fMaxChi2In = 16.;
381
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.;
388
389 param->fChi2PerCluster = 9.;
390 // not used
391
392 param->fXV = 0.;
393 param->fYV = 0.;
394 param->fZV = 0.;
395 param->fSigmaXV = 0.0050;
396 param->fSigmaYV = 0.0050;
397 param->fSigmaZV = 0.0100;
398
399 param->fVertexCut = 25.;
400
401 param->fMaxDZforPrimTrk = 0.4;
402 param->fMaxDZToUseConstraint = 3.;
403
404 param->fMaxDforV0dghtrForProlongation = 30.;
405 param->fMaxDForProlongation = 10.;
406 param->fMaxDZForProlongation = 20.;
407 param->fMinPtForProlongation = 0.120;
408
409 param->fZWindowDeadZone = 2.0;
410 param->fSigmaXDeadZoneHit2 = 0.004/12.;
411 param->fSigmaZDeadZoneHit2 = 0.001/12.;
412 param->fXPassDeadZoneHits = 0.018;
413
414
415 return param;
44347160 416}
417//_____________________________________________________________________________
ae00569a 418AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i)
419{
420 //
421 // make special reconstruction parameters for Plane Efficiency study on layer i
422 //
423 AliITSRecoParam *param;
424 param = GetHighFluxParam();
425 param->SetComputePlaneEff();
426 param->SetLayerToSkip(i);
427 return param;
428}
429//_____________________________________________________________________________
44347160 430void AliITSRecoParam::SetLayersParameters()
431{
432 //
433 // number of layers and layers spatial resolutions
434 //
435
436 // spatial resolutions of the detectors
437 // y: 12 12 38 38 20 20 micron
438 fSigmaY2[0]=1.44e-6;
439 fSigmaY2[1]=1.44e-6;
440 fSigmaY2[2]=1.444e-5;
441 fSigmaY2[3]=1.444e-5;
442 fSigmaY2[4]=4.0e-6;
443 fSigmaY2[5]=4.0e-6;
444 // z: 120 120 28 28 830 830 micron
445 fSigmaZ2[0]=1.44e-4;
446 fSigmaZ2[1]=1.44e-4;
447 fSigmaZ2[2]=7.84e-6;
448 fSigmaZ2[3]=7.84e-6;
449 fSigmaZ2[4]=6.889e-3;
450 fSigmaZ2[5]=6.889e-3;
451
452 return;
453}
ed446fa3 454//_____________________________________________________________________________
455void AliITSRecoParam::PrintParameters() const
456{
457 //
458 // print parameters
459 //
460
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);
466 } else {
467 printf("ITS Traking: skipping layer %d\n",i);
468 }
469 }
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);
473 } else {
474 printf("ITS Traking: don't use amplitude info for layer %d\n",i);
475 }
476 }
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]);
479
480
481 Dump();
482
483 return;
484}