Optional Pythia support

Pythia is provided as a supporting backend rather than as the only route through the framework. The documented production workflow uses MadGraph for hard-process generation and the SET-ANUBIS selection layer for detector acceptance. Pythia remains useful for showering and hadronisation, standalone generation, decay-table cross-checks and studies in which a direct Pythia8/HepMC3 interface is preferred.

Two levels of support are available.

Command-file construction

PythiaCMNDInterface creates Pythia .cmnd files in a Python-only installation. The interface can configure beam conditions, event counts, particle properties, widths, lifetimes, production switches and decay channels. It is therefore suitable for card preparation and reproducibility tests even when the native Pythia library is not installed.

setanubis-pythia-smoke --pid 42 --out pythia_smoke_outputs

The command writes and validates a small command file without starting a Pythia run.

Native runtime

PythiaRunInterface uses the optional C++/pybind11 extension and requires compatible external Pythia8 and HepMC3 installations. The installation can be checked with:

setanubis-pythia-check

The extension is built only when explicitly requested:

SETANUBIS_BUILD_PYTHIA=1 \
SETANUBIS_PYTHIA8_DIR=/path/to/pythia8 \
SETANUBIS_HEPMC3_DIR=/path/to/hepmc3 \
python -m pip install --no-binary SetAnubis "SetAnubis[pythia]"

The separate Optional Pythia binding GitHub workflow compiles the external dependencies and runs a small native event-generation test. See PYTHIA_PACKAGING.md for build details and troubleshooting.