diff --git a/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/MCTruthClassifier.h b/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/MCTruthClassifier.h
index e30b2663622b2cf5d437940b71a00799d69702b2..8c3954a4b30feaa8b468d6f1c0774b9283e74ea2 100644
--- a/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/MCTruthClassifier.h
+++ b/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/MCTruthClassifier.h
@@ -53,24 +53,74 @@ CREATED:  Sep 2007
 //std includes
 #include <cmath>
 #include <utility>
-class MCTruthClassifier
-  : virtual public IMCTruthClassifier
-  , public asg::AsgTool
+class MCTruthClassifier : virtual public IMCTruthClassifier , public asg::AsgTool
 {
   ASG_TOOL_CLASS(MCTruthClassifier, IMCTruthClassifier)
 public:
   // constructor
-  MCTruthClassifier(const std::string& type);
+  MCTruthClassifier(const std::string& type)  : asg::AsgTool(type) {
+#if !defined(XAOD_ANALYSIS) && !defined(GENERATIONBASE)
+    declareProperty("FwdElectronUseG4Sel" , m_FwdElectronUseG4Sel = true, "Use Geant4 selection for forward electrons calo clusters");
+    declareProperty("FwdElectronTruthExtrEtaCut", m_FwdElectronTruthExtrEtaCut = 2.4, "Cut on the eta of the truth Particles to be extrapolated for Fwd electrons");
+    declareProperty("FwdElectronTruthExtrEtaWindowCut", m_FwdElectronTruthExtrEtaWindowCut = 0.15, "Cut on the delta eta of the truth Particles to be extrapolated for Fwd electrons and the current FwdElectron");
+    declareProperty("partExtrConePhi", m_partExtrConePhi = 0.4);
+    declareProperty("partExtrConeEta", m_partExtrConeEta = 0.2);
+    declareProperty("phtClasConePhi", m_phtClasConePhi = 0.05);
+    declareProperty("phtClasConeEta", m_phtClasConeEta = 0.025);
+    declareProperty("useCaching", m_useCaching = true);
+    declareProperty("phtdRtoTrCut", m_phtdRtoTrCut = 0.1);
+    declareProperty("fwrdEledRtoTrCut", m_fwrdEledRtoTrCut = 0.15);
+    declareProperty("ROICone", m_ROICone = false);
+#endif
+#ifndef GENERATIONBASE
+    declareProperty("deltaRMatchCut", m_deltaRMatchCut = 0.2);
+    declareProperty("deltaPhiMatchCut", m_deltaPhiMatchCut = 0.2);
+    declareProperty("NumOfSiHitsCut", m_NumOfSiHitsCut = 3);
+    declareProperty("jetPartDRMatch", m_jetPartDRMatch = 0.4);
+#endif
+    // Properties Available in all
+    declareProperty("inclEgammaFwrdEle", m_inclEgammaFwrdEle = true);
+    declareProperty("inclEgammaPhoton", m_inclEgammaPhoton = true);
+    declareProperty("pTChargePartCut", m_pTChargePartCut = 1.0);
+    declareProperty("pTNeutralPartCut", m_pTNeutralPartCut = 0.);
+    declareProperty("inclG4part", m_inclG4part = false);
+  } 
   // destructor
-  virtual ~MCTruthClassifier();
+  virtual ~MCTruthClassifier()  = default ;
 
-  // Gaudi algorithm hooks
-  virtual StatusCode initialize() override;
+    // Gaudi algorithm hooks
+  virtual StatusCode initialize() override {
+    ATH_MSG_INFO(" Initializing MCTruthClassifier");
+#ifndef XAOD_ANALYSIS
+    // Only needed for GenParticle interface
+    if (!m_truthLinkVecReadHandleKey.key().empty()) {
+      ATH_CHECK(m_truthLinkVecReadHandleKey.initialize());
+    }
+#endif
+    ATH_CHECK(m_truthParticleContainerKey.initialize());
+
+#if !defined(XAOD_ANALYSIS) && !defined(GENERATIONBASE)
+    if (!m_caloExtensionTool.empty()) {
+      ATH_CHECK(m_caloExtensionTool.retrieve());
+    } else {
+      m_caloExtensionTool.disable();
+    }
+
+    ATH_CHECK(m_caloMgrKey.initialize(SG::AllowEmpty));
+
+    if (!m_truthInConeTool.empty()) {
+      ATH_CHECK(m_truthInConeTool.retrieve());
+    } else {
+      m_truthInConeTool.disable();
+    }
+#endif
+    return StatusCode::SUCCESS;
+  }  
   virtual StatusCode finalize()
 #ifndef XAOD_STANDALONE
     override
 #endif // not XAOD_STANDALONE
-    ;
+  { return StatusCode::SUCCESS;}
 
   /* All get to see these*/
   virtual std::pair<MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin> 
diff --git a/PhysicsAnalysis/MCTruthClassifier/Root/MCTruthClassifier.cxx b/PhysicsAnalysis/MCTruthClassifier/Root/MCTruthClassifier.cxx
deleted file mode 100644
index 58e842b93cc2a9f63b03a48778bbcad3fea20d0c..0000000000000000000000000000000000000000
--- a/PhysicsAnalysis/MCTruthClassifier/Root/MCTruthClassifier.cxx
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
-  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
-*/
-
-/***********************************************************************
-
-NAME:     MCTruthClassifier.cxx
-PACKAGE:  atlasoff/PhysicsAnalysis/MCTruthClassifier
-
-AUTHORS:  O. Fedin
-CREATED:  Sep 2007
-
-PURPOSE:  to classify  truth particles according to their origin. Based on
-          the truth particle classification the tool provide classification of
-          ID and combined muon tracks, egamma electrons (including forward
-          electrons) and egamma photons. Both AOD and ESD files can be used.
-          See  for details:
-    https://twiki.cern.ch/twiki/bin/view/AtlasProtected/EgammaMCTruthClassifier
-Updated:
-************************************************************************
-Updated Feb 2024 by Andrii Verbytskyi <andrii.verbytskyi@mpp.mpg.de>
-************************************************************************/
-
-#include "MCTruthClassifier/MCTruthClassifier.h"
-using namespace MCTruthPartClassifier;
-
-// -----------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------
-MCTruthClassifier::MCTruthClassifier(const std::string& type) : asg::AsgTool(type) {
-
-#if !defined(XAOD_ANALYSIS) && !defined(GENERATIONBASE)
-  declareProperty("FwdElectronUseG4Sel" , m_FwdElectronUseG4Sel = true, "Use Geant4 selection for forward electrons calo clusters");
-  declareProperty("FwdElectronTruthExtrEtaCut", m_FwdElectronTruthExtrEtaCut = 2.4, "Cut on the eta of the truth Particles to be extrapolated for Fwd electrons");
-  declareProperty("FwdElectronTruthExtrEtaWindowCut", m_FwdElectronTruthExtrEtaWindowCut = 0.15, "Cut on the delta eta of the truth Particles to be extrapolated for Fwd electrons and the current FwdElectron");
-  declareProperty("partExtrConePhi", m_partExtrConePhi = 0.4);
-  declareProperty("partExtrConeEta", m_partExtrConeEta = 0.2);
-  declareProperty("phtClasConePhi", m_phtClasConePhi = 0.05);
-  declareProperty("phtClasConeEta", m_phtClasConeEta = 0.025);
-  declareProperty("useCaching", m_useCaching = true);
-  declareProperty("phtdRtoTrCut", m_phtdRtoTrCut = 0.1);
-  declareProperty("fwrdEledRtoTrCut", m_fwrdEledRtoTrCut = 0.15);
-  declareProperty("ROICone", m_ROICone = false);
-#endif
-#ifndef GENERATIONBASE
-  declareProperty("deltaRMatchCut", m_deltaRMatchCut = 0.2);
-  declareProperty("deltaPhiMatchCut", m_deltaPhiMatchCut = 0.2);
-  declareProperty("NumOfSiHitsCut", m_NumOfSiHitsCut = 3);
-  declareProperty("jetPartDRMatch", m_jetPartDRMatch = 0.4);
-#endif
-  // Properties Available in all
-  declareProperty("inclEgammaFwrdEle", m_inclEgammaFwrdEle = true);
-  declareProperty("inclEgammaPhoton", m_inclEgammaPhoton = true);
-  declareProperty("pTChargePartCut", m_pTChargePartCut = 1.0);
-  declareProperty("pTNeutralPartCut", m_pTNeutralPartCut = 0.);
-  declareProperty("inclG4part", m_inclG4part = false);
-
-}
-
-MCTruthClassifier::~MCTruthClassifier() = default;
-
-StatusCode MCTruthClassifier::initialize(){
-  ATH_MSG_INFO(" Initializing MCTruthClassifier");
-#ifndef XAOD_ANALYSIS
-  // Only needed for GenParticle interface
-  if (!m_truthLinkVecReadHandleKey.key().empty()) {
-    ATH_CHECK(m_truthLinkVecReadHandleKey.initialize());
-  }
-#endif
-  ATH_CHECK(m_truthParticleContainerKey.initialize());
-
-#if !defined(XAOD_ANALYSIS) && !defined(GENERATIONBASE)
-  if (!m_caloExtensionTool.empty()) {
-    ATH_CHECK(m_caloExtensionTool.retrieve());
-  } else {
-    m_caloExtensionTool.disable();
-  }
-
-  ATH_CHECK(m_caloMgrKey.initialize(SG::AllowEmpty));
-
-  if (!m_truthInConeTool.empty()) {
-    ATH_CHECK(m_truthInConeTool.retrieve());
-  } else {
-    m_truthInConeTool.disable();
-  }
-#endif
-  return StatusCode::SUCCESS;
-}
-
-StatusCode MCTruthClassifier::finalize()
-{
-  return StatusCode::SUCCESS;
-}