Celeritas
0.5.0-86+4a8eea4
|
Sample scintillation photons from optical property data and step data. More...
#include <ScintillationGenerator.hh>
Public Types | |
Type aliases | |
using | Energy = units::MevEnergy |
Public Member Functions | |
CELER_FUNCTION | ScintillationGenerator (NativeCRef< ScintillationData > const &shared, GeneratorDistributionData const &dist) |
Construct from shared scintillation data and distribution parameters. | |
template<class Generator > | |
CELER_FUNCTION TrackInitializer | operator() (Generator &rng) |
Sample a single scintillation photon. | |
Sample scintillation photons from optical property data and step data.
The optical photons are generated evenly along the step and are emitted uniformly over the entire solid angle with a random linear polarization. The photon energy is calculated by the scintillation emission wavelength
\[ E = \frac{hc}{\lambda}, \]
where \( h \) is the Planck constant and \( c \) is the speed of light, and \( \lambda \) is sampled by the normal distribution with the mean of scintillation emission spectrum and the standard deviation. The emitted time is simulated according to empirical shapes of the material-dependent scintillation time structure with one or double exponentials.