MadGraph 5 Processes
By far the easiest way to implement new processes into PYTHIA 8 is
by using the matrix-element generator MadGraph 5. This program has
an option to output the results of a matrix-element calculation
as a set of PYTHIA 8 C++ classes (plus further auxiliary code),
that can then be linked and used as
meaning they are handled identically with normal internal ones.
This way, MadGraph 5 can be used to implement processes from
any model that can be written in terms of a Lagrangian. Any
2 → 1, 2 → 2 and 2 → 3 processes
can be implemented, the limit being set by the absence of efficient
phase space generator algorithms for higher multiplicities in
PYTHIA. Features such as s-channel resonances are
automatically implemented in the process classes. Besides the process
library and necessary model files, also an example main program is
generated for each set of processes, which can be easily modified to
perform the desired analyses.
In order to create a PYTHIA 8 process library with MadGraph 5, first
download the MadGraph 5 package from
https://launchpad.net/madgraph5, and untar the package. You can
then specify the location of your
in the file
pythia8_path = ./pythia81xx
The location can be either relative (to the directory
MadGraph5_v_x_x_x/.) or absolute.
For any model that is already implemented in the MadGraph 5 package,
you can directly use the model. Start the MadGraph 5 interface
bin/mg5, and do:
import model model_name
add process your_next_process_in_mg5_syntax
output pythia8 [path_to_pythia81xx_directory]
For examples of MG5 process syntax, please see
help generate. If you specified the path to the
pythia81xx directory in the
file, you do not need to enter it in the
If your preferred model is found on the FeynRules model wiki page,
download the UFO (Universal FeynRules Output) tar file for the model,
untar in the
models/ directory, and use as above.
If you want to implement a new model which has not yet been implemented,
you can do this either using the Mathematica package FeynRules (see
http://feynrules.irmp.ucl.ac.be/) or directly edit the UFO model
files of the most similar model in the
The resulting output from the
output pythia8 command is:
Note that in order for PYTHIA 8 to be able to automatically decay any
new particles, it is necessary to specify the branching ratios of the
particles in the
- A process directory
Processes_modelname with the
model information and the files needed for all processes defined for
this model, placed in the
pythia81xx main directory.
The model files are
HelAmps_modelname.h/cc, and the process files for each
process class (with the same mass, spin and color of the initial/final
state particles) are called
The directory also contains a
makefile and a model parameter
- An example main program in the directory
pythia81xx main directory) called
main_modelname_N.cc and a corresponding makefile
Makefile_modelname_N. This main program links in the
process classes in the process directory described above. To run the
example main program, just go to the
directory and run
make -f Makefile_modelname_N
launch directly inside the MadGraph 5
command line interface.
param_card file, see
[Ska04,Alw07] for details.
For further technical details, please see the MadGraph 5 release paper
[Alw11] and the
semi-internal processes page.
Of course, as with MadGraph 4, MadGraph 5 can also output
files of parton-level events according to the
that can be read in and processed further by PYTHIA 8.
The advantage is that then the MadGraph 5 phase space generator
can be used, which opens up for processes with more than three
particles in the final state. The disadvantages are that it is less
easy to mix and match with existing PYTHIA processes, and that one
needs to regenerate and store large LHEF files for different
kinematics cuts or parameter values.
Please cite the MadGraph 5 release paper [Alw11] if you use
MadGraph 5 to generate process libraries for PYTHIA 8.