/probfit

Cost function builder. For fitting distributions.

Primary LanguageJupyter NotebookMIT LicenseMIT

probfit

probfit is a set of functions that helps you construct a complex fit. It's intended to be used with iminuit. The tool includes Binned/Unbinned Likelihood estimators, 𝝌² regression, Binned 𝝌² estimator and Simultaneous fit estimator. Various functors for manipulating PDFs such as Normalization and Convolution (with caching) and various built-in functions normally used in B physics are also provided.

Strict dependencies

Optional dependencies

Getting started

import numpy as np
from iminuit import Minuit
from probfit import UnbinnedLH, gaussian
data = np.random.randn(10000)
unbinned_likelihood = UnbinnedLH(gaussian, data)
minuit = Minuit(unbinned_likelihood, mean=0.1, sigma=1.1)
minuit.migrad()
unbinned_likelihood.draw(minuit)

Documentation and Tutorial

  • Documentation
  • The tutorial is an IPython notebook that you can view online here. To run it locally: cd tutorial; ipython notebook --pylab=inline tutorial.ipynb.
  • Developing probfit: see the development page

License

The package is licensed under the MIT license (open source).