icecube.lilliput.i3minuit module

class icecube.lilliput.i3minuit.IMinuitMinimizer(name='iminuit', Tolerance=0.1, MaxIterations=10000, MinuitPrintLevel=0, MinuitStrategy=2, Algorithm='SIMPLEX', FlatnessCheck=False, WithGradients=False, CheckGradient=False, IgnoreEDM=False, MinuitPrecision=None)

Bases: I3Minimizer

Wrapper for the iminuit minimization algorithm for use with the Gulliver suite.

It is intended to be a drop-in replacement for the ROOT-based minimizers I3GulliverMinuitFactory and I3GulliverMinuit2Factory found in the Gulliver suite. iminuit is a stand alone Python package which contains Minuit2. It is relativly well maintained and unlike the version which comes with ROOT, it does not print anything to stdout when you set the print level to zero.

If you do not have iminuit, it can be insalled very easily using the following command: pip install iminuit

Parameters:
  • name (string, optional) – String for the Gulliver module to identify the minimizer

  • tolerance (float, optional) – Tolerance for finding the minimum

  • MaxIterations (int, optional) – Maximum number of iterations to perform before giving up

  • MinuitPrintLevel (int, optional) – Set print level: 0 = quiet, 1 = normal, 2 = paranoid, 3 = really paranoid

  • MinuitStrategy (int,optional) – 0 = fast, 1 = default, 2 = slow but valid

  • Algorithm (string,optional) – Currently SIMPLEX, MIGRAD

  • FlatnessCheck (noop, not implemented) –

  • WithGradients (bool, optional) – Whether to use analytic gradients

  • CheckGradients (noop, iminuit does not check the first gradient numerically) –

  • IgnoreEDM (bool, optional) – Ignore EDM when checking for convergence. If True requires that fmin be both valid and accurate.

CheckParameters()
GetName()
Minimize((I3Minimizer)arg1, (I3GulliverBase)arg2, (I3FitParameterInitSpecsSeries)arg3) I3MinimizerResult :
C++ signature :

I3MinimizerResult Minimize(I3MinimizerBase {lvalue},I3GulliverBase {lvalue},std::__1::vector<I3FitParameterInitSpecs, std::__1::allocator<I3FitParameterInitSpecs>>)

Minimize( (I3Minimizer)arg1, (I3GulliverBase)arg2, (I3FitParameterInitSpecsSeries)arg3) -> None :

C++ signature :

void Minimize(I3MinimizerWrapper {lvalue},I3GulliverBase {lvalue},std::__1::vector<I3FitParameterInitSpecs, std::__1::allocator<I3FitParameterInitSpecs>>)

UsesGradient((I3Minimizer)arg1) bool :
C++ signature :

bool UsesGradient(I3MinimizerBase {lvalue})