35 #include "AliESDtrackCuts.h" 75 AliESDtrackCuts* trackCuts = 0;
82 ::Info(
"AliEmcalESDTrackCutsGenerator::CreateTrackCutsPWGJE",
"Created track cuts for: %s", tag.Data());
99 AliESDtrackCuts* trackCuts = 0;
107 ::Info(
"AliEmcalESDTrackCutsGenerator::CreateTrackCutsPWGJE",
"Created track cuts for: %s", tag.Data());
130 switch (stdCutMode) {
133 trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE,1);
134 trackCuts->SetMinNCrossedRowsTPC(120);
135 trackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
136 trackCuts->SetMaxChi2PerClusterITS(36);
137 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
138 trackCuts->SetMaxChi2TPCConstrainedGlobal(36);
140 trackCuts->SetEtaRange(-0.9,0.9);
141 trackCuts->SetPtRange(0.15, 1e10);
143 tag =
"Global track RAA analysis QM2011 + Chi2ITS<36";
150 trackCuts =
new AliESDtrackCuts(
"AliESDtrackCuts");
152 trackCuts->SetMinNClustersTPC(90);
153 trackCuts->SetMaxChi2PerClusterTPC(4);
154 trackCuts->SetRequireTPCStandAlone(kTRUE);
155 trackCuts->SetAcceptKinkDaughters(kFALSE);
156 trackCuts->SetRequireTPCRefit(kTRUE);
157 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
159 trackCuts->SetRequireITSRefit(kTRUE);
161 trackCuts->SetMaxDCAToVertexXY(2.4);
162 trackCuts->SetMaxDCAToVertexZ(3.2);
163 trackCuts->SetDCAToVertex2D(kTRUE);
165 trackCuts->SetMaxChi2PerClusterITS(36);
167 trackCuts->SetRequireSigmaToVertex(kFALSE);
169 trackCuts->SetEtaRange(-0.9,0.9);
170 trackCuts->SetPtRange(0.15, 100.);
172 tag =
"Global tracks jet analysis with ITSrefit and NclsIter1=90, noSPD requirement";
179 trackCuts =
new AliESDtrackCuts(
"AliESDtrackCuts");
181 trackCuts->SetMinNClustersTPC(80);
182 trackCuts->SetMaxChi2PerClusterTPC(4);
183 trackCuts->SetAcceptKinkDaughters(kFALSE);
184 trackCuts->SetRequireTPCRefit(kTRUE);
185 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
187 trackCuts->SetRequireITSRefit(kTRUE);
189 trackCuts->SetMaxDCAToVertexXY(2.4);
190 trackCuts->SetMaxDCAToVertexZ(3.2);
191 trackCuts->SetDCAToVertex2D(kTRUE);
193 trackCuts->SetMaxChi2PerClusterITS(36);
195 trackCuts->SetRequireSigmaToVertex(kFALSE);
197 trackCuts->SetEtaRange(-0.9,0.9);
198 trackCuts->SetPtRange(0.15, 100.);
200 tag =
"Global tracks jet analysis with ITSrefit and Ncls=80, noSPD requirement";
207 trackCuts =
new AliESDtrackCuts(
"AliESDtrackCuts");
209 trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kFALSE,1);
210 trackCuts->SetMinNClustersTPC(0);
211 trackCuts->SetMinNCrossedRowsTPC(120);
212 trackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.1);
213 trackCuts->SetMaxDCAToVertexXY(2.4);
214 trackCuts->SetMaxDCAToVertexZ(3.2);
215 trackCuts->SetDCAToVertex2D(kTRUE);
216 trackCuts->SetMaxChi2PerClusterITS(36);
217 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
219 tag =
"Global tracks ITSTPC2010 + NCrossedRows + loose ITS";
226 trackCuts =
new AliESDtrackCuts(
"AliESDtrackCuts");
228 trackCuts->SetMinNClustersTPC(70);
229 trackCuts->SetMaxChi2PerClusterTPC(4);
230 trackCuts->SetRequireTPCStandAlone(kTRUE);
231 trackCuts->SetAcceptKinkDaughters(kFALSE);
232 trackCuts->SetRequireTPCRefit(kTRUE);
233 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
235 trackCuts->SetRequireITSRefit(kTRUE);
237 trackCuts->SetMaxDCAToVertexXY(2.4);
238 trackCuts->SetMaxDCAToVertexZ(3.2);
239 trackCuts->SetDCAToVertex2D(kTRUE);
241 trackCuts->SetMaxChi2PerClusterITS(36);
243 trackCuts->SetRequireSigmaToVertex(kFALSE);
245 trackCuts->SetEtaRange(-0.9,0.9);
246 trackCuts->SetPtRange(0.15, 100.);
248 tag =
"Global tracks jet analysis with ITSrefit and NclsIter1=70, noSPD requirement";
255 trackCuts =
new AliESDtrackCuts(
"AliESDtrackCuts");
257 trackCuts->SetMinNClustersTPC(70);
258 trackCuts->SetMaxChi2PerClusterTPC(4);
259 trackCuts->SetRequireTPCStandAlone(kTRUE);
260 trackCuts->SetAcceptKinkDaughters(kFALSE);
261 trackCuts->SetRequireTPCRefit(kTRUE);
262 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
264 trackCuts->SetRequireITSRefit(kTRUE);
266 trackCuts->SetMaxDCAToVertexXY(2.4);
267 trackCuts->SetMaxDCAToVertexZ(3.2);
268 trackCuts->SetDCAToVertex2D(kTRUE);
270 trackCuts->SetMaxChi2PerClusterITS(36);
272 trackCuts->SetRequireSigmaToVertex(kFALSE);
274 trackCuts->SetEtaRange(-0.9,0.9);
275 trackCuts->SetPtRange(0.15, 1E+15);
277 tag =
"Global tracks jet analysis with ITSrefit and NclsIter1=70, noSPD requirement, no upper pt cut";
284 trackCuts =
new AliESDtrackCuts(
"AliESDtrackCuts");
286 TFormula *f1NClustersTPCLinearPtDep =
new TFormula(
"f1NClustersTPCLinearPtDep",
"70.+30./20.*x");
287 trackCuts->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep,20.);
288 trackCuts->SetMinNClustersTPC(70);
289 trackCuts->SetMaxChi2PerClusterTPC(4);
290 trackCuts->SetRequireTPCStandAlone(kTRUE);
291 trackCuts->SetAcceptKinkDaughters(kFALSE);
292 trackCuts->SetRequireTPCRefit(kTRUE);
293 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
295 trackCuts->SetRequireITSRefit(kTRUE);
297 trackCuts->SetMaxDCAToVertexXY(2.4);
298 trackCuts->SetMaxDCAToVertexZ(3.2);
299 trackCuts->SetDCAToVertex2D(kTRUE);
301 trackCuts->SetMaxChi2PerClusterITS(36);
302 trackCuts->SetMaxChi2TPCConstrainedGlobal(36);
304 trackCuts->SetRequireSigmaToVertex(kFALSE);
306 trackCuts->SetEtaRange(-0.9,0.9);
307 trackCuts->SetPtRange(0.15, 1E+15);
309 tag =
"Global tracks jet analysis with ITSrefit and NclsIter1=PtDep, noSPD requirement, no upper pt cut, golden chi2";
316 trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE,1);
318 trackCuts->SetMaxDCAToVertexXY(2.4);
319 trackCuts->SetMaxDCAToVertexZ(3.2);
320 trackCuts->SetDCAToVertex2D(kTRUE);
322 trackCuts->SetMaxChi2TPCConstrainedGlobal(36);
324 trackCuts->SetEtaRange(-0.9,0.9);
325 trackCuts->SetPtRange(0.15, 1E+15);
327 tag =
"Global tracks with AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE)";
334 trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE,1);
336 trackCuts->SetMaxDCAToVertexXY(2.4);
337 trackCuts->SetMaxDCAToVertexZ(3.2);
338 trackCuts->SetDCAToVertex2D(kTRUE);
340 trackCuts->SetMaxChi2TPCConstrainedGlobal(36);
341 trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kNone);
343 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
345 tag =
"Global tracks 2011 with AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE) and no SPD requirement";
352 trackCuts =
new AliESDtrackCuts(
"AliESDtrackCuts");
354 trackCuts->SetMinNClustersTPC(90);
355 trackCuts->SetMaxChi2PerClusterTPC(4);
356 trackCuts->SetRequireTPCStandAlone(kTRUE);
357 trackCuts->SetAcceptKinkDaughters(kFALSE);
358 trackCuts->SetRequireTPCRefit(kTRUE);
359 trackCuts->SetMaxFractionSharedTPCClusters(0.4);
361 trackCuts->SetMaxDCAToVertexXY(2.4);
362 trackCuts->SetMaxDCAToVertexZ(3.2);
363 trackCuts->SetDCAToVertex2D(kTRUE);
365 trackCuts->SetRequireSigmaToVertex(kFALSE);
367 trackCuts->SetEtaRange(-0.9,0.9);
368 trackCuts->SetPtRange(0.15, 100.);
370 tag =
"Global tracks jet analysis, loose cuts, NClsIter1=90, no ITS requirements";
377 trackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
379 trackCuts->SetMinNClustersTPC(70);
381 trackCuts->SetEtaRange(-0.9,0.9);
382 trackCuts->SetPtRange(0.15, 100.);
385 tag =
"TPConly track cuts, loose cuts, NCls=70, no ITS requirements";
392 trackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
393 trackCuts->SetMinNClustersTPC(0);
394 trackCuts->SetMinNCrossedRowsTPC(120);
395 trackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.1);
397 trackCuts->SetEtaRange(-0.9,0.9);
398 trackCuts->SetPtRange(0.15, 100.);
400 tag =
"TPConly track cuts, loose cuts, NCrossRows=120, no ITS requirements";
407 Printf(
"AliEmcalESDTrackCutsGenerator: standard cuts not recognized.");
428 switch (addCutMode) {
431 trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
433 tag +=
" + additonal: SPD any requirement";
440 trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kNone);
442 tag +=
" + additional: w/o hits in SPD";
449 trackCuts->SetMaxChi2PerClusterITS(1E10);
451 tag +=
" + additional: maxITSChi2=1e10";
458 trackCuts->SetMinNClustersTPC(0);
459 trackCuts->SetMinNCrossedRowsTPC(0);
460 trackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.);
462 tag +=
" + additional: minClusters=0 minCrossedRows=0 minCrossedRowsOverFindable=0";
469 trackCuts->SetRequireITSRefit(kFALSE);
471 tag +=
" + additional: ITSrefit=kFALSE";
478 trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff);
480 tag +=
" + additional: no SPD requirement (kOff)";
503 if (strPeriod ==
"lhc10h") {
505 }
else if (strPeriod ==
"lhc11a" || strPeriod ==
"lhc12a15a") {
507 }
else if (strPeriod ==
"lhc10b" || strPeriod ==
"lhc10c" ||
508 strPeriod ==
"lhc10d" || strPeriod ==
"lhc10e") {
510 }
else if (strPeriod ==
"lhc11a1a" || strPeriod ==
"lhc11a1b" ||
511 strPeriod ==
"lhc11a1c" || strPeriod ==
"lhc11a1d" ||
512 strPeriod ==
"lhc11a1e" || strPeriod ==
"lhc11a1f" ||
513 strPeriod ==
"lhc11a1g" || strPeriod ==
"lhc11a1h" ||
514 strPeriod ==
"lhc11a1i" || strPeriod ==
"lhc11a1j") {
516 }
else if (strPeriod ==
"lhc11c") {
518 }
else if (strPeriod ==
"lhc11d") {
520 }
else if (strPeriod ==
"lhc11h" || strPeriod ==
"lhc12a15e") {
522 }
else if (strPeriod ==
"lhc12g") {
524 }
else if (strPeriod ==
"lhc12") {
526 }
else if (strPeriod ==
"lhc13b") {
528 }
else if (strPeriod ==
"lhc13c") {
530 }
else if (strPeriod ==
"lhc13d") {
532 }
else if (strPeriod ==
"lhc13e") {
534 }
else if (strPeriod ==
"lhc13f") {
536 }
else if (strPeriod ==
"lhc13g") {
538 }
else if (strPeriod ==
"lhc16q") {
540 }
else if (strPeriod ==
"lhc16r") {
542 }
else if (strPeriod ==
"lhc16s") {
544 }
else if (strPeriod ==
"lhc16t") {
546 }
else if (strPeriod ==
"lhc17o_trd") {
548 }
else if (strPeriod ==
"lhc12a15f") {
550 }
else if (strPeriod ==
"lhc13b4") {
552 }
else if (strPeriod ==
"lhc12a15g") {
554 }
else if (strPeriod ==
"lhc12f2a") {
556 }
else if (strPeriod.BeginsWith(
"lhc12a17")) {
558 }
else if (strPeriod ==
"lhc14a1") {
560 }
else if (strPeriod.BeginsWith(
"lhc15g6")) {
562 }
else if (strPeriod.BeginsWith(
"lhc15i2")) {
564 }
else if (strPeriod.BeginsWith(
"lhc14j4")) {
567 ::Error(
"AliEmcalESDTrackCutsGenerator::SteerDataSetFromString",
"Dataset %s not recognized!", period.Data());
586 auto hybridcuts2011 =
new AliEmcalESDHybridTrackCuts(
"hybridcuts2011NoSPD", AliEmcalESDHybridTrackCuts::kDef2011);
587 hybridcuts2011->SetUseNoITSrefitTracks(kFALSE);
596 auto hybridcuts2010 =
new AliEmcalESDHybridTrackCuts(
"hybridcuts2010wSPD", AliEmcalESDHybridTrackCuts::kDef2010);
597 hybridcuts2010->SetUseNoITSrefitTracks(kTRUE);
603 auto hybridcuts2018TRD =
new AliEmcalESDHybridTrackCuts(
"hybridcuts2018TRD", AliEmcalESDHybridTrackCuts::kDef2018TRD);
604 hybridcuts2018TRD->SetUseNoITSrefitTracks(kFALSE);
610 ::Error(
"AliEmcalESDTrackCutsGenerator::AddHybridTrackCuts",
"Hybrid track cuts not available for dataset %d", period);
635 Printf(
"AliEmcalESDTrackCutsGenerator::AddTPCOnlyTrackCuts: TPC only track cuts not available for dataset %d", period);
Interface for virtual track selection.
static void AddTPCOnlyTrackCuts(AliEmcalTrackSelection *trkSel, TString period)
static AliESDtrackCuts * CreateTrackCutsPWGJE(Int_t cutMode)
static EDataSet_t SteerDataSetFromString(TString period)
static TString SetStandardCuts(AliESDtrackCuts *&trackCuts, Int_t stdCutMode)
Declaration of class AliEmcalESDTrackCutsGenerator.
void AddTrackCuts(AliVCuts *cuts)
Add new track cuts to the list of cuts.
static void AddHybridTrackCuts(AliEmcalTrackSelection *trkSel, TString period)
static const Int_t fgkAddCutFactor
static TString SetAdditionalCuts(AliESDtrackCuts *&trackCuts, Int_t addCutMode)