23 #pragma warning(disable : 4267)
24 #include <Math/GSLNLSMinimizer.h>
27 #pragma GCC diagnostic push
28 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
29 #include <Math/GSLNLSMinimizer.h>
30 #pragma GCC diagnostic pop
35 std::map<int, std::string> covmatrixStatusDescription()
37 std::map<int, std::string> result;
38 result[0] =
"Covariance matrix was not computed";
39 result[1] =
"Covariance matrix approximate because minimum is not valid";
40 result[3] =
"Covariance matrix OK";
48 , m_gsl_minimizer(new
ROOT::
Math::GSLNLSMinimizer(2))
50 addOption(
"Tolerance", 0.01,
"Tolerance on the function value at the minimum");
51 addOption(
"PrintLevel", 0,
"Minimizer internal print level");
52 addOption(
"MaxIterations", 0,
"Maximum number of iterations");
64 return optionValue<double>(
"Tolerance");
74 return optionValue<int>(
"PrintLevel");
84 return optionValue<int>(
"MaxIterations");
96 result[
"CovMatrixStatus"] = covmatrixStatusDescription()[
rootMinimizer()->CovMatrixStatus()];
97 result[
"functionCalls"] = std::to_string(
rootMinimizer()->NCalls());
115 auto limits = par.
limits();
116 if (!limits.isLimitless() && !limits.isFixed())
117 throw std::runtime_error(
"GSLLMA minimizer can't handle limited parameters."
118 "Please make them free");
Declares class GSLLevenbergMarquardtMinimizer.
Declares class GSLMultiMinimizer.
Declares namespace MinimizerUtils.
void setMaxIterations(int value)
Sets maximum number of iterations.
~GSLLevenbergMarquardtMinimizer() override
void setTolerance(double value)
Sets tolerance on the function value at the minimum.
std::unique_ptr< ROOT::Math::GSLNLSMinimizer > m_gsl_minimizer
std::string statusToString() const override
Returns string representation of current minimizer status.
const root_minimizer_t * rootMinimizer() const override
void propagateOptions() override
void setPrintLevel(int value)
Sets minimizer internal print level.
std::map< std::string, std::string > statusMap() const override
Returns map of string representing different minimizer statuses.
int maxIterations() const
void setParameter(unsigned int index, const mumufit::Parameter &par) override
GSLLevenbergMarquardtMinimizer()
Abstract base class that adapts the CERN ROOT minimizer to our IMinimizer.
virtual std::map< std::string, std::string > statusMap() const
Returns map of string representing different minimizer statuses.
virtual void setParameter(unsigned int index, const mumufit::Parameter &par)
OptionContainer::option_t addOption(const std::string &optionName, T value, const std::string &description="")
ROOT::Math::Minimizer root_minimizer_t
void setOptionValue(const std::string &optionName, T value)
Info about a minimizer, including list of defined minimization algorithms.
A fittable parameter with value, error, step, and limits.
Various mathematical functions.
std::string scientific(const T value, int n=10)
Returns scientific string representing given value of any numeric type.
std::string gslErrorDescription(int errorCode)