15 #ifndef BORNAGAIN_FIT_ROOTADAPTER_ROOTMINIMIZERADAPTER_H 
   16 #define BORNAGAIN_FIT_ROOTADAPTER_ROOTMINIMIZERADAPTER_H 
   28 class ObjectiveFunctionAdapter;
 
   29 class MinimizerResult;
 
   46     typedef ROOT::Math::Minimizer root_minimizer_t;
 
   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;
 
   85     virtual void setParameter(
unsigned int index, 
const Fit::Parameter& par);
 
   90     virtual void propagateOptions() = 0;
 
   91     virtual const root_minimizer_t* rootMinimizer() 
const = 0;
 
   92     root_minimizer_t* rootMinimizer();
 
   95     OptionContainer::option_t addOption(
const std::string& optionName, T value,
 
   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;
 
  110 OptionContainer::option_t RootMinimizerAdapter::addOption(
const std::string& optionName, T value,
 
  111                                                           const std::string& description)
 
  113     return m_options.addOption(optionName, value, description);
 
  116 template <
class T> 
void RootMinimizerAdapter::setOptionValue(
const std::string& optionName, T value)
 
  121 template <
class T> T RootMinimizerAdapter::optionValue(
const std::string& optionName)
 const 
  123     return m_options.optionValue<T>(optionName);
 
Defines class IMinimizer.
 
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.
 
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
 
size_t fitDimension() const
Returns number of fit parameters defined (i.e. dimension of the function to be minimized).
 
std::string minimizerName() const override final
Returns name of the minimizer.
 
virtual std::string statusToString() const
Returns string representation of current minimizer status.
 
std::string algorithmName() const override final
Returns name of the minimization algorithm.
 
double minValue() const override final
Returns minimum function value.
 
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.
 
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.
 
bool providesError() const
Returns true if minimizer provides error and error matrix.
 
Objective function types.