Geant4 geometry

Celeritas defines mappings to the underlying Geant4 geometry objects for integration in the rest of the code base. There is limited support for executing the main simulation engine using Geant4 navigation states.

class GeantGeoParams : public celeritas::GeoParamsInterface, public celeritas::ParamsDataInterface<GeantGeoParamsData>

Shared Geant4 geometry model wrapper.

This can be constructed directly by loading a GDML file, or in-memory using an existing physical volume. One “gotcha” is that due to persistent static variables in Geant4, the volume IDs will be offset if a geometry has been loaded and closed previously.

The VolumeId used by Celeritas is equal to the index of a G4LogicalVolume in the G4LogicalVolumeStore. Due to potential resetting of the geometry, the “volume instance ID” for the logical volume may be offset from this index.

Analogously, the G4VPhysicalVolume is equivalent to the index in its store. Due to the way Geant4 represents “parameterised” and “replicated” placements, a single PV may correspond to multiple spatial placements and is dismabiguated with ReplicaId

, which corresponds to the PV’s “copy

number”.