Skip to content

Commit 2055a4a

Browse files
PWGJE - trackEfficiency: add occupancy cut for mcp collisions, clean up configurables
1 parent e18f23f commit 2055a4a

File tree

1 file changed

+48
-21
lines changed

1 file changed

+48
-21
lines changed

PWGJE/Tasks/trackEfficiency.cxx

Lines changed: 48 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,8 @@ struct TrackEfficiencyJets {
5555

5656
// Tracking efficiency process function configurables:
5757
Configurable<bool> checkPrimaryPart{"checkPrimaryPart", true, "0: doesn't check mcparticle.isPhysicalPrimary() - 1: checks particle.isPhysicalPrimary()"};
58-
Configurable<bool> checkCentrality{"checkCentrality", false, ""};
5958
Configurable<int> acceptSplitCollisions{"acceptSplitCollisions", 0, "0: only look at mcCollisions that are not split; 1: accept split mcCollisions, 2: accept split mcCollisions but only look at the first reco collision associated with it"};
6059
Configurable<float> trackEtaAcceptanceCountQA{"trackEtaAcceptanceCountQA", 0.9, "eta acceptance"}; // removed from actual cuts for now because all the histograms have an eta axis
61-
Configurable<float> centralityMin{"centralityMin", -999, ""};
62-
Configurable<float> centralityMax{"centralityMax", 999, ""};
6360
Configurable<float> vertexZCut{"vertexZCut", 10.0f, "Accepted z-vertex range"};
6461
Configurable<float> trackDcaZmax{"trackDcaZmax", 99, "additional cut on dcaZ to PV for tracks; uniformTracks in particular don't cut on this at all"};
6562
Configurable<int> nBinsLowPt{"nBinsLowPt", 200, "number of pt bins for low pt (below 10GeV) efficiency histograms"};
@@ -69,6 +66,10 @@ struct TrackEfficiencyJets {
6966
Configurable<float> trackQAEtaMax{"trackQAEtaMax", 0.9, "maximum eta acceptance for tracks in the processTracks QA"};
7067
Configurable<float> trackQAPtMin{"trackQAPtMin", 0.15, "minimum pT acceptance for tracks in the processTracks QA"};
7168
Configurable<float> trackQAPtMax{"trackQAPtMax", 100.0, "maximum pT acceptance for tracks in the processTracks QA"};
69+
70+
// Common configurables:
71+
Configurable<float> centralityMin{"centralityMin", -999, ""};
72+
Configurable<float> centralityMax{"centralityMax", 999, ""};
7273
Configurable<int> trackOccupancyInTimeRangeMax{"trackOccupancyInTimeRangeMax", 999999, "maximum occupancy of tracks in neighbouring collisions in a given time range; only applied for reconstructed tracks, not mc particles"};
7374
Configurable<int> trackOccupancyInTimeRangeMin{"trackOccupancyInTimeRangeMin", -999999, "minimum occupancy of tracks in neighbouring collisions in a given time range; only applied for reconstructed tracks, not mc particles"};
7475

@@ -255,21 +256,28 @@ struct TrackEfficiencyJets {
255256
registry.fill(HIST("hMcCollCutsCounts"), 3.5); // split mcCollisions condition
256257

257258
bool hasSel8Coll = false;
258-
bool centralityCheck = false;
259+
bool centralityIsGood = false;
260+
bool occupancyIsGood = false;
259261
if (acceptSplitCollisions == 2) { // check only that the first reconstructed collision passes the check
260262
if (jetderiveddatautilities::selectCollision(collisions.begin(), eventSelectionBits)) { // Skipping MC events that have not a single selected reconstructed collision ; effect unclear if mcColl is split
261263
hasSel8Coll = true;
262264
}
263-
if (!checkCentrality || ((centralityMin < collisions.begin().centrality()) && (collisions.begin().centrality() < centralityMax))) { // effect unclear if mcColl is split
264-
centralityCheck = true;
265+
if ((centralityMin < collisions.begin().centrality()) && (collisions.begin().centrality() < centralityMax)) { // effect unclear if mcColl is split
266+
centralityIsGood = true;
267+
}
268+
if ((trackOccupancyInTimeRangeMin < collisions.begin().trackOccupancyInTimeRange()) && (collisions.begin().trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMax)) {
269+
occupancyIsGood = true;
265270
}
266271
} else { // check that at least one of the reconstructed collisions passes the checks
267272
for (auto& collision : collisions) {
268273
if (jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) { // Skipping MC events that have not a single selected reconstructed collision ; effect unclear if mcColl is split
269274
hasSel8Coll = true;
270275
}
271-
if (!checkCentrality || ((centralityMin < collision.centrality()) && (collision.centrality() < centralityMax))) { // effect unclear if mcColl is split
272-
centralityCheck = true;
276+
if ((centralityMin < collision.centrality()) && (collision.centrality() < centralityMax)) { // effect unclear if mcColl is split
277+
centralityIsGood = true;
278+
}
279+
if ((trackOccupancyInTimeRangeMin < collision.trackOccupancyInTimeRange()) && (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMax)) {
280+
occupancyIsGood = true;
273281
}
274282
}
275283
}
@@ -278,11 +286,16 @@ struct TrackEfficiencyJets {
278286
}
279287
registry.fill(HIST("hMcCollCutsCounts"), 4.5); // at least one of the reconstructed collisions associated with this mcCollision is selected
280288

281-
if (!centralityCheck) {
289+
if (!centralityIsGood) {
282290
return;
283291
}
284292
registry.fill(HIST("hMcCollCutsCounts"), 5.5); // at least one of the reconstructed collisions associated with this mcCollision is selected with regard to centrality
285293

294+
if (!occupancyIsGood) {
295+
return;
296+
}
297+
registry.fill(HIST("hMcCollCutsCounts"), 6.5); // at least one of the reconstructed collisions associated with this mcCollision is selected with regard to centrality
298+
286299
for (auto& jMcParticle : jMcParticles) {
287300
registry.fill(HIST("hMcPartCutsCounts"), 0.5); // allPartsInSelMcColl
288301

@@ -444,28 +457,35 @@ struct TrackEfficiencyJets {
444457
}
445458

446459
bool hasSel8Coll = false;
447-
bool centralityCheck = false;
460+
bool centralityIsGood = false;
461+
bool occupancyIsGood = false;
448462
if (acceptSplitCollisions == 2) { // check only that the first reconstructed collision passes the check
449463
if (jetderiveddatautilities::selectCollision(collisions.begin(), eventSelectionBits)) { // Skipping MC events that have not a single selected reconstructed collision ; effect unclear if mcColl is split
450464
hasSel8Coll = true;
451465
}
452-
if (!checkCentrality || ((centralityMin < collisions.begin().centrality()) && (collisions.begin().centrality() < centralityMax))) { // effect unclear if mcColl is split
453-
centralityCheck = true;
466+
if ((centralityMin < collisions.begin().centrality()) && (collisions.begin().centrality() < centralityMax)) { // effect unclear if mcColl is split
467+
centralityIsGood = true;
468+
}
469+
if ((trackOccupancyInTimeRangeMin < collisions.begin().trackOccupancyInTimeRange()) && (collisions.begin().trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMax)) {
470+
occupancyIsGood = true;
454471
}
455472
} else { // check that at least one of the reconstructed collisions passes the checks
456473
for (auto& collision : collisions) {
457474
if (jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) { // Skipping MC events that have not a single selected reconstructed collision ; effect unclear if mcColl is split
458475
hasSel8Coll = true;
459476
}
460-
if (!checkCentrality || ((centralityMin < collision.centrality()) && (collision.centrality() < centralityMax))) { // effect unclear if mcColl is split
461-
centralityCheck = true;
477+
if ((centralityMin < collision.centrality()) && (collision.centrality() < centralityMax)) { // effect unclear if mcColl is split
478+
centralityIsGood = true;
479+
}
480+
if ((trackOccupancyInTimeRangeMin < collision.trackOccupancyInTimeRange()) && (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMax)) {
481+
occupancyIsGood = true;
462482
}
463483
}
464484
}
465485
if (!hasSel8Coll) {
466486
return;
467487
}
468-
if (!centralityCheck) {
488+
if (!centralityIsGood) {
469489
return;
470490
}
471491

@@ -494,28 +514,35 @@ struct TrackEfficiencyJets {
494514
}
495515

496516
bool hasSel8Coll = false;
497-
bool centralityCheck = false;
517+
bool centralityIsGood = false;
518+
bool occupancyIsGood = false;
498519
if (acceptSplitCollisions == 2) { // check only that the first reconstructed collision passes the check
499520
if (jetderiveddatautilities::selectCollision(collisions.begin(), eventSelectionBits)) { // Skipping MC events that have not a single selected reconstructed collision ; effect unclear if mcColl is split
500521
hasSel8Coll = true;
501522
}
502-
if (!checkCentrality || ((centralityMin < collisions.begin().centrality()) && (collisions.begin().centrality() < centralityMax))) { // effect unclear if mcColl is split
503-
centralityCheck = true;
523+
if ((centralityMin < collisions.begin().centrality()) && (collisions.begin().centrality() < centralityMax)) { // effect unclear if mcColl is split
524+
centralityIsGood = true;
525+
}
526+
if ((trackOccupancyInTimeRangeMin < collisions.begin().trackOccupancyInTimeRange()) && (collisions.begin().trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMax)) {
527+
occupancyIsGood = true;
504528
}
505529
} else { // check that at least one of the reconstructed collisions passes the checks
506530
for (auto& collision : collisions) {
507531
if (jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) { // Skipping MC events that have not a single selected reconstructed collision ; effect unclear if mcColl is split
508532
hasSel8Coll = true;
509533
}
510-
if (!checkCentrality || ((centralityMin < collision.centrality()) && (collision.centrality() < centralityMax))) { // effect unclear if mcColl is split
511-
centralityCheck = true;
534+
if ((centralityMin < collision.centrality()) && (collision.centrality() < centralityMax)) { // effect unclear if mcColl is split
535+
centralityIsGood = true;
536+
}
537+
if ((trackOccupancyInTimeRangeMin < collision.trackOccupancyInTimeRange()) && (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMax)) {
538+
occupancyIsGood = true;
512539
}
513540
}
514541
}
515542
if (!hasSel8Coll) {
516543
return;
517544
}
518-
if (!centralityCheck) {
545+
if (!centralityIsGood) {
519546
return;
520547
}
521548

0 commit comments

Comments
 (0)