Skip to content

Commit 258a047

Browse files
authored
[PWGEM/Dilepton] add possibility to store only true electron in MC (#11930)
1 parent 7471a7d commit 258a047

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

PWGEM/Dilepton/TableProducer/skimmerPrimaryElectron.cxx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ struct skimmerPrimaryElectron {
102102
Configurable<bool> includeITSsa{"includeITSsa", false, "Flag to include ITSsa tracks"};
103103
Configurable<float> maxpt_itssa{"maxpt_itssa", 0.15, "max pt for ITSsa track"};
104104
Configurable<float> maxMeanITSClusterSize{"maxMeanITSClusterSize", 16, "max <ITS cluster size> x cos(lambda)"};
105+
Configurable<bool> storeOnlyTrueElectronMC{"storeOnlyTrueElectronMC", false, "Flag to store only true electron in MC"};
105106

106107
// configuration for PID ML
107108
Configurable<bool> usePIDML{"usePIDML", false, "Flag to use PID ML"};
@@ -270,6 +271,12 @@ struct skimmerPrimaryElectron {
270271
if (!track.has_mcParticle()) {
271272
return false;
272273
}
274+
if (storeOnlyTrueElectronMC) {
275+
const auto& mcParticle = track.template mcParticle_as<aod::McParticles>();
276+
if (std::abs(mcParticle.pdgCode()) != 11) {
277+
return false;
278+
}
279+
}
273280
}
274281

275282
if (requireTOF && !(track.hasTOF() && std::fabs(track.tofNSigmaEl()) < maxTOFNsigmaEl)) {
@@ -700,7 +707,7 @@ struct skimmerPrimaryElectron {
700707
using MyFilteredTracksMC = soa::Filtered<MyTracksMC>;
701708
Partition<MyFilteredTracksMC> posTracksMC = o2::aod::track::signed1Pt > 0.f;
702709
Partition<MyFilteredTracksMC> negTracksMC = o2::aod::track::signed1Pt < 0.f;
703-
void processMC_SA(soa::Join<MyCollisions, aod::McCollisionLabels> const& collisions, aod::McCollisions const&, aod::BCsWithTimestamps const&, MyFilteredTracksMC const& tracks)
710+
void processMC_SA(soa::Join<MyCollisions, aod::McCollisionLabels> const& collisions, aod::McCollisions const&, aod::BCsWithTimestamps const&, MyFilteredTracksMC const& tracks, aod::McParticles const&)
704711
{
705712
auto tracksWithITSPid = soa::Attach<MyFilteredTracksMC, aod::pidits::ITSNSigmaEl, aod::pidits::ITSNSigmaMu, aod::pidits::ITSNSigmaPi, aod::pidits::ITSNSigmaKa, aod::pidits::ITSNSigmaPr>(tracks);
706713
stored_trackIds.reserve(tracks.size());
@@ -730,7 +737,7 @@ struct skimmerPrimaryElectron {
730737
}
731738
PROCESS_SWITCH(skimmerPrimaryElectron, processMC_SA, "process reconstructed and MC info ", false);
732739

733-
void processMC_TTCA(soa::Join<MyCollisions, aod::McCollisionLabels> const& collisions, aod::McCollisions const&, aod::BCsWithTimestamps const&, MyTracksMC const& tracks, aod::TrackAssoc const& trackIndices)
740+
void processMC_TTCA(soa::Join<MyCollisions, aod::McCollisionLabels> const& collisions, aod::McCollisions const&, aod::BCsWithTimestamps const&, MyTracksMC const& tracks, aod::TrackAssoc const& trackIndices, aod::McParticles const&)
734741
{
735742
auto tracksWithITSPid = soa::Attach<MyTracksMC, aod::pidits::ITSNSigmaEl, aod::pidits::ITSNSigmaMu, aod::pidits::ITSNSigmaPi, aod::pidits::ITSNSigmaKa, aod::pidits::ITSNSigmaPr>(tracks);
736743
stored_trackIds.reserve(tracks.size() * 2);

0 commit comments

Comments
 (0)