|
Celeritas 0.7+b3eeee4
|
A replacement for Geant4's G4Cerenkov process which constructs GeneratorDistributionData from a PostStepDoIt call.
More...
#include <CherenkovOffload.hh>

Public Member Functions | |
| void | PreparePhysicsTable (G4ParticleDefinition const &) override |
| Prepare physics table for particle and enforce photon stacking. | |
| G4VParticleChange * | PostStepDoIt (G4Track const &aTrack, G4Step const &aStep) override |
| Create a generator distribution for the given track and step. | |
| CherenkovOffload (units::ElementaryCharge charge, real_type step_length, OffloadPreStepData const &pre_step, optical::MaterialView const &pre_mat, units::LightSpeed post_speed, real_type post_time, Real3 const &post_pos, NativeCRef< CherenkovData > const &shared) | |
| Construct directly from data. | |
| 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 > | |
| optical::GeneratorDistributionData | operator() (Generator &rng) |
| Collect the distribution data needed to sample Cherenkov photons. | |
A replacement for Geant4's G4Cerenkov process which constructs GeneratorDistributionData from a PostStepDoIt call.
Sample the number of Cherenkov photons to be generated.
This process should have stacking photons set to false so that photons are not initialized in Geant4.
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.
|
override |
Create a generator distribution for the given track and step.
Stacking photons should be disabled so that photons are not duplicated in Geant4. After calling the G4Cerenkov::PostStepDoIt this function creates a GeneratorDistributionData and pushes it to the local offload, which should be LocalOpticalGenOffload.
|
override |
Prepare physics table for particle and enforce photon stacking.
Defers physics table preparation to G4Cerenkov, but also enforces that stacking photons is false afterwards.