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

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 69 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 168 of file IDistribution2DSampler.cpp.

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

References m_omega_x, and m_omega_y.

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: