diff --git a/Simulation/G4Atlas/G4AtlasAlg/G4AtlasAlg/G4AtlasRunManager.h b/Simulation/G4Atlas/G4AtlasAlg/G4AtlasAlg/G4AtlasRunManager.h
index 6176bd355feba451efe0ebd35712863ed15b7e93..1e101ec2c7adbe01ac357b00d20483649f4973e0 100644
--- a/Simulation/G4Atlas/G4AtlasAlg/G4AtlasAlg/G4AtlasRunManager.h
+++ b/Simulation/G4Atlas/G4AtlasAlg/G4AtlasAlg/G4AtlasRunManager.h
@@ -31,7 +31,7 @@ class G4AtlasRunManager: public G4RunManager {
 
 public:
 
-  virtual ~G4AtlasRunManager() {delete m_fluxRecorder;m_fluxRecorder=nullptr;}
+  virtual ~G4AtlasRunManager() {}
 
   /// Retrieve the singleton instance
   static G4AtlasRunManager* GetG4AtlasRunManager();
@@ -69,7 +69,7 @@ public:
     m_physListTool.setTypeAndName(typeAndName);
   }
 
-  void SetRecordFlux(bool b, IFluxRecorder *f) { m_recordFlux = b; m_fluxRecorder=f;}
+  void SetRecordFlux(bool b, std::unique_ptr<IFluxRecorder> f) { m_recordFlux = b; m_fluxRecorder=std::move(f);}
   void SetLogLevel(int) { /* Not implemented */ }
   /// @}
 
@@ -109,7 +109,7 @@ private:
   
   /// Interface to flux recording
   
-  IFluxRecorder *m_fluxRecorder;
+  std::unique_ptr<IFluxRecorder> m_fluxRecorder;
 };
 
 #endif // G4ATLASALG_G4AtlasRunManager_h
diff --git a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx
index 51497be66d0da8f120aa7c3652214e15e519a38e..ab1f781b9a55c00cec0b0f8af454445a9441843e 100644
--- a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx
+++ b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx
@@ -140,7 +140,7 @@ void G4AtlasAlg::initializeOnce()
   else {
     auto* runMgr = G4AtlasRunManager::GetG4AtlasRunManager();
     m_physListTool->SetPhysicsList();
-    runMgr->SetRecordFlux( m_recordFlux, new G4AtlasFluxRecorder );
+    runMgr->SetRecordFlux( m_recordFlux, std::make_unique<G4AtlasFluxRecorder>() );
     runMgr->SetLogLevel( int(msg().level()) ); // Synch log levels
     runMgr->SetUserActionSvc( m_userActionSvc.typeAndName() );
     runMgr->SetDetGeoSvc( m_detGeoSvc.typeAndName() );
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/CMakeLists.txt b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/CMakeLists.txt
index d8a4357482c539546b44f1fd1853355710fce91a..2dfae7ef630ba21394dccb20982c8a2f5b56a22e 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/CMakeLists.txt
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/CMakeLists.txt
@@ -16,6 +16,7 @@ atlas_depends_on_subdirs( PUBLIC
                           PRIVATE
                           Control/StoreGate
                           Simulation/Barcode/BarcodeEvent
+                          Simulation/G4Atlas/G4AtlasAlg
                           Simulation/ISF/ISF_Core/ISF_Interfaces
                           Simulation/ISF/ISF_Geant4/ISF_Geant4Tools
                           Tracking/TrkDetDescr/TrkGeometry )
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt
index 9285829915a8f913ab100498634011122c3a60c5..522a2adab571767228593eca8be1484642e19e6d 100644
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt
+++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt
@@ -17,6 +17,7 @@ atlas_depends_on_subdirs( PUBLIC
                           DetectorDescription/AtlasDetDescr
                           Generators/GeneratorObjects
                           Simulation/G4Atlas/G4AtlasTools
+						  Simulation/G4Atlas/G4AtlasAlg
                           Simulation/G4Sim/MCTruth
                           Simulation/G4Sim/SimHelpers
                           Simulation/ISF/ISF_Core/ISF_Event
@@ -37,7 +38,7 @@ atlas_add_component( ISF_Geant4Tools
                      src/*.cxx
                      src/components/*.cxx
                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${ROOT_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} ${GEANT4_LIBRARIES} ${EIGEN_LIBRARIES} AthenaKernel GaudiKernel G4AtlasInterfaces AthenaBaseComps CxxUtils StoreGateLib SGtests AtlasDetDescr GeneratorObjects G4AtlasToolsLib MCTruth SimHelpers ISF_Event ISF_Interfaces ISF_Geant4Event )
+                     LINK_LIBRARIES ${ROOT_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} ${GEANT4_LIBRARIES} ${EIGEN_LIBRARIES} AthenaKernel GaudiKernel G4AtlasInterfaces AthenaBaseComps CxxUtils StoreGateLib SGtests AtlasDetDescr GeneratorObjects G4AtlasToolsLib G4AtlasAlgLib MCTruth SimHelpers ISF_Event ISF_Interfaces ISF_Geant4Event )
 
 # Install files from the package:
 atlas_install_headers( ISF_Geant4Tools )
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/ISF_Geant4Tools/G4AtlasRunManager.h b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/ISF_Geant4Tools/G4AtlasRunManager.h
deleted file mode 100644
index b2df8bdd6b39b3f15d58ee94d26b2bc647d5c83a..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/ISF_Geant4Tools/G4AtlasRunManager.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-///////////////////////////////////////////////////////////////////
-// TransportTool.h, (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-
-#ifndef ISF_GEANT4TOOLS_G4ATLASRUNMANAGER_H
-#define ISF_GEANT4TOOLS_G4ATLASRUNMANAGER_H
-
-// Base class header
-#include "G4RunManager.hh"
-
-// Gaudi headers
-#include "GaudiKernel/ServiceHandle.h"
-#include "GaudiKernel/ToolHandle.h"
-
-// Athena headers
-#include "AthenaKernel/MsgStreamMember.h"
-#include "G4AtlasInterfaces/ISensitiveDetectorMasterTool.h"
-#include "G4AtlasInterfaces/IFastSimulationMasterTool.h"
-#include "G4AtlasInterfaces/IPhysicsListTool.h"
-#include "G4AtlasInterfaces/IUserActionSvc.h"
-#include "G4AtlasInterfaces/IDetectorGeometrySvc.h"
-#include "G4AtlasInterfaces/IFluxRecorder.h"
-
-/// ATLAS custom singleton run manager.
-///
-/// This is the run manager used for serial (not-MT) jobs.
-/// @TODO sync and reduce code duplication with MT run managers.
-///
-
-namespace iGeant4
-{
-
-  class G4AtlasRunManager : public G4RunManager {
-
-  public:
-
-    virtual ~G4AtlasRunManager() {}
-
-    /// Retrieve the singleton instance
-    static G4AtlasRunManager* GetG4AtlasRunManager();
-
-    /// Does the work of simulating an ATLAS event
-    bool ProcessEvent(G4Event* event);
-
-    /// G4 function called at end of run
-    void RunTermination() override final;
-	
-	    /// @name Methods to pass configuration in from G4AtlasAlg
-    /// @{
-    /// Configure the user action service handle
-    void SetUserActionSvc(const std::string& typeAndName) {
-      m_userActionSvc.setTypeAndName(typeAndName);
-    }
-
-    /// Configure the detector geometry service handle
-    void SetDetGeoSvc(const std::string& typeAndName) {
-      m_detGeoSvc.setTypeAndName(typeAndName);
-    }
-
-    /// Configure the Sensitive Detector Master Tool handle
-    void SetSDMasterTool(const std::string& typeAndName) {
-      m_senDetTool.setTypeAndName(typeAndName);
-    }
-
-    /// Configure the Fast Simulation Master Tool handle
-    void SetFastSimMasterTool(const std::string& typeAndName) {
-      m_fastSimTool.setTypeAndName(typeAndName);
-    }
-
-    /// Configure the Physics List Tool handle
-    void SetPhysListTool(const std::string& typeAndName) {
-      m_physListTool.setTypeAndName(typeAndName);
-    }
-
-	void SetRecordFlux(bool b, IFluxRecorder *f) { m_recordFlux = b; m_fluxRecorder=f;}
-    void SetLogLevel(int) { /* Not implemented */ }
-    /// @}
-
-  protected:
-
-    /// @name Overridden G4 init methods for customization
-    /// @{
-    void Initialize() override final;
-    void InitializeGeometry() override final;
-    void InitializePhysics() override final;
-    /// @}
-
-  private:
-
-    /// Pure singleton private constructor
-    G4AtlasRunManager();
-
-    void EndEvent();
-
-    /// Log a message using the Athena controlled logging system
-    MsgStream& msg( MSG::Level lvl ) const { return m_msg << lvl; }
-    /// Check whether the logging system is active at the provided verbosity level
-    bool msgLvl( MSG::Level lvl ) const { return m_msg.get().level() <= lvl; }
-
-    /// Private message stream member
-    mutable Athena::MsgStreamMember m_msg;
-
-    bool m_recordFlux;
-
-    ToolHandle<ISensitiveDetectorMasterTool> m_senDetTool;
-    ToolHandle<IFastSimulationMasterTool> m_fastSimTool;
-    ToolHandle<IPhysicsListTool> m_physListTool;
-
-    /// Handle to the user action service
-    ServiceHandle<G4UA::IUserActionSvc> m_userActionSvc;
-    ServiceHandle<IDetectorGeometrySvc> m_detGeoSvc;
-	
-	/// Interface to flux recording
-  
-    IFluxRecorder *m_fluxRecorder;
-  };
-
-}
-
-
-#endif // ISF_GEANT4TOOLS_G4ATLASRUNMANAGER_H
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/ISF_Geant4Tools/IG4RunManagerHelper.h b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/ISF_Geant4Tools/IG4RunManagerHelper.h
index 7d7d88d9a9b65aaf6a8bcbc710ccd58df978ed5e..5953ff584a7d01503a79990e42fc25ad6804e7bb 100644
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/ISF_Geant4Tools/IG4RunManagerHelper.h
+++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/ISF_Geant4Tools/IG4RunManagerHelper.h
@@ -11,7 +11,7 @@
 // Gaudi
 #include "GaudiKernel/IAlgTool.h"
 
-#include "ISF_Geant4Tools/G4AtlasRunManager.h"
+#include "G4AtlasAlg/G4AtlasRunManager.h"
 
 namespace ISF {
 
@@ -31,7 +31,7 @@ namespace ISF {
        DeclareInterfaceID(IG4RunManagerHelper, 1, 0);
        
        /** get the fully configured G4RunManager */
-       virtual iGeant4::G4AtlasRunManager* g4RunManager() const = 0;
+       virtual G4AtlasRunManager* g4RunManager() const = 0;
 
        /** get the light version of G4RunManager */
        virtual G4RunManager* fastG4RunManager() const = 0;
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4AtlasRunManager.cxx b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4AtlasRunManager.cxx
deleted file mode 100644
index e4e9953b9f6b989b38c024b99dc611b5a1536117..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4AtlasRunManager.cxx
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "ISF_Geant4Tools/G4AtlasRunManager.h"
-
-#include "AthenaBaseComps/AthMsgStreamMacros.h"
-
-#include "G4GeometryManager.hh"
-#include "G4LogicalVolumeStore.hh"
-#include "G4ParallelWorldScoringProcess.hh"
-#include "G4RegionStore.hh"
-#include "G4Run.hh"
-#include "G4ScoringManager.hh"
-#include "G4StateManager.hh"
-#include "G4TransportationManager.hh"
-#include "G4UImanager.hh"
-#include "G4UserRunAction.hh"
-#include "G4Version.hh"
-#include "G4HCofThisEvent.hh"
-
-#include <string>
-
-//________________________________________________________________________
-iGeant4::G4AtlasRunManager::G4AtlasRunManager()
-  : G4RunManager()
-  , m_msg("G4AtlasRunManager")
-  , m_recordFlux(false)
-  , m_senDetTool("SensitiveDetectorMasterTool")
-  , m_fastSimTool("FastSimulationMasterTool")
-  , m_physListTool("PhysicsListToolBase")
-  , m_userActionSvc("", "G4AtlasRunManager")
-  , m_detGeoSvc("DetectorGeometrySvc", "G4AtlasRunManager")
-{  }
-
-//________________________________________________________________________
-iGeant4::G4AtlasRunManager* iGeant4::G4AtlasRunManager::GetG4AtlasRunManager()
-{
-  static G4AtlasRunManager *thisManager = nullptr;
-  if (!thisManager) { thisManager = new G4AtlasRunManager; } // Leaked
-  return thisManager;
-}
-
-//________________________________________________________________________
-void iGeant4::G4AtlasRunManager::Initialize()
-{
-  // Call the base class Initialize method. This will call
-  // InitializeGeometry and InitializePhysics.
-  G4RunManager::Initialize();
-
-  const std::string methodName = "iGeant4::G4AtlasRunManager::Initialize";
-  // Now that the G4 geometry is available, setup the user actions.
-  if( !m_userActionSvc.name().empty() ) {
-    ATH_MSG_INFO("Creating user actions now");
-    if(m_userActionSvc.retrieve().isFailure()) {
-      throw GaudiException("Could not retrieve UserActionSvc",
-                           methodName, StatusCode::FAILURE);
-    }
-    if(m_userActionSvc->initializeActions().isFailure()) {
-      throw GaudiException("Failed to initialize actions",
-                           methodName, StatusCode::FAILURE);
-    }
-  }
-
-}
-
-//________________________________________________________________________
-void iGeant4::G4AtlasRunManager::InitializeGeometry()
-{
-  ATH_MSG_DEBUG( "InitializeGeometry()" );
-  if (m_detGeoSvc.retrieve().isFailure()) {
-    ATH_MSG_ERROR ( "Could not retrieve the DetectorGeometrySvc" );
-    G4ExceptionDescription description;
-    description << "InitializeGeometry: Failed to retrieve IDetectorGeometrySvc.";
-    G4Exception("G4AtlasRunManager", "CouldNotRetrieveDetGeoSvc", FatalException, description);
-    abort(); // to keep Coverity happy
-  }
-
-  // Set smartlessness
-  G4LogicalVolumeStore *logicalVolumeStore = G4LogicalVolumeStore::GetInstance();
-  const G4String muonSys("Muon::MuonSys");
-  const G4String embSTAC("LArMgr::LAr::EMB::STAC");
-  for (auto* ilv : *logicalVolumeStore ) {
-    if ( ilv->GetName() == muonSys ) {
-      ilv->SetSmartless( 0.1 );
-      ATH_MSG_INFO( "Set smartlessness for Muon::MuonSys to 0.1" );
-    }
-    else if ( ilv->GetName() == embSTAC ) {
-      ilv->SetSmartless( 0.5 );
-      ATH_MSG_INFO( "Set smartlessness for LArMgr::LAr::EMB::STAC to 0.5" );
-    }
-  }
-
-  // Create/assign detector construction
-  G4RunManager::SetUserInitialization(m_detGeoSvc->GetDetectorConstruction());
-  if (userDetector) {
-    G4RunManager::InitializeGeometry();
-  }
-  else {
-    ATH_MSG_WARNING( " User Detector not set!!! Geometry NOT initialized!!!" );
-  }
-
-  // Geometry has been initialized.  Now get services to add some stuff to the geometry.
-  if (m_senDetTool.retrieve().isFailure()) {
-    ATH_MSG_ERROR ( "Could not retrieve the SD master tool" );
-    G4ExceptionDescription description;
-    description << "InitializeGeometry: Failed to retrieve ISensitiveDetectorMasterTool.";
-    G4Exception("G4AtlasRunManager", "CouldNotRetrieveSDMaster", FatalException, description);
-    abort(); // to keep Coverity happy
-  }
-  if(m_senDetTool->initializeSDs().isFailure()) {
-    G4ExceptionDescription description;
-    description << "InitializeGeometry: Call to ISensitiveDetectorMasterTool::initializeSDs failed.";
-    G4Exception("G4AtlasRunManager", "FailedToInitializeSDs", FatalException, description);
-    abort(); // to keep Coverity happy
-  }
-  return;
-}
-
-//________________________________________________________________________
-void iGeant4::G4AtlasRunManager::EndEvent()
-{
-  // ADA, 11/28/2018: According to ZLM this function is never called. Code is 
-  // duplicated in ISFFluxRecorder and removed from here
-
-  ATH_MSG_DEBUG( "G4AtlasRunManager::EndEvent" );
-}
-
-//________________________________________________________________________
-void iGeant4::G4AtlasRunManager::InitializePhysics()
-{
-  ATH_MSG_INFO( "InitializePhysics()" );
-  kernel->InitializePhysics();
-  physicsInitialized = true;
-
-  // Grab the physics list tool and set the extra options
-  if (m_physListTool.retrieve().isFailure()) {
-    ATH_MSG_ERROR ( "Could not retrieve the physics list tool" );
-    G4ExceptionDescription description;
-    description << "InitializePhysics: Failed to retrieve IPhysicsListTool.";
-    G4Exception("G4AtlasRunManager", "CouldNotRetrievePLTool", FatalException, description);
-    abort(); // to keep Coverity happy
-  }
-  m_physListTool->SetPhysicsOptions();
-
-  // Fast simulations last
-  if (m_fastSimTool.retrieve().isFailure()) {
-    ATH_MSG_ERROR ( "Could not retrieve the FastSim master tool" );
-    G4ExceptionDescription description;
-    description << "InitializePhysics: Failed to retrieve IFastSimulationMasterTool.";
-    G4Exception("G4AtlasRunManager", "CouldNotRetrieveFastSimMaster", FatalException, description);
-    abort(); // to keep Coverity happy
-  }
-  if(m_fastSimTool->initializeFastSims().isFailure()) {
-    G4ExceptionDescription description;
-    description << "InitializePhysics: Call to IFastSimulationMasterTool::initializeFastSims failed.";
-    G4Exception("G4AtlasRunManager", "FailedToInitializeFastSims", FatalException, description);
-    abort(); // to keep Coverity happy
-  }
-
-  if (m_recordFlux) {
-    m_fluxRecorder->InitializeFluxRecording();
-  }
-
-  return;
-}
-
-
-//________________________________________________________________________
-bool iGeant4::G4AtlasRunManager::ProcessEvent(G4Event* event)
-{
-
-  G4StateManager* stateManager = G4StateManager::GetStateManager();
-  stateManager->SetNewState(G4State_GeomClosed);
-
-  currentEvent = event;
-
-  eventManager->ProcessOneEvent(currentEvent);
-  if (currentEvent->IsAborted()) {
-    ATH_MSG_WARNING( "G4AtlasRunManager::ProcessEvent: Event Aborted at Detector Simulation level" );
-    currentEvent = nullptr;
-    return true;
-  }
-
-  if (m_recordFlux) { m_fluxRecorder->RecordFlux(currentEvent); }
-
-  this->StackPreviousEvent(currentEvent);
-  bool abort = currentEvent->IsAborted();
-  currentEvent = nullptr;
-
-  return abort;
-}
-
-
-//________________________________________________________________________
-void iGeant4::G4AtlasRunManager::RunTermination()
-{
-  ATH_MSG_DEBUG( " G4AtlasRunManager::RunTermination() " );
-  if (m_recordFlux) {
-    m_fluxRecorder->WriteFluxInformation();
-  }
-
-  this->CleanUpPreviousEvents();
-  previousEvents->clear();
-
-  if (userRunAction) {
-    userRunAction->EndOfRunAction(currentRun);
-  }
-
-  delete currentRun;
-  currentRun = nullptr;
-  runIDCounter++;
-
-  ATH_MSG_VERBOSE( "Changing the state..." );
-  G4StateManager* stateManager = G4StateManager::GetStateManager();
-  stateManager->SetNewState(G4State_Idle);
-
-  ATH_MSG_VERBOSE( "Opening the geometry back up" );
-  G4GeometryManager::GetInstance()->OpenGeometry();
-
-  ATH_MSG_VERBOSE( "Terminating the run...  State is " << stateManager->GetStateString( stateManager->GetCurrentState() ) );
-  kernel->RunTermination();
-  ATH_MSG_VERBOSE( "All done..." );
-
-  userRunAction = nullptr;
-  userEventAction = nullptr;
-  userSteppingAction = nullptr;
-  userStackingAction = nullptr;
-  userTrackingAction = nullptr;
-  userDetector = nullptr;
-  userPrimaryGeneratorAction = nullptr;
-
-  return;
-}
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.cxx b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.cxx
index a0789d381f27f94be952bcd077d1e402ac46c800..8c0f87b17923335952b8d312170817fa8badcdce 100644
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.cxx
+++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.cxx
@@ -42,7 +42,7 @@ StatusCode iGeant4::G4RunManagerHelper::finalize()
 }
 
 
-iGeant4::G4AtlasRunManager* iGeant4::G4RunManagerHelper::g4RunManager() const
+G4AtlasRunManager* iGeant4::G4RunManagerHelper::g4RunManager() const
 
 {
   if (m_g4RunManager) return m_g4RunManager;
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.h b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.h
index ba3c9589144ad14936aa6c26e50066189f68a236..c1c6ae8910bbc41e47f3654be5483fbd4fd851c1 100644
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.h
+++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.h
@@ -8,7 +8,7 @@
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "ISF_Geant4Tools/IG4RunManagerHelper.h"
 
-#include "ISF_Geant4Tools/G4AtlasRunManager.h"
+#include "G4AtlasAlg/G4AtlasRunManager.h"
 
 namespace iGeant4 {
 
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.cxx b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.cxx
index dc705ad86e6e14141e78ec886b7704269a14b470..206c8123aff13152bf76e45c0dd50ec1a5765f9b 100644
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.cxx
+++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.cxx
@@ -6,7 +6,7 @@
 #include "TransportTool.h"
 
 //package includes
-#include "ISF_Geant4Tools/G4AtlasRunManager.h"
+#include "G4AtlasAlg/G4AtlasRunManager.h"
 #include "ISFFluxRecorder.h"
 
 // ISF classes
@@ -127,7 +127,7 @@ void iGeant4::G4TransportTool::initializeOnce()
   }
   m_physListTool->SetPhysicsList();
 
-  m_pRunMgr->SetRecordFlux( m_recordFlux, new ISFFluxRecorder );
+  m_pRunMgr->SetRecordFlux( m_recordFlux, std::make_unique<ISFFluxRecorder>() );
   m_pRunMgr->SetLogLevel( int(msg().level()) ); // Synch log levels
   m_pRunMgr->SetUserActionSvc( m_userActionSvc.typeAndName() );
   m_pRunMgr->SetDetGeoSvc( m_detGeoSvc.typeAndName() );
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.h b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.h
index 28f161efc3dd716172441309659593f409f3bddb..a56f84a3cd71aef38907f7b69e1fc86718f7a7fc 100644
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.h
+++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.h
@@ -33,6 +33,8 @@
 
 class G4Event;
 
+class G4AtlasRunManager;
+
 namespace ISF {
   class ISFParticle;
 }
@@ -52,8 +54,6 @@ namespace iGeant4
       @author Robert Harrington
   */
 
-  class G4AtlasRunManager;
-
   class G4TransportTool : public ISF::BaseSimulatorTool {
 
   public: