Celeritas 0.6.0-67+develop.47f47c88
|
Map volumetric geometry information to surface IDs. More...
#include <SurfaceParams.hh>
Public Types | |
Type aliases | |
using | SurfaceMap = LabelIdMultiMap< SurfaceId > |
![]() | |
using | HostRef = HostCRef< SurfaceParamsData > |
using | DeviceRef = DeviceCRef< SurfaceParamsData > |
Public Member Functions | |
SurfaceParams (inp::Surfaces const &, VolumeParams const &volumes) | |
bool | empty () const |
Whether any surfaces are present. | |
SurfaceId::size_type | num_surfaces () const |
Number of surfaces. | |
SurfaceMap const & | labels () const |
Get surface metadata. | |
HostRef const & | host_ref () const final |
Reference to CPU geometry data. | |
DeviceRef const & | device_ref () const final |
Reference to managed GPU geometry data. | |
![]() | |
SurfaceParamsData< Ownership::const_reference, M > const & | ref () const |
SurfaceParamsData< Ownership::const_reference, M > const & | ref () const |
Dispatch a "ref" call to host or device data. | |
Additional Inherited Members | |
![]() | |
CELER_DEFAULT_COPY_MOVE (ParamsDataInterface) | |
Map volumetric geometry information to surface IDs.
See the introduction to the Geometry API section (api_geometry in user manual) for a detailed description of surfaces in the detector geometry description.
The specification of surfaces using volume relationships is required by volume-based geometries such as Geant4 and VecGeom 1, so it is not currently possible to define different properties for the different faces of a volume unless those faces are surrounded by distinct geometric volumes. Since ORANGE and VecGeom 2 support true surface definitions, a future extension will allow the user to attach surface properties to, for example, different sides of a cube.
|
inlinefinalvirtual |
Reference to managed GPU geometry data.
Implements celeritas::ParamsDataInterface< SurfaceParamsData >.
|
inlinefinalvirtual |
Reference to CPU geometry data.
Implements celeritas::ParamsDataInterface< SurfaceParamsData >.