12#include "MantidCurveFitting/DllConfig.h"
14#include "MantidHistogramData/Histogram.h"
17namespace CurveFitting {
38 void function1D(
double *out,
const double *xValues,
const size_t nData)
const override;
40 void setUpForFit()
override;
42 void setMatrixWorkspace(std::shared_ptr<const API::MatrixWorkspace>
workspace,
size_t wsIndex,
double startX,
43 double endX)
override;
61 virtual void massProfile(
double *result,
const size_t nData)
const = 0;
67 const HistogramData::HistogramE &errors)
const = 0;
69 void setParameter(
size_t i,
const double &
value,
bool explicitlySet =
true)
override;
71 void setParameter(
const std::string &name,
const double &
value,
bool explicitlySet =
true)
override {
72 ParamFunction::setParameter(name,
value, explicitlySet);
77 void declareParameters()
override;
80 inline const std::vector<double> &
ySpace()
const {
return m_yspace; }
82 inline const std::vector<double> &
modQ()
const {
return m_modQ; }
84 inline const std::vector<double> &
e0()
const {
return m_e0; }
86 inline double mass()
const {
return m_mass; }
89 void voigtApproxDiff(std::vector<double> &voigtDiff,
const std::vector<double> &yspace,
const double lorentzPos,
90 const double lorentzAmp,
const double lorentzWidth,
const double gaussWidth)
const;
92 void voigtApprox(std::vector<double> &voigt,
const std::vector<double> &yspace,
const double lorentzPos,
93 const double lorentzAmp,
const double lorentzWidth,
const double gaussWidth)
const;
double value
The value of the point.
IPeaksWorkspace_sptr workspace
This is a specialization of IFunction for functions of one real argument.
Implements the part of IFunction interface dealing with parameters.
This class serves as a base-class for ComptonProfile type functions.
double m_mass
Atomic mass.
virtual void massProfile(double *result, const size_t nData) const =0
Override to calculate the value of the profile for this mass and store in the given array.
virtual size_t fillConstraintMatrix(Kernel::DblMatrix &cmatrix, const size_t start, const HistogramData::HistogramE &errors) const =0
Fill the appropriate columns of the given matrix with the values of the mass profile.
Kernel::Logger m_log
Logger.
const std::vector< double > & modQ() const
Access Q values cache.
std::vector< double > m_e0
Incident energies.
std::vector< double > m_modQ
Q-values.
double mass() const
Access the mass.
std::shared_ptr< const API::MatrixWorkspace > m_workspace
Current workspace.
virtual std::vector< size_t > intensityParameterIndices() const =0
Returns the indices of the intensity parameters.
std::shared_ptr< VesuvioResolution > m_resolutionFunction
Vesuvio resolution function.
std::shared_ptr< API::IPeakFunction > m_voigt
Voigt function.
void disableLogging()
Turn off logger.
const std::vector< double > & ySpace() const
Access y-values cache.
void voigtApprox(std::vector< double > &voigt, const std::vector< double > &yspace, const double lorentzPos, const double lorentzAmp, const double lorentzWidth, const double gaussWidth) const
Compute Voigt function.
void setParameter(const std::string &name, const double &value, bool explicitlySet=true) override
Set parameter by name.
const std::vector< double > & e0() const
Access e0 values.
std::vector< double > m_yspace
size_t m_wsIndex
Current workspace index, required to access instrument parameters.
The Logger class is in charge of the publishing messages from the framework through various channels.
Helper class which provides the Collimation Length for SANS instruments.
Simple data structure to store nominal detector values It avoids some functions taking a huge number ...
Simple data structure to store resolution parameter values It avoids some functions taking a huge num...