16#ifndef _RMG_GENERATOR_DECAY0_HH_
17#define _RMG_GENERATOR_DECAY0_HH_
21#include "G4GenericMessenger.hh"
22#include "G4ThreeVector.hh"
24#include "RMGMasterGenerator.hh"
25#include "RMGVGenerator.hh"
26#include "RMGVVertexGenerator.hh"
28namespace bxdecay0_g4 {
29 class PrimaryGeneratorAction;
52 enum class Process {
k0vbb = 1,
k0vbb_lambda_0 = 2,
k0vbb_lambda_02 = 3,
k2vbb = 4,
k0vbb_M1 = 5,
k0vbb_M2 = 6,
k0vbb_M3 = 7,
k0vbb_M7 = 8,
k0vbb_lambda_2 = 9,
k2vbb_2 = 10,
k0vkb = 11,
k2vkb = 12,
k0v2k = 13,
k2v2k = 14,
k2vbb_bos0 = 15,
k2vbb_bos2 = 16,
k0vbb_eta_s = 17,
k0vbb_eta_nmes = 18,
k2vbb_lv = 19,
k0v4b = 20
107 std::unique_ptr<bxdecay0_g4::PrimaryGeneratorAction> fDecay0G4Generator;
110 std::unique_ptr<G4GenericMessenger> fMessenger =
nullptr;
111 void DefineCommands();
116 bool fUpdateSeeds =
false;
136 void GeneratorCmd(
const std::string& parameters);
139 std::unique_ptr<BxMessenger> fUIMessenger;
Integration of the BxDecay0 generator into remage.
Definition RMGGeneratorDecay0.hh:42
Process
Enumeration of nuclear decay processes supported by the generator.
Definition RMGGeneratorDecay0.hh:52
@ k0vkb
EC + beta+ 0+ -> 0+, 2+.
Definition RMGGeneratorDecay0.hh:63
@ k0vbb_lambda_2
0+ -> 2+ {2n} with RHC lambda
Definition RMGGeneratorDecay0.hh:61
@ k2vbb_lv
0+ -> 0+ with Lorentz violation
Definition RMGGeneratorDecay0.hh:71
@ k0v2k
double EC 0+ -> 0+, 2+
Definition RMGGeneratorDecay0.hh:65
@ k0vbb_M2
0+ -> 0+ {2n} (Majoron, SI=2)
Definition RMGGeneratorDecay0.hh:58
@ k0vbb
neutrinoless double beta decay
Definition RMGGeneratorDecay0.hh:53
@ k0vbb_lambda_0
0+ -> 0+ {2n} with RHC lambda
Definition RMGGeneratorDecay0.hh:54
@ k0vbb_eta_nmes
0+ -> 0+ with RHC eta and specific NMEs
Definition RMGGeneratorDecay0.hh:70
@ k0vbb_M7
0+ -> 0+ {2n} (Majoron, SI=7)
Definition RMGGeneratorDecay0.hh:60
@ k2v2k
double EC 0+ -> 0+, 2+
Definition RMGGeneratorDecay0.hh:66
@ k0vbb_eta_s
0+ -> 0+ with RHC eta simplified expression
Definition RMGGeneratorDecay0.hh:69
@ k2vbb_2
0+ -> 2+ {2n}, {N*}
Definition RMGGeneratorDecay0.hh:62
@ k2vkb
EC + beta+ 0+ -> 0+, 2+.
Definition RMGGeneratorDecay0.hh:64
@ k2vbb_bos0
0+ -> 0+ with bosonic neutrinos
Definition RMGGeneratorDecay0.hh:67
@ k0vbb_lambda_02
0+ -> 0+, 2+ {N*} with RHC lambda
Definition RMGGeneratorDecay0.hh:55
@ k0v4b
0+ -> 0+ Quadruple beta decay
Definition RMGGeneratorDecay0.hh:72
@ k2vbb_bos2
0+ -> 2+ with bosonic neutrinos
Definition RMGGeneratorDecay0.hh:68
@ k0vbb_M3
0+ -> 0+ {2n} (Majoron, SI=3)
Definition RMGGeneratorDecay0.hh:59
@ k2vbb
2 neutrino double beta decay
Definition RMGGeneratorDecay0.hh:56
@ k0vbb_M1
0+ -> 0+ {2n} (Majoron, SI=1)
Definition RMGGeneratorDecay0.hh:57
void GeneratePrimaries(G4Event *) override
Calls to fDecay0G4Generator to generate the primary for the event.
Definition RMGGeneratorDecay0.cc:49
void BeginOfRunAction(const G4Run *) override
Updates the seed and configuration at the beginning of each run.
Definition RMGGeneratorDecay0.cc:53
RMGGeneratorDecay0(RMGMasterGenerator *master_gen)
Constructor that links the BxDecay0 generator action to remage.
Definition RMGGeneratorDecay0.cc:32
void SetBackground(std::string)
Sets BxDecay0 to run in background mode and sets the specific isotope.
Definition RMGGeneratorDecay0.cc:104
void SetParticlePosition(G4ThreeVector) override
Set the primary vertex position.
Definition RMGGeneratorDecay0.hh:91
void EndOfRunAction(const G4Run *) override
Called at the end of a run.
Definition RMGGeneratorDecay0.cc:99
Definition RMGMasterGenerator.hh:28