BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
FormFactorGauss.h
Go to the documentation of this file.
1 // ************************************************************************** //
2 //
3 // BornAgain: simulate and fit scattering at grazing incidence
4 //
5 //! @file Sample/SoftParticle/FormFactorGauss.h
6 //! @brief Defines class FormFactorGaussSphere.
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_SOFTPARTICLE_FORMFACTORGAUSS_H
16 #define BORNAGAIN_CORE_SOFTPARTICLE_FORMFACTORGAUSS_H
17 
19 
20 //! The form factor of a Gaussian sphere.
21 //! @ingroup softParticle
22 
24 {
25 public:
26  FormFactorGaussSphere(const std::vector<double> P);
27  FormFactorGaussSphere(double mean_radius);
28 
29  FormFactorGaussSphere* clone() const override final
30  {
32  }
33  void accept(INodeVisitor* visitor) const override final { visitor->visit(this); }
34 
35  double getMeanRadius() const { return m_mean_radius; }
36 
37  double radialExtension() const override final { return m_mean_radius; }
38 
39  complex_t evaluate_for_q(cvector_t q) const override final;
40 
41 protected:
42  void onChange() override final{};
43 
44 private:
45  const double& m_mean_radius;
46  void initialize();
47 };
48 
49 #endif // BORNAGAIN_CORE_SOFTPARTICLE_FORMFACTORGAUSS_H
std::complex< double > complex_t
Definition: Complex.h:20
Defines pure virtual interface class IFormFactorBorn.
The form factor of a Gaussian sphere.
double getMeanRadius() const
FormFactorGaussSphere * clone() const override final
Returns a clone of this ISample object.
FormFactorGaussSphere(const std::vector< double > P)
void accept(INodeVisitor *visitor) const override final
Calls the INodeVisitor's visit method.
complex_t evaluate_for_q(cvector_t q) const override final
Returns scattering amplitude for complex scattering wavevector q=k_i-k_f.
double radialExtension() const override final
Returns the (approximate in some cases) radial size of the particle of this form factor's shape.
void onChange() override final
Action to be taken in inherited class when a parameter has changed.
const double & m_mean_radius
Pure virtual base class for Born form factors.
Visitor interface to visit ISample objects.
Definition: INodeVisitor.h:149