Skip to content

Commit fddffac

Browse files
committed
fix: store generationInit in self to pass numberOfEvents
1 parent 68f7ebe commit fddffac

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

DDG4/python/DDSim/DD4hepSimulation.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,8 @@ def __setupGeneratorActions(self, kernel, geant4):
433433
if actionList:
434434
generationInit = self._buildInputStage(geant4, actionList, output_level=self.output.inputStage,
435435
have_mctruth=self._enablePrimaryHandler())
436+
# Store on self so run() can read numberOfEvents before terminate() destroys it
437+
self._generationInit = generationInit
436438

437439
# ================================================================================================
438440

@@ -632,12 +634,10 @@ def run(self):
632634
if not PyDDG4.run(master):
633635
logger.error("Simulation failed!")
634636
exitCode += 1
635-
if not PyDDG4.terminate(master):
636-
exitCode += 1
637-
logger.error("Termination failed!")
638637

639638
totalTimeUser, totalTimeSys, _cuTime, _csTime, _elapsedTime = os.times()
640639
processedEvents = self.numberOfEvents
640+
generationInit = getattr(self, '_generationInit', None)
641641
if generationInit:
642642
processedEvents = int(generationInit.numberOfEvents)
643643
if self.numberOfEvents < 0:
@@ -652,6 +652,11 @@ def run(self):
652652
perEventTime = eventTime / processedEvents
653653
logger.info("StartUp Time: %3.2f s, Processing and Init: %3.2f s (~%3.2f s/Event @ %d threads) "
654654
% (startUpTime, eventTime, perEventTime, self.numberOfThreads))
655+
656+
if not PyDDG4.terminate(master):
657+
exitCode += 1
658+
logger.error("Termination failed!")
659+
655660
return exitCode
656661

657662
def __setMagneticFieldOptions(self, geant4):

0 commit comments

Comments
 (0)