BasicMinimumError.cxx

Go to the documentation of this file.
00001 // @(#)root/minuit2:$Id: BasicMinimumError.cxx 23522 2008-04-24 15:09:19Z moneta $
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/BasicMinimumError.h"
00011 
00012 #if defined(DEBUG) || defined(WARNINGMSG)
00013 #include "Minuit2/MnPrint.h" 
00014 #endif
00015 
00016 
00017 namespace ROOT {
00018    
00019    namespace Minuit2 {
00020       
00021       
00022       
00023 MnAlgebraicSymMatrix BasicMinimumError::Hessian() const {
00024    // calculate Heassian: inverse of error matrix 
00025    MnAlgebraicSymMatrix tmp(fMatrix);
00026    int ifail = Invert(tmp);
00027    if(ifail != 0) {
00028 #ifdef WARNINGMSG
00029       MN_INFO_MSG("BasicMinimumError:  inversion fails; return diagonal matrix.");
00030 #endif
00031       MnAlgebraicSymMatrix tmp2(fMatrix.Nrow());
00032       for(unsigned int i = 0; i < fMatrix.Nrow(); i++) {
00033          tmp2(i,i) = 1./fMatrix(i,i);
00034       }
00035       return tmp2;
00036    }
00037    return tmp;
00038 }
00039 
00040    }  // namespace Minuit2
00041    
00042 }  // namespace ROOT

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