Eur. Phys. J. C (2015) 75:467
DOI 10.1140/epjc/s10052-015-3638-8
Special Article - Tools for Experiment and Theory
PySLHA: a Pythonic interface to SUSY Les Houches Accord data
Andy Buckley
a
School of Physics and Astronomy, University of Glasgow, Glasgow, UK
Received: 16 June 2015 / Accepted: 17 August 2015 / Published online: 1 October 2015
© The Author(s) 2015. This article is published with open access at Springerlink.com
Abstract This paper describes the PySLHA package, a
Python language module and program collection for reading,
writing and visualising SUSY model data in the SLHA for-
mat. PySLHA can read and write SLHA data in a very general
way, including the official SLHA2 extension and user cus-
tomisations, and with arbitrarily deep indexing of data block
entries and a dedicated, intuitive interface for particle data
and decay information. The draft SLHA3
XSECTION feature
is also fully supported. PySLHA can additionally read and
write the legacy ISAWIG model format, and provides for-
mat conversion scripts. A publication-quality mass spectrum
and decay chain plotting tool,
slhaplot, is included in the
package.
1 Introduction
The SUSY Les Houches Accord (SLHA) data format [1]
has proven an effective and exceedingly popular mechanism
for exchange of weak-scale supersymmetry model informa-
tion between spectrum generator codes (e.g. SoftSUSY [2],
SPheno [3], and many others) to Monte Carlo event genera-
tors and other users of weak scale SUSY parameters. As such,
SLHA has become the current de facto format for exchange of
SUSY model data, replacing various code-specific formats
such as the ISAWIG format [4] used to exchange ISAJET-
generated [5] model data to the Fortran HERWIG event
generator [6].
SLHA’s text-based format was designed to be easily writ-
ten and read by hand, and by the prevalent Fortran-based
spectrum generators and MC codes at the time of its defini-
tion. The original format was defined during and following
a
e-mail: andy.buckley@cern.ch
the Les Houches 2003 workshop [1], and was extended in
2007 to the current version 2 of the SLHA standard[7,8].
The format consists of blocks of model data, each identi-
fied by a header line starting with either
BLOCK or DECAY
for model data blocks and particle decays respectively. Each
data block has a name and an associated energy scale at
which it is defined, as well as many entries. Decay blocks
each define the total decay width and a list of constituent
decay channels and branching ratios for a particle species
(identified using the PDG MC numbering scheme). The lat-
est update of the SLHA standard introduces a
XSECTION
block type for representation of calculated process cross-
sections at various energies and in different calculation
schemes.
Several SLHA reader codes already exist in the Fortran
and C++ languages, but the popular Python language was
until recently unblessed with such functionality. Python is
an interpreted language, particularly well suited to clear and
effective expression of complex logic, and particularly has
advantages over Fortran, C++ and other numerical/system
programming languages where “high-level” operations such
as rich string parsing are involved. This is often the case in
SUSY model exploration, where Python can act as a glue
to tie together the input and output stages of several distinct
modelling programs. The PySLHA library described in this
note is a Python language module (and several Python pro-
grams) for reading, writing, and converting SLHA model
data, as well as providing a high quality plotter of SUSY
model mass spectra and decay chains, hence providing a con-
venient and powerful integration of SLHA into the Python
“glue layer” for BSM model studies.
2 Library features
PySLHA’s main programmatic features are the
Doc, Block,
Particle & Decay, and Process & XSec classes, which
map directly on to features of the SLHA data format. We
123