40 unsigned int nfcn = 0;
43 print.
Debug(
"MnContours: finding ",
npoints,
" contours points for ",px,py,
" at level ",
fFCN.Up(),
" from value ",
fMinimum.Fval());
45 std::vector<std::pair<double, double>>
result;
47 std::vector<MnUserParameterState> states;
64 print.
Debug(
"Run Minos to find first 4 contour points. Current minimum is : ",
valx,
valy);
68 if (!
mnex.IsValid()) {
69 print.
Error(
"unable to find first two points");
72 std::pair<double, double>
ex =
mnex();
74 print.
Debug(
"Minos error for p0: ",
ex.first,
ex.second);
78 if (!
mney.IsValid()) {
79 print.
Error(
"unable to find second two points");
82 std::pair<double, double>
ey =
mney();
84 print.
Debug(
"Minos error for p0: ",
ey.first,
ey.second);
96 print.
Error(
"unable to find Lower y Value for x Parameter", px);
100 print.
Debug(
"Minimum p1 found for p0 set to ",
migrad0.Value(px),
" is ",
exy_lo.UserState().Value(py),
"fcn = ",
exy_lo.Fval());
106 print.
Error(
"unable to find Upper y Value for x Parameter", px);
109 print.
Debug(
"Minimum p1 found for p0 set to ",
migrad0.Value(px),
" is ",
exy_up.UserState().Value(py),
"fcn = ",
exy_up.Fval());
118 print.
Error(
"unable to find Upper x Value for y Parameter", py);
121 print.
Debug(
"Minimum p0 found for p1 set to ",
migrad1.Value(py),
" is ",
eyx_up.UserState().Value(px),
"fcn = ",
eyx_up.Fval());
127 print.
Error(
"unable to find Lower x Value for y Parameter", py);
131 print.
Debug(
"Minimum p0 found for p1 set to ",
migrad1.Value(py),
" is ",
eyx_lo.UserState().Value(px),
"fcn = ",
eyx_lo.Fval());
134 double scalx = 1. / (
ex.second -
ex.first);
135 double scaly = 1. / (
ey.second -
ey.first);
144 print.
Debug(
"List of first 4 found contour points",
'\n',
" Parameter x is",
upar.Name(px),
'\n',
" Parameter y is",
upar.Name(py),
150 std::vector<unsigned int> par(2);
156 for (
unsigned int i = 4; i <
npoints; i++) {
183 print.
Error(
"maximum number of function calls exhausted");
187 print.
Debug(
"Find new contour point between points with max sep: (",
idist1->first,
", ",
idist1->second,
") and (",
200 std::vector<double>
pmid(2);
203 std::vector<double>
pdir(2);
214 print.
Error(
"unable to find point on Contour", i + 1,
'\n',
"found only", i,
"points");
219 print.
Debug(
"Unable to find point, try closer to p1 with weight values",
a1,
a2);
234 print.
Info(
"Found new contour point - pos: ",pos,
result[pos]);
237 print.
Info(
"Number of contour points =",
result.size());
238 print.
Debug(
"List of contour points");
239 for (
size_t i = 0; i <
result.size(); i++)
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
class holding the full result of the minimization; both internal and external (MnUserParameterState) ...
Class holding the result of Minos (lower and upper values) for a specific parameter.
std::vector< std::pair< double, double > > operator()(unsigned int, unsigned int, unsigned int npoints=20) const
ask for one Contour (points only) from number of points (>=4) and parameter indices
ContoursError Contour(unsigned int, unsigned int, unsigned int npoints=20) const
ask for one Contour ContoursError (MinosErrors + points) from number of points (>=4) and parameter in...
const FunctionMinimum & fMinimum
unsigned int NFcn() const
API class for minimization using Variable Metric technology ("MIGRAD"); allows for user interaction: ...
API class for Minos Error analysis (asymmetric errors); minimization has to be done before and Minimu...
MinosError Minos(unsigned int, unsigned int maxcalls=0, double toler=0.1) const
ask for MinosError (Lower + Upper) can be printed via std::cout
void Debug(const Ts &... args)
void Error(const Ts &... args)
void Info(const Ts &... args)
API class for defining four levels of strategies: low (0), medium (1), high (2), very high (>=3); act...
unsigned int Strategy() const
class which holds the external user and/or internal Minuit representation of the parameters and error...
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...