gemcLogo



GEMC (GEant Monte-Carlo) leverages databases to create Geant4 systems to simulate the passage of particles through matter. Key features include:


Database and simulations
GEMC utilizes ASCII, SQLite, MySQL, GDML, CAD databases to dynamically create Geant4 simulation objects, including geometry, materials, and more.

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.



Detector 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.