10#ifndef MCGIDI_distributions_hpp_included
11#define MCGIDI_distributions_hpp_included 1
33 double m_projectileMass;
52 template <
typename RNG>
54 template <
typename RNG>
69 double m_residualMass;
71 double m_twoBodyThreshold;
76 template <
typename RNG>
87 template <
typename RNG>
89 template <
typename RNG>
91 RNG && a_rng,
double &a_energy_out )
const ;
115 template <
typename RNG>
117 template <
typename RNG>
119 RNG && a_rng,
double &a_energy_out )
const ;
131 int m_initialStateIndex;
138 template <
typename RNG>
140 template <
typename RNG>
142 RNG && a_rng,
double &a_energy_out )
const ;
164 template <
typename RNG>
166 template <
typename RNG>
168 RNG && a_rng,
double &a_energy_out )
const ;
190 template <
typename RNG>
192 template <
typename RNG>
194 RNG && a_rng,
double &a_energy_out )
const ;
206 double m_energyToMeVFactor;
207 double m_eb_massFactor;
222 template <
typename RNG>
224 template <
typename RNG>
226 RNG && a_rng,
double &a_energy_out )
const ;
240 bool m_anomalousDataPresent;
264 template <
typename RNG>
266 template <
typename RNG>
268 RNG && a_rng,
double &a_energy_out )
const ;
293 template <
typename RNG>
295 template <
typename RNG>
297 RNG && a_rng,
double &a_energy_out )
const ;
317 double m_bindingEnergy;
326 template <
typename RNG>
328 template <
typename RNG>
330 RNG && a_rng,
double &a_energy_out )
const ;
346 template <
typename RNG>
348 template <
typename RNG>
350 RNG && a_rng,
double &a_energy_out )
const ;
369 template <
typename RNG>
371 template <
typename RNG>
373 RNG && a_rng,
double &a_energy_out )
const ;
396 template <
typename RNG>
398 template <
typename RNG>
400 RNG && a_rng,
double &a_energy_out )
const ;
412 double m_temperatureToMeV_K;
421 template <
typename RNG>
423 template <
typename RNG>
425 RNG && a_rng,
double &a_energy_out )
const ;
444 template <
typename RNG>
446 template <
typename RNG>
448 RNG && a_rng,
double &a_energy_out )
const ;
#define MCGIDI_VIRTUAL_FUNCTION
#define MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE Probabilities::ProbabilityBase3d * energyGivenAngular() const
LUPI_HOST_DEVICE ~AngularEnergyMC()
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 AngularEnergyMC()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE void sample(double a_X, Sampling::Input &a_input, RNG &&a_rng) const
LUPI_HOST_DEVICE Probabilities::ProbabilityBase2d_d1 * angular() const
LUPI_HOST_DEVICE void sample(double a_X, Sampling::Input &a_input, RNG &&a_rng) const
LUPI_HOST_DEVICE double residualMass() const
LUPI_HOST_DEVICE AngularTwoBody()
LUPI_HOST_DEVICE double Q() const
LUPI_HOST_DEVICE bool Upscatter() const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
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 void setModelDBRC_data2(Sampling::Upscatter::ModelDBRC_data *a_modelDBRC_data)
LUPI_HOST_DEVICE Probabilities::ProbabilityBase2d_d1 * angular() const
LUPI_HOST_DEVICE ~AngularTwoBody()
LUPI_HOST_DEVICE void sample(double a_X, Sampling::Input &a_input, RNG &&a_rng) const
LUPI_HOST_DEVICE ~Branching3d()
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 Branching3d()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE CoherentElasticTNSL()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
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 ~CoherentElasticTNSL()
LUPI_HOST_DEVICE void sample(double a_energy, Sampling::Input &a_input, RNG &&a_rng) const
LUPI_HOST_DEVICE CoherentPhotoAtomicScattering()
LUPI_HOST_DEVICE double evaluate(double a_energyIn, double a_mu) const
LUPI_HOST_DEVICE ~CoherentPhotoAtomicScattering()
LUPI_HOST_DEVICE void sample(double a_X, Sampling::Input &a_input, RNG &&a_rng) const
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)
LUPI_HOST_DEVICE double evaluateFormFactor(double a_energyIn, double a_mu) const
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)
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION ~Distribution() MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE double targetMass() const
LUPI_HOST void setModelDBRC_data(Sampling::Upscatter::ModelDBRC_data *a_modelDBRC_data)
LUPI_HOST_DEVICE Distribution()
LUPI_HOST_DEVICE Type type() const
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION void sample(double a_X, Sampling::Input &a_input, RNG &&a_rng) const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE GIDI::Frame productFrame() const
LUPI_HOST_DEVICE double productMass() const
LUPI_HOST_DEVICE double projectileMass() const
LUPI_HOST_DEVICE Probabilities::ProbabilityBase2d_d1 * energy() const
LUPI_HOST_DEVICE Probabilities::ProbabilityBase3d * angularGivenEnergy() const
LUPI_HOST_DEVICE void sample(double a_X, Sampling::Input &a_input, RNG &&a_rng) const
LUPI_HOST_DEVICE EnergyAngularMC()
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 ~EnergyAngularMC()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE ~IncoherentBoundToFreePhotoAtomicScattering()
LUPI_HOST_DEVICE void sample(double a_X, Sampling::Input &a_input, RNG &&a_rng) const
LUPI_HOST_DEVICE double energyRatio(double a_energyIn, double a_mu) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double evaluateKleinNishina(double a_energyIn, double a_mu) const
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 IncoherentBoundToFreePhotoAtomicScattering()
LUPI_HOST_DEVICE double evaluateOccupationNumber(double a_X, double a_mu) const
Functions::Function1d const * DebyeWallerIntegral() const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
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 ~IncoherentElasticTNSL()
Functions::Function1d * DebyeWallerIntegral()
LUPI_HOST_DEVICE IncoherentElasticTNSL()
LUPI_HOST_DEVICE void sample(double a_energy, Sampling::Input &a_input, RNG &&a_rng) const
LUPI_HOST_DEVICE ~IncoherentPhotoAtomicScatteringElectron()
LUPI_HOST_DEVICE IncoherentPhotoAtomicScatteringElectron()
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)
LUPI_HOST_DEVICE void sample(double a_energy, Sampling::Input &a_input, RNG &&a_rng) const
LUPI_HOST_DEVICE void sample(double a_X, Sampling::Input &a_input, RNG &&a_rng) const
LUPI_HOST_DEVICE double evaluateKleinNishina(double a_energyIn, double a_mu) const
LUPI_HOST_DEVICE ~IncoherentPhotoAtomicScattering()
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)
LUPI_HOST_DEVICE double energyRatio(double a_energyIn, double a_mu) const
LUPI_HOST_DEVICE double evaluateScatteringFactor(double a_X) const
LUPI_HOST_DEVICE IncoherentPhotoAtomicScattering()
LUPI_HOST_DEVICE Functions::Function2d * a() const
LUPI_HOST_DEVICE double eb_massFactor() const
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 double energyToMeVFactor() const
LUPI_HOST_DEVICE double evaluate(double E_in_lab, double E_out, double mu)
LUPI_HOST_DEVICE KalbachMann()
LUPI_HOST_DEVICE Functions::Function2d * r() const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE Probabilities::ProbabilityBase2d_d1 * f() const
LUPI_HOST_DEVICE void sample(double a_X, Sampling::Input &a_input, RNG &&a_rng) const
LUPI_HOST_DEVICE ~KalbachMann()
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 sample(double a_X, Sampling::Input &a_input, RNG &&a_rng) const
LUPI_HOST_DEVICE ~PairProductionGamma()
LUPI_HOST_DEVICE PairProductionGamma()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE Unspecified()
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)
LUPI_HOST_DEVICE void sample(double a_X, Sampling::Input &a_input, RNG &&a_rng) const
LUPI_HOST_DEVICE ~Unspecified()
LUPI_HOST_DEVICE Type DistributionType(Distribution const *a_distribution)
@ coherentPhotoAtomicScattering
@ incoherentPhotoAtomicScattering
@ incoherentPhotoAtomicScatteringElectron
@ incoherentBoundToFreePhotoAtomicScattering
LUPI_HOST Distribution * parseGIDI(GIDI::Suite const &a_distribution, SetupInfo &a_setupInfo, Transporting::MC const &a_settings)
Simple C++ string class, useful as replacement for std::string if this cannot be used,...