16 #include <Math/GeneticMinimizer.h>
20 std::map<int, std::string> statusDescription()
22 std::map<int, std::string> result;
23 result[0] =
"OK, minimum found";
24 result[1] =
"Maximum number of iterations reached";
33 addOption(
"Tolerance", 0.01,
"Tolerance on the function value at the minimum");
34 addOption(
"PrintLevel", 0,
"Minimizer internal print level");
35 addOption(
"MaxIterations", 3,
"Maximum number of iterations");
36 addOption(
"PopSize", 300,
"Population size");
37 addOption(
"RandomSeed", 0,
"Random seed");
59 return optionValue<double>(
"Tolerance");
69 return optionValue<int>(
"PrintLevel");
79 return optionValue<int>(
"MaxIterations");
89 return optionValue<int>(
"PopSize");
99 return optionValue<int>(
"RandomSeed");
105 std::ostringstream ostr;
106 ostr <<
"GeneticMinimizer::setParameter() -> Error! "
107 <<
"Genetic minimizer requires either fixed or "
108 <<
"limited AttLimits::limited(left,right) parameter. "
110 throw std::runtime_error(ostr.str());
123 result[
"functionCalls"] = std::to_string(
rootMinimizer()->NCalls());
129 ROOT::Math::GeneticMinimizerParameters pars;
136 const double scale_as_in_root = 10.0;
137 pars.fConvCrit = scale_as_in_root *
tolerance();
Declares class GeneticMinimizer.
std::string toString() const
Wrapper for the CERN ROOT Genetic minimizer.
void setTolerance(double value)
Sets tolerance on the function value at the minimum.
void setPopulationSize(int value)
Sets population size.
virtual void setParameter(unsigned int index, const mumufit::Parameter &par)
std::unique_ptr< ROOT::Math::GeneticMinimizer > m_genetic_minimizer
std::map< std::string, std::string > statusMap() const override
Returns map of string representing different minimizer statuses.
const root_minimizer_t * rootMinimizer() const override
std::string statusToString() const override
Returns string representation of current minimizer status.
void propagateOptions() override
void setPrintLevel(int value)
Sets minimizer internal print level.
void setRandomSeed(int value)
Sets random seed.
int populationSize() const
void setMaxIterations(int value)
Sets maximum number of iterations to try at each step.
int maxIterations() const
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.