BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
FormFactorBar.h
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file Sample/HardParticle/FormFactorBar.h
6 //! @brief Defines classes FormFactorBar*.
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_HARDPARTICLE_FORMFACTORBAR_H
21 #define BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORBAR_H
22 
24 
25 //! The form factor of an elongated bar, with Gaussian profile in elongation direction.
26 //! @ingroup legacyGrating
28 public:
29  FormFactorBarGauss(const std::vector<double> P);
30  FormFactorBarGauss(double length, double width, double height);
31  FormFactorBarGauss* clone() const final;
32  void accept(INodeVisitor* visitor) const final;
33 
34 private:
35  complex_t factor_x(complex_t qx) const final;
36 };
37 
38 //! The form factor of an elongated, with Lorentz form factor in elongation direction.
39 //! @ingroup legacyGrating
41 public:
42  FormFactorBarLorentz(const std::vector<double> P);
43  FormFactorBarLorentz(double length, double width, double height);
44  FormFactorBarLorentz* clone() const final;
45  void accept(INodeVisitor* visitor) const final;
46 
47 private:
48  complex_t factor_x(complex_t qx) const final;
49 };
50 
51 #endif // BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORBAR_H
52 #endif // USER_API
std::complex< double > complex_t
Definition: Complex.h:20
Defines interface classes IProfileRipple, ICosineRipple, ISawtoothRipple.
The form factor of an elongated bar, with Gaussian profile in elongation direction.
Definition: FormFactorBar.h:27
FormFactorBarGauss * clone() const final
Returns a clone of this ISampleNode object.
complex_t factor_x(complex_t qx) const final
void accept(INodeVisitor *visitor) const final
Calls the INodeVisitor's visit method.
FormFactorBarGauss(const std::vector< double > P)
The form factor of an elongated, with Lorentz form factor in elongation direction.
Definition: FormFactorBar.h:40
FormFactorBarLorentz(const std::vector< double > P)
complex_t factor_x(complex_t qx) const final
FormFactorBarLorentz * clone() const final
Returns a clone of this ISampleNode object.
void accept(INodeVisitor *visitor) const final
Calls the INodeVisitor's visit method.
Visitor interface to visit ISampleNode objects.
Definition: INodeVisitor.h:146
Base class for form factors with a rectangular ripple (bar) profile in the yz plane.