Class RMGPhysics#
Defined in File RMGPhysics.hh
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Type#
public G4VModularPhysicsList
Class Documentation#
-
class RMGPhysics : public G4VModularPhysicsList#
Class to handle the physics lists, extends
G4VModularPhysicsList.This handles selecting the physics list options (from those in geant4), and defining the stepping cuts and production cuts for the simulation.
Public Types
-
enum class PhysicsRealm#
The physics realm is a set of choices of production cuts, tuned for different physics use cases.
Values:
-
enumerator kDoubleBetaDecay#
The default values for the energy thresholds are tuned to 100 keV in natural germanium (i.e., the BBdecay realm).
-
enumerator kDarkMatter#
These values are tuned to ~1 keV for gamma, e+, e- in natural germanium.
-
enumerator kCosmicRays#
These values are much longer intended for cosmic ray simulations.
-
enumerator kLArScintillation#
Currently not implemented.
-
enumerator kUserDefined#
Custom user defined production cuts.
-
enumerator kDoubleBetaDecay#
-
enum class LowEnergyEMOption#
Enum to specify a EM physics list from Geant4, see Geant4-manual for more information.
Values:
-
enumerator kOption1#
-
enumerator kOption2#
-
enumerator kOption3#
-
enumerator kOption4#
-
enumerator kPenelope#
-
enumerator kLivermore#
-
enumerator kLivermorePolarized#
-
enumerator kNone#
-
enumerator kOption1#
Public Functions
-
RMGPhysics()#
Constructor for
RMGPhysics, this sets the default choices.This sets the default prdduction cuts values and physics realm. By default a cut of 0.1 mm is used and the PhysicsRealm
kDoubleBetaDecay.
-
RMGPhysics(RMGPhysics const&) = delete#
-
RMGPhysics &operator=(RMGPhysics const&) = delete#
-
RMGPhysics(RMGPhysics&&) = delete#
-
RMGPhysics &operator=(RMGPhysics&&) = delete#
-
void SetCuts() override#
Sets the production cut values, and energy range.
Defines a set of production cuts for the default region and also for the G4Region “SensitiveRegion”. This is created in RMGHardware, but this behavior might be changed in a derived class, so careful here! This function should be called after
SetPhysicsRealmwhich is used to define the production cut values.
-
inline void SetLowEnergyRange(G4double low_energy)#
Sets the energy range for the production cut table.
-
inline void SetHighEnergyRange(G4double high_energy)#
Sets the energy range for the production cut table.
-
void SetPhysicsRealm(PhysicsRealm realm)#
Set the production cuts for the chosen physics realm.
-
void SetPhysicsRealmString(std::string realm)#
Set the physics realm from a string, for use in the messenger.
-
void SetDefaultProductionCut(double cut)#
Set the production cut for the default region.
The same cut is used for electrons, positrons and gammas. Notes:
This overrides the choices from the Physics Realm.
No production cut alpha or generic ion is set.
- Parameters
cut – the production cut value for the default region.
-
void SetSensitiveProductionCut(double cut)#
Set the production cut for the sensitive region.
The same cut is used for electrons, positrons and gammas. Notes:
This overrides the choices from the Physics Realm.
No production cut alpha or generic ion is set.
- Parameters
cut – the production cut value for the sensitive region.
-
void SetLowEnergyEMOptionString(std::string option)#
Set the low energy EM options from a string, for use in the messenger.
-
void SetHadronicPhysicsListOptionString(std::string option)#
Set the low energy EM options from a string, for use in the messenger.
-
inline void SetUseThermalScattering(bool val)#
Option to turn on thermal neutron scattering.
-
void SetUseGammaAngCorr(bool)#
Option to turn on gamma emisson with correct angular correlations.
-
void SetGammaTwoJMAX(int max_two_j)#
-
void SetStoreICLevelData(bool)#
-
enum class PhysicsRealm#