diff --git a/SimG4Core/Application/interface/RunManager.h b/SimG4Core/Application/interface/RunManager.h index 6953f15b7096e..48a3ddeb238e9 100644 --- a/SimG4Core/Application/interface/RunManager.h +++ b/SimG4Core/Application/interface/RunManager.h @@ -93,7 +93,7 @@ class RunManager { edm::EDGetTokenT m_LHCtr; bool m_nonBeam; - std::unique_ptr m_UIsession; + CustomUIsession* m_UIsession; std::unique_ptr m_physicsList; PrimaryTransformer* m_primaryTransformer; diff --git a/SimG4Core/Application/interface/RunManagerMT.h b/SimG4Core/Application/interface/RunManagerMT.h index 2371301df72b8..66b71bbdd2c17 100644 --- a/SimG4Core/Application/interface/RunManagerMT.h +++ b/SimG4Core/Application/interface/RunManagerMT.h @@ -88,7 +88,7 @@ class RunManagerMT { G4MTRunManagerKernel* m_kernel; - std::unique_ptr m_UIsession; + CustomUIsession* m_UIsession; std::unique_ptr m_physicsList; bool m_managerInitialized; bool m_runTerminated; diff --git a/SimG4Core/Application/src/RunManager.cc b/SimG4Core/Application/src/RunManager.cc index d3054c036db9b..bfe2d979e6ff6 100644 --- a/SimG4Core/Application/src/RunManager.cc +++ b/SimG4Core/Application/src/RunManager.cc @@ -143,7 +143,7 @@ RunManager::RunManager(edm::ParameterSet const& p, edm::ConsumesCollector&& iC) m_g4overlap(p.getUntrackedParameter("G4CheckOverlap")), m_G4Commands(p.getParameter >("G4Commands")), m_p(p) { - m_UIsession.reset(new CustomUIsession()); + m_UIsession = new CustomUIsession(); m_kernel = new G4RunManagerKernel(); G4StateManager::GetStateManager()->SetExceptionHandler(new ExceptionHandler()); @@ -369,7 +369,7 @@ void RunManager::initG4(const edm::EventSetup& es) { // Geometry checks if (m_check || !regionFile.empty()) { - CMSG4CheckOverlap check(m_g4overlap, regionFile, m_UIsession.get(), pworld); + CMSG4CheckOverlap check(m_g4overlap, regionFile, m_UIsession, pworld); } // If the Geant4 particle table is needed, decomment the lines below diff --git a/SimG4Core/Application/src/RunManagerMT.cc b/SimG4Core/Application/src/RunManagerMT.cc index 5283dbf8ad42a..86e8ca9320da2 100644 --- a/SimG4Core/Application/src/RunManagerMT.cc +++ b/SimG4Core/Application/src/RunManagerMT.cc @@ -71,7 +71,7 @@ RunManagerMT::RunManagerMT(edm::ParameterSet const& p) m_G4Commands(p.getParameter >("G4Commands")), m_p(p) { m_currentRun = nullptr; - m_UIsession.reset(new CustomUIsession()); + m_UIsession = new CustomUIsession(); m_physicsList.reset(nullptr); m_world.reset(nullptr); @@ -227,7 +227,7 @@ void RunManagerMT::initG4(const DDCompactView* pDD, // Geometry checks if (m_check || !regionFile.empty()) { - CMSG4CheckOverlap check(m_g4overlap, regionFile, m_UIsession.get(), world); + CMSG4CheckOverlap check(m_g4overlap, regionFile, m_UIsession, world); } // If the Geant4 particle table is needed, decomment the lines below diff --git a/SimG4Core/Application/src/RunManagerMTWorker.cc b/SimG4Core/Application/src/RunManagerMTWorker.cc index 5689f2ce18f22..7e0c78226c647 100644 --- a/SimG4Core/Application/src/RunManagerMTWorker.cc +++ b/SimG4Core/Application/src/RunManagerMTWorker.cc @@ -113,7 +113,6 @@ namespace { struct RunManagerMTWorker::TLSData { std::unique_ptr kernel; //must be deleted last - std::unique_ptr UIsession; std::unique_ptr userRunAction; std::unique_ptr runInterface; std::unique_ptr registry; @@ -252,13 +251,11 @@ void RunManagerMTWorker::initializeThread(RunManagerMT& runManagerMaster, const G4UImanager::GetUIpointer()->SetUpForAThread(thisID); const std::string& uitype = m_pCustomUIsession.getUntrackedParameter("Type", "MessageLogger"); if (uitype == "MessageLogger") { - m_tls->UIsession.reset(new CustomUIsession()); + new CustomUIsession(); } else if (uitype == "MessageLoggerThreadPrefix") { - m_tls->UIsession.reset(new CustomUIsessionThreadPrefix( - m_pCustomUIsession.getUntrackedParameter("ThreadPrefix", ""), thisID)); + new CustomUIsessionThreadPrefix(m_pCustomUIsession.getUntrackedParameter("ThreadPrefix", ""), thisID); } else if (uitype == "FilePerThread") { - m_tls->UIsession.reset( - new CustomUIsessionToFile(m_pCustomUIsession.getUntrackedParameter("ThreadFile", ""), thisID)); + new CustomUIsessionToFile(m_pCustomUIsession.getUntrackedParameter("ThreadFile", ""), thisID); } else { throw edm::Exception(edm::errors::Configuration) << "Invalid value of CustomUIsession.Type '" << uitype