FAST-HEP is a toolkit for building declarative High Energy Physics (HEP) analyses.

Instead of encoding the entire analysis procedure in a Python program, users describe what they want to compute in a workflow. FAST-HEP turns this description into an executable analysis using specialised tools for data processing, metadata and provenance, and visualisation.

flowchart LR
    Analysis["analysis description
author.yaml"] FASTHEP["FAST-HEP"] Results["plots, histograms,
cutflows and datasets"] Analysis --> FASTHEP --> Results

The workflow description provides a common representation of the analysis, making it easier to inspect, reproduce, validate, extend, and execute in different computing environments.

Note

FAST-HEP is developed for HEP analysis, while several of its underlying components, including the workflow infrastructure, are designed to be domain-independent.


Toolkit overview#

FAST-HEP is built from focused packages that provide different parts of the analysis workflow. They share a common workflow description and can be extended through registries.

flowchart TD

    Author["author.yaml
analysis description"] Flow["fasthep-flow
compile, plan and orchestrate"] Stream["workflow data streams
datasets, fields and metadata"] subgraph Capabilities["Registered capabilities"] Curator["fasthep-curator
inspection, metadata
and provenance"] Carpenter["fasthep-carpenter
transforms, histograms
and cutflows"] Render["fasthep-render
plots, reports
and visualisation"] end Outputs["Analysis outputs
datasets, histograms, cutflows,
plots and reports"] Author --> Flow Flow --> Stream Stream <--> Curator Stream <--> Carpenter Stream <--> Render Stream --> Outputs

The packages are designed to remain focused: fasthep-flow provides the general workflow machinery, while other packages add capabilities for HEP analysis, data inspection, and visualisation.

Note

A note on naming: fasthep-flow is referred to as Flow throughout this documentation. In Python, it is imported as hepflow.


Packages#

The FAST-HEP toolkit currently includes:

PackagePurpose
fasthep-flowWorkflow description, compilation, planning, and execution
fasthep-carpenterHEP analysis transforms, histogramming, and columnar data processing
fasthep-curatorDataset inspection, metadata, provenance, and diagnostics
fasthep-renderPlotting, reports, and visualisation
fasthep-cliUnified command-line interface
fasthep-toolbenchShared, domain-independent utilities
fasthep-workshopTutorials, examples, and training material
fasthepMeta-package for installing the FAST-HEP toolkit
fasthep-devDevelopment and integration workspace

Installation#

FAST-HEP packages are published independently and can also be installed through the fasthep meta-package.

pip install "fasthep[hep]"

For tutorials and reproducible example environments, the workshop material uses Pixi.

For development across the full toolkit, see fasthep-dev.


Tutorials and examples#

The fasthep-workshop provides runnable tutorials and example analyses.

It covers the full path from basic columnar data processing to declarative workflows, custom transforms, rendering, scaling, and accelerator use.

For a first introduction to FAST-HEP, this is the best place to start.


Documentation#

Documentation is split according to purpose:


Contributing#

FAST-HEP is developed openly on GitHub, and contributions are welcome across code, documentation, examples, testing, and infrastructure.

See the contributing guide for the development workflow and toolkit structure.


Get started#

New to FAST-HEP?

Start with the Getting Started guide for a first walkthrough of the toolkit, from installation to running a small declarative analysis.