22 if (
algo.name() == algorithmName) {
23 m_current_algorithm = algorithmName;
28 std::ostringstream msg;
29 msg <<
"MinimizerInfo::setAlgorithmName() -> Error. Algorithm name '" << algorithmName
30 <<
"' is not in the list of defined algorithms (";
32 msg <<
algo.name() <<
" ";
34 throw std::runtime_error(msg.str());
41 std::vector<std::string> result;
43 result.push_back(
algo.name());
51 std::vector<std::string> result;
53 result.push_back(
algo.description());
61 MinimizerInfo result(
"Minuit2",
"Minuit2 minimizer from ROOT library");
65 "Variable-metric method with inexact line search, best minimizer according to ROOT.");
67 result.addAlgorithm(
"Simplex",
"Simplex method of Nelder and Meadh, robust "
68 "against big fluctuations in objective function.");
70 result.addAlgorithm(
"Combined",
"Combination of Migrad and Simplex (if Migrad fails).");
72 result.addAlgorithm(
"Scan",
"Simple objective function scan, one parameter at a time.");
74 result.addAlgorithm(
"Fumili",
"Gradient descent minimizer similar to "
75 "Levenberg-Margquardt, sometimes can be better "
78 if (defaultAlgo.empty())
90 MinimizerInfo result(
"GSLMultiMin",
"MultiMin minimizer from GSL library");
92 result.addAlgorithm(
"SteepestDescent",
"Steepest descent");
93 result.addAlgorithm(
"ConjugateFR",
"Fletcher-Reeves conjugate gradient");
94 result.addAlgorithm(
"ConjugatePR",
"Polak-Ribiere conjugate gradient");
95 result.addAlgorithm(
"BFGS",
"BFGS conjugate gradient");
96 result.addAlgorithm(
"BFGS2",
"BFGS conjugate gradient (Version 2)");
98 if (defaultAlgo.empty())
110 MinimizerInfo result(
"GSLLMA",
"Levenberg-Marquardt from GSL library");
111 result.addAlgorithm(
"Default",
"Default algorithm");
119 MinimizerInfo result(
"GSLSimAn",
"Simmulated annealing minimizer from GSL library");
120 result.addAlgorithm(
"Default",
"Default algorithm");
128 MinimizerInfo result(
"Genetic",
"Genetic minimizer from TMVA library");
129 result.addAlgorithm(
"Default",
"Default algorithm");
137 MinimizerInfo result(
"Test",
"One-shot minimizer to test whole chain");
138 result.addAlgorithm(
"Default",
"Default algorithm");
144 void MinimizerInfo::addAlgorithm(
const AlgorithmInfo& algorithm)
146 m_current_algorithm = algorithm.name();
147 m_algorithms.push_back(algorithm);
150 void MinimizerInfo::addAlgorithm(
const std::string& algorithmName,
151 const std::string& algorithmDescription)
153 addAlgorithm(
AlgorithmInfo(algorithmName, algorithmDescription));
Declares class MinimizerInfo.
A name and a description.
Info about a minimizer, including list of defined minimization algorithms.
static MinimizerInfo buildGeneticInfo()
Creates information for TMVA genetic minimizer.
static MinimizerInfo buildGSLSimAnInfo()
Creates information for GSL's simmulated annealing algorithm.
void setAlgorithmName(const std::string &algorithmName)
Sets currently active algorithm.
std::vector< std::string > algorithmDescriptions() const
Returns list of string with description of all available algorithms.
static MinimizerInfo buildGSLLMAInfo()
Creates information for GSL's Levenberg-Marquardt.
static MinimizerInfo buildGSLMultiMinInfo(const std::string &defaultAlgo="")
Creates information for GSLMultiMinMinimizer.
static MinimizerInfo buildTestMinimizerInfo()
Creates information for simple test minimizer.
std::vector< std::string > algorithmNames() const
Return list of defined algorithm names.
static MinimizerInfo buildMinuit2Info(const std::string &defaultAlgo="")
Creates information for Minuit2Minimizer.
Some additions to standard library algorithms.