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
  • pygemc analyzer, 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. CopyOf volumes reuse a source mesh so one STL or PLY solid can be placed many times.
  • GMirror adds 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, and G4Paraboloid.
  • 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, and G4EllipticalTube.
  • gemc-sqlite -cad uploads 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-mesh and gemc-remove-holes utilities prepare imported meshes for Geant4 by repairing common topology problems and removing small drilled tunnels.
  • GMirror publishes optical-boundary definitions to ASCII or SQLite, and GVolume.mirror associates 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-cmag plugin evaluates the composite CLAS12 solenoid and torus field with the cMag library. Maps are installed beside the plugin and no longer require a runtime FIELD environment variable.
  • FTOF and PCAL geometry are generated from coatjava for the default and rga_spring2018 variations. FTOF has its own digitization plugin, while PCAL shares the ecal plugin and ECAL::adc / ECAL::tdc banks.
  • 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-histos adds 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-avgx example.
  • 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 transmittance continue to load.
  • GEMC2 mirror definitions should move from sensitivity: "mirror: <name>" to a named GMirror referenced by the geometry mirror field.
  • 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-config plugin_link_args value 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, and matplotlib for pygemc
  • pymeshlab for the CAD mesh-repair utilities
  • uproot and awkward for optional ROOT analysis through the pygemc root extra


Detailed release notes