RAVEL is a governed research system for high-energy physics. State a question, choose the inputs and budget, and follow a recorded path through planning, scientific tools, review and delivery.
git clone https://github.com/ammarphp/ravel.git
cd ravel
bash scripts/setup/install.sh
.venv/bin/ravel doctorThe installer brings its own Python, needs no administrator rights and resumes a failed step where it stopped.
The default installation needs 63.1 GB of disk space.
It plans about 8 hours for the default toolchain; bash scripts/setup/install.sh --dry-run prints the size and time of each part before anything changes.
The symbolic tools use your Wolfram Engine or Mathematica licence. The installation guide covers the licence, analysis-facility installs and model-provider setup.
After model setup, start a controller run with a synthetic question and your supplied inputs:
source .venv/bin/activate
ravel ask "Fit the supplied signal and background model and report a 95% CLs limit." --input studies/inputs/model.json --rundir studies/first-fit
ravel status --run RUN_ID
ravel drive --resume RUN_IDUse the run ID printed by the first command. CHECK-IN 1 presents the plan, assumptions and budget for approval. The controller reports the next step, retains failed attempts and reviews the result against the original question. Study guides cover each kind of work; scope states the available paths and their boundaries.
The controller owns the run's state, authority and delivery. Agents propose plans and perform scoped work; tools and independent reviewers provide evidence. See the architecture appendices, workflow diagrams and methodology.
The table counts registered operations. Each study uses the selected adapter's contract and executed evidence. The complete inventory links every declared interface to its reference.
| Family | Operations | Examples |
|---|---|---|
| Event generation and simulation | 17 | MadGraph generation with decays and named weights, Pythia showering, Delphes detector simulation, LHE rewrites, PDF variations |
| Analysis and reinterpretation | 25 | Rivet, SimpleAnalysis and MadAnalysis 5 routines, columnar selections, newly written analysis code, SModelS and Contur constraints, signal patches for published likelihoods |
| Statistics and limits | 24 | 95% CLs limits with pyhf, statistics the request prescribes, Combine and RooFit likelihoods, profile fits, workspace combinations |
| Measurements and global fits | 12 | Higgs coupling and signal-strength fits, SFitter global fits, EFT responses and coefficient conventions, EasyScan parameter scans |
| Models and calculations | 26 | FeynRules and SARAH models, FlexibleSUSY and SPheno spectra, widths and decays, Feynman diagrams and amplitudes, loop integrals, EFT running, symbolic and numerical calculations |
| Machine learning | 3 | Classifier training against baselines with one held-out test, published ONNX classifiers on supplied events |
| Literature, comparison and reports | 7 | Literature census and published-limit overlays, figure digitisation and comparison, result comparisons, report delivery |
The complete installer prepares the required tools and reports licence or site actions. See component inventory and tool status.
Toolchain groups
| Toolchain | Tools |
|---|---|
| Miniforge and the build compilers | Miniforge |
| RAVEL's Python environments (.venv, .venv-smodels, .venv-sfitter) | |
| Model-provider configuration for research and review roles | |
| MadGraph5_aMC@NLO 2.9.27 and 3.7.0 with LHAPDF 6.5.6 | MadGraph5_aMC@NLO, LHAPDF |
| LHAPDF parton-density sets in one shared data directory | LHAPDF PDF sets |
| Rivet 4.1.3, Pythia 8.312, HepMC3 and RAVEL's shower programs | Rivet and YODA, Pythia 8, HepMC3 |
| MadGraph-Pythia 8 interface for MadGraph's own showering | MG5aMC_PY8_interface |
| ROOT 6.40, FastJet 3.5.2 and Delphes 3.5.1 | ROOT, FastJet, Delphes |
| MadAnalysis 5 v1.11.1 with SampleAnalyzer | MadAnalysis 5 |
| CheckMATE 2 with its own Pythia 8.244 and Delphes 3.5.1 | CheckMATE, Delphes, Pythia 8 |
| Container engine for the Linux-only tools | Podman, vfkit and gvproxy |
| SimpleAnalysis (container) and mapyde 0.5.0 | mapyde |
| RestFrames library and RAVEL's recursive-jigsaw program | RestFrames |
| Analysis source catalogue | Rivet |
| Combine 9.2.1 on ROOT 6.22 (container) | ROOT, Combine |
| Wolfram kernel (your licence) with FeynRules, SARAH, FeynCalc, FeynArts and HEPTAPOD | FeynRules, SARAH, FeynCalc, FeynArts, HEPTAPOD |
| FlexibleSUSY 2.9.0 (CMSSM, lowMSSM, NMSSM) and SPheno 4.0.5 | FlexibleSUSY, SPheno |
| pySecDec 1.6.6 with FORM | pySecDec and FORM |
| SModelS 3.2.1 database (3.1.1 kept runnable) | SModelS database 3.2.1, SModelS database 3.1.1 |
| Contur 3.1.5 with its data and Herwig 7.3.0 | Contur, Herwig and ThePEG |
| CAMB, CLASS and Cobaya (in the main Python environment) | CAMB, CLASS (classy), Cobaya |
| SFitterAgents source in .venv-sfitter | SFitterAgents |
| EasyScan_HEP with GM2Calc 2.3.1 and PhaseTracer | EasyScan_HEP, GM2Calc, PhaseTracer, ALGLIB |
| ServiceX client | ServiceX, func-adl-servicex-xaodr25 |
| Nyx 26.09 with AMReX 26.09 and SUNDIALS 7.6.0 | Nyx and AMReX, SUNDIALS |
| PDF, graph and SVG tools for reports | poppler, Graphviz, librsvg, pypdfium2, pypdf |
| Linux site analysis and Snakemake environments | |
| Analysis-facility access: CVMFS, grid proxy, Kerberos, HTCondor, apptainer, agent CLI | |
| MCFM per-point helicity amplitudes for interfering resonances | MCFM |
| FeynGraph diagram generator (Rust build) | FeynGraph |
| HEPTAPOD NDA and Diagrammatica EDA diagram tools | HEPTAPOD |
| External agent sources (AgentRivet) | AgentRivet |
| Machine-learning libraries: scikit-learn, PyTorch (CPU) and PyTorch Geometric | scikit-learn, PyTorch (CPU), PyTorch Geometric |
| PDG 2026 offline database (data CC BY 4.0) and RAVEL's pinned subset | PDG Review of Particle Physics data (2026 edition), pdg Python package |
| TeX manuscript compiler and class assets |
- Installation and configuration
- Command guide and parser reference
- Study guides and workflow intake
- Outputs and provenance, scope and glossary
- Build, test and release, contributing and issues
Use CITATION.cff. Cite the upstream tools used in your study; Appendix B links their citation records.
RAVEL uses the Apache License 2.0. Upstream tools retain their own licences; see NOTICE and THIRD-PARTY-NOTICES.md.
The architecture index covers the controller, research, providers, scientific execution, safety and provenance. Each appendix includes a diagram and legend.
When you publish results from a study, cite the tools it used. Each entry gives the reference the tool asks for; where a tool names none, the entry gives its release paper or its home page. upstream.json records where each reference was found, and scripts/maintenance/render_citations.py renders this list from it. THIRD-PARTY-NOTICES.md lists the upstream code RAVEL redistributes and its licences.
References for each upstream tool
MadGraph5_aMC@NLO: event generation.
- arXiv:1405.0301, doi:10.1007/JHEP07(2014)079.
- For mixed-coupling or NLO electroweak computations, also: arXiv:1804.10017, doi:10.1007/JHEP11(2021)085.
Pythia 8: showering and hadronisation.
Herwig 7: event generation and showering.
HepMC3: event records.
Delphes: detector simulation.
FastJet: jet clustering.
- arXiv:1111.6097, doi:10.1140/epjc/s10052-012-1896-2.
- Optionally, also: arXiv:hep-ph/0512210, doi:10.1016/j.physletb.2006.08.037.
LHAPDF: parton densities.
MCFM: amplitudes for interfering resonances. Home page: https://mcfm.fnal.gov/.
Rivet: analysis routines.
YODA: histograms.
SimpleAnalysis: public event selections. Home page: https://gitlab.cern.ch/atlas-sa/simple-analysis.
RestFrames: recursive-jigsaw reconstruction. Home page: http://restframes.com/.
MAPyDE: card conventions and event conversion.
CheckMATE: reinterpretation.
- arXiv:2507.08565, doi:10.1140/epjc/s10052-026-15414-8.
- arXiv:1611.09856, doi:10.1016/j.cpc.2017.08.021.
MadAnalysis 5: reinterpretation.
- arXiv:1206.1599, doi:10.1016/j.cpc.2012.09.009.
- arXiv:1405.3982, doi:10.1140/epjc/s10052-014-3103-0.
- arXiv:1407.3278, doi:10.1140/epjc/s10052-014-3242-3.
- arXiv:1808.00480, doi:10.1142/S0217751X18300272.
- arXiv:1910.11418, doi:10.1140/epjc/s10052-020-8076-6.
- arXiv:2006.09387, doi:10.1140/epjc/s10052-021-09052-5.
- arXiv:2112.05163, doi:10.1140/epjc/s10052-022-10511-w.
- arXiv:2206.14870, doi:10.21468/SciPostPhys.14.1.009.
- arXiv:2303.03427, doi:10.1140/epjc/s10052-023-11779-2.
SModelS: simplified-model constraints.
- arXiv:2409.12942, doi:10.1007/JHEP11(2024)074.
- arXiv:2306.17676, doi:10.21468/SciPostPhys.15.5.185.
- arXiv:2112.00769, doi:10.1007/JHEP08(2022)068.
- arXiv:2009.01809, doi:10.1016/j.cpc.2021.107909.
- arXiv:1811.10624, doi:10.1016/j.cpc.2019.07.013.
- arXiv:1701.06586, doi:10.1016/j.cpc.2018.02.007.
- arXiv:1312.4175, doi:10.1140/epjc/s10052-014-2868-5.
Contur: constraints from measurements.
- arXiv:1606.05296, doi:10.1007/JHEP03(2017)078.
- arXiv:2102.04377, doi:10.21468/SciPostPhysCore.4.2.013.
AgentRivet: agent-built Rivet routines. Home page: https://gitlab.com/hepcedar/AgentRivet.
HEPData: published data tables. Home page: https://www.hepdata.net/.
pyhf: likelihood fits.
ROOT: data handling and RooFit.
Combine: statistical combinations.
Spey: measurement likelihoods.
iminuit: minimisation.
Wolfram Engine: symbolic kernel. Home page: https://www.wolfram.com/engine/.
FeynRules: model files from a Lagrangian.
SARAH: model files and spectrum generators.
FeynArts: diagram generation.
FeynCalc: amplitude algebra.
- arXiv:2512.19858.
- arXiv:2312.14089, doi:10.1016/j.cpc.2024.109357.
- arXiv:2001.04407, doi:10.1016/j.cpc.2020.107478.
- arXiv:1601.01167, doi:10.1016/j.cpc.2016.06.008.
- doi:10.1016/0010-4655(91)90130-D.
HEPTAPOD: diagram estimates.
Diagrammatica: code from diagrams.
FeynGraph: feynman diagrams. Home page: https://github.com/jens-braun/feyngraph.
FlexibleSUSY: spectra and decays.
SPheno: spectra and decays.
- arXiv:hep-ph/0301101, doi:10.1016/S0010-4655(03)00222-4.
- arXiv:1104.1573, doi:10.1016/j.cpc.2012.05.021.
PySLHA: spectrum files.
pySecDec: loop integrals.
- arXiv:2305.19768, doi:10.1016/j.cpc.2023.108956.
- arXiv:2108.10807, doi:10.1016/j.cpc.2021.108267.
- arXiv:1811.11720, doi:10.1016/j.cpc.2019.02.015.
- arXiv:1703.09692, doi:10.1016/j.cpc.2017.09.015.
SymPy: symbolic evaluation.
PDG: particle data.
SFitterAgents: higgs and EFT fits.
EasyScan_HEP: parameter scans.
- arXiv:2304.03636, doi:10.1016/j.cpc.2023.109027.
- arXiv:2606.31214, doi:10.1140/epjc/s10052-026-16358-9.
GM2Calc: muon g−2 predictions.
- arXiv:1510.08071, doi:10.1140/epjc/s10052-015-3870-2.
- arXiv:2110.13238, doi:10.1140/epjc/s10052-022-10148-9.
PhaseTracer: phase transitions.
- arXiv:2412.04881, doi:10.1140/epjc/s10052-025-14258-y.
- arXiv:2003.02859, doi:10.1140/epjc/s10052-020-8035-2.
WCxf: wilson-coefficient exchange format.
Wilson: running and matching.
flavio: flavour and precision observables.
smelli: global EFT likelihood.
CAMB: cosmological power spectra.
CLASS: cosmological power spectra.
Cobaya: cosmological inference.
Nyx: cosmological simulation. Home page: https://amrex-astro.github.io/Nyx/.
AMReX: adaptive mesh refinement for Nyx.
- doi:10.21105/joss.01370.
- doi:10.1177/10943420211022811.
- With pyAMReX or more modern features of AMReX, also: doi:10.1177/10943420241271017.
SUNDIALS: differential-equation solvers for Nyx.
- doi:10.1145/3539801.
- doi:10.1145/1089014.1089020.
- With GPU features of SUNDIALS, also: doi:10.1016/j.parco.2021.102836.
- With its ARKODE package, also: doi:10.1145/3594632.
ServiceX: remote columnar data. Home page: https://servicex.readthedocs.io/.
func-adl-servicex-xaodr25: query translation for ServiceX. Home page: https://github.com/iris-hep/func_adl_servicex_xaodr25.
uproot: rOOT files in Python.
Awkward Array: columnar arrays.
XRootD: remote file access. Home page: https://xrootd.slac.stanford.edu/.
Snakemake: facility workflows.
LangGraph: research graph. Home page: https://github.com/langchain-ai/langgraph.
Podman: containers. Home page: https://podman.io/.
PyTorch: machine learning.
scikit-learn: machine learning.
ONNX Runtime: published classifiers.
Matplotlib: figures.
mplhep: hEP figure style.
Miniforge: bootstrap Python and conda environments. Home page: https://github.com/conda-forge/miniforge.
LHAPDF PDF sets: parton-density data sets. Home page: https://lhapdf.hepforge.org/pdfsets.html.
MG5aMC_PY8_interface: madGraph's own Pythia 8 showering. Home page: https://launchpad.net/mg5amcnlo.
vfkit: container virtual machine on macOS. Home page: https://github.com/crc-org/vfkit.
gvproxy: container virtual-machine networking. Home page: https://github.com/containers/gvisor-tap-vsock.
FORM: symbolic manipulation for loop integrals. Home page: https://github.com/form-dev/form.
SModelS database 3.2.1: simplified-model results database. Home page: https://github.com/SModelS/smodels-database-release.
SModelS database 3.1.1: simplified-model results database (earlier release). Home page: https://github.com/SModelS/smodels-database-release.
ThePEG: event-generator toolkit under Herwig. Home page: https://thepeg.hepforge.org/.
ALGLIB: numerical library for phase-transition scans. Home page: https://www.alglib.net/.
poppler: pDF rendering for reports. Home page: https://poppler.freedesktop.org/.
Graphviz: graph layout for reports. Home page: https://graphviz.org/.
librsvg: sVG rendering for reports. Home page: https://gitlab.gnome.org/GNOME/librsvg.
pypdfium2: pDF page rendering in Python. Home page: https://github.com/pypdfium2-team/pypdfium2.
pypdf: pDF reading and assembly in Python. Home page: https://github.com/py-pdf/pypdf.
PyTorch Geometric: graph neural networks. Home page: https://github.com/pyg-team/pytorch_geometric.
PDG Review of Particle Physics data: particle properties. Home page: https://pdg.lbl.gov/.
pdg Python package: offline access to PDG data. Home page: https://github.com/particledatagroup/api.
The glossary defines the workflow terms and links to their contracts. The visual overview provides a compact reading aid.