|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
#include <MCGIDI.hpp>
Public Member Functions | |
| LUPI_HOST_DEVICE | Product () |
| LUPI_HOST | Product (GIDI::Product const *a_product, SetupInfo &a_setupInfo, Transporting::MC const &a_settings, GIDI::Transporting::Particles const &a_particles, bool a_isFission) |
| LUPI_HOST | Product (PoPI::Database const &a_pop, std::string const &a_ID, std::string const &a_label) |
| LUPI_HOST_DEVICE | ~Product () |
| LUPI_HOST String const & | ID () const |
| LUPI_HOST_DEVICE int | intid () const |
| LUPI_HOST_DEVICE int | index () const |
| LUPI_HOST_DEVICE int | userParticleIndex () const |
| LUPI_HOST void | setUserParticleIndex (int a_particleIndex, int a_userParticleIndex) |
| LUPI_HOST void | setUserParticleIndexViaIntid (int a_particleIntid, int a_userParticleIndex) |
| LUPI_HOST void | setModelDBRC_data (Sampling::Upscatter::ModelDBRC_data *a_modelDBRC_data) |
| LUPI_HOST_DEVICE String | label () const |
| LUPI_HOST_DEVICE bool | isCompleteParticle () const |
| LUPI_HOST_DEVICE double | mass () const |
| LUPI_HOST_DEVICE double | excitationEnergy () const |
| LUPI_HOST_DEVICE TwoBodyOrder | twoBodyOrder () const |
| LUPI_HOST_DEVICE double | finalQ (double a_x1) const |
| LUPI_HOST_DEVICE bool | hasFission () const |
| LUPI_HOST_DEVICE Functions::Function1d const * | multiplicity () const |
| LUPI_HOST void | setMultiplicity (Functions::Function1d *a_multiplicity) |
| LUPI_HOST_DEVICE double | productAverageMultiplicity (int a_index, double a_projectileEnergy) const |
| LUPI_HOST_DEVICE double | productAverageMultiplicityViaIntid (int a_intid, double a_projectileEnergy) const |
| LUPI_HOST_DEVICE Distributions::Distribution const * | distribution () const |
| LUPI_HOST_DEVICE Distributions::Distribution * | distribution () |
| LUPI_HOST void | distribution (Distributions::Distribution *a_distribution) |
| LUPI_HOST_DEVICE OutputChannel * | outputChannel () |
| template<typename RNG, typename PUSHBACK> | |
| LUPI_HOST_DEVICE void | sampleProducts (ProtareSingle const *a_protare, double a_projectileEnergy, Sampling::Input &a_input, RNG &&a_rng, PUSHBACK &&a_push_back, Sampling::ProductHandler &a_products) const |
| template<typename RNG, typename PUSHBACK> | |
| LUPI_HOST_DEVICE void | sampleFinalState (ProtareSingle const *a_protare, double a_projectileEnergy, Sampling::Input &a_input, RNG &&a_rng, PUSHBACK &&a_push_back, Sampling::ProductHandler &a_products) const |
| template<typename RNG> | |
| LUPI_HOST_DEVICE void | angleBiasing (Reaction const *a_reaction, int a_pid, double a_temperature, double a_energy_in, double a_mu_lab, double &a_probability, double &a_energy_out, RNG &&a_rng, double &a_cumulative_weight) const |
| template<typename RNG> | |
| LUPI_HOST_DEVICE void | angleBiasingViaIntid (Reaction const *a_reaction, int a_intid, double a_temperature, double a_energy_in, double a_mu_lab, double &a_probability, double &a_energy_out, RNG &&a_rng, double &a_cumulative_weight) const |
| LUPI_HOST_DEVICE void | serialize (LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode) |
This class represents a GNDS <outputChannel> node with only data needed for Monte Carlo transport.
This class represents a GNDS <product> node with only data needed for Monte Carlo transport.
Definition at line 1173 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE MCGIDI::Product::Product | ( | ) |
Default constructor used when broadcasting a Protare as needed by MPI or GPUs.
Definition at line 22 of file MCGIDI_product.cc.
| LUPI_HOST MCGIDI::Product::Product | ( | GIDI::Product const * | a_product, |
| SetupInfo & | a_setupInfo, | ||
| Transporting::MC const & | a_settings, | ||
| GIDI::Transporting::Particles const & | a_particles, | ||
| bool | a_isFission ) |
| a_product | [in] The GIDI::Product whose data is to be used to construct this. |
| a_setupInfo | [in] Used internally when constructing a Protare to pass information to other constructors. |
| a_settings | [in] Used to pass user options to the this to instruct it which data are desired. |
| a_particles | [in] List of transporting particles and their information (e.g., multi-group boundaries and fluxes). |
| a_isFission | [in] true if parent channel is a fission channel and false otherwise. |
Definition at line 46 of file MCGIDI_product.cc.
| LUPI_HOST MCGIDI::Product::Product | ( | PoPI::Database const & | a_pops, |
| std::string const & | a_ID, | ||
| std::string const & | a_label ) |
| a_pops | [in] A PoPs Database instance used to get particle intids and possibly other particle information. |
| a_ID | [in] The PoPs id for the product. |
| a_label | [in] The GNDS label for the product. |
Definition at line 83 of file MCGIDI_product.cc.
| LUPI_HOST_DEVICE MCGIDI::Product::~Product | ( | ) |
Definition at line 102 of file MCGIDI_product.cc.
|
inline |
Returns the weight for a projectile with energy a_energy_in to cause this channel to emitted a particle of index a_pid at angle a_mu_lab as seen in the lab frame. If a particle is emitted, a_energy_out is its sampled outgoing energy.
| a_reaction | [in] The reaction containing the particle which this distribution describes. |
| a_index | [in] The index of the particle to emit. |
| a_temperature | [in] Specifies 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_weight | [in] The weight of emitting outgoing particle into lab angle a_mu_lab. |
| a_energy_out | [in] The energy of the emitted outgoing particle. |
| a_rng | [in] The random number generator function that returns a double in the range [0, 1.0). |
| a_cumulative_weight | [in] The sum of the multiplicity for other outgoing particles with index a_index. |
Definition at line 2602 of file MCGIDI_headerSource.hpp.
Referenced by angleBiasingViaIntid().
|
inline |
Returns the weight for a projectile with energy a_energy_in to cause this channel to emitted a particle of intid a_intid at angle a_mu_lab as seen in the lab frame. If a particle is emitted, a_energy_out is its sampled outgoing energy.
| a_reaction | [in] The reaction containing the particle which this distribution describes. |
| a_intid | [in] The intid of the particle to emit. |
| a_temperature | [in] Specifies 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_weight | [in] The weight of emitting outgoing particle into lab angle a_mu_lab. |
| a_energy_out | [in] The energy of the emitted outgoing particle. |
| a_rng | [in] The random number generator function that returns a double in the range [0, 1.0). |
| a_cumulative_weight | [in] The sum of the multiplicity for other outgoing particles with intid a_intid. |
Definition at line 2650 of file MCGIDI_headerSource.hpp.
|
inline |
Returns the value of the m_distribution.
Definition at line 1221 of file MCGIDI.hpp.
|
inline |
Returns the value of the m_distribution.
Definition at line 1220 of file MCGIDI.hpp.
Referenced by MCGIDI::OutputChannel::OutputChannel().
|
inline |
Definition at line 1222 of file MCGIDI.hpp.
|
inline |
Returns the value of the m_excitationEnergy.
Definition at line 1209 of file MCGIDI.hpp.
Referenced by Product().
| LUPI_HOST_DEVICE double MCGIDI::Product::finalQ | ( | double | a_x1 | ) | const |
This method returns the final Q for this by getting its output channel's finalQ.
| a_x1 | [in] The energy of the projectile. |
Definition at line 207 of file MCGIDI_product.cc.
| LUPI_HOST_DEVICE bool MCGIDI::Product::hasFission | ( | ) | const |
This method returns true if the output channel or any of its sub-output channels is a fission channel and false otherwise.
Definition at line 221 of file MCGIDI_product.cc.
Returns a const reference to the m_ID member.
Definition at line 1199 of file MCGIDI.hpp.
Referenced by Product().
|
inline |
Returns the value of the m_index member.
Definition at line 1201 of file MCGIDI.hpp.
Referenced by sampleProducts().
|
inline |
Returns the value of the m_intid member.
Definition at line 1200 of file MCGIDI.hpp.
Referenced by sampleProducts().
|
inline |
Returns the value of the m_isCompleteParticle.
Definition at line 1207 of file MCGIDI.hpp.
Referenced by Product().
|
inline |
Returns the value of the m_label.
Definition at line 1206 of file MCGIDI.hpp.
Referenced by Product().
|
inline |
Returns the value of the m_mass.
Definition at line 1208 of file MCGIDI.hpp.
Referenced by Product(), sampleFinalState(), and sampleProducts().
|
inline |
Returns the value of the m_multiplicity.
Definition at line 1215 of file MCGIDI.hpp.
Referenced by Product().
|
inline |
Returns the value of the m_outputChannel.
Definition at line 1224 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE double MCGIDI::Product::productAverageMultiplicity | ( | int | a_index, |
| double | a_projectileEnergy ) const |
Returns the energy dependent multiplicity for outgoing particle with pops index a_index. The returned value may not be an integer. Energy dependent multiplicities mainly occurs for photons and fission neutrons.
| a_index | [in] The PoPs index of the requested particle. |
| a_projectileEnergy | [in] The energy of the projectile. |
Definition at line 239 of file MCGIDI_product.cc.
| LUPI_HOST_DEVICE double MCGIDI::Product::productAverageMultiplicityViaIntid | ( | int | a_intid, |
| double | a_projectileEnergy ) const |
Returns the energy dependent multiplicity for outgoing particle with pops intid a_intid. The returned value may not be an integer. Energy dependent multiplicities mainly occurs for photons and fission neutrons.
| a_intid | [in] The PoPs intid of the requested particle. |
| a_projectileEnergy | [in] The energy of the projectile. |
Definition at line 264 of file MCGIDI_product.cc.
|
inline |
This method adds sampled products to a_products. In particular, the product is a capture reaction primary gamma what has a finalState attribute. This gamma is added as well as the gammas from the gamma cascade.
| a_protare | [in] The Protare this Reaction belongs to. |
| a_projectileEnergy | [in] The energy of the projectile. |
| a_input | [in] Sample options requested by user. |
| a_rng | [in] The random number generator function that returns a double in the range [0, 1.0). |
| a_products | [in] The object to add all sampled products to. |
Definition at line 2574 of file MCGIDI_headerSource.hpp.
|
inline |
This method adds sampled products to a_products.
| a_protare | [in] The Protare this Reaction belongs to. |
| a_projectileEnergy | [in] The energy of the projectile. |
| a_input | [in] Sample options requested by user. |
| a_rng | [in] The random number generator function that returns a double in the range [0, 1.0). |
| a_products | [in] The object to add all sampled products to. |
Definition at line 2531 of file MCGIDI_headerSource.hpp.
| LUPI_HOST_DEVICE void MCGIDI::Product::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 287 of file MCGIDI_product.cc.
| LUPI_HOST void MCGIDI::Product::setModelDBRC_data | ( | Sampling::Upscatter::ModelDBRC_data * | a_modelDBRC_data | ) |
This method calls the **setModelDBRC_data* method on the distribution of this with a_modelDBRC_data.
| a_modelDBRC_data | [in] The instance storing data needed to treat the DRRC upscatter mode. |
Definition at line 194 of file MCGIDI_product.cc.
|
inline |
Definition at line 1216 of file MCGIDI.hpp.
Referenced by MCGIDI::OutputChannel::OutputChannel().
| LUPI_HOST void MCGIDI::Product::setUserParticleIndex | ( | int | a_particleIndex, |
| int | a_userParticleIndex ) |
Updates the m_userParticleIndex to a_userParticleIndex for all particles with PoPs index a_particleIndex.
| a_particleIndex | [in] The PoPs index of the particle whose user index is to be set. |
| a_userParticleIndex | [in] The particle index specified by the user. |
Definition at line 165 of file MCGIDI_product.cc.
| LUPI_HOST void MCGIDI::Product::setUserParticleIndexViaIntid | ( | int | a_particleIntid, |
| int | a_userParticleIndex ) |
Updates the m_userParticleIndex to a_userParticleIndex for all particles with PoPs intid a_particleIntid.
| a_particleIntid | [in] The PoPs intid of the particle whose user index is to be set. |
| a_userParticleIndex | [in] The particle index specified by the user. |
Definition at line 180 of file MCGIDI_product.cc.
|
inline |
Returns the value of the m_twoBodyOrder.
Definition at line 1210 of file MCGIDI.hpp.
Referenced by serialize().
|
inline |
Returns the value of the m_userParticleIndex.
Definition at line 1202 of file MCGIDI.hpp.
Referenced by sampleProducts().