Logo ROOT   6.10/09
Reference Guide
FumiliErrorUpdator.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_FumiliErrorUpdator
11 #define ROOT_Minuit2_FumiliErrorUpdator
12 
14 
15 namespace ROOT {
16 
17  namespace Minuit2 {
18 
19 
20 class MinimumState;
21 class MinimumParameters;
22 class GradientCalculator;
23 class FumiliFCNBase;
24 class FunctionGradient;
25 
26 /**
27 
28 In the case of the Fumili algorithm the Error matrix (or the Hessian
29 matrix containing the (approximate) second derivatives) is calculated
30 using a linearization of the model function negleting second
31 derivatives. (In some sense the Name Updator is a little bit misleading
32 as the Error matrix is not calculated by iteratively updating, like
33 in Davidon's or other similar variable metric methods, but by
34 recalculating each time).
35 
36 
37 @author Andras Zsenei and Lorenzo Moneta, Creation date: 28 Sep 2004
38 
39 @see <A HREF="http://www.cern.ch/winkler/minuit/tutorial/mntutorial.pdf">MINUIT Tutorial</A> on function minimization, section 5
40 
41 @see DavidonErrorUpdator
42 
43 @ingroup Minuit
44 
45 */
46 
48 
49 public:
50 
52 
54 
55 
56 
57  /**
58 
59  Member function that calculates the Error matrix (or the Hessian
60  matrix containing the (approximate) second derivatives) using a
61  linearization of the model function negleting second derivatives.
62 
63  @param fMinimumState used to calculate the change in the covariance
64  matrix between the two iterations
65 
66  @param fMinimumParameters the parameters at the present iteration
67 
68  @param fGradientCalculator the Gradient calculator used to retrieved the Parameter transformation
69 
70  @param fFumiliFCNBase the function calculating the figure of merit.
71 
72 
73  \todo Some nice latex mathematical formuli...
74 
75  */
76 
77  virtual MinimumError Update(const MinimumState& fMinimumState,
78  const MinimumParameters& fMinimumParameters,
79  const GradientCalculator& fGradientCalculator,
80  double lambda) const;
81 
82 
83 
84  /**
85 
86  Member function which is only present due to the design already in place
87  of the software. As all classes calculating the Error matrix are supposed
88  inherit from the MinimumErrorUpdator they must inherit this method. In some
89  methods calculating the aforementioned matrix some of these parameters are
90  not needed and other parameters are necessary... Hopefully, a more elegant
91  solution will be found in the future.
92 
93  \todo How to get rid of this dummy method which is only due to the inheritance
94 
95  */
96 
97  virtual MinimumError Update(const MinimumState&, const MinimumParameters&,
98  const FunctionGradient&) const;
99 
100 
101 
102 private:
103 
104 
105 };
106 
107  } // namespace Minuit2
108 
109 } // namespace ROOT
110 
111 #endif // ROOT_Minuit2_FumiliErrorUpdator
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
virtual MinimumError Update(const MinimumState &fMinimumState, const MinimumParameters &fMinimumParameters, const GradientCalculator &fGradientCalculator, double lambda) const
Member function that calculates the Error matrix (or the Hessian matrix containing the (approximate) ...
In the case of the Fumili algorithm the Error matrix (or the Hessian matrix containing the (approxima...
MinimumError keeps the inv.
Definition: MinimumError.h:26
MinimumState keeps the information (position, Gradient, 2nd deriv, etc) after one minimization step (...
Definition: MinimumState.h:29
interface class for gradient calculators