Skip to content

NNPDF/pineappl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8eb73de · Sep 30, 2021
Sep 28, 2021
Sep 30, 2021
Sep 30, 2021
Sep 30, 2021
Sep 30, 2021
Sep 30, 2021
Sep 10, 2021
Sep 30, 2021
Sep 25, 2021
Sep 25, 2021
Jul 22, 2021
May 27, 2020
Sep 30, 2021

Repository files navigation

Rust codecov Documentation crates.io

Introduction

This repository contains libraries, tools, and interfaces to read and write PineAPPL grids.

There are three crates in this repository:

  • pineappl is the crate containing the main functionality
  • pineappl_capi installs a library and a C header, to use PineAPPL from your C, C++, Fortran, or Python programs
  • pineappl_cli installs the program pineappl to use PineAPPL from the command line

Installation

Anaconda-Server Badge AUR

  • PineAPPL is written in Rust and therefore needs the Rust compiler and build system cargo. If cargo isn't installed, use your favourite package manager to install it, or go to https://www.rust-lang.org/tools/install and follow the instructions there.

  • Next install the command-line interface:

    cargo install --path pineappl_cli
    

    This will install the binary pineappl user-wide, typically into ~/.cargo/bin. You can use this binary to perform all kinds of operations on PineAPPL grid files.

  • Proceed by installing cargo-c, which is required for the next step:

    cargo install cargo-c
    
  • Install pineappl_capi (the C API, needed if you plan to use PineAPPL in your C, C++, Fortran, or Python program):

    cd pineappl_capi
    cargo cinstall --release --prefix=${prefix}
    cd ..
    

    where ${prefix} points to the desired installation directory.

  • Finally, you need to set the environment variables PKG_CONFIG_PATH and LD_LIBRARY_PATH to the right directories. Adding

    export LD_LIBRARY_PATH=${prefix}/lib:$LD_LIBRARY_PATH
    export PKG_CONFIG_PATH=${prefix}/lib/pkgconfig:$PKG_CONFIG_PATH
    

    to your ~/.bashrc should do the trick (remember to replace ${prefix} with the correct directory). You can check PKG_CONFIG_PATH by running

    pkg-config pineappl_capi --libs
    

    which should print the library flags needed to link against the C API. If there's no output or an error, double-check that PKG_CONFIG_PATH is in the environment and that it points to a directory containing the pineappl_capi.pc file.

  • For the python interface (optional) please look into the subfolder ./pineappl_py

Contributions

Please read the contribution guidelines.

Citation

arXiv DOI

If you use PineAPPL, please cite the following reference:

@article{Carrazza:2020gss,
    author = "Carrazza, S. and Nocera, E. R. and Schwan, C. and Zaro, M.",
    title = "{PineAPPL: combining EW and QCD corrections for fast evaluation of LHC processes}",
    eprint = "2008.12789",
    archivePrefix = "arXiv",
    primaryClass = "hep-ph",
    doi = "10.1007/JHEP12(2020)108",
    journal = "JHEP",
    volume = "12",
    pages = "108",
    year = "2020"
}

and the corresponding reference for the version of PineAPPL that you are using (click the DOI badge above).