@@ -82,6 +82,8 @@ struct JetSpectraCharged {
8282 Configurable<bool > checkPtMatched{" checkPtMatched" , false , " 0: turn off pT matching, 1: do pT matching" };
8383 Configurable<bool > checkGeoPtMatched{" checkGeoPtMatched" , false , " 0: turn off geometry and pT matching, 1: do geometry and pT matching" };
8484 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" };
85+ Configurable<bool > skipMBGapEvents{" skipMBGapEvents" , false , " flag to choose to reject min. bias gap events; jet-level rejection can also be applied at the jet finder level for jets only, here rejection is applied for collision and track process functions for the first time, and on jets in case it was set to false at the jet finder level" };
86+ Configurable<bool > checkLeadConstituentMinPtForMcpJets{" checkLeadConstituentMinPtForMcpJets" , false , " flag to choose whether particle level jets should have their lead track pt above leadingConstituentPtMin to be accepted; off by default, as leadingConstituentPtMin cut is only applied on MCD jets for the Pb-Pb analysis using pp MC anchored to Pb-Pb for the response matrix" };
8587
8688 std::vector<int > eventSelectionBits;
8789 int trackSelection = -1 ;
@@ -237,9 +239,8 @@ struct JetSpectraCharged {
237239 Preslice<ChargedMCDMatchedJets> mcdjetsPerJCollision = o2::aod::jet::collisionId;
238240
239241 template <typename TTracks, typename TJets>
240- bool isAcceptedJet (TJets const & jet)
242+ bool isAcceptedJet (TJets const & jet, bool mcLevelIsParticleLevel = false )
241243 {
242-
243244 if (jetAreaFractionMin > -98.0 ) {
244245 if (jet.area () < jetAreaFractionMin * o2::constants::math::PI * (jet.r () / 100.0 ) * (jet.r () / 100.0 )) {
245246 return false ;
@@ -259,7 +260,7 @@ struct JetSpectraCharged {
259260 for (const auto & constituent : jet.template tracks_as <TTracks>()) {
260261 double pt = constituent.pt ();
261262
262- if (checkConstituentMinPt && pt >= leadingConstituentPtMin) {
263+ if ((!checkLeadConstituentMinPtForMcpJets && mcLevelIsParticleLevel) || ( checkConstituentMinPt && pt >= leadingConstituentPtMin)) { // if the jet is mcp level and checkLeadConstituentMinPtForMcpJets is true, then the pt of the leading track of that jet does not need to be below the defined leadingConstituentPtMin cut
263264 isMinLeadingConstituent = true ;
264265 }
265266 if (checkConstituentMaxPt && pt > leadingConstituentPtMax) {
@@ -464,7 +465,7 @@ struct JetSpectraCharged {
464465 void processQC (soa::Filtered<aod::JetCollisions>::iterator const & collision,
465466 soa::Filtered<soa::Join<aod::JetTracks, aod::JTrackExtras>> const & tracks)
466467 {
467- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
468+ if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
468469 return ;
469470 }
470471 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
@@ -484,7 +485,7 @@ struct JetSpectraCharged {
484485 soa::Filtered<soa::Join<aod::JetTracks, aod::JTrackExtras>> const & tracks)
485486 {
486487 float eventWeight = collision.mcCollision ().weight ();
487- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
488+ if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
488489 return ;
489490 }
490491 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
@@ -502,7 +503,7 @@ struct JetSpectraCharged {
502503 void processCollisions (soa::Filtered<aod::JetCollisions>::iterator const & collision)
503504 {
504505 registry.fill (HIST (" h_collisions" ), 0.5 );
505- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
506+ if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
506507 return ;
507508 }
508509 registry.fill (HIST (" h_collisions" ), 1.5 );
@@ -521,7 +522,7 @@ struct JetSpectraCharged {
521522 float eventWeight = collision.mcCollision ().weight ();
522523 registry.fill (HIST (" h_collisions" ), 0.5 );
523524 registry.fill (HIST (" h_collisions_weighted" ), 0.5 , eventWeight);
524- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
525+ if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
525526 return ;
526527 }
527528 registry.fill (HIST (" h_collisions" ), 1.5 );
@@ -540,7 +541,7 @@ struct JetSpectraCharged {
540541 soa::Join<aod::ChargedJets, aod::ChargedJetConstituents> const & jets,
541542 aod::JetTracks const &)
542543 {
543- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
544+ if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
544545 return ;
545546 }
546547 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
@@ -562,7 +563,7 @@ struct JetSpectraCharged {
562563 soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents> const & jets,
563564 aod::JetTracks const &)
564565 {
565- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
566+ if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
566567 return ;
567568 }
568569 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
@@ -584,7 +585,7 @@ struct JetSpectraCharged {
584585 soa::Join<aod::ChargedJets, aod::ChargedJetConstituents> const & jets,
585586 aod::JetTracks const &)
586587 {
587- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
588+ if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
588589 return ;
589590 }
590591 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
@@ -606,7 +607,7 @@ struct JetSpectraCharged {
606607 soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents> const & jets,
607608 aod::JetTracks const &)
608609 {
609- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
610+ if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
610611 return ;
611612 }
612613 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
@@ -628,7 +629,7 @@ struct JetSpectraCharged {
628629 soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents, aod::ChargedMCDetectorLevelJetEventWeights> const & jets,
629630 aod::JetTracks const &)
630631 {
631- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
632+ if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
632633 return ;
633634 }
634635 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
@@ -658,6 +659,8 @@ struct JetSpectraCharged {
658659 soa::Join<aod::ChargedMCParticleLevelJets, aod::ChargedMCParticleLevelJetConstituents> const & jets,
659660 aod::JetParticles const &)
660661 {
662+ bool mcLevelIsParticleLevel = true ;
663+
661664 registry.fill (HIST (" h_mcColl_counts_areasub" ), 0.5 );
662665 if (std::abs (mccollision.posZ ()) > vertexZCut) {
663666 return ;
@@ -676,7 +679,7 @@ struct JetSpectraCharged {
676679 bool centralityIsGood = false ;
677680 bool occupancyIsGood = false ;
678681 if (acceptSplitCollisions == 2 ) {
679- if (jetderiveddatautilities::selectCollision (collisions.begin (), eventSelectionBits)) {
682+ if (jetderiveddatautilities::selectCollision (collisions.begin (), eventSelectionBits, skipMBGapEvents )) {
680683 hasSel8Coll = true ;
681684 }
682685 if ((centralityMin < collisions.begin ().centrality ()) && (collisions.begin ().centrality () < centralityMax)) {
@@ -687,7 +690,7 @@ struct JetSpectraCharged {
687690 }
688691 } else {
689692 for (auto const & collision : collisions) {
690- if (jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
693+ if (jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
691694 hasSel8Coll = true ;
692695 }
693696 if ((centralityMin < collision.centrality ()) && (collision.centrality () < centralityMax)) {
@@ -717,7 +720,7 @@ struct JetSpectraCharged {
717720 if (!jetfindingutilities::isInEtaAcceptance (jet, jetEtaMin, jetEtaMax, trackEtaMin, trackEtaMax)) {
718721 continue ;
719722 }
720- if (!isAcceptedJet<aod::JetParticles>(jet)) {
723+ if (!isAcceptedJet<aod::JetParticles>(jet, mcLevelIsParticleLevel )) {
721724 continue ;
722725 }
723726 fillMCPAreaSubHistograms (jet, mccollision.rho ());
@@ -730,6 +733,8 @@ struct JetSpectraCharged {
730733 soa::Join<aod::ChargedMCParticleLevelJets, aod::ChargedMCParticleLevelJetConstituents> const & jets,
731734 aod::JetParticles const &)
732735 {
736+ bool mcLevelIsParticleLevel = true ;
737+
733738 registry.fill (HIST (" h_mcColl_counts" ), 0.5 );
734739 if (std::abs (mccollision.posZ ()) > vertexZCut) {
735740 return ;
@@ -744,7 +749,7 @@ struct JetSpectraCharged {
744749 bool centralityIsGood = false ;
745750 bool occupancyIsGood = false ;
746751 for (auto const & collision : collisions) {
747- if (jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
752+ if (jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
748753 hasSel8Coll = true ;
749754 }
750755 if ((centralityMin < collision.centrality ()) && (collision.centrality () < centralityMax)) {
@@ -772,7 +777,7 @@ struct JetSpectraCharged {
772777 if (!jetfindingutilities::isInEtaAcceptance (jet, jetEtaMin, jetEtaMax, trackEtaMin, trackEtaMax)) {
773778 continue ;
774779 }
775- if (!isAcceptedJet<aod::JetParticles>(jet)) {
780+ if (!isAcceptedJet<aod::JetParticles>(jet, mcLevelIsParticleLevel )) {
776781 continue ;
777782 }
778783 fillMCPHistograms (jet);
@@ -785,6 +790,8 @@ struct JetSpectraCharged {
785790 soa::Join<aod::ChargedMCParticleLevelJets, aod::ChargedMCParticleLevelJetConstituents, aod::ChargedMCParticleLevelJetEventWeights> const & jets,
786791 aod::JetParticles const &)
787792 {
793+ bool mcLevelIsParticleLevel = true ;
794+
788795 registry.fill (HIST (" h_mcColl_counts" ), 0.5 );
789796 if (std::abs (mccollision.posZ ()) > vertexZCut) {
790797 return ;
@@ -797,7 +804,7 @@ struct JetSpectraCharged {
797804
798805 bool hasSel8Coll = false ;
799806 for (auto const & collision : collisions) {
800- if (jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
807+ if (jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
801808 hasSel8Coll = true ;
802809 }
803810 }
@@ -811,7 +818,7 @@ struct JetSpectraCharged {
811818 if (!jetfindingutilities::isInEtaAcceptance (jet, jetEtaMin, jetEtaMax, trackEtaMin, trackEtaMax)) {
812819 continue ;
813820 }
814- if (!isAcceptedJet<aod::JetParticles>(jet)) {
821+ if (!isAcceptedJet<aod::JetParticles>(jet, mcLevelIsParticleLevel )) {
815822 continue ;
816823 }
817824 float jetweight = jet.eventWeight ();
@@ -831,7 +838,7 @@ struct JetSpectraCharged {
831838 soa::Join<aod::ChargedEventWiseSubtractedJets, aod::ChargedEventWiseSubtractedJetConstituents> const & jets,
832839 aod::JetTracksSub const &)
833840 {
834- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
841+ if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
835842 return ;
836843 }
837844 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
@@ -853,7 +860,7 @@ struct JetSpectraCharged {
853860 soa::Join<aod::ChargedMCDetectorLevelEventWiseSubtractedJets, aod::ChargedMCDetectorLevelEventWiseSubtractedJetConstituents> const & jets,
854861 aod::JetTracksSub const &)
855862 {
856- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
863+ if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
857864 return ;
858865 }
859866 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
@@ -876,7 +883,7 @@ struct JetSpectraCharged {
876883 ChargedMCPMatchedJets const &,
877884 aod::JetTracks const &, aod::JetParticles const &)
878885 {
879- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
886+ if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
880887 return ;
881888 }
882889 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
@@ -900,7 +907,7 @@ struct JetSpectraCharged {
900907 ChargedMCPMatchedJetsWeighted const &,
901908 aod::JetTracks const &, aod::JetParticles const &)
902909 {
903- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
910+ if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents )) {
904911 return ;
905912 }
906913 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
@@ -937,7 +944,7 @@ struct JetSpectraCharged {
937944 registry.fill (HIST (" h_mc_rho_matched" ), mcrho);
938945 for (const auto & collision : collisions) {
939946 registry.fill (HIST (" h_mcd_events_matched" ), 0.5 );
940- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits) || !(std::abs (collision.posZ ()) < vertexZCut)) {
947+ if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents ) || !(std::abs (collision.posZ ()) < vertexZCut)) {
941948 continue ;
942949 }
943950 registry.fill (HIST (" h_mcd_events_matched" ), 1.5 );
0 commit comments