new functionality and new class added
[u/mrichter/AliRoot.git] / PWG0 / dNdPt / macros / CreatedNdPtTrackCuts.C
1 /* $Id: CreateCuts.C,v 1.5 2008/01/11 08:28:52 jgrosseo Exp $ */
2
3 // this macro creates the track and event cuts used in this analysis
4
5 AliESDtrackCuts* CreatedNdPtTrackCuts(Int_t cutMode=1, Bool_t fieldOn = kTRUE, Bool_t hists = kTRUE)
6 {
7   AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts");
8
9   if (hists)
10     esdTrackCuts->DefineHistograms(1);
11
12   Double_t cov1, cov2, cov3, cov4, cov5;
13   Double_t nSigma;
14   Double_t maxDCAtoVertex, maxDCAtoVertexXY, maxDCAtoVertexZ;
15   Double_t minNClustersTPC;
16   Double_t maxChi2PerClusterTPC;
17   Double_t minPt, maxPt;
18
19   // default cuts for ITS+TPC
20   if (cutMode == 0) 
21   {
22     cov1 = 2;
23     cov2 = 2;
24     cov3 = 0.5;
25     cov4 = 0.5;
26     cov5 = 2;
27     nSigma = 3;
28     minNClustersTPC = 50;
29     maxChi2PerClusterTPC = 3.5;
30
31     esdTrackCuts->SetMaxCovDiagonalElements(cov1, cov2, cov3, cov4, cov5);
32     esdTrackCuts->SetMinNsigmaToVertex(nSigma);
33     esdTrackCuts->SetRequireSigmaToVertex(kTRUE);
34     esdTrackCuts->SetRequireTPCRefit(kTRUE);
35     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
36     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
37     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
38
39     TString tag("Global tracking");
40   }
41
42   // TPC-only cuts (vertex n sigma cut)
43   if (cutMode == 1) 
44   {
45     // beta cuts (still under investigation)
46     //cov1 = 4;
47     //cov2 = 4;
48     cov1 = 2;
49     cov2 = 2;
50     cov3 = 0.5;
51     cov4 = 0.5;
52     cov5 = 2;
53     nSigma = 4;
54     minNClustersTPC = 50;
55     maxChi2PerClusterTPC = 3.5;
56
57     esdTrackCuts->SetMaxCovDiagonalElements(cov1, cov2, cov3, cov4, cov5);
58     esdTrackCuts->SetMinNsigmaToVertex(nSigma);
59     esdTrackCuts->SetRequireSigmaToVertex(kTRUE);
60     esdTrackCuts->SetRequireTPCRefit(kFALSE);
61     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
62     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
63     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
64
65     TString tag = "TPC-only tracking";
66   }
67
68   // TPC-only cuts (vertex maxDCAtoVertex cut)
69   if (cutMode == 2) 
70   {
71     // beta cuts (still under investigation)
72     maxDCAtoVertex = 3.0; // cm
73     minNClustersTPC = 50;
74     maxChi2PerClusterTPC = 3.5;
75
76     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
77     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);    
78     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);    
79     esdTrackCuts->SetRequireTPCRefit(kFALSE);
80     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
81     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
82     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
83
84     TString tag = "TPC-only tracking";
85   }
86
87   // TPC-only no vertex cuts
88   if (cutMode == 3) 
89   {
90     // beta cuts (still under investigation)
91     minNClustersTPC = 50;
92     maxChi2PerClusterTPC = 3.5;
93
94     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
95     esdTrackCuts->SetRequireTPCRefit(kFALSE);
96     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
97     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
98     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
99
100     TString tag = "TPC-only tracking";
101   }
102
103   // TPC-only no cuts at all 
104   if (cutMode == 4) 
105   {
106
107     // beta cuts (still under investigation)
108     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
109     esdTrackCuts->SetRequireTPCRefit(kFALSE);
110     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
111
112     TString tag = "TPC-only tracking";
113   }
114
115   // TPC-only no kink removal no chi2 
116   if (cutMode == 5) 
117   {
118     // beta cuts (still under investigation)
119     minNClustersTPC = 50;
120     //maxChi2PerClusterTPC = 3.5;
121
122     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
123     esdTrackCuts->SetRequireTPCRefit(kFALSE);
124     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
125     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
126     //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
127
128     TString tag = "TPC-only tracking";
129   }
130
131   // TPC-only no kink removal 
132   if (cutMode == 6) 
133   {
134     // beta cuts (still under investigation)
135     minNClustersTPC = 50;
136     maxChi2PerClusterTPC = 3.5;
137
138     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
139     esdTrackCuts->SetRequireTPCRefit(kFALSE);
140     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
141     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
142     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
143
144     TString tag = "TPC-only tracking";
145   }
146
147   // TPC-only no kink removal no minNClustersTPC 
148   if (cutMode == 7) 
149   {
150     // beta cuts (still under investigation)
151     //minNClustersTPC = 50;
152     maxChi2PerClusterTPC = 3.5;
153
154     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
155     esdTrackCuts->SetRequireTPCRefit(kFALSE);
156     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
157     //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
158     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
159
160     TString tag = "TPC-only tracking";
161   }
162   // TPC-only no kink removal no minNClustersTPC 
163   if (cutMode == 8) 
164   {
165     // beta cuts (still under investigation)
166     //minNClustersTPC = 50;
167     maxChi2PerClusterTPC = 3.5;
168     maxDCAtoVertex = 3.0; // cm
169
170     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
171     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);    
172     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);    
173     esdTrackCuts->SetRequireTPCRefit(kFALSE);
174     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
175     //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
176     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
177
178     TString tag = "TPC-only tracking";
179   }
180
181   // TPC-only no kink removal no minNClustersTPC no maxChi2PerClusterTPC
182   if (cutMode == 9) 
183   {
184     // beta cuts (still under investigation)
185     //minNClustersTPC = 50;
186     //maxChi2PerClusterTPC = 3.5;
187     maxDCAtoVertex = 3.0; // cm
188
189     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
190     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);    
191     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);    
192     esdTrackCuts->SetRequireTPCRefit(kFALSE);
193     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
194     //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
195     //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
196
197     TString tag = "TPC-only tracking";
198   }
199
200   // TPC-only (loose cuts, absolute DCA cut) 
201   if (cutMode == 10) 
202   {
203     // beta cuts (still under investigation)
204     minNClustersTPC = 50;
205     maxChi2PerClusterTPC = 4.0;
206     maxDCAtoVertex = 2.8; // cm
207     minPt=0.15;
208     maxPt=1.e10;
209
210     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
211     esdTrackCuts->SetRequireTPCRefit(kFALSE);
212     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
213     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
214     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
215     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);    
216     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);    
217     esdTrackCuts->SetPtRange(minPt,maxPt);
218
219     TString tag = "TPC-only tracking";
220   }
221
222
223   // TPC-only (loose cuts, no DCA cut) 
224   if (cutMode == 11) 
225   {
226     // beta cuts (still under investigation)
227     minNClustersTPC = 50;
228     maxChi2PerClusterTPC = 4.0;
229     maxDCAtoVertexXY = 1.e10; // cm
230     maxDCAtoVertexZ  = 1.e10; // cm
231     minPt=0.15;
232     maxPt=1.e10;
233
234     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
235     esdTrackCuts->SetRequireTPCRefit(kFALSE);
236     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
237     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
238     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
239     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
240     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
241     esdTrackCuts->SetDCAToVertex2D(kTRUE);
242     esdTrackCuts->SetPtRange(minPt,maxPt);
243
244     TString tag = "TPC-only tracking";
245   }
246
247   // TPC-only (standard cuts, no DCA cut) 
248   if (cutMode == 12) 
249   {
250     // beta cuts (still under investigation)
251     minNClustersTPC = 96;
252     maxChi2PerClusterTPC = 3.5;
253     maxDCAtoVertexXY = 1.e10; // cm
254     maxDCAtoVertexZ  = 1.e10; // cm
255     minPt=0.2;
256     maxPt=1.e10;
257
258     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
259     esdTrackCuts->SetRequireTPCRefit(kFALSE);
260     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
261     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
262     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
263     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
264     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
265     esdTrackCuts->SetDCAToVertex2D(kTRUE);
266     esdTrackCuts->SetPtRange(minPt,maxPt);
267
268     TString tag = "TPC-only tracking";
269   }
270
271   // TPC-only (tight cuts, no DCA cut) 
272   if (cutMode == 13) 
273   {
274     // beta cuts (still under investigation)
275     minNClustersTPC = 120;
276     maxChi2PerClusterTPC = 3.5;
277     maxDCAtoVertexXY = 1.e10; // cm
278     maxDCAtoVertexZ  = 1.e10; // cm
279     minPt=0.3;
280     maxPt=1.e10;
281
282     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
283     esdTrackCuts->SetRequireTPCRefit(kFALSE);
284     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
285     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
286     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
287     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
288     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
289     esdTrackCuts->SetDCAToVertex2D(kTRUE);
290     esdTrackCuts->SetPtRange(minPt,maxPt);
291
292     TString tag = "TPC-only tracking";
293   }
294
295   // TPC-only (loose cuts, no pt cut) 
296   if (cutMode == 14) 
297   {
298     // beta cuts (still under investigation)
299     minNClustersTPC = 50;
300     maxChi2PerClusterTPC = 4.0;
301     maxDCAtoVertexXY = 1.e10; // cm
302     maxDCAtoVertexZ  = 1.e10; // cm
303     minPt=0.0;
304     maxPt=1.e10;
305
306     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
307     esdTrackCuts->SetRequireTPCRefit(kFALSE);
308     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
309     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
310     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
311     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
312     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
313     esdTrackCuts->SetDCAToVertex2D(kTRUE);
314     esdTrackCuts->SetPtRange(minPt,maxPt);
315
316     TString tag = "TPC-only tracking";
317   }
318
319   // TPC-only (standard cuts, no pt cut) 
320   if (cutMode == 15) 
321   {
322     // beta cuts (still under investigation)
323     minNClustersTPC = 96;
324     maxChi2PerClusterTPC = 3.5;
325     maxDCAtoVertexXY = 1.e10; // cm
326     maxDCAtoVertexZ  = 1.e10; // cm
327     minPt=0.0;
328     maxPt=1.e10;
329
330     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
331     esdTrackCuts->SetRequireTPCRefit(kFALSE);
332     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
333     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
334     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
335     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
336     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
337     esdTrackCuts->SetDCAToVertex2D(kTRUE);
338     esdTrackCuts->SetPtRange(minPt,maxPt);
339
340     TString tag = "TPC-only tracking";
341   }
342
343   // TPC-only (tight cuts, no pt cuts) 
344   if (cutMode == 16) 
345   {
346     // beta cuts (still under investigation)
347     minNClustersTPC = 120;
348     maxChi2PerClusterTPC = 3.5;
349     maxDCAtoVertexXY = 1.e10; // cm
350     maxDCAtoVertexZ  = 1.e10; // cm
351     minPt=0.0;
352     maxPt=1.e10;
353
354     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
355     esdTrackCuts->SetRequireTPCRefit(kFALSE);
356     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
357     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
358     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
359     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
360     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
361     esdTrackCuts->SetDCAToVertex2D(kTRUE);
362     esdTrackCuts->SetPtRange(minPt,maxPt);
363
364     TString tag = "TPC-only tracking";
365   }
366   // TPC-only (loose cuts)
367   if (cutMode == 17) 
368   {
369     // beta cuts (still under investigation)
370     minNClustersTPC = 50;
371     maxChi2PerClusterTPC = 4.0;
372     //maxDCAtoVertexXY = 2.4; // cm
373     //maxDCAtoVertexZ  = 3.2; // cm
374     maxDCAtoVertexXY = 1.6; // cm
375     maxDCAtoVertexZ  = 2.1; // cm
376     minPt=0.15;
377     maxPt=1.e10;
378
379     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
380     esdTrackCuts->SetRequireTPCRefit(kFALSE);
381     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
382     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
383     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
384     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
385     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
386     esdTrackCuts->SetDCAToVertex2D(kTRUE);
387     esdTrackCuts->SetPtRange(minPt,maxPt);
388
389     TString tag = "TPC-only tracking";
390   }
391
392   // TPC-only (standard cuts)
393   if (cutMode == 18) 
394   {
395     // beta cuts (still under investigation)
396     minNClustersTPC = 96;
397     maxChi2PerClusterTPC = 3.5;
398     //maxDCAtoVertexXY = 2.4; // cm
399     //maxDCAtoVertexZ  = 3.2; // cm
400     maxDCAtoVertexXY = 1.4; // cm
401     maxDCAtoVertexZ  = 1.8; // cm
402     minPt=0.2;
403     maxPt=1.e10;
404
405     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
406     esdTrackCuts->SetRequireTPCRefit(kFALSE);
407     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
408     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
409     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
410     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
411     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
412     esdTrackCuts->SetDCAToVertex2D(kTRUE);
413     esdTrackCuts->SetPtRange(minPt,maxPt);
414
415     TString tag = "TPC-only tracking";
416   }
417
418  // TPC-only (tight cuts)
419   if (cutMode == 19) 
420   {
421     // beta cuts (still under investigation)
422     minNClustersTPC = 120;
423     maxChi2PerClusterTPC = 3.0;
424     //maxDCAtoVertexXY = 2.4; // cm
425     //maxDCAtoVertexZ  = 3.2; // cm
426     maxDCAtoVertexXY = 1.4; // cm
427     maxDCAtoVertexZ  = 1.8; // cm
428     minPt=0.3;
429     maxPt=1.e10;
430
431     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
432     esdTrackCuts->SetRequireTPCRefit(kFALSE);
433     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
434     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
435     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
436     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
437     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
438     esdTrackCuts->SetDCAToVertex2D(kTRUE);
439     esdTrackCuts->SetPtRange(minPt,maxPt);
440
441     TString tag = "TPC-only tracking";
442   }
443
444   // TPC-only (arb. cuts, kink cuts included)
445   if (cutMode == 20) 
446   {
447     // beta cuts (still under investigation)
448     minNClustersTPC = 50;
449     maxChi2PerClusterTPC = 1.e10;
450     maxDCAtoVertexXY = 3.0; // cm
451     maxDCAtoVertexZ  = 3.0; // cm
452     minPt=0.0;
453     maxPt=1.e10;
454
455     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
456     esdTrackCuts->SetRequireTPCRefit(kFALSE);
457     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
458     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
459     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
460     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
461     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
462     esdTrackCuts->SetDCAToVertex2D(kTRUE);
463     esdTrackCuts->SetPtRange(minPt,maxPt);
464
465     TString tag = "TPC-only tracking";
466   }
467
468   // TPC-only (arb. cuts, kink cuts excluded)
469   if (cutMode == 21) 
470   {
471     // beta cuts (still under investigation)
472     minNClustersTPC = 50;
473     maxChi2PerClusterTPC = 1.e10;
474     maxDCAtoVertexXY = 3.0; // cm
475     maxDCAtoVertexZ  = 3.0; // cm
476     minPt=0.0;
477     maxPt=1.e10;
478
479     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
480     esdTrackCuts->SetRequireTPCRefit(kFALSE);
481     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
482     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
483     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
484     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
485     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
486     esdTrackCuts->SetDCAToVertex2D(kTRUE);
487     esdTrackCuts->SetPtRange(minPt,maxPt);
488
489     TString tag = "TPC-only tracking";
490   }
491
492   // TPC-only (arb. cuts, kink cuts excluded, no chi2, no DCA)
493   if (cutMode == 22) 
494   {
495     // beta cuts (still under investigation)
496     minNClustersTPC = 50;
497     maxChi2PerClusterTPC = 1.e10;
498     maxDCAtoVertexXY = 1.e10; // cm
499     maxDCAtoVertexZ  = 1.e10; // cm
500     minPt=0.15;
501     maxPt=1.e10;
502
503     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
504     esdTrackCuts->SetRequireTPCRefit(kFALSE);
505     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
506     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
507     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
508     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
509     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
510     esdTrackCuts->SetDCAToVertex2D(kTRUE);
511     esdTrackCuts->SetPtRange(minPt,maxPt);
512
513     TString tag = "TPC-only tracking";
514   }
515
516   // TPC-only 
517   if (cutMode == 23) 
518   {
519     // beta cuts (still under investigation)
520     minNClustersTPC = 70;
521     maxChi2PerClusterTPC = 4.0;
522     maxDCAtoVertexXY = 2.4; // cm
523     maxDCAtoVertexZ  = 3.2; // cm
524
525     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
526     esdTrackCuts->SetRequireTPCRefit(kFALSE);
527     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
528     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
529     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
530     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
531     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
532     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
533     esdTrackCuts->SetDCAToVertex2D(kTRUE);
534     //esdTrackCuts->SetPtRange(minPt,maxPt);
535     //esdTrackCuts->SetEtaRange(minEta,maxEta);
536
537     TString tag = "TPC-only tracking";
538   }
539
540   // TPC-only (no pt cut, no eta cut)
541   if (cutMode == 24) 
542   {
543     // beta cuts (still under investigation)
544     minNClustersTPC = 50;
545     maxChi2PerClusterTPC = 4.0;
546     maxDCAtoVertexXY = 2.4; // cm
547     maxDCAtoVertexZ  = 3.2; // cm
548     minPt=0.0;
549     maxPt=1.e10;
550
551     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
552     esdTrackCuts->SetRequireTPCRefit(kFALSE);
553     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
554     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
555     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
556     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
557     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
558     esdTrackCuts->SetDCAToVertex2D(kTRUE);
559     esdTrackCuts->SetPtRange(minPt,maxPt);
560
561     TString tag = "TPC-only tracking";
562   }
563
564   //
565   // systematic errors DCA cut studies
566   //
567   // TPC-only
568   if (cutMode == 25) 
569   {
570     // beta cuts (still under investigation)
571     minNClustersTPC = 50;
572     maxChi2PerClusterTPC = 4.0;
573     maxDCAtoVertexXY = 1.4; // cm
574     maxDCAtoVertexZ  = 2.2; // cm
575     minPt=0.0;
576     maxPt=1.e10;
577
578     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
579     esdTrackCuts->SetRequireTPCRefit(kFALSE);
580     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
581     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
582     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
583     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
584     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
585     esdTrackCuts->SetDCAToVertex2D(kTRUE);
586     esdTrackCuts->SetPtRange(minPt,maxPt);
587
588     TString tag = "TPC-only tracking";
589   }
590
591   if (cutMode == 26) 
592   {
593     // beta cuts (still under investigation)
594     minNClustersTPC = 50;
595     maxChi2PerClusterTPC = 4.0;
596     maxDCAtoVertexXY = 1.6; // cm
597     maxDCAtoVertexZ  = 2.4; // cm
598     minPt=0.0;
599     maxPt=1.e10;
600
601     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
602     esdTrackCuts->SetRequireTPCRefit(kFALSE);
603     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
604     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
605     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
606     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
607     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
608     esdTrackCuts->SetDCAToVertex2D(kTRUE);
609     esdTrackCuts->SetPtRange(minPt,maxPt);
610
611     TString tag = "TPC-only tracking";
612   }
613
614   //
615   // systematic errors cut studies
616   //
617   // TPC-only
618   if (cutMode == 27) 
619   {
620     // beta cuts (still under investigation)
621     minNClustersTPC = 50;
622     maxChi2PerClusterTPC = 4.0;
623     maxDCAtoVertexXY = 1.8; // cm
624     maxDCAtoVertexZ  = 2.6; // cm
625     minPt=0.0;
626     maxPt=1.e10;
627
628     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
629     esdTrackCuts->SetRequireTPCRefit(kFALSE);
630     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
631     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
632     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
633     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
634     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
635     esdTrackCuts->SetDCAToVertex2D(kTRUE);
636     esdTrackCuts->SetPtRange(minPt,maxPt);
637
638     TString tag = "TPC-only tracking";
639   }
640
641   if (cutMode == 28) 
642   {
643     // beta cuts (still under investigation)
644     minNClustersTPC = 50;
645     maxChi2PerClusterTPC = 4.0;
646     maxDCAtoVertexXY = 2.0; // cm
647     maxDCAtoVertexZ  = 2.8; // cm
648     minPt=0.0;
649     maxPt=1.e10;
650
651     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
652     esdTrackCuts->SetRequireTPCRefit(kFALSE);
653     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
654     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
655     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
656     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
657     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
658     esdTrackCuts->SetDCAToVertex2D(kTRUE);
659     esdTrackCuts->SetPtRange(minPt,maxPt);
660
661     TString tag = "TPC-only tracking";
662   }
663
664   if (cutMode == 29) 
665   {
666     // beta cuts (still under investigation)
667     minNClustersTPC = 50;
668     maxChi2PerClusterTPC = 4.0;
669     maxDCAtoVertexXY = 2.2; // cm
670     maxDCAtoVertexZ  = 3.0; // cm
671     minPt=0.0;
672     maxPt=1.e10;
673
674     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
675     esdTrackCuts->SetRequireTPCRefit(kFALSE);
676     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
677     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
678     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
679     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
680     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
681     esdTrackCuts->SetDCAToVertex2D(kTRUE);
682     esdTrackCuts->SetPtRange(minPt,maxPt);
683
684     TString tag = "TPC-only tracking";
685   }
686
687   if (cutMode == 30) 
688   {
689     // beta cuts (still under investigation)
690     minNClustersTPC = 50;
691     maxChi2PerClusterTPC = 4.0;
692     maxDCAtoVertexXY = 2.4; // cm
693     maxDCAtoVertexZ  = 3.2; // cm
694     minPt=0.0;
695     maxPt=1.e10;
696
697     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
698     esdTrackCuts->SetRequireTPCRefit(kFALSE);
699     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
700     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
701     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
702     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
703     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
704     esdTrackCuts->SetDCAToVertex2D(kTRUE);
705     esdTrackCuts->SetPtRange(minPt,maxPt);
706
707     TString tag = "TPC-only tracking";
708   }
709
710   if (cutMode == 31) 
711   {
712     // beta cuts (still under investigation)
713     minNClustersTPC = 50;
714     maxChi2PerClusterTPC = 4.0;
715     maxDCAtoVertexXY = 2.6; // cm
716     maxDCAtoVertexZ  = 3.4; // cm
717     minPt=0.0;
718     maxPt=1.e10;
719
720     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
721     esdTrackCuts->SetRequireTPCRefit(kFALSE);
722     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
723     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
724     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
725     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
726     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
727     esdTrackCuts->SetDCAToVertex2D(kTRUE);
728     esdTrackCuts->SetPtRange(minPt,maxPt);
729
730     TString tag = "TPC-only tracking";
731   }
732
733
734   if (cutMode == 32) 
735   {
736     // beta cuts (still under investigation)
737     minNClustersTPC = 50;
738     maxChi2PerClusterTPC = 4.0;
739     maxDCAtoVertexXY = 2.8; // cm
740     maxDCAtoVertexZ  = 3.6; // cm
741     minPt=0.0;
742     maxPt=1.e10;
743
744     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
745     esdTrackCuts->SetRequireTPCRefit(kFALSE);
746     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
747     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
748     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
749     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
750     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
751     esdTrackCuts->SetDCAToVertex2D(kTRUE);
752     esdTrackCuts->SetPtRange(minPt,maxPt);
753
754     TString tag = "TPC-only tracking";
755   }
756
757   if (cutMode == 33) 
758   {
759     // beta cuts (still under investigation)
760     minNClustersTPC = 50;
761     maxChi2PerClusterTPC = 4.0;
762     maxDCAtoVertexXY = 3.0; // cm
763     maxDCAtoVertexZ  = 3.8; // cm
764     minPt=0.0;
765     maxPt=1.e10;
766
767     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
768     esdTrackCuts->SetRequireTPCRefit(kFALSE);
769     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
770     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
771     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
772     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
773     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
774     esdTrackCuts->SetDCAToVertex2D(kTRUE);
775     esdTrackCuts->SetPtRange(minPt,maxPt);
776
777     TString tag = "TPC-only tracking";
778   }
779
780   if (cutMode == 34) 
781   {
782     // beta cuts (still under investigation)
783     minNClustersTPC = 50;
784     maxChi2PerClusterTPC = 4.0;
785     maxDCAtoVertexXY = 3.2; // cm
786     maxDCAtoVertexZ  = 4.0; // cm
787     minPt=0.0;
788     maxPt=1.e10;
789
790     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
791     esdTrackCuts->SetRequireTPCRefit(kFALSE);
792     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
793     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
794     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
795     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
796     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
797     esdTrackCuts->SetDCAToVertex2D(kTRUE);
798     esdTrackCuts->SetPtRange(minPt,maxPt);
799
800     TString tag = "TPC-only tracking";
801   }
802
803   if (cutMode == 35) 
804   {
805     // beta cuts (still under investigation)
806     minNClustersTPC = 50;
807     maxChi2PerClusterTPC = 4.0;
808     maxDCAtoVertexXY = 3.4; // cm
809     maxDCAtoVertexZ  = 4.2; // cm
810     minPt=0.0;
811     maxPt=1.e10;
812
813     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
814     esdTrackCuts->SetRequireTPCRefit(kFALSE);
815     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
816     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
817     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
818     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
819     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
820     esdTrackCuts->SetDCAToVertex2D(kTRUE);
821     esdTrackCuts->SetPtRange(minPt,maxPt);
822
823     TString tag = "TPC-only tracking";
824   }
825
826 //
827 // cut stability systematics
828 //
829
830   if (cutMode == 36) 
831   {
832     // beta cuts (still under investigation)
833     minNClustersTPC = 70;
834     maxChi2PerClusterTPC = 4.0;
835     maxDCAtoVertexXY = 2.4; // cm
836     maxDCAtoVertexZ  = 3.2; // cm
837     minPt=0.0;
838     maxPt=1.e10;
839
840     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
841     esdTrackCuts->SetRequireTPCRefit(kFALSE);
842     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
843     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
844     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
845     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
846     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
847     esdTrackCuts->SetDCAToVertex2D(kTRUE);
848     esdTrackCuts->SetPtRange(minPt,maxPt);
849
850     TString tag = "TPC-only tracking";
851   }
852
853  if (cutMode == 37) 
854   {
855     // beta cuts (still under investigation)
856     minNClustersTPC = 90;
857     maxChi2PerClusterTPC = 4.0;
858     maxDCAtoVertexXY = 2.4; // cm
859     maxDCAtoVertexZ  = 3.2; // cm
860     minPt=0.0;
861     maxPt=1.e10;
862
863     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
864     esdTrackCuts->SetRequireTPCRefit(kFALSE);
865     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
866     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
867     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
868     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
869     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
870     esdTrackCuts->SetDCAToVertex2D(kTRUE);
871     esdTrackCuts->SetPtRange(minPt,maxPt);
872
873     TString tag = "TPC-only tracking";
874   }
875
876   if (cutMode == 38) 
877   {
878     // beta cuts (still under investigation)
879     minNClustersTPC = 50;
880     maxChi2PerClusterTPC = 3.0;
881     maxDCAtoVertexXY = 2.4; // cm
882     maxDCAtoVertexZ  = 3.2; // cm
883     minPt=0.0;
884     maxPt=1.e10;
885
886     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
887     esdTrackCuts->SetRequireTPCRefit(kFALSE);
888     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
889     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
890     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
891     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
892     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
893     esdTrackCuts->SetDCAToVertex2D(kTRUE);
894     esdTrackCuts->SetPtRange(minPt,maxPt);
895
896     TString tag = "TPC-only tracking";
897   }
898
899   if (cutMode == 39) 
900   {
901     // beta cuts (still under investigation)
902     minNClustersTPC = 50;
903     maxChi2PerClusterTPC = 5.0;
904     maxDCAtoVertexXY = 2.4; // cm
905     maxDCAtoVertexZ  = 3.2; // cm
906     minPt=0.0;
907     maxPt=1.e10;
908
909     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
910     esdTrackCuts->SetRequireTPCRefit(kFALSE);
911     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
912     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
913     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
914     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
915     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
916     esdTrackCuts->SetDCAToVertex2D(kTRUE);
917     esdTrackCuts->SetPtRange(minPt,maxPt);
918
919     TString tag = "TPC-only tracking";
920   }
921
922   if (cutMode == 40) 
923   {
924     // beta cuts (still under investigation)
925     minNClustersTPC = 50;
926     maxChi2PerClusterTPC = 4.0;
927     maxDCAtoVertexXY = 1.4; // cm
928     maxDCAtoVertexZ  = 2.2; // cm
929     minPt=0.0;
930     maxPt=1.e10;
931
932     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
933     esdTrackCuts->SetRequireTPCRefit(kFALSE);
934     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
935     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
936     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
937     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
938     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
939     esdTrackCuts->SetDCAToVertex2D(kTRUE);
940     esdTrackCuts->SetPtRange(minPt,maxPt);
941
942     TString tag = "TPC-only tracking";
943   }
944
945   if (cutMode == 41) 
946   {
947     // beta cuts (still under investigation)
948     minNClustersTPC = 50;
949     maxChi2PerClusterTPC = 4.0;
950     maxDCAtoVertexXY = 3.4; // cm
951     maxDCAtoVertexZ  = 4.2; // cm
952     minPt=0.0;
953     maxPt=1.e10;
954
955     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
956     esdTrackCuts->SetRequireTPCRefit(kFALSE);
957     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
958     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
959     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
960     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
961     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
962     esdTrackCuts->SetDCAToVertex2D(kTRUE);
963     esdTrackCuts->SetPtRange(minPt,maxPt);
964
965     TString tag = "TPC-only tracking";
966   }
967
968   if (cutMode == 42) 
969   {
970     // beta cuts (still under investigation)
971     minNClustersTPC = 50;
972     maxChi2PerClusterTPC = 4.0;
973     maxDCAtoVertexXY = 2.4; // cm
974     maxDCAtoVertexZ  = 3.2; // cm
975     minPt=0.0;
976     maxPt=1.e10;
977
978     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
979     esdTrackCuts->SetRequireTPCRefit(kFALSE);
980     //esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
981     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
982     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
983     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
984     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
985     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
986     esdTrackCuts->SetDCAToVertex2D(kTRUE);
987     esdTrackCuts->SetPtRange(minPt,maxPt);
988
989     TString tag = "TPC-only tracking";
990   }
991   // test
992   if (cutMode == 43) 
993   {
994     // beta cuts (still under investigation)
995     minNClustersTPC = 50;
996     maxChi2PerClusterTPC = 4.0;
997     //maxDCAtoVertexXY = 2.4; // cm
998     //maxDCAtoVertexZ  = 3.2; // cm
999     //minPt=0.15;
1000     //maxPt=1.e10;
1001
1002     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1003     esdTrackCuts->SetRequireTPCRefit(kFALSE);
1004     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1005     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1006     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1007     //esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1008     //esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1009     //esdTrackCuts->SetDCAToVertex2D(kTRUE);
1010     //esdTrackCuts->SetPtRange(minPt,maxPt);
1011     //esdTrackCuts->SetEtaRange(minEta,maxEta);
1012
1013     TString tag = "TPC-only tracking";
1014   }
1015
1016   // TPC-only + pt cut + eta cut 
1017   if (cutMode == 45) 
1018   {
1019     // beta cuts (still under investigation)
1020     //minNClustersTPC = 50;
1021     //maxChi2PerClusterTPC = 4.0;
1022     maxDCAtoVertexXY = 2.4; // cm
1023     maxDCAtoVertexZ  = 3.2; // cm
1024     //minPt=0.15;
1025     //maxPt=1.e10;
1026
1027     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1028     esdTrackCuts->SetRequireTPCRefit(kFALSE);
1029     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1030     //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1031     //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1032     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1033     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1034     esdTrackCuts->SetDCAToVertex2D(kTRUE);
1035     //esdTrackCuts->SetPtRange(minPt,maxPt);
1036     //esdTrackCuts->SetEtaRange(minEta,maxEta);
1037
1038     TString tag = "TPC-only tracking";
1039   }
1040
1041   // TPC-tracks + SPD point + ITS refit
1042   if (cutMode == 50) 
1043   {
1044     Int_t    minclsTPC=70;
1045     Double_t maxchi2perTPCcl=4.;
1046     //Double_t maxEtaInAcc=0.8;
1047     Double_t maxdcaxyITSTPC=0.2;
1048     Double_t maxdcazITSTPC=1.e9;
1049
1050     esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1051     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1052     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1053     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1054     esdTrackCuts->SetRequireITSRefit(kTRUE);
1055     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1056     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1057     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1058     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1059     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1060     //esdTrackCuts->SetEtaRange(-maxEtaInAcc,maxEtaInAcc);
1061
1062     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster";
1063   }
1064
1065   // TPC-tracks + SPD point + ITS refit
1066   if (cutMode == 60) 
1067   {
1068     Int_t    minclsITS=4;
1069     Int_t    minclsTPC=70;
1070     Double_t maxchi2perTPCcl=4.;
1071     //Double_t maxEtaInAcc=0.8;
1072     Double_t maxdcaxyITSTPC=0.2;
1073     Double_t maxdcazITSTPC=1.e9;
1074
1075     esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1076     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1077     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1078     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1079     esdTrackCuts->SetRequireITSRefit(kTRUE);
1080     esdTrackCuts->SetMinNClustersITS(minclsITS);
1081     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1082     //esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1083     esdTrackCuts->SetRequireTPCRefit(kTRUE);
1084     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1085     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1086     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1087     //esdTrackCuts->SetEtaRange(-maxEtaInAcc,maxEtaInAcc);
1088
1089     TString tag = "Global tracking: TPC refit + ITS refit + >3 ITS clusters + >=1 SPD cluster";
1090   }
1091
1092   // cuts for data without field
1093   if (!fieldOn)
1094   {
1095     cov5 = 1e10;
1096     tag += " without field";
1097   }
1098
1099   Printf("Created track cuts for: %s", tag.Data());
1100
1101   return esdTrackCuts;
1102 }