Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
BasicMinimumError.h
Go to the documentation of this file.
1// @(#)root/minuit2:$Id$
2// Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005
3
4/**********************************************************************
5 * *
6 * Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT *
7 * *
8 **********************************************************************/
9
10#ifndef ROOT_Minuit2_BasicMinimumError
11#define ROOT_Minuit2_BasicMinimumError
12
13#include "Minuit2/MnConfig.h"
14#include "Minuit2/MnMatrix.h"
15#include "Minuit2/LaSum.h"
17
18namespace ROOT {
19
20namespace Minuit2 {
21
22// extern StackAllocator gStackAllocator;
23
24/**
25 Internal Class containing the error information on the
26 estimated minimum :
27 Error matrix + dcovar + additional flags for quality and validity checks
28 */
29
31
32public:
34 };
36 };
38 };
40 };
41
42public:
43 BasicMinimumError(unsigned int n)
44 : fMatrix(MnAlgebraicSymMatrix(n)), fDCovar(1.), fValid(false), fPosDef(false), fMadePosDef(false),
45 fHesseFailed(false), fInvertFailed(false), fAvailable(false)
46 {
47 }
48
49 BasicMinimumError(const MnAlgebraicSymMatrix &mat, double dcov)
50 : fMatrix(mat), fDCovar(dcov), fValid(true), fPosDef(true), fMadePosDef(false), fHesseFailed(false),
51 fInvertFailed(false), fAvailable(true)
52 {
53 }
54
56 : fMatrix(mat), fDCovar(1.), fValid(false), fPosDef(false), fMadePosDef(false), fHesseFailed(true),
57 fInvertFailed(false), fAvailable(true)
58 {
59 }
60
62 : fMatrix(mat), fDCovar(1.), fValid(true), fPosDef(false), fMadePosDef(true), fHesseFailed(false),
63 fInvertFailed(false), fAvailable(true)
64 {
65 }
66
68 : fMatrix(mat), fDCovar(1.), fValid(false), fPosDef(true), fMadePosDef(false), fHesseFailed(false),
69 fInvertFailed(true), fAvailable(true)
70 {
71 }
72
74 : fMatrix(mat), fDCovar(1.), fValid(false), fPosDef(false), fMadePosDef(false), fHesseFailed(false),
75 fInvertFailed(false), fAvailable(true)
76 {
77 }
78
80
84 {
85 }
86
88 {
89 fMatrix = err.fMatrix;
90 fDCovar = err.fDCovar;
91 fValid = err.fValid;
92 fPosDef = err.fPosDef;
97 return *this;
98 }
99
100 void *operator new(size_t nbytes) { return StackAllocatorHolder::Get().Allocate(nbytes); }
101
102 void operator delete(void *p, size_t /*nbytes */) { StackAllocatorHolder::Get().Deallocate(p); }
103
104 MnAlgebraicSymMatrix Matrix() const { return 2. * fMatrix; }
105
106 const MnAlgebraicSymMatrix &InvHessian() const { return fMatrix; }
107
109
110 double Dcovar() const { return fDCovar; }
111 bool IsAccurate() const { return fDCovar < 0.1; }
112 bool IsValid() const { return fValid; }
113 bool IsPosDef() const { return fPosDef; }
114 bool IsMadePosDef() const { return fMadePosDef; }
115 bool HesseFailed() const { return fHesseFailed; }
116 bool InvertFailed() const { return fInvertFailed; }
117 bool IsAvailable() const { return fAvailable; }
118
119private:
121 double fDCovar;
122 bool fValid;
128};
129
130} // namespace Minuit2
131
132} // namespace ROOT
133
134#endif // ROOT_Minuit2_BasicMinimumError
#define e(i)
Definition RSha256.hxx:103
Internal Class containing the error information on the estimated minimum : Error matrix + dcovar + ad...
BasicMinimumError(const MnAlgebraicSymMatrix &mat, double dcov)
BasicMinimumError(const MnAlgebraicSymMatrix &mat, MnMadePosDef)
BasicMinimumError(const BasicMinimumError &e)
BasicMinimumError & operator=(const BasicMinimumError &err)
BasicMinimumError(const MnAlgebraicSymMatrix &mat, MnHesseFailed)
MnAlgebraicSymMatrix Hessian() const
const MnAlgebraicSymMatrix & InvHessian() const
BasicMinimumError(const MnAlgebraicSymMatrix &mat, MnNotPosDef)
BasicMinimumError(const MnAlgebraicSymMatrix &mat, MnInvertFailed)
MnAlgebraicSymMatrix Matrix() const
Class describing a symmetric matrix of size n.
Definition LASymMatrix.h:45
static StackAllocator & Get()
void * Allocate(size_t nBytes)
const Int_t n
Definition legend1.C:16
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...