16#ifndef _RMG_MASTER_GENERATOR_HH_
17#define _RMG_MASTER_GENERATOR_HH_
21#include "G4VUserPrimaryGeneratorAction.hh"
23#include "RMGVGenerator.hh"
24#include "RMGVVertexGenerator.hh"
145 std::unique_ptr<RMGVVertexGenerator> fVertexGeneratorObj;
148 std::unique_ptr<RMGVGenerator> fGeneratorObj;
150 std::unique_ptr<G4GenericMessenger> fMessenger;
151 void DefineCommands();
Definition RMGMasterGenerator.hh:28
void GeneratePrimaries(G4Event *event) override
Generate primary vertices for the event.
Definition RMGMasterGenerator.cc:45
Generator
Enumeration for selecting the primary generator mode.
Definition RMGMasterGenerator.hh:45
@ kG4gun
The standard Geant4 particle gun.
Definition RMGMasterGenerator.hh:46
@ kGeomBench
The benchmark generator.
Definition RMGMasterGenerator.hh:53
@ kUserDefined
A user-specified custom generator.
Definition RMGMasterGenerator.hh:52
@ kCosmicMuons
A simple cosmic muon generator.
Definition RMGMasterGenerator.hh:50
@ kUndefined
Undefined generator mode.
Definition RMGMasterGenerator.hh:54
@ kGPS
The Geant4 General Particle Source.
Definition RMGMasterGenerator.hh:47
@ kMUSUNCosmicMuons
The MUSUN-based cosmic muon generator.
Definition RMGMasterGenerator.hh:51
@ kBxDecay0
The BxDecay0 generator for double beta decay processes.
Definition RMGMasterGenerator.hh:48
void SetConfinement(Confinement code)
Set the primary vertex confinement strategy.
Definition RMGMasterGenerator.cc:78
void SetGenerator(Generator gen)
Select one of the built-in primary generator modes.
Definition RMGMasterGenerator.cc:108
RMGVGenerator * GetGenerator()
Get the current primary generator.
Definition RMGMasterGenerator.hh:81
Confinement GetConfinement() const
Retrieve the current vertex confinement strategy.
Definition RMGMasterGenerator.hh:94
void SetGeneratorString(std::string gen)
Set the primary generator mode using a string.
Definition RMGMasterGenerator.cc:156
RMGVVertexGenerator * GetVertexGenerator()
Get the current vertex generator.
Definition RMGMasterGenerator.hh:87
Confinement
Enumeration for specifying the primary vertex confinement strategy.
Definition RMGMasterGenerator.hh:35
@ kUnConfined
No confinement is applied here; the generator has the duty to sample a primary vertex.
Definition RMGMasterGenerator.hh:36
@ kFromFile
The primary vertex is read from an external file.
Definition RMGMasterGenerator.hh:38
@ kVolume
The primary vertex is confined to a specific detector volume.
Definition RMGMasterGenerator.hh:37
@ kFromPoint
The primary vertex is always at a fixed position.
Definition RMGMasterGenerator.hh:39
void SetConfinementString(std::string code)
Set the vertex confinement strategy using a string.
Definition RMGMasterGenerator.cc:150
void SetUserGenerator(RMGVGenerator *gen)
Set a user-defined primary generator.
Definition RMGMasterGenerator.cc:162
Abstract base class for primary generators.
Definition RMGVGenerator.hh:33
Abstract base class for vertex generators.
Definition RMGVVertexGenerator.hh:40