Mirrors run_pbwo4 but alternates thin absorber and active layers,
with four selectable configs (by name or 1-based index): pb_scint,
fe_scint, w_scint_ecal (homogeneous ECAL-like preshower + W/scint
sampling section), and pb_lar. Each is sized to reach ~20-25 X0 of
absorber despite the dilution from inactive gaps. Wired into the
top-level CMakeLists, superbuild, and Dockerfile alongside run_pbwo4.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Switches from the old per-component Dockerfile-mini to a unified
Dockerfile that uses the superbuild CMake setup, Ubuntu 24.04, uv for
Python dependency management, and pyproject.toml for the Python
environment.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
G4Calo.py prints the commit at import time, resolved via a
minicalo_version.py file (baked in by Docker) or git rev-parse
from the file's directory as fallback.
event_id in the Steps ntuple restarts from 0 in each subprocess;
_assemble_results_to_mini_df now accepts per-file event_id_offsets
so IDs are globally unique after merging. run_batch passes cumulative
nevents as offsets when loading the Steps tree.
Dockerfiles write minicalo_version.py before copying Python files.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The submodule leaves a .git *file* (not directory) pointing to
../../.git/modules/lib/geant4, which passes G4GitUtilities' guard
but causes a FATAL_ERROR when git status fails in the bare /tmp dir.
Remove .git before cmake so the guard fires and the check is skipped.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add 15 new columns to the Steps ntuple: edep, step_length, parent_id,
process name, layer_id, material, pre-step momentum direction, and
B/E field components (in T and V/m) at the pre-step point.
Replace wget Geant4 tarball download in all three Dockerfiles with
ADD of the lib/geant4 submodule source; narrow submodule init to
lib/pybind11 only so builds no longer require network access for Geant4.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
run_pbwo4.py simulates 10 events in a single 20cm G4_PbWO4 layer
(10x10 sensor grid, 1 GeV e-) and saves results as a pickle next to
the script. Both images now expose /examples containing all bind/ files.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>