diff --git a/Generators/GeneratorFilters/src/Common.cxx b/Generators/GeneratorFilters/src/Common.cxx
index 61fc6738fdc1db23214d23374319cca1fe0993ac..c160f96bb7346f74e4dbada8a66b08968a93eb42 100644
--- a/Generators/GeneratorFilters/src/Common.cxx
+++ b/Generators/GeneratorFilters/src/Common.cxx
@@ -106,7 +106,8 @@ void classify(ToolHandle<IMCTruthClassifier>& classif,
        particleOutCome = classif->getParticleOutCome();
 #endif
        result = (unsigned int)classif->classify(theParticle);
-       hadron_pdg = (int)classif->getParentHadronID(theParticle);
+       auto parent = classif->getParentHadron(theParticle);
+       hadron_pdg = parent ? parent->pdg_id() : 0;
        particleType = classification.first;
        particleOrigin = classification.second;
   }
diff --git a/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/IMCTruthClassifier.h b/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/IMCTruthClassifier.h
index 02d6dadf0f9ade63198edbc2f3c2ed6fd83b1718..26e5822f7f34b2d65f7549b24f2658876883a5af 100644
--- a/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/IMCTruthClassifier.h
+++ b/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/IMCTruthClassifier.h
@@ -115,9 +115,6 @@ public:
 
   virtual const xAOD::TruthParticle* getParentHadron(const xAOD::TruthParticle*) const = 0;
 
-  virtual int getParentHadronID(const xAOD::TruthParticle*) const = 0;
-
-
 #ifndef XAOD_ANALYSIS /*These can not run in Analysis Base*/
   virtual std::pair<MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin> 
   particleTruthClassifier(const HepMcParticleLink& theLink,Info* info = nullptr) const = 0;
diff --git a/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/MCTruthClassifier.h b/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/MCTruthClassifier.h
index dd6a11e00471acd8fdf89fe0d75720f54efa9acb..5bf4a46d2cfbc59824ce30c48352fe3781b8381d 100644
--- a/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/MCTruthClassifier.h
+++ b/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/MCTruthClassifier.h
@@ -134,9 +134,6 @@ public:
 
   virtual const xAOD::TruthParticle* getParentHadron(const xAOD::TruthParticle*) const override;
 
-  virtual int getParentHadronID(const xAOD::TruthParticle*) const override;
-
-
   enum MCTC_bits : unsigned int { HadTau=0, Tau, hadron, frombsm, uncat, isbsm, isgeant, stable, totalBits };
 
   /// \brief These helper functions return the value that the respective bit is set to in \ref MCTruthClassifier
diff --git a/PhysicsAnalysis/MCTruthClassifier/Root/MCTruthClassifierGen.cxx b/PhysicsAnalysis/MCTruthClassifier/Root/MCTruthClassifierGen.cxx
index 661f50d3a7ee69b709d86e5d5ddd93787ff17b67..7375a6347f9cfbce1000b2f278b76fb4dd5af6b1 100644
--- a/PhysicsAnalysis/MCTruthClassifier/Root/MCTruthClassifierGen.cxx
+++ b/PhysicsAnalysis/MCTruthClassifier/Root/MCTruthClassifierGen.cxx
@@ -262,11 +262,6 @@ const xAOD::TruthParticle* MCTruthClassifier::getParentHadron(const xAOD::TruthP
   return std::get<1>(defOrigOfParticle(thePart));
 }
 
-int MCTruthClassifier::getParentHadronID(const xAOD::TruthParticle* thePart) const {
-  const xAOD::TruthParticle* parentHadron = getParentHadron(thePart);
-  return parentHadron ? parentHadron->pdgId() : 0; 
-}
-
 unsigned int MCTruthClassifier::classify(const xAOD::TruthParticle* thePart) const {
   ATH_MSG_DEBUG( "Executing classify" );
   if (!thePart) { ATH_MSG_WARNING( "Passed a nullptr" ); return 0; }