Week 38 · Sep 14–18, 2026
Sep 14–18, 2026
← All weekly reports
Summary for Hall-B
- Added build options to reuse installed CCDB, HIPO, clas12-cmag libraries and external magfield location
- gemc/meson does not install the subproject libraries anymore (avoids conflicts)
- Valgrind/callgrind profiling workflow across GEMC3, clas12-systems, and GEMC2 with per-detector CEst tables
- Nightly ASCII/SQLite comparison limited to detectors changed in the last 24h
- OSG dev portal jobs failing on memory overruns — investigating gemc/dev
- Upgraded GEMC3 streaming-readout (SRO) for FT-Cal: crate threads, timing contract, examples, docs
GEMC
- Split release notes so main-branch changes land in 6.2 and 7.0 while meson-only changes stay in 7.0.
- Verified
meson setup -D use-fields-location=<path> works with an external magfield location; made that
configured external field-map location the compiled default for GEMC2 magnetic fields.
- Documented the CMake system-SQLite flag in the CCDB patches for GEMC2 and GEMC3, and opened a merge request
for the new
CCDB_USE_SYSTEM_SQLITE option so CCDB compiles against system SQLite. Was merged.
- Documented the library and magnetic field-map install options together with a combined build example; added
independent build options to reuse installed CCDB, HIPO, and clas12-cmag libraries.
- Nightly ASCII/SQLite comparison work:
- Limited nightly ASCII/SQLite comparisons to detectors changed in the last 24 hours; manual runs stay full.
- User support: helped a user with a gemc run that failed on a version mismatch; another user reported a vertex
z offset that turned out to be a wrong gcard setting — communicating with him.
OSG
- Queue empty, priority working well; a colleague is testing RGE in dev.
- OSG jobs in the dev portal failing because memory exceeds the requested value — investigating.
- Added HTCondor troubleshooting notes: starter connection failures, missing live output, memory holds, live
debugging, log streaming, and diagnostic retries.
GEMC3
- Streaming-readout (SRO) build-out:
- Implemented FT-Cal SRO with translation table lookup, JLAB crate frames, and offline output
tests; added the generic gparticle
eventTimeWidth option and used it for FT-Cal and SRO event timing.
- Defined SRO payload, timing, crate-processing, and frame-output interfaces with ownership and shutdown
rules; added crate threads with bounded queues, ordered delivery, shutdown handling, and concurrency tests.
- SRO payload is still the old version, will need to be updated to the new version.
- Added a shared SRO service with lazy crate creation, direct dispatch, and coordinated run shutdown;
automatic event completion and delivery tracking with safe-time updates and shutdown checks.
- Connected SRO to worker and run actions with implementation loading, crate output, and integration tests;
added a documented random-ADC SRO example and verified geometry-to-crate output with multiple workers.
- Fixed SRO sanitizer linking by declaring the direct hit-library dependency for actions and runtime tests.
- Housekeeping: removed obsolete SRO source copies (kept active DAQ definitions and documented provenance),
moved legacy SRO sources into CLAS12 with verified raw DAQ archives and explicit header setup, and preserved
the legacy JLAB SRO source with format details and validation needs for the future CLAS12 port.
- SRO documentation:
- Updated SRO docs to describe the maintained code and drop obsolete archive references; documented archived
DAQ definitions, the header-change procedure, and historical FT SRO scope.
- Documented SRO plugin contracts, FT-Cal setup, and worker-to-crate flow in a separate website section;
explained why crate queue and ordering limits are separate and how each handles memory pressure.
- Clarified frame duration, positive/negative timing corrections, and the exact SRO timing callbacks;
explained the timing contract in plain language with delayed-hit and frame-closure examples.
- Reworked the SRO guide around the random-ADC example with commented callbacks and a lifecycle diagram;
clarified event times, hits spanning frames, and safe frame closure. Moved the SRO example from basic to
advanced.
- Moved GEMC3 documentation journal entries into the GEMC3 section.
- CLAS12 GEMC3 builds:
- Added installed-dependency options, external field-map defaults, and system SQLite; linked CCDB statically
into the plugins with the same MySQL and platform link args as clas12Tags.
- Unified the CLAS12 GEMC3 compiled field-map default macro with GEMC2 and preserved path escaping.
- Documented the SRO capability and how to activate it in the CLAS12 systems README; warned when the install
prefix differs from the detected GEMC prefix and documented installing into it.
- Profiling (Valgrind / callgrind):
- Added a callgrind profiling workflow and
profile_gemc.sh over five examples with qcachegrind reading
guidance; added CEst cache/branch simulation and profile_summary.py reporting per-category inclusive
cycle cost, discovering digitization, SRO, and field types automatically so external plugins appear.
- Ported the workflow to clas12-systems (profiles the combined rga config, per-detector CEst table from each
digitizeHit plugin) and to clas12Tags GEMC2 (per-detector table keyed on each _HitProcess
integrateDgt/multiDgt, replacing the time-per-track metrics table with qcachegrind guidance).
- Fixed the profile build’s assimp/Geant4 pugixml duplicate-symbol link error by building the profile with
shared libraries (driven from the requested library type, matching the sanitizer builds); reduced all
example profiles to 100 events.
- Made each profile job print its own per-category CEst table and fixed the summary parser to tolerate
callgrind_annotate percentages (which had made every table read as unavailable); added a
top-ten-routines-by-self-time table from a second callgrind pass.
- HIPO comparison gate: dropped the over-dispersed per-hit
true_phi_sector/adc_sector histograms from the
EC/PCAL pass/fail gate (kept overlay plots) and normalized EC/PCAL per-sector occupancy by the primaries
generated into each sector, so the test measures detector response instead of generator count fluctuations.
- ThreadScale: restored summary graph dots and verified single-point and comparison charts.
- Hardened the clas12-systems dispatch to fail with a clear, actionable message when its trigger token is
missing or unauthorized, instead of a cryptic bad-credentials error.
Home website
- Added a git notes section on reverting or undoing the last commit (revert, reset variants, reflog).
- Moved the thread-scaling documentation from the src README to the home Support section and added a Valgrind
profiling page there.
Geant4
- g4install: adding an ubuntu26 image with debug symbols for profiling.
Automation
- Fixed weekly-report error logging to expose Claude login failures and verified the failure handling offline.