NLOJET++ Page

!!! New version, new page !!! Click here!
Old version is still available from this site.


NLOJET++ is a C++ library for calculating next-to-leading order jet cross sections in e+e- annihilation, in deep inelastic scattering and in hadron-hadron collision. In the e+e- case the program can calculate three- and four-jet cross section at NLO level and five-jet cross section at LO level. In the DIS case it can calculate (2+1)- and (3+1)-jet cross sections at NLO level and (4+1)-jet cross section at LO level. In the hadron-hadron collision the progran can be used for calculating one-, two- and three-jet cross sections at NLO and for-jet cross-section at LO level.

Downloading and building

The current version (2.0.1) of the program can be downloaded from here. This version is stable on linux system only. I hope in the near future I can write a platform independent version. In my program I use only standard features (standard C++, C99, POSIX,..), but most of the operating systems (e.g. alphaev6-dec-osf4.0f) don't know these standards. To compile it you should do the following steps
% cat nlojet++-2.0.0.tar.gz | gunzip | tar xvf -
% mkdir bld-nlojet
% cd bld-nlojet
% ../nlojet++-2.0.0/configure
% make install CFLAGS="-O3 -Wall" CXXFLAGS="-O3 -Wall"
These commands will install the executable, library and include files to your home directory into the ${HOME}/bin, ${HOME}/lib and ${HOME}/include directories respectively. If you want to change the install directory then at the configuration step run the configure script with the --prefix=PATH. During the installation procedure the program use the standard GNU tools (automake, autoconf, libtool).
 

Usage

The main program is the nlojet++.  This can calculate the various cross sections using the user defined modules. The usage of the program is the following:
Usage: nlojet++ -n name -c born|nlo|full -u module.la
       [-d dir] [--saving-mode txt|bin] [-m | --mchel]
       [-A num | --alpha num] [--max-event nevent]
       [--save-after nsave] [-T num, --time-rate num]
       [-P rambo|dipole | --phase-space rambo|dipole]
       [-E num, --eps num] [-W num, --npow num]
 
       nlojet++ -h|--help
Options:
  -h, --help                 print this message
  -n name                    name of the run
  -c born|nlo|full           contributions
  -u module.la                module file contains the user defined functions
  -d dir                     output directory
  --saving-mode txt|bin      output format: txt -> formated output
                                            bin ->  binary output (default)
  -m, --mchel                turn off the Monte Carlo helicity sum
  -A num, --alpha num        non-physical cut in the dipole terms (0,1]
  --max-event number         max number of the events
  --save-after number        save after every 'number' events
  -T num, --time-rate num    time rate between the n+1 and n parton
                             integral (num = 1,...10 integer, default: 1)
  -P rambo|dipole            type of the phase space
  --phase-space rambo|dipole     rambo  -> RAMBO phase space
                                 dipole -> dipole cascade
  -E num, --eps num          parameter of the important sampling (0,1]
  -W num, --npow num         parameter of the important sampling num > 1.0
 
The options in bracket ([..]) are optional. The one of the compusory option of the nlojet++ program is -u module.la.  This module contains the user defined functions and it can be generated by the script program create-nlojet-user. This compiles the C++, C or F77 source files and create the loadable shared object file with the corresponding trancparency file (module.la). The object files and the shared oject files are hidden in the .obj and .libs directories, respectively. You can mix the various languages (C++, C, F77).
create-nlojet-user -o module [-Wx,opt1,opt2,...] [-Wc,opt1,opt2,..]
                   [-Wf,opt1,opt2,...] [-Wl,opt1,opt2,...]
                   [--silent | --quiet] file1.{cc,c,f} file2.{cc,c,f} .....
Options:
  -o module                  name of the module
  -Wx,opt1,opt2,...           C++ options e.g: -Wf,-O3,-Wall
  -Wc,opt1,opt2,...           C options e.g: -Wf,-O3,-Wall
  -Wf,opt1,opt2,...           F77 options e.g: -Wf,-O3,-Wall
  -Wl,opt1,opt2,...           linker options e.g: -Wl,-lmylib
  --silent | --quiet        don't print informational messages

You can start the same calculation on several machines for the higher statistic. By the default setting the program contains an infinite loop so to wait the end of the calculation is a bad idea. On the other hand it saves the result continually into a file. By the default it saves the results after every 10000 Monte Carlo points.  You can change this value using the option --save-after number.  To create the result files and addig the contributions of the various calculation the program nlojet-add can be used.

nlojet-add [-d dir] [-r dir] name1 [name2 name3 ......]
nlojet-add -h | --help

Options:
  -h | --help   print this message
  -d directory     directory where search the data files (default: ./output)
  -r directory    save the result to this directory (default: ./result)
 

User defined modules

There are several papers about this program. In those cases we used the modules listed below to calculate the figures and tables. The following example can be used to calulate three-jet cross sections in proton antiproton collision. The source of this example is here. To compile and to obtain the module file do the followings:
% cat example.tar.gz | gunzip | tar xvf -
% cd example
% make all
This creates the trancparency file example.la, the shared object files in the .libs library and the object files in the .obj directory. Now you can start the calculations by
cpt30:> nlojet++ -cfull -ncpt30 -u example.la
on other machines
cpt31:> nlojet++ -cfull -ncpt31 -u example.la
cpt32:> nlojet++ -cfull -ncpt32 -u example.la
cpt33:> nlojet++ -cfull -ncpt33 -u example.la
cpt34:> .......
The program will save the results to a file after every10000 Monte Carlo points. In an other shell (but in this directory) you can see the results by
% nlojet-add cpt30 cpt31 cpt32 cpt33
This command saves the results into the directory result. In the case of the hadron-hadron collision the results file (result file of the example module) contains nineteen coloumns. The first, second, third coloumns are the lower edge, middle and upper edge of the bin. The last two coloumns are the whole cross section and its error. The other coloumns are the contributions of the various subprocesses and them statistical error. Here is a table of the available modules:
 
papers/comment
C++ modules
F77 modules
Author(s)
hep-ph/0110315
hep-ph0110315-c++.tar.gz
 N/A
Zoltán Nagy
 hep-ph/0104315
 hep-ph0104315-c++.tar.gz
 N/A
 Zoltán Nagy
one-jet inclusive kT alg. with CTEQ4
kT-1jet.tar.gz
N/A
 Zoltán Nagy
hep-ph/9806317
hep-ph9806317-c++.tar.gz
N/A
Zoltán Nagy
hep-ph/9707309
hep-ph9707309-c++.tar.gz
N/A
Zoltán Nagy

 

Previous versions

The web page of the NLOJET++ 1.0.0.
The web page of the DEBRECEN program.

 


E-mail: Zoltan.Nagy@durham.ac.uk