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: