Meerkat is the multidimensional kernel density estimation package.
It uses a variation of kernel density estimation (KDE) technique, relative KDE, where kernel density provides the correction on top of some approximation PDF. The approximation PDF defines the behaviour of the resulting PDF estimate at the edges of the phase space and in the region of rapidly-changing structures. This approach allows to use kernel density estimation in a multidimensional case, for the phase spaces which have non-trivial boundaries (such as for Dalitz plots). For more details, see 2015 JINST 10 P02011 or arXiv:1411.5528.
The code uses ROOT NTuples as input data sets, and can output the resulting estimated distributions as ROOT histograms (for 1D and 2D distributions), therefore it should be easily integrated into the analyses using e.g. Laura++. For analyses in more than two dimensions, the estimated PDFs can be calculated as the multilinear interpolation on the binned grid, to allow fast calculation as part of unbinned amplitude fits.
Building the Code
Get the latest source code in the download area.
The package depends only on ROOT. Before building the code, it is necessary that either the ROOTSYS environment variable be set or that the root-config program be in the PATH.
To build the shared library:
> cd Meerkat > make
A shared library will be created in the lib sub-directory:
Examples and Documentation
Example code is included in the examples/ (for compiled C++ programs) and python/ (for PyROOT interface) directories.
To build the example C++ code:
> cd examples > make
To run python examples, you need PyROOT configured.
To build the online doxygen documentation just run doxygen in the top level Meerkat directory and then load the index.html file found in doxygen/html.
Contact: Anton Poluektov (University of Warwick, UK; Budker Institute of Nuclear Physics, Russia)