From 70f6d799ad6be1a90a08d132a958eb3ec92a836b Mon Sep 17 00:00:00 2001 From: Laura Gansbartl Date: Mon, 21 Sep 2026 16:22:58 +0200 Subject: [PATCH] [PWGEM] add option for at least one photon in Dalitz Skimmer --- .../TableProducer/skimmerPrimaryElectronFromDalitzEE.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.h b/PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.h index c1102e8f112..ed671564446 100644 --- a/PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.h +++ b/PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.h @@ -166,6 +166,7 @@ struct skimmerPrimaryElectronFromDalitzEE { Configurable maxMee{"maxMee", 0.5, "max. mee to store dalitz ee pairs"}; Configurable minMeegamma{"minMeegamma", 0.3, "min. mee to store eegamma candidates"}; Configurable maxMeegamma{"maxMeegamma", 0.8, "max. mee to store eegamma candidates"}; + Configurable photonsNeeded{"photonsNeeded", true, "require a minimum of one photons per collision"}; Configurable fillLS{"fillLS", true, "flag to fill LS histograms for QA"}; Configurable fillingMode{"fillingMode", 1, "Filling mode| 1: fill tracks without pair selection, 2: fill tracks from selected pairs, 3: fill tracks from selected pairs that can be combined with a photon"}; Configurable fillWithEtaMassCut{"fillWithEtaMassCut", true, "only valid for fillingmode 3; true: filling tabled based on eta candidate selection with minMeegamma < M < maxMeegamma, false: fill identical to fillingmode 2"}; @@ -745,6 +746,10 @@ struct skimmerPrimaryElectronFromDalitzEE { auto varFillingMode = static_cast(fillingMode.value); const auto& v0photons_per_coll = v0photons.sliceBy(perCol_pcm, collision.globalIndex()); + if (photonsNeeded && v0photons_per_coll.size() == 0) { + continue; + } + const auto& posTracks_per_coll = posTracks->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); const auto& negTracks_per_coll = negTracks->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); const auto& slicedTracks = tracks.sliceBy(perTracksCollision, collision.globalIndex()); @@ -927,6 +932,10 @@ struct skimmerPrimaryElectronFromDalitzEE { auto varFillingMode = static_cast(fillingMode.value); const auto& v0photons_per_coll = v0photons.sliceBy(perCol_pcm, collision.globalIndex()); + if (photonsNeeded && v0photons_per_coll.size() == 0) { + continue; + } + const auto& posTracks_per_coll = posTracksMC->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); const auto& negTracks_per_coll = negTracksMC->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); const auto& slicedTracks = tracks.sliceBy(perTracksCollision, collision.globalIndex());