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