NeoPDF
NeoPDF
is a fast, reliable, and scalable interpolation library for both Collinear Parton
Distribution Functions (PDFs) and Transverse Momentum Dependent Distributions (TMDs) with
modern features, designed for both present and future hadron collider experiments. It aims
to be a modern, high-performance alternative to both LHAPDF and
TMDlib, focusing on:
Written in Rust 🦀 for speed and safety, with zero-cost abstractions and efficient memory management.
Easy support for different interpolation strategies: efficient implementation of custom interpolations.
Native Rust 🦀 API, with bindings for various programming languages such as Python 🐍, Fortran, C, and C++.
Very extensible: makes it easy to introduce new (Physics) features without introducing technical debts.
Motivation
The need for a fast and reliable PDF interpolation is critical in high-energy physics, especially
for precision calculations at hadron colliders. Existing solutions like LHAPDF or TMDlib, while
widely used, have limitations in terms of extensibility and features. NeoPDF
addresses these by:
- Providing a modern, modular codebase.
- Enabling easy integration into new and existing workflows.
- Supporting advanced features such as multi-dimensional interpolations.
High-Level Architecture
- Core Library (Rust): Implements all the interpolation logics, grid management, and PDF metadata handling.
- FFI Bindings: Exposes the core functionalities to Python, Fortran, C, and C++, enabling easier interoperability with other codes that can link to these programming languages.
- CLI Tools: Command-line utilities that allow users to inspect the contents of a gird,
convert LHAPDF/TMDlib format into
NeoPDF
, and perform interpolations.
Getting Started
- Installation Guide: Complete installation instructions for all platforms and APIs
- Development with Pixi: Comprehensive guide for using Pixi environment manager
- CLI Tutorials: Showcase how to use the command-line interface
- Examples: Code examples for Python, C++, C, and Fortran APIs
Additional Resources
For more information about NeoPDF
development, see the Design and Features
documentation.