23 const std::string default_minimizer =
"Minuit2";
24 const std::string default_algorithm =
"Migrad";
29 setMinimizer(default_minimizer, default_algorithm);
32 Kernel::~Kernel() =
default;
34 void Kernel::setMinimizer(
const std::string& minimizerName,
const std::string& algorithmName,
35 const std::string& options)
37 m_minimizer.reset(MinimizerFactory::createMinimizer(minimizerName, algorithmName, options));
40 void Kernel::setMinimizer(
IMinimizer* minimizer)
42 m_minimizer.reset(minimizer);
47 setParameters(parameters);
50 if (m_minimizer->requiresResiduals())
51 throw std::runtime_error(
52 "Error in Kernel::minimize: the chosen minimizer requires residuals computation. "
53 "Please use FitObjective::evaluate_residuals with this minimizer.");
54 auto result = m_minimizer->minimize_scalar(fcn, parameters);
57 result.setDuration(m_timer.
runTime());
63 setParameters(parameters);
66 auto result = m_minimizer->minimize_residual(fcn, parameters);
69 result.setDuration(m_timer.
runTime());
73 void Kernel::setParameters(
const Parameters& parameters)
75 m_parameters = parameters;
Defines class IMinimizer.
Defines class MinimizerFactory.
Result of minimization round.
A collection of fit parameters.
Pure virtual interface for all kind minimizers.
double runTime() const
returns run time in sec.
Objective function types.