20 #pragma warning(disable : 4267)
21 #include <Math/GSLSimAnMinimizer.h>
24 #pragma GCC diagnostic push
25 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
26 #include <Math/GSLSimAnMinimizer.h>
27 #pragma GCC diagnostic pop
30 SimAnMinimizer::SimAnMinimizer()
32 m_siman_minimizer(new ROOT::Math::GSLSimAnMinimizer())
34 addOption(
"PrintLevel", 0,
"Minimizer internal print level");
35 addOption(
"MaxIterations", 100,
"Number of points to try for each step");
36 addOption(
"IterationsAtTemp", 10,
"Number of iterations at each temperature");
37 addOption(
"StepSize", 1.0,
"Max step size used in random walk");
38 addOption(
"k", 1.0,
"Boltzmann k");
39 addOption(
"t_init", 50.0,
"Boltzmann initial temperature");
40 addOption(
"mu", 1.05,
"Boltzmann mu");
41 addOption(
"t_min", 0.1,
"Boltzmann minimal temperature");
44 SimAnMinimizer::~SimAnMinimizer() =
default;
48 setOptionValue(
"PrintLevel", value);
51 int SimAnMinimizer::printLevel()
const
53 return optionValue<int>(
"PrintLevel");
58 setOptionValue(
"MaxIterations", value);
61 int SimAnMinimizer::maxIterations()
const
63 return optionValue<int>(
"MaxIterations");
68 setOptionValue(
"IterationsAtTemp", value);
71 int SimAnMinimizer::iterationsAtEachTemp()
const
73 return optionValue<int>(
"IterationsAtTemp");
78 setOptionValue(
"StepSize", value);
81 double SimAnMinimizer::stepSize()
const
83 return optionValue<double>(
"StepSize");
88 setOptionValue(
"k", value);
91 double SimAnMinimizer::boltzmannK()
const
93 return optionValue<double>(
"k");
98 setOptionValue(
"t_init", value);
101 double SimAnMinimizer::boltzmannInitialTemp()
const
103 return optionValue<double>(
"t_init");
108 setOptionValue(
"mu", value);
111 double SimAnMinimizer::boltzmannMu()
const
113 return optionValue<double>(
"mu");
118 setOptionValue(
"t_min", value);
121 double SimAnMinimizer::boltzmannMinTemp()
const
123 return optionValue<double>(
"t_min");
129 result[
"functionCalls"] = std::to_string(rootMinimizer()->NCalls());
133 void SimAnMinimizer::propagateOptions()
135 ROOT::Math::GSLSimAnParams& pars = m_siman_minimizer->getSolver().Params();
136 pars.n_tries = maxIterations();
137 pars.iters_fixed_T = iterationsAtEachTemp();
138 pars.step_size = stepSize();
139 pars.k = boltzmannK();
140 pars.t_initial = boltzmannInitialTemp();
141 pars.mu_t = boltzmannMu();
142 pars.t_min = boltzmannMinTemp();
145 const RootMinimizerAdapter::root_minimizer_t* SimAnMinimizer::rootMinimizer()
const
147 return m_siman_minimizer.get();
Declares class GSLMultiMinimizer.
Declares class SimAnMinimizer.
Info about a minimizer, including list of defined minimization algorithms.
Pure virtual interface 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.
std::map< std::string, std::string > statusMap() const override
Returns map of string representing different minimizer statuses.
void setIterationsAtEachTemp(int value)
Sets number of iterations at each temperature.
void setPrintLevel(int value)
Sets minimizer internal print level.
void setBoltzmannMu(double value)
Sets Boltzmann distribution parameter: mu.
void setBoltzmannK(double value)
Sets Boltzmann distribution parameter: k.
void setStepSize(double value)
Sets max step size used in random walk.
void setBoltzmannMinTemp(double value)
Sets Boltzmann distribution parameter: minimal temperature.
void setMaxIterations(int value)
Sets maximum number of iterations to try at each step.
void setBoltzmannInitialTemp(double value)
Sets Boltzmann distribution parameter: initial temperature.