Logo ROOT   6.14/05
Reference Guide
VariableMetricEDMEstimator.cxx
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 
12 #include "Minuit2/MinimumError.h"
13 
14 namespace ROOT {
15 
16  namespace Minuit2 {
17 
18 
19 double similarity(const LAVector&, const LASymMatrix&);
20 
22  // estimate the edm (expected distance to the minimum) = 0.5 * g^T V g (where V is the error matrix, inverse of Hessian)
23  // assuminigfirst derivatives if F are zero at the mminimum,
24 
25  if(e.InvHessian().size() == 1)
26  return 0.5*g.Grad()(0)*g.Grad()(0)*e.InvHessian()(0,0);
27 
28  double rho = similarity(g.Grad(), e.InvHessian());
29  return 0.5*rho;
30 }
31 
32  } // namespace Minuit2
33 
34 } // namespace ROOT
double Estimate(const FunctionGradient &, const MinimumError &) const
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
#define g(i)
Definition: RSha256.hxx:105
const MnAlgebraicVector & Grad() const
double similarity(const LAVector &, const LASymMatrix &)
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
Definition: TRolke.cxx:630
MinimumError keeps the inv.
Definition: MinimumError.h:26
unsigned int size() const
Definition: LASymMatrix.h:237
const MnAlgebraicSymMatrix & InvHessian() const
Definition: MinimumError.h:60