|
LDMX Software
|
Defines basic APrime physics. More...
#include <APrimePhysics.h>
Public Member Functions | |
| APrimePhysics (const framework::config::Parameters ¶ms) | |
| Class constructor. | |
| virtual | ~APrimePhysics ()=default |
| Class destructor. | |
| void | ConstructParticle () |
| Construct particle. | |
| void | ConstructProcess () |
| Construct the process. | |
Static Public Attributes | |
| static const std::string | NAME = "APrime" |
| The name of this physics constructor. | |
Private Attributes | |
| G4double | ap_mass_ |
| the mass of the A' for this run | |
| bool | enable_ |
| is dark brem enabled for this run? | |
| bool | fcp_enable_ |
| is A' -> fcp conversion enabled for this run? | |
| G4double | fcp_mass_ |
| mass of the fcp in MeV | |
| G4double | fcp_charge_ |
| charge of the fcp in units of e | |
| G4double | fcp_xsec_factor_ |
| cross section biasing factor for A' -> fcp conversion | |
| framework::config::Parameters | parameters_ |
| Dark brem parameters to pass to the process (if enabled) | |
| std::unique_ptr< G4DarkBremsstrahlung > | process_ |
| APrimeConversionToFCPs * | fcp_conversion_process_ {nullptr} |
| A' -> fcp conversion process (owned by G4 process manager after registration) | |
Defines basic APrime physics.
It constructs the APrime particle and links the dark brem process to the electron.
Definition at line 44 of file APrimePhysics.h.
| simcore::APrimePhysics::APrimePhysics | ( | const framework::config::Parameters & | params | ) |
Class constructor.
| params | Parameters to configure the dark brem process |
Definition at line 30 of file APrimePhysics.cxx.
References ap_mass_, enable_, fcp_charge_, fcp_enable_, fcp_mass_, fcp_xsec_factor_, framework::config::Parameters::get(), and parameters_.
|
virtualdefault |
Class destructor.
Nothing right now.
| void simcore::APrimePhysics::ConstructParticle | ( | ) |
Construct particle.
Insert A' into the Geant4 particle table. Geant4 registers all instances derived from G4ParticleDefinition and deletes them at the end of processing.
Uses the A' mass given by the parameter APrimeMass to inform the G4APrime instance what mass to use.
Insert A-prime into the Geant4 particle table.
Geant4 registers all instances derived from G4ParticleDefinition and deletes them at the end of the run. We configure the A' to have the input mass and the PDG ID number of 622.
If fcp is enabled, the A' decays to fcp+fcp- (decay_id=17), otherwise to e+e- (decay_id=11).
If fcp is enabled, initialize the fractionally charged particles. This registers fcp- and fcp+ in the Geant4 particle table.
Definition at line 49 of file APrimePhysics.cxx.
References ap_mass_, fcp_charge_, fcp_enable_, fcp_mass_, framework::config::Parameters::get(), and parameters_.
| void simcore::APrimePhysics::ConstructProcess | ( | ) |
Construct the process.
Links the dark brem processs to the electron through the process manager only if the dark brem process is enabled ('enable' is True).
Also sets up the A' -> fcp+ fcp- conversion process if fcp is enabled.
G4ProcessManager registers and cleans up any created processes, so we can forget about it after creating it.
Definition at line 97 of file APrimePhysics.cxx.
References enable_, fcp_conversion_process_, fcp_enable_, fcp_xsec_factor_, framework::config::Parameters::get(), parameters_, simcore::APrimeConversionToFCPs::setCrossSecFactor(), and simcore::storeElementZ().
|
private |
the mass of the A' for this run
Definition at line 101 of file APrimePhysics.h.
Referenced by APrimePhysics(), and ConstructParticle().
|
private |
is dark brem enabled for this run?
Definition at line 104 of file APrimePhysics.h.
Referenced by APrimePhysics(), and ConstructProcess().
|
private |
charge of the fcp in units of e
Definition at line 113 of file APrimePhysics.h.
Referenced by APrimePhysics(), and ConstructParticle().
|
private |
A' -> fcp conversion process (owned by G4 process manager after registration)
Definition at line 131 of file APrimePhysics.h.
Referenced by ConstructProcess().
|
private |
is A' -> fcp conversion enabled for this run?
Definition at line 107 of file APrimePhysics.h.
Referenced by APrimePhysics(), ConstructParticle(), and ConstructProcess().
|
private |
mass of the fcp in MeV
Definition at line 110 of file APrimePhysics.h.
Referenced by APrimePhysics(), and ConstructParticle().
|
private |
cross section biasing factor for A' -> fcp conversion
Definition at line 116 of file APrimePhysics.h.
Referenced by APrimePhysics(), and ConstructProcess().
|
static |
The name of this physics constructor.
Passed into Geant4 to register this physics, should not conflict with any other Geant4 physics.
Definition at line 53 of file APrimePhysics.h.
|
private |
Dark brem parameters to pass to the process (if enabled)
Definition at line 125 of file APrimePhysics.h.
Referenced by APrimePhysics(), ConstructParticle(), and ConstructProcess().
|
private |
Definition at line 127 of file APrimePhysics.h.