BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
IDistribution2DSampler.h
Go to the documentation of this file.
1 // ************************************************************************** //
2 //
3 // BornAgain: simulate and fit scattering at grazing incidence
4 //
5 //! @file Sample/Correlations/IDistribution2DSampler.h
6 //! @brief Defines interface class IFTDistribution1D, and children thereof
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************** //
14 
15 #ifndef BORNAGAIN_CORE_CORRELATIONS_IDISTRIBUTION2DSAMPLER_H
16 #define BORNAGAIN_CORE_CORRELATIONS_IDISTRIBUTION2DSAMPLER_H
17 
18 #include <utility>
19 
21 {
22 public:
25 
26  virtual std::pair<double, double> randomSample() const = 0;
27 };
28 
30 {
31 public:
32  Distribution2DCauchySampler(double omega_x, double omega_y)
33  : m_omega_x(omega_x), m_omega_y(omega_y)
34  {
35  }
36  std::pair<double, double> randomSample() const final;
37 
38 private:
40 };
41 
43 {
44 public:
45  Distribution2DGaussSampler(double omega_x, double omega_y)
46  : m_omega_x(omega_x), m_omega_y(omega_y)
47  {
48  }
49  std::pair<double, double> randomSample() const final;
50 
51 private:
53 };
54 
56 {
57 public:
58  Distribution2DGateSampler(double omega_x, double omega_y)
59  : m_omega_x(omega_x), m_omega_y(omega_y)
60  {
61  }
62  std::pair<double, double> randomSample() const final;
63 
64 private:
66 };
67 
69 {
70 public:
71  Distribution2DConeSampler(double omega_x, double omega_y)
72  : m_omega_x(omega_x), m_omega_y(omega_y)
73  {
74  }
75  std::pair<double, double> randomSample() const final;
76 
77 private:
79 };
80 
81 #endif // BORNAGAIN_CORE_CORRELATIONS_IDISTRIBUTION2DSAMPLER_H
Distribution2DCauchySampler(double omega_x, double omega_y)
std::pair< double, double > randomSample() const final
Distribution2DConeSampler(double omega_x, double omega_y)
Distribution2DGateSampler(double omega_x, double omega_y)
Distribution2DGaussSampler(double omega_x, double omega_y)
virtual ~IDistribution2DSampler()
virtual std::pair< double, double > randomSample() const =0