BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
Distribution2DConeSampler Class Reference

Description

Definition at line 72 of file IDistribution2DSampler.h.

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 override
 

Private Attributes

double m_omega_x
 
double m_omega_y
 

Constructor & Destructor Documentation

◆ Distribution2DConeSampler()

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

Definition at line 74 of file IDistribution2DSampler.h.

75  : m_omega_x(omega_x)
76  , m_omega_y(omega_y)
77  {
78  }

Member Function Documentation

◆ randomSample()

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

Implements IDistribution2DSampler.

Definition at line 175 of file IDistribution2DSampler.cpp.

176 {
177  // Use Ziggurat sampling instead of Inverse Transform Sampling (ITS requires numerical solver)
178 
179  double phi_max_Cone = 0.5;
180  // rightmost box's right-edge from phi_max_Cone for Ziggurat Sampling
181  double r = 0.5;
182  std::pair<double, double> samples = samplingZiggurat(r, phi_max_Cone, func_phi_Cone);
183  return std::make_pair(m_omega_x * samples.first * std::cos(samples.second),
184  m_omega_y * samples.first * std::sin(samples.second));
185 }

References m_omega_x, and m_omega_y.

Member Data Documentation

◆ m_omega_x

double Distribution2DConeSampler::m_omega_x
private

Definition at line 82 of file IDistribution2DSampler.h.

Referenced by randomSample().

◆ m_omega_y

double Distribution2DConeSampler::m_omega_y
private

Definition at line 82 of file IDistribution2DSampler.h.

Referenced by randomSample().


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