Class RMGPhysics#

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.

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#
enum class HadronicPhysicsListOption#

Enum to specify a hardronic physics list from Geant4, see Geant4-manual for more information.

Values:

enumerator kQGSP_BIC_HP#
enumerator kQGSP_BERT_HP#
enumerator kFTFP_BERT_HP#
enumerator kShielding#
enumerator kNone#

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 SetPhysicsRealm which 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)#

Protected Functions

void ConstructParticle() override#
void ConstructProcess() override#
virtual void ConstructOptical()#
struct ProdCutStore#

Struct to hold the production cut values.

Public Functions

ProdCutStore() = default#
inline ProdCutStore(double def_cut)#

Constructor setting the default production cut def_cut.

Public Members

double gamma#
double electron#
double positron#
double proton#
double alpha#
double generic_ion#