]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/dNdPt/macros/CreatedNdPtTrackCuts.C
-- trigger selecion changed
[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 // last modified: 2011-03-28 
6 // m.l.knichel@gsi.de
7 // added cut modes 200,201: replacing TPCNcluster cut
8
9
10 AliESDtrackCuts* CreatedNdPtTrackCuts(Int_t cutMode=1, Bool_t fieldOn = kTRUE, Bool_t hists = kTRUE)
11 {
12   AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts");
13
14   if (hists)
15     esdTrackCuts->DefineHistograms(1);
16
17   Double_t cov1, cov2, cov3, cov4, cov5;
18   Double_t nSigma;
19   Double_t maxDCAtoVertex, maxDCAtoVertexXY, maxDCAtoVertexZ;
20   Double_t minNClustersTPC;
21   Double_t maxChi2PerClusterTPC;
22   Double_t minPt, maxPt;
23
24   // default cuts for ITS+TPC
25   if (cutMode == 0) 
26   {
27     cov1 = 2;
28     cov2 = 2;
29     cov3 = 0.5;
30     cov4 = 0.5;
31     cov5 = 2;
32     nSigma = 3;
33     minNClustersTPC = 50;
34     maxChi2PerClusterTPC = 3.5;
35
36     esdTrackCuts->SetMaxCovDiagonalElements(cov1, cov2, cov3, cov4, cov5);
37     esdTrackCuts->SetMinNsigmaToVertex(nSigma);
38     esdTrackCuts->SetRequireSigmaToVertex(kTRUE);
39     esdTrackCuts->SetRequireTPCRefit(kTRUE);
40     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
41     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
42     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
43
44     TString tag("Global tracking");
45   }
46
47   // TPC-only cuts (vertex n sigma cut)
48   if (cutMode == 1) 
49   {
50     // beta cuts (still under investigation)
51     //cov1 = 4;
52     //cov2 = 4;
53     cov1 = 2;
54     cov2 = 2;
55     cov3 = 0.5;
56     cov4 = 0.5;
57     cov5 = 2;
58     nSigma = 4;
59     minNClustersTPC = 50;
60     maxChi2PerClusterTPC = 3.5;
61
62     esdTrackCuts->SetMaxCovDiagonalElements(cov1, cov2, cov3, cov4, cov5);
63     esdTrackCuts->SetMinNsigmaToVertex(nSigma);
64     esdTrackCuts->SetRequireSigmaToVertex(kTRUE);
65     esdTrackCuts->SetRequireTPCRefit(kFALSE);
66     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
67     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
68     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
69
70     TString tag = "TPC-only tracking";
71   }
72
73   // TPC-only cuts (vertex maxDCAtoVertex cut)
74   if (cutMode == 2) 
75   {
76     // beta cuts (still under investigation)
77     maxDCAtoVertex = 3.0; // cm
78     minNClustersTPC = 50;
79     maxChi2PerClusterTPC = 3.5;
80
81     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
82     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);    
83     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);    
84     esdTrackCuts->SetRequireTPCRefit(kFALSE);
85     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
86     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
87     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
88
89     TString tag = "TPC-only tracking";
90   }
91
92   // TPC-only no vertex cuts
93   if (cutMode == 3) 
94   {
95     // beta cuts (still under investigation)
96     minNClustersTPC = 50;
97     maxChi2PerClusterTPC = 3.5;
98
99     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
100     esdTrackCuts->SetRequireTPCRefit(kFALSE);
101     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
102     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
103     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
104
105     TString tag = "TPC-only tracking";
106   }
107
108   // TPC-only no cuts at all 
109   if (cutMode == 4) 
110   {
111
112     // beta cuts (still under investigation)
113     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
114     esdTrackCuts->SetRequireTPCRefit(kFALSE);
115     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
116
117     TString tag = "TPC-only tracking";
118   }
119
120   // TPC-only no kink removal no chi2 
121   if (cutMode == 5) 
122   {
123     // beta cuts (still under investigation)
124     minNClustersTPC = 50;
125     //maxChi2PerClusterTPC = 3.5;
126
127     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
128     esdTrackCuts->SetRequireTPCRefit(kFALSE);
129     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
130     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
131     //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
132
133     TString tag = "TPC-only tracking";
134   }
135
136   // TPC-only no kink removal 
137   if (cutMode == 6) 
138   {
139     // beta cuts (still under investigation)
140     minNClustersTPC = 50;
141     maxChi2PerClusterTPC = 3.5;
142
143     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
144     esdTrackCuts->SetRequireTPCRefit(kFALSE);
145     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
146     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
147     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
148
149     TString tag = "TPC-only tracking";
150   }
151
152   // TPC-only no kink removal no minNClustersTPC 
153   if (cutMode == 7) 
154   {
155     // beta cuts (still under investigation)
156     //minNClustersTPC = 50;
157     maxChi2PerClusterTPC = 3.5;
158
159     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
160     esdTrackCuts->SetRequireTPCRefit(kFALSE);
161     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
162     //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
163     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
164
165     TString tag = "TPC-only tracking";
166   }
167   // TPC-only no kink removal no minNClustersTPC 
168   if (cutMode == 8) 
169   {
170     // beta cuts (still under investigation)
171     //minNClustersTPC = 50;
172     maxChi2PerClusterTPC = 3.5;
173     maxDCAtoVertex = 3.0; // cm
174
175     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
176     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);    
177     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);    
178     esdTrackCuts->SetRequireTPCRefit(kFALSE);
179     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
180     //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
181     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
182
183     TString tag = "TPC-only tracking";
184   }
185
186   // TPC-only no kink removal no minNClustersTPC no maxChi2PerClusterTPC
187   if (cutMode == 9) 
188   {
189     // beta cuts (still under investigation)
190     //minNClustersTPC = 50;
191     //maxChi2PerClusterTPC = 3.5;
192     maxDCAtoVertex = 3.0; // cm
193
194     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
195     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);    
196     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);    
197     esdTrackCuts->SetRequireTPCRefit(kFALSE);
198     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
199     //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
200     //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
201
202     TString tag = "TPC-only tracking";
203   }
204
205   // TPC-only (loose cuts, absolute DCA cut) 
206   if (cutMode == 10) 
207   {
208     // beta cuts (still under investigation)
209     minNClustersTPC = 50;
210     maxChi2PerClusterTPC = 4.0;
211     maxDCAtoVertex = 2.8; // cm
212     minPt=0.15;
213     maxPt=1.e10;
214
215     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
216     esdTrackCuts->SetRequireTPCRefit(kFALSE);
217     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
218     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
219     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
220     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);    
221     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);    
222     esdTrackCuts->SetPtRange(minPt,maxPt);
223
224     TString tag = "TPC-only tracking";
225   }
226
227
228   // TPC-only (loose cuts, no DCA cut) 
229   if (cutMode == 11) 
230   {
231     // beta cuts (still under investigation)
232     minNClustersTPC = 50;
233     maxChi2PerClusterTPC = 4.0;
234     maxDCAtoVertexXY = 1.e10; // cm
235     maxDCAtoVertexZ  = 1.e10; // cm
236     minPt=0.15;
237     maxPt=1.e10;
238
239     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
240     esdTrackCuts->SetRequireTPCRefit(kFALSE);
241     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
242     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
243     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
244     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
245     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
246     esdTrackCuts->SetDCAToVertex2D(kTRUE);
247     esdTrackCuts->SetPtRange(minPt,maxPt);
248
249     TString tag = "TPC-only tracking";
250   }
251
252   // TPC-only (standard cuts, no DCA cut) 
253   if (cutMode == 12) 
254   {
255     // beta cuts (still under investigation)
256     minNClustersTPC = 96;
257     maxChi2PerClusterTPC = 3.5;
258     maxDCAtoVertexXY = 1.e10; // cm
259     maxDCAtoVertexZ  = 1.e10; // cm
260     minPt=0.2;
261     maxPt=1.e10;
262
263     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
264     esdTrackCuts->SetRequireTPCRefit(kFALSE);
265     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
266     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
267     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
268     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
269     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
270     esdTrackCuts->SetDCAToVertex2D(kTRUE);
271     esdTrackCuts->SetPtRange(minPt,maxPt);
272
273     TString tag = "TPC-only tracking";
274   }
275
276   // TPC-only (tight cuts, no DCA cut) 
277   if (cutMode == 13) 
278   {
279     // beta cuts (still under investigation)
280     minNClustersTPC = 120;
281     maxChi2PerClusterTPC = 3.5;
282     maxDCAtoVertexXY = 1.e10; // cm
283     maxDCAtoVertexZ  = 1.e10; // cm
284     minPt=0.3;
285     maxPt=1.e10;
286
287     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
288     esdTrackCuts->SetRequireTPCRefit(kFALSE);
289     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
290     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
291     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
292     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
293     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
294     esdTrackCuts->SetDCAToVertex2D(kTRUE);
295     esdTrackCuts->SetPtRange(minPt,maxPt);
296
297     TString tag = "TPC-only tracking";
298   }
299
300   // TPC-only (loose cuts, no pt cut) 
301   if (cutMode == 14) 
302   {
303     // beta cuts (still under investigation)
304     minNClustersTPC = 50;
305     maxChi2PerClusterTPC = 4.0;
306     maxDCAtoVertexXY = 1.e10; // cm
307     maxDCAtoVertexZ  = 1.e10; // cm
308     minPt=0.0;
309     maxPt=1.e10;
310
311     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
312     esdTrackCuts->SetRequireTPCRefit(kFALSE);
313     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
314     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
315     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
316     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
317     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
318     esdTrackCuts->SetDCAToVertex2D(kTRUE);
319     esdTrackCuts->SetPtRange(minPt,maxPt);
320
321     TString tag = "TPC-only tracking";
322   }
323
324   // TPC-only (standard cuts, no pt cut) 
325   if (cutMode == 15) 
326   {
327     // beta cuts (still under investigation)
328     minNClustersTPC = 96;
329     maxChi2PerClusterTPC = 3.5;
330     maxDCAtoVertexXY = 1.e10; // cm
331     maxDCAtoVertexZ  = 1.e10; // cm
332     minPt=0.0;
333     maxPt=1.e10;
334
335     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
336     esdTrackCuts->SetRequireTPCRefit(kFALSE);
337     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
338     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
339     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
340     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
341     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
342     esdTrackCuts->SetDCAToVertex2D(kTRUE);
343     esdTrackCuts->SetPtRange(minPt,maxPt);
344
345     TString tag = "TPC-only tracking";
346   }
347
348   // TPC-only (tight cuts, no pt cuts) 
349   if (cutMode == 16) 
350   {
351     // beta cuts (still under investigation)
352     minNClustersTPC = 120;
353     maxChi2PerClusterTPC = 3.5;
354     maxDCAtoVertexXY = 1.e10; // cm
355     maxDCAtoVertexZ  = 1.e10; // cm
356     minPt=0.0;
357     maxPt=1.e10;
358
359     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
360     esdTrackCuts->SetRequireTPCRefit(kFALSE);
361     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
362     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
363     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
364     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
365     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
366     esdTrackCuts->SetDCAToVertex2D(kTRUE);
367     esdTrackCuts->SetPtRange(minPt,maxPt);
368
369     TString tag = "TPC-only tracking";
370   }
371   // TPC-only (loose cuts)
372   if (cutMode == 17) 
373   {
374     // beta cuts (still under investigation)
375     minNClustersTPC = 50;
376     maxChi2PerClusterTPC = 4.0;
377     //maxDCAtoVertexXY = 2.4; // cm
378     //maxDCAtoVertexZ  = 3.2; // cm
379     maxDCAtoVertexXY = 1.6; // cm
380     maxDCAtoVertexZ  = 2.1; // cm
381     minPt=0.15;
382     maxPt=1.e10;
383
384     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
385     esdTrackCuts->SetRequireTPCRefit(kFALSE);
386     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
387     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
388     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
389     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
390     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
391     esdTrackCuts->SetDCAToVertex2D(kTRUE);
392     esdTrackCuts->SetPtRange(minPt,maxPt);
393
394     TString tag = "TPC-only tracking";
395   }
396
397   // TPC-only (standard cuts)
398   if (cutMode == 18) 
399   {
400     // beta cuts (still under investigation)
401     minNClustersTPC = 96;
402     maxChi2PerClusterTPC = 3.5;
403     //maxDCAtoVertexXY = 2.4; // cm
404     //maxDCAtoVertexZ  = 3.2; // cm
405     maxDCAtoVertexXY = 1.4; // cm
406     maxDCAtoVertexZ  = 1.8; // cm
407     minPt=0.2;
408     maxPt=1.e10;
409
410     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
411     esdTrackCuts->SetRequireTPCRefit(kFALSE);
412     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
413     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
414     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
415     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
416     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
417     esdTrackCuts->SetDCAToVertex2D(kTRUE);
418     esdTrackCuts->SetPtRange(minPt,maxPt);
419
420     TString tag = "TPC-only tracking";
421   }
422
423  // TPC-only (tight cuts)
424   if (cutMode == 19) 
425   {
426     // beta cuts (still under investigation)
427     minNClustersTPC = 120;
428     maxChi2PerClusterTPC = 3.0;
429     //maxDCAtoVertexXY = 2.4; // cm
430     //maxDCAtoVertexZ  = 3.2; // cm
431     maxDCAtoVertexXY = 1.4; // cm
432     maxDCAtoVertexZ  = 1.8; // cm
433     minPt=0.3;
434     maxPt=1.e10;
435
436     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
437     esdTrackCuts->SetRequireTPCRefit(kFALSE);
438     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
439     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
440     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
441     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
442     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
443     esdTrackCuts->SetDCAToVertex2D(kTRUE);
444     esdTrackCuts->SetPtRange(minPt,maxPt);
445
446     TString tag = "TPC-only tracking";
447   }
448
449   // TPC-only (arb. cuts, kink cuts included)
450   if (cutMode == 20) 
451   {
452     // beta cuts (still under investigation)
453     minNClustersTPC = 50;
454     maxChi2PerClusterTPC = 1.e10;
455     maxDCAtoVertexXY = 3.0; // cm
456     maxDCAtoVertexZ  = 3.0; // cm
457     minPt=0.0;
458     maxPt=1.e10;
459
460     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
461     esdTrackCuts->SetRequireTPCRefit(kFALSE);
462     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
463     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
464     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
465     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
466     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
467     esdTrackCuts->SetDCAToVertex2D(kTRUE);
468     esdTrackCuts->SetPtRange(minPt,maxPt);
469
470     TString tag = "TPC-only tracking";
471   }
472
473   // TPC-only (arb. cuts, kink cuts excluded)
474   if (cutMode == 21) 
475   {
476     // beta cuts (still under investigation)
477     minNClustersTPC = 50;
478     maxChi2PerClusterTPC = 1.e10;
479     maxDCAtoVertexXY = 3.0; // cm
480     maxDCAtoVertexZ  = 3.0; // cm
481     minPt=0.0;
482     maxPt=1.e10;
483
484     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
485     esdTrackCuts->SetRequireTPCRefit(kFALSE);
486     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
487     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
488     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
489     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
490     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
491     esdTrackCuts->SetDCAToVertex2D(kTRUE);
492     esdTrackCuts->SetPtRange(minPt,maxPt);
493
494     TString tag = "TPC-only tracking";
495   }
496
497   // TPC-only (arb. cuts, kink cuts excluded, no chi2, no DCA)
498   if (cutMode == 22) 
499   {
500     // beta cuts (still under investigation)
501     minNClustersTPC = 50;
502     maxChi2PerClusterTPC = 1.e10;
503     maxDCAtoVertexXY = 1.e10; // cm
504     maxDCAtoVertexZ  = 1.e10; // cm
505     minPt=0.15;
506     maxPt=1.e10;
507
508     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
509     esdTrackCuts->SetRequireTPCRefit(kFALSE);
510     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
511     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
512     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
513     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
514     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
515     esdTrackCuts->SetDCAToVertex2D(kTRUE);
516     esdTrackCuts->SetPtRange(minPt,maxPt);
517
518     TString tag = "TPC-only tracking";
519   }
520
521   // TPC-only 
522   if (cutMode == 23) 
523   {
524     // beta cuts (still under investigation)
525     minNClustersTPC = 70;
526     maxChi2PerClusterTPC = 4.0;
527     maxDCAtoVertexXY = 2.4; // cm
528     maxDCAtoVertexZ  = 3.2; // cm
529
530     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
531     esdTrackCuts->SetRequireTPCRefit(kFALSE);
532     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
533     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
534     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
535     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
536     esdTrackCuts->SetRequireITSRefit(kFALSE);
537     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
538     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
539     esdTrackCuts->SetDCAToVertex2D(kTRUE);
540     //esdTrackCuts->SetPtRange(minPt,maxPt);
541     //esdTrackCuts->SetEtaRange(minEta,maxEta);
542
543     TString tag = "TPC-only tracking";
544   }
545   
546   // TPC-only tight cuts
547   if (cutMode == 230) 
548   {
549     // beta cuts (still under investigation)
550     minNClustersTPC = 70;
551     maxChi2PerClusterTPC = 4.0;
552     maxDCAtoVertexXY = 0.3; // cm
553     maxDCAtoVertexZ  = 0.3; // cm
554
555     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
556     esdTrackCuts->SetRequireTPCRefit(kFALSE);
557     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
558     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
559     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
560     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
561     esdTrackCuts->SetRequireITSRefit(kFALSE);
562     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
563     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
564     esdTrackCuts->SetDCAToVertex2D(kTRUE);
565     //esdTrackCuts->SetPtRange(minPt,maxPt);
566     //esdTrackCuts->SetEtaRange(minEta,maxEta);
567
568     TString tag = "TPC-only tracking";
569   }
570   
571
572   // TPC-only (no pt cut, no eta cut)
573   if (cutMode == 24) 
574   {
575     // beta cuts (still under investigation)
576     minNClustersTPC = 50;
577     maxChi2PerClusterTPC = 4.0;
578     maxDCAtoVertexXY = 2.4; // cm
579     maxDCAtoVertexZ  = 3.2; // cm
580     minPt=0.0;
581     maxPt=1.e10;
582
583     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
584     esdTrackCuts->SetRequireTPCRefit(kFALSE);
585     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
586     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
587     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
588     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
589     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
590     esdTrackCuts->SetDCAToVertex2D(kTRUE);
591     esdTrackCuts->SetPtRange(minPt,maxPt);
592
593     TString tag = "TPC-only tracking";
594   }
595   
596   // TPC-only (no pt cut, no eta cut) updated 2011
597   if (cutMode == 201) 
598   {
599     // beta cuts (still under investigation)
600     //minNClustersTPC = 50;
601     Float_t minNCrossedRowsTPC = 120; 
602     Float_t minRatioCrossedRowsOverFindableClustersTPC = 0.8; 
603     Float_t maxFractionSharedTPCCluster = 0.4;    
604     maxChi2PerClusterTPC = 4.0;
605     maxDCAtoVertexXY = 2.4; // cm
606     maxDCAtoVertexZ  = 3.2; // cm
607     minPt=0.0;
608     maxPt=1.e10;
609
610     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
611     esdTrackCuts->SetRequireTPCRefit(kFALSE);
612     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
613     //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
614     
615     esdTrackCuts->SetMinNCrossedRowsTPC(minNCrossedRowsTPC);
616     esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(minRatioCrossedRowsOverFindableClustersTPC);
617     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
618     esdTrackCuts->SetMaxFractionSharedTPCClusters(maxFractionSharedTPCCluster);
619     
620     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
621     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
622     esdTrackCuts->SetDCAToVertex2D(kTRUE);
623     esdTrackCuts->SetPtRange(minPt,maxPt);
624
625     TString tag = "TPC-only tracking (2011)";
626   }  
627   
628
629   //
630   // systematic errors DCA cut studies
631   //
632   // TPC-only
633   if (cutMode == 25) 
634   {
635     // beta cuts (still under investigation)
636     minNClustersTPC = 50;
637     maxChi2PerClusterTPC = 4.0;
638     maxDCAtoVertexXY = 1.4; // cm
639     maxDCAtoVertexZ  = 2.2; // cm
640     minPt=0.0;
641     maxPt=1.e10;
642
643     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
644     esdTrackCuts->SetRequireTPCRefit(kFALSE);
645     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
646     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
647     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
648     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
649     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
650     esdTrackCuts->SetDCAToVertex2D(kTRUE);
651     esdTrackCuts->SetPtRange(minPt,maxPt);
652
653     TString tag = "TPC-only tracking";
654   }
655
656   if (cutMode == 26) 
657   {
658     // beta cuts (still under investigation)
659     minNClustersTPC = 50;
660     maxChi2PerClusterTPC = 4.0;
661     maxDCAtoVertexXY = 1.6; // cm
662     maxDCAtoVertexZ  = 2.4; // cm
663     minPt=0.0;
664     maxPt=1.e10;
665
666     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
667     esdTrackCuts->SetRequireTPCRefit(kFALSE);
668     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
669     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
670     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
671     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
672     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
673     esdTrackCuts->SetDCAToVertex2D(kTRUE);
674     esdTrackCuts->SetPtRange(minPt,maxPt);
675
676     TString tag = "TPC-only tracking";
677   }
678
679   //
680   // systematic errors cut studies
681   //
682   // TPC-only
683   if (cutMode == 27) 
684   {
685     // beta cuts (still under investigation)
686     minNClustersTPC = 50;
687     maxChi2PerClusterTPC = 4.0;
688     maxDCAtoVertexXY = 1.8; // cm
689     maxDCAtoVertexZ  = 2.6; // cm
690     minPt=0.0;
691     maxPt=1.e10;
692
693     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
694     esdTrackCuts->SetRequireTPCRefit(kFALSE);
695     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
696     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
697     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
698     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
699     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
700     esdTrackCuts->SetDCAToVertex2D(kTRUE);
701     esdTrackCuts->SetPtRange(minPt,maxPt);
702
703     TString tag = "TPC-only tracking";
704   }
705
706   if (cutMode == 28) 
707   {
708     // beta cuts (still under investigation)
709     minNClustersTPC = 50;
710     maxChi2PerClusterTPC = 4.0;
711     maxDCAtoVertexXY = 2.0; // cm
712     maxDCAtoVertexZ  = 2.8; // cm
713     minPt=0.0;
714     maxPt=1.e10;
715
716     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
717     esdTrackCuts->SetRequireTPCRefit(kFALSE);
718     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
719     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
720     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
721     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
722     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
723     esdTrackCuts->SetDCAToVertex2D(kTRUE);
724     esdTrackCuts->SetPtRange(minPt,maxPt);
725
726     TString tag = "TPC-only tracking";
727   }
728
729   if (cutMode == 29) 
730   {
731     // beta cuts (still under investigation)
732     minNClustersTPC = 50;
733     maxChi2PerClusterTPC = 4.0;
734     maxDCAtoVertexXY = 2.2; // cm
735     maxDCAtoVertexZ  = 3.0; // cm
736     minPt=0.0;
737     maxPt=1.e10;
738
739     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
740     esdTrackCuts->SetRequireTPCRefit(kFALSE);
741     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
742     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
743     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
744     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
745     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
746     esdTrackCuts->SetDCAToVertex2D(kTRUE);
747     esdTrackCuts->SetPtRange(minPt,maxPt);
748
749     TString tag = "TPC-only tracking";
750   }
751
752   if (cutMode == 30) 
753   {
754     // beta cuts (still under investigation)
755     minNClustersTPC = 50;
756     maxChi2PerClusterTPC = 4.0;
757     maxDCAtoVertexXY = 2.4; // cm
758     maxDCAtoVertexZ  = 3.2; // cm
759     minPt=0.0;
760     maxPt=1.e10;
761
762     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
763     esdTrackCuts->SetRequireTPCRefit(kFALSE);
764     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
765     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
766     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
767     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
768     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
769     esdTrackCuts->SetDCAToVertex2D(kTRUE);
770     esdTrackCuts->SetPtRange(minPt,maxPt);
771
772     TString tag = "TPC-only tracking";
773   }
774
775   if (cutMode == 31) 
776   {
777     // beta cuts (still under investigation)
778     minNClustersTPC = 50;
779     maxChi2PerClusterTPC = 4.0;
780     maxDCAtoVertexXY = 2.6; // cm
781     maxDCAtoVertexZ  = 3.4; // cm
782     minPt=0.0;
783     maxPt=1.e10;
784
785     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
786     esdTrackCuts->SetRequireTPCRefit(kFALSE);
787     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
788     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
789     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
790     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
791     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
792     esdTrackCuts->SetDCAToVertex2D(kTRUE);
793     esdTrackCuts->SetPtRange(minPt,maxPt);
794
795     TString tag = "TPC-only tracking";
796   }
797
798
799   if (cutMode == 32) 
800   {
801     // beta cuts (still under investigation)
802     minNClustersTPC = 50;
803     maxChi2PerClusterTPC = 4.0;
804     maxDCAtoVertexXY = 2.8; // cm
805     maxDCAtoVertexZ  = 3.6; // cm
806     minPt=0.0;
807     maxPt=1.e10;
808
809     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
810     esdTrackCuts->SetRequireTPCRefit(kFALSE);
811     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
812     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
813     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
814     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
815     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
816     esdTrackCuts->SetDCAToVertex2D(kTRUE);
817     esdTrackCuts->SetPtRange(minPt,maxPt);
818
819     TString tag = "TPC-only tracking";
820   }
821
822   if (cutMode == 33) 
823   {
824     // beta cuts (still under investigation)
825     minNClustersTPC = 50;
826     maxChi2PerClusterTPC = 4.0;
827     maxDCAtoVertexXY = 3.0; // cm
828     maxDCAtoVertexZ  = 3.8; // cm
829     minPt=0.0;
830     maxPt=1.e10;
831
832     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
833     esdTrackCuts->SetRequireTPCRefit(kFALSE);
834     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
835     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
836     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
837     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
838     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
839     esdTrackCuts->SetDCAToVertex2D(kTRUE);
840     esdTrackCuts->SetPtRange(minPt,maxPt);
841
842     TString tag = "TPC-only tracking";
843   }
844
845   if (cutMode == 34) 
846   {
847     // beta cuts (still under investigation)
848     minNClustersTPC = 50;
849     maxChi2PerClusterTPC = 4.0;
850     maxDCAtoVertexXY = 3.2; // cm
851     maxDCAtoVertexZ  = 4.0; // cm
852     minPt=0.0;
853     maxPt=1.e10;
854
855     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
856     esdTrackCuts->SetRequireTPCRefit(kFALSE);
857     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
858     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
859     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
860     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
861     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
862     esdTrackCuts->SetDCAToVertex2D(kTRUE);
863     esdTrackCuts->SetPtRange(minPt,maxPt);
864
865     TString tag = "TPC-only tracking";
866   }
867
868   if (cutMode == 35) 
869   {
870     // beta cuts (still under investigation)
871     minNClustersTPC = 50;
872     maxChi2PerClusterTPC = 4.0;
873     maxDCAtoVertexXY = 3.4; // cm
874     maxDCAtoVertexZ  = 4.2; // cm
875     minPt=0.0;
876     maxPt=1.e10;
877
878     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
879     esdTrackCuts->SetRequireTPCRefit(kFALSE);
880     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
881     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
882     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
883     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
884     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
885     esdTrackCuts->SetDCAToVertex2D(kTRUE);
886     esdTrackCuts->SetPtRange(minPt,maxPt);
887
888     TString tag = "TPC-only tracking";
889   }
890
891 //
892 // cut stability systematics
893 //
894
895   if (cutMode == 36) 
896   {
897     // beta cuts (still under investigation)
898     minNClustersTPC = 70;
899     maxChi2PerClusterTPC = 4.0;
900     maxDCAtoVertexXY = 2.4; // cm
901     maxDCAtoVertexZ  = 3.2; // cm
902     minPt=0.0;
903     maxPt=1.e10;
904
905     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
906     esdTrackCuts->SetRequireTPCRefit(kFALSE);
907     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
908     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
909     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
910     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
911     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
912     esdTrackCuts->SetDCAToVertex2D(kTRUE);
913     esdTrackCuts->SetPtRange(minPt,maxPt);
914
915     TString tag = "TPC-only tracking";
916   }
917
918  if (cutMode == 37) 
919   {
920     // beta cuts (still under investigation)
921     minNClustersTPC = 90;
922     maxChi2PerClusterTPC = 4.0;
923     maxDCAtoVertexXY = 2.4; // cm
924     maxDCAtoVertexZ  = 3.2; // cm
925     minPt=0.0;
926     maxPt=1.e10;
927
928     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
929     esdTrackCuts->SetRequireTPCRefit(kFALSE);
930     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
931     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
932     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
933     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
934     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
935     esdTrackCuts->SetDCAToVertex2D(kTRUE);
936     esdTrackCuts->SetPtRange(minPt,maxPt);
937
938     TString tag = "TPC-only tracking";
939   }
940
941   if (cutMode == 38) 
942   {
943     // beta cuts (still under investigation)
944     minNClustersTPC = 50;
945     maxChi2PerClusterTPC = 3.0;
946     maxDCAtoVertexXY = 2.4; // cm
947     maxDCAtoVertexZ  = 3.2; // cm
948     minPt=0.0;
949     maxPt=1.e10;
950
951     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
952     esdTrackCuts->SetRequireTPCRefit(kFALSE);
953     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
954     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
955     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
956     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
957     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
958     esdTrackCuts->SetDCAToVertex2D(kTRUE);
959     esdTrackCuts->SetPtRange(minPt,maxPt);
960
961     TString tag = "TPC-only tracking";
962   }
963
964   if (cutMode == 39) 
965   {
966     // beta cuts (still under investigation)
967     minNClustersTPC = 50;
968     maxChi2PerClusterTPC = 5.0;
969     maxDCAtoVertexXY = 2.4; // cm
970     maxDCAtoVertexZ  = 3.2; // cm
971     minPt=0.0;
972     maxPt=1.e10;
973
974     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
975     esdTrackCuts->SetRequireTPCRefit(kFALSE);
976     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
977     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
978     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
979     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
980     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
981     esdTrackCuts->SetDCAToVertex2D(kTRUE);
982     esdTrackCuts->SetPtRange(minPt,maxPt);
983
984     TString tag = "TPC-only tracking";
985   }
986
987   if (cutMode == 40) 
988   {
989     // beta cuts (still under investigation)
990     minNClustersTPC = 50;
991     maxChi2PerClusterTPC = 4.0;
992     maxDCAtoVertexXY = 1.4; // cm
993     maxDCAtoVertexZ  = 2.2; // cm
994     minPt=0.0;
995     maxPt=1.e10;
996
997     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
998     esdTrackCuts->SetRequireTPCRefit(kFALSE);
999     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1000     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1001     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1002     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1003     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1004     esdTrackCuts->SetDCAToVertex2D(kTRUE);
1005     esdTrackCuts->SetPtRange(minPt,maxPt);
1006
1007     TString tag = "TPC-only tracking";
1008   }
1009
1010   if (cutMode == 41) 
1011   {
1012     // beta cuts (still under investigation)
1013     minNClustersTPC = 50;
1014     maxChi2PerClusterTPC = 4.0;
1015     maxDCAtoVertexXY = 3.4; // cm
1016     maxDCAtoVertexZ  = 4.2; // cm
1017     minPt=0.0;
1018     maxPt=1.e10;
1019
1020     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1021     esdTrackCuts->SetRequireTPCRefit(kFALSE);
1022     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1023     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1024     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1025     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1026     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1027     esdTrackCuts->SetDCAToVertex2D(kTRUE);
1028     esdTrackCuts->SetPtRange(minPt,maxPt);
1029
1030     TString tag = "TPC-only tracking";
1031   }
1032
1033   if (cutMode == 42) 
1034   {
1035     // beta cuts (still under investigation)
1036     minNClustersTPC = 50;
1037     maxChi2PerClusterTPC = 4.0;
1038     maxDCAtoVertexXY = 2.4; // cm
1039     maxDCAtoVertexZ  = 3.2; // cm
1040     minPt=0.0;
1041     maxPt=1.e10;
1042
1043     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1044     esdTrackCuts->SetRequireTPCRefit(kFALSE);
1045     //esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1046     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
1047     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1048     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1049     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1050     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1051     esdTrackCuts->SetDCAToVertex2D(kTRUE);
1052     esdTrackCuts->SetPtRange(minPt,maxPt);
1053
1054     TString tag = "TPC-only tracking";
1055   }
1056   // test
1057   if (cutMode == 43) 
1058   {
1059     // beta cuts (still under investigation)
1060     minNClustersTPC = 50;
1061     maxChi2PerClusterTPC = 4.0;
1062     //maxDCAtoVertexXY = 2.4; // cm
1063     //maxDCAtoVertexZ  = 3.2; // cm
1064     //minPt=0.15;
1065     //maxPt=1.e10;
1066
1067     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1068     esdTrackCuts->SetRequireTPCRefit(kFALSE);
1069     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1070     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1071     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1072     //esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1073     //esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1074     //esdTrackCuts->SetDCAToVertex2D(kTRUE);
1075     //esdTrackCuts->SetPtRange(minPt,maxPt);
1076     //esdTrackCuts->SetEtaRange(minEta,maxEta);
1077
1078     TString tag = "TPC-only tracking";
1079   }
1080
1081   // TPC-only + pt cut + eta cut 
1082   if (cutMode == 45) 
1083   {
1084     // beta cuts (still under investigation)
1085     //minNClustersTPC = 50;
1086     //maxChi2PerClusterTPC = 4.0;
1087     maxDCAtoVertexXY = 2.4; // cm
1088     maxDCAtoVertexZ  = 3.2; // cm
1089     //minPt=0.15;
1090     //maxPt=1.e10;
1091
1092     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1093     esdTrackCuts->SetRequireTPCRefit(kFALSE);
1094     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1095     //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1096     //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1097     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1098     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1099     esdTrackCuts->SetDCAToVertex2D(kTRUE);
1100     //esdTrackCuts->SetPtRange(minPt,maxPt);
1101     //esdTrackCuts->SetEtaRange(minEta,maxEta);
1102
1103     TString tag = "TPC-only tracking";
1104   }
1105
1106   // TPC-tracks + SPD point + ITS refit
1107   if (cutMode == 50) 
1108   {
1109     Int_t    minclsTPC=70;
1110     Double_t maxchi2perTPCcl=4.;
1111     //Double_t maxEtaInAcc=0.8;
1112     Double_t maxdcaxyITSTPC=0.2;
1113     Double_t maxdcazITSTPC=1.e9;
1114
1115     esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1116     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1117     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1118     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1119     esdTrackCuts->SetRequireITSRefit(kTRUE);
1120     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1121     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1122     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1123     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1124     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1125     //esdTrackCuts->SetEtaRange(-maxEtaInAcc,maxEtaInAcc);
1126
1127     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster";
1128   }
1129
1130   // TPC-tracks + SPD point + ITS refit
1131   if (cutMode == 60) 
1132   {
1133     Int_t    minclsITS=4;
1134     Int_t    minclsTPC=70;
1135     Double_t maxchi2perTPCcl=4.;
1136     Double_t maxdcaxyITSTPC=0.2;
1137     Double_t maxdcazITSTPC=1.e9;
1138
1139     esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1140     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1141     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1142     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1143     esdTrackCuts->SetRequireITSRefit(kTRUE);
1144     esdTrackCuts->SetMinNClustersITS(minclsITS);
1145     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1146     //esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1147     esdTrackCuts->SetRequireTPCRefit(kTRUE);
1148     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1149     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1150     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1151
1152     TString tag = "Global tracking: TPC refit + ITS refit + >3 ITS clusters + >=1 SPD cluster";
1153   }
1154
1155   /*
1156   // TPC-tracks + SPD point + ITS refit + DCAr(pt)
1157   if (cutMode == 70) 
1158   {
1159     Int_t    minclsTPC=70;
1160     Double_t maxchi2perTPCcl=4.;
1161     Double_t maxdcaxyITSTPC=1.e9;
1162     Double_t maxdcazITSTPC=1.e9;
1163
1164     esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1165     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1166     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1167     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1168     esdTrackCuts->SetRequireITSRefit(kTRUE);
1169     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1170     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1171     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1172     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1173     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1174
1175     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt)";
1176   }
1177   */
1178
1179   // TPC-tracks + SPD point + ITS refit + DCAr(pt)
1180   if (cutMode == 70) 
1181   {
1182     Int_t    minclsTPC=70;
1183     Double_t maxchi2perTPCcl=4.;
1184     Double_t maxdcazITSTPC=1.e9;
1185
1186     //
1187     // TPC
1188     //
1189     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1190     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1191     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1192     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1193     //
1194     // ITS
1195     //
1196     esdTrackCuts->SetRequireITSRefit(kTRUE);
1197     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1198     //
1199     // primary selection
1200     //
1201     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1202     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1203     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1204
1205     // 7*(0.0050+0.0060/pt^0.9)
1206     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1207
1208     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt)";
1209   }
1210
1211   // TPC+ITS combine tracking + DCAr(pt) + DCAz(pt)
1212   if (cutMode == 71) 
1213   {
1214     Int_t    minclsTPC=70;
1215     Double_t maxchi2perTPCcl=4.;
1216     Double_t maxdcazITSTPC=1.e9;
1217
1218     //
1219     // TPC
1220     //
1221     esdTrackCuts->SetRequireTPCRefit(kTRUE);
1222     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1223     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1224     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1225     //
1226     // ITS
1227     //
1228     esdTrackCuts->SetRequireITSRefit(kTRUE);
1229     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1230     //
1231     // primary selection
1232     //
1233     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1234     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1235     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1236
1237     // DCArphi parametrization (LHC10c pass2)
1238     // 7*(0.0026+0.0050/pt^1.01)
1239     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
1240
1241     // DCArphi parametrization (LHC10c pass2)
1242     // 7*(0.01+0.011/pt^0.72)
1243     esdTrackCuts->SetMaxDCAToVertexZPtDep("0.07+0.077/pt^0.72");
1244
1245     TString tag = "TPC+ITS combine tracking + DCAr(pt) + DCAz(pt)";
1246   }
1247
1248   // TPC+ITS combine tracking + DCAr(pt) (2010)
1249   if (cutMode == 72) 
1250   {
1251     Int_t    minclsTPC=70;
1252     Double_t maxchi2perTPCcl=4.;
1253     Double_t maxdcazITSTPC=2.0;
1254
1255     //
1256     // TPC
1257     //
1258     esdTrackCuts->SetRequireTPCRefit(kTRUE);
1259     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1260     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1261     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1262     //
1263     // ITS
1264     //
1265     esdTrackCuts->SetRequireITSRefit(kTRUE);
1266     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1267     //
1268     // primary selection
1269     //
1270     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1271     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1272     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1273
1274     // DCArphi parametrization (LHC10c pass2)
1275     // 7*(0.0026+0.0050/pt^1.01)
1276     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
1277
1278     TString tag = "TPC+ITS combine tracking + DCAr(pt) (2010)";
1279   }
1280
1281   // TPC+ITS combine tracking + DCAr(pt) (2011)
1282   if (cutMode == 200) 
1283   {
1284     //Int_t    minclsTPC=70;
1285     Float_t minNCrossedRowsTPC = 120; 
1286     Float_t minRatioCrossedRowsOverFindableClustersTPC = 0.8; 
1287     Float_t maxFractionSharedTPCCluster = 0.4;
1288     Double_t maxchi2perTPCcl=4.;
1289     Double_t maxdcazITSTPC=2.0;
1290
1291     //
1292     // TPC
1293     //
1294     esdTrackCuts->SetRequireTPCRefit(kTRUE);
1295     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1296     
1297     //esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1298     esdTrackCuts->SetMinNCrossedRowsTPC(minNCrossedRowsTPC);
1299     esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(minRatioCrossedRowsOverFindableClustersTPC);
1300     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1301     esdTrackCuts->SetMaxFractionSharedTPCClusters(maxFractionSharedTPCCluster);
1302     //
1303     // ITS
1304     //
1305     esdTrackCuts->SetRequireITSRefit(kTRUE);
1306     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1307     //
1308     // primary selection
1309     //
1310     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1311     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1312     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1313
1314     // DCArphi parametrization (LHC10c pass2)
1315     // 7*(0.0026+0.0050/pt^1.01)
1316     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
1317
1318     TString tag = "TPC+ITS combine tracking + DCAr(pt) (2011)";
1319   }
1320
1321   // TPC-tracks + SPD point + ITS refit + DCAr(pt) 4-sigma
1322   if (cutMode == 75) 
1323   {
1324     Int_t    minclsTPC=70;
1325     Double_t maxchi2perTPCcl=4.;
1326     Double_t maxdcazITSTPC=1.e9;
1327
1328     //
1329     // TPC
1330     //
1331     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1332     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1333     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1334     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1335     //
1336     // ITS
1337     //
1338     esdTrackCuts->SetRequireITSRefit(kTRUE);
1339     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1340     //
1341     // primary selection
1342     //
1343     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1344     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1345     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1346
1347     // 4*(0.0050+0.0060/pt^0.9)
1348     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.02+0.024/pt^0.9");
1349
1350     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) 4-sigma";
1351   }
1352
1353   // TPC-tracks + SPD point + ITS refit + DCAr(pt) 10-sigma
1354   if (cutMode == 80) 
1355   {
1356     Int_t    minclsTPC=70;
1357     Double_t maxchi2perTPCcl=4.;
1358     Double_t maxdcazITSTPC=1.e9;
1359
1360     //
1361     // TPC
1362     //
1363     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1364     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1365     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1366     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1367     //
1368     // ITS
1369     //
1370     esdTrackCuts->SetRequireITSRefit(kTRUE);
1371     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1372     //
1373     // primary selection
1374     //
1375     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1376     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1377     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1378
1379     // 10*(0.0050+0.0060/pt^0.9)
1380     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.05+0.06/pt^0.9");
1381
1382     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) 10 sigma";
1383   }
1384
1385   // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 60 TPCclust
1386   if (cutMode == 85) 
1387   {
1388     Int_t    minclsTPC=60;
1389     Double_t maxchi2perTPCcl=4.;
1390     Double_t maxdcazITSTPC=1.e9;
1391
1392     //
1393     // TPC
1394     //
1395     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1396     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1397     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1398     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1399     //
1400     // ITS
1401     //
1402     esdTrackCuts->SetRequireITSRefit(kTRUE);
1403     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1404     //
1405     // primary selection
1406     //
1407     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1408     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1409     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1410
1411     // 7*(0.0050+0.0060/pt^0.9)
1412     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1413
1414     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1415   }
1416
1417   // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 80 clusters
1418   if (cutMode == 90) 
1419   {
1420     Int_t    minclsTPC=80;
1421     Double_t maxchi2perTPCcl=4.;
1422     Double_t maxdcazITSTPC=1.e9;
1423
1424     //
1425     // TPC
1426     //
1427     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1428     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1429     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1430     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1431     //
1432     // ITS
1433     //
1434     esdTrackCuts->SetRequireITSRefit(kTRUE);
1435     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1436     //
1437     // primary selection
1438     //
1439     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1440     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1441     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1442
1443     // 7*(0.0050+0.0060/pt^0.9)
1444     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1445
1446     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 80 TPCclust";
1447   }
1448
1449   // TPC-tracks + SPD point + ITS refit + DCAr(pt) + TPCchi2=3.5
1450   if (cutMode == 95) 
1451   {
1452     Int_t    minclsTPC=80;
1453     Double_t maxchi2perTPCcl=3.5;
1454     Double_t maxdcazITSTPC=1.e9;
1455
1456     //
1457     // TPC
1458     //
1459     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1460     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1461     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1462     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1463     //
1464     // ITS
1465     //
1466     esdTrackCuts->SetRequireITSRefit(kTRUE);
1467     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1468     //
1469     // primary selection
1470     //
1471     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1472     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1473     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1474
1475     // 7*(0.0050+0.0060/pt^0.9)
1476     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1477
1478     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + TPCchi2 3.5";
1479   }
1480
1481   // TPC-tracks + SPD point + ITS refit + DCAr(pt) + TPCchi2=4.5
1482   if (cutMode == 100) 
1483   {
1484     Int_t    minclsTPC=80;
1485     Double_t maxchi2perTPCcl=4.5;
1486     Double_t maxdcazITSTPC=1.e9;
1487
1488     //
1489     // TPC
1490     //
1491     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1492     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1493     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1494     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1495     //
1496     // ITS
1497     //
1498     esdTrackCuts->SetRequireITSRefit(kTRUE);
1499     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1500     //
1501     // primary selection
1502     //
1503     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1504     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1505     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1506
1507     // 7*(0.0050+0.0060/pt^0.9)
1508     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1509
1510     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + TPCchi2 4.5";
1511   }
1512
1513   // TPC-tracks
1514   if (cutMode == 110) 
1515   {
1516
1517     minNClustersTPC = 70;
1518     maxChi2PerClusterTPC = 4.0;
1519     maxDCAtoVertexXY = 1.e9; // cm
1520     maxDCAtoVertexZ  = 1.e9; // cm
1521
1522     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1523     esdTrackCuts->SetRequireTPCRefit(kFALSE);
1524     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1525     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1526     esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1527     esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1528     esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1529     esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1530     esdTrackCuts->SetDCAToVertex2D(kTRUE);
1531
1532     TString tag = "TPC-tracks loose criteria";
1533   }
1534
1535
1536   // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 50 TPCclust
1537   if (cutMode == 120) 
1538   {
1539     Int_t    minclsTPC=50;
1540     Double_t maxchi2perTPCcl=4.;
1541     Double_t maxdcazITSTPC=1.e9;
1542
1543     //
1544     // TPC
1545     //
1546     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1547     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1548     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1549     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1550     //
1551     // ITS
1552     //
1553     esdTrackCuts->SetRequireITSRefit(kTRUE);
1554     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1555     //
1556     // primary selection
1557     //
1558     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1559     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1560     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1561
1562     // 7*(0.0050+0.0060/pt^0.9)
1563     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1564
1565     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1566   }
1567
1568   // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 70 TPCclust + accept kink daughters
1569   if (cutMode == 130) 
1570   {
1571     Int_t    minclsTPC=70;
1572     Double_t maxchi2perTPCcl=4.;
1573     Double_t maxdcazITSTPC=1.e9;
1574
1575     //
1576     // TPC
1577     //
1578     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1579     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
1580     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1581     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1582     //
1583     // ITS
1584     //
1585     esdTrackCuts->SetRequireITSRefit(kTRUE);
1586     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1587     //
1588     // primary selection
1589     //
1590     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1591     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1592     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1593
1594     // 7*(0.0050+0.0060/pt^0.9)
1595     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1596
1597     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1598   }
1599
1600   // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 30 TPCclust + accept kink daughters
1601   if (cutMode == 140) 
1602   {
1603     Int_t    minclsTPC=30;
1604     Double_t maxchi2perTPCcl=4.;
1605     Double_t maxdcazITSTPC=1.e9;
1606
1607     //
1608     // TPC
1609     //
1610     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1611     esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
1612     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1613     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1614     //
1615     // ITS
1616     //
1617     esdTrackCuts->SetRequireITSRefit(kTRUE);
1618     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1619     //
1620     // primary selection
1621     //
1622     esdTrackCuts->SetDCAToVertex2D(kFALSE);
1623     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1624     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1625
1626     // 7*(0.0050+0.0060/pt^0.9)
1627     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1628
1629     TString tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1630   }
1631
1632   // Adam Kisiel track selectiion
1633   if (cutMode == 150) 
1634   {
1635     Int_t    minclsTPC=70;
1636     Double_t maxchi2perTPCcl=4.;
1637     Double_t maxdcazITSTPC=0.25;
1638     Double_t maxdcaxyITSTPC=0.2;
1639
1640     //
1641     // TPC
1642     //
1643     //esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1644     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1645     esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1646     esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1647     //
1648     // ITS
1649     //
1650     esdTrackCuts->SetRequireITSRefit(kTRUE);
1651     //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1652     //
1653     // primary selection
1654     //
1655     //esdTrackCuts->SetDCAToVertex2D(kFALSE);
1656     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1657     esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1658     esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1659
1660     // 7*(0.0050+0.0060/pt^0.9)
1661     //esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1662
1663     TString tag = "Adam Kisiel track selection";
1664   }
1665
1666   // TPC+ITS refit
1667   // for cut studies
1668   if (cutMode == 151) 
1669   {
1670     //
1671     // TPC
1672     //
1673     esdTrackCuts->SetRequireTPCRefit(kTRUE);
1674     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1675     //
1676     // ITS
1677     //
1678     esdTrackCuts->SetRequireITSRefit(kTRUE);
1679     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1680     //
1681
1682     TString tag = "TPC+ITS refit required - for cut studies";
1683   }
1684
1685   // TPC+ITS
1686   // for cut studies
1687   if (cutMode == 152) 
1688   {
1689     //
1690     // TPC
1691     //
1692     esdTrackCuts->SetRequireTPCRefit(kTRUE);
1693     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1694     //
1695     // ITS
1696     //
1697     //esdTrackCuts->SetRequireITSRefit(kTRUE);
1698     //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1699     //
1700     
1701     TString tag = "TPC refit required - for cut studies";
1702   }
1703
1704   // TPC
1705   // for cut studies
1706   if (cutMode == 153) 
1707   {
1708     //
1709     // TPC
1710     //
1711     esdTrackCuts->SetRequireTPCRefit(kFALSE);
1712     esdTrackCuts->SetRequireITSRefit(kFALSE);
1713     esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1714     esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1715     //
1716     // ITS
1717     //
1718     //esdTrackCuts->SetRequireITSRefit(kTRUE);
1719     //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1720     //
1721     
1722     TString tag = "TPC stand alone - for cut studies";
1723   }
1724
1725
1726
1727
1728
1729
1730   // cuts for data without field
1731   if (!fieldOn)
1732   {
1733     cov5 = 1e10;
1734     tag += " without field";
1735   }
1736
1737   Printf("Created track cuts for: %s", tag.Data());
1738
1739   return esdTrackCuts;
1740 }