26                                    const std::vector<double> &
pdir, 
double tlr, 
unsigned int maxcalls)
 const 
   34   unsigned int npar = par.size();
 
   35   unsigned int nfcn = 0;
 
   54   std::vector<double> 
alsb(3, 0.), 
flsb(3, 0.);
 
   56   MnPrint print(
"MnFunctionCross");
 
   58   print.
Debug([&](std::ostream &os) {
 
   59      for (
unsigned int i = 0; i < par.size(); ++i)
 
   60         os << 
"Parameter " << par[i] << 
" value " << 
pmid[i] << 
" dir " << 
pdir[i] << 
" function min = " << 
aminsv 
   61            << 
" contour value aim = (fmin + up) = " << 
aim;
 
   67   for (
unsigned int i = 0; i < par.size(); i++) {
 
   68      unsigned int kex = par[i];
 
   75            if (std::fabs(
zdir) < 
fState.Precision().Eps()) {
 
   82         } 
else if (
zdir < 0. && 
fState.Parameter(
kex).HasLowerLimit()) {
 
   84            if (std::fabs(
zdir) < 
fState.Precision().Eps()) {
 
   99      print.
Warn(
"Parameter is at limit", 
pmid[0], 
"delta", 
pdir[0]);
 
  108   print.
Info([&](std::ostream &os) {
 
  109      os << 
"Run Migrad with fixed parameters:";
 
  110      for (
unsigned i = 0; i < 
npar; ++i)
 
  111         os << 
"\n  Pos " << par[i] << 
": " << 
fState.Name(par[i]) << 
" = " << 
pmid[i];
 
  114   for (
unsigned int i = 0; i < 
npar; i++)
 
  127      print.
Warn(
"New minimum found while scanning parameter", par.front(), 
"new value =", 
min0.Fval(),
 
  128                 "old value =", 
fFval);
 
  131   if (
min0.HasReachedCallLimit())
 
  158   print.
Info([&](std::ostream &os) {
 
  159      os << 
"Run Migrad again (2nd) with fixed parameters:";
 
  160      for (
unsigned i = 0; i < 
npar; ++i)
 
  161         os << 
"\n  Pos " << par[i] << 
": " << 
fState.Name(par[i]) << 
" = " << 
pmid[i] + (
aopt)*
pdir[i];
 
  164   for (
unsigned int i = 0; i < 
npar; i++)
 
  174   if (
min1.HasReachedCallLimit())
 
  195      for (
unsigned int it = 0; it < 
maxlk; it++) {
 
  206         print.
Info([&](std::ostream &os) {
 
  207            os << 
"Run Migrad again (iteration " << it << 
" ) :";
 
  208            for (
unsigned i = 0; i < 
npar; ++i)
 
  209               os << 
"\n  parameter " << par[i] << 
" (" << 
fState.Name(par[i]) << 
") fixed to " 
  213         for (
unsigned int i = 0; i < 
npar; i++)
 
  223         if (
min1.HasReachedCallLimit())
 
  252   double fdist = std::min(std::fabs(
aim - 
flsb[0]), std::fabs(
aim - 
flsb[1]));
 
  255   if (std::fabs(
aopt) > 1.)
 
  274   print.
Info([&](std::ostream &os) {
 
  275      os << 
"Run Migrad again (3rd) with fixed parameters:";
 
  276      for (
unsigned i = 0; i < 
npar; ++i)
 
  277         os << 
"\n  Pos " << par[i] << 
": " << 
fState.Name(par[i]) << 
" = " << 
pmid[i] + (
aopt)*
pdir[i];
 
  280   for (
unsigned int i = 0; i < 
npar; i++)
 
  290   if (
min2.HasReachedCallLimit())
 
  305   unsigned int ibest = 2;
 
  309   for (
unsigned int i = 0; i < 3; i++) {
 
  339      print.
Debug(
"All three points below - look again fir positive slope");
 
  349   print.
Debug(
"New straight line using point 1-2; dfda", 
dfda);
 
  363      print.
Debug(
"Parabola fit: iteration", 
ipt);
 
  381      print.
Debug(
"Parabola fit: x1", 
x1, 
"x2", 
x2, 
"s1", 
s1, 
"s2", 
s2);
 
  384         print.
Warn(
"Problem 1");
 
  398      if (std::fabs(
aopt) > 1.)
 
  412      unsigned int ileft = 3;
 
  414      unsigned int iout = 3;
 
  418      for (
unsigned int i = 0; i < 3; i++) {
 
  435         } 
else if (
ileft == 3)
 
  475      print.
Info([&](std::ostream &os) {
 
  476         os << 
"Run Migrad again at new point (#iter = " << 
ipt+1 << 
" ):";
 
  477         for (
unsigned i = 0; i < 
npar; ++i)
 
  478            os << 
"\n\t - parameter " << par[i] << 
" fixed to " << 
pmid[i] + (
aopt)*
pdir[i];
 
  481      for (
unsigned int i = 0; i < 
npar; i++)
 
  491      if (
min2.HasReachedCallLimit())
 
 
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 x2
 
Option_t Option_t TPoint TPoint const char x1
 
class holding the full result of the minimization; both internal and external (MnUserParameterState) ...
 
void SetValue(unsigned int, double)
 
const MnUserParameterState & fState
 
const MnStrategy & fStrategy
 
MnCross operator()(const std::vector< unsigned int > &, const std::vector< double > &, const std::vector< double > &, double, unsigned int) const
 
Sets the relative floating point (double) arithmetic precision.
 
API class for minimization using Variable Metric technology ("MIGRAD"); allows for user interaction: ...
 
This class defines a parabola of the form a*x*x + b*x + c.
 
void Debug(const Ts &... args)
 
void Info(const Ts &... args)
 
void Warn(const Ts &... args)
 
API class for defining four levels of strategies: low (0), medium (1), high (2), very high (>=3); act...
 
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...