28 : m_minimizerInfo(std::move(minimizerInfo))
80 unsigned int index(0);
81 for (
const auto& par : parameters)
92 return m_status ?
"Minimum found" :
"Error in solving";
102 std::map<std::string, std::string> result;
106 result[
"ProvidesError"] =
"Provides parameters error and error matrix";
108 result[
"ProvidesError"] =
"Doesn't provide error calculation";
131 for (
size_t i = 0; i <
fitRank(); ++i) {
132 matrix[i].resize(
fitRank(), 0.0);
133 for (
size_t j = 0; j <
fitRank(); ++j)
135 static_cast<unsigned int>(j));
168 throw std::runtime_error(
"BasicMinimizer::setParameter() -> Error! Unexpected parameter.");
171 std::ostringstream ostr;
172 ostr <<
"BasicMinimizer::setParameter() -> Error! Can't set minimizer's fit parameter";
173 ostr <<
"Index:" << index <<
" name '" << par.
name() <<
"'";
174 throw std::runtime_error(ostr.str());
189 std::vector<double> result;
199 std::vector<double> result;
Declares class MinimizerAdapter.
std::function< double(const mumufit::Parameters &)> fcn_scalar_t
std::function< std::vector< double >(const mumufit::Parameters &)> fcn_residual_t
Declares class ObjectiveFunctionAdapter.
Declares report namespace.
Declares class RootResidualFunction.
Defines classes RootScalarFunction.
double lowerLimit() const
double upperLimit() const
bool isUpperLimited() const
bool isLowerLimited() const
Abstract base class that adapts the CERN ROOT minimizer to our IMinimizer.
std::string algorithmName() const override
Returns name of the minimization algorithm.
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.
virtual void setParameter(unsigned int index, const mumufit::Parameter &par)
MinimizerAdapter(MinimizerInfo minimizerInfo)
void propagateResults(mumufit::Parameters ¶meters)
Propagates results of minimization to fit parameter set.
double minValue() const override
Returns minimum function value.
void setParameters(const mumufit::Parameters ¶meters)
size_t fitRank() const
Returns number of fit parameters defined (i.e. dimension of the function to be minimized).
virtual std::string statusToString() const
Returns string representation of current minimizer status.
~MinimizerAdapter() override
MinimizerInfo m_minimizerInfo
virtual void propagateOptions()=0
void setOptions(const std::string &optionString) override
Sets option string to the minimizer.
std::vector< double > parValuesAtMinimum() const
Returns value of the variables at minimum.
mumufit::MinimizerResult minimize_scalar(fcn_scalar_t fcn, mumufit::Parameters parameters) override
Runs minimization.
std::unique_ptr< mumufit::ObjectiveFunctionAdapter > m_adapter
std::string minimizerName() const override
Returns name of the minimizer.
MinimizerOptions & options()
mumufit::MinimizerResult minimize_residual(fcn_residual_t fcn, mumufit::Parameters parameters) override
Runs minimization.
bool providesError() const
Returns true if minimizer provides error and error matrix.
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.
virtual bool SetLowerLimitedVariable(unsigned int ivar, const std::string &name, double val, double step, double lower)
set a new lower limit variable (override if minimizer supports them )
virtual void SetFunction(const ROOT::Math::IMultiGenFunction &func)=0
set the function to minimize
virtual bool Minimize()=0
method to perform the minimization
virtual bool SetUpperLimitedVariable(unsigned int ivar, const std::string &name, double val, double step, double upper)
set a new upper limit variable (override if minimizer supports them )
virtual bool SetVariable(unsigned int ivar, const std::string &name, double val, double step)=0
set a new free variable
virtual bool ProvidesError() const
minimizer provides error and error matrix
virtual double Correlation(unsigned int i, unsigned int j) const
virtual bool SetFixedVariable(unsigned int ivar, const std::string &name, double val)
set a new fixed variable (override if minimizer supports them )
virtual bool SetLimitedVariable(unsigned int ivar, const std::string &name, double val, double step, double lower, double upper)
set a new upper/lower limited variable (override if minimizer supports them ) otherwise as default se...
virtual double MinValue() const =0
return minimum function value
virtual unsigned int NDim() const =0
this is <= Function().NDim() which is the total number of variables (free+ constrained ones)
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. Handles time of life of function objects.
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(T value, int n=10)
Returns scientific string representing given value of any numeric type.
The multi-library, multi-algorithm fit wrapper library.