The General Geometry Description (GGD) is a software system to generate a description of a constructive solid geometry specifically as used by Geant4 or ROOT applications are as represented in GDML files. It is implemented as a pure Python module gegede.
GeGeDe may be installed in any of the "usual" ways and in particular via uv.
Not installing:
uvx gegede
More persistent
uv tool install gegede
gegede
See the installation document for details and other ways to install.
GGD is designed along layers each of which allows the user-programmer access.
- params: high level, human-centric configuration mechanism
- builders: structured, procedural geometry constructor code
- objects: the in-memory representation of the final geometry
- export: conversion to formats suitable to exchange the data with other applications.
At the highest level is a simple configuration language for end-user setting of parameters that are consumed by the next layer, the builders. The builders are instances of classes which are responsible for constructing some portion of an overall geometry. They may also manage some number of other (sub)builders to handle specific construction details. The geometry is constructed by building an in-memory representation of general geometry objects. Finally these objects may be exported into a number of forms including GDML, "plain old (Python) data" and JSON. Each layer provides for extension to novel uses.
Each layer contains a tutorial:
See also the GeGeDe Example project.
- DUNE GGD geometries for DUNE (far) detectors.
- DUNE ND GGD geometries for (some) DUNE near detectors
- GeGeDe Examples
