|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
#include <MCGIDI_distributions.hpp>
Public Member Functions | |
| LUPI_HOST_DEVICE | IncoherentBoundToFreePhotoAtomicScattering () |
| LUPI_HOST | IncoherentBoundToFreePhotoAtomicScattering (GIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering const &a_incoherentPhotoAtomicScattering, SetupInfo &a_setupInfo) |
| LUPI_HOST_DEVICE | ~IncoherentBoundToFreePhotoAtomicScattering () |
| LUPI_HOST_DEVICE double | energyRatio (double a_energyIn, double a_mu) const |
| LUPI_HOST_DEVICE double | evaluateKleinNishina (double a_energyIn, double a_mu) const |
| LUPI_HOST_DEVICE double | evaluateOccupationNumber (double a_X, double a_mu) const |
| template<typename RNG> | |
| LUPI_HOST_DEVICE void | sample (double a_X, Sampling::Input &a_input, RNG &&a_rng) const |
| template<typename RNG> | |
| LUPI_HOST_DEVICE double | angleBiasing (Reaction const *a_reaction, double a_temperature, double a_energy_in, double a_mu_lab, RNG &&a_rng, double &a_energy_out) const |
| LUPI_HOST_DEVICE void | serialize (LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode) |
| template<typename RNG> | |
| LUPI_HOST_DEVICE double | angleBiasing (Reaction const *a_reaction, LUPI_maybeUnused double a_temperature, double a_energy_in, double a_mu_lab, RNG &&a_rng, double &a_energy_out) const |
| Public Member Functions inherited from MCGIDI::Distributions::Distribution | |
| LUPI_HOST_DEVICE | Distribution () |
| LUPI_HOST | Distribution (Type a_type, GIDI::Distributions::Distribution const &a_distribution, SetupInfo &a_setupInfo) |
| LUPI_HOST | Distribution (Type a_type, GIDI::Frame a_productFrame, SetupInfo &a_setupInfo) |
| LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION | ~Distribution () MCGIDI_TRUE_VIRTUAL |
| LUPI_HOST_DEVICE Type | type () const |
| LUPI_HOST_DEVICE GIDI::Frame | productFrame () const |
| LUPI_HOST_DEVICE double | projectileMass () const |
| LUPI_HOST_DEVICE double | targetMass () const |
| LUPI_HOST_DEVICE double | productMass () const |
| LUPI_HOST void | setModelDBRC_data (Sampling::Upscatter::ModelDBRC_data *a_modelDBRC_data) |
| template<typename RNG> | |
| LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION void | sample (double a_X, Sampling::Input &a_input, RNG &&a_rng) const MCGIDI_TRUE_VIRTUAL |
| template<typename RNG> | |
| LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION double | angleBiasing (Reaction const *a_reaction, double a_temperature, double a_energy_in, double a_mu_lab, RNG &&a_rng, double &a_energy_out) const MCGIDI_TRUE_VIRTUAL |
| LUPI_HOST_DEVICE void | serialize (LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode) |
| template<typename RNG> | |
| LUPI_HOST_DEVICE void | sample (double a_X, MCGIDI::Sampling::Input &a_input, RNG &&a_rng) const |
| template<typename RNG> | |
| LUPI_HOST_DEVICE double | angleBiasing (Reaction const *a_reaction, double a_temperature, double a_energy_in, double a_mu_lab, RNG &&a_rng, double &a_energy_out) const |
This class represents the distribution for an outgoing photon via incoherent photo-atomic elastic scattering.
Definition at line 309 of file MCGIDI_distributions.hpp.
| LUPI_HOST_DEVICE MCGIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering::IncoherentBoundToFreePhotoAtomicScattering | ( | ) |
Default constructor used when broadcasting a Protare as needed by MPI or GPUs.
Definition at line 979 of file MCGIDI_distributions.cc.
| LUPI_HOST MCGIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering::IncoherentBoundToFreePhotoAtomicScattering | ( | GIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering const & | a_incoherentBoundToFreePhotoAtomicScattering, |
| SetupInfo & | a_setupInfo ) |
| a_incoherentBoundToFreePhotoAtomicScattering | [in] The GIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering instance whose data is to be used to construct this. |
| a_setupInfo | [in] Used internally when constructing a Protare to pass information to other constructors. |
Definition at line 988 of file MCGIDI_distributions.cc.
| LUPI_HOST_DEVICE MCGIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering::~IncoherentBoundToFreePhotoAtomicScattering | ( | ) |
Definition at line 1027 of file MCGIDI_distributions.cc.
Referenced by ~IncoherentBoundToFreePhotoAtomicScattering().
| LUPI_HOST_DEVICE double MCGIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering::angleBiasing | ( | Reaction const * | a_reaction, |
| double | a_temperature, | ||
| double | a_energy_in, | ||
| double | a_mu_lab, | ||
| RNG && | a_rng, | ||
| double & | a_energy_out ) const |
| LUPI_HOST_DEVICE double MCGIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering::angleBiasing | ( | Reaction const * | a_reaction, |
| LUPI_maybeUnused double | a_temperature, | ||
| double | a_energy_in, | ||
| double | a_mu_lab, | ||
| RNG && | a_rng, | ||
| double & | a_energy_out ) const |
Returns the probability for a projectile with energy a_energy_in to cause a particle to be emitted at angle a_mu_lab as seen in the lab frame. a_energy_out is the sampled outgoing energy.
| a_reaction | [in] The reaction containing the particle which this distribution describes. |
| a_temperature | [in] The temperature of the material. |
| a_energy_in | [in] The energy of the incident particle. |
| a_mu_lab | [in] The desired mu in the lab frame for the emitted particle. |
| a_userrng | [in] A random number generator that takes the state a_rngState and returns a double in the range [0.0, 1.0). |
| a_rngState | [in] The current state for the random number generator. |
| a_energy_out | [in] The energy of the emitted outgoing particle. |
Definition at line 1248 of file MCGIDI_headerSource.hpp.
| LUPI_HOST_DEVICE double MCGIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering::energyRatio | ( | double | a_energyIn, |
| double | a_mu ) const |
FIX ME.
| a_energyIn | [in] |
| a_mu | [in] |
Definition at line 1038 of file MCGIDI_distributions.cc.
Referenced by angleBiasing(), energyRatio(), evaluateKleinNishina(), and sample().
| LUPI_HOST_DEVICE double MCGIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering::evaluateKleinNishina | ( | double | a_energyIn, |
| double | a_mu ) const |
This method evaluates the Klein-Nishina. FIX ME. This should be a function as it does not use member data.
| a_energyIn | [in] |
| a_mu | [in] |
Definition at line 1052 of file MCGIDI_distributions.cc.
Referenced by evaluateKleinNishina().
| LUPI_HOST_DEVICE double MCGIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering::evaluateOccupationNumber | ( | double | a_energyIn, |
| double | a_mu ) const |
This method evaluates the occupation number cdf.
| a_energyIn | [in] |
| a_mu | [in] |
Definition at line 1074 of file MCGIDI_distributions.cc.
Referenced by angleBiasing(), evaluateOccupationNumber(), and sample().
| LUPI_HOST_DEVICE void MCGIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering::sample | ( | double | a_X, |
| Sampling::Input & | a_input, | ||
| RNG && | a_rng ) const |
This method samples the outgoing product data by sampling the outgoing energy E' from the probability P(E'|E) and then samples mu from the probability P(mu|E,E'). It also samples the outgoing phi uniformly between 0 and 2 pi.
| a_X | [in] The energy of the projectile. |
| a_input | [in] Sample options requested by user. |
| a_userrng | [in] A random number generator that takes the state a_rngState and returns a double in the range [0.0, 1.0). |
| a_rngState | [in] The current state for the random number generator. |
Definition at line 1124 of file MCGIDI_headerSource.hpp.
| LUPI_HOST_DEVICE void MCGIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering::serialize | ( | LUPI::DataBuffer & | a_buffer, |
| LUPI::DataBuffer::Mode | a_mode ) |
This method serializes this for broadcasting as needed for MPI and GPUs. The method can count the number of required bytes, pack this or unpack this depending on a_mode.
| a_buffer | [in] The buffer to read or write data to depending on a_mode. |
| a_mode | [in] Specifies the action of this method. |
Definition at line 1104 of file MCGIDI_distributions.cc.
Referenced by serialize().