new bugs fixed by Tomek
[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),
2755f080 101fExtendedEtaAcceptance(kFALSE),
6518a6c5 102fUseDeadZonesFromOCDB(kFALSE),
2755f080 103fFactorSAWindowSizes(1.),
6518a6c5 104fFindV0s(kTRUE),
105fUseUnfoldingInClusterFinderSPD(kFALSE),
106fUseUnfoldingInClusterFinderSDD(kTRUE),
107fUseUnfoldingInClusterFinderSSD(kTRUE)
44347160 108{
109 //
110 // constructor
111 //
6518a6c5 112 SetName("ITS");
113 SetTitle("ITS");
114
44347160 115 SetLayersParameters();
2755f080 116 for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fLayersToSkip[i]=0;
6518a6c5 117 SetUseTGeoInTracker(3);
afd25725 118 SetAllowSharedClusters(kTRUE);
119 SetFindV0s(kTRUE);
6518a6c5 120 SetAddVirtualClustersInDeadZone(kFALSE);
572f41f9 121 SetUseAmplitudeInfo(kTRUE);
e50912db 122 SetClusterErrorsParam(1);
44347160 123}
124//_____________________________________________________________________________
125AliITSRecoParam::~AliITSRecoParam()
126{
127 //
128 // destructor
129 //
130}
131//_____________________________________________________________________________
132AliITSRecoParam *AliITSRecoParam::GetHighFluxParam()
133{
134 //
135 // make default reconstruction parameters for hig flux env.
136 //
137 AliITSRecoParam *param = new AliITSRecoParam();
138
139 param->fMaxSnp = 0.95;
140
141 param->fNSigmaYLayerForRoadY = 4.;
142 param->fNSigmaRoadY = 7.5;
143 param->fNSigmaZLayerForRoadZ = 4.;
144 param->fNSigmaRoadZ = 7.5;
145
146 param->fNSigma2RoadZC = 60.; //7.75^2
147 param->fNSigma2RoadYC = 60.; //7.75^2
148 param->fNSigma2RoadZNonC = 50.; //7.07^2
149 param->fNSigma2RoadYNonC = 50.; //7.07^2
150
151 param->fMaxChi2PerCluster[0] = 11.; //7
152 param->fMaxChi2PerCluster[1] = 12.; //5
153 param->fMaxChi2PerCluster[2] = 12.; //8
154 param->fMaxChi2PerCluster[3] = 5.; //8
155 param->fMaxChi2PerCluster[4] = 12.; //6.5
156
157 param->fMaxNormChi2NonC[0] = 7.;
158 param->fMaxNormChi2NonC[1] = 8.;
159 param->fMaxNormChi2NonC[2] = 8.;
160 param->fMaxNormChi2NonC[3] = 11.;
161 param->fMaxNormChi2NonC[4] = 14.;
162 param->fMaxNormChi2NonC[5] = 25.;
163
164 param->fMaxNormChi2C[0] = 11.;
165 param->fMaxNormChi2C[1] = 13.;
166 param->fMaxNormChi2C[2] = 15.;
167 param->fMaxNormChi2C[3] = 18.;
168 param->fMaxNormChi2C[4] = 30.;
169 param->fMaxNormChi2C[5] = 35.;
afd25725 170
171 param->fMaxNormChi2NonCForHypothesis = 7.;
44347160 172
173 param->fMaxChi2 = 35.;
174
175 param->fMaxChi2s[0] = 25.; //40
176 param->fMaxChi2s[1] = 25.; //40
177 param->fMaxChi2s[2] = 25.; //40
178 param->fMaxChi2s[3] = 25.; //40
179 param->fMaxChi2s[4] = 40.; //40
180 param->fMaxChi2s[5] = 50.; //40
181
182 param->fMaxRoad = 6.;
183
184 // not used
185 param->fMaxChi2In = 16.;
186
187 param->fMaxChi2sR[0] = 10.;
188 param->fMaxChi2sR[1] = 10.;
189 param->fMaxChi2sR[2] = 10.;
190 param->fMaxChi2sR[3] = 10.;
191 param->fMaxChi2sR[4] = 30.;
192 param->fMaxChi2sR[5] = 40.;
193
194 param->fChi2PerCluster = 9.;
195 // not used
196
197 param->fXV = 0.;
198 param->fYV = 0.;
199 param->fZV = 0.;
200 param->fSigmaXV = 0.0050;
201 param->fSigmaYV = 0.0050;
202 param->fSigmaZV = 0.0100;
203
204 param->fVertexCut = 25.;
afd25725 205
206 param->fMaxDZforPrimTrk = 0.4;
207 param->fMaxDZToUseConstraint = 3.;
208
209 param->fMaxDforV0dghtrForProlongation = 30.;
6518a6c5 210 param->fMaxDForProlongation = 40.;//10.;
211 param->fMaxDZForProlongation = 60.;//20.;
afd25725 212 param->fMinPtForProlongation = 0.120;
213
214 param->fZWindowDeadZone = 2.0;
215 param->fSigmaXDeadZoneHit2 = 0.004/12.;
216 param->fSigmaZDeadZoneHit2 = 0.001/12.;
217 param->fXPassDeadZoneHits = 0.018;
218
44347160 219
220 return param;
221}
222//_____________________________________________________________________________
4a66240a 223AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i)
224{
225 //
226 // make special reconstruction parameters for Plane Efficiency study on layer i
227 //
228 AliITSRecoParam *param;
229 param = GetHighFluxParam();
230 param->SetComputePlaneEff();
231 param->SetLayerToSkip(i);
232 return param;
233}
234//_____________________________________________________________________________
44347160 235AliITSRecoParam *AliITSRecoParam::GetLowFluxParam()
236{
237 //
238 // make default reconstruction parameters for low flux env.
239 //
240 return GetHighFluxParam();
241}
242//_____________________________________________________________________________
243AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam()
244{
245 //
246 // make default reconstruction parameters for cosmics
247 //
e340bb86 248 AliITSRecoParam *param = new AliITSRecoParam();
249
2755f080 250 // larger seach windows for SA (in case of large misalignments)
251 param->SetFactorSAWindowSizes(3.);
e340bb86 252
253 param->fMaxSnp = 0.95;
254
255 param->fNSigmaYLayerForRoadY = 4.;
256 param->fNSigmaRoadY = 7.5;
257 param->fNSigmaZLayerForRoadZ = 4.;
258 param->fNSigmaRoadZ = 7.5;
259
260 param->fNSigma2RoadZC = 60.; //7.75^2
261 param->fNSigma2RoadYC = 60.; //7.75^2
262 param->fNSigma2RoadZNonC = 50.; //7.07^2
263 param->fNSigma2RoadYNonC = 50.; //7.07^2
264
265 param->fMaxChi2PerCluster[0] = 11.; //7
266 param->fMaxChi2PerCluster[1] = 12.; //5
267 param->fMaxChi2PerCluster[2] = 12.; //8
268 param->fMaxChi2PerCluster[3] = 5.; //8
269 param->fMaxChi2PerCluster[4] = 12.; //6.5
270
271 param->fMaxNormChi2NonC[0] = 7.;
272 param->fMaxNormChi2NonC[1] = 8.;
273 param->fMaxNormChi2NonC[2] = 8.;
274 param->fMaxNormChi2NonC[3] = 11.;
275 param->fMaxNormChi2NonC[4] = 14.;
276 param->fMaxNormChi2NonC[5] = 25.;
277
278 param->fMaxNormChi2C[0] = 11.;
279 param->fMaxNormChi2C[1] = 13.;
280 param->fMaxNormChi2C[2] = 15.;
281 param->fMaxNormChi2C[3] = 18.;
282 param->fMaxNormChi2C[4] = 30.;
283 param->fMaxNormChi2C[5] = 35.;
284
285 param->fMaxNormChi2NonCForHypothesis = 7.;
286
287 param->fMaxChi2 = 35.;
288
289 param->fMaxChi2s[0] = 25.; //40
290 param->fMaxChi2s[1] = 25.; //40
291 param->fMaxChi2s[2] = 25.; //40
292 param->fMaxChi2s[3] = 25.; //40
293 param->fMaxChi2s[4] = 40.; //40
294 param->fMaxChi2s[5] = 50.; //40
295
296 param->fMaxRoad = 6.;
297
298 // not used
299 param->fMaxChi2In = 16.;
300
301 param->fMaxChi2sR[0] = 10.;
302 param->fMaxChi2sR[1] = 10.;
303 param->fMaxChi2sR[2] = 10.;
304 param->fMaxChi2sR[3] = 10.;
305 param->fMaxChi2sR[4] = 30.;
306 param->fMaxChi2sR[5] = 40.;
307
308 param->fChi2PerCluster = 9.;
309 // not used
310
311 param->fXV = 0.;
312 param->fYV = 0.;
313 param->fZV = 0.;
314 param->fSigmaXV = 0.0050;
315 param->fSigmaYV = 0.0050;
316 param->fSigmaZV = 0.0100;
317
318 param->fVertexCut = 25.;
319
320 param->fMaxDZforPrimTrk = 0.4;
321 param->fMaxDZToUseConstraint = 3.;
322
323 param->fMaxDforV0dghtrForProlongation = 30.;
324 param->fMaxDForProlongation = 10.;
325 param->fMaxDZForProlongation = 20.;
326 param->fMinPtForProlongation = 0.120;
327
328 param->fZWindowDeadZone = 2.0;
329 param->fSigmaXDeadZoneHit2 = 0.004/12.;
330 param->fSigmaZDeadZoneHit2 = 0.001/12.;
331 param->fXPassDeadZoneHits = 0.018;
332
333
334 return param;
44347160 335}
336//_____________________________________________________________________________
337void AliITSRecoParam::SetLayersParameters()
338{
339 //
340 // number of layers and layers spatial resolutions
341 //
342
343 // spatial resolutions of the detectors
344 // y: 12 12 38 38 20 20 micron
345 fSigmaY2[0]=1.44e-6;
346 fSigmaY2[1]=1.44e-6;
347 fSigmaY2[2]=1.444e-5;
348 fSigmaY2[3]=1.444e-5;
349 fSigmaY2[4]=4.0e-6;
350 fSigmaY2[5]=4.0e-6;
351 // z: 120 120 28 28 830 830 micron
352 fSigmaZ2[0]=1.44e-4;
353 fSigmaZ2[1]=1.44e-4;
354 fSigmaZ2[2]=7.84e-6;
355 fSigmaZ2[3]=7.84e-6;
356 fSigmaZ2[4]=6.889e-3;
357 fSigmaZ2[5]=6.889e-3;
358
359 return;
360}