Class RMGRunAction

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

  • public G4UserRunAction

Class Documentation

class RMGRunAction : public G4UserRunAction

Per-thread run action managing output files, ntuples and output schemes.

Holds the list of RMGVOutputScheme instances active on this thread, opens and post-processes the per-worker output file (writing to a temporary path first and moving it into place at end of run), and initializes the Geant4 analysis manager.

Public Functions

RMGRunAction(bool persistency = false)

Construct a run action with no primary generator hook-up.

RMGRunAction(RMGMasterGenerator*, bool persistency = false)

Construct a run action aware of the primary generator.

~RMGRunAction() = default
RMGRunAction(RMGRunAction const&) = delete
RMGRunAction &operator=(RMGRunAction const&) = delete
RMGRunAction(RMGRunAction&&) = delete
RMGRunAction &operator=(RMGRunAction&&) = delete
void SetupAnalysisManager()

Configure the Geant4 analysis manager and register all output ntuples.

subsequent calls are no-ops once the analysis manager is initialized for the current thread.

G4Run *GenerateRun() override

Allocate and return an RMGRun instance for the current run.

void BeginOfRunAction(const G4Run*) override

Open the output file, notify schemes, and record the run start time.

void EndOfRunAction(const G4Run*) override

Close the output file and move the temporary worker file to its final path.

inline int GetCurrentRunPrintModulo() const

Print-modulo value chosen for the run currently being processed.

inline const auto &GetAllOutputDataFields()

Output schemes registered on this thread.

inline void ClearOutputDataFields()

Invoke RMGVOutputScheme::ClearBeforeEvent on every registered scheme.