Celeritas 0.6.0-110+develop.c7dc37d1
|
Sample the number of Cherenkov photons to be generated. More...
#include <CherenkovOffload.hh>
Public Member Functions | |
CELER_FUNCTION | CherenkovOffload (units::ElementaryCharge charge, real_type step_length, OffloadPreStepData const &pre_step, optical::MaterialView const &pre_mat, units::LightSpeed post_speed, Real3 const &post_pos, NativeCRef< CherenkovData > const &shared) |
Construct directly from data. | |
CELER_FUNCTION | CherenkovOffload (OffloadPreStepData const &pre_step, optical::MaterialView const &pre_mat, ParticleTrackView const &post_particle, SimTrackView const &post_sim, Real3 const &post_pos, NativeCRef< CherenkovData > const &shared) |
Construct with optical material, Cherenkov, and step information. | |
template<class Generator > | |
CELER_FUNCTION optical::GeneratorDistributionData | operator() (Generator &rng) |
Collect the distribution data needed to sample Cherenkov photons. | |
Sample the number of Cherenkov photons to be generated.
This populates the GeneratorDistributionData
used by the CherenkovGenerator
to generate optical photons using post-step and cached pre-step data.
The number of photons is sampled from a Poisson distribution with a mean
\[ \langle n \rangle = \ell_\text{step} \difd{N}{x} \]
where \( \ell_\text{step} \) is the step length.
|
inline |
Collect the distribution data needed to sample Cherenkov photons.
If no photons are sampled an empty object is returned.