diff --git a/CHANGELOG.md b/CHANGELOG.md
index c82d5b447f..c9f5770138 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,9 +18,11 @@ it in future.
* New warm MS option TRY_2025 (Stellatryon v.2) added to the config and its field map
+* Created genie_config folder for our XML configuration files. For now, only replacing Pythia6Decayer with Pythia8Decayer
### Changed
* Only get evtNo in ShipStack if there are tracks. Prevents seg faults from accessing empty events at the end of the run. #1051
+* makeGenieEvents: automatically set GXMLPATH to the genie_config folder. Remove option --nudet since now GXMLPATH always needs to be set.
* Make Ship::Generator base class for all the generators. Each generator can in principal take a list of files, although each will need to implement the method to do so. #1047
* Add file glob to run_simScript.py input files to allow for wildcards etc. Also, if nEvents is set to -1, run over everything. #1041
* Turn warning to debug in MuonBackGenerator to prevent overly verbose output. #1036
diff --git a/macro/makeGenieEvents.py b/macro/makeGenieEvents.py
index ebcce2d955..b99fa9cda4 100644
--- a/macro/makeGenieEvents.py
+++ b/macro/makeGenieEvents.py
@@ -3,15 +3,14 @@
# SPDX-FileCopyrightText: Copyright CERN for the benefit of the SHiP Collaboration
"""Generate GENIE neutrino interaction events from flux histograms.
-This “launcher” wraps `genie_utils` (gmkspl/gevgen/gntpc helpers) and adds:
+This "launcher" wraps `genie_utils` (gmkspl/gevgen/gntpc helpers) and adds:
- Argument parsing with sensible defaults and validation
-- Optional *nudet* mode (disables charm/tau decays via GXMLPATH)
- Automatic neutrino/antineutrino scaling based on flux hist sums
- Structured logging and robust error reporting
Typical use
-----------
-$ python $FAIRSHIP/macro/makeGenieEvents sim \
+$ python $FAIRSHIP/macro/makeGenieEvents.py sim \
--seed 65539 \
--output ./work \
--filedir /eos/experiment/ship/data/Mbias/background-prod-2018 \
@@ -21,14 +20,13 @@
--emin 0.5 --emax 350 \
--xsec-file gxspl-FNALsmall.xml \
--flux-file pythia8_Geant4_1.0_withCharm_nu.root \
- --event-generator-list CC \
- --nudet
+ --event-generator-list CC
Notes
-----
- This tool *does not* modify your parent shell environment.
-- `--nudet` sets `GXMLPATH` for the child process only (you can override path
- with `--gxmlpath`).
+- GXMLPATH is automatically set to $FAIRSHIP_ROOT/shipgen/genie_config by default.
+- Use `--gxmlpath` to override the default GXMLPATH if needed.
"""
@@ -36,6 +34,7 @@
import argparse
import logging
+import os
from collections.abc import Mapping, Sequence
from pathlib import Path
@@ -101,11 +100,15 @@ def _ensure_dir(path: Path) -> None:
path.mkdir(parents=True, exist_ok=True)
-def _build_env(nudet: bool, gxmlpath: Path | None) -> Mapping[str, str | None] | None:
- """Build per-call env overrides (sets GXMLPATH only in nudet mode)."""
- if not nudet:
- return None
- val = str(gxmlpath) if gxmlpath else "/eos/experiment/ship/user/aiuliano/GENIE_FNAL_nu_splines"
+def _build_env(gxmlpath: Path | None) -> Mapping[str, str | None] | None:
+ """Build per-call env overrides (sets GXMLPATH)."""
+ fairship_root_path = os.getenv("FAIRSHIP_ROOT") or os.getenv("FAIRSHIP")
+ if not fairship_root_path:
+ raise OSError(
+ "FAIRSHIP_ROOT (or FAIRSHIP) environment variable is not set. "
+ "Please run inside the FairShip alienv environment."
+ )
+ val = str(gxmlpath) if gxmlpath else fairship_root_path + "/shipgen/genie_config"
return {"GXMLPATH": val}
@@ -165,12 +168,9 @@ def make_events(
out_dir = work_dir / f"genie-{pdg_name}_{N}_events"
_ensure_dir(out_dir)
- nudet_suffix = "_nudet" if env_vars and env_vars.get("GXMLPATH") else ""
- filename = (
- f"run_{run}_{pdg_name}_{N}_events_{targetcode}_{emin}_{emax}_GeV_{process or 'ALL'}{nudet_suffix}.ghep.root"
- )
+ filename = f"run_{run}_{pdg_name}_{N}_events_{targetcode}_{emin}_{emax}_GeV_{process or 'ALL'}.ghep.root"
ghep_path = out_dir / filename
- gst_path = out_dir / f"genie-{filename}"
+ gst_path = out_dir / f"genie-{filename.replace('ghep.root', 'gst.root')}"
logging.info(f"Generating {N} events for PDG {pdg_name} (run={run}) -> {ghep_path}")
@@ -259,8 +259,7 @@ def _build_parser() -> argparse.ArgumentParser:
default=None,
help="GENIE generator list (e.g. CC, CCDIS, CCQE, CharmCCDIS, RES, CCRES, ...)",
)
- ap.add_argument("--nudet", action="store_true", help="Disable charm & tau decays via GXMLPATH")
- ap.add_argument("--gxmlpath", type=Path, default=None, help="Override GXMLPATH in --nudet mode")
+ ap.add_argument("--gxmlpath", type=Path, default=None, help="Override GXMLPATH")
ap.add_argument(
"-p",
"--particles",
@@ -315,7 +314,7 @@ def main(argv: Sequence[str] | None = None) -> int:
return 0
# sim
- env_vars = _build_env(nudet=bool(args.nudet), gxmlpath=args.gxmlpath)
+ env_vars = _build_env(gxmlpath=args.gxmlpath)
targetcode = _target_code(args.target)
splines = (args.splinedir / args.xsec_file).resolve()
@@ -328,12 +327,7 @@ def main(argv: Sequence[str] | None = None) -> int:
particles = _pdg_list(args.particles)
nu_over_nubar = extract_nu_over_nubar(flux, particles)
- logging.info(
- f"Seed: {args.seed} | "
- f"Target: {args.target} ({targetcode}) | "
- f"Process: {args.evtype or 'ALL'} | "
- f"nudet={bool(args.nudet)}"
- )
+ logging.info(f"Seed: {args.seed} | Target: {args.target} ({targetcode}) | Process: {args.evtype or 'ALL'}")
make_events(
run=int(args.run),
nevents=int(args.nevents),
diff --git a/pyproject.toml b/pyproject.toml
index 4e7410c625..b9f535b825 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -12,4 +12,4 @@ ignore = [
[tool.codespell]
-ignore-words-list = 'Millepede,Gaus,gaus,dYIn,te'
+ignore-words-list = 'Millepede,Gaus,gaus,dYIn,te,KNO,kno'
diff --git a/shipgen/genie_config/AGKY2019.xml b/shipgen/genie_config/AGKY2019.xml
new file mode 100644
index 0000000000..90a761ba8f
--- /dev/null
+++ b/shipgen/genie_config/AGKY2019.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+ KNO2Pythia
+
+ genie::AGKYLowW2019/Default
+ genie::Pythia8Hadro2019/Default
+
+
+
+
diff --git a/shipgen/genie_config/AGKYLowW2019.xml b/shipgen/genie_config/AGKYLowW2019.xml
new file mode 100644
index 0000000000..e1c9536d3c
--- /dev/null
+++ b/shipgen/genie_config/AGKYLowW2019.xml
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+
+ NonResBackground
+
+
+ 0.40
+ -0.20
+ 0.02
+ 0.80
+ 1.42
+ 1.42
+ 1.28
+ 0.95
+
+ 0.40
+ -0.20
+ 0.02
+ 0.80
+ 1.42
+ 1.42
+ 1.28
+ 0.95
+
+
+ 0.021951447
+ 0.041969985
+
+
+ 7.93
+ 5.22
+ 5.22
+ 7.93
+
+ 7.93
+ 5.22
+ 5.22
+ 7.93
+
+
+ 0.3133
+ 0.6267
+ 0.03
+ 0.03
+ 0.0
+ 0.0
+
+
+ true
+ 3.5
+
+
+ true
+ true
+
+
+
+
+ true
+ genie::Pythia8Decayer2023/Default
+
+
+
+ false
+ false
+
+
+
+ true
+ genie::Pythia8Decayer2023/Default
+ false
+ false
+
+
+
diff --git a/shipgen/genie_config/DISHadronicSystemGenerator.xml b/shipgen/genie_config/DISHadronicSystemGenerator.xml
new file mode 100644
index 0000000000..51de28438f
--- /dev/null
+++ b/shipgen/genie_config/DISHadronicSystemGenerator.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+ NUCL
+
+ genie::AGKY2019/Default
+ genie::UnstableParticleDecayer/BeforeHadronTransport
+ false
+
+
+ 0.342
+ 2.300
+ 0.0
+
+
+
+
+ genie::AGCharmPythia8Hadro2023/Default
+ genie::UnstableParticleDecayer/BeforeHadronTransport
+ false
+
+
+
+
diff --git a/shipgen/genie_config/Messenger.xml b/shipgen/genie_config/Messenger.xml
new file mode 100644
index 0000000000..cb61f4a5b7
--- /dev/null
+++ b/shipgen/genie_config/Messenger.xml
@@ -0,0 +1,258 @@
+
+
+
+
+
+
+ NOTICE
+ DEBUG
+ DEBUG
+ DEBUG
+ DEBUG
+
+ WARN
+
+ WARN
+
+ INFO
+ WARN
+ WARN
+ WARN
+ WARN
+ INFO
+ INFO
+ INFO
+ DEBUG
+ NOTICE
+ WARN
+ WARN
+ WARN
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ INFO
+ INFO
+ WARN
+ WARN
+ NOTICE
+ WARN
+ NOTICE
+ INFO
+ WARN
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ WARN
+ WARN
+ NOTICE
+ DEBUG
+ DEBUG
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ NOTICE
+ WARN
+ WARN
+
+ WARN
+ NOTICE
+ NOTICE
+
+ NOTICE
+ WARN
+ NOTICE
+ WARN
+ NOTICE
+ INFO
+ INFO
+ WARN
+ INFO
+ WARN
+ NOTICE
+ NOTICE
+ NOTICE
+ WARN
+ NOTICE
+ WARN
+ NOTICE
+ INFO
+ INFO
+ WARN
+ NOTICE
+ WARN
+ INFO
+ INFO
+ INFO
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ NOTICE
+ NOTICE
+ WARN
+ WARN
+ NOTICE
+ NOTICE
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ WARN
+ WARN
+ WARN
+ INFO
+ NOTICE
+ NOTICE
+ NOTICE
+ WARN
+ WARN
+ NOTICE
+ NOTICE
+ NOTICE
+ WARN
+ NOTICE
+ INFO
+ NOTICE
+ WARN
+ NOTICE
+ WARN
+ INFO
+ NOTICE
+ INFO
+ INFO
+ NOTICE
+ INFO
+ INFO
+ INFO
+ INFO
+ NOTICE
+ NOTICE
+ INFO
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ NOTICE
+ WARN
+ NOTICE
+ NOTICE
+ NOTICE
+ WARN
+ WARN
+ INFO
+ WARN
+ WARN
+ INFO
+ WARN
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ WARN
+ NOTICE
+ WARN
+ NOTICE
+ WARN
+ WARN
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ INFO
+ INFO
+ WARN
+ NOTICE
+ WARN
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ ERROR
+ FATAL
+
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ INFO
+ WARN
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ FATAL
+ FATAL
+ FATAL
+
+
diff --git a/shipgen/genie_config/Messenger_inuke_verbose.xml b/shipgen/genie_config/Messenger_inuke_verbose.xml
new file mode 100644
index 0000000000..356a117ee6
--- /dev/null
+++ b/shipgen/genie_config/Messenger_inuke_verbose.xml
@@ -0,0 +1,226 @@
+
+
+
+
+
+
+ NOTICE
+ WARN
+ INFO
+ WARN
+ WARN
+ WARN
+ WARN
+ INFO
+ INFO
+ INFO
+ DEBUG
+ NOTICE
+ WARN
+ WARN
+ WARN
+ NOTICE
+ INFO
+ INFO
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ WARN
+ WARN
+ NOTICE
+ WARN
+ NOTICE
+ INFO
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ WARN
+ DEBUG
+ DEBUG
+ NOTICE
+ NOTICE
+ WARN
+ INFO
+ NOTICE
+ INFO
+ WARN
+ NOTICE
+ NOTICE
+ INFO
+ INFO
+ WARN
+ INFO
+ INFO
+ NOTICE
+ NOTICE
+ WARN
+ NOTICE
+ NOTICE
+ WARN
+ INFO
+ INFO
+ WARN
+ NOTICE
+ WARN
+ INFO
+ INFO
+ INFO
+ WARN
+ WARN
+ WARN
+ INFO
+ NOTICE
+ INFO
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ NOTICE
+ INFO
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ WARN
+ NOTICE
+ INFO
+ INFO
+ INFO
+ NOTICE
+ WARN
+ NOTICE
+ NOTICE
+ INFO
+ NOTICE
+ INFO
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ NOTICE
+ INFO
+ INFO
+ NOTICE
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ WARN
+ INFO
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ WARN
+ WARN
+ WARN
+ WARN
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ WARN
+ WARN
+ DEBUG
+ INFO
+ WARN
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ INFO
+ INFO
+ INFO
+ NOTICE
+ WARN
+ NOTICE
+ NOTICE
+ NOTICE
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ ERROR
+
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ NOTICE
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+
+
diff --git a/shipgen/genie_config/Messenger_laconic.xml b/shipgen/genie_config/Messenger_laconic.xml
new file mode 100644
index 0000000000..c5ebddc93f
--- /dev/null
+++ b/shipgen/genie_config/Messenger_laconic.xml
@@ -0,0 +1,247 @@
+
+
+
+
+
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+
+ WARN
+ WARN
+ WARN
+
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+
+
diff --git a/shipgen/genie_config/Messenger_rambling.xml b/shipgen/genie_config/Messenger_rambling.xml
new file mode 100644
index 0000000000..c212f2456c
--- /dev/null
+++ b/shipgen/genie_config/Messenger_rambling.xml
@@ -0,0 +1,243 @@
+
+
+
+
+
+
+ NOTICE
+ WARN
+
+ WARN
+ INFO
+ WARN
+ WARN
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ DEBUG
+ NOTICE
+ WARN
+ WARN
+ WARN
+ NOTICE
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ WARN
+ WARN
+ NOTICE
+ WARN
+ NOTICE
+ INFO
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ NOTICE
+ INFO
+ DEBUG
+ DEBUG
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ NOTICE
+ INFO
+ NOTICE
+
+ NOTICE
+ NOTICE
+ NOTICE
+
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ INFO
+ INFO
+ WARN
+ INFO
+ INFO
+ INFO
+ NOTICE
+ NOTICE
+ WARN
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ INFO
+ WARN
+ NOTICE
+ WARN
+ INFO
+ INFO
+ INFO
+ NOTICE
+ WARN
+ WARN
+ INFO
+ NOTICE
+ INFO
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ WARN
+ NOTICE
+ INFO
+ INFO
+ INFO
+ INFO
+ NOTICE
+ WARN
+ NOTICE
+ INFO
+ NOTICE
+ INFO
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ NOTICE
+ INFO
+ INFO
+ NOTICE
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ WARN
+ WARN
+ WARN
+ WARN
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ WARN
+ WARN
+ DEBUG
+ INFO
+ INFO
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ INFO
+ INFO
+ INFO
+ NOTICE
+ WARN
+ NOTICE
+ NOTICE
+ NOTICE
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ WARN
+ ERROR
+
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ NOTICE
+ INFO
+ NOTICE
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+ INFO
+
+
diff --git a/shipgen/genie_config/Messenger_whisper.xml b/shipgen/genie_config/Messenger_whisper.xml
new file mode 100644
index 0000000000..7d9e295ed2
--- /dev/null
+++ b/shipgen/genie_config/Messenger_whisper.xml
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+ FATAL
+ FATAL
+
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+
+ FATAL
+ FATAL
+ FATAL
+
+ NOTICE
+ WARN
+ NOTICE
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+ FATAL
+
+
diff --git a/shipgen/genie_config/README.md b/shipgen/genie_config/README.md
new file mode 100644
index 0000000000..0a122c7fc7
--- /dev/null
+++ b/shipgen/genie_config/README.md
@@ -0,0 +1,33 @@
+# Configuration files for GENIE simulations
+
+## Introduction
+
+Following ROOT's deprecation of TPythia6, these files replace the Pythia6Decayer
+with Pythia8Decayer in GENIE.
+
+## Details
+
+For more information, see:
+
+- https://genie-mc.github.io/releases.html
+- https://github.com/GENIE-MC/Generator/pull/430
+
+To use these files, set the `GXMLPATH` environment variable to this folder before
+launching the simulation. This is done automatically by `makeGenieEvents.py`.
+
+This folder mirrors the structure of the default GENIE configuration and currently
+only contains the files needed to switch from Pythia6Decayer to Pythia8Decayer.
+
+## History
+
+- February 2026: Initial creation (Antonio Iuliano)
+
+## Notes on particle decays
+
+Particle decays were previously configured in `UserPhysicsOptions.xml`. They are
+now provided in a "tune" folder. See for example:
+https://github.com/SND-LHC/sndsw/blob/master/shipgen/genie_config/SNDGHE19_00b/CommonDecay.xml
+
+GENIE no longer decays tau and charmed hadrons by default (this was the default
+in our old branch: https://github.com/ShipSoft/GENIE/blob/v2.12.6-ship2021/config/UserPhysicsOptions.xml),
+so we no longer need to override these settings.
diff --git a/shipgen/genie_config/UnstableParticleDecayer.xml b/shipgen/genie_config/UnstableParticleDecayer.xml
new file mode 100644
index 0000000000..08237bab1f
--- /dev/null
+++ b/shipgen/genie_config/UnstableParticleDecayer.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+ 2
+ genie::Pythia8Decayer2023/BeforeHadronTransport
+ genie::BaryonResonanceDecayer/BeforeHadronTransport
+
+
+
+ 2
+ genie::Pythia8Decayer2023/AfterHadronTransport
+ genie::BaryonResonanceDecayer/AfterHadronTransport
+
+
+
+ 3
+ genie::Pythia8Decayer2023/AfterHadronTransport
+ genie::BaryonResonanceDecayer/AfterHadronTransport
+ genie::DarkSectorDecayer/Default
+
+
+
+