22 #include "AliESDtrackCuts.h"
60 AliESDtrackCuts* trackCuts = 0;
67 ::Info(
"AliEmcalESDTrackCutsGenerator::CreateTrackCutsPWGJE",
"Created track cuts for: %s", tag.Data());
84 AliESDtrackCuts* trackCuts = 0;
92 ::Info(
"AliEmcalESDTrackCutsGenerator::CreateTrackCutsPWGJE",
"Created track cuts for: %s", tag.Data());
115 switch (stdCutMode) {
118 trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE,1);
119 trackCuts->SetMinNCrossedRowsTPC(120);
120 trackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
121 trackCuts->SetMaxChi2PerClusterITS(36);
122 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
123 trackCuts->SetMaxChi2TPCConstrainedGlobal(36);
125 trackCuts->SetEtaRange(-0.9,0.9);
126 trackCuts->SetPtRange(0.15, 1e10);
128 tag =
"Global track RAA analysis QM2011 + Chi2ITS<36";
135 trackCuts =
new AliESDtrackCuts(
"AliESDtrackCuts");
137 trackCuts->SetMinNClustersTPC(90);
138 trackCuts->SetMaxChi2PerClusterTPC(4);
139 trackCuts->SetRequireTPCStandAlone(kTRUE);
140 trackCuts->SetAcceptKinkDaughters(kFALSE);
141 trackCuts->SetRequireTPCRefit(kTRUE);
142 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
144 trackCuts->SetRequireITSRefit(kTRUE);
146 trackCuts->SetMaxDCAToVertexXY(2.4);
147 trackCuts->SetMaxDCAToVertexZ(3.2);
148 trackCuts->SetDCAToVertex2D(kTRUE);
150 trackCuts->SetMaxChi2PerClusterITS(36);
152 trackCuts->SetRequireSigmaToVertex(kFALSE);
154 trackCuts->SetEtaRange(-0.9,0.9);
155 trackCuts->SetPtRange(0.15, 100.);
157 tag =
"Global tracks jet analysis with ITSrefit and NclsIter1=90, noSPD requirement";
164 trackCuts =
new AliESDtrackCuts(
"AliESDtrackCuts");
166 trackCuts->SetMinNClustersTPC(80);
167 trackCuts->SetMaxChi2PerClusterTPC(4);
168 trackCuts->SetAcceptKinkDaughters(kFALSE);
169 trackCuts->SetRequireTPCRefit(kTRUE);
170 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
172 trackCuts->SetRequireITSRefit(kTRUE);
174 trackCuts->SetMaxDCAToVertexXY(2.4);
175 trackCuts->SetMaxDCAToVertexZ(3.2);
176 trackCuts->SetDCAToVertex2D(kTRUE);
178 trackCuts->SetMaxChi2PerClusterITS(36);
180 trackCuts->SetRequireSigmaToVertex(kFALSE);
182 trackCuts->SetEtaRange(-0.9,0.9);
183 trackCuts->SetPtRange(0.15, 100.);
185 tag =
"Global tracks jet analysis with ITSrefit and Ncls=80, noSPD requirement";
192 trackCuts =
new AliESDtrackCuts(
"AliESDtrackCuts");
194 trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kFALSE,1);
195 trackCuts->SetMinNClustersTPC(0);
196 trackCuts->SetMinNCrossedRowsTPC(120);
197 trackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.1);
198 trackCuts->SetMaxDCAToVertexXY(2.4);
199 trackCuts->SetMaxDCAToVertexZ(3.2);
200 trackCuts->SetDCAToVertex2D(kTRUE);
201 trackCuts->SetMaxChi2PerClusterITS(36);
202 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
204 tag =
"Global tracks ITSTPC2010 + NCrossedRows + loose ITS";
211 trackCuts =
new AliESDtrackCuts(
"AliESDtrackCuts");
213 trackCuts->SetMinNClustersTPC(70);
214 trackCuts->SetMaxChi2PerClusterTPC(4);
215 trackCuts->SetRequireTPCStandAlone(kTRUE);
216 trackCuts->SetAcceptKinkDaughters(kFALSE);
217 trackCuts->SetRequireTPCRefit(kTRUE);
218 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
220 trackCuts->SetRequireITSRefit(kTRUE);
222 trackCuts->SetMaxDCAToVertexXY(2.4);
223 trackCuts->SetMaxDCAToVertexZ(3.2);
224 trackCuts->SetDCAToVertex2D(kTRUE);
226 trackCuts->SetMaxChi2PerClusterITS(36);
228 trackCuts->SetRequireSigmaToVertex(kFALSE);
230 trackCuts->SetEtaRange(-0.9,0.9);
231 trackCuts->SetPtRange(0.15, 100.);
233 tag =
"Global tracks jet analysis with ITSrefit and NclsIter1=70, noSPD requirement";
240 trackCuts =
new AliESDtrackCuts(
"AliESDtrackCuts");
242 trackCuts->SetMinNClustersTPC(70);
243 trackCuts->SetMaxChi2PerClusterTPC(4);
244 trackCuts->SetRequireTPCStandAlone(kTRUE);
245 trackCuts->SetAcceptKinkDaughters(kFALSE);
246 trackCuts->SetRequireTPCRefit(kTRUE);
247 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
249 trackCuts->SetRequireITSRefit(kTRUE);
251 trackCuts->SetMaxDCAToVertexXY(2.4);
252 trackCuts->SetMaxDCAToVertexZ(3.2);
253 trackCuts->SetDCAToVertex2D(kTRUE);
255 trackCuts->SetMaxChi2PerClusterITS(36);
257 trackCuts->SetRequireSigmaToVertex(kFALSE);
259 trackCuts->SetEtaRange(-0.9,0.9);
260 trackCuts->SetPtRange(0.15, 1E+15);
262 tag =
"Global tracks jet analysis with ITSrefit and NclsIter1=70, noSPD requirement, no upper pt cut";
269 trackCuts =
new AliESDtrackCuts(
"AliESDtrackCuts");
271 TFormula *f1NClustersTPCLinearPtDep =
new TFormula(
"f1NClustersTPCLinearPtDep",
"70.+30./20.*x");
272 trackCuts->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep,20.);
273 trackCuts->SetMinNClustersTPC(70);
274 trackCuts->SetMaxChi2PerClusterTPC(4);
275 trackCuts->SetRequireTPCStandAlone(kTRUE);
276 trackCuts->SetAcceptKinkDaughters(kFALSE);
277 trackCuts->SetRequireTPCRefit(kTRUE);
278 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
280 trackCuts->SetRequireITSRefit(kTRUE);
282 trackCuts->SetMaxDCAToVertexXY(2.4);
283 trackCuts->SetMaxDCAToVertexZ(3.2);
284 trackCuts->SetDCAToVertex2D(kTRUE);
286 trackCuts->SetMaxChi2PerClusterITS(36);
287 trackCuts->SetMaxChi2TPCConstrainedGlobal(36);
289 trackCuts->SetRequireSigmaToVertex(kFALSE);
291 trackCuts->SetEtaRange(-0.9,0.9);
292 trackCuts->SetPtRange(0.15, 1E+15);
294 tag =
"Global tracks jet analysis with ITSrefit and NclsIter1=PtDep, noSPD requirement, no upper pt cut, golden chi2";
301 trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE,1);
303 trackCuts->SetMaxDCAToVertexXY(2.4);
304 trackCuts->SetMaxDCAToVertexZ(3.2);
305 trackCuts->SetDCAToVertex2D(kTRUE);
307 trackCuts->SetMaxChi2TPCConstrainedGlobal(36);
309 trackCuts->SetEtaRange(-0.9,0.9);
310 trackCuts->SetPtRange(0.15, 1E+15);
312 tag =
"Global tracks with AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE)";
319 trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE,1);
321 trackCuts->SetMaxDCAToVertexXY(2.4);
322 trackCuts->SetMaxDCAToVertexZ(3.2);
323 trackCuts->SetDCAToVertex2D(kTRUE);
325 trackCuts->SetMaxChi2TPCConstrainedGlobal(36);
326 trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kNone);
328 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
330 tag =
"Global tracks 2011 with AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE) and no SPD requirement";
337 trackCuts =
new AliESDtrackCuts(
"AliESDtrackCuts");
339 trackCuts->SetMinNClustersTPC(90);
340 trackCuts->SetMaxChi2PerClusterTPC(4);
341 trackCuts->SetRequireTPCStandAlone(kTRUE);
342 trackCuts->SetAcceptKinkDaughters(kFALSE);
343 trackCuts->SetRequireTPCRefit(kTRUE);
344 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
346 trackCuts->SetMaxDCAToVertexXY(2.4);
347 trackCuts->SetMaxDCAToVertexZ(3.2);
348 trackCuts->SetDCAToVertex2D(kTRUE);
350 trackCuts->SetRequireSigmaToVertex(kFALSE);
352 trackCuts->SetEtaRange(-0.9,0.9);
353 trackCuts->SetPtRange(0.15, 100.);
355 tag =
"Global tracks jet analysis, loose cuts, NClsIter1=90, no ITS requirements";
362 trackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
364 trackCuts->SetMinNClustersTPC(70);
366 trackCuts->SetEtaRange(-0.9,0.9);
367 trackCuts->SetPtRange(0.15, 100.);
370 tag =
"TPConly track cuts, loose cuts, NCls=70, no ITS requirements";
377 trackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
378 trackCuts->SetMinNClustersTPC(0);
379 trackCuts->SetMinNCrossedRowsTPC(120);
380 trackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.1);
382 trackCuts->SetEtaRange(-0.9,0.9);
383 trackCuts->SetPtRange(0.15, 100.);
385 tag =
"TPConly track cuts, loose cuts, NCrossRows=120, no ITS requirements";
392 Printf(
"AliEmcalESDTrackCutsGenerator: standard cuts not recognized.");
413 switch (addCutMode) {
416 trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
418 tag +=
" + additonal: SPD any requirement";
425 trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kNone);
427 tag +=
" + additional: w/o hits in SPD";
434 trackCuts->SetMaxChi2PerClusterITS(1E10);
436 tag +=
" + additional: maxITSChi2=1e10";
443 trackCuts->SetMinNClustersTPC(0);
444 trackCuts->SetMinNCrossedRowsTPC(0);
445 trackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.);
447 tag +=
" + additional: minClusters=0 minCrossedRows=0 minCrossedRowsOverFindable=0";
454 trackCuts->SetRequireITSRefit(kFALSE);
456 tag +=
" + additional: ITSrefit=kFALSE";
463 trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff);
465 tag +=
" + additional: no SPD requirement (kOff)";
488 if (strPeriod ==
"lhc10h") {
490 }
else if (strPeriod ==
"lhc11a" || strPeriod ==
"lhc12a15a") {
492 }
else if (strPeriod ==
"lhc10b" || strPeriod ==
"lhc10c" ||
493 strPeriod ==
"lhc10d" || strPeriod ==
"lhc10e") {
495 }
else if (strPeriod ==
"lhc11a1a" || strPeriod ==
"lhc11a1b" ||
496 strPeriod ==
"lhc11a1c" || strPeriod ==
"lhc11a1d" ||
497 strPeriod ==
"lhc11a1e" || strPeriod ==
"lhc11a1f" ||
498 strPeriod ==
"lhc11a1g" || strPeriod ==
"lhc11a1h" ||
499 strPeriod ==
"lhc11a1i" || strPeriod ==
"lhc11a1j") {
501 }
else if (strPeriod ==
"lhc11c") {
503 }
else if (strPeriod ==
"lhc11d") {
505 }
else if (strPeriod ==
"lhc11h" || strPeriod ==
"lhc12a15e") {
507 }
else if (strPeriod ==
"lhc12g") {
509 }
else if (strPeriod ==
"lhc12") {
511 }
else if (strPeriod ==
"lhc13b") {
513 }
else if (strPeriod ==
"lhc13c") {
515 }
else if (strPeriod ==
"lhc13d") {
517 }
else if (strPeriod ==
"lhc13e") {
519 }
else if (strPeriod ==
"lhc13f") {
521 }
else if (strPeriod ==
"lhc13g") {
523 }
else if (strPeriod ==
"lhc12a15f") {
525 }
else if (strPeriod ==
"lhc13b4") {
527 }
else if (strPeriod ==
"lhc12a15g") {
529 }
else if (strPeriod ==
"lhc12f2a") {
531 }
else if (strPeriod.BeginsWith(
"lhc12a17")) {
533 }
else if (strPeriod ==
"lhc14a1") {
535 }
else if (strPeriod.BeginsWith(
"lhc15g6")) {
538 ::Error(
"AliEmcalESDTrackCutsGenerator::SteerDataSetFromString",
"Dataset %s not recognized!", period.Data());
577 ::Error(
"AliEmcalESDTrackCutsGenerator::AddHybridTrackCuts",
"Hybrid track cuts not available for dataset %d", period);
602 Printf(
"AliEmcalESDTrackCutsGenerator::AddTPCOnlyTrackCuts: TPC only track cuts not available for dataset %d", period);
Interface for virtual track selection.
static EDataSet_t SteerDataSetFromString(TString period)
static void AddHybridTrackCuts(AliEmcalTrackSelection *trkSel, TString period)
static TString SetStandardCuts(AliESDtrackCuts *&trackCuts, Int_t stdCutMode)
static TString SetAdditionalCuts(AliESDtrackCuts *&trackCuts, Int_t addCutMode)
Declaration of class AliEmcalESDTrackCutsGenerator.
static AliESDtrackCuts * CreateTrackCutsPWGJE(Int_t cutMode)
void AddTrackCuts(AliVCuts *cuts)
static void AddTPCOnlyTrackCuts(AliEmcalTrackSelection *trkSel, TString period)
static const Int_t fgkAddCutFactor