]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSRecoParam.cxx
Parameters for track finding in AliITStrackerSA added to AliITSRecoParam (F. PRino)
[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
18 /* $Id$ */
19
20 ///////////////////////////////////////////////////////////////////////////////
21 //                                                                           //
22 // Class with ITS reconstruction parameters                                  //
23 // Origin: andrea.dainese@lnl.infn.it                                        //
24 //                                                                           //
25 ///////////////////////////////////////////////////////////////////////////////
26
27
28
29 ClassImp(AliITSRecoParam)
30
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
62
63 //_____________________________________________________________________________
64 AliITSRecoParam::AliITSRecoParam() : AliDetectorRecoParam(),
65 fMaxSnp(1.),
66 fNSigmaYLayerForRoadY(0),
67 fNSigmaRoadY(0),
68 fNSigmaZLayerForRoadZ(0),
69 fNSigmaRoadZ(0),
70 fNSigma2RoadZC(0),
71 fNSigma2RoadYC(0),
72 fNSigma2RoadZNonC(0),
73 fNSigma2RoadYNonC(0),
74 fMaxNormChi2NonCForHypothesis(0),
75 fMaxChi2(0),
76 fMaxRoad(0),
77 fMaxChi2In(0),
78 fChi2PerCluster(0),
79 fXV(0), 
80 fYV(0),
81 fZV(0),
82 fSigmaXV(0),
83 fSigmaYV(0),
84 fSigmaZV(0),
85 fVertexCut(0),
86 fMaxDZforPrimTrk(0),
87 fMaxDZToUseConstraint(0), 
88 fMaxDforV0dghtrForProlongation(0),
89 fMaxDForProlongation(0),
90 fMaxDZForProlongation(0),
91 fMinPtForProlongation(0),
92 fAddVirtualClustersInDeadZone(kFALSE),
93 fZWindowDeadZone(0),
94 fSigmaXDeadZoneHit2(0),
95 fSigmaZDeadZoneHit2(0),
96 fXPassDeadZoneHits(0),
97 fUseTGeoInTracker(3),
98 fAllowSharedClusters(kTRUE),
99 fClusterErrorsParam(1),
100 fComputePlaneEff(kFALSE),
101 fHistoPlaneEff(kFALSE),
102 fExtendedEtaAcceptance(kFALSE),
103 fUseDeadZonesFromOCDB(kFALSE),
104 fAllowProlongationWithEmptyRoad(kFALSE),
105 fFactorSAWindowSizes(1.),
106 fNLoopsSA(33),
107 fMinPhiSA(0.002),
108 fMaxPhiSA(0.0145),
109 fMinLambdaSA(0.003),
110 fMaxLambdaSA(0.008),
111 fSAOnePointTracks(kFALSE),
112 fSAUseAllClusters(kFALSE),
113 fFindV0s(kTRUE),
114 fUseUnfoldingInClusterFinderSPD(kFALSE),
115 fUseUnfoldingInClusterFinderSDD(kTRUE),
116 fUseUnfoldingInClusterFinderSSD(kTRUE)
117 {
118   //
119   // constructor
120   //
121   SetName("ITS");
122   SetTitle("ITS");
123
124   SetLayersParameters();
125   for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fLayersToSkip[i]=0;
126   SetUseTGeoInTracker(3);
127   SetAllowSharedClusters(kTRUE);
128   SetFindV0s(kTRUE);
129   SetAddVirtualClustersInDeadZone(kFALSE);
130   SetUseAmplitudeInfo(kTRUE);
131   SetClusterErrorsParam(1);
132 }
133 //_____________________________________________________________________________
134 AliITSRecoParam::~AliITSRecoParam() 
135 {
136   //
137   // destructor
138   //  
139 }
140 //_____________________________________________________________________________
141 AliITSRecoParam *AliITSRecoParam::GetHighFluxParam() 
142 {
143   //
144   // make default reconstruction  parameters for hig  flux env.
145   //
146   AliITSRecoParam *param = new AliITSRecoParam();
147
148   param->fMaxSnp = 0.95;
149
150   param->fNSigmaYLayerForRoadY = 4.;
151   param->fNSigmaRoadY = 7.5;
152   param->fNSigmaZLayerForRoadZ = 4.;
153   param->fNSigmaRoadZ = 7.5;
154
155   param->fNSigma2RoadZC = 60.; //7.75^2
156   param->fNSigma2RoadYC = 60.; //7.75^2
157   param->fNSigma2RoadZNonC = 50.; //7.07^2
158   param->fNSigma2RoadYNonC = 50.; //7.07^2
159
160   param->fMaxChi2PerCluster[0] = 11.; //7
161   param->fMaxChi2PerCluster[1] = 12.; //5
162   param->fMaxChi2PerCluster[2] = 12.; //8
163   param->fMaxChi2PerCluster[3] = 5.;  //8
164   param->fMaxChi2PerCluster[4] = 12.; //6.5
165
166   param->fMaxNormChi2NonC[0] = 7.;
167   param->fMaxNormChi2NonC[1] = 8.;
168   param->fMaxNormChi2NonC[2] = 8.;
169   param->fMaxNormChi2NonC[3] = 11.;
170   param->fMaxNormChi2NonC[4] = 14.;
171   param->fMaxNormChi2NonC[5] = 25.;
172
173   param->fMaxNormChi2C[0] = 11.;
174   param->fMaxNormChi2C[1] = 13.;
175   param->fMaxNormChi2C[2] = 15.;
176   param->fMaxNormChi2C[3] = 18.;
177   param->fMaxNormChi2C[4] = 30.;
178   param->fMaxNormChi2C[5] = 35.;
179
180   param->fMaxNormChi2NonCForHypothesis = 7.;
181   
182   param->fMaxChi2 = 35.;
183
184   param->fMaxChi2s[0] = 25.; //40   
185   param->fMaxChi2s[1] = 25.; //40   
186   param->fMaxChi2s[2] = 25.; //40   
187   param->fMaxChi2s[3] = 25.; //40   
188   param->fMaxChi2s[4] = 40.; //40   
189   param->fMaxChi2s[5] = 50.; //40
190
191   param->fMaxRoad = 6.;
192
193   // not used
194   param->fMaxChi2In = 16.;
195    
196   param->fMaxChi2sR[0] = 10.;   
197   param->fMaxChi2sR[1] = 10.;   
198   param->fMaxChi2sR[2] = 10.;   
199   param->fMaxChi2sR[3] = 10.;   
200   param->fMaxChi2sR[4] = 30.;   
201   param->fMaxChi2sR[5] = 40.;   
202
203   param->fChi2PerCluster = 9.;
204   // not used
205
206   param->fXV = 0.;
207   param->fYV = 0.;
208   param->fZV = 0.;
209   param->fSigmaXV = 0.0050;
210   param->fSigmaYV = 0.0050;
211   param->fSigmaZV = 0.0100;
212
213   param->fVertexCut = 25.;
214
215   param->fMaxDZforPrimTrk = 0.4;
216   param->fMaxDZToUseConstraint = 3.;
217
218   param->fMaxDforV0dghtrForProlongation = 30.;
219   param->fMaxDForProlongation = 40.;//10.;
220   param->fMaxDZForProlongation = 60.;//20.;
221   param->fMinPtForProlongation = 0.120;
222
223   param->fZWindowDeadZone = 2.0;
224   param->fSigmaXDeadZoneHit2 = 0.004/12.;
225   param->fSigmaZDeadZoneHit2 = 0.001/12.;
226   param->fXPassDeadZoneHits = 0.018;
227   
228   return param;
229 }
230 //_____________________________________________________________________________
231 AliITSRecoParam *AliITSRecoParam::GetLowFluxParam() 
232 {
233   //
234   // make default reconstruction  parameters for low  flux env.
235   //
236   AliITSRecoParam *param = new AliITSRecoParam();
237
238   param->fMaxSnp = 0.95;
239
240   param->fNSigmaYLayerForRoadY = 4.;
241   param->fNSigmaRoadY = 7.5;
242   param->fNSigmaZLayerForRoadZ = 4.;
243   param->fNSigmaRoadZ = 7.5;
244
245   param->fNSigma2RoadZC = 60.; //7.75^2
246   param->fNSigma2RoadYC = 60.; //7.75^2
247   param->fNSigma2RoadZNonC = 50.; //7.07^2
248   param->fNSigma2RoadYNonC = 50.; //7.07^2
249
250   param->fMaxChi2PerCluster[0] = 11.; //7
251   param->fMaxChi2PerCluster[1] = 12.; //5
252   param->fMaxChi2PerCluster[2] = 12.; //8
253   param->fMaxChi2PerCluster[3] = 5.;  //8
254   param->fMaxChi2PerCluster[4] = 12.; //6.5
255
256   param->fMaxNormChi2NonC[0] = 7.;
257   param->fMaxNormChi2NonC[1] = 8.;
258   param->fMaxNormChi2NonC[2] = 8.;
259   param->fMaxNormChi2NonC[3] = 11.;
260   param->fMaxNormChi2NonC[4] = 14.;
261   param->fMaxNormChi2NonC[5] = 25.;
262
263   param->fMaxNormChi2C[0] = 11.;
264   param->fMaxNormChi2C[1] = 13.;
265   param->fMaxNormChi2C[2] = 15.;
266   param->fMaxNormChi2C[3] = 18.;
267   param->fMaxNormChi2C[4] = 30.;
268   param->fMaxNormChi2C[5] = 35.;
269
270   param->fMaxNormChi2NonCForHypothesis = 7.;
271   
272   param->fMaxChi2 = 35.;
273
274   param->fMaxChi2s[0] = 25.; //40   
275   param->fMaxChi2s[1] = 25.; //40   
276   param->fMaxChi2s[2] = 25.; //40   
277   param->fMaxChi2s[3] = 25.; //40   
278   param->fMaxChi2s[4] = 40.; //40   
279   param->fMaxChi2s[5] = 50.; //40
280
281   param->fMaxRoad = 6.;
282
283   // not used
284   param->fMaxChi2In = 16.;
285    
286   param->fMaxChi2sR[0] = 10.;   
287   param->fMaxChi2sR[1] = 10.;   
288   param->fMaxChi2sR[2] = 10.;   
289   param->fMaxChi2sR[3] = 10.;   
290   param->fMaxChi2sR[4] = 30.;   
291   param->fMaxChi2sR[5] = 40.;   
292
293   param->fChi2PerCluster = 9.;
294   // not used
295
296   param->fXV = 0.;
297   param->fYV = 0.;
298   param->fZV = 0.;
299   param->fSigmaXV = 0.0050;
300   param->fSigmaYV = 0.0050;
301   param->fSigmaZV = 0.0100;
302
303   param->fVertexCut = 25.;
304
305   param->fMaxDZforPrimTrk = 0.4;
306   param->fMaxDZToUseConstraint = 3.;
307
308   param->fMaxDforV0dghtrForProlongation = 30.;
309   param->fMaxDForProlongation = 40.;//10.;
310   param->fMaxDZForProlongation = 60.;//20.;
311   param->fMinPtForProlongation = 0.120;
312
313   param->fZWindowDeadZone = 2.0;
314   param->fSigmaXDeadZoneHit2 = 0.004/12.;
315   param->fSigmaZDeadZoneHit2 = 0.001/12.;
316   param->fXPassDeadZoneHits = 0.018;
317   param->SetNLoopsSA(10);
318   
319   return param;
320 }
321 //_____________________________________________________________________________
322 AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam() 
323 {
324   //
325   // make default reconstruction  parameters for cosmics
326   //
327   AliITSRecoParam *param = new AliITSRecoParam();
328
329   // larger seach windows for SA (in case of large misalignments)
330   param->SetFactorSAWindowSizes(3.); 
331
332   param->fMaxSnp = 0.95;
333
334   param->fNSigmaYLayerForRoadY = 4.;
335   param->fNSigmaRoadY = 7.5;
336   param->fNSigmaZLayerForRoadZ = 4.;
337   param->fNSigmaRoadZ = 7.5;
338
339   param->fNSigma2RoadZC = 60.; //7.75^2
340   param->fNSigma2RoadYC = 60.; //7.75^2
341   param->fNSigma2RoadZNonC = 50.; //7.07^2
342   param->fNSigma2RoadYNonC = 50.; //7.07^2
343
344   param->fMaxChi2PerCluster[0] = 11.; //7
345   param->fMaxChi2PerCluster[1] = 12.; //5
346   param->fMaxChi2PerCluster[2] = 12.; //8
347   param->fMaxChi2PerCluster[3] = 5.;  //8
348   param->fMaxChi2PerCluster[4] = 12.; //6.5
349
350   param->fMaxNormChi2NonC[0] = 7.;
351   param->fMaxNormChi2NonC[1] = 8.;
352   param->fMaxNormChi2NonC[2] = 8.;
353   param->fMaxNormChi2NonC[3] = 11.;
354   param->fMaxNormChi2NonC[4] = 14.;
355   param->fMaxNormChi2NonC[5] = 25.;
356
357   param->fMaxNormChi2C[0] = 11.;
358   param->fMaxNormChi2C[1] = 13.;
359   param->fMaxNormChi2C[2] = 15.;
360   param->fMaxNormChi2C[3] = 18.;
361   param->fMaxNormChi2C[4] = 30.;
362   param->fMaxNormChi2C[5] = 35.;
363
364   param->fMaxNormChi2NonCForHypothesis = 7.;
365   
366   param->fMaxChi2 = 35.;
367
368   param->fMaxChi2s[0] = 25.; //40   
369   param->fMaxChi2s[1] = 25.; //40   
370   param->fMaxChi2s[2] = 25.; //40   
371   param->fMaxChi2s[3] = 25.; //40   
372   param->fMaxChi2s[4] = 40.; //40   
373   param->fMaxChi2s[5] = 50.; //40
374
375   param->fMaxRoad = 6.;
376
377   // not used
378   param->fMaxChi2In = 16.;
379    
380   param->fMaxChi2sR[0] = 10.;   
381   param->fMaxChi2sR[1] = 10.;   
382   param->fMaxChi2sR[2] = 10.;   
383   param->fMaxChi2sR[3] = 10.;   
384   param->fMaxChi2sR[4] = 30.;   
385   param->fMaxChi2sR[5] = 40.;   
386
387   param->fChi2PerCluster = 9.;
388   // not used
389
390   param->fXV = 0.;
391   param->fYV = 0.;
392   param->fZV = 0.;
393   param->fSigmaXV = 0.0050;
394   param->fSigmaYV = 0.0050;
395   param->fSigmaZV = 0.0100;
396
397   param->fVertexCut = 25.;
398
399   param->fMaxDZforPrimTrk = 0.4;
400   param->fMaxDZToUseConstraint = 3.;
401
402   param->fMaxDforV0dghtrForProlongation = 30.;
403   param->fMaxDForProlongation = 10.;
404   param->fMaxDZForProlongation = 20.;
405   param->fMinPtForProlongation = 0.120;
406
407   param->fZWindowDeadZone = 2.0;
408   param->fSigmaXDeadZoneHit2 = 0.004/12.;
409   param->fSigmaZDeadZoneHit2 = 0.001/12.;
410   param->fXPassDeadZoneHits = 0.018;
411
412   
413   return param;
414 }
415 //_____________________________________________________________________________
416 AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i)
417 {
418   //
419   // make special reconstruction parameters for Plane Efficiency study on layer i
420   //
421   AliITSRecoParam *param;
422   param = GetHighFluxParam();
423   param->SetComputePlaneEff();
424   param->SetLayerToSkip(i);
425   return param;
426 }
427 //_____________________________________________________________________________
428 void AliITSRecoParam::SetLayersParameters() 
429 {
430   //
431   // number of layers and layers spatial resolutions
432   //
433
434   // spatial resolutions of the detectors
435   // y: 12 12 38 38 20 20 micron
436   fSigmaY2[0]=1.44e-6;
437   fSigmaY2[1]=1.44e-6;
438   fSigmaY2[2]=1.444e-5;
439   fSigmaY2[3]=1.444e-5;
440   fSigmaY2[4]=4.0e-6;
441   fSigmaY2[5]=4.0e-6;
442   // z: 120 120 28 28 830 830 micron
443   fSigmaZ2[0]=1.44e-4;
444   fSigmaZ2[1]=1.44e-4;
445   fSigmaZ2[2]=7.84e-6;
446   fSigmaZ2[3]=7.84e-6;
447   fSigmaZ2[4]=6.889e-3;
448   fSigmaZ2[5]=6.889e-3;
449
450   return;
451 }
452