Logo ROOT  
Reference Guide
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
16#include "Minuit2/MnFcn.h"
18
19namespace ROOT {
20
21 namespace Minuit2 {
22
23
24/**
25
26Builds the FunctionMinimum using the Fumili method.
27
28@author Andras Zsenei, Creation date: 29 Sep 2004
29
30@see <A HREF="http://www.cern.ch/winkler/minuit/tutorial/mntutorial.pdf">MINUIT Tutorial</A> on function minimization, section 5
31
32@ingroup Minuit
33
34\todo the role of the strategy in Fumili
35
36*/
37
38
39
41
42public:
43
46
48
49
50 /**
51
52 Class the member function calculating the Minimum and verifies the result
53 depending on the strategy.
54
55 @param fMnFcn the function to be minimized.
56
57 @param fGradienCalculator not used in Fumili.
58
59 @param fMinimumSeed the seed generator.
60
61 @param fMnStrategy the strategy describing the number of function calls
62 allowed for Gradient calculations.
63
64 @param maxfcn maximum number of function calls after which the calculation
65 will be stopped even if it has not yet converged.
66
67 @param edmval expected vertical distance to the Minimum.
68
69 @return Returns the function Minimum found.
70
71
72 \todo Complete the documentation by understanding what is the reason to
73 have two Minimum methods.
74
75 */
76
77 virtual FunctionMinimum Minimum(const MnFcn& fMnFcn, const GradientCalculator& fGradienCalculator, const MinimumSeed& fMinimumSeed, const MnStrategy& fMnStrategy, unsigned int maxfcn, double edmval) const;
78
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 minimization, section 5
100
101
102 \todo some nice Latex based formula here...
103
104 */
105
106 FunctionMinimum Minimum(const MnFcn& fMnFcn, const GradientCalculator& fGradienCalculator, const MinimumSeed& fMinimumSeed, std::vector<MinimumState> & states, unsigned int maxfcn, double edmval) const;
107
108
109 /**
110
111 Accessor to the EDM (expected vertical distance to the Minimum) estimator.
112
113 @return The EDM estimator used in the builder.
114
115 \todo Maybe a little explanation concerning EDM in all relevant classes.
116
117 */
118
120
121
122 /**
123
124 Accessor to the Error updator of the builder.
125
126 @return The FumiliErrorUpdator used by the FumiliBuilder.
127
128 */
129
131
132
133private:
134
137};
138
139 } // namespace Minuit2
140
141} // namespace ROOT
142
143#endif // ROOT_Minuit2_FumiliBuilder
Builds the FunctionMinimum using the Fumili method.
Definition: FumiliBuilder.h:40
VariableMetricEDMEstimator fEstimator
FumiliErrorUpdator fErrorUpdator
virtual FunctionMinimum Minimum(const MnFcn &fMnFcn, const GradientCalculator &fGradienCalculator, const MinimumSeed &fMinimumSeed, const MnStrategy &fMnStrategy, unsigned int maxfcn, double edmval) const
Class the member function calculating the Minimum and verifies the result depending on the strategy.
const FumiliErrorUpdator & ErrorUpdator() const
Accessor to the Error updator of the builder.
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
MinimumSeed contains the starting values for the minimization produced by the SeedGenerator.
Definition: MinimumSeed.h:31
Wrapper class to FCNBase interface used internally by Minuit.
Definition: MnFcn.h:33
API class for defining three levels of strategies: low (0), medium (1), high (>=2); acts on: Migrad (...
Definition: MnStrategy.h:27
VSD Structures.
Definition: StringConv.hxx:21