Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
MinimumError.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_MinimumError
11#define ROOT_Minuit2_MinimumError
12
14
15#include <memory>
16
17namespace ROOT {
18
19namespace Minuit2 {
20
21/** MinimumError keeps the inv. 2nd derivative (inv. Hessian) used for
22 calculating the Parameter step size (-V*g) and for the covariance Update
23 (ErrorUpdator). The covariance matrix is equal to twice the inv. Hessian.
24 */
25
27
28public:
33
34public:
35 MinimumError(unsigned int n) : fData(std::make_shared<BasicMinimumError>(n)) {}
36
37 MinimumError(const MnAlgebraicSymMatrix &mat, double dcov) : fData(std::make_shared<BasicMinimumError>(mat, dcov)) {}
38
40 : fData(std::make_shared<BasicMinimumError>(mat, MnHesseFailed{}))
41 {
42 }
43
45 : fData(std::make_shared<BasicMinimumError>(mat, MnMadePosDef{}))
46 {
47 }
48
50 : fData(std::make_shared<BasicMinimumError>(mat, MnInvertFailed{}))
51 {
52 }
53
55 : fData(std::make_shared<BasicMinimumError>(mat, MnNotPosDef{}))
56 {
57 }
58
59 MnAlgebraicSymMatrix Matrix() const { return fData->Matrix(); }
60
61 const MnAlgebraicSymMatrix &InvHessian() const { return fData->InvHessian(); }
62
63 MnAlgebraicSymMatrix Hessian() const { return fData->Hessian(); }
64
65 double Dcovar() const { return fData->Dcovar(); }
66 bool IsAccurate() const { return fData->IsAccurate(); }
67 bool IsValid() const { return fData->IsValid(); }
68 bool IsPosDef() const { return fData->IsPosDef(); }
69 bool IsMadePosDef() const { return fData->IsMadePosDef(); }
70 bool HesseFailed() const { return fData->HesseFailed(); }
71 bool InvertFailed() const { return fData->InvertFailed(); }
72 bool IsAvailable() const { return fData->IsAvailable(); }
73
74private:
75 std::shared_ptr<BasicMinimumError> fData;
76};
77
78} // namespace Minuit2
79
80} // namespace ROOT
81
82#endif // ROOT_Minuit2_MinimumError
Internal Class containing the error information on the estimated minimum : Error matrix + dcovar + ad...
Class describing a symmetric matrix of size n.
Definition LASymMatrix.h:45
MinimumError keeps the inv.
MinimumError(const MnAlgebraicSymMatrix &mat, MnMadePosDef)
MinimumError(unsigned int n)
std::shared_ptr< BasicMinimumError > fData
const MnAlgebraicSymMatrix & InvHessian() const
MnAlgebraicSymMatrix Matrix() const
MnAlgebraicSymMatrix Hessian() const
MinimumError(const MnAlgebraicSymMatrix &mat, MnHesseFailed)
MinimumError(const MnAlgebraicSymMatrix &mat, MnInvertFailed)
MinimumError(const MnAlgebraicSymMatrix &mat, double dcov)
MinimumError(const MnAlgebraicSymMatrix &mat, MnNotPosDef)
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...