pynfold

pynFold: implementation of various solutions to unfoldngand the inverse problem


License
MIT
Install
pip install pynfold==0.1.dev0

Documentation

pynFold - Unfolding with python

Build Status

Oh, crumbs!

pynFold (pronounced pen-fold) is a pythonic implementation of (eventually) many of the RooUnfold ROOT Unfolding Framework aiming to compare unfolding methods with those provided outisde of high energy physics and to increase robustness by eliminating dependencies on the ROOT libraries basing algorithms only on numpy and minimal additional libraries.

The base algorithm implemented here is the fully basian unfolding method based on work by Clement Helsens, Davide Gerbaudo, and Francesco Rubbo fbu

Unfolding relates to the problem of estimating probability distributions in cases where no parametric form is available, and where the data are subject to additional random fluctuations due to limited resolution. The same mathematics can be found under the general heading of inverse problems, and is also called deconvolution or unsmearing.

integral equation

when g(t) and K(t|s) are known. This type of equation is also known as the Fredholm integral of the first kind. The Kernel K, acts as a smoothing matrix in the forward detector and we can interpret its elements as a matrix of probabilites, strictly positive between 0 and one. Inverting the matrix (if possible) resutls in strictly non-probabilistic terms that instead of smothing add large high frequency components due to arbitrarily small fluctuations. The goal of unfolding is to impose some knowledge about the smoothness of this matrix onto the inversion to suppress such high frequency elements.

This project is currently under development. If you would like to be involved please contact vincent.croft at cern.ch or contact me on slack.

this project depends on numpy, scipy and pymc