Celeritas 0.7.0-dev.354+develop.b4fe4c4
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::optical::GridReflectivityModel Class Reference

User-defined grid reflectivity model. More...

#include <GridReflectivityModel.hh>

Inheritance diagram for celeritas::optical::GridReflectivityModel:
Inheritance graph
[legend]

Public Types

Type aliases
using InputT = inp::GridReflection
 
- Public Types inherited from celeritas::optical::SurfaceModel
using CoreStateHost = CoreState< MemSpace::host >
 
using CoreStateDevice = CoreState< MemSpace::device >
 
- Public Types inherited from celeritas::SurfaceModel
using VecSurfaceLayer = std::vector< PhysSurfaceId >
 Vector of surfaces.
 

Public Member Functions

 GridReflectivityModel (SurfaceModelId, std::map< PhysSurfaceId, InputT > const &)
 Construct the model from an ID and a layer map.
 
VecSurfaceLayer constget_surfaces () const final
 Get the list of physical surfaces this model applies to.
 
void step (CoreParams const &, CoreStateHost &) const final
 Execute model with host data.
 
void step (CoreParams const &, CoreStateDevice &) const final
 Execute the model with host data.
 
- Public Member Functions inherited from celeritas::SurfaceModel
virtual ~SurfaceModel ()=0
 Anchored default destructor.
 
SurfaceModelId surface_model_id () const
 Opaque ID of this surface model.
 
std::string_view label () const
 Short descriptive name of this model.
 

Additional Inherited Members

- Protected Member Functions inherited from celeritas::SurfaceModel
 SurfaceModel (SurfaceModelId, std::string_view)
 Construct with label and model ID.
 
 SurfaceModel (SurfaceModel const &)=default
 
SurfaceModeloperator= (SurfaceModel const &)=default
 
 SurfaceModel (SurfaceModel &&)=default
 
SurfaceModeloperator= (SurfaceModel &&)=default
 

Detailed Description

User-defined grid reflectivity model.

Allows user-defined grids to override the usual surface physics logic. Following Geant4's conventions, reflectivity is defined as the probability a track continues with the usual surface interaction (not necessarily just reflects). Transmittance is the probability the track moves to the next surface layer without any changes. If the reflectivity and transmittance do not sum to 1, then the remaining probability is the chance the track is absorbed on the surface.

If a track is absorbed on the surface and there's a non-zero efficiency grid, it is sampled as the probability the track is "detected" on the surface. Because this is a hold-over from Geant4 integration, if the track is sampled to pass the efficiency then it is changed from absorbed to transmitted. If the next volume is indeed a detector volume, then it is detected and killed at the surface which matches Geant4's expectation for detection on a surface.

Member Function Documentation

◆ get_surfaces()

VecSurfaceLayer const & celeritas::optical::GridReflectivityModel::get_surfaces ( ) const
inlinefinalvirtual

Get the list of physical surfaces this model applies to.

Implements celeritas::SurfaceModel.

◆ step() [1/2]

void celeritas::optical::GridReflectivityModel::step ( CoreParams const ,
CoreStateDevice  
) const
finalvirtual

Execute the model with host data.

Implements celeritas::optical::SurfaceModel.

◆ step() [2/2]

void celeritas::optical::GridReflectivityModel::step ( CoreParams const params,
CoreStateHost state 
) const
finalvirtual

Execute model with host data.

Launch kernel with device data.

Execute the model with device data.

Implements celeritas::optical::SurfaceModel.


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