Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
MCGIDI::Probabilities::ProbabilityBase2d Class Reference

#include <MCGIDI_functions.hpp>

Inheritance diagram for MCGIDI::Probabilities::ProbabilityBase2d:

Public Member Functions

LUPI_HOST_DEVICE ProbabilityBase2d ()
LUPI_HOST ProbabilityBase2d (GIDI::Functions::FunctionForm const &a_probabilty)
LUPI_HOST ProbabilityBase2d (GIDI::Functions::FunctionForm const &a_probabilty, Vector< double > const &a_Xs)
LUPI_HOST_DEVICE ~ProbabilityBase2d ()
LUPI_HOST_DEVICE ProbabilityBase2dType type () const
LUPI_HOST_DEVICE String typeString () const
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION double evaluate (double a_x2, double a_x1) const MCGIDI_TRUE_VIRTUAL
template<typename RNG>
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION double sample (double a_x2, double a_rngValue, RNG &&a_rng) const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE void serialize (LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
template<typename RNG>
LUPI_HOST_DEVICE double sample (double a_x2, double a_rngValue, RNG &&a_rng) const
Public Member Functions inherited from MCGIDI::Probabilities::ProbabilityBase
LUPI_HOST_DEVICE ProbabilityBase ()
LUPI_HOST ProbabilityBase (GIDI::Functions::FunctionForm const &a_probabilty)
LUPI_HOST ProbabilityBase (GIDI::Functions::FunctionForm const &a_probabilty, Vector< double > const &a_Xs)
LUPI_HOST_DEVICE ~ProbabilityBase ()
LUPI_HOST_DEVICE void serialize (LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
Public Member Functions inherited from MCGIDI::Functions::FunctionBase
LUPI_HOST_DEVICE FunctionBase ()
LUPI_HOST FunctionBase (GIDI::Functions::FunctionForm const &a_function)
LUPI_HOST_DEVICE FunctionBase (int a_dimension, double a_domainMin, double a_domainMax, Interpolation a_interpolation, double a_outerDomainValue=0)
virtual LUPI_HOST_DEVICE ~FunctionBase ()=0
LUPI_HOST_DEVICE Interpolation interpolation () const
LUPI_HOST_DEVICE double domainMin () const
LUPI_HOST_DEVICE double domainMax () const
LUPI_HOST_DEVICE double outerDomainValue () const
LUPI_HOST_DEVICE void serialize (LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)

Protected Attributes

ProbabilityBase2dType m_type
Protected Attributes inherited from MCGIDI::Probabilities::ProbabilityBase
Vector< double > m_Xs

Detailed Description

Definition at line 395 of file MCGIDI_functions.hpp.

Constructor & Destructor Documentation

◆ ProbabilityBase2d() [1/3]

◆ ProbabilityBase2d() [2/3]

LUPI_HOST MCGIDI::Probabilities::ProbabilityBase2d::ProbabilityBase2d ( GIDI::Functions::FunctionForm const & a_probabilty)

Definition at line 1399 of file MCGIDI_functions.cc.

1399 :
1400 ProbabilityBase( a_probability ),
1402
1403}

◆ ProbabilityBase2d() [3/3]

LUPI_HOST MCGIDI::Probabilities::ProbabilityBase2d::ProbabilityBase2d ( GIDI::Functions::FunctionForm const & a_probabilty,
Vector< double > const & a_Xs )

Definition at line 1407 of file MCGIDI_functions.cc.

1407 :
1408 ProbabilityBase( a_probability, a_Xs ),
1410
1411}

◆ ~ProbabilityBase2d()

LUPI_HOST_DEVICE MCGIDI::Probabilities::ProbabilityBase2d::~ProbabilityBase2d ( )

Definition at line 1416 of file MCGIDI_functions.cc.

1416 {
1417
1418}

Member Function Documentation

◆ evaluate()

LUPI_HOST_DEVICE double MCGIDI::Probabilities::ProbabilityBase2d::evaluate ( double a_x2,
double a_x1 ) const

This method returns the value of pdf(x1|x2) at x1 of a_x1 and x2 of a_x2.

Parameters
a_x2[in] The value of x2.
a_x1[in] The value of x1.

Definition at line 1482 of file MCGIDI_functions.cc.

1482 {
1483
1484 double value = 0.0;
1485
1486 switch( type( ) ) {
1488 break;
1490 value = static_cast<WeightedFunctionals2d const *>( this )->evaluate( a_x2, a_x1 );
1491 break;
1492 default:
1493 value = static_cast<ProbabilityBase2d_d1 const *>( this )->evaluate( a_x2, a_x1 );
1494 break;
1495 }
1496
1497 return( value );
1498}
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION double evaluate(double a_x2, double a_x1) const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE ProbabilityBase2dType type() const

Referenced by evaluate().

◆ sample() [1/2]

template<typename RNG>
LUPI_HOST_DEVICE double MCGIDI::Probabilities::ProbabilityBase2d::sample ( double a_x2,
double a_rngValue,
RNG && a_rng ) const

This method samples an x1 from a pdf(x1|x2) given x2 and the cumulative value of the pdf as a_rngValue.

Parameters
a_x2[in] The value of x2.
a_rngValue[in] The value of the cumulative used to determine the x1 value.
a_rng[in] The random number generator function that returns a double in the range [0, 1.0).

Definition at line 1703 of file MCGIDI_headerSource.hpp.

1703 {
1704
1705 double value = 0.0;
1706
1707 switch( type( ) ) {
1709 break;
1711 value = static_cast<WeightedFunctionals2d const *>( this )->sample( a_x2, a_rngValue, a_rng );
1712 break;
1713 default:
1714 value = static_cast<ProbabilityBase2d_d1 const *>( this )->sample( a_x2, a_rngValue, a_rng );
1715 break;
1716 }
1717
1718 return( value );
1719}
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION double sample(double a_x2, double a_rngValue, RNG &&a_rng) const MCGIDI_TRUE_VIRTUAL

◆ sample() [2/2]

template<typename RNG>
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION double MCGIDI::Probabilities::ProbabilityBase2d::sample ( double a_x2,
double a_rngValue,
RNG && a_rng ) const

Referenced by sample().

◆ serialize()

LUPI_HOST_DEVICE void MCGIDI::Probabilities::ProbabilityBase2d::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.

Parameters
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 1508 of file MCGIDI_functions.cc.

1508 {
1509
1510 ProbabilityBase::serialize( a_buffer, a_mode );
1511}
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)

Referenced by MCGIDI::Probabilities::DiscreteGamma2d::serialize(), MCGIDI::Probabilities::Evaporation2d::serialize(), MCGIDI::Probabilities::GeneralEvaporation2d::serialize(), MCGIDI::Probabilities::Isotropic2d::serialize(), MCGIDI::Probabilities::NBodyPhaseSpace2d::serialize(), MCGIDI::Probabilities::PrimaryGamma2d::serialize(), MCGIDI::Probabilities::Recoil2d::serialize(), MCGIDI::Probabilities::Regions2d::serialize(), MCGIDI::Probabilities::SimpleMaxwellianFission2d::serialize(), MCGIDI::Probabilities::Watt2d::serialize(), MCGIDI::Probabilities::WeightedFunctionals2d::serialize(), and MCGIDI::Probabilities::XYs2d::serialize().

◆ type()

◆ typeString()

LUPI_HOST_DEVICE String MCGIDI::Probabilities::ProbabilityBase2d::typeString ( ) const

Returns a String representation of the ProbabilityBase2d type of this.

Returns
A String instance.

Definition at line 1426 of file MCGIDI_functions.cc.

1426 {
1427
1428 String typeStr( "ProbabilityBase2d::" );
1429
1430 switch( m_type ) {
1432 typeStr += "none";
1433 break;
1435 typeStr += "XYs";
1436 break;
1438 typeStr += "regions";
1439 break;
1441 typeStr += "isotropic";
1442 break;
1444 typeStr += "discreteGamma";
1445 break;
1447 typeStr += "primaryGamma";
1448 break;
1450 typeStr += "recoil";
1451 break;
1453 typeStr += "NBodyPhaseSpace";
1454 break;
1456 typeStr += "evaporation";
1457 break;
1459 typeStr += "generalEvaporation";
1460 break;
1462 typeStr += "simpleMaxwellianFission";
1463 break;
1465 typeStr += "Watt";
1466 break;
1468 typeStr += "weightedFunctionals";
1469 break;
1470 }
1471
1472 return( typeStr );
1473}

Member Data Documentation

◆ m_type

ProbabilityBase2dType MCGIDI::Probabilities::ProbabilityBase2d::m_type
protected

Definition at line 398 of file MCGIDI_functions.hpp.

Referenced by MCGIDI::Probabilities::DiscreteGamma2d::DiscreteGamma2d(), MCGIDI::Probabilities::DiscreteGamma2d::DiscreteGamma2d(), MCGIDI::Probabilities::Evaporation2d::Evaporation2d(), MCGIDI::Probabilities::Evaporation2d::Evaporation2d(), MCGIDI::Probabilities::GeneralEvaporation2d::GeneralEvaporation2d(), MCGIDI::Probabilities::GeneralEvaporation2d::GeneralEvaporation2d(), MCGIDI::Probabilities::Isotropic2d::Isotropic2d(), MCGIDI::Probabilities::Isotropic2d::Isotropic2d(), MCGIDI::Probabilities::NBodyPhaseSpace2d::NBodyPhaseSpace2d(), MCGIDI::Probabilities::NBodyPhaseSpace2d::NBodyPhaseSpace2d(), MCGIDI::Probabilities::PrimaryGamma2d::PrimaryGamma2d(), MCGIDI::Probabilities::PrimaryGamma2d::PrimaryGamma2d(), ProbabilityBase2d(), ProbabilityBase2d(), ProbabilityBase2d(), MCGIDI::Probabilities::Recoil2d::Recoil2d(), MCGIDI::Probabilities::Recoil2d::Recoil2d(), MCGIDI::Probabilities::Regions2d::Regions2d(), MCGIDI::Probabilities::Regions2d::Regions2d(), MCGIDI::Probabilities::SimpleMaxwellianFission2d::SimpleMaxwellianFission2d(), MCGIDI::Probabilities::SimpleMaxwellianFission2d::SimpleMaxwellianFission2d(), type(), typeString(), MCGIDI::Probabilities::Watt2d::Watt2d(), MCGIDI::Probabilities::Watt2d::Watt2d(), MCGIDI::Probabilities::WeightedFunctionals2d::WeightedFunctionals2d(), MCGIDI::Probabilities::WeightedFunctionals2d::WeightedFunctionals2d(), MCGIDI::Probabilities::XYs2d::XYs2d(), and MCGIDI::Probabilities::XYs2d::XYs2d().


The documentation for this class was generated from the following files: