/MoMEMta

Modular Matrix Element Method implementation

Primary LanguageC++GNU General Public License v3.0GPL-3.0

MoMEMta

The Modular Matrix Element Method implementation.

Build Status Coverage Status

Install

Prerequisites

MoMEMta depends on the following libraries and tools:

  • LHAPDF (>=6)
  • CMake (>= 3.2.1)
  • Boost (>=1.54)
  • ROOT (>=5.34.09)
  • A C++11-capable compiler

Note: MoMEMta has only been tested on GNU/Linux.

Procedure

Retrieve the code on our github repository. Unpack the archive and/or go to the MoMEMta directory. Next, execute the following:

mkdir build
cd build
cmake ..
make -j 4

You can now use the library libmomemta.so with your own code.

Finally, you can make MoMEMta (public headers and library) available system-wide using:

make install

This step is mandatory if you want to link your own code or matrix elements with MoMEMta. If you don't have admin rights on your system, have a look at the build options below.

Build options

The following options are available when configuring the build (when running cmake ..):

  • -DCMAKE_INSTALL_PREFIX=(path): Install MoMEMta in a specific location when running make install (useful if you don't have admin rights)
  • -DPROFILING=ON: Generate debugging symbols and profiling information (requires gperftools)
  • -DBOOST_ROOT=(path): Use specific Boost version (path to its install directory)
  • -DTESTS=ON: Also compile the test executables
  • -DEXAMPLES=OFF: Do not compile the example executables
  • -DPYTHON_BINDINGS=ON|OFF (OFF by default). Builds python bindings for MoMEMta. Requires python and boost::python.
  • -DDEBUG_TIMING=ON|OFF (OFF by default). If ON, a summary of how long each module ran is printed at the end of the integration. Can be useful to see which module to optimize.

Examples

After building according to the above instructions, you can try to run the examples:

./tt_fullyleptonic.exe
./tt_fullyleptonic_NWA.exe

Have a look at the corresponding source and config files located in MoMEMta/examples!

We also have a dedicated repository with more involved working examples and tutorials.

Documentation

You can find more details about MoMEMta on our documentations: