This is a documentation for running events generation with Whizard+Pythia8 framework, including the Leading-Order (LO) and Next-to-Leading-Order (NLO) cases.
The following packages are necessary before installing Whizard and Pythia8. In MacOS, you may have not gfortran and/or ocaml. Please install them by Homebrew first.
LHAPDF is the standard tool for evaluating parton distribution functions (PDFs) in high-energy physics. It is not necessary for lepton collision, but Whizard will check if it exists when your configuration includes the arguements for NLO calculations.
LHAPDF can be downloaded from
The website contains comprehensive documentation on the configuring and installation procedure. You can go to your LHAPDF directory and run:
./configure --prefix=<YOUR_LHAPDF_INSTALL_PATH>
make
make install
If your OS has not python executable, please also add PYTHON_VERSION=3 in the configure. So LHAPDF will find a python3 executable alternatively. Whizard will check if you have installed the following PDF sets:
- CT10
- cteq6l1
- NNPDF23_lo_as_0130_qed
- NNPDF23_nlo_as_0118
They can be downloaded from:
Please untar these PDF sets to the directory
<YOUR_LHAPDF_INSTALL_PATH>/share/LHAPDF
The HepMC package is an object oriented, C++ event record for High Energy Physics Monte Carlo generators and simulation. It can be downloaded from
Be careful! You have to install the version 2 rather than the 3.x.x, because the ddsim can only read the version 2 at present. The configure should be something like:
configure --with-momentum=GEV --with-length=MM --prefix=<YOUR_HEPMC2_INSTALL_PATH>
This means that the momentum unit is GeV and the length unit is mm in the hepmc file. If everything is fine, you can run
make
make install
to install it.
FastJet is a C++ class library for handling jet clustering. It is necessary for some NLO runs. It can be downloaded from
There is not special to say here. Pleas go to it directory and just run the usual commands:
./configure --prefix=<YOUR_FASTJET_INSTALL_PATH>
make
make install
The OpenLoops is a fully automated implementation of the Open Loops algorithm combined with on-the-fly reduction methods, which allows for the fast and stable numerical evaluation of tree and one-loop matrix elements for any Standard Model process at NLO QCD and NLO EW. It acts as an one loop provider for Whizard. It can be obtained by
git clone https://gitlab.com/openloops/OpenLoops.git
After checkout or download of OpenLoops you can compile the code using the following procedure:
cd OpenLoops
./scons
If your system only have python3 executable, you may need to edit the first line of the scons script. Please replace
#! /usr/bin/env python
by
#! /usr/bin/env python3
Before starting to use OpenLoops you have to download and compile the process libraries for the amplitudes you want to use. You can download several individual processes via
./openloops libinstall <processes>
Whizard will check if you have installed the following processes:
- eett
- ppllj
- tbw
It is recommended to create a openloops.cfg file in the OpenLoops directory with following contents:
[OpenLoops]
process_repositories=public, whizard
compile_extra=1
So you can also download some libraries for Whizard in particular.
Now you can download Pythia8 from
In the configure of Pythia8, you should add your path to HepMC2, LHAPDF, and FastJet by
--with-PACKAGE[=DIR]
If Pythia8 finds them successfully, some messages should be printed on your screen. After that, you can just run
make
make install
Finally, you can install Whizard. Whizard's homepage is
In this case, your configure is quite long, because you have to add
--enable-PACKAGE --with-PACKAGE=<YOUR_PATH_TO_THIS_PACKAGE>
for all packages described above. If you are using MacOS, you may need to add some flags:
CXX="g++" CXXFLAGS="-std=c++11 -pthread"
You can replace c++11 by a newer C++ standard if you want. If Whizard finds them successfully, some messages should be printed on your screen. If some packages are missed, you can try to edit the environment variables:
PATH
LD_LIBRARY_PATH
DYLD_LIBRARY_PATH
or add some environment variables like
HEPMC_DIR
LHAPDF_DIR
If everything is fine, you can just run
make
make install
In this repository, there are some folders that include some examples for running Whizard+Pythia8:
- tunes: the LO event generation with the Whizard interface with Pythia8.
- eeqq_nlo: the NLO event generation of process e+e- -> qqbar.
- ee4j_nlo: the NLO event generation of process e+e- -> 4jets.
- eebbmumu_nlo: the NLO event generation of process e+e- -> mu+mu-bbbar.
The following folders include example programs to run Pythia8 standalone:
- shower_default: parton shower and hadronization with the Pythia8 default tune.
- shower_OPAL: parton shower and hadronization with the OPAL tune.
- shower_ALEPH: parton shower and hadronization with the ALEPH tune.
- shower_POWHEG: NLO matching by POWHEG method.
To run these programs, you have to prepare parton level events with the Les Houches accord compliant format (LHE file), and edit the paths to Pythia8 and HepMC2 in the Makefile. After that, you can just run
make
to compile the codes.
For comparison, you may want to run MadGraph5. Some guides can be found in this folder:
- madgraph5