16#ifndef _RMG_PHYSICS_HH_
17#define _RMG_PHYSICS_HH_
22#include "G4GenericMessenger.hh"
23#include "G4VModularPhysicsList.hh"
75 ProdCutStore() =
default;
79 : gamma(def_cut), electron(def_cut), positron(def_cut), proton(def_cut), alpha(def_cut),
80 generic_ion(def_cut) {}
129 void SetGammaTwoJMAX(
int max_two_j);
130 void SetStoreICLevelData(
bool);
132 void DumpProcessesForParticles(std::string file_name);
136 void ConstructParticle()
override;
137 void ConstructProcess()
override;
138 virtual void ConstructOptical();
142 ProdCutStore fProdCuts = {};
144 bool fConstructOptical =
false;
145 bool fUseOpticalCustomWLS =
true;
146 bool fUseNeutronThermalScattering =
false;
147 bool fUseGrabmayrGammaCascades =
false;
148 bool fUseInnerBremsstrahlung =
false;
151 G4double fLowEnergyRange = 250 * CLHEP::eV;
152 G4double fHighEnergyRange = 100. * CLHEP::GeV;
153 std::unique_ptr<G4GenericMessenger> fMessenger;
154 void DefineCommands();
LowEnergyEMOption
Enum to specify a EM physics list from Geant4, see Geant4-manual for more information.
Definition RMGPhysics.hh:50
void SetCuts() override
Sets the production cut values, and energy range.
Definition RMGPhysics.cc:441
void SetHadronicPhysicsListOptionString(std::string option)
Set the low energy EM options from a string, for use in the messenger.
Definition RMGPhysics.cc:520
void SetLowEnergyEMOptionString(std::string option)
Set the low energy EM options from a string, for use in the messenger.
Definition RMGPhysics.cc:514
RMGPhysics()
Constructor for RMGPhysics , this sets the default choices.
Definition RMGPhysics.cc:86
void SetDefaultProductionCut(double cut)
Set the production cut for the default region.
Definition RMGPhysics.cc:498
HadronicPhysicsListOption
Enum to specify a hardronic physics list from Geant4, see Geant4-manual for more information.
Definition RMGPhysics.hh:64
void SetHighEnergyRange(G4double high_energy)
Sets the energy range for the production cut table.
Definition RMGPhysics.hh:102
void SetLowEnergyRange(G4double low_energy)
Sets the energy range for the production cut table.
Definition RMGPhysics.hh:99
void SetUseGammaAngCorr(bool)
Option to turn on gamma emisson with correct angular correlations.
Definition RMGPhysics.cc:121
void SetSensitiveProductionCut(double cut)
Set the production cut for the sensitive region.
Definition RMGPhysics.cc:482
Struct to hold the production cut values.
Definition RMGPhysics.hh:74
ProdCutStore(double def_cut)
Constructor setting the default production cut def_cut.
Definition RMGPhysics.hh:78