Prerequisites of the Herwig program

The Herwig program is a large framework which incorporates many third party libraries. If you are Using the Herwig bootstrap script you do not need to take care of the installation of these packages. However, it may be that you want to install some of these packages manually or have them already installed on your machine. To make sure that Herwig works correctly make sure that all installations are performed with parameters such as outlined below.

We start with the numerical tools underlying Herwig. In the second section we describe the the different tools Herwig uses to compute the matrix elements.

Note: If you have already running ThePEG or Herwig++ installations on your system, make sure that while installing the programs no leftovers of these are present in your LD_LIBRARY_PATH.

We assume that all the packages are to be installed in a common location specified by the environment variable INSTALL_LOC which can be set using

export INSTALL_LOC=/where/to/install/the/packages

Tools

BOOST

Boost is a collection of widely used C++ libraries and headers for numerical computation. However, the Boost package will only work with Herwig if installed with --layout=tagged and the libraries are installed. To have only the headers (e.g. Rivet’s default) is not enough. This means your Boost installation should look similar to the following (use the --with-python if you also like to use Boost libraries within python code)

cd /where/to/build/boost
wget -O boost_1_62_0.tar.gz "http://sourceforge.net/projects/boost/files/boost/1.62.0/boost_1_62_0.tar.gz/download"
tar -xvf boost_1_62_0.tar.gz
cd boost_1_62_0
./bootstrap.sh --prefix=$INSTALL_LOC --with-python=$(which python)
./b2 install --layout=tagged

Note: without this tag wrong BOOST installs might get linked against the build, which leads to an error during make.

Note: this is not necessary if you are Using the Herwig bootstrap script.

Note: the above BOOST version is the most current one at the time of writing. You may find newer versions and additional information on the BOOST web-page.

RIVET

RIVET is a standardized HEP analysis tool. A thorough installation guide can be found on the Rivet web-page. However, make sure to NOT install BOOST with RIVET as this will not work for Herwig. Using the rivet-bootstrap this means your installation might look like

INSTALL_PREFIX=$INSTALL_LOC INSTALL_BOOST=0 BOOSTPATH=$INSTALL_LOC MAKE="make -j $(nproc)" ./rivet-bootstrap

If not configured differently RIVET automatically will install GSL, FastJet and HepMC. If you want to install these packages yourself (which we do not recommend) here is a short guide to installing each of them.

HEPMC

HepMC is a widely used event format:

cd /where/to/build/hepmc
wget "http://lcgapp.cern.ch/project/simu/HepMC/download/HepMC-2.06.09.tar.gz"
tar -xvf HepMC-2.06.09.tar.gz
cd HepMC-2.06.09
./configure --prefix=$INSTALL_LOC --with-momentum=GEV --with-length=MM
make -j$(nproc)
make check
make install

Note: the above HepMC version is the most current one at the time of writing. You might find newer versions and additional information on the HepMC web-page.

GSL

The Gnu Scientific Library (GSL) collects numerical standard tools. To install a local version follow these steps

cd /where/to/build/gsl
wget "http://ftp.heanet.ie/mirrors/gnu/gsl/gsl-2.2.1.tar.gz"
tar -xvf gsl-2.2.1.tar.gz
cd gsl-2.2.1
./configure --prefix=$INSTALL_LOC
make -j$(nproc)
make check
make install

Note: the above GSL version is the most current one at the time of writing. You might find newer versions and additional information on the GSL web-page.

FastJet

The FastJet package provides implementation of all the common jet algorithms. To install a local version follow these steps:

cd /where/to/build/fastjet
wget http://fastjet.fr/repo/fastjet-3.2.1.tar.gz
tar -xvf fastjet-3.2.1.tar.gz
cd fastjet-3.2.1
./configure --prefix=$INSTALL_LOC --enable-allplugins
make -j$(nproc)
make check
make install

Note: the above FastJet version is the most current one at the time of writing. You might find newer versions and additional information on the FastJet web-page.

LHAPDF

LHAPDF is a HEP tool to compute and interface the parton density functions. A local installation might look like

cd /where/to/build/lhapdf

wget "https://lhapdf.hepforge.org/downloads/LHAPDF-6.1.6.tar.gz"
tar -xvf LHAPDF-6.1.6.tar.gz
cd LHAPDF-6.1.6
./configure --prefix=$INSTALL_LOC --with-boost=$INSTALL_LOC
make -j$(nproc)
make check
make install

The pdf sets themselves have to be installed manually with lhapdf install <PDFSET>. As Herwig is using the CT14 PDF sets by default it is a good idea to install these using

lhapdf install CT14nlo
lhapdf install CT14lo

Note: the above LHAPDF version is the most current one at the time of writing. You may find newer versions and additional information on the LHAPDF web-page.

ThePEG

ThePEG is the standardized event generator frame work Herwig relies on. Therefore, it has mostly the same prerequisites as Herwig itself. In addition it provides the interface to the parton density functions (pdf’s) via the LHAPDF tool. The code can be downloaded using

wget "https://thepeg.hepforge.org/downloads/ThePEG-2.1.0.tar.bz2"
tar xjf ThePEG-2.1.0.tar.bz2

Alternatively advanced users may wish to checkout the code from the Mercurial repository

The code can then be configured and built

 cd ThePEG-2.1.0
 ./configure --prefix=$INSTALL_LOC --with-fastjet=$INSTALL_LOC \
             --with-gsl=$INSTALL_LOC --with-rivet=$INSTALL_LOC \
             --with-hepmc=$INSTALL_LOC --with-lhapdf=$INSTALL_LOC \
             --with-boost=$INSTALL_LOC
make -j$(nproc)
make check
make install

External amplitude providers

You do not need to install any of these packages for Herwig to work for simple processes. However, for more complicated processes we would recommend installing at least Madgraph and one of the general one-loop programs.

GoSam

GoSam is a general package for the calculation of tree-level and one-loop amplitudes. It can be installed by first downloading the GoSam installer and then running it. It is advisable to do this in a new directory

mkdir gosam
cd gosam
wget "http://gosam.hepforge.org/gosam_installer.py"
chmod 0755 ./gosam_installer.py
./gosam_installer.py -b -v --prefix=$INSTALL_LOC

This will install the latest version. You can find additional information at the GoSam web-page.

MadGraph

Madgraph/aMC@NLO is a general program which can calculate both tree-level and one-loop amplitudes. Unlike some of the other programs the Madgraph code does not need to be configured, compiled and installed just downloaded

wget "https://launchpad.net/mg5amcnlo/2.0/2.5.x/+download/MG5_aMC_v2.5.3.tar.gz"
tar xzf MG5_aMC_v2.5.3.tar.gz

Note: the above Madgraph/aMC@NLO version is the most current one at the time of writing. You may find newer versions and additional information on the MadGraph/aMC@NLO web-page.

Note:

  • As Madgraph is not compiled and installed when specifying the path later to link it with Herwig you must supply the fullpath, i.e.

    /where/you/extracted/the/tarball/MG5_aMC_v2_5_3
    
  • To calculate NLO processes you need an installed version of golem. We recommend that you install GoSam as described above. If you install golem yourself make sure that the libary is in your LD_LIBRARY_PATH.

  • Madgraph writes some files to the source location the first time it is run, which can cause problems if you install it on a read-only filesystem. We would therefore recommend you run a simple process during install to avoid this problem

    cd MG5_aMC_v2_5_3/
    bin/mg5_aMC
      generate e+ e- > u u~
      output
      quit()
    rm -rf PROC_sm_0
    

NJet

NJet is a program for the calculation of jets, W+jets, Z+jets, A+jets and AA+jets processes. It can be downloaded and compiled using

wget https://bitbucket.org/njet/njet/downloads/njet-2.0.0.tar.gz
tar xzf njet-2.0.0.tar.gz
cd njet-2.0.0
./configure --prefix=$INSTALL_LOC --disable-autoflags
make -j$(nproc)
make check
make install

Note:

  • The above NJet version is the most current one at the time of writing. You may find newer versions and additional information on the NJet web-page.
  • Configure with –disable-autoflags, otherwise NJet is compiled with -march=native and -mtune=native which results in SIGILL coredumps on non-compatible CPUs.

OpenLoops

The OpenLoops program can calculate a wide range of one-loop ampiltudes. It can be downloaded using

svn co http://openloops.hepforge.org/svn/OpenLoops/branches/public OpenLoops

There are a qwide range of processses available, here we will only install the processes for \(q\bar{q}\to \gamma/Z^0\to \ell^+\ell^-\)

cd OpenLoops
./openloops libinstall ppll

The full list of available processes can be found on the OpenLoops web-page.

Note:

  • As OpenLoops is not installed when specifying the path later to link it with Herwig you must supply the fullpath, i.e.

    /where/you/checkedout/openloops/OpenLoops
    
  • OpenLoops needs to be complied with either gfortran 4.6 or later or ifort.

VBFNLO

The VBFNLO program simulates vector-boson fusion processes at both leading and next-to-leading order. It can be downloaded and installed using

wget "http://www.itp.kit.edu/~vbfnloweb/archive/vbfnlo-3.0.0beta3.tgz"
tar xzf vbfnlo-3.0.0beta3.tgz
cd VBFNLO-3.0.0beta3
./configure --prefix=$INSTALL_LOC
make -s -j$(nproc)
make -s install

More information can be found on the VBFNLO web-page.

Decays

Starting with Herwig7.1 we also provide the option of using the EvtGen package to perform the decays of hadrons. EvtGen in turn uses TAUOLA to perform some tau decays, PHOTOS to generate QED radiation and Pythia8 to hadronize any partonic decays. Due to problems on some platforms we do not build EvtGen with TAUOLA or PHOTOS by default, however you can install them if you wish to do so. As EvtGen will only build with specific versions (especially of Pythia 8) we strongly recommend you use the versions nentioned below, unless you use a consistent set of versions for a more recent EvtGen version.

TAUOLA

The TAUOLA program simulates the decays of tau leptons, it is only used by EvtGen, and even then not by default. It can be downloaded and installed using

wget "http://tauolapp.web.cern.ch/tauolapp/resources/TAUOLA.1.1.5/TAUOLA.1.1.5.tar.gz"
tar xzf TAUOLA.1.1.5.tar.gz
cd TAUOLA
./configure --prefix=$INSTALL_LOC --with-hepmc=$INSTALL_LOC
make -s -j$(nproc)
make -s install

PHOTOS

The PHOTOS program simulates the QED radiation in decays, it is only used by EvtGen. It can be downloaded and installed using

wget "http://photospp.web.cern.ch/photospp/resources/PHOTOS.3.61/PHOTOS.3.61.tar.gz"
tar xzf PHOTOS.3.61.tar.gz
cd PHOTOS
./configure --prefix=$INSTALL_LOC --with-hepmc=$INSTALL_LOC
make -s -j$(nproc)
make -s install

Pythia8

The Pythia8 event generator is only used by EvtGen to hadronize decays. It can be downloaded and installed using

wget "http://home.thep.lu.se/~torbjorn/pythia8/pythia8186.tgz"
tar xzf pythia8186.tgz
cd pythia8186
./configure --prefix=$INSTALL_LOC --enable-shared --with-hepmc=$INSTALL_LOC
make -s -j$(nproc)
make -s install

EvtGen

The EvtGen decay package can be used to perform the decays of, in particular bottom, hadrons. It can be downloaded and installed using

wget "http://evtgen.warwick.ac.uk/static/srcrep/R01-06-00/EvtGen.R01-06-00.tar.gz"
tar xzf EvtGen.R01-06-00.tar.gz
cd EvtGen/R01-06-00
./configure --prefix=$INSTALL_LOC --prefix=$INSTALL_LOC --hepmcdir=$INSTALL_LOC \
            --tauoladir=$INSTALL_LOC --photosdir=$INSTALL_LOC --pythiadir=$INSTALL_LOC
 make -s -j$(nproc)
 make -s install