diff --git a/PWGEM/Dilepton/TableProducer/skimmerPrimaryMuon.cxx b/PWGEM/Dilepton/TableProducer/skimmerPrimaryMuon.cxx index 3ced65b2b7d..674902c2746 100644 --- a/PWGEM/Dilepton/TableProducer/skimmerPrimaryMuon.cxx +++ b/PWGEM/Dilepton/TableProducer/skimmerPrimaryMuon.cxx @@ -106,6 +106,7 @@ struct skimmerPrimaryMuon { Configurable maxDEta{"maxDEta", 1e+10f, "max. deta between MFT-MCH-MID and MCH-MID"}; Configurable maxDPhi{"maxDPhi", 1e+10f, "max. dphi between MFT-MCH-MID and MCH-MID"}; Configurable cfgApplyPreselectionInBestMatch{"cfgApplyPreselectionInBestMatch", false, "flag to apply preselection in find best match function"}; + Configurable cfgRequireSameSign{"cfgRequireSameSign", false, "flag to require same sign between MFT and MCH-MID"}; // for z shift for propagation Configurable cfgApplyZShiftFromCCDB{"cfgApplyZShiftFromCCDB", false, "flag to apply z shift"}; @@ -343,6 +344,10 @@ struct skimmerPrimaryMuon { return false; } + if (cfgRequireSameSign && (mfttrack.sign() != mchtrack.sign())) { + return false; + } + xMFT = mfttrack.x(); yMFT = mfttrack.y(); @@ -629,6 +634,9 @@ struct skimmerPrimaryMuon { if (muon_tmp.chi2MatchMCHMFT() > maxMatchingChi2MCHMFT) { continue; } + if (cfgRequireSameSign && (mfttrack.sign() != mchtrack.sign())) { + continue; + } } if (0.f < muon_tmp.chi2MatchMCHMFT() && muon_tmp.chi2MatchMCHMFT() < min_chi2MatchMCHMFT) {