21 #include <Math/Minimizer.h>
26 : m_minimizerInfo(minimizerInfo)
78 unsigned int index(0);
79 for (
const auto& par : parameters)
90 return m_status ?
"Minimum found" :
"Error in solving";
100 std::map<std::string, std::string> result;
104 result[
"ProvidesError"] =
"Provides parameters error and error matrix";
106 result[
"ProvidesError"] =
"Doesn't provide error calculation";
132 matrix[i][j] =
rootMinimizer()->Correlation(
static_cast<unsigned int>(i),
133 static_cast<unsigned int>(j));
168 throw std::runtime_error(
"BasicMinimizer::setParameter() -> Error! Unexpected parameter.");
172 std::ostringstream ostr;
173 ostr <<
"BasicMinimizer::setParameter() -> Error! Can't set minimizer's fit parameter";
174 ostr <<
"Index:" << index <<
" name '" << par.
name() <<
"'";
175 throw std::runtime_error(ostr.str());
190 std::vector<double> result;
200 std::vector<double> result;
Declares class MinimizerAdapter.
Declares class ObjectiveFunctionAdapter.
Declares report namespace.
Declares class RootResidualFunction.
Defines classes RootScalarFunction.
std::function< double(const mumufit::Parameters &)> fcn_scalar_t
std::function< std::vector< double >(const mumufit::Parameters &)> fcn_residual_t
double lowerLimit() const
double upperLimit() const
bool isUpperLimited() const
bool isLowerLimited() const
Abstract base class that adapts the CERN ROOT minimizer to our IMinimizer.
mumufit::MinimizerResult minimize(mumufit::Parameters parameters)
virtual const root_minimizer_t * rootMinimizer() const =0
virtual std::map< std::string, std::string > statusMap() const
Returns map of string representing different minimizer statuses.
std::string minimizerName() const final
Returns name of the minimizer.
double minValue() const final
Returns minimum function value.
virtual void setParameter(unsigned int index, const mumufit::Parameter &par)
void propagateResults(mumufit::Parameters ¶meters)
Propagates results of minimization to fit parameter set.
ROOT::Math::Minimizer root_minimizer_t
void setParameters(const mumufit::Parameters ¶meters)
void setOptions(const std::string &optionString) final
Sets option string to the minimizer.
virtual std::string statusToString() const
Returns string representation of current minimizer status.
virtual ~MinimizerAdapter() override
MinimizerInfo m_minimizerInfo
virtual void propagateOptions()=0
std::vector< double > parValuesAtMinimum() const
Returns value of the variables at minimum.
mumufit::MinimizerResult minimize_scalar(fcn_scalar_t fcn, mumufit::Parameters parameters) override
run minimization
std::string algorithmName() const final
Returns name of the minimization algorithm.
std::unique_ptr< mumufit::ObjectiveFunctionAdapter > m_adapter
MinimizerOptions & options()
mumufit::MinimizerResult minimize_residual(fcn_residual_t fcn, mumufit::Parameters parameters) override
bool providesError() const
Returns true if minimizer provides error and error matrix.
MinimizerAdapter(const MinimizerInfo &minimizerInfo)
size_t fitDimension() const
Returns number of fit parameters defined (i.e. dimension of the function to be minimized).
std::vector< double > parErrorsAtMinimum() const
Returns errors of the variables at minimum.
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.
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
std::string reportToString(const MinimizerAdapter &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.
The multi-library, multi-algorithm fit wrapper library.