BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
GeneticMinimizer Class Reference

Description

Wrapper for the CERN ROOT Genetic minimizer.

Definition at line 32 of file GeneticMinimizer.h.

Inheritance diagram for GeneticMinimizer:
[legend]
Collaboration diagram for GeneticMinimizer:
[legend]

Public Types

using root_minimizer_t = ROOT::Math::Minimizer
 

Public Member Functions

 GeneticMinimizer ()
 
 ~GeneticMinimizer () override
 
std::string algorithmName () const override
 Returns name of the minimization algorithm. More...
 
virtual void clear ()
 Clears resources (parameters) for consecutives minimizations. More...
 
int maxIterations () const
 
mumufit::MinimizerResult minimize_residual (fcn_residual_t fcn, mumufit::Parameters parameters) override
 Runs minimization. More...
 
mumufit::MinimizerResult minimize_scalar (fcn_scalar_t fcn, mumufit::Parameters parameters) override
 Runs minimization. More...
 
std::string minimizerName () const override
 Returns name of the minimizer. More...
 
double minValue () const override
 Returns minimum function value. More...
 
MinimizerOptionsoptions ()
 
const MinimizerOptionsoptions () const
 
int populationSize () const
 
int printLevel () const
 
bool providesError () const
 Returns true if minimizer provides error and error matrix. More...
 
int randomSeed () const
 
virtual bool requiresResiduals ()
 Returns true if minimizer computations are residual-based, false otherwise. More...
 
void setMaxIterations (int value)
 Sets maximum number of iterations to try at each step. More...
 
void setOptions (const std::string &optionString) override
 Sets option string to the minimizer. More...
 
void setParameters (const mumufit::Parameters &parameters)
 
void setPopulationSize (int value)
 Sets population size. More...
 
void setPrintLevel (int value)
 Sets minimizer internal print level. More...
 
void setRandomSeed (int value)
 Sets random seed. More...
 
void setTolerance (double value)
 Sets tolerance on the function value at the minimum. Minimization will stop when the estimated vertical distance to the minimum (EDM) is less than 0.001*tolerance*ErrorDef. Here ErrorDef=1.0 for chi squared fit and ErrorDef=0.5 for negative log likelihood fit. More...
 
std::map< std::string, std::string > statusMap () const override
 Returns map of string representing different minimizer statuses. More...
 
std::string statusToString () const override
 Returns string representation of current minimizer status. More...
 
double tolerance () const
 

Protected Member Functions

template<class T >
OptionContainer::option_t addOption (const std::string &optionName, T value, const std::string &description="")
 
size_t fitRank () const
 Returns number of fit parameters defined (i.e. dimension of the function to be minimized). More...
 
mumufit::MinimizerResult minimize (mumufit::Parameters parameters)
 
template<class T >
optionValue (const std::string &optionName) const
 
std::vector< double > parErrorsAtMinimum () const
 Returns errors of the variables at minimum. More...
 
std::vector< double > parValuesAtMinimum () const
 Returns value of the variables at minimum. More...
 
void propagateOptions () override
 
void propagateResults (mumufit::Parameters &parameters)
 Propagates results of minimization to fit parameter set. More...
 
root_minimizer_trootMinimizer ()
 
const root_minimizer_trootMinimizer () const override
 
template<class T >
void setOptionValue (const std::string &optionName, T value)
 
virtual void setParameter (unsigned int index, const mumufit::Parameter &par)
 
void setParameter (unsigned int index, const mumufit::Parameter &par) override
 

Private Attributes

std::unique_ptr< mumufit::ObjectiveFunctionAdapterm_adapter
 
std::unique_ptr< ROOT::Math::GeneticMinimizerm_genetic_minimizer
 
MinimizerInfo m_minimizerInfo
 
MinimizerOptions m_options
 
bool m_status
 

Member Typedef Documentation

◆ root_minimizer_t

Definition at line 47 of file MinimizerAdapter.h.

Constructor & Destructor Documentation

◆ GeneticMinimizer()

GeneticMinimizer::GeneticMinimizer ( )

Definition at line 30 of file GeneticMinimizer.cpp.

33 {
34  addOption("Tolerance", 0.01, "Tolerance on the function value at the minimum");
35  addOption("PrintLevel", 0, "Minimizer internal print level");
36  addOption("MaxIterations", 3, "Maximum number of iterations");
37  addOption("PopSize", 300, "Population size");
38  addOption("RandomSeed", 0, "Random seed");
39 }
std::unique_ptr< ROOT::Math::GeneticMinimizer > m_genetic_minimizer
MinimizerAdapter(MinimizerInfo minimizerInfo)
OptionContainer::option_t addOption(const std::string &optionName, T value, const std::string &description="")
static MinimizerInfo buildGeneticInfo()
Creates information for TMVA genetic minimizer.

References MinimizerAdapter::addOption().

Here is the call graph for this function:

◆ ~GeneticMinimizer()

GeneticMinimizer::~GeneticMinimizer ( )
overridedefault

Member Function Documentation

◆ addOption()

template<class T >
OptionContainer::option_t MinimizerAdapter::addOption ( const std::string &  optionName,
value,
const std::string &  description = "" 
)
protectedinherited

Definition at line 115 of file MinimizerAdapter.h.

117 {
118  return m_options.addOption(optionName, value, description);
119 }
MinimizerOptions m_options
option_t addOption(const std::string &optionName, T value, const std::string &description="")

References OptionContainer::addOption(), and MinimizerAdapter::m_options.

Referenced by GeneticMinimizer(), GSLLevenbergMarquardtMinimizer::GSLLevenbergMarquardtMinimizer(), GSLMultiMinimizer::GSLMultiMinimizer(), Minuit2Minimizer::Minuit2Minimizer(), and SimAnMinimizer::SimAnMinimizer().

Here is the call graph for this function:

◆ algorithmName()

std::string MinimizerAdapter::algorithmName ( ) const
overridevirtualinherited

Returns name of the minimization algorithm.

Implements IMinimizer.

Definition at line 73 of file MinimizerAdapter.cpp.

74 {
76 }
MinimizerInfo m_minimizerInfo
std::string algorithmName() const
Definition: MinimizerInfo.h:59

References MinimizerInfo::algorithmName(), and MinimizerAdapter::m_minimizerInfo.

Referenced by Minuit2Minimizer::requiresResiduals().

Here is the call graph for this function:

◆ clear()

virtual void IMinimizer::clear ( )
inlinevirtualinherited

Clears resources (parameters) for consecutives minimizations.

Definition at line 50 of file IMinimizer.h.

50 {}

◆ fitRank()

size_t MinimizerAdapter::fitRank ( ) const
protectedinherited

Returns number of fit parameters defined (i.e. dimension of the function to be minimized).

Definition at line 180 of file MinimizerAdapter.cpp.

181 {
182  return rootMinimizer()->NDim();
183 }
virtual const root_minimizer_t * rootMinimizer() const =0
virtual unsigned int NDim() const =0
this is <= Function().NDim() which is the total number of variables (free+ constrained ones)

References ROOT::Math::Minimizer::NDim(), and MinimizerAdapter::rootMinimizer().

Referenced by MinimizerAdapter::parErrorsAtMinimum(), MinimizerAdapter::parValuesAtMinimum(), and MinimizerAdapter::propagateResults().

Here is the call graph for this function:

◆ maxIterations()

int GeneticMinimizer::maxIterations ( ) const

Definition at line 68 of file GeneticMinimizer.cpp.

69 {
70  return optionValue<int>("MaxIterations");
71 }

Referenced by propagateOptions().

◆ minimize()

MinimizerResult MinimizerAdapter::minimize ( mumufit::Parameters  parameters)
protectedinherited

Definition at line 50 of file MinimizerAdapter.cpp.

51 {
52  setParameters(parameters);
54 
56  propagateResults(parameters);
57 
58  MinimizerResult result;
59  result.setParameters(parameters);
60  result.setMinValue(minValue());
61  result.setReport(internal::reportToString(*this));
62  result.setNumberOfCalls(m_adapter->numberOfCalls());
63  result.setNumberOfGradientCalls(m_adapter->numberOfGradientCalls());
64 
65  return result;
66 }
void propagateResults(mumufit::Parameters &parameters)
Propagates results of minimization to fit parameter set.
double minValue() const override
Returns minimum function value.
void setParameters(const mumufit::Parameters &parameters)
virtual void propagateOptions()=0
std::unique_ptr< mumufit::ObjectiveFunctionAdapter > m_adapter
virtual bool Minimize()=0
method to perform the minimization
Result of minimization round.
void setReport(const std::string &value)
void setMinValue(double value)
void setNumberOfGradientCalls(int value)
void setNumberOfCalls(int value)
void setParameters(const Parameters &parameters)
std::string reportToString(const MinimizerAdapter &minimizer)
Reports results of minimization in the form of multi-line string.
Definition: Report.cpp:77

References MinimizerAdapter::m_adapter, MinimizerAdapter::m_status, ROOT::Math::Minimizer::Minimize(), MinimizerAdapter::minValue(), MinimizerAdapter::propagateOptions(), MinimizerAdapter::propagateResults(), mumufit::internal::reportToString(), MinimizerAdapter::rootMinimizer(), mumufit::MinimizerResult::setMinValue(), mumufit::MinimizerResult::setNumberOfCalls(), mumufit::MinimizerResult::setNumberOfGradientCalls(), MinimizerAdapter::setParameters(), mumufit::MinimizerResult::setParameters(), and mumufit::MinimizerResult::setReport().

Referenced by MinimizerAdapter::minimize_residual(), and MinimizerAdapter::minimize_scalar().

Here is the call graph for this function:

◆ minimize_residual()

MinimizerResult MinimizerAdapter::minimize_residual ( fcn_residual_t  ,
mumufit::Parameters   
)
overridevirtualinherited

Runs minimization.

Reimplemented from IMinimizer.

Definition at line 43 of file MinimizerAdapter.cpp.

44 {
45  // Genetic minimizer requires SetFunction before setParameters, others don't care
46  rootMinimizer()->SetFunction(*m_adapter->rootResidualFunction(fcn, parameters));
47  return minimize(parameters);
48 }
mumufit::MinimizerResult minimize(mumufit::Parameters parameters)
virtual void SetFunction(const ROOT::Math::IMultiGenFunction &func)=0
set the function to minimize

References MinimizerAdapter::m_adapter, MinimizerAdapter::minimize(), MinimizerAdapter::rootMinimizer(), and ROOT::Math::Minimizer::SetFunction().

Here is the call graph for this function:

◆ minimize_scalar()

MinimizerResult MinimizerAdapter::minimize_scalar ( fcn_scalar_t  ,
mumufit::Parameters   
)
overridevirtualinherited

Runs minimization.

Reimplemented from IMinimizer.

Definition at line 36 of file MinimizerAdapter.cpp.

37 {
38  // Genetic minimizer requires SetFunction before setParameters, others don't care
39  rootMinimizer()->SetFunction(*m_adapter->rootObjectiveFunction(fcn, parameters));
40  return minimize(parameters);
41 }

References MinimizerAdapter::m_adapter, MinimizerAdapter::minimize(), MinimizerAdapter::rootMinimizer(), and ROOT::Math::Minimizer::SetFunction().

Here is the call graph for this function:

◆ minimizerName()

std::string MinimizerAdapter::minimizerName ( ) const
overridevirtualinherited

Returns name of the minimizer.

Implements IMinimizer.

Definition at line 68 of file MinimizerAdapter.cpp.

69 {
70  return m_minimizerInfo.name();
71 }
std::string name() const
Definition: MinimizerInfo.h:56

References MinimizerAdapter::m_minimizerInfo, and MinimizerInfo::name().

Here is the call graph for this function:

◆ minValue()

double MinimizerAdapter::minValue ( ) const
overridevirtualinherited

Returns minimum function value.

Reimplemented from IMinimizer.

Definition at line 85 of file MinimizerAdapter.cpp.

86 {
87  return rootMinimizer()->MinValue();
88 }
virtual double MinValue() const =0
return minimum function value

References ROOT::Math::Minimizer::MinValue(), and MinimizerAdapter::rootMinimizer().

Referenced by MinimizerAdapter::minimize(), and MinimizerAdapter::statusMap().

Here is the call graph for this function:

◆ options() [1/2]

MinimizerOptions& MinimizerAdapter::options ( )
inlineinherited

Definition at line 66 of file MinimizerAdapter.h.

66 { return m_options; }

References MinimizerAdapter::m_options.

Referenced by MinimizerAdapter::setOptions().

◆ options() [2/2]

const MinimizerOptions& MinimizerAdapter::options ( ) const
inlineinherited

Definition at line 67 of file MinimizerAdapter.h.

67 { return m_options; }

References MinimizerAdapter::m_options.

◆ optionValue()

template<class T >
T MinimizerAdapter::optionValue ( const std::string &  optionName) const
protectedinherited

Definition at line 128 of file MinimizerAdapter.h.

129 {
130  return m_options.optionValue<T>(optionName);
131 }
T optionValue(const std::string &optionName) const

References MinimizerAdapter::m_options, and OptionContainer::optionValue().

Here is the call graph for this function:

◆ parErrorsAtMinimum()

std::vector< double > MinimizerAdapter::parErrorsAtMinimum ( ) const
protectedinherited

Returns errors of the variables at minimum.

Definition at line 197 of file MinimizerAdapter.cpp.

198 {
199  std::vector<double> result;
200  result.resize(fitRank(), 0.0);
201  if (rootMinimizer()->Errors() != nullptr) {
202  std::copy(rootMinimizer()->Errors(), rootMinimizer()->Errors() + fitRank(), result.begin());
203  }
204  return result;
205 }
size_t fitRank() const
Returns number of fit parameters defined (i.e. dimension of the function to be minimized).

References MinimizerAdapter::fitRank(), and MinimizerAdapter::rootMinimizer().

Referenced by MinimizerAdapter::propagateResults().

Here is the call graph for this function:

◆ parValuesAtMinimum()

std::vector< double > MinimizerAdapter::parValuesAtMinimum ( ) const
protectedinherited

Returns value of the variables at minimum.

Definition at line 187 of file MinimizerAdapter.cpp.

188 {
189  std::vector<double> result;
190  result.resize(fitRank(), 0.0);
191  std::copy(rootMinimizer()->X(), rootMinimizer()->X() + fitRank(), result.begin());
192  return result;
193 }

References MinimizerAdapter::fitRank(), and MinimizerAdapter::rootMinimizer().

Referenced by MinimizerAdapter::propagateResults().

Here is the call graph for this function:

◆ populationSize()

int GeneticMinimizer::populationSize ( ) const

Definition at line 78 of file GeneticMinimizer.cpp.

79 {
80  return optionValue<int>("PopSize");
81 }

Referenced by propagateOptions().

◆ printLevel()

int GeneticMinimizer::printLevel ( ) const

Definition at line 58 of file GeneticMinimizer.cpp.

59 {
60  return optionValue<int>("PrintLevel");
61 }

◆ propagateOptions()

void GeneticMinimizer::propagateOptions ( )
overrideprotectedvirtual

Implements MinimizerAdapter.

Definition at line 118 of file GeneticMinimizer.cpp.

119 {
121  pars.fPopSize = populationSize();
122  pars.fNsteps = maxIterations();
123  const double scale_as_in_root = 10.0;
124  pars.fConvCrit = scale_as_in_root * tolerance();
125  pars.fSeed = randomSeed();
126  m_genetic_minimizer->SetParameters(pars);
127 }
double tolerance() const
int randomSeed() const
int populationSize() const
int maxIterations() const

References ROOT::Math::GeneticMinimizerParameters::fConvCrit, ROOT::Math::GeneticMinimizerParameters::fNsteps, ROOT::Math::GeneticMinimizerParameters::fPopSize, ROOT::Math::GeneticMinimizerParameters::fSeed, m_genetic_minimizer, maxIterations(), populationSize(), randomSeed(), and tolerance().

Here is the call graph for this function:

◆ propagateResults()

void MinimizerAdapter::propagateResults ( mumufit::Parameters parameters)
protectedinherited

Propagates results of minimization to fit parameter set.

Definition at line 122 of file MinimizerAdapter.cpp.

123 {
124  parameters.setValues(parValuesAtMinimum());
125  parameters.setErrors(parErrorsAtMinimum());
126  // sets correlation matrix
127  if (providesError()) {
129  matrix.resize(fitRank());
130 
131  for (size_t i = 0; i < fitRank(); ++i) {
132  matrix[i].resize(fitRank(), 0.0);
133  for (size_t j = 0; j < fitRank(); ++j)
134  matrix[i][j] = rootMinimizer()->Correlation(static_cast<unsigned int>(i),
135  static_cast<unsigned int>(j));
136  }
137  parameters.setCorrelationMatrix(matrix);
138  }
139 }
std::vector< double > parValuesAtMinimum() const
Returns value of the variables at minimum.
bool providesError() const
Returns true if minimizer provides error and error matrix.
std::vector< double > parErrorsAtMinimum() const
Returns errors of the variables at minimum.
virtual double Correlation(unsigned int i, unsigned int j) const
Definition: Minimizer.h:326
void setValues(const std::vector< double > &values)
Definition: Parameters.cpp:64
void setCorrelationMatrix(const corr_matrix_t &matrix)
Definition: Parameters.cpp:122
void setErrors(const std::vector< double > &errors)
Definition: Parameters.cpp:90
std::vector< std::vector< double > > corr_matrix_t
Definition: Parameters.h:31

References ROOT::Math::Minimizer::Correlation(), MinimizerAdapter::fitRank(), MinimizerAdapter::parErrorsAtMinimum(), MinimizerAdapter::parValuesAtMinimum(), MinimizerAdapter::providesError(), MinimizerAdapter::rootMinimizer(), mumufit::Parameters::setCorrelationMatrix(), mumufit::Parameters::setErrors(), and mumufit::Parameters::setValues().

Referenced by MinimizerAdapter::minimize().

Here is the call graph for this function:

◆ providesError()

bool MinimizerAdapter::providesError ( ) const
inherited

Returns true if minimizer provides error and error matrix.

Definition at line 95 of file MinimizerAdapter.cpp.

96 {
97  return rootMinimizer()->ProvidesError();
98 }
virtual bool ProvidesError() const
minimizer provides error and error matrix
Definition: Minimizer.h:275

References ROOT::Math::Minimizer::ProvidesError(), and MinimizerAdapter::rootMinimizer().

Referenced by MinimizerAdapter::propagateResults(), and MinimizerAdapter::statusMap().

Here is the call graph for this function:

◆ randomSeed()

int GeneticMinimizer::randomSeed ( ) const

Definition at line 88 of file GeneticMinimizer.cpp.

89 {
90  return optionValue<int>("RandomSeed");
91 }

Referenced by propagateOptions().

◆ requiresResiduals()

virtual bool IMinimizer::requiresResiduals ( )
inlinevirtualinherited

Returns true if minimizer computations are residual-based, false otherwise.

Reimplemented in Minuit2Minimizer, and GSLLevenbergMarquardtMinimizer.

Definition at line 60 of file IMinimizer.h.

60 { return false; }

◆ rootMinimizer() [1/2]

MinimizerAdapter::root_minimizer_t * MinimizerAdapter::rootMinimizer ( )
protectedinherited

Definition at line 207 of file MinimizerAdapter.cpp.

208 {
209  return const_cast<root_minimizer_t*>(
210  static_cast<const MinimizerAdapter*>(this)->rootMinimizer());
211 }
Abstract base class that adapts the CERN ROOT minimizer to our IMinimizer.
ROOT::Math::Minimizer root_minimizer_t

References MinimizerAdapter::rootMinimizer().

Here is the call graph for this function:

◆ rootMinimizer() [2/2]

const MinimizerAdapter::root_minimizer_t * GeneticMinimizer::rootMinimizer ( ) const
overrideprotectedvirtual

Implements MinimizerAdapter.

Definition at line 129 of file GeneticMinimizer.cpp.

130 {
131  return m_genetic_minimizer.get();
132 }

References m_genetic_minimizer.

Referenced by statusMap(), and statusToString().

◆ setMaxIterations()

void GeneticMinimizer::setMaxIterations ( int  value)

Sets maximum number of iterations to try at each step.

Definition at line 63 of file GeneticMinimizer.cpp.

64 {
65  setOptionValue("MaxIterations", value);
66 }
void setOptionValue(const std::string &optionName, T value)

References MinimizerAdapter::setOptionValue().

Here is the call graph for this function:

◆ setOptions()

void MinimizerAdapter::setOptions ( const std::string &  optionString)
overridevirtualinherited

Sets option string to the minimizer.

Reimplemented from IMinimizer.

Definition at line 115 of file MinimizerAdapter.cpp.

116 {
117  options().setOptionString(optionString);
118 }
MinimizerOptions & options()
void setOptionString(const std::string &options)
Set options from their string representation.

References MinimizerAdapter::options(), and MinimizerOptions::setOptionString().

Here is the call graph for this function:

◆ setOptionValue()

◆ setParameter() [1/2]

void MinimizerAdapter::setParameter
protected

Definition at line 88 of file MinimizerAdapter.cpp.

142 {
143  bool success;
144  if (par.limits().isFixed())
145  success = rootMinimizer()->SetFixedVariable(index, par.name().c_str(), par.value());
146 
147  else if (par.limits().isLimited()) {
148  success = rootMinimizer()->SetLimitedVariable(index, par.name().c_str(), par.value(),
149  par.step(), par.limits().lowerLimit(),
150  par.limits().upperLimit());
151  }
152 
153  else if (par.limits().isLowerLimited()) {
154  success = rootMinimizer()->SetLowerLimitedVariable(index, par.name().c_str(), par.value(),
155  par.step(), par.limits().lowerLimit());
156  }
157 
158  else if (par.limits().isUpperLimited()) {
159  success = rootMinimizer()->SetUpperLimitedVariable(index, par.name().c_str(), par.value(),
160  par.step(), par.limits().upperLimit());
161  }
162 
163  else if (par.limits().isLimitless())
164  success = rootMinimizer()->SetVariable(index, par.name().c_str(), par.value(), par.step());
165 
166 
167  else
168  throw std::runtime_error("BasicMinimizer::setParameter() -> Error! Unexpected parameter.");
169 
170  if (!success) {
171  std::ostringstream ostr;
172  ostr << "BasicMinimizer::setParameter() -> Error! Can't set minimizer's fit parameter";
173  ostr << "Index:" << index << " name '" << par.name() << "'";
174  throw std::runtime_error(ostr.str());
175  }
176 }
const root_minimizer_t * rootMinimizer() const override
virtual bool SetLowerLimitedVariable(unsigned int ivar, const std::string &name, double val, double step, double lower)
set a new lower limit variable (override if minimizer supports them )
Definition: Minimizer.h:155
virtual bool SetUpperLimitedVariable(unsigned int ivar, const std::string &name, double val, double step, double upper)
set a new upper limit variable (override if minimizer supports them )
Definition: Minimizer.h:159
virtual bool SetVariable(unsigned int ivar, const std::string &name, double val, double step)=0
set a new free variable
virtual bool SetFixedVariable(unsigned int ivar, const std::string &name, double val)
set a new fixed variable (override if minimizer supports them )
Definition: Minimizer.h:170
virtual bool SetLimitedVariable(unsigned int ivar, const std::string &name, double val, double step, double lower, double upper)
set a new upper/lower limited variable (override if minimizer supports them ) otherwise as default se...
Definition: Minimizer.h:163

◆ setParameter() [2/2]

void GeneticMinimizer::setParameter ( unsigned int  index,
const mumufit::Parameter par 
)
overrideprotectedvirtual

Reimplemented from MinimizerAdapter.

Definition at line 93 of file GeneticMinimizer.cpp.

94 {
95  if (!par.limits().isFixed() && !par.limits().isLimited()) {
96  std::ostringstream ostr;
97  ostr << "GeneticMinimizer::setParameter() -> Error! "
98  << "Genetic minimizer requires either fixed or "
99  << "limited AttLimits::limited(left,right) parameter. "
100  << " Parameter name '" << par.name() << "', limits:" << par.limits().toString();
101  throw std::runtime_error(ostr.str());
102  }
103  MinimizerAdapter::setParameter(index, par);
104 }
std::string toString() const
Definition: AttLimits.cpp:117
bool isFixed() const
Definition: AttLimits.cpp:66
bool isLimited() const
Definition: AttLimits.cpp:71
virtual void setParameter(unsigned int index, const mumufit::Parameter &par)
std::string name() const
Definition: Parameter.cpp:53
AttLimits limits() const
Definition: Parameter.cpp:63

References AttLimits::isFixed(), AttLimits::isLimited(), mumufit::Parameter::limits(), mumufit::Parameter::name(), MinimizerAdapter::setParameter(), and AttLimits::toString().

Here is the call graph for this function:

◆ setParameters()

void MinimizerAdapter::setParameters ( const mumufit::Parameters parameters)
inherited

Definition at line 78 of file MinimizerAdapter.cpp.

79 {
80  unsigned int index(0);
81  for (const auto& par : parameters)
82  setParameter(index++, par);
83 }

References MinimizerAdapter::setParameter().

Referenced by MinimizerAdapter::minimize().

Here is the call graph for this function:

◆ setPopulationSize()

void GeneticMinimizer::setPopulationSize ( int  value)

Sets population size.

Definition at line 73 of file GeneticMinimizer.cpp.

74 {
75  setOptionValue("PopSize", value);
76 }

References MinimizerAdapter::setOptionValue().

Here is the call graph for this function:

◆ setPrintLevel()

void GeneticMinimizer::setPrintLevel ( int  value)

Sets minimizer internal print level.

Definition at line 53 of file GeneticMinimizer.cpp.

54 {
55  setOptionValue("PrintLevel", value);
56 }

References MinimizerAdapter::setOptionValue().

Here is the call graph for this function:

◆ setRandomSeed()

void GeneticMinimizer::setRandomSeed ( int  value)

Sets random seed.

Definition at line 83 of file GeneticMinimizer.cpp.

84 {
85  setOptionValue("RandomSeed", value);
86 }

References MinimizerAdapter::setOptionValue().

Here is the call graph for this function:

◆ setTolerance()

void GeneticMinimizer::setTolerance ( double  value)

Sets tolerance on the function value at the minimum. Minimization will stop when the estimated vertical distance to the minimum (EDM) is less than 0.001*tolerance*ErrorDef. Here ErrorDef=1.0 for chi squared fit and ErrorDef=0.5 for negative log likelihood fit.

Definition at line 43 of file GeneticMinimizer.cpp.

44 {
45  setOptionValue("Tolerance", value);
46 }

References MinimizerAdapter::setOptionValue().

Here is the call graph for this function:

◆ statusMap()

std::map< std::string, std::string > GeneticMinimizer::statusMap ( ) const
overridevirtual

Returns map of string representing different minimizer statuses.

Reimplemented from MinimizerAdapter.

Definition at line 111 of file GeneticMinimizer.cpp.

112 {
113  auto result = MinimizerAdapter::statusMap();
114  result["functionCalls"] = std::to_string(rootMinimizer()->NCalls());
115  return result;
116 }
virtual std::map< std::string, std::string > statusMap() const
Returns map of string representing different minimizer statuses.

References rootMinimizer(), and MinimizerAdapter::statusMap().

Here is the call graph for this function:

◆ statusToString()

std::string GeneticMinimizer::statusToString ( ) const
overridevirtual

Returns string representation of current minimizer status.

Reimplemented from MinimizerAdapter.

Definition at line 106 of file GeneticMinimizer.cpp.

107 {
108  return statusDescription()[rootMinimizer()->Status()];
109 }
int Status() const
status code of minimizer
Definition: Minimizer.h:430

References rootMinimizer(), and ROOT::Math::Minimizer::Status().

Here is the call graph for this function:

◆ tolerance()

double GeneticMinimizer::tolerance ( ) const

Definition at line 48 of file GeneticMinimizer.cpp.

49 {
50  return optionValue<double>("Tolerance");
51 }

Referenced by propagateOptions().

Member Data Documentation

◆ m_adapter

std::unique_ptr<mumufit::ObjectiveFunctionAdapter> MinimizerAdapter::m_adapter
privateinherited

◆ m_genetic_minimizer

std::unique_ptr<ROOT::Math::GeneticMinimizer> GeneticMinimizer::m_genetic_minimizer
private

Definition at line 71 of file GeneticMinimizer.h.

Referenced by propagateOptions(), and rootMinimizer().

◆ m_minimizerInfo

MinimizerInfo MinimizerAdapter::m_minimizerInfo
privateinherited

◆ m_options

◆ m_status

bool MinimizerAdapter::m_status
privateinherited

The documentation for this class was generated from the following files: