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