Celeritas  0.5.0-86+4a8eea4
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. More...
 
template<class Engine >
CELER_FUNCTION Interaction operator() (Engine &rng)
 Sample an interaction with the given RNG. More...
 

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. No secondaries are created in this process (in the future, with hadronic transport support, secondary ions may be emitted), however production cuts are used to determine the maximum scattering angle off of electrons.

Note
This performs the same sampling as in Geant4's G4eCoulombScatteringModel, as documented in section 8.2 of the Geant4 Physics Reference Manual (release 11.1).

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: