21 #include <Math/Minimizer.h>
76 unsigned int index(0);
77 for (
const auto& par : parameters)
88 return m_status ?
"Minimum found" :
"Error in solving";
98 std::map<std::string, std::string> result;
102 result[
"ProvidesError"] =
"Provides parameters error and error matrix";
104 result[
"ProvidesError"] =
"Doesn't provide error calculation";
130 matrix[i][j] =
rootMinimizer()->Correlation(
static_cast<unsigned int>(i),
131 static_cast<unsigned int>(j));
166 throw std::runtime_error(
"BasicMinimizer::setParameter() -> Error! Unexpected parameter.");
170 std::ostringstream ostr;
171 ostr <<
"BasicMinimizer::setParameter() -> Error! Can't set minimizer's fit parameter";
172 ostr <<
"Index:" << index <<
" name '" << par.
name() <<
"'";
173 throw std::runtime_error(ostr.str());
188 std::vector<double> result;
198 std::vector<double> result;
std::function< std::vector< double >(const Fit::Parameters &)> fcn_residual_t
std::function< double(const Fit::Parameters &)> fcn_scalar_t
Declares MinimizerResultUtils namespace.
Declares class ObjectiveFunctionAdapter.
Declares class RootMinimizerAdapter.
Declares class RootResidualFunction.
Defines classes RootScalarFunction.
Defines a few helper functions.
double lowerLimit() const
double upperLimit() const
bool isUpperLimited() const
bool isLowerLimited() const
Result of minimization round.
void setReport(const std::string &value)
void setMinValue(double value)
void setNumberOfGradientCalls(int value)
void setNumberOfCalls(int value)
void setParameters(const Parameters ¶meters)
Converts user objective function to function ROOT expects.
A fittable parameter with value, error, step, and limits.
A collection of fit parameters.
void setValues(const std::vector< double > &values)
void setCorrelationMatrix(const corr_matrix_t &matrix)
void setErrors(const std::vector< double > &errors)
std::vector< std::vector< double > > corr_matrix_t
Info about a minimizer, including list of defined minimization algorithms.
std::string algorithmName() const
void setOptionString(const std::string &options)
Set options from their string representation.
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)
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).
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
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.
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.
std::string reportToString(const RootMinimizerAdapter &minimizer)
Reports results of minimization in the form of multi-line string.
std::string scientific(const T value, int n=10)
Returns scientific string representing given value of any numeric type.