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      std::vector<unsigned int> 
vpar(1, ipar);
 
  102      print.
Debug(
"result of findCrossValue for par",ipar,
"status: ",status,
" searching from ",
vmid[0],
"dir",
vdir[0],
 
  120         return std::vector<double>();
 
  156      print.
Error(
"unable to find Lower y Value for x Parameter", px);
 
  161   if (
mnex.AtLowerLimit()) {
 
  165         print.
Error(
"unable to find corresponding value for ",py,
"when Parameter",px,
"is at lower limit: ", 
ustate.Value(px));
 
  177      print.
Error(
"unable to find Upper y Value for x Parameter", px);
 
  182   if (
mnex.AtUpperLimit()) {
 
  186         print.
Error(
"unable to find corresponding value for ",py,
"when Parameter",px,
"is at upper limit: ", 
ustate.Value(px));
 
  200      print.
Error(
"unable to find Lower x Value for y Parameter", py);
 
  205   if (
mney.AtLowerLimit()) {
 
  209         print.
Error(
"unable to find corresponding value for ",px,
"when Parameter",py,
"is at lower limit: ", 
ustate.Value(py));
 
  220      print.
Error(
"unable to find Upper x Value for y Parameter", py);
 
  225   if (
mney.AtUpperLimit()) {
 
  229         print.
Error(
"unable to find corresponding value for ",px,
"when Parameter",py,
"is at upper limit: ", 
ustate.Value(py));
 
  251   print.
Debug([&](std::ostream &os){
 
  252                  os << 
"List of first " << 
result.size() << 
" points found: \n";
 
  253                  os << 
"Parameters :   " <<  
upar.Name(px) << 
"\t" <<  
upar.Name(py) << std::endl;
 
  254                  for (
auto & 
p : 
result) os << 
p << std::endl;
 
  257   double scalx = 1. / (
ex.second - 
ex.first);
 
  258   double scaly = 1. / (
ey.second - 
ey.first);
 
  263   std::vector<unsigned int> par(2);
 
  270   for (
unsigned int i = 
np0; i < 
npoints; i++) {
 
  284         if (
distx == 0. && 
upar.Parameter(px).HasLimits() &&
 
  285            (
ipair->first == 
upar.Parameter(px).LowerLimit() || 
ipair->first == 
upar.Parameter(px).UpperLimit() ) )
 
  287         if (
disty == 0. && 
upar.Parameter(py).HasLimits() &&
 
  288            (
ipair->second == 
upar.Parameter(py).LowerLimit() || 
ipair->second == 
upar.Parameter(py).UpperLimit() ) )
 
  307            print.
Error(
"maximum number of function calls exhausted");
 
  311         print.
Debug(
"Find new contour point between points with max sep:  (",
idist1->first,
", ",
idist1->second,
") and (",
 
  324         std::vector<double> 
pmid(2);
 
  327         std::vector<double> 
pdir(2);
 
  339               print.
Info(
"Unable to find point on Contour", i + 1, 
'\n', 
"found only", i, 
"points");
 
  341            } 
else if (
a1 > 0.5) {
 
  344               print.
Debug(
"Unable to find point, try closer to p2 with weight values",
a1,
a2);
 
  348               print.
Debug(
"Unable to find point, try closer to p1 with weight values",
a1,
a2);
 
  364            print.
Info(
"Found new point - pos: ",pos,
result[pos], 
"fcn = ",opt.
State().Fval());
 
  371   print.
Info(
"Number of contour points =", 
result.size());
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
winID h TVirtualViewer3D TVirtualGLPainter p
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
Option_t Option_t TPoint TPoint const char y2
Option_t Option_t TPoint TPoint const char y1
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
const MnUserParameterState & State() const
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...