Celeritas 0.6.0-92+develop.2b343e9f
|
Physics to be applied during a surface crossing. More...
#include <SurfaceModel.hh>
Public Types | |
Type aliases | |
using | SurfaceLayer = SurfaceId |
Eventually to be a pair of surface+layer. | |
using | VecSurfaceLayer = std::vector< SurfaceLayer > |
Vector of surfaces. | |
using | ModelSurfaceId = OpaqueId< struct ModelSurface_ > |
Opaque index of surface data in the list for a particular surface model. | |
Public Member Functions | |
virtual VecSurfaceLayer | get_surfaces () const =0 |
![]() | |
virtual | ~ActionInterface () noexcept=0 |
Default destructor. | |
virtual ActionId | action_id () const =0 |
ID of this action for verification and ordering. | |
virtual std::string_view | label () const =0 |
Short unique label of the action. | |
virtual std::string_view | description () const =0 |
Description of the action. | |
Additional Inherited Members | |
![]() | |
CELER_DEFAULT_COPY_MOVE (ActionInterface) | |
Physics to be applied during a surface crossing.
Each surface model is constructed independently given some inp
data. It internally maps a sequence of "global" SurfaceId
to a "local" ModelSurfaceId
. If a SurfaceModel
with action ID 10 returns a list of surfaces {3, 1, 5} and another with ID 11 returns {0, 4}, then the SurfacePhysicsMap
class will store
Since neither model specified surface 2, it is null.
With this setup, Collection
data can be accessed locally by indexing on ModelSurfaceId
.
This is currently only used by optical physics classes. Daughters will also inherit from OpticalStepActionInterface
, ConcreteAction
.