Releases: DeepLearnPhysics/dlpgen-opt
Release list
v0.4.4
Fixed
- Accept zero visible SPINE truth interactions for a generated interaction whose particles leave no retained detector voxels, while continuing to reject multiple interactions per image and reporting the empty-event count.
Validation
All 108 tests pass. A fresh 100-event GENIE BNB/SBND production completed with 100 entries at every stage: 99 entries contain one visible truth interaction and one is a valid empty detector image. No entry contains multiple truth interactions.
v0.4.3
Added
- Add an optional SPINE 1.2.4 conversion stage that writes validated HDF5 directly from Supera LArCV truth products without installing PyTorch.
- Add shared SPINE dataset configuration plus generator-specific interaction schemes for DLPGenerator, GENIE, GiBUU, NuWro, and NEUT.
- Add a deterministic production-wide SPINE event cap for compact diagnostic samples, defaulting to the first 100 events in every packaged production.
Changed
- Record both the generator-specific and shared SPINE configurations in production provenance and validate one truth interaction per converted event.
Validation
All 106 tests pass. Fresh 10-event SBN baseline DLPGenerator and GENIE BNB/SBND samples completed end to end through generation, edep-sim, Supera, and SPINE HDF5 conversion.
v0.4.2
Changed
- Preserve GiBUU, NuWro, and NEUT native process IDs as interaction types while retaining normalized GENIE-compatible interaction modes.
- Pin edep2supera v2.1.2 for the producer-side metadata contract.
Fixed
- Support NEUT 5.8.0 requests below 20 events by producing a safe native batch and converting exactly the requested event count.
- Support NuHepMC attribute mapping views when reading cross-section metadata.
Validation
All 101 tests pass. Both runtime targets build successfully. A fresh 10-event LBNF RHC ND NEUT run completed end to end with 10 RooTracker entries, 10 edep-sim events, and 10 Supera neutrino entries.
v0.4.1
Fixed
- Updated edep2supera to v2.1.1.
- Neutrino truth now uses event-local interaction IDs matching Supera particle labels, so SPINE can attach neutrino metadata to every truth interaction rather than only the first event in a source file.
Validation
GENIE, GiBUU, and NuWro each completed fresh 10-event LBNF RHC ND runs with one neutrino record per entry and matching interaction IDs. NEUT continues to hit its previously identified upstream antineutrino/Ar-40 normalization SIGFPE before event generation.
v0.4.0
Highlights
- Adds experimental NEUT 5.8 support through the shared dk2nu, NuHepMC, edep-sim, and Supera pipeline.
- Adds LBNF FHC/RHC near- and far-detector profiles across GENIE, GiBUU, NuWro, and NEUT.
- Adds the DUNE single-interaction CC/NC context baseline at one fixed position and time.
- Updates DLPGenerator to v1.2.0 for block-local weighted interaction selection.
- Retains dual Pythia6/Pythia8 GENIE support and NuWro's Pythia6 runtime.
NEUT packaging
The published GHCR image includes the complete NEUT adapter but does not redistribute NEUT binaries. Build the opt-in local image with:
docker build --platform linux/amd64 --target runtime-neut -t dlpgen-opt:0.4.0-neut .
All NEUT profiles then use the same standard dlpgen-opt run interface. See the README and changelog for details.
v0.3.0
Highlights
- Adds a checksum-pinned NuWro 25.11.1 backend with reusable SBND and ICARUS BNB profiles.
- Uses the shared canonical dk2nu projection for NuWro flux sampling and preserves native output and production provenance.
- Builds GENIE 3.6.2 with selectable Pythia 6 and Pythia 8 hadronization; Pythia 8 remains the default.
- Packages standalone ROOTEGPythia6 6.28.0 for both NuWro and GENIE without downgrading the ROOT 6.32 runtime.
- Adds isolated GENIE hadronization configuration overlays, versioned build caching, and image self-checks for both backends.
- Updates all packaged production profiles and documentation for the 0.3.0 image.
Validation
- Python 3.10 and 3.13 CI passed.
- All 74 unit tests passed locally.
- The linux/amd64 production image built successfully.
- NuWro and both GENIE hadronization backends were exercised with 10-event SBND dk2nu samples through edep-sim and Supera.
See the changelog for details.
v0.2.2
Highlights
- replaces GiBUU's lossy NuHepMC-to-HEPEVT transport handoff with generator-neutral RooTracker
- preserves the incoming neutrino, target nucleus, struck nucleon, CC/NC current, interaction mode, native GiBUU process ID, cross section, weight, and physical final state
- labels edep-sim TG4 primaries as GiBUU and populates the shared
initial-stateinformational vertex - enables edep2supera 2.1 to write populated LArCV
neutrino_mc_truthfor GiBUU events - carries the same truth through cached-candidate production and explicitly rejects incompatible v1 cache and campaign records
The boundary was validated with native GiBUU 2025 output through a complete dlpgen-opt run: NuHepMC → RooTracker → edep-sim/TG4 → edep2supera/LArCV. The resulting truth record contained the expected νμ, μ⁻, Ar-40 target, struck neutron, CC/QES classification, and native GiBUU process ID.
v0.2.1
Highlights
- packages edep2supera v2.1.0 with LArCV neutrino truth extraction from preserved EDepSim initial-state metadata
- adds a complete, automatically checked dependency and artifact lock manifest
- introduces durable registry-backed BuildKit caching alongside the GitHub Actions cache
- makes expensive Geant4, GENIE, and dk2nu build results portable across fresh release runners
- updates CI and release actions to Node 24 releases
- recursively verifies every published OCI image, platform, and attestation manifest
This release intentionally seeds the durable build cache for the planned v0.3.0 generator work. GiBUU events remain valid and receive an empty neutrino collection until the NuHepMC transport adapter preserves incoming-state metadata.
v0.2.0
Highlights
- Adds native GiBUU 2025 generation and existing-NuHepMC import behind the standard
dlpgen-optsource interface. - Adds a deterministic, generator-neutral dk2nu throw table and reusable GiBUU energy/flavor projection for BNB/SBND and BNB/ICARUS.
- Adds a provenance-preserving NuHepMC-to-edep-sim transport adapter.
- Adds immutable shared GiBUU candidate shards, automatic effective-sample-size-based pool sizing, deterministic campaign allocation, cache reuse, and SLURM preparation dependencies.
- Packages the G18 hA/hN comparison and N24 GENIE robustness tunes alongside AR23.
- Adds pull-request and
mainCI on Python 3.10 and 3.13.
Validation
- 62 unit tests pass on both CI Python versions.
- A fresh local BNB/SBND run generated 10 GiBUU events through edep-sim and Supera end to end.
- A separate production reused the native candidate cache without generating another shard and reproduced identical HEPEVT output for the same seed.
See the repository changelog for the complete list of additions and fixes.
v0.1.5
Patch release eliminating process-dependent Supera verbosity in production.
- Pins SuperaAtomic v1.9.2, which initializes all logger thresholds deterministically and honors the configured default for named loggers.
- Applies
SuperaDriver.LogLevelbefore any driver message is emitted. - Uses the supported nested
SuperaDriverconfiguration in the SBN and DUNE profiles. - Points the default SBND and ICARUS BNB profiles at the immutable production CVMFS flux catalog.
Validation:
- All 36 dlpgen-opt tests pass.
- Rebuilt the complete linux/amd64 production image locally.
- Verified direct and named Supera loggers inherit their configured default.
- Verified an end-to-end Supera run configured at
WARNINGemits zeroVERBOSE,DEBUG, orINFOmessages.
Publishing this release triggers the GHCR build for ghcr.io/deeplearnphysics/dlpgen-opt:0.1.5 and latest.
Full Changelog: v0.1.4...v0.1.5