CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes | Friends
RunManagerMT Class Reference

#include <RunManagerMT.h>

Public Member Functions

const SensitiveDetectorCatalogcatalog () const
 
void Connect (RunAction *)
 
const std::vector< std::string > & G4Commands () const
 
void initG4 (const DDCompactView *, const cms::DDCompactView *, const HepPDT::ParticleDataTable *)
 
void initializeUserActions ()
 
bool isPhase2 () const
 
PhysicsListphysicsListForWorker () const
 
 RunManagerMT (edm::ParameterSet const &)
 
void stopG4 ()
 
const DDDWorldworld () const
 
 ~RunManagerMT ()
 

Private Member Functions

void checkVoxels ()
 
void runForPhase2 ()
 
void setupVoxels ()
 
void terminateRun ()
 

Private Attributes

SensitiveDetectorCatalog m_catalog
 
bool m_check
 
edm::ParameterSet m_CheckOverlap
 
G4Run * m_currentRun {nullptr}
 
std::vector< std::string > m_G4Commands
 
bool m_geoFromDD4hep
 
edm::ParameterSet m_Init
 
bool m_isPhase2 {false}
 
G4MTRunManagerKernel * m_kernel
 
bool m_managerInitialized {false}
 
std::unique_ptr< PhysicsListm_physicsList
 
const std::string m_PhysicsTablesDir
 
edm::ParameterSet m_pPhysics
 
edm::ParameterSet m_pRunAction
 
std::string m_regionFile {""}
 
SimActivityRegistry m_registry
 
bool m_RestorePhysicsTables
 
std::unique_ptr< SimRunInterfacem_runInterface
 
bool m_runTerminated {false}
 
bool m_score
 
G4StateManager * m_stateManager
 
int m_stepverb
 
bool m_StorePhysicsTables
 
CustomUIsessionm_UIsession
 
RunActionm_userRunAction {nullptr}
 
std::unique_ptr< DDDWorldm_world
 

Friends

class RunManagerMTWorker
 

Detailed Description

Definition at line 50 of file RunManagerMT.h.

Constructor & Destructor Documentation

◆ RunManagerMT()

RunManagerMT::RunManagerMT ( edm::ParameterSet const &  p)
explicit

Definition at line 63 of file RunManagerMT.cc.

References g4SimHits_cfi::CustomUIsession, m_check, m_CheckOverlap, m_kernel, m_physicsList, m_runInterface, m_stateManager, m_UIsession, m_world, and AlCaHLTBitMon_ParallelJobs::p.

64  : m_PhysicsTablesDir(p.getUntrackedParameter<std::string>("PhysicsTablesDirectory", "")),
65  m_StorePhysicsTables(p.getUntrackedParameter<bool>("StorePhysicsTables", false)),
66  m_RestorePhysicsTables(p.getUntrackedParameter<bool>("RestorePhysicsTables", false)),
67  m_check(p.getUntrackedParameter<bool>("CheckGeometry")),
68  m_geoFromDD4hep(p.getParameter<bool>("g4GeometryDD4hepSource")),
69  m_score(p.getParameter<bool>("UseCommandBaseScorer")),
70  m_stepverb(p.getUntrackedParameter<int>("SteppingVerbosity", 0)),
71  m_regionFile(p.getUntrackedParameter<std::string>("FileNameRegions", "")),
72  m_pPhysics(p.getParameter<edm::ParameterSet>("Physics")),
73  m_pRunAction(p.getParameter<edm::ParameterSet>("RunAction")),
74  m_Init(p.getParameter<edm::ParameterSet>("Init")),
75  m_G4Commands(p.getParameter<std::vector<std::string> >("G4Commands")) {
76  m_physicsList.reset(nullptr);
77  m_world.reset(nullptr);
78  m_runInterface.reset(nullptr);
79 
80  m_kernel = new G4MTRunManagerKernel();
81  m_stateManager = G4StateManager::GetStateManager();
82  double th = p.getParameter<double>("ThresholdForGeometryExceptions") * CLHEP::GeV;
83  bool tr = p.getParameter<bool>("TraceExceptions");
84  m_stateManager->SetExceptionHandler(new ExceptionHandler(th, tr));
85  if (m_check) {
86  m_CheckOverlap = p.getUntrackedParameter<edm::ParameterSet>("G4CheckOverlap");
87  }
89  G4UImanager::GetUIpointer()->SetCoutDestination(m_UIsession);
90  G4UImanager::GetUIpointer()->SetMasterUIManager(true);
91  G4PhysListUtil::InitialiseParameters();
92  G4LossTableManager::Instance();
93 }
const std::string m_PhysicsTablesDir
Definition: RunManagerMT.h:102
G4MTRunManagerKernel * m_kernel
Definition: RunManagerMT.h:90
std::string m_regionFile
Definition: RunManagerMT.h:110
edm::ParameterSet m_pRunAction
Definition: RunManagerMT.h:112
G4StateManager * m_stateManager
Definition: RunManagerMT.h:98
std::vector< std::string > m_G4Commands
Definition: RunManagerMT.h:115
edm::ParameterSet m_Init
Definition: RunManagerMT.h:114
bool m_StorePhysicsTables
Definition: RunManagerMT.h:103
std::unique_ptr< PhysicsList > m_physicsList
Definition: RunManagerMT.h:93
std::unique_ptr< DDDWorld > m_world
Definition: RunManagerMT.h:117
edm::ParameterSet m_pPhysics
Definition: RunManagerMT.h:111
bool m_RestorePhysicsTables
Definition: RunManagerMT.h:104
bool m_geoFromDD4hep
Definition: RunManagerMT.h:106
edm::ParameterSet m_CheckOverlap
Definition: RunManagerMT.h:113
std::unique_ptr< SimRunInterface > m_runInterface
Definition: RunManagerMT.h:100
CustomUIsession * m_UIsession
Definition: RunManagerMT.h:92

◆ ~RunManagerMT()

RunManagerMT::~RunManagerMT ( )

Definition at line 95 of file RunManagerMT.cc.

References m_UIsession.

95 { delete m_UIsession; }
CustomUIsession * m_UIsession
Definition: RunManagerMT.h:92

Member Function Documentation

◆ catalog()

const SensitiveDetectorCatalog& RunManagerMT::catalog ( ) const
inline

Definition at line 71 of file RunManagerMT.h.

References m_catalog.

Referenced by RunManagerMTWorker::initializeG4().

71 { return m_catalog; }
SensitiveDetectorCatalog m_catalog
Definition: RunManagerMT.h:119

◆ checkVoxels()

void RunManagerMT::checkVoxels ( )
private

Definition at line 296 of file RunManagerMT.cc.

References mps_fire::i, rname, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by initG4().

296  {
297  const G4LogicalVolumeStore* lvs = G4LogicalVolumeStore::GetInstance();
298  int numLV = lvs->size();
299  edm::LogVerbatim("SimG4CoreApplication") << "RunManagerMT: nLV=" << numLV;
300  int nvox = 0;
301  int nslice = 0;
302  for (int i = 0; i < numLV; ++i) {
303  auto lv = (*lvs)[i];
304  auto nd = lv->GetNoDaughters();
305  auto vox = lv->GetVoxelHeader();
306  auto sma = lv->GetSmartless();
307  auto reg = lv->GetRegion();
308  size_t nsl = (nullptr == vox) ? 0 : vox->GetNoSlices();
309  if (0 < nsl) {
310  nslice += nsl;
311  std::string rname = (nullptr != reg) ? reg->GetName() : "";
312  edm::LogVerbatim("Voxels") << " " << i << ". Nd=" << nd << " Nsl=" << nsl << " Smartless=" << sma << " "
313  << lv->GetName() << " Region: " << rname;
314  ++nvox;
315  }
316  }
317  edm::LogVerbatim("SimG4CoreApplication")
318  << "RunManagerMT: nLV=" << numLV << " NlvVox=" << nvox << " Nslices=" << nslice;
319 }
Log< level::Info, true > LogVerbatim
const G4String rname[NREG]

◆ Connect()

void RunManagerMT::Connect ( RunAction runAction)

Definition at line 267 of file RunManagerMT.cc.

References SimActivityRegistry::beginOfRunSignal_, sim_act::Signaler< T >::connect(), SimActivityRegistry::endOfRunSignal_, RunAction::m_beginOfRunSignal, RunAction::m_endOfRunSignal, and m_registry.

Referenced by SimRunInterface::Connect(), and initializeUserActions().

267  {
270 }
void connect(Observer< const T *> *iObs)
does not take ownership of memory
Definition: Signaler.h:55
SimActivityRegistry::EndOfRunSignal m_endOfRunSignal
Definition: RunAction.h:24
BeginOfRunSignal beginOfRunSignal_
EndOfRunSignal endOfRunSignal_
SimActivityRegistry::BeginOfRunSignal m_beginOfRunSignal
Definition: RunAction.h:23
SimActivityRegistry m_registry
Definition: RunManagerMT.h:118

◆ G4Commands()

const std::vector<std::string>& RunManagerMT::G4Commands ( ) const
inline

Definition at line 73 of file RunManagerMT.h.

References m_G4Commands.

Referenced by RunManagerMTWorker::initializeG4().

73 { return m_G4Commands; }
std::vector< std::string > m_G4Commands
Definition: RunManagerMT.h:115

◆ initG4()

void RunManagerMT::initG4 ( const DDCompactView pDD,
const cms::DDCompactView pDD4hep,
const HepPDT::ParticleDataTable fPDGTable 
)

Definition at line 97 of file RunManagerMT.cc.

References RunAction::BeginOfRunAction(), RPCNoise_example::check, checkVoxels(), mps_setup::cmd, mps_check::command, beamerCreator::create(), SimActivityRegistry::dddWorldSignal_, DeadROC_duringRun::dir, Exception, ecalTB2006H4_GenSimDigiReco_cfg::G4cout, get, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), recoMuon::in, initializeUserActions(), m_catalog, m_check, m_CheckOverlap, m_currentRun, m_G4Commands, m_geoFromDD4hep, m_kernel, m_managerInitialized, m_physicsList, m_PhysicsTablesDir, m_pPhysics, m_regionFile, m_registry, m_RestorePhysicsTables, m_score, m_stateManager, m_stepverb, m_StorePhysicsTables, m_UIsession, m_userRunAction, m_world, WZElectronSkims53X_cff::max, groupFilesInBlocks::nn, FSQDQM_cfi::pvs, runForPhase2(), setupVoxels(), AlCaHLTBitMon_QueryRunRegistry::string, and world().

99  {
100  if (m_managerInitialized) {
101  edm::LogWarning("SimG4CoreApplication") << "RunManagerMT::initG4 was already done - exit";
102  return;
103  }
104  bool cuts = m_pPhysics.getParameter<bool>("CutsPerRegion");
105  bool protonCut = m_pPhysics.getParameter<bool>("CutsOnProton");
106  int verb = m_pPhysics.getUntrackedParameter<int>("Verbosity", 0);
107  edm::LogVerbatim("SimG4CoreApplication")
108  << "RunManagerMT: start initialising of geometry DD4hep: " << m_geoFromDD4hep << "\n"
109  << " cutsPerRegion: " << cuts << " cutForProton: " << protonCut << "\n"
110  << " G4 verbosity: " << verb;
111 
112  G4Timer timer;
113  timer.Start();
114 
115  m_world = std::make_unique<DDDWorld>(pDD, pDD4hep, m_catalog, verb, cuts, protonCut);
116  G4VPhysicalVolume* world = m_world.get()->GetWorldVolume();
117 
118  m_kernel->SetVerboseLevel(verb);
119  edm::LogVerbatim("SimG4CoreApplication")
120  << "RunManagerMT: Define cuts: " << cuts << " Geant4 run manager verbosity: " << verb;
121 
122  const G4RegionStore* regStore = G4RegionStore::GetInstance();
123  const G4PhysicalVolumeStore* pvs = G4PhysicalVolumeStore::GetInstance();
124  const G4LogicalVolumeStore* lvs = G4LogicalVolumeStore::GetInstance();
125  unsigned int numPV = pvs->size();
126  unsigned int numLV = lvs->size();
127  unsigned int nn = regStore->size();
128  edm::LogVerbatim("SimG4CoreApplication")
129  << "RunManagerMT: " << numPV << " physical volumes; " << numLV << " logical volumes; " << nn << " regions.";
130 
131  if (m_check) {
132  m_kernel->SetVerboseLevel(2);
133  }
134  m_kernel->DefineWorldVolume(world, true);
136  m_stateManager->SetNewState(G4State_PreInit);
137 
138  // Create physics list
139  edm::LogVerbatim("SimG4CoreApplication") << "RunManagerMT: create PhysicsList";
140 
141  std::unique_ptr<PhysicsListMakerBase> physicsMaker(
143  if (physicsMaker.get() == nullptr) {
144  throw cms::Exception("Configuration") << "Unable to find the Physics list requested";
145  }
146  m_physicsList = physicsMaker->make(m_pPhysics, m_registry);
147 
148  PhysicsList* phys = m_physicsList.get();
149  if (phys == nullptr) {
150  throw cms::Exception("Configuration") << "Physics list construction failed!";
151  }
152  if (m_stepverb > 0) {
153  verb = std::max(verb, 1);
154  }
155  G4HadronicParameters::Instance()->SetVerboseLevel(verb);
156  G4EmParameters::Instance()->SetVerbose(verb);
157  G4EmParameters::Instance()->SetWorkerVerbose(std::max(verb - 1, 0));
158  G4PhysicsListHelper::GetPhysicsListHelper();
159 
160  // exotic particle physics
161  double monopoleMass = m_pPhysics.getUntrackedParameter<double>("MonopoleMass", 0);
162  if (monopoleMass > 0.0) {
163  phys->RegisterPhysics(new CMSMonopolePhysics(fPDGTable, m_pPhysics));
164  }
165  bool exotica = m_pPhysics.getUntrackedParameter<bool>("ExoticaTransport", false);
166  if (exotica) {
167  CMSExoticaPhysics exo(phys, m_pPhysics);
168  }
169 
170  // adding GFlash, Russian Roulette for eletrons and gamma,
171  // step limiters on top of any Physics Lists
172  phys->RegisterPhysics(new ParametrisedEMPhysics("EMoptions", m_pPhysics));
173 
175  m_physicsList->SetPhysicsTableRetrieved(m_PhysicsTablesDir);
176  }
177  edm::LogVerbatim("SimG4CoreApplication") << "RunManagerMT: start initialisation of PhysicsList for master";
178 
179  m_physicsList->SetDefaultCutValue(m_pPhysics.getParameter<double>("DefaultCutValue") * CLHEP::cm);
180  m_physicsList->SetCutsWithDefault();
181  m_kernel->SetPhysics(phys);
182 
183  edm::LogVerbatim("SimG4CoreApplication") << "RunManagerMT: PhysicsList and cuts are defined";
184 
185  // Enable couple transportation
186  if (m_score) {
187  G4ScoringManager* scManager = G4ScoringManager::GetScoringManager();
188  scManager->SetVerboseLevel(1);
189  }
190  // Geant4 UI commands before initialisation of physics
191  if (!m_G4Commands.empty()) {
192  edm::LogVerbatim("SimG4CoreApplication") << "RunManagerMT: Requested UI commands: ";
193  for (const std::string& command : m_G4Commands) {
194  edm::LogVerbatim("SimG4CoreApplication") << " " << command;
195  G4UImanager::GetUIpointer()->ApplyCommand(command);
196  }
197  }
198 
199  setupVoxels();
200 
201  m_stateManager->SetNewState(G4State_Init);
202  edm::LogVerbatim("SimG4CoreApplication") << "RunManagerMT: G4State is Init";
203  m_kernel->InitializePhysics();
204  if (verb > 0) {
205  G4EmParameters::Instance()->Dump();
206  }
207  m_kernel->SetUpDecayChannels();
208 
209  if (m_kernel->RunInitialization()) {
210  m_managerInitialized = true;
211  } else {
212  throw cms::Exception("LogicError") << "G4RunManagerKernel initialization failed!";
213  }
214 
215  if (m_check) {
216  checkVoxels();
217  }
218 
219  if (m_StorePhysicsTables) {
220  std::ostringstream dir;
221  dir << m_PhysicsTablesDir << '\0';
222  std::string cmd = std::string("/control/shell mkdir -p ") + m_PhysicsTablesDir;
223  if (!std::ifstream(dir.str().c_str(), std::ios::in))
224  G4UImanager::GetUIpointer()->ApplyCommand(cmd);
225  m_physicsList->StorePhysicsTable(m_PhysicsTablesDir);
226  }
227  // Appload nuclear level data up to Z=84
228  G4NuclearLevelData::GetInstance()->UploadNuclearLevelData(84);
229 
230  if (verb > 1) {
231  m_physicsList->DumpCutValuesTable();
232  }
233  edm::LogVerbatim("SimG4CoreApplication")
234  << "RunManagerMT: Physics is initilized, now initialise user actions, verb=" << verb;
235 
237 
238  // G4Region dump file name
239  runForPhase2();
240 
241  // Geometry checks
242  if (m_check || !m_regionFile.empty()) {
244  }
245 
246  m_stateManager->SetNewState(G4State_PreInit);
247  G4HadronicParameters::Instance()->SetVerboseLevel(std::max(verb - 1, 0));
248 
249  // If the Geant4 particle table is needed, decomment the lines below
250  //
251  //G4ParticleTable::GetParticleTable()->DumpTable("ALL");
252  //
253  m_stateManager->SetNewState(G4State_GeomClosed);
254  m_currentRun = new G4Run();
256  timer.Stop();
257  G4cout.precision(4);
258  G4cout << "RunManagerMT: initG4 done " << timer << G4endl;
259 }
const std::string m_PhysicsTablesDir
Definition: RunManagerMT.h:102
Log< level::Info, true > LogVerbatim
bool m_managerInitialized
Definition: RunManagerMT.h:94
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
void BeginOfRunAction(const G4Run *aRun) override
Definition: RunAction.cc:17
G4MTRunManagerKernel * m_kernel
Definition: RunManagerMT.h:90
std::string m_regionFile
Definition: RunManagerMT.h:110
SensitiveDetectorCatalog m_catalog
Definition: RunManagerMT.h:119
def create(alignables, pedeDump, additionalData, outputFile, config)
void runForPhase2()
void setupVoxels()
G4StateManager * m_stateManager
Definition: RunManagerMT.h:98
std::vector< std::string > m_G4Commands
Definition: RunManagerMT.h:115
G4Run * m_currentRun
Definition: RunManagerMT.h:97
void initializeUserActions()
void checkVoxels()
T getUntrackedParameter(std::string const &, T const &) const
bool m_StorePhysicsTables
Definition: RunManagerMT.h:103
const DDDWorld & world() const
Definition: RunManagerMT.h:69
std::unique_ptr< PhysicsList > m_physicsList
Definition: RunManagerMT.h:93
std::unique_ptr< DDDWorld > m_world
Definition: RunManagerMT.h:117
edm::ParameterSet m_pPhysics
Definition: RunManagerMT.h:111
DDDWorldSignal dddWorldSignal_
bool m_RestorePhysicsTables
Definition: RunManagerMT.h:104
bool m_geoFromDD4hep
Definition: RunManagerMT.h:106
list command
Definition: mps_check.py:25
list cmd
Definition: mps_setup.py:244
edm::ParameterSet m_CheckOverlap
Definition: RunManagerMT.h:113
#define get
Log< level::Warning, false > LogWarning
RunAction * m_userRunAction
Definition: RunManagerMT.h:96
CustomUIsession * m_UIsession
Definition: RunManagerMT.h:92
SimActivityRegistry m_registry
Definition: RunManagerMT.h:118

◆ initializeUserActions()

void RunManagerMT::initializeUserActions ( )

Definition at line 261 of file RunManagerMT.cc.

References Connect(), m_pRunAction, m_runInterface, m_userRunAction, and g4SimHits_cfi::RunAction.

Referenced by initG4().

261  {
262  m_runInterface = std::make_unique<SimRunInterface>(this, true);
265 }
void Connect(RunAction *)
edm::ParameterSet m_pRunAction
Definition: RunManagerMT.h:112
RunAction
list of unwanted particles (gluons and quarks)
std::unique_ptr< SimRunInterface > m_runInterface
Definition: RunManagerMT.h:100
RunAction * m_userRunAction
Definition: RunManagerMT.h:96

◆ isPhase2()

bool RunManagerMT::isPhase2 ( ) const
inline

Definition at line 79 of file RunManagerMT.h.

References m_isPhase2.

Referenced by RunManagerMTWorker::initializeG4().

79 { return m_isPhase2; }

◆ physicsListForWorker()

PhysicsList* RunManagerMT::physicsListForWorker ( ) const
inline

Definition at line 77 of file RunManagerMT.h.

References m_physicsList.

Referenced by RunManagerMTWorker::initializeG4().

77 { return m_physicsList.get(); }
std::unique_ptr< PhysicsList > m_physicsList
Definition: RunManagerMT.h:93

◆ runForPhase2()

void RunManagerMT::runForPhase2 ( )
private

Definition at line 348 of file RunManagerMT.cc.

References m_isPhase2, mergeVDriftHistosByStation::name, and alignCSCRings::r.

Referenced by initG4().

348  {
349  const G4RegionStore* regStore = G4RegionStore::GetInstance();
350  for (auto const& r : *regStore) {
351  const G4String& name = r->GetName();
352  if (name == "HGCalRegion" || name == "FastTimerRegionETL" || name == "FastTimerRegionBTL") {
353  m_isPhase2 = true;
354  break;
355  }
356  }
357 }

◆ setupVoxels()

void RunManagerMT::setupVoxels ( )
private

Definition at line 321 of file RunManagerMT.cc.

References fastSimProducer_cff::density, edm::ParameterSet::getParameter(), mps_fire::i, createfilelist::int, m_Init, create_idmaps::n, EgHLTOffHistBins_cfi::nr, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by initG4().

321  {
322  double density = m_Init.getParameter<double>("DefaultVoxelDensity");
323  std::vector<std::string> rnames = m_Init.getParameter<std::vector<std::string> >("VoxelRegions");
324  std::vector<double> rdensities = m_Init.getParameter<std::vector<double> >("VoxelDensityPerRegion");
325  int nr = 0;
326  std::size_t n = rnames.size();
327  if (n == rdensities.size()) {
328  nr = (int)n;
329  }
330  const G4LogicalVolumeStore* lvs = G4LogicalVolumeStore::GetInstance();
331  for (auto const& lv : *lvs) {
332  double den = density;
333  if (0 < nr) {
334  std::string nam = lv->GetRegion()->GetName();
335  for (int i = 0; i < nr; ++i) {
336  if (nam == rnames[i]) {
337  den = rdensities[i];
338  break;
339  }
340  }
341  }
342  lv->SetSmartless(den);
343  }
344  edm::LogVerbatim("SimG4CoreApplication")
345  << "RunManagerMT: default voxel density=" << density << "; number of regions with special density " << nr;
346 }
Log< level::Info, true > LogVerbatim
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
edm::ParameterSet m_Init
Definition: RunManagerMT.h:114

◆ stopG4()

void RunManagerMT::stopG4 ( )

Definition at line 272 of file RunManagerMT.cc.

References m_runTerminated, m_stateManager, and terminateRun().

272  {
273  edm::LogVerbatim("SimG4CoreApplication") << "RunManagerMT::stopG4";
274  G4GeometryManager::GetInstance()->OpenGeometry();
275  m_stateManager->SetNewState(G4State_Quit);
276  if (!m_runTerminated) {
277  terminateRun();
278  }
279  edm::LogVerbatim("SimG4CoreApplication") << "RunManagerMT::stopG4 done";
280 }
Log< level::Info, true > LogVerbatim
void terminateRun()
bool m_runTerminated
Definition: RunManagerMT.h:95
G4StateManager * m_stateManager
Definition: RunManagerMT.h:98

◆ terminateRun()

void RunManagerMT::terminateRun ( )
private

Definition at line 282 of file RunManagerMT.cc.

References RunAction::EndOfRunAction(), m_currentRun, m_kernel, m_runTerminated, and m_userRunAction.

Referenced by stopG4().

282  {
283  edm::LogVerbatim("SimG4CoreApplication") << "RunManagerMT::terminateRun";
284  if (nullptr != m_userRunAction) {
286  delete m_userRunAction;
287  m_userRunAction = nullptr;
288  }
289  if (!m_runTerminated) {
290  m_kernel->RunTermination();
291  }
292  m_runTerminated = true;
293  edm::LogVerbatim("SimG4CoreApplication") << "RunManagerMT::terminateRun done";
294 }
Log< level::Info, true > LogVerbatim
G4MTRunManagerKernel * m_kernel
Definition: RunManagerMT.h:90
bool m_runTerminated
Definition: RunManagerMT.h:95
G4Run * m_currentRun
Definition: RunManagerMT.h:97
RunAction * m_userRunAction
Definition: RunManagerMT.h:96
void EndOfRunAction(const G4Run *aRun) override
Definition: RunAction.cc:26

◆ world()

const DDDWorld& RunManagerMT::world ( ) const
inline

Definition at line 69 of file RunManagerMT.h.

References m_world.

Referenced by initG4(), and RunManagerMTWorker::initializeG4().

69 { return *m_world; }
std::unique_ptr< DDDWorld > m_world
Definition: RunManagerMT.h:117

Friends And Related Function Documentation

◆ RunManagerMTWorker

friend class RunManagerMTWorker
friend

Definition at line 51 of file RunManagerMT.h.

Member Data Documentation

◆ m_catalog

SensitiveDetectorCatalog RunManagerMT::m_catalog
private

Definition at line 119 of file RunManagerMT.h.

Referenced by catalog(), and initG4().

◆ m_check

bool RunManagerMT::m_check
private

Definition at line 105 of file RunManagerMT.h.

Referenced by initG4(), and RunManagerMT().

◆ m_CheckOverlap

edm::ParameterSet RunManagerMT::m_CheckOverlap
private

Definition at line 113 of file RunManagerMT.h.

Referenced by initG4(), and RunManagerMT().

◆ m_currentRun

G4Run* RunManagerMT::m_currentRun {nullptr}
private

Definition at line 97 of file RunManagerMT.h.

Referenced by initG4(), and terminateRun().

◆ m_G4Commands

std::vector<std::string> RunManagerMT::m_G4Commands
private

Definition at line 115 of file RunManagerMT.h.

Referenced by G4Commands(), and initG4().

◆ m_geoFromDD4hep

bool RunManagerMT::m_geoFromDD4hep
private

Definition at line 106 of file RunManagerMT.h.

Referenced by initG4().

◆ m_Init

edm::ParameterSet RunManagerMT::m_Init
private

Definition at line 114 of file RunManagerMT.h.

Referenced by setupVoxels().

◆ m_isPhase2

bool RunManagerMT::m_isPhase2 {false}
private

Definition at line 108 of file RunManagerMT.h.

Referenced by isPhase2(), and runForPhase2().

◆ m_kernel

G4MTRunManagerKernel* RunManagerMT::m_kernel
private

Definition at line 90 of file RunManagerMT.h.

Referenced by initG4(), RunManagerMT(), and terminateRun().

◆ m_managerInitialized

bool RunManagerMT::m_managerInitialized {false}
private

Definition at line 94 of file RunManagerMT.h.

Referenced by initG4().

◆ m_physicsList

std::unique_ptr<PhysicsList> RunManagerMT::m_physicsList
private

Definition at line 93 of file RunManagerMT.h.

Referenced by initG4(), physicsListForWorker(), and RunManagerMT().

◆ m_PhysicsTablesDir

const std::string RunManagerMT::m_PhysicsTablesDir
private

Definition at line 102 of file RunManagerMT.h.

Referenced by initG4().

◆ m_pPhysics

edm::ParameterSet RunManagerMT::m_pPhysics
private

Definition at line 111 of file RunManagerMT.h.

Referenced by initG4().

◆ m_pRunAction

edm::ParameterSet RunManagerMT::m_pRunAction
private

Definition at line 112 of file RunManagerMT.h.

Referenced by initializeUserActions().

◆ m_regionFile

std::string RunManagerMT::m_regionFile {""}
private

Definition at line 110 of file RunManagerMT.h.

Referenced by initG4().

◆ m_registry

SimActivityRegistry RunManagerMT::m_registry
private

Definition at line 118 of file RunManagerMT.h.

Referenced by Connect(), and initG4().

◆ m_RestorePhysicsTables

bool RunManagerMT::m_RestorePhysicsTables
private

Definition at line 104 of file RunManagerMT.h.

Referenced by initG4().

◆ m_runInterface

std::unique_ptr<SimRunInterface> RunManagerMT::m_runInterface
private

Definition at line 100 of file RunManagerMT.h.

Referenced by initializeUserActions(), and RunManagerMT().

◆ m_runTerminated

bool RunManagerMT::m_runTerminated {false}
private

Definition at line 95 of file RunManagerMT.h.

Referenced by stopG4(), and terminateRun().

◆ m_score

bool RunManagerMT::m_score
private

Definition at line 107 of file RunManagerMT.h.

Referenced by initG4().

◆ m_stateManager

G4StateManager* RunManagerMT::m_stateManager
private

Definition at line 98 of file RunManagerMT.h.

Referenced by initG4(), RunManagerMT(), and stopG4().

◆ m_stepverb

int RunManagerMT::m_stepverb
private

Definition at line 109 of file RunManagerMT.h.

Referenced by initG4().

◆ m_StorePhysicsTables

bool RunManagerMT::m_StorePhysicsTables
private

Definition at line 103 of file RunManagerMT.h.

Referenced by initG4().

◆ m_UIsession

CustomUIsession* RunManagerMT::m_UIsession
private

Definition at line 92 of file RunManagerMT.h.

Referenced by initG4(), RunManagerMT(), and ~RunManagerMT().

◆ m_userRunAction

RunAction* RunManagerMT::m_userRunAction {nullptr}
private

Definition at line 96 of file RunManagerMT.h.

Referenced by initG4(), initializeUserActions(), and terminateRun().

◆ m_world

std::unique_ptr<DDDWorld> RunManagerMT::m_world
private

Definition at line 117 of file RunManagerMT.h.

Referenced by initG4(), RunManagerMT(), and world().