GEMC 0.4
GEMC 0.4 brings interactive analysis into the Qt GUI, expands geometry and magnetic-field support, and
adds first-class optical mirrors. The coordinated release also includes pygemc 0.4.0 and CLAS12 systems
0.2.
This version includes:
- A Qt GUI Analyzer for interactive 1D and 2D histograms
- SQLite-backed CAD geometry, reusable meshes, and first-class optical mirrors
- Native boolean solids, additional Geant4 solids, and expanded magnetic-field workflows
- Track-provenance and detector-output controls, plus faster sensitive-detector hit lookup
pygemcanalyzer, PyVista, CAD-authoring, and mesh-repair improvements- CLAS12 cMag fields and new FTOF, PCAL, and LTCC geometry and analysis support
GEMC core
- The new GUI Analyzer discovers numeric true-information and digitized variables at runtime. It supports configurable 1D and 2D histograms, one- and four-plot layouts, accumulation across runs, logarithmic scales, and vector PDF export.
- CAD geometry now uses SQLite definitions for material, placement, sensitivity, and other volume data.
CopyOfvolumes reuse a source mesh so one STL or PLY solid can be placed many times. GMirroradds optical skin and border surfaces to native and CAD volumes. Mirror properties can come from a material optical-properties table or directly from refractive-index, reflectivity, efficiency, transmittance, specular, and roughness values.- Geometry support now includes boolean union, subtraction, and intersection solids, plus
G4Polyhedra,G4EllipticalTube, andG4Paraboloid. - Magnetic fields can be queried at individual points or from point-list files. GEMC also supports data-only ASCII maps, a global field, field suppression by volume, propagation-step control, field-only GUI runs, and improved field-line visualization.
- New output controls can suppress digitized or true-information data by detector and opt detectors into post-digitization threshold and efficiency policies. Original-track and full-ancestor provenance are now available across the ASCII, CSV, JSON, and ROOT streamers.
- Runtime diagnostics now include periodic event-rate logging and an end-of-run timing summary. CSV output includes detector hit identities, while sensitive-detector hit lookup now uses a constant-time event map.
- Boolean-solid construction and GUI responsiveness were improved, and track-step guards prevent trapped optical photons or other runaway tracks from stalling an event.
pygemc 0.4.0
- The analyzer plots momentum and angular residuals from original-track information, filters by particle ID, infers common file and stream choices, and reports clearer summaries and missing-variable diagnostics.
- PyVista can select one variation without changing published output and automatically batches large scenes.
Rendering now covers SQLite CAD volumes, boolean operations,
G4Polyhedra, andG4EllipticalTube. gemc-sqlite -caduploads an authoritative YAML or JSON CAD definition, including optional per-volume scaling. PyVista resolves, scales, places, and renders the same CAD meshes.- The new
gemc-cure-meshandgemc-remove-holesutilities prepare imported meshes for Geant4 by repairing common topology problems and removing small drilled tunnels. GMirrorpublishes optical-boundary definitions to ASCII or SQLite, andGVolume.mirrorassociates a volume with a named mirror.- Geometry, SQL-query, rotation, unit-conversion, and configuration bugs were fixed, with broader analyzer, CAD, and rendering test coverage.
CLAS12 systems 0.2
- The new
gfieldclas12-cmagplugin evaluates the composite CLAS12 solenoid and torus field with the cMag library. Maps are installed beside the plugin and no longer require a runtimeFIELDenvironment variable. - FTOF and PCAL geometry are generated from coatjava for the
defaultandrga_spring2018variations. FTOF has its own digitization plugin, while PCAL shares theecalplugin andECAL::adc/ECAL::tdcbanks. - DC, ECAL, and FTOF separate detector response from optional threshold and efficiency policies through the GEMC 0.4 post-digitization API. The policies remain disabled by default for GEMC2 compatibility.
- LTCC CAD support adds the aluminium frame, nose hardware, and Winston cones with repaired and reduced meshes, reusable placements, and optical surfaces.
hipo-histosadds EC, FTOF, PCAL, and LTCC analysis, comparison, and CI diagnostics. Geometry validation now compares materials as well as volumes against the CLAS12Tags reference.- CLAS12 calibration loaders now report CCDB connection, query, and missing-table failures cleanly instead of crashing or silently producing empty digitization output.
Documentation and examples
- Added a complete GUI Analyzer guide, including runtime variable discovery, multithreaded accumulation,
prepared plots, controls, validation, and the Simple Flux
avgy-versus-avgxexample. - Expanded the Fields documentation with global and per-volume assignment, ASCII field maps, direct queries, and runnable constant, dipole, solenoid, and torus examples.
- Added documentation and examples for mirrors, CAD authoring and repair, PyVista variation selection and batching, analyzer residuals, boolean solids, and CLAS12 FTOF.
- Added optical-mirror, boolean-solid, CAD dosimetry, and CLAS12 detector examples, together with expanded integration and regression tests.
Compatibility notes
- Existing SQLite and ASCII systems remain valid: mirror tables and files are optional, and older mirror
tables without
transmittancecontinue to load. - GEMC2 mirror definitions should move from
sensitivity: "mirror: <name>"to a namedGMirrorreferenced by the geometrymirrorfield. - GEMC now loads only fields referenced by a volume or
global_field. Field-query mode still loads every configured field. - Sensitive-detector plugins need no special Analyzer integration. Numeric variables appear after the first GUI run, and batch runs incur no Analyzer collection overhead.
- CLAS12 detector plugins require the GEMC 0.4 post-digitization policy API. DC also requires the GEMC 0.4 magnetic-field initialization helper.
- On macOS, downstream plugins can use GEMC’s
pkg-configplugin_link_argsvalue to resolve host symbols without recording unnecessary Geant4 dynamic-library dependencies.
Supported platforms
Both x86_64 and ARM64 platforms are supported.
- macOS 26
- Ubuntu 24.04 and 26.04
- AlmaLinux 10
- Fedora 44
- Debian 13
- Arch Linux latest
pygemc supports Linux and macOS.
Dependencies
- Geant4 11.4.1 or higher
- CLHEP 2.4.6.0 or higher
- Xerces-C 3.2 or higher
- Qt 6.4.2 or higher, including the Charts module
- Python 3.10 or higher for
pygemc numpy,pandas, andmatplotlibforpygemcpymeshlabfor the CAD mesh-repair utilitiesuprootandawkwardfor optional ROOT analysis through thepygemcrootextra