Week 40 · Sep 28 – Oct 2, 2026
Sep 28 – Oct 2, 2026
← All weekly reports
Summary for Hall-B
- clas12-systems (GEMC3) now builds from scratch on bare Geant4 — compiles GEMC from subproject, proven on all distros (CI)
- PCAL compare_all_edep fix: GEMC3 now drops FADC-threshold-rejected hits from the true bank like GEMC2
- clas12Tags: LTCC CAD geometry ported from Meson branch + tech note with reproducible benchmarks
- GEMC3 raised to C++20; fixed static-linking / TLS and symbol issues in SRO and CLAS12 plugins
- Geant4 Callgrind profiling workflow added; all images updated to Geant4 11.4.3
- OSG: ongoing job-landing issues on sites not mounting jlab.opensciencegrid.org
GEMC
- Ported optimized LTCC CAD geometry from the Meson branch, with a reproducible comparison benchmark.
- Measured full LTCC CAD loading, memory, electron/hadron transport, and geometry warnings.
- Fixed the intermittent boolean_solids failure: the uniform generator vertex could spawn outside the
too-small world and crash Geant4 navigation; widened the world to contain the full spread.
- Silenced the nodiscard std::stod warnings in the CAD and SQLite geometry loaders.
- Raised the project C++ standard to C++20 and stripped Geant4’s hardcoded -std=c++17 pkg-config flag so it
governs every translation unit, matching ROOT’s C++20 build and removing the standard-mismatch warning.
- Adopted C++20 starts_with/ends_with, container contains(), and std::numbers::pi in place of the
rfind/compare idioms, find-against-end membership tests, and the non-standard M_PI macro.
OSG
- Job-landing issues still ongoing: problems when a job lands on sites not mounting jlab.opensciencegrid.org.
- Updated HTCondor requirements for JLab CVMFS, Linux X86_64, resources, and file transfer.
- CLAS12 Discourse updated.
Geant4
- Installations moving to the new JLab point jlab.opensciencegrid.org.
- Updated all images to Geant4 11.4.3.
- Added a Callgrind profiling workflow running after the image deploy on the Ubuntu Geant4 debug image, with
a per-example matrix job compiling and saving the top 30 routines.
- Extracted example compilation and the beamOn event-count override into reusable CI scripts and wired them
into the Callgrind workflow.
- Added field03 and a physics-list matrix dimension, with a script that patches an example’s physics list to
the extensible factory so hardcoded examples can be swapped.
- Reworked the Callgrind workflow to profile each example through the Callgrinder action like src and
clas12-systems, with a Geant4 category config and a report job aggregating every cell.
GEMC3
- MILESTONE: clas12-systems now installs from scratch with no pre-existing GEMC — it compiles GEMC from the
gemc subproject onto a bare Geant4 (g4install) environment, and the Test CI workflow proves it across every
supported distro.
- Diagnosed the PCAL compare_all_edep failure as gemc3 keeping FADC-threshold-rejected ECAL hits in the true
bank while GEMC2 drops them; made intrinsic threshold/efficiency rejection also drop the true-info row to
match GEMC2.
- Added a GEMC subproject fallback and a use-gemc-location option so clas12-systems builds GEMC from source
when no install is found, keeping Geant4 external and never autobuilt.
- Made the GEMC subproject dependency propagate yaml-cpp so plugins resolve the public goption.h include that
an installed GEMC supplies via its headers.
- Made generate_geometry.zsh default to the build-tree pygemc venv so detector scripts find pygemc and
clas12_common without a hand-set interpreter.
- Gated GEMC’s own tests and examples behind a standalone-build check so they no longer pollute
clas12-systems meson test when GEMC is built as a subproject.
- Pointed the SRO full-path test at the installed GEMC when GEMC is built from source, since the subproject
build-tree binary cannot resolve its runtime layout.
- Changed SRO plugin linkage to reuse runtime framework symbols and avoid Linux static TLS exhaustion.
- Isolated bundled XML parser symbols to fix static linking; verified mesh imports and simulation.
- Fixed SRO example linking with strict symbol checks; verified crate output across worker counts.
- Removed special GEMC data-library linking from CLAS12 plugins and verified release plugin loading.
- Fixed CLAS12 profiling builds to resolve shared GEMC libraries while preserving static release linking.
- Moved Meson native-file settings into project defaults and verified CI overrides and a fresh build.
- Documented the meson dependency-loading logic for CLHEP, Qt6, and Geant4 in new READMEs under both meson
directories, explaining the producer/consumer split and why CLHEP stays shared in the core but static in
the plugins.
- Split thread-scaling scenarios into independent matrix jobs with separate reports and a shared build; moved
thread-scaling builds and runs to Ubuntu 26.04 Geant4 images with explicit dependencies.
- Standardized CI environment logs with CPU, Docker, Geant4, and physics-data details.
- SRO presentation to the EPSCI/SRO meeting; SRO channel added to Team SciComp.
Homepage
- Fixed HTCondor edit examples to pass requirements without embedded newlines; corrected requirements
inspection and added compact job-status counts.
- Clarified cluster-wide and held-only HTCondor edits and removed the Oasis revision requirement; documented
edits to queued jobs for CVMFS, memory, and site exclusions.
- Refreshed release news, added journal highlights and the upcoming OSG note, and clarified homepage content.
- Extended weekly reports to refresh relevant homepage news, releases, projects, and profile content.
- Extended weekly reviews to adapt GEMC website content for pygemc, src, and clas12-systems changes.
- Added local recipe publishing and a dinner-planning page with meal choices and a cuisine directory;
iterated on grouped ingredients, date labels, a compact two-column layout, pantry-ingredient metadata,
centralized pantry staples with recipe-specific exclusions, and editable shared defaults (water, milk,
butter) while preserving full recipes.
CLAS12 Notes
- Added matched STL images of the original and optimized LTCC hardware, nose, and Winston cones.
- Clarified that LTCC transport CPU differences may reflect navigation defects and incomplete particle
histories.
- Started a CLAS12 technical note on CAD optimization with reproducible measurements and validation.
Actions
- Moved profiling summary enhancements into a new release and preserved the previous release notes; added
source and call-count columns and verified report output.
- Reworded the Callgrinder report legend so a healthy run no longer trips the smoke test’s unavailable guard,
and confirmed the full suite passes.
- Reordered the Callgrinder top-routines table so the source file sits before the routine and call counts are
last; updated the affected tests.
- Verified profiling summary columns, fixed ABI-tagged call counts, and added new release notes.
- Fixed weekly website reviews to enforce structured edits and report agent response failures clearly.