kernel_smoother is a library that implements binned kernel smoothing using discrete fast fourier transform. The code was specifically designed for new physics searches at the LHC, but can be applied for other applications as well.
Please refer to http://arxiv.org/abs/1402.0516 for more details regarding the physics of these searches. If you have any questions, feel free to send me an email at "hlou at princeton dot edu"
The library is implemented through a series of classes and functions, in summary, there are two core classes:
DataSet -- implements a binned dataset. It is essentially a multi-dimensional histogram
Template -- implements the template functions (or probability distribution function). Templates are created from DataSet using kernel smoothing
There are also sub-classes for the Template class for implementing Monte Carlo integration (or creating dressed events). They are:
Template::Dresser -- a "Monte-Carlo" generator that generates random dressed events. This is used to compute various integrals of the Template function (or probability distribution function).
Template::DressedEvent -- individual dressed-event. The Dresser creates a vector of DressedEvents, and DressedEvent contains information about Template at a random location.