@@ -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