|
Celeritas 0.7.0-dev.354+develop.b4fe4c4
|
User-defined grid reflectivity model. More...
#include <GridReflectivityModel.hh>

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 const & | get_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 | |
| SurfaceModel & | operator= (SurfaceModel const &)=default |
| SurfaceModel (SurfaceModel &&)=default | |
| SurfaceModel & | operator= (SurfaceModel &&)=default |
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.
|
inlinefinalvirtual |
Get the list of physical surfaces this model applies to.
Implements celeritas::SurfaceModel.
|
finalvirtual |
Execute the model with host data.
Implements celeritas::optical::SurfaceModel.
|
finalvirtual |
Execute model with host data.
Launch kernel with device data.
Execute the model with device data.
Implements celeritas::optical::SurfaceModel.