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