]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliGRPRecoParam.cxx
Coverity 15850
[u/mrichter/AliRoot.git] / 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),
d4bb174f 34fVertexerTracksNCuts(12),
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.),
a00021a7 47fVertexerTracksTPCdcacut(0.1),
48fVertexerTracksTPCdcacutIter0(1.0),
49fVertexerTracksTPCmaxd0z0(5.),
50fVertexerTracksTPCminCls(10),
51fVertexerTracksTPCmintrks(1),
52fVertexerTracksTPCnsigma(3.),
53fVertexerTracksTPCnindetfitter(0.1),
54fVertexerTracksTPCmaxtgl(1.5),
55fVertexerTracksTPCfidR(3.),
8c75f668 56fVertexerTracksTPCfidZ(30.),
57fVertexerTracksTPCalgo(1.),
61a14552 58fVertexerTracksTPCalgoIter0(4.),
59fVertexerV0NCuts(7),
60fVertexerV0Chi2max(33.),
61fVertexerV0DNmin(0.05),
62fVertexerV0DPmin(0.05),
63fVertexerV0DCAmax(1.5),
64fVertexerV0CPAmin(0.9),
65fVertexerV0Rmin(0.2),
66fVertexerV0Rmax(200.),
67fVertexerCascadeNCuts(8),
68fVertexerCascadeChi2max(33.),
69fVertexerCascadeDV0min(0.01),
70fVertexerCascadeMassWin(0.008),
71fVertexerCascadeDBachMin(0.01),
72fVertexerCascadeDCAmax(2.0),
73fVertexerCascadeCPAmin(0.98),
74fVertexerCascadeRmin(0.2),
75fVertexerCascadeRmax(100.)
a00021a7 76{
77 //
78 // constructor
79 //
80 SetName("GRP");
81 SetTitle("GRP");
82}
83
84//_____________________________________________________________________________
85AliGRPRecoParam::~AliGRPRecoParam()
86{
87 //
88 // destructor
89 //
90}
91
92AliGRPRecoParam::AliGRPRecoParam(const AliGRPRecoParam& par) :
93 AliDetectorRecoParam(par),
71f6cda4 94 fMostProbablePt(par.fMostProbablePt),
f2a195c1 95 fVertexerTracksConstraintITS(par.fVertexerTracksConstraintITS),
96 fVertexerTracksConstraintTPC(par.fVertexerTracksConstraintTPC),
a00021a7 97 fVertexerTracksNCuts(par.fVertexerTracksNCuts),
98 fVertexerTracksITSdcacut(par.fVertexerTracksITSdcacut),
99 fVertexerTracksITSdcacutIter0(par.fVertexerTracksITSdcacutIter0),
100 fVertexerTracksITSmaxd0z0(par.fVertexerTracksITSmaxd0z0),
101 fVertexerTracksITSminCls(par.fVertexerTracksITSminCls),
102 fVertexerTracksITSmintrks(par.fVertexerTracksITSmintrks),
103 fVertexerTracksITSnsigma(par.fVertexerTracksITSnsigma),
104 fVertexerTracksITSnindetfitter(par.fVertexerTracksITSnindetfitter),
105 fVertexerTracksITSmaxtgl(par.fVertexerTracksITSmaxtgl),
106 fVertexerTracksITSfidR(par.fVertexerTracksITSfidR),
107 fVertexerTracksITSfidZ(par.fVertexerTracksITSfidZ),
8c75f668 108 fVertexerTracksITSalgo(par.fVertexerTracksITSalgo),
109 fVertexerTracksITSalgoIter0(par.fVertexerTracksITSalgoIter0),
a00021a7 110 fVertexerTracksTPCdcacut(par.fVertexerTracksTPCdcacut),
111 fVertexerTracksTPCdcacutIter0(par.fVertexerTracksTPCdcacutIter0),
112 fVertexerTracksTPCmaxd0z0(par.fVertexerTracksTPCmaxd0z0),
113 fVertexerTracksTPCminCls(par.fVertexerTracksTPCminCls),
114 fVertexerTracksTPCmintrks(par.fVertexerTracksTPCmintrks),
115 fVertexerTracksTPCnsigma(par.fVertexerTracksTPCnsigma),
116 fVertexerTracksTPCnindetfitter(par.fVertexerTracksTPCnindetfitter),
117 fVertexerTracksTPCmaxtgl(par.fVertexerTracksTPCmaxtgl),
118 fVertexerTracksTPCfidR(par.fVertexerTracksTPCfidR),
8c75f668 119 fVertexerTracksTPCfidZ(par.fVertexerTracksTPCfidZ),
120 fVertexerTracksTPCalgo(par.fVertexerTracksTPCalgo),
61a14552 121 fVertexerTracksTPCalgoIter0(par.fVertexerTracksTPCalgoIter0),
122 fVertexerV0NCuts(par.fVertexerV0NCuts),
123 fVertexerV0Chi2max(par.fVertexerV0Chi2max),
124 fVertexerV0DNmin(par.fVertexerV0DNmin),
125 fVertexerV0DPmin(par.fVertexerV0DPmin),
126 fVertexerV0DCAmax(par.fVertexerV0DCAmax),
127 fVertexerV0CPAmin(par.fVertexerV0CPAmin),
128 fVertexerV0Rmin(par.fVertexerV0Rmin),
129 fVertexerV0Rmax(par.fVertexerV0Rmax),
130 fVertexerCascadeNCuts(par.fVertexerCascadeNCuts),
131 fVertexerCascadeChi2max(par.fVertexerCascadeChi2max),
132 fVertexerCascadeDV0min(par.fVertexerCascadeDV0min),
133 fVertexerCascadeMassWin(par.fVertexerCascadeMassWin),
134 fVertexerCascadeDBachMin(par.fVertexerCascadeDBachMin),
135 fVertexerCascadeDCAmax(par.fVertexerCascadeDCAmax),
136 fVertexerCascadeCPAmin(par.fVertexerCascadeCPAmin),
137 fVertexerCascadeRmin(par.fVertexerCascadeRmin),
138 fVertexerCascadeRmax(par.fVertexerCascadeRmax)
a00021a7 139{
140 // copy constructor
141}
142
143//_____________________________________________________________________________
144AliGRPRecoParam& AliGRPRecoParam::operator = (const AliGRPRecoParam& par)
145{
146 // assignment operator
147
148 if(&par == this) return *this;
149
150 this->~AliGRPRecoParam();
151 new(this) AliGRPRecoParam(par);
152 return *this;
153}
154
155//_____________________________________________________________________________
156AliGRPRecoParam *AliGRPRecoParam::GetHighFluxParam()
157{
158 //
61a14552 159 // make default reconstruction parameters for high flux env.
a00021a7 160 //
161 AliGRPRecoParam *param = new AliGRPRecoParam();
162
8c75f668 163 // to speed up the vertexing in PbPb
164 param->fVertexerTracksITSalgoIter0 = 1.;
165 param->fVertexerTracksTPCalgoIter0 = 1.;
166
61a14552 167 // tighter selections for V0s
168 param->fVertexerV0Chi2max = 33.;
169 param->fVertexerV0DNmin = 0.1;
170 param->fVertexerV0DPmin = 0.1;
5e1dcac5 171 param->fVertexerV0DCAmax = 1.0;
172 param->fVertexerV0CPAmin = 0.998;
61a14552 173 param->fVertexerV0Rmin = 0.9;
174 param->fVertexerV0Rmax = 100.;
175
176 // tighter selections for Cascades
177 param->fVertexerCascadeChi2max = 33.;
178 param->fVertexerCascadeDV0min = 0.05;
179 param->fVertexerCascadeMassWin = 0.008;
5e1dcac5 180 param->fVertexerCascadeDBachMin = 0.030;
181 param->fVertexerCascadeDCAmax = 0.3;
182 param->fVertexerCascadeCPAmin = 0.999;
61a14552 183 param->fVertexerCascadeRmin = 0.9;
184 param->fVertexerCascadeRmax = 100.;
185
a00021a7 186 return param;
187}
188//_____________________________________________________________________________
189AliGRPRecoParam *AliGRPRecoParam::GetLowFluxParam()
190{
191 //
192 // make default reconstruction parameters for low flux env.
193 //
194 AliGRPRecoParam *param = new AliGRPRecoParam();
195
196 return param;
197}
198//_____________________________________________________________________________
f2a195c1 199AliGRPRecoParam *AliGRPRecoParam::GetCosmicTestParam()
200{
201 //
202 // make default reconstruction parameters for cosmics env.
203 //
204 AliGRPRecoParam *param = new AliGRPRecoParam();
205
b5f9d03a 206 param->SetVertexerTracksConstraintITS(kFALSE);
207 param->SetVertexerTracksConstraintTPC(kFALSE);
208 param->SetMostProbablePt(3.0);
209
f2a195c1 210 return param;
211}
212//_____________________________________________________________________________
a00021a7 213void AliGRPRecoParam::GetVertexerTracksCuts(Int_t mode,Double_t *cuts) const {
214 //
215 // get cuts for ITS (0) or TPC (1) mode
216 //
217 if(mode==1) {
218 cuts[0] = fVertexerTracksTPCdcacut;
219 cuts[1] = fVertexerTracksTPCdcacutIter0;
220 cuts[2] = fVertexerTracksTPCmaxd0z0;
221 cuts[3] = fVertexerTracksTPCminCls;
222 cuts[4] = fVertexerTracksTPCmintrks;
223 cuts[5] = fVertexerTracksTPCnsigma;
224 cuts[6] = fVertexerTracksTPCnindetfitter;
225 cuts[7] = fVertexerTracksTPCmaxtgl;
226 cuts[8] = fVertexerTracksTPCfidR;
227 cuts[9] = fVertexerTracksTPCfidZ;
8c75f668 228 cuts[10]= fVertexerTracksTPCalgo;
229 cuts[11]= fVertexerTracksTPCalgoIter0;
a00021a7 230 } else {
231 cuts[0] = fVertexerTracksITSdcacut;
232 cuts[1] = fVertexerTracksITSdcacutIter0;
233 cuts[2] = fVertexerTracksITSmaxd0z0;
234 cuts[3] = fVertexerTracksITSminCls;
235 cuts[4] = fVertexerTracksITSmintrks;
236 cuts[5] = fVertexerTracksITSnsigma;
237 cuts[6] = fVertexerTracksITSnindetfitter;
238 cuts[7] = fVertexerTracksITSmaxtgl;
239 cuts[8] = fVertexerTracksITSfidR;
240 cuts[9] = fVertexerTracksITSfidZ;
8c75f668 241 cuts[10]= fVertexerTracksITSalgo;
242 cuts[11]= fVertexerTracksITSalgoIter0;
a00021a7 243 }
244
245 return;
246}
247//_____________________________________________________________________________
8c75f668 248void AliGRPRecoParam::SetVertexerTracksCuts(Int_t mode,Int_t ncuts,Double_t cuts[12]) {
a00021a7 249 //
250 // set cuts for ITS (0) or TPC (1) mode
251 //
252 if(ncuts!=fVertexerTracksNCuts) {
253 printf("AliGRPRecoParam: Number of AliVertexerTracks cuts is %d\n",fVertexerTracksNCuts);
254 return;
255 }
256
257 if(mode==1) {
258 fVertexerTracksTPCdcacut = cuts[0];
259 fVertexerTracksTPCdcacutIter0 = cuts[1];
260 fVertexerTracksTPCmaxd0z0 = cuts[2];
261 fVertexerTracksTPCminCls = cuts[3];
262 fVertexerTracksTPCmintrks = cuts[4];
263 fVertexerTracksTPCnsigma = cuts[5];
264 fVertexerTracksTPCnindetfitter = cuts[6];
265 fVertexerTracksTPCmaxtgl = cuts[7];
266 fVertexerTracksTPCfidR = cuts[8];
267 fVertexerTracksTPCfidZ = cuts[9];
8c75f668 268 fVertexerTracksTPCalgo = cuts[10];
269 fVertexerTracksTPCalgoIter0 = cuts[11];
a00021a7 270 } else {
271 fVertexerTracksITSdcacut = cuts[0];
272 fVertexerTracksITSdcacutIter0 = cuts[1];
273 fVertexerTracksITSmaxd0z0 = cuts[2];
274 fVertexerTracksITSminCls = cuts[3];
275 fVertexerTracksITSmintrks = cuts[4];
276 fVertexerTracksITSnsigma = cuts[5];
277 fVertexerTracksITSnindetfitter = cuts[6];
278 fVertexerTracksITSmaxtgl = cuts[7];
279 fVertexerTracksITSfidR = cuts[8];
280 fVertexerTracksITSfidZ = cuts[9];
8c75f668 281 fVertexerTracksITSalgo = cuts[10];
282 fVertexerTracksITSalgoIter0 = cuts[11];
a00021a7 283 }
284
285 return;
286}
61a14552 287//_____________________________________________________________________________
288void AliGRPRecoParam::GetVertexerV0Cuts(Double_t *cuts) const {
289 //
290 // get cuts for AliV0vertexer
291 //
292 cuts[0] = fVertexerV0Chi2max;
293 cuts[1] = fVertexerV0DNmin;
294 cuts[2] = fVertexerV0DPmin;
295 cuts[3] = fVertexerV0DCAmax;
296 cuts[4] = fVertexerV0CPAmin;
297 cuts[5] = fVertexerV0Rmin;
298 cuts[6] = fVertexerV0Rmax;
299 return;
300}
301//_____________________________________________________________________________
302void AliGRPRecoParam::SetVertexerV0Cuts(Int_t ncuts,Double_t cuts[7]) {
303 //
304 // set cuts for AliV0vertexer
305 //
306 if(ncuts!=fVertexerV0NCuts) {
307 printf("AliGRPRecoParam: Number of AliV0vertexer cuts is %d\n",fVertexerV0NCuts);
308 return;
309 }
310 fVertexerV0Chi2max = cuts[0];
311 fVertexerV0DNmin = cuts[1];
312 fVertexerV0DPmin = cuts[2];
313 fVertexerV0DCAmax = cuts[3];
314 fVertexerV0CPAmin = cuts[4];
315 fVertexerV0Rmin = cuts[5];
316 fVertexerV0Rmax = cuts[6];
317 return;
318}
319//_____________________________________________________________________________
320void AliGRPRecoParam::GetVertexerCascadeCuts(Double_t *cuts) const {
321 //
322 // get cuts for AliCascadevertexer
323 //
324 cuts[0] = fVertexerCascadeChi2max;
325 cuts[1] = fVertexerCascadeDV0min;
326 cuts[2] = fVertexerCascadeMassWin;
327 cuts[3] = fVertexerCascadeDBachMin;
328 cuts[4] = fVertexerCascadeDCAmax;
329 cuts[5] = fVertexerCascadeCPAmin;
330 cuts[6] = fVertexerCascadeRmin;
331 cuts[7] = fVertexerCascadeRmax;
332 return;
333}
334//_____________________________________________________________________________
335void AliGRPRecoParam::SetVertexerCascadeCuts(Int_t ncuts,Double_t cuts[8]) {
336 //
337 // set cuts for AliCascadeVertexer
338 //
339 if(ncuts!=fVertexerCascadeNCuts) {
340 printf("AliGRPRecoParam: Number of AliCascadeVertexer cuts is %d\n",fVertexerCascadeNCuts);
341 return;
342 }
343 fVertexerCascadeChi2max = cuts[0];
344 fVertexerCascadeDV0min = cuts[1];
345 fVertexerCascadeMassWin = cuts[2];
346 fVertexerCascadeDBachMin = cuts[3];
347 fVertexerCascadeDCAmax = cuts[4];
348 fVertexerCascadeCPAmin = cuts[5];
349 fVertexerCascadeRmin = cuts[6];
350 fVertexerCascadeRmax = cuts[7];
351 return;
352}