|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
#include <MCGIDI.hpp>
Public Member Functions | |
| LUPI_HOST_DEVICE | Reaction () |
| LUPI_HOST | Reaction (GIDI::Reaction const &a_reaction, SetupInfo &a_setupInfo, Transporting::MC const &a_settings, GIDI::Transporting::Particles const &a_particles, GIDI::Styles::TemperatureInfos const &a_temperatureInfos) |
| LUPI_HOST_DEVICE | ~Reaction () |
| LUPI_HOST_DEVICE void | updateProtareSingleInfo (ProtareSingle *a_protareSingle, std::size_t a_reactionIndex) |
| LUPI_HOST_DEVICE ProtareSingle const * | protareSingle () const |
| LUPI_HOST_DEVICE std::size_t | reactionIndex () const |
| LUPI_HOST_DEVICE std::size_t | GIDI_reactionIndex () const |
| LUPI_HOST_DEVICE String const & | label () const |
| LUPI_HOST_DEVICE int | ENDF_MT () const |
| LUPI_HOST_DEVICE int | ENDL_C () const |
| LUPI_HOST_DEVICE int | ENDL_S () const |
| LUPI_HOST_DEVICE int | initialStateIndex () const |
| LUPI_HOST_DEVICE double | finalQ (double a_energy) const |
| LUPI_HOST_DEVICE bool | hasFission () const |
| LUPI_HOST_DEVICE double | projectileMass () const |
| LUPI_HOST_DEVICE double | targetMass () const |
| LUPI_HOST_DEVICE double | crossSectionThreshold () const |
| LUPI_HOST_DEVICE double | twoBodyThreshold () const |
| LUPI_HOST_DEVICE double | crossSection (URR_protareInfos const &a_URR_protareInfos, std::size_t a_hashIndex, double a_temperature, double a_energy) const |
| LUPI_HOST_DEVICE double | crossSection (URR_protareInfos const &a_URR_protareInfos, double a_temperature, double a_energy) const |
| LUPI_HOST GIDI::Functions::XYs1d | crossSectionAsGIDI_XYs1d (double a_temperature) const |
| LUPI_HOST_DEVICE Vector< int > const & | productIntids () const |
| LUPI_HOST_DEVICE Vector< int > const & | productIndices () const |
| LUPI_HOST_DEVICE Vector< int > const & | userProductIndices () const |
| LUPI_HOST_DEVICE std::size_t | numberOfProducts () const |
| LUPI_HOST_DEVICE Product const * | product (std::size_t a_index) const |
| LUPI_HOST_DEVICE int | productMultiplicity (int a_index) const |
| LUPI_HOST_DEVICE int | productMultiplicityViaIntid (int a_intid) const |
| LUPI_HOST_DEVICE int | productMultiplicities (int a_index) const |
| 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 Vector< int > const & | productIntidsTransportable () const |
| LUPI_HOST_DEVICE Vector< int > const & | productIndicesTransportable () const |
| LUPI_HOST_DEVICE Vector< int > const & | userProductIndicesTransportable () const |
| LUPI_HOST_DEVICE Vector< std::size_t > | associatedOrphanProductIndices () const |
| LUPI_HOST void | addOrphanProductToProductList (std::vector< Product * > &a_associatedOrphanProducts) const |
| LUPI_HOST_DEVICE void | addOrphanProductToProductList (Vector< Product * > &a_associatedOrphanProducts) const |
| LUPI_HOST_DEVICE void | addOrphanProductToProductList (Vector< Reaction * > &a_orphanProducts) |
| LUPI_HOST void | setOrphanProductData (std::vector< std::size_t > const &a_associatedOrphanProductIndcies, std::vector< Product * > const &a_associatedOrphanProducts) |
| 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) |
| template<typename RNG, typename PUSHBACK> | |
| LUPI_HOST_DEVICE void | sampleProducts (Protare const *a_protare, Sampling::Input &a_input, RNG &&a_rng, PUSHBACK &&a_push_back, Sampling::ProductHandler &a_products, bool a_checkOrphanProducts=true) const |
| template<typename RNG> | |
| LUPI_HOST_DEVICE double | angleBiasing (int a_pid, double a_temperature, double a_energy_in, double a_mu_lab, double &a_energy_out, RNG &&a_rng, double *a_cumulative_weight=nullptr, bool a_checkOrphanProducts=true) const |
| template<typename RNG> | |
| LUPI_HOST_DEVICE double | angleBiasingViaIntid (int a_intid, double a_temperature, double a_energy_in, double a_mu_lab, double &a_energy_out, RNG &&a_rng, double *a_cumulative_weight=nullptr, bool a_checkOrphanProducts=true) const |
| LUPI_HOST_DEVICE void | serialize (LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode) |
Static Public Member Functions | |
| template<typename RNG, typename PUSHBACK> | |
| static LUPI_HOST_DEVICE void | sampleNullProducts (Protare const &a_protare, double a_projectileEnergy, Sampling::Input &a_input, RNG &&a_rng, PUSHBACK &&a_push_back, Sampling::ProductHandler &a_products) |
Class representing a GNDS <reaction> node with only data needed for Monte Carlo transport.
Definition at line 1335 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE MCGIDI::Reaction::Reaction | ( | ) |
Default constructor used when broadcasting a Reaction as needed by MPI or GPUs.
Definition at line 22 of file MCGIDI_reaction.cc.
Referenced by addOrphanProductToProductList().
| LUPI_HOST MCGIDI::Reaction::Reaction | ( | GIDI::Reaction const & | a_reaction, |
| SetupInfo & | a_setupInfo, | ||
| Transporting::MC const & | a_settings, | ||
| GIDI::Transporting::Particles const & | a_particles, | ||
| GIDI::Styles::TemperatureInfos const & | a_temperatureInfos ) |
| LUPI_HOST_DEVICE MCGIDI::Reaction::~Reaction | ( | ) |
Definition at line 178 of file MCGIDI_reaction.cc.
| LUPI_HOST void MCGIDI::Reaction::addOrphanProductToProductList | ( | std::vector< Product * > & | a_associatedOrphanProducts | ) | const |
Adds the associated orphan products of an orphan product reaction to a_associatedOrphanProducts.
| a_associatedOrphanProducts | [in] A list where the associated orphan products are added to. |
Definition at line 460 of file MCGIDI_reaction.cc.
Referenced by addOrphanProductToProductList().
| LUPI_HOST_DEVICE void MCGIDI::Reaction::addOrphanProductToProductList | ( | Vector< Product * > & | a_associatedOrphanProducts | ) | const |
Adds the associated orphan products of an orphan product reaction to a_associatedOrphanProducts.
| a_associatedOrphanProducts | [in] A list where the associated orphan products are added to. |
Definition at line 477 of file MCGIDI_reaction.cc.
| LUPI_HOST_DEVICE void MCGIDI::Reaction::addOrphanProductToProductList | ( | Vector< Reaction * > & | a_orphanProducts | ) |
Adds the associated orphan products of an orphan product to a_associatedOrphanProducts.
| a_associatedOrphanProducts | [in] A list where the associated orphan products are added to. |
Definition at line 494 of file MCGIDI_reaction.cc.
|
inline |
Returns the weight for a project with energy a_energy_in to cause this reaction to emitted a particle of index a_index 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_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_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 cumulative multiplicity. |
| a_checkOrphanProducts | [in] If true, associated orphan products are also sampled. |
Definition at line 3274 of file MCGIDI_headerSource.hpp.
|
inline |
Returns the weight for a project with energy a_energy_in to cause this reaction 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_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_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 cumulative multiplicity. |
| a_checkOrphanProducts | [in] If true, associated orphan products are also sampled. |
Definition at line 3326 of file MCGIDI_headerSource.hpp.
|
inline |
Returns the value of the m_associatedOrphanProductIndicex member.
Definition at line 1439 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE double MCGIDI::Reaction::crossSection | ( | URR_protareInfos const & | a_URR_protareInfos, |
| double | a_temperature, | ||
| double | a_energy_in ) const |
Returns the reaction's cross section for target temperature a_temperature and projectile energy a_energy_in.
| a_URR_protareInfos | [in] URR information. |
| a_temperature | [in] The temperature of the target. |
| a_energy_in | [in] The energy of the projectile. |
Definition at line 232 of file MCGIDI_reaction.cc.
| LUPI_HOST_DEVICE double MCGIDI::Reaction::crossSection | ( | URR_protareInfos const & | a_URR_protareInfos, |
| std::size_t | a_hashIndex, | ||
| double | a_temperature, | ||
| double | a_energy_in ) const |
Returns the reaction's cross section for target temperature a_temperature and projectile energy a_energy_in.
| a_URR_protareInfos | [in] URR information. |
| a_hashIndex | [in] Specifies the continuous energy or multi-group index. |
| a_temperature | [in] The temperature of the target. |
| a_energy_in | [in] The energy of the projectile. |
Definition at line 219 of file MCGIDI_reaction.cc.
| LUPI_HOST GIDI::Functions::XYs1d MCGIDI::Reaction::crossSectionAsGIDI_XYs1d | ( | double | a_temperature | ) | const |
Returns the reaction's cross section as a pointer to a GIDI::Functions::XYs1d instance.
Definition at line 243 of file MCGIDI_reaction.cc.
|
inline |
Returns the value of the m_crossSectionThreshold.
Definition at line 1411 of file MCGIDI.hpp.
|
inline |
Returns the value of the m_ENDF_MT.
Definition at line 1403 of file MCGIDI.hpp.
|
inline |
Returns the value of the m_ENDL_C.
Definition at line 1404 of file MCGIDI.hpp.
|
inline |
Returns the value of the m_ENDL_S.
Definition at line 1405 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE double MCGIDI::Reaction::finalQ | ( | double | a_energy | ) | const |
Returns the Q-value for projectile energy a_energy.
| a_URR_protareInfos | [in] URR information. |
| a_hashIndex | [in] Specifies the continuous energy or multi-group index. |
| a_temperature | [in] The temperature of the target. |
| a_energy_in | [in] The energy of the projectile. |
Definition at line 198 of file MCGIDI_reaction.cc.
|
inline |
Returns the value of the m_GIDI_reactionIndex member.
Definition at line 1401 of file MCGIDI.hpp.
|
inline |
Returns the value of the m_hasFission.
Definition at line 1408 of file MCGIDI.hpp.
|
inline |
Returns the value of the m_initialStateIndex member.
Definition at line 1406 of file MCGIDI.hpp.
|
inline |
Returns the value of the m_label.
Definition at line 1402 of file MCGIDI.hpp.
|
inline |
Returns the number of products in the m_products member.
Definition at line 1421 of file MCGIDI.hpp.
|
inline |
Definition at line 1422 of file MCGIDI.hpp.
Referenced by angleBiasing(), angleBiasingViaIntid(), and sampleProducts().
| LUPI_HOST_DEVICE double MCGIDI::Reaction::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 multiplicity 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 297 of file MCGIDI_reaction.cc.
| LUPI_HOST_DEVICE double MCGIDI::Reaction::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 multiplicity 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 339 of file MCGIDI_reaction.cc.
|
inline |
Returns a const reference to the m_productIntids member.
Definition at line 1419 of file MCGIDI.hpp.
|
inline |
Returns a const reference to the m_productIndicesTransportable member.
Definition at line 1432 of file MCGIDI.hpp.
|
inline |
Definition at line 1418 of file MCGIDI.hpp.
|
inline |
Returns a const reference to the m_productIntidsTransportable member.
Definition at line 1430 of file MCGIDI.hpp.
|
inline |
This method is deprecated. Please use productMultiplicity instead.
Definition at line 1425 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE int MCGIDI::Reaction::productMultiplicity | ( | int | a_index | ) | const |
Returns the multiplicity for outgoing particle with pops index a_index. If the multiplicity is energy dependent, the returned value is -1. For energy dependent multiplicities it is better to use the method productAverageMultiplicity.
| a_index | [in] The PoPs index of the requested particle. |
Definition at line 257 of file MCGIDI_reaction.cc.
Referenced by productMultiplicities().
| LUPI_HOST_DEVICE int MCGIDI::Reaction::productMultiplicityViaIntid | ( | int | a_intid | ) | const |
Returns the multiplicity for outgoing particle with pops intid a_intid. If the multiplicity is energy dependent, the returned value is -1. For energy dependent multiplicities it is better to use the method productAverageMultiplicity.
| a_intid | [in] The PoPs intid of the requested particle. |
Definition at line 276 of file MCGIDI_reaction.cc.
|
inline |
Returns the value of the m_projectileMass.
Definition at line 1409 of file MCGIDI.hpp.
|
inline |
Returns the value of the m_protareSingle.
Definition at line 1399 of file MCGIDI.hpp.
Referenced by MCGIDI::Distributions::CoherentPhotoAtomicScattering::angleBiasing(), MCGIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering::angleBiasing(), and MCGIDI::Distributions::IncoherentPhotoAtomicScattering::angleBiasing().
|
inline |
Returns the value of the m_reactionIndex.
Definition at line 1400 of file MCGIDI.hpp.
Referenced by MCGIDI::Distributions::CoherentPhotoAtomicScattering::angleBiasing(), MCGIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering::angleBiasing(), and MCGIDI::Distributions::IncoherentPhotoAtomicScattering::angleBiasing().
|
inlinestatic |
This method adds a null product to a_products. When running in multi-group mode, a sampled reaction may be rejected if the threshold is in the multi-group that the projectile is in. If this happens, only null products should be returned. This type of behavior was need in MCAPM but is probably not needed for MCGIDI.
| 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 3240 of file MCGIDI_headerSource.hpp.
|
inline |
This method adds sampled products to a_products.
| a_protare | [in] The Protare this Reaction belongs to. |
| 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. |
| a_checkOrphanProducts | [in] If true, associated orphan products are also sampled. |
Definition at line 2966 of file MCGIDI_headerSource.hpp.
| LUPI_HOST_DEVICE void MCGIDI::Reaction::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 530 of file MCGIDI_reaction.cc.
| LUPI_HOST void MCGIDI::Reaction::setModelDBRC_data | ( | Sampling::Upscatter::ModelDBRC_data * | a_modelDBRC_data | ) |
This method calls the **setModelDBRC_data* method on the first product of this with a_modelDBRC_data.
| a_modelDBRC_data | [in] The instance storing data needed to treat the DRRC upscatter mode. |
Definition at line 445 of file MCGIDI_reaction.cc.
| LUPI_HOST void MCGIDI::Reaction::setOrphanProductData | ( | std::vector< std::size_t > const & | a_associatedOrphanProductIndcies, |
| std::vector< Product * > const & | a_associatedOrphanProducts ) |
Adds the contents of a_associatedOrphanProductIndcies and a_associatedOrphanProducts to this instance.
| a_associatedOrphanProductIndcies | [in] The list of indices of the orphanProduct reaction that make up the product in a_associatedOrphanProducts. |
| a_associatedOrphanProducts | [in] The list of pointers to the associated orphan products. |
Definition at line 510 of file MCGIDI_reaction.cc.
| LUPI_HOST void MCGIDI::Reaction::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 378 of file MCGIDI_reaction.cc.
| LUPI_HOST void MCGIDI::Reaction::setUserParticleIndexViaIntid | ( | int | a_particleIntid, |
| int | a_userParticleIndex ) |
Updates the m_userParticleIndex to a_userParticleIndex for all particles with PoPs index a_particleIntid.
| a_particleIndex | [in] The PoPs intid of the particle whose user intid is to be set. |
| a_userParticleIndex | [in] The particle index specified by the user. |
Definition at line 412 of file MCGIDI_reaction.cc.
|
inline |
Returns the value of the m_targetMass.
Definition at line 1410 of file MCGIDI.hpp.
|
inline |
Returns the value of the m_twoBodyThreshold member.
Definition at line 1412 of file MCGIDI.hpp.
|
inline |
Definition at line 1395 of file MCGIDI.hpp.
|
inline |
Returns a const reference to the m_productIndices member.
Definition at line 1420 of file MCGIDI.hpp.
|
inline |
Definition at line 1434 of file MCGIDI.hpp.