.. _Installation:
Installation
============
Download
--------
A tar archive of the HEJ 2 source code can be downloaded and
decompressed with the command::
curl https://hej.hepforge.org/downloads?f=HEJ_2.0.tar.gz | tar -xz
To obtain the latest stable HEJ version, `HEJ_2.0.tar.gz` should be
replaced by `HEJ.tar.gz`.
Alternatively, the HEJ source code can be obtained by installing the
`git version control system `_. and running::
git clone https://phab.hepforge.org/source/hej.git
We also provide a `Docker image `_
containing a HEJ 2 installation on. This image can be pulled with::
docker pull hejdock/hej
When using the Docker image the remaining installation steps can be
skipped.
Prerequisites
-------------
Before installing HEJ 2, you need the following programs and
libraries:
- `CMake `_ version 3.1
- A compiler supporting the C++14 standard, for example `gcc `_ 5 or later
- `FastJet `_
- `CLHEP `_
- `LHAPDF `_
- The `IOStreams` and `uBLAS` `boost `_ libraries
- `yaml-cpp `_
If you want to include finite top mass corrections in Higgs boson + jets
production, you additionally need version 2 of the `QCDLoop
`_ library. HEJ 2 supports
versions 2 and 3 of `HepMC `_ if it is
installed, but does not require it. Additional HEJ 2 can be interfaced to
`rivet `_, which requires HepMC version 2.
Compilation
-----------
To compile and install HEJ 2 run::
cmake source/directory -DCMAKE_INSTALL_PREFIX=target/directory
make install
:file:`source/directory` is the directory containing the file
:file:`CMakeLists.txt`. If you omit
:code:`-DCMAKE_INSTALL_PREFIX=target/directory` HEJ 2 will be
installed to some default location.
In case some of the aforementioned prerequisites are not found by
:code:`cmake` you can give a hint by adding an additional argument
:code:`-Dlibname_ROOT_DIR=/directory/with/library`, where
:code:`libname` should be replaced by the name of the library in
question.
To not include specific packages one can add
:code:`-DEXCLUDE_packagename=TRUE` to :code:`cmake`, e.g. by
setting :code:`-DEXCLUDE_rivet=TRUE` HEJ 2 will not be interfaced
to `rivet` even if rivet is available on the system.
Testing
-------
To test your installation, download the NNPDF 2.3 PDF set with::
lhapdf install NNPDF23_nlo_as_0119
and run::
make test