gemcLogo


GEMC (GEant Monte-Carlo) leverages databases to simulate, using Geant4, detector responses, including geometry, materials, optical elements, digitization, and measurements like particle fluxes and doses. Key features include:


Database and simulations
GEMC utilizes databases to dynamically create Geant4 simulation objects.
Systems can be created without requiring code recompilation and without C++ or Geant4 knowledge,

Typical gemc usage: detectors are loaded from various databases sources. Particles are transported through materials by Geant4, hits are collected and digitized, and output(s) are created.



Python API  
gemcExamplePic gemcCodeExample
Geant4 volumes are built using the python API. An example geometry: a flux scintillator paddle collects hits from protons impinging on a liquid hydrogen target The above snippet is the only code needed to build the geometry and record all tracks hitting the paddle.



Geometry Variations  
clas12v


A detector can be re-used in multiple experiments, with configuration changes such as components shifts, changes of materials, addition or removal of certain volumes.

GEMC can manage these changes by using variations. This has the advantages:
  • Seamless organization of multiple versions of a detector
  • Easiness to select the desired configuration

  • In the YAML steering card the two variations of clas12CD are loaded by specifying the variation name:

    { "system": "clas12CD", "variation": "nominal" }
    { "system": "clas12CD", "variation": "targetShift" }
    In the above animation two variations of the CLAS12 Central Detector (clas12CD) are shown. The geometries are identical except for the position of the target.
     





    Continuous Integration (CI) is used to test the code and ensure that the simulation is working as expected.

    Almalinux Build Fedora Build Ubuntu Build Doxygen Sanitize Nightly Dev Release GEMC Homepage Deployment