10#ifndef ROOT_Minuit2_MinimumError
11#define ROOT_Minuit2_MinimumError
42 : fPtr{new
Data{mat, dcov, true, true, false, false, false, true}}
47 : fPtr{new
Data{mat, 1.0, status == MnMadePosDef, false, status == MnMadePosDef, status == MnHesseFailed,
48 status == MnInvertFailed, true}}
61 MnPrint print(
"MinimumError::Hessian");
62 print.
Warn(
"Inversion fails; return diagonal matrix");
63 for (
unsigned int i = 0; i < fPtr->fMatrix.Nrow(); ++i)
64 for (
unsigned int j = 0; j <= i; j++)
65 tmp(i, j) = i == j ? 1. / fPtr->fMatrix(i, i) : 0;
70 double Dcovar()
const {
return fPtr->fDCovar; }
72 bool IsValid()
const {
return fPtr->fValid; }
73 bool IsPosDef()
const {
return fPtr->fPosDef; }
91 std::shared_ptr<Data>
fPtr;
Class describing a symmetric matrix of size n.
MinimumError keeps the inv.
MinimumError(const MnAlgebraicSymMatrix &mat, Status status)
MinimumError(unsigned int n)
const MnAlgebraicSymMatrix & InvHessian() const
MnAlgebraicSymMatrix Matrix() const
MnAlgebraicSymMatrix Hessian() const
std::shared_ptr< Data > fPtr
MinimumError(const MnAlgebraicSymMatrix &mat, double dcov)
bool IsMadePosDef() const
bool InvertFailed() const
void Warn(const Ts &... args)
int Invert(LASymMatrix &)
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
MnAlgebraicSymMatrix fMatrix