10 #ifndef ROOT_Minuit2_MinimumError
11 #define ROOT_Minuit2_MinimumError
31 class MnMadePosDef {};
32 class MnHesseFailed {};
33 class MnInvertFailed {};
37 MinimumError(
unsigned int n) : fData(MnRefCountedPointer<BasicMinimumError>(new BasicMinimumError(n))) {}
39 MinimumError(
const MnAlgebraicSymMatrix& mat,
double dcov) : fData(MnRefCountedPointer<BasicMinimumError>(new BasicMinimumError(mat, dcov))) {}
41 MinimumError(
const MnAlgebraicSymMatrix& mat, MnHesseFailed) : fData(MnRefCountedPointer<BasicMinimumError>(new BasicMinimumError(mat, BasicMinimumError::MnHesseFailed()))) {}
43 MinimumError(
const MnAlgebraicSymMatrix& mat, MnMadePosDef) : fData(MnRefCountedPointer<BasicMinimumError>(new BasicMinimumError(mat, BasicMinimumError::MnMadePosDef()))) {}
45 MinimumError(
const MnAlgebraicSymMatrix& mat, MnInvertFailed) : fData(MnRefCountedPointer<BasicMinimumError>(new BasicMinimumError(mat, BasicMinimumError::MnInvertFailed()))) {}
47 MinimumError(
const MnAlgebraicSymMatrix& mat, MnNotPosDef) : fData(MnRefCountedPointer<BasicMinimumError>(new BasicMinimumError(mat, BasicMinimumError::MnNotPosDef()))) {}
51 MinimumError(
const MinimumError& e) : fData(e.fData) {}
53 MinimumError& operator=(
const MinimumError& err) {
58 MnAlgebraicSymMatrix Matrix()
const {
return fData->Matrix();}
60 const MnAlgebraicSymMatrix& InvHessian()
const {
return fData->InvHessian();}
62 MnAlgebraicSymMatrix Hessian()
const {
return fData->Hessian();}
64 double Dcovar()
const {
return fData->Dcovar();}
65 bool IsAccurate()
const {
return fData->IsAccurate();}
66 bool IsValid()
const {
return fData->IsValid();}
67 bool IsPosDef()
const {
return fData->IsPosDef();}
68 bool IsMadePosDef()
const {
return fData->IsMadePosDef();}
69 bool HesseFailed()
const {
return fData->HesseFailed();}
70 bool InvertFailed()
const {
return fData->InvertFailed();}
71 bool IsAvailable()
const {
return fData->IsAvailable();}
75 MnRefCountedPointer<BasicMinimumError> fData;
82 #endif // ROOT_Minuit2_MinimumError