Celeritas 0.6.0-dev.115+3b60a5fd
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::GeantGeoParams Class Referencefinal

Shared Geant4 geometry model wrapper. More...

#include <GeantGeoParams.hh>

Inheritance diagram for celeritas::GeantGeoParams:
Inheritance graph
[legend]

Public Member Functions

 GeantGeoParams (std::string const &gdml_filename)
 Construct from a GDML input.
 
 GeantGeoParams (G4VPhysicalVolume const *world)
 Use an existing loaded Geant4 geometry.
 
 CELER_DEFAULT_MOVE_DELETE_COPY (GeantGeoParams)
 
 ~GeantGeoParams () final
 Clean up on destruction.
 
G4VPhysicalVolume constworld () const
 Access the world volume.
 
bool supports_safety () const final
 Whether safety distance calculations are accurate and precise.
 
BBox constbbox () const final
 Outer bounding box of geometry.
 
LevelId::size_type max_depth () const final
 Maximum nested scene/volume depth.
 
VolumeMap constvolumes () const final
 Get volume metadata.
 
VolInstanceMap constvolume_instances () const final
 Get volume instance metadata.
 
VolumeId find_volume (G4LogicalVolume const *volume) const final
 Locate the volume ID corresponding to a Geant4 logical volume.
 
G4VPhysicalVolume constid_to_pv (VolumeInstanceId vol_id) const final
 Get the Geant4 physical volume corresponding to a volume instance ID.
 
G4LogicalVolume constid_to_lv (VolumeId vol_id) const
 Get the Geant4 logical volume corresponding to a volume ID.
 
HostRef consthost_ref () const final
 Access geometry data on host.
 
DeviceRef constdevice_ref () const final
 No GPU support code.
 
virtual VolumeId find_volume (G4LogicalVolume const *volume) const=0
 Get the volume ID corresponding to a Geant4 logical volume.
 
VolumeId find_volume (std::string const &name) const
 Get the volume ID corresponding to a unique name.
 
VolumeId find_volume (Label const &label) const
 Get the volume ID corresponding to a unique label.
 
VolumeId find_volume (char const *name) const
 Get the volume ID corresponding to a unique name.
 
- Public Member Functions inherited from celeritas::GeoParamsInterface
virtual ~GeoParamsInterface ()=0
 Default virtual destructor.
 
VolumeId::size_type num_volumes () const
 Number of volumes.
 
Label constid_to_label (VolumeId vol_id) const
 Get the label for a placed volume ID.
 
VolumeId find_volume (std::string const &name) const
 Get the volume ID corresponding to a unique name.
 
VolumeId find_volume (Label const &label) const
 Get the volume ID corresponding to a unique label.
 
VolumeId find_volume (char const *name) const
 Get the volume ID corresponding to a unique name.
 
SpanConstVolumeId find_volumes (std::string const &name) const
 Get the volume ID corresponding to a unique name.
 
- Public Member Functions inherited from celeritas::ParamsDataInterface< GeantGeoParamsData >
GeantGeoParamsData< Ownership::const_reference, M > const & ref () const
 
GeantGeoParamsData< Ownership::const_reference, M > const & ref () const
 Dispatch a "ref" call to host or device data.
 

Additional Inherited Members

- Public Types inherited from celeritas::GeoParamsInterface
using SpanConstVolumeId = Span< VolumeId const >
 
using VolumeMap = LabelIdMultiMap< VolumeId >
 
using VolInstanceMap = LabelIdMultiMap< VolumeInstanceId >
 
- Public Types inherited from celeritas::ParamsDataInterface< GeantGeoParamsData >
using HostRef = HostCRef< GeantGeoParamsData >
 
using DeviceRef = DeviceCRef< GeantGeoParamsData >
 
- Protected Member Functions inherited from celeritas::GeoParamsInterface
 CELER_DEFAULT_COPY_MOVE (GeoParamsInterface)
 
- Protected Member Functions inherited from celeritas::ParamsDataInterface< GeantGeoParamsData >
 CELER_DEFAULT_COPY_MOVE (ParamsDataInterface)
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ GeantGeoParams()

celeritas::GeantGeoParams::GeantGeoParams ( std::string const filename)
explicit

Construct from a GDML input.

This assumes that Celeritas is driving and will manage Geant4 exceptions etc.

Member Function Documentation

◆ bbox()

BBox const & celeritas::GeantGeoParams::bbox ( ) const
inlinefinalvirtual

Outer bounding box of geometry.

Implements celeritas::GeoParamsInterface.

◆ device_ref()

DeviceRef const & celeritas::GeantGeoParams::device_ref ( ) const
inlinefinalvirtual

No GPU support code.

Implements celeritas::ParamsDataInterface< GeantGeoParamsData >.

◆ find_volume() [1/2]

VolumeId celeritas::GeantGeoParams::find_volume ( G4LogicalVolume const volume) const
finalvirtual

Locate the volume ID corresponding to a Geant4 logical volume.

Implements celeritas::GeoParamsInterface.

◆ find_volume() [2/2]

virtual VolumeId celeritas::GeoParamsInterface::find_volume ( G4LogicalVolume const volume) const
virtual

Get the volume ID corresponding to a Geant4 logical volume.

Implements celeritas::GeoParamsInterface.

◆ host_ref()

HostRef const & celeritas::GeantGeoParams::host_ref ( ) const
inlinefinalvirtual

Access geometry data on host.

Implements celeritas::ParamsDataInterface< GeantGeoParamsData >.

◆ id_to_lv()

G4LogicalVolume const * celeritas::GeantGeoParams::id_to_lv ( VolumeId  id) const

Get the Geant4 logical volume corresponding to a volume ID.

If the input volume ID is unassigned, a null pointer will be returned.

◆ id_to_pv()

G4VPhysicalVolume const * celeritas::GeantGeoParams::id_to_pv ( VolumeInstanceId  id) const
finalvirtual

Get the Geant4 physical volume corresponding to a volume instance ID.

If the input ID is false, a null pointer will be returned.

Implements celeritas::GeoParamsInterface.

◆ max_depth()

LevelId::size_type celeritas::GeantGeoParams::max_depth ( ) const
inlinefinalvirtual

Maximum nested scene/volume depth.

Implements celeritas::GeoParamsInterface.

◆ supports_safety()

bool celeritas::GeantGeoParams::supports_safety ( ) const
inlinefinalvirtual

Whether safety distance calculations are accurate and precise.

Implements celeritas::GeoParamsInterface.

◆ volume_instances()

auto celeritas::GeantGeoParams::volume_instances ( ) const
inlinefinalvirtual

Get volume instance metadata.

Volume instances correspond directly to Geant4 physical volumes.

Implements celeritas::GeoParamsInterface.

◆ volumes()

auto celeritas::GeantGeoParams::volumes ( ) const
inlinefinalvirtual

Get volume metadata.

Volumes correspond directly to Geant4 logical volumes.

Implements celeritas::GeoParamsInterface.


The documentation for this class was generated from the following files: