BornAgain  1.19.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 reflection and scattering
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 #ifdef SWIG
16 #error no need to expose this header to Swig
17 #endif
18 
19 #ifndef USER_API
20 #ifndef BORNAGAIN_SAMPLE_STANDARDSAMPLES_PARTICLEDISTRIBUTIONSBUILDER_H
21 #define BORNAGAIN_SAMPLE_STANDARDSAMPLES_PARTICLEDISTRIBUTIONSBUILDER_H
22 
24 
25 //! Cylinders in BA with size distributions (IsGISAXS example #3, part II).
26 //! @ingroup standard_samples
27 
29 public:
30  MultiLayer* buildSample() const;
31 };
32 
33 //! Builds mixture of cylinder particles with different size distribution (IsGISAXS example #2)
34 //! @ingroup standard_samples
35 
37 public:
39  MultiLayer* buildSample() const;
40 
41 private:
42  double m_radius1;
43  double m_radius2;
44  double m_height1;
45  double m_height2;
48 };
49 
50 //! Rotated Pyramids with the distribution applied to the rotation angle.
51 //! @ingroup standard_samples
52 
54 public:
56  MultiLayer* buildSample() const;
57 
58 private:
59  double m_length;
60  double m_height;
61  double m_alpha;
62  double m_zangle;
63 };
64 
65 //! Spherical particles with the distribution applied to the radius and RealLimits defined.
66 //! @ingroup standard_samples
67 
69 public:
71  MultiLayer* buildSample() const;
72 };
73 
74 //! Cones with the distribution applied to the angle and RealLimits defined.
75 //! @ingroup standard_samples
76 
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 public:
89  MultiLayer* buildSample() const;
90 };
91 
92 #endif // BORNAGAIN_SAMPLE_STANDARDSAMPLES_PARTICLEDISTRIBUTIONSBUILDER_H
93 #endif // USER_API
Defines interface 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:41
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)