15 #ifndef BORNAGAIN_FIT_ROOTADAPTER_ROOTMINIMIZERADAPTER_H
16 #define BORNAGAIN_FIT_ROOTADAPTER_ROOTMINIMIZERADAPTER_H
28 class ObjectiveFunctionAdapter;
29 class MinimizerResult;
61 double minValue() const override final;
73 virtual std::map<std::string, std::string>
statusMap()
const;
76 void setOptions(
const std::string& optionString)
override final;
96 const std::string& description =
"");
98 template <
class T>
void setOptionValue(
const std::string& optionName, T value);
100 template <
class T> T
optionValue(
const std::string& optionName)
const;
105 std::unique_ptr<Fit::ObjectiveFunctionAdapter>
m_adapter;
111 const std::string& description)
Defines class IMinimizer.
std::function< std::vector< double >(const Fit::Parameters &)> fcn_residual_t
std::function< double(const Fit::Parameters &)> fcn_scalar_t
Declares class MinimizerInfo.
Declares class MinimizerOptions.
Result of minimization round.
A fittable parameter with value, error, step, and limits.
A collection of fit parameters.
Pure virtual interface for all kind minimizers.
Info about a minimizer, including list of defined minimization algorithms.
Collection of internal minimizer settings.
void setOptionValue(const std::string &optionName, T value)
Sets the value of option. Option should hold same value type already.
T optionValue(const std::string &optionName) const
std::shared_ptr< MultiOption > option_t
option_t addOption(const std::string &optionName, T value, const std::string &description="")
Pure virtual interface that adapts the CERN ROOT minimizer to our IMinimizer.
Fit::MinimizerResult minimize_scalar(fcn_scalar_t fcn, Fit::Parameters parameters) override
run minimization
RootMinimizerAdapter(const MinimizerInfo &minimizerInfo)
OptionContainer::option_t addOption(const std::string &optionName, T value, const std::string &description="")
void setOptionValue(const std::string &optionName, T value)
ROOT::Math::Minimizer root_minimizer_t
size_t fitDimension() const
Returns number of fit parameters defined (i.e. dimension of the function to be minimized).
const MinimizerOptions & options() const
std::unique_ptr< Fit::ObjectiveFunctionAdapter > m_adapter
std::string minimizerName() const override final
Returns name of the minimizer.
virtual std::string statusToString() const
Returns string representation of current minimizer status.
Fit::MinimizerResult minimize_residual(fcn_residual_t fcn, Fit::Parameters parameters) override
virtual void setParameter(unsigned int index, const Fit::Parameter &par)
std::string algorithmName() const override final
Returns name of the minimization algorithm.
Fit::MinimizerResult minimize(Fit::Parameters parameters)
MinimizerInfo m_minimizerInfo
MinimizerOptions m_options
double minValue() const override final
Returns minimum function value.
MinimizerOptions & options()
virtual ~RootMinimizerAdapter() override
void propagateResults(Fit::Parameters ¶meters)
Propagates results of minimization to fit parameter set.
virtual std::map< std::string, std::string > statusMap() const
Returns map of string representing different minimizer statuses.
virtual void propagateOptions()=0
std::vector< double > parErrorsAtMinimum() const
Returns errors of the variables at minimum.
void setOptions(const std::string &optionString) override final
Sets option string to the minimizer.
std::vector< double > parValuesAtMinimum() const
Returns value of the variables at minimum.
T optionValue(const std::string &optionName) const
void setParameters(const Fit::Parameters ¶meters)
bool providesError() const
Returns true if minimizer provides error and error matrix.
virtual const root_minimizer_t * rootMinimizer() const =0
Objective function types.