10#ifndef ROOT_Minuit2_MinimumError
11#define ROOT_Minuit2_MinimumError
56 if (
fPtr->fHessian.size() == 0)
58 return fPtr->fHessian;
66 MnPrint print(
"MinimumError::Invert");
67 print.
Warn(
"Inversion fails; return diagonal matrix");
68 for (
unsigned int i = 0; i < matrix.
Nrow(); ++i)
69 for (
unsigned int j = 0; j <= i; j++)
70 tmp(i, j) = i == j ? 1. / matrix(i, i) : 0;
unsigned int Nrow() const
bool HasReachedCallLimit() const
static MnAlgebraicSymMatrix InvertMatrix(const MnAlgebraicSymMatrix &matrix, int &ifail)
MinimumError(const MnAlgebraicSymMatrix &mat, Status status)
MinimumError(unsigned int n)
const MnAlgebraicSymMatrix & InvHessian() const
const MnAlgebraicSymMatrix & Hessian() const
MnAlgebraicSymMatrix Matrix() const
std::shared_ptr< Data > fPtr
static MnAlgebraicSymMatrix InvertMatrix(const MnAlgebraicSymMatrix &matrix)
MinimumError(const MnAlgebraicSymMatrix &mat, const MnAlgebraicSymMatrix &hess, double dcov)
MinimumError(const MnAlgebraicSymMatrix &mat, double dcov)
bool IsMadePosDef() const
bool InvertFailed() const
Force the covariance matrix to be positive defined by adding extra terms in the diagonal.
void Warn(const Ts &... args)
int Invert(LASymMatrix &)
LASymMatrix MnAlgebraicSymMatrix
MnAlgebraicSymMatrix fHessian
MnAlgebraicSymMatrix fMatrix