Logo ROOT  
Reference Guide
MinosError.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_MinosError
11#define ROOT_Minuit2_MinosError
12
13#include "Minuit2/MnCross.h"
14#include <iostream>
15
16namespace ROOT {
17
18 namespace Minuit2 {
19
20//____________________________________________________________________________________
21/**
22 Class holding the result of Minos (lower and upper values) for a specific parameter
23 */
24
26
27public:
28
30
31 MinosError(unsigned int par, double value, const MnCross& low, const MnCross& up) : fParameter(par), fMinParValue(value), fUpper(up), fLower(low) {}
32
34
36
37 MinosError& operator=(const MinosError& ) = default;
38
42 fUpper = err.fUpper;
43 fLower = err.fLower;
44 return *this;
45 }
46
47 std::pair<double,double> operator()() const {
48 return std::pair<double,double>(Lower(), Upper());
49 }
50 double Lower() const {
51 if (AtLowerLimit())
53 if (LowerValid() )
54 return -1. * LowerState().Error(Parameter()) * (1. + fLower.Value());
55 // return Hessian Error in case is invalid
56 return - LowerState().Error(Parameter());
57 }
58 double Upper() const {
59 if (AtUpperLimit())
61 if (UpperValid())
62 return UpperState().Error(Parameter()) * (1. + fUpper.Value());
63 // return Hessian Error in case is invalid
64 return UpperState().Error(Parameter());
65 }
66 unsigned int Parameter() const {return fParameter;}
67 const MnUserParameterState& LowerState() const {return fLower.State();}
68 const MnUserParameterState& UpperState() const {return fUpper.State();}
69 bool IsValid() const {return fLower.IsValid() && fUpper.IsValid();}
70 bool LowerValid() const {return fLower.IsValid();}
71 bool UpperValid() const {return fUpper.IsValid();}
72 bool AtLowerLimit() const {return fLower.AtLimit();}
73 bool AtUpperLimit() const {return fUpper.AtLimit();}
74 bool AtLowerMaxFcn() const {return fLower.AtMaxFcn();}
75 bool AtUpperMaxFcn() const {return fUpper.AtMaxFcn();}
76 bool LowerNewMin() const {return fLower.NewMinimum();}
77 bool UpperNewMin() const {return fUpper.NewMinimum();}
78 unsigned int NFcn() const {return fUpper.NFcn() + fLower.NFcn();}
79 // return parameter value at the minimum
80 double Min() const {return fMinParValue;}
81
82private:
83
84 unsigned int fParameter;
88};
89
90 } // namespace Minuit2
91
92} // namespace ROOT
93
94#endif // ROOT_Minuit2_MinosError
Class holding the result of Minos (lower and upper values) for a specific parameter.
Definition: MinosError.h:25
double Upper() const
Definition: MinosError.h:58
double Min() const
Definition: MinosError.h:80
MinosError(unsigned int par, double value, const MnCross &low, const MnCross &up)
Definition: MinosError.h:31
unsigned int fParameter
Definition: MinosError.h:84
bool UpperValid() const
Definition: MinosError.h:71
MinosError & operator()(const MinosError &err)
Definition: MinosError.h:39
unsigned int NFcn() const
Definition: MinosError.h:78
bool LowerValid() const
Definition: MinosError.h:70
unsigned int Parameter() const
Definition: MinosError.h:66
bool UpperNewMin() const
Definition: MinosError.h:77
const MnUserParameterState & UpperState() const
Definition: MinosError.h:68
bool AtUpperLimit() const
Definition: MinosError.h:73
bool AtLowerMaxFcn() const
Definition: MinosError.h:74
std::pair< double, double > operator()() const
Definition: MinosError.h:47
const MnUserParameterState & LowerState() const
Definition: MinosError.h:67
bool AtUpperMaxFcn() const
Definition: MinosError.h:75
MinosError(const MinosError &err)
Definition: MinosError.h:35
bool LowerNewMin() const
Definition: MinosError.h:76
bool AtLowerLimit() const
Definition: MinosError.h:72
MinosError & operator=(const MinosError &)=default
double Lower() const
Definition: MinosError.h:50
bool AtLimit() const
Definition: MnCross.h:64
const MnUserParameterState & State() const
Definition: MnCross.h:62
unsigned int NFcn() const
Definition: MnCross.h:67
bool AtMaxFcn() const
Definition: MnCross.h:65
bool IsValid() const
Definition: MnCross.h:63
bool NewMinimum() const
Definition: MnCross.h:66
double Value() const
Definition: MnCross.h:61
class which holds the external user and/or internal Minuit representation of the parameters and error...
const MinuitParameter & Parameter(unsigned int i) const
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
Definition: StringConv.hxx:21