Logo ROOT   6.10/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: StringConv.hxx:21
const FumiliErrorUpdator & ErrorUpdator() const
Accessor to the Error updator of the builder.
MinimumSeed contains the starting values for the minimization produced by the SeedGenerator.
Definition: MinimumSeed.h:31
const VariableMetricEDMEstimator & Estimator() const
Accessor to the EDM (expected vertical distance to the Minimum) estimator.
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...
class holding the full result of the minimization; both internal and external (MnUserParameterState) ...
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