Celeritas 0.7.0-dev.169+develop.bdc0041f6
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::CoulombScatteringInteractor Class Reference

Applies the Wentzel single Coulomb scattering model. More...

#include <CoulombScatteringInteractor.hh>

Public Types

Type aliases
using Energy = units::MevEnergy
 
using Mass = units::MevMass
 
using MomentumSq = units::MevMomentumSq
 

Public Member Functions

CELER_FUNCTION CoulombScatteringInteractor (CoulombScatteringData const &shared, NativeCRef< WentzelOKVIData > const &wentzel, ParticleTrackView const &particle, Real3 const &inc_direction, MaterialView const &material, IsotopeView const &target, ElementId el_id, CutoffView const &cutoffs)
 Construct with shared and state data.
 
template<class Engine >
CELER_FUNCTION Interaction operator() (Engine &rng)
 Sample an interaction with the given RNG.
 

Detailed Description

Applies the Wentzel single Coulomb scattering model.

This models incident high-energy electrons and positrons elastically scattering off of nuclei and atomic electrons. Scattering off of the nucleus versus electrons is randomly sampled based on the relative cross-sections (see celeritas::WentzelHelper). Production cuts are used to determine the maximum scattering angle off of electrons.

This performs the same sampling as in Geant4's G4eCoulombScatteringModel, as documented in [g4prm] (release 11.1, section 8.2).

Todo:
When hadronic EM processes are supported, this should be extended to emit secondary ions.

Constructor & Destructor Documentation

◆ CoulombScatteringInteractor()

CELER_FUNCTION celeritas::CoulombScatteringInteractor::CoulombScatteringInteractor ( CoulombScatteringData const shared,
NativeCRef< WentzelOKVIData > const wentzel,
ParticleTrackView const particle,
Real3 const inc_direction,
MaterialView const material,
IsotopeView const target,
ElementId  el_id,
CutoffView const cutoffs 
)
inline

Construct with shared and state data.

Construct from shared and state data.

Todo:
Use the proton production cutoff when the recoiled nucleus production is supported.

Member Function Documentation

◆ operator()()

template<class Engine >
CELER_FUNCTION Interaction celeritas::CoulombScatteringInteractor::operator() ( Engine rng)
inline

Sample an interaction with the given RNG.

Sample the Coulomb scattering of the incident particle.

Todo:
For high enough recoil energies, ions are produced

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