diff --git a/PWGJE/Tasks/jetFinderQA.cxx b/PWGJE/Tasks/jetFinderQA.cxx index 67806db1115..50d57adb870 100644 --- a/PWGJE/Tasks/jetFinderQA.cxx +++ b/PWGJE/Tasks/jetFinderQA.cxx @@ -72,6 +72,7 @@ struct JetFinderQATask { Configurable checkMcCollisionIsMatched{"checkMcCollisionIsMatched", false, "0: count whole MCcollisions, 1: select MCcollisions which only have their correspond collisions"}; Configurable trackOccupancyInTimeRangeMax{"trackOccupancyInTimeRangeMax", 999999, "maximum occupancy of tracks in neighbouring collisions in a given time range; only applied to reconstructed collisions (data and mcd jets), not mc collisions (mcp jets)"}; Configurable trackOccupancyInTimeRangeMin{"trackOccupancyInTimeRangeMin", -999999, "minimum occupancy of tracks in neighbouring collisions in a given time range; only applied to reconstructed collisions (data and mcd jets), not mc collisions (mcp jets)"}; + Configurable rejectMbEvents{"rejectMbEvents", false, "flag to choose to reject min. bias events based on weight (MB = 1, weighted = anything else)"}; std::vector filledJetR_Both; std::vector filledJetR_Low; @@ -827,6 +828,9 @@ struct JetFinderQATask { if (!isAcceptedJet(jet)) { continue; } + if (rejectMbEvents && jet.eventWeight() == 1) { + continue; + } double pTHat = 10. / (std::pow(jet.eventWeight(), 1.0 / pTHatExponent)); for (int N = 1; N < 21; N++) { if (jet.pt() < N * 0.25 * pTHat && jet.r() == round(selectedJetsRadius * 100.0f)) { @@ -865,6 +869,9 @@ struct JetFinderQATask { if (!isAcceptedJet(jet)) { return; } + if (rejectMbEvents && jet.eventWeight() == 1) { + return; + } double pTHat = 10. / (std::pow(jet.eventWeight(), 1.0 / pTHatExponent)); for (int N = 1; N < 21; N++) { if (jet.pt() < N * 0.25 * pTHat && jet.r() == round(selectedJetsRadius * 100.0f)) { @@ -873,7 +880,7 @@ struct JetFinderQATask { } if (checkMcCollisionIsMatched) { auto collisionspermcpjet = collisions.sliceBy(CollisionsPerMCPCollision, jet.mcCollisionId()); - if (collisionspermcpjet.size() >= 1) { + if (collisionspermcpjet.size() >= 1 && jetderiveddatautilities::selectCollision(collisionspermcpjet.begin(), eventSelection)) { fillMCPHistograms(jet, jet.eventWeight()); } } else { @@ -917,6 +924,9 @@ struct JetFinderQATask { if (!isAcceptedJet(mcdjet)) { continue; } + if (rejectMbEvents && mcdjet.eventWeight() == 1) { + continue; + } fillMatchedHistograms::iterator, soa::Join>(mcdjet, mcdjet.eventWeight()); } } @@ -924,6 +934,9 @@ struct JetFinderQATask { void processMCCollisionsWeighted(aod::JetMcCollision const& collision) { + if (rejectMbEvents && collision.weight() == 1) { + return; + } registry.fill(HIST("h_collision_eventweight_part"), collision.weight()); } PROCESS_SWITCH(JetFinderQATask, processMCCollisionsWeighted, "collision QA for weighted events", false); @@ -1078,6 +1091,9 @@ struct JetFinderQATask { soa::Filtered> const& tracks) { float eventWeight = collision.mcCollision().weight(); + if (rejectMbEvents && eventWeight == 1) { + return; + } registry.fill(HIST("h_collisions"), 0.5); registry.fill(HIST("h_collisions_weighted"), 0.5, eventWeight); if (!jetderiveddatautilities::selectCollision(collision, eventSelection)) {