15 #ifndef BORNAGAIN_CORE_CORRELATIONS_IPEAKSHAPE_H
16 #define BORNAGAIN_CORE_CORRELATIONS_IPEAKSHAPE_H
145 double kappa_1,
double kappa_2);
Defines interface class ISample.
A peak shape that is Gaussian in the radial direction and uses the Mises-Fisher distribution in the a...
bool angularDisorder() const override
Indicates if the peak shape encodes angular disorder, in which case all peaks in a spherical shell ar...
GaussFisherPeakShape(double max_intensity, double radial_size, double kappa)
double evaluate(const kvector_t q, const kvector_t q_lattice_point) const override
Evaluates the peak shape at q from a reciprocal lattice point at q_lattice_point.
GaussFisherPeakShape * clone() const override
Returns a clone of this ISample object.
void accept(INodeVisitor *visitor) const override
Calls the INodeVisitor's visit method.
~GaussFisherPeakShape() override
Visitor interface to visit ISample objects.
virtual void visit(const BasicLattice *)
Pure virtual interface class that defines the peak shape of a Bragg peak.
virtual double evaluate(const kvector_t q, const kvector_t q_lattice_point) const =0
Evaluates the peak shape at q from a reciprocal lattice point at q_lattice_point.
virtual bool angularDisorder() const
Indicates if the peak shape encodes angular disorder, in which case all peaks in a spherical shell ar...
virtual IPeakShape * clone() const =0
Returns a clone of this ISample object.
Pure virtual base class for sample components and properties related to scattering.
Class that implements an isotropic Gaussian peak shape of a Bragg peak.
double evaluate(const kvector_t q, const kvector_t q_lattice_point) const override
Evaluates the peak shape at q from a reciprocal lattice point at q_lattice_point.
IsotropicGaussPeakShape * clone() const override
Returns a clone of this ISample object.
~IsotropicGaussPeakShape() override
void accept(INodeVisitor *visitor) const override
Calls the INodeVisitor's visit method.
IsotropicGaussPeakShape(double max_intensity, double domainsize)
An isotropic Lorentzian peak shape of a Bragg peak.
IsotropicLorentzPeakShape(double max_intensity, double domainsize)
IsotropicLorentzPeakShape * clone() const override
Returns a clone of this ISample object.
void accept(INodeVisitor *visitor) const override
Calls the INodeVisitor's visit method.
~IsotropicLorentzPeakShape() override
double evaluate(const kvector_t q, const kvector_t q_lattice_point) const override
Evaluates the peak shape at q from a reciprocal lattice point at q_lattice_point.
A peak shape that is Lorentzian in the radial direction and uses the Mises-Fisher distribution in the...
LorentzFisherPeakShape(double max_intensity, double radial_size, double kappa)
~LorentzFisherPeakShape() override
LorentzFisherPeakShape * clone() const override
Returns a clone of this ISample object.
void accept(INodeVisitor *visitor) const override
Calls the INodeVisitor's visit method.
double evaluate(const kvector_t q, const kvector_t q_lattice_point) const override
Evaluates the peak shape at q from a reciprocal lattice point at q_lattice_point.
bool angularDisorder() const override
Indicates if the peak shape encodes angular disorder, in which case all peaks in a spherical shell ar...
A peak shape that is Gaussian in the radial direction and a convolution of a Mises-Fisher distributio...
MisesFisherGaussPeakShape * clone() const override
Returns a clone of this ISample object.
double integrand(double phi) const
bool angularDisorder() const override
Indicates if the peak shape encodes angular disorder, in which case all peaks in a spherical shell ar...
double evaluate(const kvector_t q, const kvector_t q_lattice_point) const override
Evaluates the peak shape at q from a reciprocal lattice point at q_lattice_point.
MisesFisherGaussPeakShape(double max_intensity, double radial_size, kvector_t zenith, double kappa_1, double kappa_2)
~MisesFisherGaussPeakShape() override
void accept(INodeVisitor *visitor) const override
Calls the INodeVisitor's visit method.
A peak shape that is a convolution of a Mises-Fisher distribution with a 3d Gaussian.
~MisesGaussPeakShape() override
MisesGaussPeakShape(double max_intensity, double radial_size, kvector_t zenith, double kappa)
bool angularDisorder() const override
Indicates if the peak shape encodes angular disorder, in which case all peaks in a spherical shell ar...
double evaluate(const kvector_t q, const kvector_t q_lattice_point) const override
Evaluates the peak shape at q from a reciprocal lattice point at q_lattice_point.
MisesGaussPeakShape * clone() const override
Returns a clone of this ISample object.
void accept(INodeVisitor *visitor) const override
Calls the INodeVisitor's visit method.
double integrand(double phi) const