Celeritas 0.7+23b478d
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions
Types.hh File Reference

Shared (VecGeom + ORANGE) geometry type definitions. More...

#include "corecel/OpaqueId.hh"
#include "corecel/Types.hh"
#include "corecel/cont/Array.hh"
#include "corecel/sys/ThreadId.hh"

Classes

struct  celeritas::GeoTrackInitializer
 Data required to initialize a geometry state. More...
 
struct  celeritas::Propagation
 Result of a propagation step. More...
 

Typedefs

using celeritas::Real2 = Array< real_type, 2 >
 Two-dimensional cartesian coordinates.
 
using celeritas::Size2 = Array< size_type, 2 >
 Two-dimensional extents.
 
template<class T , size_type N>
using celeritas::SquareMatrix = Array< Array< T, N >, N >
 Alias for a small square dense matrix.
 
using celeritas::SquareMatrixReal3 = SquareMatrix< real_type, 3 >
 Alias for a small square dense matrix.
 
using celeritas::DetectorId = OpaqueId< struct Detector_ >
 Opaque index for mapping volume-specific "sensitive detector" objects.
 
using celeritas::GeoMatId = OpaqueId< struct GeoMaterial_ >
 Identifier for a material fill.
 
using celeritas::SurfaceId = OpaqueId< struct Surface_, unsigned int >
 Combined boundary/interface surface identifier.
 
using celeritas::VolumeId = OpaqueId< struct Volume_, unsigned int >
 Identifier for a canonical geometry volume that may be repeated.
 
using celeritas::VolumeInstanceId = OpaqueId< struct VolumeInstance_, unsigned int >
 Identifier for an instance of a geometry volume (aka physical/placed)
 
using celeritas::VolumeLevelId = OpaqueId< struct VolumeLevel_, unsigned int >
 Type-safe depth in the canonical volume graph (zero for world)
 
using celeritas::VolumeUniqueInstanceId = OpaqueId< struct VolumeInstance_, ull_int >
 Identifier for a unique volume in global space (aka touchable)
 
Geometry-specific implementation details
using celeritas::ImplSurfaceId = OpaqueId< struct ImplSurface_ >
 Implementation detail surface (for surface-based geometries)
 
using celeritas::ImplVolumeId = OpaqueId< struct ImplVolumeId_ >
 Implementation detail: "global" volume index internal to a geometry.
 

Enumerations

enum class  celeritas::Axis { x , y , z , size_ }
 Enumeration for cartesian axes. More...
 
enum class  celeritas::GeoStatus : signed char {
  error = -2 , invalid = -1 , interior = 0 , boundary_inc = 1 ,
  boundary_out = 2
}
 Geometry state as a track moves across boundaries through the geometry. More...
 

Functions

char constceleritas::to_cstring (GeoStatus value)
 Get a string corresponding to a geometry track state.
 
constexpr int celeritas::to_int (Axis a)
 Convert Axis enum value to int.
 
Axis celeritas::to_axis (int a)
 Convert int to Axis enum value.
 
constexpr char celeritas::to_char (Axis ax)
 Get the lowercase name of the axis.
 
constexpr bool celeritas::is_valid (GeoStatus s)
 Whether the geometry is on a boundary.
 
constexpr bool celeritas::is_on_boundary (GeoStatus s)
 Whether the geometry is on a boundary.
 
constexpr bool celeritas::is_outside (VolumeId v)
 Whether a volume is outside the canonical geometry extents.
 

Detailed Description

Shared (VecGeom + ORANGE) geometry type definitions.

Enumeration Type Documentation

◆ Axis

enum class celeritas::Axis
strong

Enumeration for cartesian axes.

Enumerator

X axis/I index coordinate.

Y axis/J index coordinate.

Z axis/K index coordinate.

size_ 

Sentinel value for looping over axes.

◆ GeoStatus

enum class celeritas::GeoStatus : signed char
strong

Geometry state as a track moves across boundaries through the geometry.

The "incoming" (incident) and "outgoing" (exiting) states are relative to the boundary (surface) that the track is on, not the volume.

Note
The numeric values of the enumeration are chosen to optimize the free functions is_valid (invalid values are strictly negative) and is_on_boundary (values on the boundary are strictly positive).
Enumerator
error 

Unrecoverable error occurred.

invalid 

Unusable but allowable state.

interior 

In a volume, not on a boundary.

boundary_inc 

On a boundary, pointing into surface.

boundary_out 

On a boundary, pointing away from surface.