Installation

Installation

Following, multiple installation methods are described.

The basic installation only requires the Python package installer pip (opens in a new tab).

Basic installation

Just the basic pineline, using pre-built grids.

pip install pineline

Complete installation

The full pineline, able to compute grids as well.

pip install 'pineline[full]'

Third-party dependencies

There are few to none further dependencies needed for most use cases.

In particular the Basic installation above provides all tools required to compute a theory (starting from grids). But there might be more operations, that even if not strictly required, they are part of the normal workflow.

One of the most common one is to the test the predictions for a given grid/FkTable, applying a known PDF set. For this basic application, at least the LHAPDF (opens in a new tab) library (and Python package) is required.

From scratch

  1. Prepare a fresh environment, and activate it

    # in your working directory
    virtualenv env
    . env/bin/activate
  2. Download the .sh scripts in N3PDF/workflows/packages/lhapdf (opens in a new tab)

    Note: The scripts in this folder are extremely simple, and can be inspected and manually typed in the shell. Here, we are referring to this folder just because this scripts are maintained by (and for the convenience of) N3PDF members, so install.sh might occasionally contain workarounds to run the last (or recent enough) version of LHAPDF.

  3. Export $PREFIX environment variable

    export PREFIX=$(realpath ./env)
  4. Run the install.sh script:

    sh install.sh
  5. (Optional) To clean up, run the clean.sh script:

    sh clean.sh

Finally, you can install pineline as described above, or any other Python package as well, just using pip.

Container

Another option, especially useful for automated workflows and remote environments, it is to run inside a container (opens in a new tab), building a suitable one ahead of time.

For the specific case of LHAPDF, a suitable lhapdf (opens in a new tab) container is pre-built and provided. It can be used simply pulling it:

podman pull ghcr.io/n3pdf/lhapdf:v2

A couple of other containers, containing pre-installed tools like APFEL and QCDNUM (specifically their Python packages/bindings), are available in the same repository.