ROOT  6.06/09
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 
13 #include "Minuit2/MinimumBuilder.h"
16 #include "Minuit2/MnFcn.h"
18 
19 namespace ROOT {
20 
21  namespace Minuit2 {
22 
23 
24 /**
25 
26 Builds 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 
40 class FumiliBuilder : public MinimumBuilder {
41 
42 public:
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 
133 private:
134 
137 };
138 
139  } // namespace Minuit2
140 
141 } // namespace ROOT
142 
143 #endif // ROOT_Minuit2_FumiliBuilder
Namespace for new ROOT classes and functions.
Definition: ROOT.py:1
const VariableMetricEDMEstimator & Estimator() const
Accessor to the EDM (expected vertical distance to the Minimum) estimator.
MinimumSeed contains the starting values for the minimization produced by the SeedGenerator.
Definition: MinimumSeed.h:31
const FumiliErrorUpdator & ErrorUpdator() const
Accessor to the Error updator of the builder.
class holding the full result of the minimization; both internal and external (MnUserParameterState) ...
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...
VariableMetricEDMEstimator fEstimator
Wrapper class to FCNBase interface used internally by Minuit.
Definition: MnFcn.h:33
In the case of the Fumili algorithm the Error matrix (or the Hessian matrix containing the (approxima...
FumiliErrorUpdator fErrorUpdator
Builds the FunctionMinimum using the Fumili method.
Definition: FumiliBuilder.h:40
API class for defining three levels of strategies: low (0), medium (1), high (>=2); acts on: Migrad (...
Definition: MnStrategy.h:27
interface class for gradient calculators