1 /**************************************************************************
2 * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
16 #include "AliGRPRecoParam.h"
18 ///////////////////////////////////////////////////////////////////////////////
20 // Class with GRP reconstruction parameters //
21 // Origin: andrea.dainese@lnl.infn.it //
23 ///////////////////////////////////////////////////////////////////////////////
27 ClassImp(AliGRPRecoParam)
29 //_____________________________________________________________________________
30 AliGRPRecoParam::AliGRPRecoParam() : AliDetectorRecoParam(),
31 fMostProbablePt(0.350),
32 fVertexerTracksConstraintITS(kTRUE),
33 fVertexerTracksConstraintTPC(kTRUE),
34 fVertexerTracksNCuts(12),
35 fVertexerTracksITSdcacut(0.1),
36 fVertexerTracksITSdcacutIter0(0.1),
37 fVertexerTracksITSmaxd0z0(0.5),
38 fVertexerTracksITSminCls(5),
39 fVertexerTracksITSmintrks(1),
40 fVertexerTracksITSnsigma(3.),
41 fVertexerTracksITSnindetfitter(100.),
42 fVertexerTracksITSmaxtgl(1000.),
43 fVertexerTracksITSfidR(3.),
44 fVertexerTracksITSfidZ(30.),
45 fVertexerTracksITSalgo(1.),
46 fVertexerTracksITSalgoIter0(4.),
47 fVertexerTracksTPCdcacut(0.1),
48 fVertexerTracksTPCdcacutIter0(1.0),
49 fVertexerTracksTPCmaxd0z0(5.),
50 fVertexerTracksTPCminCls(10),
51 fVertexerTracksTPCmintrks(1),
52 fVertexerTracksTPCnsigma(3.),
53 fVertexerTracksTPCnindetfitter(0.1),
54 fVertexerTracksTPCmaxtgl(1.5),
55 fVertexerTracksTPCfidR(3.),
56 fVertexerTracksTPCfidZ(30.),
57 fVertexerTracksTPCalgo(1.),
58 fVertexerTracksTPCalgoIter0(4.),
60 fVertexerV0Chi2max(33.),
61 fVertexerV0DNmin(0.05),
62 fVertexerV0DPmin(0.05),
63 fVertexerV0DCAmax(1.5),
64 fVertexerV0CPAmin(0.9),
66 fVertexerV0Rmax(200.),
67 fVertexerCascadeNCuts(8),
68 fVertexerCascadeChi2max(33.),
69 fVertexerCascadeDV0min(0.01),
70 fVertexerCascadeMassWin(0.008),
71 fVertexerCascadeDBachMin(0.01),
72 fVertexerCascadeDCAmax(2.0),
73 fVertexerCascadeCPAmin(0.98),
74 fVertexerCascadeRmin(0.2),
75 fVertexerCascadeRmax(100.)
84 //_____________________________________________________________________________
85 AliGRPRecoParam::~AliGRPRecoParam()
92 AliGRPRecoParam::AliGRPRecoParam(const AliGRPRecoParam& par) :
93 AliDetectorRecoParam(par),
94 fMostProbablePt(par.fMostProbablePt),
95 fVertexerTracksConstraintITS(par.fVertexerTracksConstraintITS),
96 fVertexerTracksConstraintTPC(par.fVertexerTracksConstraintTPC),
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),
108 fVertexerTracksITSalgo(par.fVertexerTracksITSalgo),
109 fVertexerTracksITSalgoIter0(par.fVertexerTracksITSalgoIter0),
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),
119 fVertexerTracksTPCfidZ(par.fVertexerTracksTPCfidZ),
120 fVertexerTracksTPCalgo(par.fVertexerTracksTPCalgo),
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)
143 //_____________________________________________________________________________
144 AliGRPRecoParam& AliGRPRecoParam::operator = (const AliGRPRecoParam& par)
146 // assignment operator
148 if(&par == this) return *this;
150 this->~AliGRPRecoParam();
151 new(this) AliGRPRecoParam(par);
155 //_____________________________________________________________________________
156 AliGRPRecoParam *AliGRPRecoParam::GetHighFluxParam()
159 // make default reconstruction parameters for high flux env.
161 AliGRPRecoParam *param = new AliGRPRecoParam();
163 // to speed up the vertexing in PbPb
164 param->fVertexerTracksITSalgoIter0 = 1.;
165 param->fVertexerTracksTPCalgoIter0 = 1.;
167 // tighter selections for V0s
168 param->fVertexerV0Chi2max = 33.;
169 param->fVertexerV0DNmin = 0.1;
170 param->fVertexerV0DPmin = 0.1;
171 param->fVertexerV0DCAmax = 1.0;
172 param->fVertexerV0CPAmin = 0.998;
173 param->fVertexerV0Rmin = 0.9;
174 param->fVertexerV0Rmax = 100.;
176 // tighter selections for Cascades
177 param->fVertexerCascadeChi2max = 33.;
178 param->fVertexerCascadeDV0min = 0.05;
179 param->fVertexerCascadeMassWin = 0.008;
180 param->fVertexerCascadeDBachMin = 0.030;
181 param->fVertexerCascadeDCAmax = 0.3;
182 param->fVertexerCascadeCPAmin = 0.999;
183 param->fVertexerCascadeRmin = 0.9;
184 param->fVertexerCascadeRmax = 100.;
188 //_____________________________________________________________________________
189 AliGRPRecoParam *AliGRPRecoParam::GetLowFluxParam()
192 // make default reconstruction parameters for low flux env.
194 AliGRPRecoParam *param = new AliGRPRecoParam();
198 //_____________________________________________________________________________
199 AliGRPRecoParam *AliGRPRecoParam::GetCosmicTestParam()
202 // make default reconstruction parameters for cosmics env.
204 AliGRPRecoParam *param = new AliGRPRecoParam();
206 param->SetVertexerTracksConstraintITS(kFALSE);
207 param->SetVertexerTracksConstraintTPC(kFALSE);
208 param->SetMostProbablePt(3.0);
212 //_____________________________________________________________________________
213 void AliGRPRecoParam::GetVertexerTracksCuts(Int_t mode,Double_t *cuts) const {
215 // get cuts for ITS (0) or TPC (1) mode
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;
228 cuts[10]= fVertexerTracksTPCalgo;
229 cuts[11]= fVertexerTracksTPCalgoIter0;
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;
241 cuts[10]= fVertexerTracksITSalgo;
242 cuts[11]= fVertexerTracksITSalgoIter0;
247 //_____________________________________________________________________________
248 void AliGRPRecoParam::SetVertexerTracksCuts(Int_t mode,Int_t ncuts,Double_t cuts[12]) {
250 // set cuts for ITS (0) or TPC (1) mode
252 if(ncuts!=fVertexerTracksNCuts) {
253 printf("AliGRPRecoParam: Number of AliVertexerTracks cuts is %d\n",fVertexerTracksNCuts);
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];
268 fVertexerTracksTPCalgo = cuts[10];
269 fVertexerTracksTPCalgoIter0 = cuts[11];
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];
281 fVertexerTracksITSalgo = cuts[10];
282 fVertexerTracksITSalgoIter0 = cuts[11];
287 //_____________________________________________________________________________
288 void AliGRPRecoParam::GetVertexerV0Cuts(Double_t *cuts) const {
290 // get cuts for AliV0vertexer
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;
301 //_____________________________________________________________________________
302 void AliGRPRecoParam::SetVertexerV0Cuts(Int_t ncuts,Double_t cuts[7]) {
304 // set cuts for AliV0vertexer
306 if(ncuts!=fVertexerV0NCuts) {
307 printf("AliGRPRecoParam: Number of AliV0vertexer cuts is %d\n",fVertexerV0NCuts);
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];
319 //_____________________________________________________________________________
320 void AliGRPRecoParam::GetVertexerCascadeCuts(Double_t *cuts) const {
322 // get cuts for AliCascadevertexer
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;
334 //_____________________________________________________________________________
335 void AliGRPRecoParam::SetVertexerCascadeCuts(Int_t ncuts,Double_t cuts[8]) {
337 // set cuts for AliCascadeVertexer
339 if(ncuts!=fVertexerCascadeNCuts) {
340 printf("AliGRPRecoParam: Number of AliCascadeVertexer cuts is %d\n",fVertexerCascadeNCuts);
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];