Signal Extraction with MCMC
A GPU-accelerated fit program which calculates fully frequentist confidence intervals or limits, computing the likelihood space with a Markov Chain Monte Carlo.
Building
sxmc
requires the following libraries:
It also uses (hemi)[https://github.com/harrism/hemi], which is included as a git submodule. After cloning `sxmc`, run:
$ git submodule init $ git submodule update
sxmc
runs much faster with the help of a CUDA-enabled GPU. To build with GPU
support, set `CUDA_ROOT` to point to your installation of the CUDA tools:
$ CUDA_ROOT=/usr/local/cuda make
If no GPU is available, sxmc
will simply loop instead of running things in
parallel. To build without GPU support:
$ make
You still need to have the CUDA headers installed, but no libraries or hardware are required.
Documentation
The code is fully documented in Doxygen. To view HTML docs, see here. To build build HTML and LaTeX documentation yourself, run
$ make doc
The output is placed into the doc
directory.
Usage
Create PDFs: PDFs are ROOT TH2Fs with event energy and radius dimensions. Each PDF is stored in its own ROOT file and named "pdf".
Configure fit: Set up the fit parameters and signal PDFs using a JSON-format configuration file. An example is provided in
config/
.To calculate signal sensitivity, run:
$ ./bin/sensitivity config/your_file.json
Configuration Files
The fit is controlled via a JSON-format configuration file. See
config/example.json
for an annotated example.