Skip to content

BRIDGE - Branching Ratio Inquiry / Decay Generated Events

This is the page for the BRIDGE software. BRIDGE can take an arbitrary model as input (using the same format as MadGraph) and compute the widths (and hence branching ratios) for arbitrary two-body and three-body tree level decays. It can also decay generated events, choosing decay modes randomly according to the branching ratios (or using a set of decay modes that you specify). (We have tested this on MadGraph events; in principle other generators produce similar LHA-formatted output. Let us know if you're trying to use BRIDGE with other programs, and we might be able to help.)

For MG5 users: MadGraph 5's decay functionality is increasingly going beyond what BRIDGE can do; for instance, it can do 4-body decays. Although it does not have the same simple pipeline as BRIDGE, it is becoming possible to script MG5 operations to duplicate much of what BRIDGE does and in some cases do it better. See this paper by Ian-Woo Kim and Kathryn Zurek (especially Appendix D) for some insights on how to use MG5 effectively in this way.

Here is a talk on BRIDGE for the MC4BSM workshop at Princeton, March 23, 2007.

Here is a talk from the Eotvos-Cornell workshop in Budapest, June 2007.

Download the latest BRIDGE source. (This has been tested on Linux, Mac OS X, and Windows with Cygwin.) To install: untar this within your main MadGraph directory. You will then have a directory MG_ME_V4.y.xx/BRIDGE. Run "make" from within the BRIDGE directory to build. (MadGraph is not strictly required to compile, but the HELAS library is; you will have to edit the makefile to point to the right location if you are not compiling BRIDGE within the MG directory structure.)

For Snow Leopard users: the version of gcc included with Snow Leopard produces, by default, 64-bit binaries. However, the version of g77 installed by most Mac users produces 32-bit binaries. Compilation will lead to error messages that say "file is not of required architecture." The fix is to add the "-m32" compiler flag to force gcc to create 32-bit binaries. To do this, edit the file source/makefile to append " -m32" to the CCFLAGS and LDFLAGS: the lines should now read "LDFLAGS = -L../../HELAS/lib/ -L/sw/lib -bind_at_load -m32" and "CCFLAGS = -O -m32". (Make sure you download the latest release; the earlier makefile requires more changes.) Removing the "-O" can lead to faster compilation.

For gfortran users or others with error messages about "-lg2c": BRIDGE is written in C++, but it links to the HELAS library. If you compiled HELAS with g77, the "-lg2c" in the LIBS line in source/makefile is needed to interface the C++ and Fortran code. However, if you're using a newer gfortran compiler, you might get an error message that this library doesn't exist on your system. The solution should be just to delete "-lg2c" from source/makefile. Let us know if this doesn't solve the compilation problem.

Warning regarding interference: if you are generating 3-body decays, BRIDGE will add together the amplitudes for different diagrams that interfere. It's possible that in some of these processes, relative signs will be incorrect, and one may even get different answers for CP-conjugate processes. For mul+ > mu+ vm svm~ and mul- > mu- vm~ svm, where diagrams with intermediate neutralino interfere with a diagram with an intermediate W, this has been fixed. For more general 3-body decays, check the result and let us know if you find further problems.


  • 2.25 Fixes for some compilation problems, improved default couplings for more accurate Higgs branching ratios
  • 2.24 Fixes for compatibility with some compiler versions and Feynrules. Improved DGE handling of user-supplied branching ratio tables not associated with grids generated with BRI. (Thanks to Andy Spray, Travis Martin, and Tao Liu.)
  • 2.23 Fixed problem leading to skewed angular distributions for some multi-step decay chains involving an antifermion. (Thanks to Can Kilic)
  • 2.22 Added 3-body decays going directly through four-particle SSSS or VVSS vertices. (Thanks to Rakhi Mahbubani)
  • 2.21 Fix for case-sensitivity and trouble in V->SS* decays (Thanks to Patrick Chan and Brian Yencho)
  • 2.20 (unchanged from 2.20.pre) Fixes mistakes introduced in 2.19. (Thanks to Iftah Galon)
  • 2.19 Fixes to 3-body color flow, improved compatibility with FeynRules-generated interactions.dat files, better error handling, improved. (Thanks to Iftah Galon, Mihoko Nojiri, and Jing Shu.)
  • 2.18 Various fixes, including some typos in the SLHA reading and the sign of interfering diagrams in e.g. mul+ > mu+ vm svm~. (Thanks to Andrey Katz and Brock Tweedie).
  • 2.17 Fixed some color-flow issues (thanks, again, to Brock Tweedie).
  • 2.16 Another three-body fix: affects certain processes involving scalar/fermion/fermion vertices with Majorana fermions. Thanks again to Brock Tweedie and Andrey Katz.
  • 2.15 More three-body fixes: corrected, color-flow fixed (thanks to Renaud Bruneliere and Sezen Sekmen). Also, fixed a problem with double-counting diagrams for decays like h -> ZZ*
  • 2.14 DGE now deals reasonably with particles that have a decay table reporting zero width (i.e. they do not decay and the program doesn't get stuck). Also, better handling of LHE files, especially those generated with multiple processes in the same file. Thanks again to Brock Tweedie and Andrey Katz for pointing out the problems.
  • 2.13 Important fixes, especially for anyone dealing with three-body decays! (July 26, 2009) Fixed a problem with certain three-body decays with vertices involving a scalar and vector (which would cause absurd results for, e.g., squark -> Z + quark + neutralino in earlier versions). Modified SLHA reading to deal with whitespace better. Now DGE deals gracefully with encountering particles not in the stable list with no decay table: it treats them as stable. Thus, in particular, running in mode 2 and entering no particles in the list should work by decaying every particle for which a decay table exists. Also fixed some problems with processing 3-body decay tables in DGE. Also, is restored to a Unix format file, rather than DOS, and treats 3-body tables properly. Thanks to Brock Tweedie and Andrey Katz for finding numerous problems.
  • 2.12 When running from a MadGraph model directory, BRIDGE now looks for "helas_couplings.txt" first, then "couplings_check.txt" if that is not found. This is for compatibility with recent MG changes (to generate the file, run "make helas_couplings" then "./helas_couplings" in the Model directory). Also: BRIDGE now writes a lifetime (c tau for the particular event, in mm) in the "VTIMUP" column of the LHE file for decayed particles.
  • 2.11 Fixed a mistake in batch mode (thanks to Rakhi Mahbubani for the fix), and merged some Vegas problem-catching from the BRIDGE version in the Four Generations code of G.Kribs,T.Plehn,M.Spannowsky,T.Tait.
  • 2.10 Fix to allow three body decays like t -> W+ b Z (for heavy enough t) (thanks to Yang Bai)
  • 2.09 improved param card reading
  • 2.08 several bug fixes
  • 2.07 fixed directory structure when working with usrmod (thanks to Emmanuel Busato, Rakhi Mahbubani, Liantao Wang)
  • 2.06 restored the correct mssminteractions.dat (oops)
  • 2.05 added an option of only calculating three-body decays when there are no open two-body decays; also, the widths calculated from two-body decays are used as inputs for propagators in three-body decays if no width parameter is specified. Also fixed several bugs. Thanks to Johan Alwall, Can Kilic, and Shufang Su for bug reports and suggestions; thanks also to the participants in the November 2007 Edinburgh Ultra-Mini Workshop for suggestions on reorganizing the three-body options.
    Note that runBRI and runBRIsusy in 2.05 have a new batch mode command, [3if2?], which should be 'Y' or 'N' depending on whether or not you want to calculate 3-body modes of particles that have two-body modes available.
  • 2.00 added three-body decays, batch mode, numerous minor changes
  • 1.07 fixed a problem where whitespace was being treated differently on certain Linux releases with older versions of gcc (reported by Jay Hubisz)
  • 1.06 corrected some vector decays where BRIDGE was reporting, e.g., Z' -> W+ W+ instead of Z' -> W+ W- (Thanks to Shrihari Gopalakrishna and Neil Christensen for finding this bug.)
  • 1.05 corrected the "decay single particle" mode of DGE, which would inappropriately decay particles with the wrong status (Thanks to Jon Walsh for pointing this out)
  • 1.04 corrected decays of vectors (V -> VV and V -> VS types); previously the decay mode wasn't being properly added to the list of decays. (Thanks to Jay Hubisz for pointing this out)
  • 1.03 some corrections to SLHA input (most importantly, fixing some couplings of the Z in the MSSM that were incorrect in earlier versions!), additional minor changes
  • 1.02 fixed problem with DGE in the mode where it decays a particular particle; intermediate steps were being written out (thanks to Can Kilic for pointing this out)
  • 1.01 adjusted weighting of output events in case you wish to make plots combining multiple files that have been decayed in different ways.

The BRIDGE manual: on the arXiv or locally (PDF).

Request: if you use BRIDGE for any work that you publish, please cite the arXiv version of the BRIDGE manual. Thanks!

Fortran file for Higgs--glue--glue vertex in HELAS, as described in the manual.

BRIDGE was written by Patrick Meade and Matt Reece. Contact us at or if you have comments or questions.

eXTReMe Tracker