Decouple and Recouple
NOTE: ZENODO/GitHub demo. DOI shown is not real and used only for ZENODO/GitHub integration demo.
This repository contains the software implementation for our paper A Novel Approach to Higgs Coupling Measurements (Cranmer, Kreiss, Lopez-Val, Plehn), arXiv:1401.0080 [hep-ph]. It contains tools to apply the discussed methods to new models and contains a Makefile to recreate the plots in the paper.
A demo for the recoupling stage where the effective likelihood and template parametrization are readily provided is at decoupledDemo.
Install
Create a virtualenv
(which usually comes with your python environment or can be insalled) and install this package with pip:
virtualenv venv
source venv/bin/activate
pip install git+https://github.com/svenkreiss/decouple.git
Running on any model
You can create your own model and run decouple.py
and recouple.py
on them. decouple.py
takes root files with a RooWorkspace, containing the model as input and produces the effective Likelihood and eta files. recouple.py
takes eta files and effective Likelihoods (also from multiple channels to do a combination) and produces coupling results.
Example models are in the module ModelGenerators.
A fully working example that recouples a model that someone else decoupled is implemented in the decoupledDemo project.
Creating plots for the paper
Run everything with
make -j8
This tells make
to use parallel builds with 8 jobs in parallel. All profiled effective scans are implemented using the multiprocessing
python module which will use as many jobs as there are CPUs. So this can lead to 8 make jobs where each runs 8 multiprocessing jobs.
For finer control, the framework can also be run step-by-step:
make models
: runs the makefile inside theModelGenerators
modulemake decouple
: runs Decouple/decouple.py on all the models generated withModelGenerators
. For finer control,make decoupleTwoBin
andmake decoupleAtlasCounting
runs the two sets individually.make recouple
: runs Decouple/recouple.py on all decouple outputs. Also here, there aremake recoupleTwoBin
andmake recoupleAtlasCounting
.make plots
The above chain can be used as a best-practice example to setup your own models. The Makefile is just a guide so that you can see how to run Decouple/decouple.py
and Decouple/recouple.py
yourself on your own models.
Related Packages
This package depends on a few related Python packages that are generally useful. For this package, they are installed automatically by pip
with the install instructions above.
- LHCHiggsCouplings: Interface to cross sections and branching ratios published by the LHC Higgs Cross Section Working Group with interpolation in Higgs mass.
- BatchLikelihoodScan: Powerful tool for likelihood scans and easily runs on batch clusters.
- PyROOTUtils: Collection of useful tools for working with TGraphs and generally plotting with ROOT.