16#ifndef _RMG_V_VERTEX_GENERARTOR_HH_
17#define _RMG_V_VERTEX_GENERARTOR_HH_
19#include "RMGConfig.hh"
21#include "bxdecay0_g4/vertex_generator_interface.hh"
26#include "G4ThreeVector.hh"
27#include "G4UImessenger.hh"
40class RMGVVertexGenerator {
45 RMGVVertexGenerator(std::string name) : fGeneratorName(name) {}
47 virtual ~RMGVVertexGenerator() =
default;
49 RMGVVertexGenerator(RMGVVertexGenerator
const&) =
delete;
50 RMGVVertexGenerator& operator=(RMGVVertexGenerator
const&) =
delete;
51 RMGVVertexGenerator(RMGVVertexGenerator&&) =
delete;
52 RMGVVertexGenerator& operator=(RMGVVertexGenerator&&) =
delete;
54 virtual void BeginOfRunAction(
const G4Run*) {};
55 virtual void EndOfRunAction(
const G4Run*) {};
68 v = kDummyPrimaryPosition;
92 std::string fGeneratorName;
93 int fMaxAttempts = 100;
94 const G4ThreeVector kDummyPrimaryPosition = G4ThreeVector(0, 0, 0);
96 std::unique_ptr<G4UImessenger> fMessenger;
Abstract base class for vertex generators.
Definition RMGVVertexGenerator.hh:40
int GetMaxAttempts() const
Get the maximum number of attempts for vertex generation.
Definition RMGVVertexGenerator.hh:84
virtual bool GenerateVertex(G4ThreeVector &v)
Generate a primary vertex position.
Definition RMGVVertexGenerator.hh:67
void SetMaxAttempts(int val)
Set the maximum number of attempts for vertex generation.
Definition RMGVVertexGenerator.hh:78