Class RMGVGenerator

Inheritance Relationships

Derived Types

Class Documentation

class RMGVGenerator

Abstract base class for primary generators.

This class defines the interface for generators that create the primary particle(s) and set their vertex position(s) for a simulation event.

Subclassed by RMGGeneratorCosmicMuons, RMGGeneratorDecay0, RMGGeneratorFromFile, RMGGeneratorG4Gun, RMGGeneratorGPS, RMGGeneratorMUSUNCosmicMuons, RMGGeomBench

Public Functions

RMGVGenerator() = delete
inline RMGVGenerator(std::string name)
virtual ~RMGVGenerator() = default
RMGVGenerator(RMGVGenerator const&) = delete
RMGVGenerator &operator=(RMGVGenerator const&) = delete
RMGVGenerator(RMGVGenerator&&) = delete
RMGVGenerator &operator=(RMGVGenerator&&) = delete
inline virtual void BeginOfRunAction(const G4Run*)

Called at the beginning of a run.

Derived generators can perform any necessary initialization in this method.

inline virtual void EndOfRunAction(const G4Run*)

Called at the end of a run.

Derived generators can perform any necessary finalization in this method.

virtual void SetParticlePosition(G4ThreeVector vec) = 0

Set the primary vertex position.

This pure virtual method must be implemented by derived classes to set the primary vertex position for the generator.

Parameters:

vec – The desired primary vertex position.

virtual void GeneratePrimaries(G4Event *event) = 0

Generate primary particles for an event.

Derived generators must implement this method to create primary particles and add them to the given G4Event.

Parameters:

event – Pointer to the G4Event.

inline void SetReportingFrequency(int freq)
inline std::string GetGeneratorName()

Protected Attributes

std::string fGeneratorName
std::unique_ptr<G4UImessenger> fMessenger
int fReportingFrequency = 1000