13#include "MantidCurveFitting/DllConfig.h"
23class FunctionDomain1D;
28namespace CurveFitting {
41 void declareDatasetProperties(
const std::string &suffix =
"",
bool addProp =
true)
override;
43 std::shared_ptr<API::Workspace> createOutputWorkspace(
const std::string &baseName,
API::IFunction_sptr function,
44 std::shared_ptr<API::FunctionDomain> domain,
45 std::shared_ptr<API::FunctionValues> values,
46 const std::string &outputWorkspacePropertyName)
override;
48 size_t getDomainSize()
const override;
53 void setWorkspace(std::shared_ptr<API::MatrixWorkspace> ws) { m_matrixWorkspace = std::move(ws); }
67 std::pair<size_t, size_t> getXInterval()
const;
69 virtual void setParameters()
const;
72 std::shared_ptr<API::MatrixWorkspace> createEmptyResultWS(
const size_t nhistograms,
const size_t nyvalues);
77 void appendCompositeFunctionMembers(std::list<API::IFunction_sptr> &functionList,
81 void appendConvolvedCompositeFunctionMembers(std::list<API::IFunction_sptr> &functionList,
84 void addFunctionValuesToWS(
const API::IFunction_sptr &function, std::shared_ptr<API::MatrixWorkspace> &ws,
85 const size_t wsIndex,
const std::shared_ptr<API::FunctionDomain> &domain,
86 const std::shared_ptr<API::FunctionValues> &resultValues)
const;
106 mutable std::weak_ptr<API::FunctionDomain1D>
m_domain;
107 mutable std::weak_ptr<API::FunctionValues>
m_values;
An base class for domain creators for use in Fit.
DomainType
Type of domain to create.
This is an interface to a fitting function - a semi-abstarct class.
A base class for domain creators taking 1D data from a spectrum of a matrix workspace.
std::string m_endXPropertyName
Store endX property name.
std::string m_startXPropertyName
Store startX property name.
void setWorkspace(std::shared_ptr< API::MatrixWorkspace > ws)
Set the workspace.
std::weak_ptr< API::FunctionDomain1D > m_domain
Store the created domain and values.
std::shared_ptr< API::MatrixWorkspace > m_matrixWorkspace
The input MareixWorkspace.
std::weak_ptr< API::FunctionValues > m_values
size_t m_workspaceIndex
The workspace index.
void setRange(double startX, double endX)
Set the startX and endX.
std::string m_workspacePropertyName
Store workspace property name.
std::string m_workspaceIndexPropertyName
Store workspace index property name.
void setWorkspaceIndex(size_t wi)
Set the workspace index.
Interface to PropertyManager.
std::shared_ptr< IFunction > IFunction_sptr
shared pointer to the function base class
Helper class which provides the Collimation Length for SANS instruments.