Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
FumiliBuilder.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_FumiliBuilder
11#define ROOT_Minuit2_FumiliBuilder
12
17
18#include <vector>
19
20namespace ROOT {
21
22namespace Minuit2 {
23
24class MnFcn;
25
26/**
27
28Builds the FunctionMinimum using the Fumili method.
29
30@author Andras Zsenei, Creation date: 29 Sep 2004
31
32@see <A HREF="http://www.cern.ch/winkler/minuit/tutorial/mntutorial.pdf">MINUIT Tutorial</A> on function minimization,
33section 5
34
35@ingroup Minuit
36
37\todo the role of the strategy in Fumili
38
39*/
40
42
43public:
44
46
48
49 /**
50
51 Class the member function calculating the Minimum and verifies the result
52 depending on the strategy.
53
54 @param fMnFcn the function to be minimized.
55
56 @param fGradienCalculator not used in Fumili.
57
58 @param fMinimumSeed the seed generator.
59
60 @param fMnStrategy the strategy describing the number of function calls
61 allowed for Gradient calculations.
62
63 @param maxfcn maximum number of function calls after which the calculation
64 will be stopped even if it has not yet converged.
65
66 @param edmval expected vertical distance to the Minimum.
67
68 @return Returns the function Minimum found.
69
70
71 \todo Complete the documentation by understanding what is the reason to
72 have two Minimum methods.
73
74 */
75
76 FunctionMinimum Minimum(const MnFcn &fMnFcn, const GradientCalculator &fGradienCalculator,
77 const MinimumSeed &fMinimumSeed, const MnStrategy &fMnStrategy, unsigned int maxfcn,
78 double edmval) const override;
79
80 /**
81
82 Calculates the Minimum based on the Fumili method
83
84 @param fMnFcn the function to be minimized.
85
86 @param fGradienCalculator not used in Fumili
87
88 @param fMinimumSeed the seed generator.
89
90 @param states vector containing the state result of each iteration
91
92 @param maxfcn maximum number of function calls after which the calculation
93 will be stopped even if it has not yet converged.
94
95 @param edmval expected vertical distance to the Minimum
96
97 @return Returns the function Minimum found.
98
99 @see <A HREF="http://www.cern.ch/winkler/minuit/tutorial/mntutorial.pdf">MINUIT Tutorial</A> on function
100 minimization, section 5
101
102
103 \todo some nice Latex based formula here...
104
105 */
106
107 FunctionMinimum Minimum(const MnFcn &fMnFcn, const GradientCalculator &fGradienCalculator,
108 const MinimumSeed &fMinimumSeed, std::vector<MinimumState> &states, unsigned int maxfcn,
109 double edmval) const;
110
111 /**
112
113 Accessor to the EDM (expected vertical distance to the Minimum) estimator.
114
115 @return The EDM estimator used in the builder.
116
117 \todo Maybe a little explanation concerning EDM in all relevant classes.
118
119 */
120
122
123 /**
124
125 Accessor to the Error updator of the builder.
126
127 @return The FumiliErrorUpdator used by the FumiliBuilder.
128
129 */
130
132
133private:
136 FumiliMethodType fMethodType = kTrustRegion; // use Trust region as default method
137};
138
139} // namespace Minuit2
140
141} // namespace ROOT
142
143#endif // ROOT_Minuit2_FumiliBuilder
Builds the FunctionMinimum using the Fumili method.
FunctionMinimum Minimum(const MnFcn &fMnFcn, const GradientCalculator &fGradienCalculator, const MinimumSeed &fMinimumSeed, const MnStrategy &fMnStrategy, unsigned int maxfcn, double edmval) const override
Class the member function calculating the Minimum and verifies the result depending on the strategy.
VariableMetricEDMEstimator fEstimator
FumiliErrorUpdator fErrorUpdator
const FumiliErrorUpdator & ErrorUpdator() const
Accessor to the Error updator of the builder.
void SetMethod(FumiliMethodType type)
const VariableMetricEDMEstimator & Estimator() const
Accessor to the EDM (expected vertical distance to the Minimum) estimator.
In the case of the Fumili algorithm the Error matrix (or the Hessian matrix containing the (approxima...
class holding the full result of the minimization; both internal and external (MnUserParameterState) ...
interface class for gradient calculators
Wrapper class to FCNBase interface used internally by Minuit.
Definition MnFcn.h:34
API class for defining four levels of strategies: low (0), medium (1), high (2), very high (>=3); act...
Definition MnStrategy.h:27