]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/STEER/AliGRPRecoParam.cxx
correcting raw <-> local transformation according to the 0.5 pad offset applied in...
[u/mrichter/AliRoot.git] / STEER / STEER / AliGRPRecoParam.cxx
CommitLineData
a00021a7 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 "AliGRPRecoParam.h"
17
18///////////////////////////////////////////////////////////////////////////////
19// //
20// Class with GRP reconstruction parameters //
21// Origin: andrea.dainese@lnl.infn.it //
22// //
23///////////////////////////////////////////////////////////////////////////////
24
25
26
27ClassImp(AliGRPRecoParam)
28
29//_____________________________________________________________________________
30AliGRPRecoParam::AliGRPRecoParam() : AliDetectorRecoParam(),
71f6cda4 31fMostProbablePt(0.350),
f2a195c1 32fVertexerTracksConstraintITS(kTRUE),
33fVertexerTracksConstraintTPC(kTRUE),
3f2db92f 34fVertexerTracksNCuts(21),
a00021a7 35fVertexerTracksITSdcacut(0.1),
36fVertexerTracksITSdcacutIter0(0.1),
37fVertexerTracksITSmaxd0z0(0.5),
38fVertexerTracksITSminCls(5),
39fVertexerTracksITSmintrks(1),
40fVertexerTracksITSnsigma(3.),
41fVertexerTracksITSnindetfitter(100.),
42fVertexerTracksITSmaxtgl(1000.),
43fVertexerTracksITSfidR(3.),
44fVertexerTracksITSfidZ(30.),
8c75f668 45fVertexerTracksITSalgo(1.),
46fVertexerTracksITSalgoIter0(4.),
3f2db92f 47//
48fVertexerTracksITSMVTukey2(7.),
49fVertexerTracksITSMVSig2Ini(1e3),
50fVertexerTracksITSMVMaxSigma2(5.0),
51fVertexerTracksITSMVMinSig2Red(0.05),
52fVertexerTracksITSMVMinDst(10e-4),
53fVertexerTracksITSMVScanStep(2.),
54fVertexerTracksITSMVMaxWghNtr(10),
55fVertexerTracksITSMVFinalWBinary(1),
56fVertexerTracksITSMVBCSpacing(50),
57//
a00021a7 58fVertexerTracksTPCdcacut(0.1),
59fVertexerTracksTPCdcacutIter0(1.0),
60fVertexerTracksTPCmaxd0z0(5.),
61fVertexerTracksTPCminCls(10),
62fVertexerTracksTPCmintrks(1),
63fVertexerTracksTPCnsigma(3.),
64fVertexerTracksTPCnindetfitter(0.1),
65fVertexerTracksTPCmaxtgl(1.5),
66fVertexerTracksTPCfidR(3.),
8c75f668 67fVertexerTracksTPCfidZ(30.),
68fVertexerTracksTPCalgo(1.),
61a14552 69fVertexerTracksTPCalgoIter0(4.),
3f2db92f 70//
71fVertexerTracksTPCMVTukey2(7.),
72fVertexerTracksTPCMVSig2Ini(1e3),
73fVertexerTracksTPCMVMaxSigma2(5.0),
74fVertexerTracksTPCMVMinSig2Red(0.05),
75fVertexerTracksTPCMVMinDst(10e-4),
76fVertexerTracksTPCMVScanStep(2.),
77fVertexerTracksTPCMVMaxWghNtr(10),
78fVertexerTracksTPCMVFinalWBinary(1),
79fVertexerTracksTPCMVBCSpacing(50),
80//
61a14552 81fVertexerV0NCuts(7),
82fVertexerV0Chi2max(33.),
83fVertexerV0DNmin(0.05),
84fVertexerV0DPmin(0.05),
85fVertexerV0DCAmax(1.5),
86fVertexerV0CPAmin(0.9),
87fVertexerV0Rmin(0.2),
88fVertexerV0Rmax(200.),
89fVertexerCascadeNCuts(8),
90fVertexerCascadeChi2max(33.),
91fVertexerCascadeDV0min(0.01),
92fVertexerCascadeMassWin(0.008),
93fVertexerCascadeDBachMin(0.01),
94fVertexerCascadeDCAmax(2.0),
95fVertexerCascadeCPAmin(0.98),
96fVertexerCascadeRmin(0.2),
97fVertexerCascadeRmax(100.)
a00021a7 98{
99 //
100 // constructor
101 //
102 SetName("GRP");
103 SetTitle("GRP");
104}
105
106//_____________________________________________________________________________
107AliGRPRecoParam::~AliGRPRecoParam()
108{
109 //
110 // destructor
111 //
112}
113
114AliGRPRecoParam::AliGRPRecoParam(const AliGRPRecoParam& par) :
115 AliDetectorRecoParam(par),
71f6cda4 116 fMostProbablePt(par.fMostProbablePt),
f2a195c1 117 fVertexerTracksConstraintITS(par.fVertexerTracksConstraintITS),
118 fVertexerTracksConstraintTPC(par.fVertexerTracksConstraintTPC),
a00021a7 119 fVertexerTracksNCuts(par.fVertexerTracksNCuts),
120 fVertexerTracksITSdcacut(par.fVertexerTracksITSdcacut),
121 fVertexerTracksITSdcacutIter0(par.fVertexerTracksITSdcacutIter0),
122 fVertexerTracksITSmaxd0z0(par.fVertexerTracksITSmaxd0z0),
123 fVertexerTracksITSminCls(par.fVertexerTracksITSminCls),
124 fVertexerTracksITSmintrks(par.fVertexerTracksITSmintrks),
125 fVertexerTracksITSnsigma(par.fVertexerTracksITSnsigma),
126 fVertexerTracksITSnindetfitter(par.fVertexerTracksITSnindetfitter),
127 fVertexerTracksITSmaxtgl(par.fVertexerTracksITSmaxtgl),
128 fVertexerTracksITSfidR(par.fVertexerTracksITSfidR),
129 fVertexerTracksITSfidZ(par.fVertexerTracksITSfidZ),
8c75f668 130 fVertexerTracksITSalgo(par.fVertexerTracksITSalgo),
131 fVertexerTracksITSalgoIter0(par.fVertexerTracksITSalgoIter0),
3f2db92f 132 //
133 fVertexerTracksITSMVTukey2(par.fVertexerTracksITSMVTukey2),
134 fVertexerTracksITSMVSig2Ini(par.fVertexerTracksITSMVSig2Ini),
135 fVertexerTracksITSMVMaxSigma2(par.fVertexerTracksITSMVMaxSigma2),
136 fVertexerTracksITSMVMinSig2Red(par.fVertexerTracksITSMVMinSig2Red),
137 fVertexerTracksITSMVMinDst(par.fVertexerTracksITSMVMinDst),
138 fVertexerTracksITSMVScanStep(par.fVertexerTracksITSMVScanStep),
139 fVertexerTracksITSMVMaxWghNtr(par.fVertexerTracksITSMVMaxWghNtr),
140 fVertexerTracksITSMVFinalWBinary(par.fVertexerTracksITSMVFinalWBinary),
141 fVertexerTracksITSMVBCSpacing(par.fVertexerTracksITSMVBCSpacing),
142 //
a00021a7 143 fVertexerTracksTPCdcacut(par.fVertexerTracksTPCdcacut),
144 fVertexerTracksTPCdcacutIter0(par.fVertexerTracksTPCdcacutIter0),
145 fVertexerTracksTPCmaxd0z0(par.fVertexerTracksTPCmaxd0z0),
146 fVertexerTracksTPCminCls(par.fVertexerTracksTPCminCls),
147 fVertexerTracksTPCmintrks(par.fVertexerTracksTPCmintrks),
148 fVertexerTracksTPCnsigma(par.fVertexerTracksTPCnsigma),
149 fVertexerTracksTPCnindetfitter(par.fVertexerTracksTPCnindetfitter),
150 fVertexerTracksTPCmaxtgl(par.fVertexerTracksTPCmaxtgl),
151 fVertexerTracksTPCfidR(par.fVertexerTracksTPCfidR),
8c75f668 152 fVertexerTracksTPCfidZ(par.fVertexerTracksTPCfidZ),
153 fVertexerTracksTPCalgo(par.fVertexerTracksTPCalgo),
61a14552 154 fVertexerTracksTPCalgoIter0(par.fVertexerTracksTPCalgoIter0),
3f2db92f 155 //
156 fVertexerTracksTPCMVTukey2(par.fVertexerTracksTPCMVTukey2),
157 fVertexerTracksTPCMVSig2Ini(par.fVertexerTracksTPCMVSig2Ini),
158 fVertexerTracksTPCMVMaxSigma2(par.fVertexerTracksTPCMVMaxSigma2),
159 fVertexerTracksTPCMVMinSig2Red(par.fVertexerTracksTPCMVMinSig2Red),
160 fVertexerTracksTPCMVMinDst(par.fVertexerTracksTPCMVMinDst),
161 fVertexerTracksTPCMVScanStep(par.fVertexerTracksTPCMVScanStep),
162 fVertexerTracksTPCMVMaxWghNtr(par.fVertexerTracksTPCMVMaxWghNtr),
163 fVertexerTracksTPCMVFinalWBinary(par.fVertexerTracksTPCMVFinalWBinary),
164 fVertexerTracksTPCMVBCSpacing(par.fVertexerTracksTPCMVBCSpacing),
165 //
61a14552 166 fVertexerV0NCuts(par.fVertexerV0NCuts),
167 fVertexerV0Chi2max(par.fVertexerV0Chi2max),
168 fVertexerV0DNmin(par.fVertexerV0DNmin),
169 fVertexerV0DPmin(par.fVertexerV0DPmin),
170 fVertexerV0DCAmax(par.fVertexerV0DCAmax),
171 fVertexerV0CPAmin(par.fVertexerV0CPAmin),
172 fVertexerV0Rmin(par.fVertexerV0Rmin),
173 fVertexerV0Rmax(par.fVertexerV0Rmax),
174 fVertexerCascadeNCuts(par.fVertexerCascadeNCuts),
175 fVertexerCascadeChi2max(par.fVertexerCascadeChi2max),
176 fVertexerCascadeDV0min(par.fVertexerCascadeDV0min),
177 fVertexerCascadeMassWin(par.fVertexerCascadeMassWin),
178 fVertexerCascadeDBachMin(par.fVertexerCascadeDBachMin),
179 fVertexerCascadeDCAmax(par.fVertexerCascadeDCAmax),
180 fVertexerCascadeCPAmin(par.fVertexerCascadeCPAmin),
181 fVertexerCascadeRmin(par.fVertexerCascadeRmin),
182 fVertexerCascadeRmax(par.fVertexerCascadeRmax)
a00021a7 183{
184 // copy constructor
185}
186
187//_____________________________________________________________________________
188AliGRPRecoParam& AliGRPRecoParam::operator = (const AliGRPRecoParam& par)
189{
190 // assignment operator
191
192 if(&par == this) return *this;
193
194 this->~AliGRPRecoParam();
195 new(this) AliGRPRecoParam(par);
196 return *this;
197}
198
199//_____________________________________________________________________________
200AliGRPRecoParam *AliGRPRecoParam::GetHighFluxParam()
201{
202 //
61a14552 203 // make default reconstruction parameters for high flux env.
a00021a7 204 //
205 AliGRPRecoParam *param = new AliGRPRecoParam();
206
8c75f668 207 // to speed up the vertexing in PbPb
208 param->fVertexerTracksITSalgoIter0 = 1.;
209 param->fVertexerTracksTPCalgoIter0 = 1.;
210
61a14552 211 // tighter selections for V0s
212 param->fVertexerV0Chi2max = 33.;
213 param->fVertexerV0DNmin = 0.1;
214 param->fVertexerV0DPmin = 0.1;
5e1dcac5 215 param->fVertexerV0DCAmax = 1.0;
216 param->fVertexerV0CPAmin = 0.998;
61a14552 217 param->fVertexerV0Rmin = 0.9;
218 param->fVertexerV0Rmax = 100.;
219
220 // tighter selections for Cascades
221 param->fVertexerCascadeChi2max = 33.;
222 param->fVertexerCascadeDV0min = 0.05;
223 param->fVertexerCascadeMassWin = 0.008;
5e1dcac5 224 param->fVertexerCascadeDBachMin = 0.030;
225 param->fVertexerCascadeDCAmax = 0.3;
226 param->fVertexerCascadeCPAmin = 0.999;
61a14552 227 param->fVertexerCascadeRmin = 0.9;
228 param->fVertexerCascadeRmax = 100.;
229
a00021a7 230 return param;
231}
232//_____________________________________________________________________________
233AliGRPRecoParam *AliGRPRecoParam::GetLowFluxParam()
234{
235 //
236 // make default reconstruction parameters for low flux env.
237 //
238 AliGRPRecoParam *param = new AliGRPRecoParam();
a00021a7 239 return param;
240}
241//_____________________________________________________________________________
f2a195c1 242AliGRPRecoParam *AliGRPRecoParam::GetCosmicTestParam()
243{
244 //
245 // make default reconstruction parameters for cosmics env.
246 //
247 AliGRPRecoParam *param = new AliGRPRecoParam();
248
b5f9d03a 249 param->SetVertexerTracksConstraintITS(kFALSE);
250 param->SetVertexerTracksConstraintTPC(kFALSE);
251 param->SetMostProbablePt(3.0);
252
f2a195c1 253 return param;
254}
255//_____________________________________________________________________________
a00021a7 256void AliGRPRecoParam::GetVertexerTracksCuts(Int_t mode,Double_t *cuts) const {
257 //
258 // get cuts for ITS (0) or TPC (1) mode
259 //
260 if(mode==1) {
261 cuts[0] = fVertexerTracksTPCdcacut;
262 cuts[1] = fVertexerTracksTPCdcacutIter0;
263 cuts[2] = fVertexerTracksTPCmaxd0z0;
264 cuts[3] = fVertexerTracksTPCminCls;
265 cuts[4] = fVertexerTracksTPCmintrks;
266 cuts[5] = fVertexerTracksTPCnsigma;
267 cuts[6] = fVertexerTracksTPCnindetfitter;
268 cuts[7] = fVertexerTracksTPCmaxtgl;
269 cuts[8] = fVertexerTracksTPCfidR;
270 cuts[9] = fVertexerTracksTPCfidZ;
8c75f668 271 cuts[10]= fVertexerTracksTPCalgo;
272 cuts[11]= fVertexerTracksTPCalgoIter0;
3f2db92f 273 //
274 cuts[12]= fVertexerTracksTPCMVTukey2;
275 cuts[13]= fVertexerTracksTPCMVSig2Ini;
276 cuts[14]= fVertexerTracksTPCMVMaxSigma2;
277 cuts[15]= fVertexerTracksTPCMVMinSig2Red;
278 cuts[16]= fVertexerTracksTPCMVMinDst;
279 cuts[17]= fVertexerTracksTPCMVScanStep;
280 cuts[18]= fVertexerTracksTPCMVMaxWghNtr;
281 cuts[19]= fVertexerTracksTPCMVFinalWBinary;
282 cuts[20]= fVertexerTracksTPCMVBCSpacing;
a00021a7 283 } else {
284 cuts[0] = fVertexerTracksITSdcacut;
285 cuts[1] = fVertexerTracksITSdcacutIter0;
286 cuts[2] = fVertexerTracksITSmaxd0z0;
287 cuts[3] = fVertexerTracksITSminCls;
288 cuts[4] = fVertexerTracksITSmintrks;
289 cuts[5] = fVertexerTracksITSnsigma;
290 cuts[6] = fVertexerTracksITSnindetfitter;
291 cuts[7] = fVertexerTracksITSmaxtgl;
292 cuts[8] = fVertexerTracksITSfidR;
293 cuts[9] = fVertexerTracksITSfidZ;
8c75f668 294 cuts[10]= fVertexerTracksITSalgo;
295 cuts[11]= fVertexerTracksITSalgoIter0;
3f2db92f 296 //
297 cuts[12]= fVertexerTracksITSMVTukey2;
298 cuts[13]= fVertexerTracksITSMVSig2Ini;
299 cuts[14]= fVertexerTracksITSMVMaxSigma2;
300 cuts[15]= fVertexerTracksITSMVMinSig2Red;
301 cuts[16]= fVertexerTracksITSMVMinDst;
302 cuts[17]= fVertexerTracksITSMVScanStep;
303 cuts[18]= fVertexerTracksITSMVMaxWghNtr;
304 cuts[19]= fVertexerTracksITSMVFinalWBinary;
305 cuts[20]= fVertexerTracksITSMVBCSpacing;
a00021a7 306 }
307
308 return;
309}
310//_____________________________________________________________________________
3f2db92f 311void AliGRPRecoParam::SetVertexerTracksCuts(Int_t mode,Int_t ncuts,Double_t cuts[21]) {
a00021a7 312 //
313 // set cuts for ITS (0) or TPC (1) mode
314 //
315 if(ncuts!=fVertexerTracksNCuts) {
316 printf("AliGRPRecoParam: Number of AliVertexerTracks cuts is %d\n",fVertexerTracksNCuts);
317 return;
318 }
319
320 if(mode==1) {
321 fVertexerTracksTPCdcacut = cuts[0];
322 fVertexerTracksTPCdcacutIter0 = cuts[1];
323 fVertexerTracksTPCmaxd0z0 = cuts[2];
324 fVertexerTracksTPCminCls = cuts[3];
325 fVertexerTracksTPCmintrks = cuts[4];
326 fVertexerTracksTPCnsigma = cuts[5];
327 fVertexerTracksTPCnindetfitter = cuts[6];
328 fVertexerTracksTPCmaxtgl = cuts[7];
329 fVertexerTracksTPCfidR = cuts[8];
330 fVertexerTracksTPCfidZ = cuts[9];
8c75f668 331 fVertexerTracksTPCalgo = cuts[10];
332 fVertexerTracksTPCalgoIter0 = cuts[11];
3f2db92f 333 //
334 fVertexerTracksTPCMVTukey2 = cuts[12];
335 fVertexerTracksTPCMVSig2Ini = cuts[13];
336 fVertexerTracksTPCMVMaxSigma2 = cuts[14];
337 fVertexerTracksTPCMVMinSig2Red = cuts[15];
338 fVertexerTracksTPCMVMinDst = cuts[16];
339 fVertexerTracksTPCMVScanStep = cuts[17];
340 fVertexerTracksTPCMVMaxWghNtr = cuts[18];
341 fVertexerTracksTPCMVFinalWBinary = cuts[19];
342 fVertexerTracksTPCMVBCSpacing = cuts[20];
a00021a7 343 } else {
344 fVertexerTracksITSdcacut = cuts[0];
345 fVertexerTracksITSdcacutIter0 = cuts[1];
346 fVertexerTracksITSmaxd0z0 = cuts[2];
347 fVertexerTracksITSminCls = cuts[3];
348 fVertexerTracksITSmintrks = cuts[4];
349 fVertexerTracksITSnsigma = cuts[5];
350 fVertexerTracksITSnindetfitter = cuts[6];
351 fVertexerTracksITSmaxtgl = cuts[7];
352 fVertexerTracksITSfidR = cuts[8];
353 fVertexerTracksITSfidZ = cuts[9];
8c75f668 354 fVertexerTracksITSalgo = cuts[10];
355 fVertexerTracksITSalgoIter0 = cuts[11];
3f2db92f 356 //
357 fVertexerTracksITSMVTukey2 = cuts[12];
358 fVertexerTracksITSMVSig2Ini = cuts[13];
359 fVertexerTracksITSMVMaxSigma2 = cuts[14];
360 fVertexerTracksITSMVMinSig2Red = cuts[15];
361 fVertexerTracksITSMVMinDst = cuts[16];
362 fVertexerTracksITSMVScanStep = cuts[17];
363 fVertexerTracksITSMVMaxWghNtr = cuts[18];
364 fVertexerTracksITSMVFinalWBinary = cuts[19];
365 fVertexerTracksITSMVBCSpacing = cuts[20];
a00021a7 366 }
367
368 return;
369}
61a14552 370//_____________________________________________________________________________
371void AliGRPRecoParam::GetVertexerV0Cuts(Double_t *cuts) const {
372 //
373 // get cuts for AliV0vertexer
374 //
375 cuts[0] = fVertexerV0Chi2max;
376 cuts[1] = fVertexerV0DNmin;
377 cuts[2] = fVertexerV0DPmin;
378 cuts[3] = fVertexerV0DCAmax;
379 cuts[4] = fVertexerV0CPAmin;
380 cuts[5] = fVertexerV0Rmin;
381 cuts[6] = fVertexerV0Rmax;
382 return;
383}
384//_____________________________________________________________________________
385void AliGRPRecoParam::SetVertexerV0Cuts(Int_t ncuts,Double_t cuts[7]) {
386 //
387 // set cuts for AliV0vertexer
388 //
389 if(ncuts!=fVertexerV0NCuts) {
390 printf("AliGRPRecoParam: Number of AliV0vertexer cuts is %d\n",fVertexerV0NCuts);
391 return;
392 }
393 fVertexerV0Chi2max = cuts[0];
394 fVertexerV0DNmin = cuts[1];
395 fVertexerV0DPmin = cuts[2];
396 fVertexerV0DCAmax = cuts[3];
397 fVertexerV0CPAmin = cuts[4];
398 fVertexerV0Rmin = cuts[5];
399 fVertexerV0Rmax = cuts[6];
400 return;
401}
402//_____________________________________________________________________________
403void AliGRPRecoParam::GetVertexerCascadeCuts(Double_t *cuts) const {
404 //
405 // get cuts for AliCascadevertexer
406 //
407 cuts[0] = fVertexerCascadeChi2max;
408 cuts[1] = fVertexerCascadeDV0min;
409 cuts[2] = fVertexerCascadeMassWin;
410 cuts[3] = fVertexerCascadeDBachMin;
411 cuts[4] = fVertexerCascadeDCAmax;
412 cuts[5] = fVertexerCascadeCPAmin;
413 cuts[6] = fVertexerCascadeRmin;
414 cuts[7] = fVertexerCascadeRmax;
415 return;
416}
417//_____________________________________________________________________________
418void AliGRPRecoParam::SetVertexerCascadeCuts(Int_t ncuts,Double_t cuts[8]) {
419 //
420 // set cuts for AliCascadeVertexer
421 //
422 if(ncuts!=fVertexerCascadeNCuts) {
423 printf("AliGRPRecoParam: Number of AliCascadeVertexer cuts is %d\n",fVertexerCascadeNCuts);
424 return;
425 }
426 fVertexerCascadeChi2max = cuts[0];
427 fVertexerCascadeDV0min = cuts[1];
428 fVertexerCascadeMassWin = cuts[2];
429 fVertexerCascadeDBachMin = cuts[3];
430 fVertexerCascadeDCAmax = cuts[4];
431 fVertexerCascadeCPAmin = cuts[5];
432 fVertexerCascadeRmin = cuts[6];
433 fVertexerCascadeRmax = cuts[7];
434 return;
435}