diff --git a/MuonSpectrometer/MuonPhaseII/MuonDetDescr/ActsMuonDetectorTest/CMakeLists.txt b/MuonSpectrometer/MuonPhaseII/MuonDetDescr/ActsMuonDetectorTest/CMakeLists.txt
index 9aa148699b86398456d6197cb1b169479cef3c28..4081f78700e8f78d57f39384fa2e0932aa88a844 100644
--- a/MuonSpectrometer/MuonPhaseII/MuonDetDescr/ActsMuonDetectorTest/CMakeLists.txt
+++ b/MuonSpectrometer/MuonPhaseII/MuonDetDescr/ActsMuonDetectorTest/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
 
 ################################################################################
 # Package: ActsMuonDetectorTest
@@ -10,7 +10,7 @@ atlas_add_component( ActsMuonDetectorTest
                      src/components/*.cxx src/*.cxx
                      LINK_LIBRARIES AthenaKernel StoreGateLib GeoModelUtilities MuonTesterTreeLib
                                     GaudiKernel MuonReadoutGeometryR4 MuonGeoModelR4Lib ActsGeometryLib AthenaPoolUtilities
-                                    xAODTruth xAODMuonSimHit CxxUtils)
+                                    xAODTruth xAODMuonSimHit CxxUtils TruthUtils)
 
 atlas_add_test( testMuonDetectorNav
                 SCRIPT python -m ActsMuonDetectorTest.testMuonDetector
diff --git a/MuonSpectrometer/MuonPhaseII/MuonDetDescr/ActsMuonDetectorTest/src/MuonDetectorNavTest.cxx b/MuonSpectrometer/MuonPhaseII/MuonDetDescr/ActsMuonDetectorTest/src/MuonDetectorNavTest.cxx
index b6e60e51d6555581b48f06109fa1ef93f1ac7e41..a4a81b9e687b438edab135d00e2ce967fee103a8 100644
--- a/MuonSpectrometer/MuonPhaseII/MuonDetDescr/ActsMuonDetectorTest/src/MuonDetectorNavTest.cxx
+++ b/MuonSpectrometer/MuonPhaseII/MuonDetDescr/ActsMuonDetectorTest/src/MuonDetectorNavTest.cxx
@@ -18,6 +18,8 @@
 
 #include "xAODTruth/TruthVertex.h"
 
+#include "TruthUtils/HepMCHelpers.h"
+
 #include <fstream>
 
 using namespace Acts::UnitLiterals;
@@ -145,7 +147,7 @@ namespace ActsTrk {
 		const Acts::Experimental::Detector* detector = m_detVolSvc->detector().get();
 		for(const auto truthParticle : *truthParticles){
 			//Require that we only propagate on muons, and of status 1
-			if(truthParticle->status() == 1 and truthParticle->pdgId() == 13){
+                  if(MC::isStable(truthParticle) and truthParticle->pdgId() == MC::MUON){ // FIXME not antimuons?
 				const auto& particle = truthParticle->p4();
 				const auto& prodVertex = (!truthParticle->hasProdVtx()) ? nullptr : truthParticle->prodVtx();
 				double x = prodVertex ? prodVertex->x() : 0.;
diff --git a/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonPatternRecognitionAlgs/CMakeLists.txt b/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonPatternRecognitionAlgs/CMakeLists.txt
index d37e61ba6a013e23351acee23d3f4daca9d31476..3e9ec9366bef6043d785ec91abeac30faf3e1d26 100644
--- a/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonPatternRecognitionAlgs/CMakeLists.txt
+++ b/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonPatternRecognitionAlgs/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
 ################################################################################
 # Package: MuonPatternRecognitionAlgs
 ################################################################################
@@ -13,7 +13,7 @@ atlas_add_component( MuonPatternRecognitionAlgs
                      src/components/*.cxx src/*.cxx
                      LINK_LIBRARIES MuonVisualizationHelpersR4 MuonPatternEvent AthenaKernel StoreGateLib
                                     xAODMuonPrepData MuonSpacePoint MuonPatternHelpers MuonRecToolInterfacesR4 
-                                    MuonTruthHelpers )
+                                    MuonTruthHelpers TruthUtils )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonPatternRecognitionAlgs/src/CombinatorialNSWSeedFinderAlg.cxx b/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonPatternRecognitionAlgs/src/CombinatorialNSWSeedFinderAlg.cxx
index 56262a5e1ce8cf16c81271c76e3287df280f2931..c72e2f6bff59fed55178872b845d0fe3867c31e1 100644
--- a/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonPatternRecognitionAlgs/src/CombinatorialNSWSeedFinderAlg.cxx
+++ b/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonPatternRecognitionAlgs/src/CombinatorialNSWSeedFinderAlg.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "CombinatorialNSWSeedFinderAlg.h"
@@ -15,7 +15,7 @@
 #include "xAODMeasurementBase/UncalibratedMeasurement.h"
 #include "xAODMuonPrepData/MMCluster.h"
 
-
+#include "TruthUtils/HepMCHelpers.h"
 
 #include <ranges>
 #include <vector>
@@ -279,7 +279,7 @@ CombinatorialNSWSeedFinderAlg::findSeedsFromMaximum(const HoughMaximum &max, con
         for (const SpacePoint* sp : max.getHitsInMax()) {
             const auto* mmClust = static_cast<const xAOD::MMCluster*>(sp->primaryMeasurement());
             const xAOD::MuonSimHit* simHit = getTruthMatchedHit(*mmClust);
-            if (!simHit || std::abs(simHit->pdgId()) != 13) continue;
+            if (!simHit || !MC::isMuon(simHit)) continue;
             const MuonGMR4::MmReadoutElement* reEle = mmClust->readoutElement();
             const MuonGMR4::StripDesign& design = reEle->stripLayer(mmClust->measurementHash()).design();
             const Amg::Transform3D toChamb = reEle->msSector()->globalToLocalTrans(gctx) * 
diff --git a/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonTruthAlgsR4/CMakeLists.txt b/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonTruthAlgsR4/CMakeLists.txt
index e87f9bcb710adbb2a9475ebc4c6d30f76f6189b9..38f208ddb96d20a19a98e5ae9c865792618ac51b 100644
--- a/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonTruthAlgsR4/CMakeLists.txt
+++ b/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonTruthAlgsR4/CMakeLists.txt
@@ -10,7 +10,7 @@ atlas_add_component( MuonTruthAlgsR4
                      src/components/*.cxx src/*.cxx
                      LINK_LIBRARIES  xAODMuonSimHit AthenaBaseComps GaudiKernel xAODMuon MuonIdHelpersLib
                                      MuonReadoutGeometryR4 xAODMuonPrepData MuonPatternEvent xAODMuonViews
-                                     TrkTruthData MuonTruthHelpers MuonRecHelperToolsLib)
+                                     TrkTruthData MuonTruthHelpers MuonRecHelperToolsLib TruthUtils)
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonTruthAlgsR4/src/TruthSegmentMaker.cxx b/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonTruthAlgsR4/src/TruthSegmentMaker.cxx
index 97f78cbd41743f86953b000eb125fb79da53c79c..259b6267a78fda46df6012a0030d2d4e93c166bc 100644
--- a/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonTruthAlgsR4/src/TruthSegmentMaker.cxx
+++ b/MuonSpectrometer/MuonPhaseII/MuonPatternRecognition/MuonTruthAlgsR4/src/TruthSegmentMaker.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
 */
 #include "TruthSegmentMaker.h"
 
@@ -18,6 +18,8 @@
 
 #include "MuonPatternEvent/MuonHoughDefs.h"
 
+#include "TruthUtils/HepMCHelpers.h"
+
 #include "GaudiKernel/PhysicalConstants.h"
 
 #include <unordered_map>
@@ -90,7 +92,7 @@ namespace MuonR4{
                     genParticle = genLink.cptr(); 
                 }
                 /// skip empty truth matches for now
-                if (!genParticle || (m_useOnlyMuonHits && std::abs(simHit->pdgId()) != 13)) {
+                if (!genParticle || (m_useOnlyMuonHits && !MC::isMuon(simHit))) {
                     ATH_MSG_VERBOSE("Skip hit "<<m_idHelperSvc->toString(simHit->identify())<<
                                   " pdgId: "<<simHit->pdgId()<<", energy: "<<simHit->kineticEnergy());
                     continue;