]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/dNdPt/macros/CreatedNdPtTrackCuts.C
6acb0859117405ff16ef5aa0a420092a90338cff
[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->SetRequireITSRefit(kFALSE);
532     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
533     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
534     esdTrackCuts->SetDCAToVertex2D(kTRUE);
535     //esdTrackCuts->SetPtRange(minPt,maxPt);
536     //esdTrackCuts->SetEtaRange(minEta,maxEta);
537
538     TString tag = "TPC-only tracking";
539   }
540
541   // TPC-only (no pt cut, no eta cut)
542   if (cutMode == 24) 
543   {
544     // beta cuts (still under investigation)
545     minNClustersTPC = 50;
546     maxChi2PerClusterTPC = 4.0;
547     maxDCAtoVertexXY = 2.4; // cm
548     maxDCAtoVertexZ  = 3.2; // cm
549     minPt=0.0;
550     maxPt=1.e10;
551
552     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
553     esdTrackCuts->SetRequireTPCRefit(kFALSE);
554     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
555     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
556     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
557     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
558     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
559     esdTrackCuts->SetDCAToVertex2D(kTRUE);
560     esdTrackCuts->SetPtRange(minPt,maxPt);
561
562     TString tag = "TPC-only tracking";
563   }
564
565   //
566   // systematic errors DCA cut studies
567   //
568   // TPC-only
569   if (cutMode == 25) 
570   {
571     // beta cuts (still under investigation)
572     minNClustersTPC = 50;
573     maxChi2PerClusterTPC = 4.0;
574     maxDCAtoVertexXY = 1.4; // cm
575     maxDCAtoVertexZ  = 2.2; // cm
576     minPt=0.0;
577     maxPt=1.e10;
578
579     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
580     esdTrackCuts->SetRequireTPCRefit(kFALSE);
581     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
582     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
583     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
584     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
585     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
586     esdTrackCuts->SetDCAToVertex2D(kTRUE);
587     esdTrackCuts->SetPtRange(minPt,maxPt);
588
589     TString tag = "TPC-only tracking";
590   }
591
592   if (cutMode == 26) 
593   {
594     // beta cuts (still under investigation)
595     minNClustersTPC = 50;
596     maxChi2PerClusterTPC = 4.0;
597     maxDCAtoVertexXY = 1.6; // cm
598     maxDCAtoVertexZ  = 2.4; // cm
599     minPt=0.0;
600     maxPt=1.e10;
601
602     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
603     esdTrackCuts->SetRequireTPCRefit(kFALSE);
604     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
605     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
606     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
607     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
608     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
609     esdTrackCuts->SetDCAToVertex2D(kTRUE);
610     esdTrackCuts->SetPtRange(minPt,maxPt);
611
612     TString tag = "TPC-only tracking";
613   }
614
615   //
616   // systematic errors cut studies
617   //
618   // TPC-only
619   if (cutMode == 27) 
620   {
621     // beta cuts (still under investigation)
622     minNClustersTPC = 50;
623     maxChi2PerClusterTPC = 4.0;
624     maxDCAtoVertexXY = 1.8; // cm
625     maxDCAtoVertexZ  = 2.6; // cm
626     minPt=0.0;
627     maxPt=1.e10;
628
629     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
630     esdTrackCuts->SetRequireTPCRefit(kFALSE);
631     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
632     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
633     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
634     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
635     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
636     esdTrackCuts->SetDCAToVertex2D(kTRUE);
637     esdTrackCuts->SetPtRange(minPt,maxPt);
638
639     TString tag = "TPC-only tracking";
640   }
641
642   if (cutMode == 28) 
643   {
644     // beta cuts (still under investigation)
645     minNClustersTPC = 50;
646     maxChi2PerClusterTPC = 4.0;
647     maxDCAtoVertexXY = 2.0; // cm
648     maxDCAtoVertexZ  = 2.8; // cm
649     minPt=0.0;
650     maxPt=1.e10;
651
652     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
653     esdTrackCuts->SetRequireTPCRefit(kFALSE);
654     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
655     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
656     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
657     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
658     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
659     esdTrackCuts->SetDCAToVertex2D(kTRUE);
660     esdTrackCuts->SetPtRange(minPt,maxPt);
661
662     TString tag = "TPC-only tracking";
663   }
664
665   if (cutMode == 29) 
666   {
667     // beta cuts (still under investigation)
668     minNClustersTPC = 50;
669     maxChi2PerClusterTPC = 4.0;
670     maxDCAtoVertexXY = 2.2; // cm
671     maxDCAtoVertexZ  = 3.0; // cm
672     minPt=0.0;
673     maxPt=1.e10;
674
675     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
676     esdTrackCuts->SetRequireTPCRefit(kFALSE);
677     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
678     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
679     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
680     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
681     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
682     esdTrackCuts->SetDCAToVertex2D(kTRUE);
683     esdTrackCuts->SetPtRange(minPt,maxPt);
684
685     TString tag = "TPC-only tracking";
686   }
687
688   if (cutMode == 30) 
689   {
690     // beta cuts (still under investigation)
691     minNClustersTPC = 50;
692     maxChi2PerClusterTPC = 4.0;
693     maxDCAtoVertexXY = 2.4; // cm
694     maxDCAtoVertexZ  = 3.2; // cm
695     minPt=0.0;
696     maxPt=1.e10;
697
698     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
699     esdTrackCuts->SetRequireTPCRefit(kFALSE);
700     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
701     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
702     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
703     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
704     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
705     esdTrackCuts->SetDCAToVertex2D(kTRUE);
706     esdTrackCuts->SetPtRange(minPt,maxPt);
707
708     TString tag = "TPC-only tracking";
709   }
710
711   if (cutMode == 31) 
712   {
713     // beta cuts (still under investigation)
714     minNClustersTPC = 50;
715     maxChi2PerClusterTPC = 4.0;
716     maxDCAtoVertexXY = 2.6; // cm
717     maxDCAtoVertexZ  = 3.4; // cm
718     minPt=0.0;
719     maxPt=1.e10;
720
721     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
722     esdTrackCuts->SetRequireTPCRefit(kFALSE);
723     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
724     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
725     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
726     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
727     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
728     esdTrackCuts->SetDCAToVertex2D(kTRUE);
729     esdTrackCuts->SetPtRange(minPt,maxPt);
730
731     TString tag = "TPC-only tracking";
732   }
733
734
735   if (cutMode == 32) 
736   {
737     // beta cuts (still under investigation)
738     minNClustersTPC = 50;
739     maxChi2PerClusterTPC = 4.0;
740     maxDCAtoVertexXY = 2.8; // cm
741     maxDCAtoVertexZ  = 3.6; // cm
742     minPt=0.0;
743     maxPt=1.e10;
744
745     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
746     esdTrackCuts->SetRequireTPCRefit(kFALSE);
747     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
748     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
749     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
750     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
751     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
752     esdTrackCuts->SetDCAToVertex2D(kTRUE);
753     esdTrackCuts->SetPtRange(minPt,maxPt);
754
755     TString tag = "TPC-only tracking";
756   }
757
758   if (cutMode == 33) 
759   {
760     // beta cuts (still under investigation)
761     minNClustersTPC = 50;
762     maxChi2PerClusterTPC = 4.0;
763     maxDCAtoVertexXY = 3.0; // cm
764     maxDCAtoVertexZ  = 3.8; // cm
765     minPt=0.0;
766     maxPt=1.e10;
767
768     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
769     esdTrackCuts->SetRequireTPCRefit(kFALSE);
770     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
771     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
772     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
773     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
774     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
775     esdTrackCuts->SetDCAToVertex2D(kTRUE);
776     esdTrackCuts->SetPtRange(minPt,maxPt);
777
778     TString tag = "TPC-only tracking";
779   }
780
781   if (cutMode == 34) 
782   {
783     // beta cuts (still under investigation)
784     minNClustersTPC = 50;
785     maxChi2PerClusterTPC = 4.0;
786     maxDCAtoVertexXY = 3.2; // cm
787     maxDCAtoVertexZ  = 4.0; // cm
788     minPt=0.0;
789     maxPt=1.e10;
790
791     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
792     esdTrackCuts->SetRequireTPCRefit(kFALSE);
793     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
794     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
795     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
796     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
797     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
798     esdTrackCuts->SetDCAToVertex2D(kTRUE);
799     esdTrackCuts->SetPtRange(minPt,maxPt);
800
801     TString tag = "TPC-only tracking";
802   }
803
804   if (cutMode == 35) 
805   {
806     // beta cuts (still under investigation)
807     minNClustersTPC = 50;
808     maxChi2PerClusterTPC = 4.0;
809     maxDCAtoVertexXY = 3.4; // cm
810     maxDCAtoVertexZ  = 4.2; // cm
811     minPt=0.0;
812     maxPt=1.e10;
813
814     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
815     esdTrackCuts->SetRequireTPCRefit(kFALSE);
816     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
817     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
818     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
819     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
820     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
821     esdTrackCuts->SetDCAToVertex2D(kTRUE);
822     esdTrackCuts->SetPtRange(minPt,maxPt);
823
824     TString tag = "TPC-only tracking";
825   }
826
827 //
828 // cut stability systematics
829 //
830
831   if (cutMode == 36) 
832   {
833     // beta cuts (still under investigation)
834     minNClustersTPC = 70;
835     maxChi2PerClusterTPC = 4.0;
836     maxDCAtoVertexXY = 2.4; // cm
837     maxDCAtoVertexZ  = 3.2; // cm
838     minPt=0.0;
839     maxPt=1.e10;
840
841     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
842     esdTrackCuts->SetRequireTPCRefit(kFALSE);
843     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
844     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
845     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
846     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
847     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
848     esdTrackCuts->SetDCAToVertex2D(kTRUE);
849     esdTrackCuts->SetPtRange(minPt,maxPt);
850
851     TString tag = "TPC-only tracking";
852   }
853
854  if (cutMode == 37) 
855   {
856     // beta cuts (still under investigation)
857     minNClustersTPC = 90;
858     maxChi2PerClusterTPC = 4.0;
859     maxDCAtoVertexXY = 2.4; // cm
860     maxDCAtoVertexZ  = 3.2; // cm
861     minPt=0.0;
862     maxPt=1.e10;
863
864     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
865     esdTrackCuts->SetRequireTPCRefit(kFALSE);
866     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
867     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
868     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
869     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
870     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
871     esdTrackCuts->SetDCAToVertex2D(kTRUE);
872     esdTrackCuts->SetPtRange(minPt,maxPt);
873
874     TString tag = "TPC-only tracking";
875   }
876
877   if (cutMode == 38) 
878   {
879     // beta cuts (still under investigation)
880     minNClustersTPC = 50;
881     maxChi2PerClusterTPC = 3.0;
882     maxDCAtoVertexXY = 2.4; // cm
883     maxDCAtoVertexZ  = 3.2; // cm
884     minPt=0.0;
885     maxPt=1.e10;
886
887     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
888     esdTrackCuts->SetRequireTPCRefit(kFALSE);
889     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
890     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
891     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
892     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
893     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
894     esdTrackCuts->SetDCAToVertex2D(kTRUE);
895     esdTrackCuts->SetPtRange(minPt,maxPt);
896
897     TString tag = "TPC-only tracking";
898   }
899
900   if (cutMode == 39) 
901   {
902     // beta cuts (still under investigation)
903     minNClustersTPC = 50;
904     maxChi2PerClusterTPC = 5.0;
905     maxDCAtoVertexXY = 2.4; // cm
906     maxDCAtoVertexZ  = 3.2; // cm
907     minPt=0.0;
908     maxPt=1.e10;
909
910     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
911     esdTrackCuts->SetRequireTPCRefit(kFALSE);
912     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
913     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
914     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
915     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
916     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
917     esdTrackCuts->SetDCAToVertex2D(kTRUE);
918     esdTrackCuts->SetPtRange(minPt,maxPt);
919
920     TString tag = "TPC-only tracking";
921   }
922
923   if (cutMode == 40) 
924   {
925     // beta cuts (still under investigation)
926     minNClustersTPC = 50;
927     maxChi2PerClusterTPC = 4.0;
928     maxDCAtoVertexXY = 1.4; // cm
929     maxDCAtoVertexZ  = 2.2; // cm
930     minPt=0.0;
931     maxPt=1.e10;
932
933     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
934     esdTrackCuts->SetRequireTPCRefit(kFALSE);
935     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
936     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
937     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
938     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
939     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
940     esdTrackCuts->SetDCAToVertex2D(kTRUE);
941     esdTrackCuts->SetPtRange(minPt,maxPt);
942
943     TString tag = "TPC-only tracking";
944   }
945
946   if (cutMode == 41) 
947   {
948     // beta cuts (still under investigation)
949     minNClustersTPC = 50;
950     maxChi2PerClusterTPC = 4.0;
951     maxDCAtoVertexXY = 3.4; // cm
952     maxDCAtoVertexZ  = 4.2; // cm
953     minPt=0.0;
954     maxPt=1.e10;
955
956     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
957     esdTrackCuts->SetRequireTPCRefit(kFALSE);
958     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
959     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
960     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
961     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
962     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
963     esdTrackCuts->SetDCAToVertex2D(kTRUE);
964     esdTrackCuts->SetPtRange(minPt,maxPt);
965
966     TString tag = "TPC-only tracking";
967   }
968
969   if (cutMode == 42) 
970   {
971     // beta cuts (still under investigation)
972     minNClustersTPC = 50;
973     maxChi2PerClusterTPC = 4.0;
974     maxDCAtoVertexXY = 2.4; // cm
975     maxDCAtoVertexZ  = 3.2; // cm
976     minPt=0.0;
977     maxPt=1.e10;
978
979     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
980     esdTrackCuts->SetRequireTPCRefit(kFALSE);
981     //esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
982     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
983     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
984     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
985     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
986     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
987     esdTrackCuts->SetDCAToVertex2D(kTRUE);
988     esdTrackCuts->SetPtRange(minPt,maxPt);
989
990     TString tag = "TPC-only tracking";
991   }
992   // test
993   if (cutMode == 43) 
994   {
995     // beta cuts (still under investigation)
996     minNClustersTPC = 50;
997     maxChi2PerClusterTPC = 4.0;
998     //maxDCAtoVertexXY = 2.4; // cm
999     //maxDCAtoVertexZ  = 3.2; // cm
1000     //minPt=0.15;
1001     //maxPt=1.e10;
1002
1003     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1004     esdTrackCuts->SetRequireTPCRefit(kFALSE);
1005     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1006     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1007     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1008     //esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1009     //esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1010     //esdTrackCuts->SetDCAToVertex2D(kTRUE);
1011     //esdTrackCuts->SetPtRange(minPt,maxPt);
1012     //esdTrackCuts->SetEtaRange(minEta,maxEta);
1013
1014     TString tag = "TPC-only tracking";
1015   }
1016
1017   // TPC-only + pt cut + eta cut 
1018   if (cutMode == 45) 
1019   {
1020     // beta cuts (still under investigation)
1021     //minNClustersTPC = 50;
1022     //maxChi2PerClusterTPC = 4.0;
1023     maxDCAtoVertexXY = 2.4; // cm
1024     maxDCAtoVertexZ  = 3.2; // cm
1025     //minPt=0.15;
1026     //maxPt=1.e10;
1027
1028     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1029     esdTrackCuts->SetRequireTPCRefit(kFALSE);
1030     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1031     //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1032     //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1033     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1034     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1035     esdTrackCuts->SetDCAToVertex2D(kTRUE);
1036     //esdTrackCuts->SetPtRange(minPt,maxPt);
1037     //esdTrackCuts->SetEtaRange(minEta,maxEta);
1038
1039     TString tag = "TPC-only tracking";
1040   }
1041
1042   // TPC-tracks + SPD point + ITS refit
1043   if (cutMode == 50) 
1044   {
1045     Int_t    minclsTPC=70;
1046     Double_t maxchi2perTPCcl=4.;
1047     //Double_t maxEtaInAcc=0.8;
1048     Double_t maxdcaxyITSTPC=0.2;
1049     Double_t maxdcazITSTPC=1.e9;
1050
1051     esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1052     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1053     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1054     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1055     esdTrackCuts->SetRequireITSRefit(kTRUE);
1056     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1057     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1058     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1059     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1060     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1061     //esdTrackCuts->SetEtaRange(-maxEtaInAcc,maxEtaInAcc);
1062
1063     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster";
1064   }
1065
1066   // TPC-tracks + SPD point + ITS refit
1067   if (cutMode == 60) 
1068   {
1069     Int_t    minclsITS=4;
1070     Int_t    minclsTPC=70;
1071     Double_t maxchi2perTPCcl=4.;
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
1088     TString tag = "Global tracking: TPC refit + ITS refit + >3 ITS clusters + >=1 SPD cluster";
1089   }
1090
1091   /*
1092   // TPC-tracks + SPD point + ITS refit + DCAr(pt)
1093   if (cutMode == 70) 
1094   {
1095     Int_t    minclsTPC=70;
1096     Double_t maxchi2perTPCcl=4.;
1097     Double_t maxdcaxyITSTPC=1.e9;
1098     Double_t maxdcazITSTPC=1.e9;
1099
1100     esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1101     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1102     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1103     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1104     esdTrackCuts->SetRequireITSRefit(kTRUE);
1105     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1106     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1107     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1108     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1109     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1110
1111     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt)";
1112   }
1113   */
1114
1115   // TPC-tracks + SPD point + ITS refit + DCAr(pt)
1116   if (cutMode == 70) 
1117   {
1118     Int_t    minclsTPC=70;
1119     Double_t maxchi2perTPCcl=4.;
1120     Double_t maxdcazITSTPC=1.e9;
1121
1122     //
1123     // TPC
1124     //
1125     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1126     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1127     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1128     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1129     //
1130     // ITS
1131     //
1132     esdTrackCuts->SetRequireITSRefit(kTRUE);
1133     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1134     //
1135     // primary selection
1136     //
1137     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1138     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1139     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1140
1141     // 7*(0.0050+0.0060/pt^0.9)
1142     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1143
1144     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt)";
1145   }
1146
1147   // TPC+ITS combine tracking + DCAr(pt) + DCAz(pt)
1148   if (cutMode == 71) 
1149   {
1150     Int_t    minclsTPC=70;
1151     Double_t maxchi2perTPCcl=4.;
1152
1153     //
1154     // TPC
1155     //
1156     esdTrackCuts->SetRequireTPCRefit(kTRUE);
1157     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1158     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1159     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1160     //
1161     // ITS
1162     //
1163     esdTrackCuts->SetRequireITSRefit(kTRUE);
1164     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1165     //
1166     // primary selection
1167     //
1168     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1169     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1170
1171     // DCArphi parametrization (LHC10c pass2)
1172     // 7*(0.0026+0.0050/pt^1.01)
1173     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
1174
1175     // DCArphi parametrization (LHC10c pass2)
1176     // 7*(0.01+0.011/pt^0.72)
1177     esdTrackCuts->SetMaxDCAToVertexZPtDep("0.07+0.077/pt^0.72");
1178
1179     TString tag = "TPC+ITS combine tracking + DCAr(pt) + DCAz(pt)";
1180   }
1181
1182   // TPC+ITS combine tracking + DCAr(pt) (2010)
1183   if (cutMode == 72) 
1184   {
1185     Int_t    minclsTPC=70;
1186     Double_t maxchi2perTPCcl=4.;
1187     Double_t maxdcazITSTPC=2.0;
1188
1189     //
1190     // TPC
1191     //
1192     esdTrackCuts->SetRequireTPCRefit(kTRUE);
1193     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1194     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1195     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1196     //
1197     // ITS
1198     //
1199     esdTrackCuts->SetRequireITSRefit(kTRUE);
1200     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1201     //
1202     // primary selection
1203     //
1204     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1205     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1206     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1207
1208     // DCArphi parametrization (LHC10c pass2)
1209     // 7*(0.0026+0.0050/pt^1.01)
1210     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
1211
1212     TString tag = "TPC+ITS combine tracking + DCAr(pt) (2010)";
1213   }
1214
1215   // TPC-tracks + SPD point + ITS refit + DCAr(pt) 4-sigma
1216   if (cutMode == 75) 
1217   {
1218     Int_t    minclsTPC=70;
1219     Double_t maxchi2perTPCcl=4.;
1220     Double_t maxdcazITSTPC=1.e9;
1221
1222     //
1223     // TPC
1224     //
1225     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1226     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1227     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1228     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1229     //
1230     // ITS
1231     //
1232     esdTrackCuts->SetRequireITSRefit(kTRUE);
1233     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1234     //
1235     // primary selection
1236     //
1237     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1238     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1239     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1240
1241     // 4*(0.0050+0.0060/pt^0.9)
1242     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.02+0.024/pt^0.9");
1243
1244     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) 4-sigma";
1245   }
1246
1247   // TPC-tracks + SPD point + ITS refit + DCAr(pt) 10-sigma
1248   if (cutMode == 80) 
1249   {
1250     Int_t    minclsTPC=70;
1251     Double_t maxchi2perTPCcl=4.;
1252     Double_t maxdcazITSTPC=1.e9;
1253
1254     //
1255     // TPC
1256     //
1257     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1258     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1259     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1260     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1261     //
1262     // ITS
1263     //
1264     esdTrackCuts->SetRequireITSRefit(kTRUE);
1265     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1266     //
1267     // primary selection
1268     //
1269     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1270     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1271     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1272
1273     // 10*(0.0050+0.0060/pt^0.9)
1274     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.05+0.06/pt^0.9");
1275
1276     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) 10 sigma";
1277   }
1278
1279   // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 60 TPCclust
1280   if (cutMode == 85) 
1281   {
1282     Int_t    minclsTPC=60;
1283     Double_t maxchi2perTPCcl=4.;
1284     Double_t maxdcazITSTPC=1.e9;
1285
1286     //
1287     // TPC
1288     //
1289     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1290     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1291     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1292     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1293     //
1294     // ITS
1295     //
1296     esdTrackCuts->SetRequireITSRefit(kTRUE);
1297     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1298     //
1299     // primary selection
1300     //
1301     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1302     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1303     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1304
1305     // 7*(0.0050+0.0060/pt^0.9)
1306     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1307
1308     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1309   }
1310
1311   // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 80 clusters
1312   if (cutMode == 90) 
1313   {
1314     Int_t    minclsTPC=80;
1315     Double_t maxchi2perTPCcl=4.;
1316     Double_t maxdcazITSTPC=1.e9;
1317
1318     //
1319     // TPC
1320     //
1321     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1322     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1323     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1324     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1325     //
1326     // ITS
1327     //
1328     esdTrackCuts->SetRequireITSRefit(kTRUE);
1329     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1330     //
1331     // primary selection
1332     //
1333     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1334     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1335     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1336
1337     // 7*(0.0050+0.0060/pt^0.9)
1338     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1339
1340     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 80 TPCclust";
1341   }
1342
1343   // TPC-tracks + SPD point + ITS refit + DCAr(pt) + TPCchi2=3.5
1344   if (cutMode == 95) 
1345   {
1346     Int_t    minclsTPC=80;
1347     Double_t maxchi2perTPCcl=3.5;
1348     Double_t maxdcazITSTPC=1.e9;
1349
1350     //
1351     // TPC
1352     //
1353     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1354     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1355     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1356     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1357     //
1358     // ITS
1359     //
1360     esdTrackCuts->SetRequireITSRefit(kTRUE);
1361     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1362     //
1363     // primary selection
1364     //
1365     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1366     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1367     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1368
1369     // 7*(0.0050+0.0060/pt^0.9)
1370     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1371
1372     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + TPCchi2 3.5";
1373   }
1374
1375   // TPC-tracks + SPD point + ITS refit + DCAr(pt) + TPCchi2=4.5
1376   if (cutMode == 100) 
1377   {
1378     Int_t    minclsTPC=80;
1379     Double_t maxchi2perTPCcl=4.5;
1380     Double_t maxdcazITSTPC=1.e9;
1381
1382     //
1383     // TPC
1384     //
1385     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1386     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1387     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1388     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1389     //
1390     // ITS
1391     //
1392     esdTrackCuts->SetRequireITSRefit(kTRUE);
1393     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1394     //
1395     // primary selection
1396     //
1397     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1398     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1399     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1400
1401     // 7*(0.0050+0.0060/pt^0.9)
1402     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1403
1404     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + TPCchi2 4.5";
1405   }
1406
1407   // TPC-tracks
1408   if (cutMode == 110) 
1409   {
1410
1411     minNClustersTPC = 70;
1412     maxChi2PerClusterTPC = 4.0;
1413     maxDCAtoVertexXY = 1.e9; // cm
1414     maxDCAtoVertexZ  = 1.e9; // cm
1415
1416     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1417     esdTrackCuts->SetRequireTPCRefit(kFALSE);
1418     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1419     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1420     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1421     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1422     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1423     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1424     esdTrackCuts->SetDCAToVertex2D(kTRUE);
1425
1426     TString tag = "TPC-tracks loose criteria";
1427   }
1428
1429
1430   // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 50 TPCclust
1431   if (cutMode == 120) 
1432   {
1433     Int_t    minclsTPC=50;
1434     Double_t maxchi2perTPCcl=4.;
1435     Double_t maxdcazITSTPC=1.e9;
1436
1437     //
1438     // TPC
1439     //
1440     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1441     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1442     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1443     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1444     //
1445     // ITS
1446     //
1447     esdTrackCuts->SetRequireITSRefit(kTRUE);
1448     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1449     //
1450     // primary selection
1451     //
1452     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1453     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1454     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1455
1456     // 7*(0.0050+0.0060/pt^0.9)
1457     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1458
1459     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1460   }
1461
1462   // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 70 TPCclust + accept kink daughters
1463   if (cutMode == 130) 
1464   {
1465     Int_t    minclsTPC=70;
1466     Double_t maxchi2perTPCcl=4.;
1467     Double_t maxdcazITSTPC=1.e9;
1468
1469     //
1470     // TPC
1471     //
1472     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1473     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
1474     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1475     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1476     //
1477     // ITS
1478     //
1479     esdTrackCuts->SetRequireITSRefit(kTRUE);
1480     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1481     //
1482     // primary selection
1483     //
1484     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1485     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1486     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1487
1488     // 7*(0.0050+0.0060/pt^0.9)
1489     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1490
1491     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1492   }
1493
1494   // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 30 TPCclust + accept kink daughters
1495   if (cutMode == 140) 
1496   {
1497     Int_t    minclsTPC=30;
1498     Double_t maxchi2perTPCcl=4.;
1499     Double_t maxdcazITSTPC=1.e9;
1500
1501     //
1502     // TPC
1503     //
1504     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1505     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
1506     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1507     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1508     //
1509     // ITS
1510     //
1511     esdTrackCuts->SetRequireITSRefit(kTRUE);
1512     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1513     //
1514     // primary selection
1515     //
1516     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1517     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1518     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1519
1520     // 7*(0.0050+0.0060/pt^0.9)
1521     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1522
1523     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1524   }
1525
1526   // Adam Kisiel track selectiion
1527   if (cutMode == 150) 
1528   {
1529     Int_t    minclsTPC=70;
1530     Double_t maxchi2perTPCcl=4.;
1531     Double_t maxdcazITSTPC=0.25;
1532     Double_t maxdcaxyITSTPC=0.2;
1533
1534     //
1535     // TPC
1536     //
1537     //esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1538     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1539     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1540     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1541     //
1542     // ITS
1543     //
1544     esdTrackCuts->SetRequireITSRefit(kTRUE);
1545     //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1546     //
1547     // primary selection
1548     //
1549     //esdTrackCuts->SetDCAToVertex2D(kFALSE);
1550     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1551     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1552     esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1553
1554     // 7*(0.0050+0.0060/pt^0.9)
1555     //esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1556
1557     TString tag = "Adam Kisiel track selection";
1558   }
1559
1560   // TPC+ITS refit
1561   // for cut studies
1562   if (cutMode == 151) 
1563   {
1564     //
1565     // TPC
1566     //
1567     esdTrackCuts->SetRequireTPCRefit(kTRUE);
1568     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1569     //
1570     // ITS
1571     //
1572     esdTrackCuts->SetRequireITSRefit(kTRUE);
1573     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1574     //
1575
1576     TString tag = "TPC+ITS refit required - for cut studies";
1577   }
1578
1579   // TPC+ITS
1580   // for cut studies
1581   if (cutMode == 152) 
1582   {
1583     //
1584     // TPC
1585     //
1586     esdTrackCuts->SetRequireTPCRefit(kTRUE);
1587     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1588     //
1589     // ITS
1590     //
1591     //esdTrackCuts->SetRequireITSRefit(kTRUE);
1592     //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1593     //
1594     
1595     TString tag = "TPC refit required - for cut studies";
1596   }
1597
1598   // TPC
1599   // for cut studies
1600   if (cutMode == 153) 
1601   {
1602     //
1603     // TPC
1604     //
1605     esdTrackCuts->SetRequireTPCRefit(kFALSE);
1606     esdTrackCuts->SetRequireITSRefit(kFALSE);
1607     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1608     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1609     //
1610     // ITS
1611     //
1612     //esdTrackCuts->SetRequireITSRefit(kTRUE);
1613     //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1614     //
1615     
1616     TString tag = "TPC stand alone - for cut studies";
1617   }
1618
1619
1620
1621
1622
1623
1624   // cuts for data without field
1625   if (!fieldOn)
1626   {
1627     cov5 = 1e10;
1628     tag += " without field";
1629   }
1630
1631   Printf("Created track cuts for: %s", tag.Data());
1632
1633   return esdTrackCuts;
1634 }