Celeritas  0.5.0-86+4a8eea4
Public Member Functions | List of all members
celeritas::optical::WavelengthShiftInteractor Class Reference

Apply the wavelength shift (WLS) to optical photons. More...

#include <WavelengthShiftInteractor.hh>

Public Types

Type aliases
using Energy = units::MevEnergy
 
using ParamsRef = NativeCRef< WavelengthShiftData >
 
using SecondaryAllocator = StackAllocator< TrackInitializer >
 

Public Member Functions

CELER_FUNCTION WavelengthShiftInteractor (ParamsRef const &shared, ParticleTrackView const &particle, OpticalMaterialId const &mat_id, SecondaryAllocator &allocate)
 Construct with shared and state data.
 
template<class Engine >
CELER_FUNCTION Interaction operator() (Engine &rng)
 Sampling the wavelength shift (WLS) photons. More...
 

Detailed Description

Apply the wavelength shift (WLS) to optical photons.

A wavelength shifter absorbs an incident light and reemits secondary lights isotropically at longer wavelengths. It usually shifts the ultraviolet region of the radiation spectrum to the visible region, which enhances the light collection or reduces the self-absorption of the optical production. The number of the reemitted photons follows the Poisson distribution with the mean number of the characteristic light production, which depends on the optical property of wavelength shifters. The polarization of the reemitted lights is assumed to be incoherent with respect to the polarization of the primary optical photon.

Note
This performs the same sampling routine as in the G4OpWLS class of the Geant4 release 11.2.

Member Function Documentation

◆ operator()()

template<class Engine >
CELER_FUNCTION Interaction celeritas::optical::WavelengthShiftInteractor::operator() ( Engine &  rng)
inline

Sampling the wavelength shift (WLS) photons.

Sample the number of photons generated from WLS.

Todo:
if this is nonzero and allocation fails, we lose reproducibility.

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