MCPcopy Create free account
hub / github.com/Geant4/geant4 / RunInitialization

Method RunInitialization

source/run/src/G4RunManager.cc:309–377  ·  view source on GitHub ↗

--------------------------------------------------------------------

Source from the content-addressed store, hash-verified

307
308// --------------------------------------------------------------------
309void G4RunManager::RunInitialization()
310{
311 if (!(kernel->RunInitialization(fakeRun))) return;
312
313 runAborted = false;
314 numberOfEventProcessed = 0;
315
316 CleanUpPreviousEvents();
317 if (verboseLevel > 2 && currentRun!=nullptr) {
318 G4cout << "Deleting G4Run (id:" << currentRun->GetRunID() << ") ";
319 if(currentRun->GetEventVectorSize()>0) {
320 G4cout << " that has " << currentRun->GetEventVectorSize()
321 << " events kept in eventVector";
322 }
323 G4cout << G4endl;
324 }
325 delete currentRun;
326 currentRun = nullptr;
327
328 if (fakeRun) return;
329
330 if (fGeometryHasBeenDestroyed) G4ParallelWorldProcessStore::GetInstance()->UpdateWorlds();
331
332 if (userRunAction != nullptr) currentRun = userRunAction->GenerateRun();
333 if (currentRun == nullptr) currentRun = new G4Run();
334
335 currentRun->SetRunID(runIDCounter);
336 currentRun->SetNumberOfEventToBeProcessed(numberOfEventToBeProcessed);
337
338 currentRun->SetDCtable(DCtable);
339 G4SDManager* fSDM = G4SDManager::GetSDMpointerIfExist();
340 if (fSDM != nullptr) {
341 currentRun->SetHCtable(fSDM->GetHCtable());
342 }
343
344 if (G4VScoreNtupleWriter::Instance() != nullptr) {
345 auto hce = (fSDM != nullptr) ? fSDM->PrepareNewEvent() : nullptr;
346 isScoreNtupleWriter = G4VScoreNtupleWriter::Instance()->Book(hce);
347 delete hce;
348 }
349
350 std::ostringstream oss;
351 G4Random::saveFullState(oss);
352 randomNumberStatusForThisRun = oss.str();
353 currentRun->SetRandomNumberStatus(randomNumberStatusForThisRun);
354
355 for (G4int i_prev = 0; i_prev < n_perviousEventsToBeStored; ++i_prev) {
356 previousEvents->push_back(nullptr);
357 }
358
359 if (printModulo >= 0 || verboseLevel > 0) {
360 G4cout << "### Run " << currentRun->GetRunID() << " starts." << G4endl;
361 }
362 if (userRunAction != nullptr) userRunAction->BeginOfRunAction(currentRun);
363
364 if (isScoreNtupleWriter) {
365 G4VScoreNtupleWriter::Instance()->OpenFile();
366 }

Callers

nothing calls this directly

Calls 15

GetInstanceFunction · 0.85
GetEventVectorSizeMethod · 0.80
UpdateWorldsMethod · 0.80
SetHCtableMethod · 0.80
GetRunIDMethod · 0.45
GenerateRunMethod · 0.45
SetRunIDMethod · 0.45
SetDCtableMethod · 0.45
GetHCtableMethod · 0.45
PrepareNewEventMethod · 0.45
BookMethod · 0.45

Tested by

no test coverage detected