BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
ParticleDistributionsBuilder.h
Go to the documentation of this file.
1 // ************************************************************************** //
2 //
3 // BornAgain: simulate and fit scattering at grazing incidence
4 //
5 //! @file Sample/StandardSamples/ParticleDistributionsBuilder.h
6 //! @brief Defines classes of with different types of particle distributions.
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_STANDARDSAMPLES_PARTICLEDISTRIBUTIONSBUILDER_H
16 #define BORNAGAIN_CORE_STANDARDSAMPLES_PARTICLEDISTRIBUTIONSBUILDER_H
17 
19 
20 //! Cylinders in BA with size distributions (IsGISAXS example #3, part II).
21 //! @ingroup standard_samples
22 
24 {
25 public:
26  MultiLayer* buildSample() const;
27 };
28 
29 //! Builds mixture of cylinder particles with different size distribution (IsGISAXS example #2)
30 //! @ingroup standard_samples
31 
33 {
34 public:
36  MultiLayer* buildSample() const;
37 
38 private:
39  double m_radius1;
40  double m_radius2;
41  double m_height1;
42  double m_height2;
45 };
46 
47 //! Rotated Pyramids with the distribution applied to the rotation angle.
48 //! @ingroup standard_samples
49 
51 {
52 public:
54  MultiLayer* buildSample() const;
55 
56 private:
57  double m_length;
58  double m_height;
59  double m_alpha;
60  double m_zangle;
61 };
62 
63 //! Spherical particles with the distribution applied to the radius and RealLimits defined.
64 //! @ingroup standard_samples
65 
67 {
68 public:
70  MultiLayer* buildSample() const;
71 };
72 
73 //! Cones with the distribution applied to the angle and RealLimits defined.
74 //! @ingroup standard_samples
75 
77 {
78 public:
80  MultiLayer* buildSample() const;
81 };
82 
83 //! Distribution of boxes with main parameter and two linked parameters.
84 //! @ingroup standard_samples
85 
87 {
88 public:
90  MultiLayer* buildSample() const;
91 };
92 
93 #endif // BORNAGAIN_CORE_STANDARDSAMPLES_PARTICLEDISTRIBUTIONSBUILDER_H
Defines pure virtual base class ISampleBuilder.
Cones with the distribution applied to the angle and RealLimits defined.
Cylinders in BA with size distributions (IsGISAXS example #3, part II).
Interface to the class capable to build samples to simulate.
Distribution of boxes with main parameter and two linked parameters.
Our sample model: a stack of layers one below the other.
Definition: MultiLayer.h:42
Rotated Pyramids with the distribution applied to the rotation angle.
Spherical particles with the distribution applied to the radius and RealLimits defined.
Builds mixture of cylinder particles with different size distribution (IsGISAXS example #2)