BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
Distribution2DConeSampler Class Reference
Inheritance diagram for Distribution2DConeSampler:
Collaboration diagram for Distribution2DConeSampler:

Public Member Functions

 Distribution2DConeSampler (double omega_x, double omega_y)
 
std::pair< double, double > randomSample () const final
 

Private Attributes

double m_omega_x
 
double m_omega_y
 

Detailed Description

Definition at line 68 of file IDistribution2DSampler.h.

Constructor & Destructor Documentation

◆ Distribution2DConeSampler()

Distribution2DConeSampler::Distribution2DConeSampler ( double  omega_x,
double  omega_y 
)
inline

Definition at line 71 of file IDistribution2DSampler.h.

72  : m_omega_x(omega_x), m_omega_y(omega_y)
73  {
74  }

Member Function Documentation

◆ randomSample()

std::pair< double, double > Distribution2DConeSampler::randomSample ( ) const
finalvirtual

Implements IDistribution2DSampler.

Definition at line 169 of file IDistribution2DSampler.cpp.

170 {
171  // Use Ziggurat sampling instead of Inverse Transform Sampling (ITS requires numerical solver)
172 
173  double phi_max_Cone = 0.5;
174  // rightmost box's right-edge from phi_max_Cone for Ziggurat Sampling
175  double r = 0.5;
176  std::pair<double, double> samples = samplingZiggurat(r, phi_max_Cone, func_phi_Cone);
177  return std::make_pair(m_omega_x * samples.first * std::cos(samples.second),
178  m_omega_y * samples.first * std::sin(samples.second));
179 }
std::pair< double, double > samplingZiggurat(double r, double x_func_max, double(*func_phi)(double))

References anonymous_namespace{IDistribution2DSampler.cpp}::func_phi_Cone(), m_omega_x, m_omega_y, and anonymous_namespace{IDistribution2DSampler.cpp}::samplingZiggurat().

Here is the call graph for this function:

Member Data Documentation

◆ m_omega_x

double Distribution2DConeSampler::m_omega_x
private

Definition at line 78 of file IDistribution2DSampler.h.

Referenced by randomSample().

◆ m_omega_y

double Distribution2DConeSampler::m_omega_y
private

Definition at line 78 of file IDistribution2DSampler.h.

Referenced by randomSample().


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