Wiki

Clone wiki

njet / ManualMakefile

Install using manual Makefile

NOTE For instructions on how to use Autoconf version please refer to https://bitbucket.org/njet/njet/overview or README.rst



NJet is a C++ library for multi-parton one-loop matrix elements written and maintained by NJet Collaboration. NJet relies on NGluon for evaluation of primitive amplitudes.

The latest version of the code is available at the project homepage https://bitbucket.org/njet/njet

Installation

The a set of Makefiles is included with package to allow for compilation with a number of different options.

You should find three files in the directory named:

Makefile.inc    -- set up the parameters for compilation
Makefile        -- make the versions determined by Makefile.inc 
Makefile.all    -- the compilation instructions for a generic version

In order to compile successfully with external loop integrals and multiple precision you only need to look at Makefile.inc

As default, all loop integrals and multiple precision options are switched off. Hence to start one may simply type:

  make

The will compile a version of the library (lib/libNGluon.a) using the GNU C++ compiler (g++). Programs demonstrating the use of this library named NGluon-demo is also created. Run

  NGluon-demo --help
  NParton-demo --help
  NJet-chsums # a simple program for testing the colour sums
              # src-tools/NJet-chsums.cpp is simple enough to
              # be edited by the user.
  NJet-demo --help # running some hard coded cross checks for the colour sums

for further information.

One loop integrals can be included via the FORTRAN library QCDLoop which can be downloaded from: http://qcdloop.fnal.gov/

Once the archive is unpacked and compiled using the GNU FORTRAN compiler (gfortran) it may be included. NB This is NOT the default option of QCDLoop and one must edit the Makefiles.

Open the file Makefile.inc:

  1. change set option ENABLE_QL=yes.
  2. enter the full path the the QCDLoop directory into QLDIR e.g. QLDIR=$(HOME)/local/QCDLoop-1.9

typing make will then create a double precision library linked to QCDLoop.

Quadruple and octuple precision are made available via the QD package of Bailey, Hilda and Li: http://crd.lbl.gov/~dhbailey/mpdist/

After downloading and installing one can link it to the NGluon library:

Open the file Makefile.inc:

  1. set option ENABLE_DD=yes for a quadruple precision version
  2. set option ENABLE_QD=yes for a octuple precision version
  3. enter the full path the QD include directory e.g. QDINC=$(HOME)/local/include
  4. enter the full path the QD lib directory e.g. QDLIB=$(HOME)/local/lib

(the above examples assumed we installed QD with ./configure --prefix=$HOME/local)

typing make will then create a up to three versions of the library and demo program:

double precision    :   lib/libNGluon.a and bin/NGluon-demo
quadruple precision :   lib/libNGluon-dd.a and bin/NGluon-demo-dd
octuple precision   :   lib/libNGluon-qd.a and bin/NGluon-demo-qd

Les Houches Accord Interface

An example program is in the examples directory. More information is in lh/LH.text. If you don't compile NGluon-dd lh-example will fail.

The order files are processed by a python script lh/njet.py. This requires Python version >= 2.4.

Notes

  • The ENABLE_XX= options in Makefile.inc are on if anything EXCEPT a blank value is given.
  • The current cache system only allows for up to 6-point amplitudes on 32-bit machines.

Intel compilers

To allow DD/QD accuracy with icpc one needs to set in Makefile.inc

  CXXFLAGS_QD = -fp-model source
  # (or '-fp-model precise' or '-mieee-fp')

If QCDLoop is compiled by ifort or g77 one needs to set in Makefile.inc

  CPPFLAGS_QL = -DUSE_F2C

Updated