From 98ae5bb874093889f575c87e8db3f9a3955534ca Mon Sep 17 00:00:00 2001 From: Daiki Sekihata Date: Tue, 21 Apr 2026 22:31:30 +0200 Subject: [PATCH] [PWGEM/Dilepton] update skimmerPrimaryMuon.cxx --- PWGEM/Dilepton/TableProducer/skimmerPrimaryMuon.cxx | 8 ++++++++ 1 file changed, 8 insertions(+) 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) {