ROOT   Reference Guide
VariableMetricBuilder.h
Go to the documentation of this file.
1// @(#)root/minuit2:$Id$
2// Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005
3
4/**********************************************************************
5 * *
6 * Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT *
7 * *
8 **********************************************************************/
9
10#ifndef ROOT_Minuit2_VariableMetricBuilder
11#define ROOT_Minuit2_VariableMetricBuilder
12
13#include "Minuit2/MnConfig.h"
18
19#include <vector>
20#include <memory>
21
22namespace ROOT {
23
24namespace Minuit2 {
25
26/**
27 Build (find) function minimum using the Variable Metric method (MIGRAD)
28 Two possible error updators can be choosen
29 - Davidon : this is the standard formula used in Migrad
30 - BFGS this is the new formula based on BFGS algorithm
31 (see Broyden–Fletcher–Goldfarb–Shanno algorithm
32 https://en.wikipedia.org/wiki/Broyden–Fletcher–Goldfarb–Shanno_algorithm )
33 */
35
36public:
38
40 {
41 if (type == kBFGS)
42 fErrorUpdator = std::unique_ptr<MinimumErrorUpdator>(new BFGSErrorUpdator());
43 else
44 fErrorUpdator = std::unique_ptr<MinimumErrorUpdator>(new DavidonErrorUpdator());
45 }
46
48
49 FunctionMinimum Minimum(const MnFcn &, const GradientCalculator &, const MinimumSeed &, const MnStrategy &,
50 unsigned int, double) const override;
51
52 FunctionMinimum Minimum(const MnFcn &, const GradientCalculator &, const MinimumSeed &, std::vector<MinimumState> &,
53 unsigned int, double) const;
54
57
58 void AddResult(std::vector<MinimumState> &result, const MinimumState &state) const;
59
60private:
62 std::shared_ptr<MinimumErrorUpdator> fErrorUpdator;
63};
64
65} // namespace Minuit2
66
67} // namespace ROOT
68
69#endif // ROOT_Minuit2_VariableMetricBuilder
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Update of the covariance matrix for the Variable Metric minimizer (MIGRAD)
Update of the covariance matrix for the Variable Metric minimizer (MIGRAD)
class holding the full result of the minimization; both internal and external (MnUserParameterState) ...
interface class for gradient calculators
MinimumState keeps the information (position, Gradient, 2nd deriv, etc) after one minimization step (...
Definition: MinimumState.h:27
Wrapper class to FCNBase interface used internally by Minuit.
Definition: MnFcn.h:30
API class for defining three levels of strategies: low (0), medium (1), high (>=2); acts on: Migrad (...
Definition: MnStrategy.h:27
Build (find) function minimum using the Variable Metric method (MIGRAD) Two possible error updators c...
void AddResult(std::vector< MinimumState > &result, const MinimumState &state) const
FunctionMinimum Minimum(const MnFcn &, const GradientCalculator &, const MinimumSeed &, const MnStrategy &, unsigned int, double) const override
const VariableMetricEDMEstimator & Estimator() const
const MinimumErrorUpdator & ErrorUpdator() const
VariableMetricBuilder(ErrorUpdatorType type=kDavidon)
std::shared_ptr< MinimumErrorUpdator > fErrorUpdator
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.