VariableMetricEDMEstimator.cxx

Go to the documentation of this file.
00001 // @(#)root/minuit2:$Id: VariableMetricEDMEstimator.cxx 20880 2007-11-19 11:23:41Z rdm $
00002 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei   2003-2005  
00003 
00004 /**********************************************************************
00005  *                                                                    *
00006  * Copyright (c) 2005 LCG ROOT Math team,  CERN/PH-SFT                *
00007  *                                                                    *
00008  **********************************************************************/
00009 
00010 #include "Minuit2/VariableMetricEDMEstimator.h"
00011 #include "Minuit2/FunctionGradient.h"
00012 #include "Minuit2/MinimumError.h"
00013 
00014 namespace ROOT {
00015 
00016    namespace Minuit2 {
00017 
00018 
00019 double similarity(const LAVector&, const LASymMatrix&);
00020 
00021 double VariableMetricEDMEstimator::Estimate(const FunctionGradient& g, const MinimumError& e) const {
00022    // estimate the edm (expected distance to the minimum) =  0.5 * g^T V g  (where V is the error matrix, inverse of Hessian) 
00023    // assuminigfirst derivatives if F are zero at the mminimum, 
00024    
00025    if(e.InvHessian().size()  == 1) 
00026       return 0.5*g.Grad()(0)*g.Grad()(0)*e.InvHessian()(0,0);
00027    
00028    double rho = similarity(g.Grad(), e.InvHessian());
00029    return 0.5*rho;
00030 }
00031 
00032    }  // namespace Minuit2
00033 
00034 }  // namespace ROOT

Generated on Tue Jul 5 14:37:11 2011 for ROOT_528-00b_version by  doxygen 1.5.1