Celeritas 0.6.0-129+develop.846910afa
|
Physics to be applied during a surface crossing. More...
#include <SurfaceModel.hh>
Public Types | |
Type aliases | |
using | PhysSurfaceId = SurfaceId |
Eventually to be a pair of surface+layer. | |
using | VecSurfaceLayer = std::vector< PhysSurfaceId > |
Vector of surfaces. | |
using | SurfaceModelId = OpaqueId< SurfaceModel > |
Opaque ID of this surface model. | |
using | InternalSurfaceId = OpaqueId< struct InternalModelSurface_ > |
Opaque index of surface data in the list for a particular surface model. | |
Public Member Functions | |
virtual | ~SurfaceModel ()=0 |
Anchored default destructor. | |
virtual VecSurfaceLayer | get_surfaces () const =0 |
Get the list of surfaces/layers this applies to. | |
SurfaceModelId | surface_model_id () const |
Opaque ID of this surface model. | |
std::string_view | label () const |
Short descriptive name of this model. | |
Protected Member Functions | |
SurfaceModel (SurfaceModelId, std::string_view) | |
Construct with label and model ID. | |
CELER_DEFAULT_COPY_MOVE (SurfaceModel) | |
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" InternalSurfaceId
. It additionally allows an empty surface returned by get_surfaces
to indicate a default model to be applied when the user does not specify surface properties.
This is currently only used by optical physics classes.
|
protected |
Construct with label and model ID.
Note that the label, being a string view, must (for now) point to constant memory.
|
protected |
Prevent assignment through base class