


MadDipole: Automated Dipole Subtraction for NLO Calculations.

MadDipole is a MadGraph package that has been developed to automate the calculation of the subtraction terms for any NLO (in QCD) calculation. It can generate the subtraction terms for the reals as well as for the virtuals in both the massless and massive cases. More information can be found here arXiv:0808.2128 and here arXiv:1004.2905

Running the code

To run the code, download the package


(MadDipole) or the


(Developer's kit), where V?.?.? is version V4.4.35 or later from the MadGraph download page (mirror). (Registration is needed and can be done via a link from the MadGraph/MadEvent main site).

  1. Go to the

directory and type

  1. Copy the

directory to a new process directory of your choice, e.g.


, to keep a clean copy of the Template directory as usual.

  1. If you have downloaded the Developer's kit: go to this new directory and activate the 'dipole mode' by typing:

This should activate the dipole terms and remove all files that are not needed. This step can be skipped if MadDipole (


) was downloaded.

  1. The next step is to specify the process in the =./Cards/proc_card.dat=. This should be the m+1 particle process, i.e. the process including the emission of the extra particle.
  2. Then generate the diagrams including subtraction terms by typing

This will also compile the HELAS and MODEL libraries.

Like for a normal MadGraph run, this will generate one (or more) directory(ies) inside the =./SubProcesses= directory in which the a code specific for the particular process is generated. A simple program to check the results,


, has been provided to calculate the m+1 matrix element and the subtraction terms for any point in phase space. By default the program


prints a table with the matrix element squared and the subtraction terms on the screen for which each point is closer to a collinear of soft limit. Another check program,


, checks the sum of the integrated dipoles for a random (or given) phase-space point. It can be compiled by typing

make checkint

in the processes directories.

MadDipole for QED

MadDipole can also generate subtraction terms necessary for QED corrections for both massless and massive cases. More information can be found here

Running the code is very similar to the QCD case described above. If you have downloaded the developer's kit (MG_ME_V?.?.?.tar.gz) the dipole mode for QED will be activated by running

./bin/standalone_dipole_qed .

The matrix element and the subtraction terms are then generated by running

./bin/newprocess_qed .

In the case you have downloaded only MadDipole (MG_ME_DIP_V4.4.??.tar.gz) the script newprocess_qed is already present.

For the QED case the following lines should be present in your /Cards/proc_card.dat:


The logical variable DipolePhotonPDF determines whether an initial state photon comes out of a hadron or is a free particle. In the first case it is assumed that a pdf is present. If these lines are missing this variable is set to false.

The QED version contains a check program identical to the QCD one for checking the limits of the unintegrated subtraction terms. A check program for the integrated subtraction terms is not present, as depending on the actual process one or several phase space points are required as input.

The check program is compiled by typing


which produces an executable




When using MadDipole a minimum of 1GB RAM is required otherwise the process may be killed by the operating system.