Skip to content

KIT-CMS/Excalibur

Repository files navigation

Excalibur

Build Status

Excalibur is a high energy physics analysis tool for performing studies using Z+Jets data recorded at the CMS experiment at CERN, and in particular for deriving part of the residual corrections needed for calibrating the jet energy scale. It is built on top of the event data processing framework Artus.

This repository hosts the source code and configuration files for Excalibur and the associated plotting tool, Merlin.

Please also have a look at the documentation for Artus and HarryPlotter.

The predecessor of this framework was also named excalibur and can be found here (protected).

Input Format

Both Artus and Excalibur make use of event data stored in ROOT files. These files contain event data extracted from CMS EDM data sets by the ĸappa framework in a process known as "skimming".

The format of Kappa ROOT files is different from that of the original EDM formats (RECO, AOD, MINIAOD, etc.). The interface for accessing the event data stored in these files is defined in the ĸappa and KappaTools packages.

Installation Notes

The basic requirements for Excalibur are:

  • GCC compiler (>= 4.8)
  • ROOT (== 5.34)
  • boost (>= 1.50)
  • Python 2 (>= 2.6)

Although it can be installed as a standalone package, the most convenient way of satisfying all dependencies is to set up a working area of the CMS Software Framework (CMSSW).

Please refer to the Wiki for a step-by-step guide to this process.

Running Excalibur

Before running Excalibur in a new shell session, the file scripts/ini_excalibur.sh must be sourced:

cd Excalibur
source scripts/ini_excalibur.sh

The main executable for running Excalibur is excalibur.py. This is a Python wrapper around the executable generated from the C++ code which provides a flexible way of configuring Excalibur by supplying a configuration file written in Python.

Excalibur can be run locally by providing the full path to a Python configuration file:

excalibur.py /path/to/config.py

If the configuration file is located in the cfg/excalibur subdirectory, then the filename can be used without providing the full path, and the extension .py can be omitted as well. The following commands are equivalent:

excalibur.py cfg/excalibur/example_config.py
excalibur.py example_config

To see a list of command line arguments and their description, run:

excalibur.py --help

Some useful arguments are:

  • -b: run in batch mode. This parameter takes an optional argument specifying the computing resource use. See -h
  • -c: only create config and exit
  • -f *n*: only process the first n input files

Further reading

For more information, please consult the Excalibur Wiki.