Decorrelated Tagging Functions

You can get this code by running

git clone --recursive git@github.com:dguest/decorrelated-tagging.git

Quickstart

Make sure you have boost property_tree (the JSON parser) and eigen3. If you don't, and you're working on lxplus, see below. Then type

make

and then

./bin/dtf-main

This should produce the same output as the Keras test script ./test-pattern.sh

Look in src/dtf-main.cxx for an example of the C++ interface in use.

Setup on systems with CVMFS

Most hep clusters have old versions of boost or eigen, which means this code won't build out of the box on e.g. lxplus. There's an attached script to fix this on any machine with cvmfs. Just run

. setup-on-cvmfs-systems.sh

The good news is that these libraries are header only: once you've compiled lwtnn you don't need this step.

Regenerating the NN configuration

The NN configuration files are in data/.

The arch.json and weights.h5 files were generated from Keras (by reading in the classifier.h5 file Peter provided and saving it out as weights and architecture separately). The inputs.json file is from make-input-variables-file.py in this repository.

These files are combined into the json file which the C++ code reads using a "converter" in lwtnn, specifically by calling

kerasfunc2json.py arch.json weights.h5 inputs.json > lwtnn-dtf-config.json