Skip to content

This is a documentation for running events generation with Whizard+Pythia8 framework.

Notifications You must be signed in to change notification settings

zjzhao1002/Whizard-Pythia8-Documentation

Repository files navigation

Whizard-Pythia8-Documentation

This is a documentation for running events generation with Whizard+Pythia8 framework, including the Leading-Order (LO) and Next-to-Leading-Order (NLO) cases.

Prerequisites

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

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

HEPMC2

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

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

OpenLoops

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.

Installation of Pythia8

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

Installation of Whizard

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

Event generation with Whizard+Pythia8

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

About

This is a documentation for running events generation with Whizard+Pythia8 framework.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published