zfit-interface

0.0.3 · active · verified Sun Apr 12

zfit-interface provides an abstraction layer to fit zfit models using external minimizers, currently supporting `iminuit`. It aims to offer a flexible interface for High Energy Physics (HEP) data fitting. This is an early-stage library, currently at version 0.0.3, with an irregular release cadence.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to define a zfit model and data, then use the `zfit-interface` to fit it with `iminuit`. It involves instantiating the `Iminuit` minimizer wrapper and the `ZfitMinuitFitter`.

import zfit
from zfit.models import Gauss
from zfit.spaces import Space
from zfit_interface.minimizer import Iminuit
from zfit_interface.fit import ZfitMinuitFitter

# 1. Define a zfit model and data
obs = Space('x', limits=(-10, 10))
mu = zfit.Parameter('mu', 0., -1., 1.)
sigma = zfit.Parameter('sigma', 1., 0.1, 10.)
gauss = Gauss(mu=mu, sigma=sigma, obs=obs)
data = gauss.sample(n=1000)

# 2. Instantiate the iminuit minimizer from zfit-interface
minimizer = Iminuit()

# 3. Create the zfit-interface fitter
fitter = ZfitMinuitFitter(minimizer=minimizer)

# 4. Perform the fit
result = fitter.fit(model=gauss, data=data)

print(f"Fit result: {result.params}")
print(f"Minimizer status: {result.info['minuit_minos_status']}")

view raw JSON →