Celeritas  0.5.0-56+6b053cd
Public Member Functions | Static Public Member Functions | List of all members
celeritas::KleinNishinaInteractor Class Reference

Perform Compton scattering, neglecting atomic binding energy. More...

#include <KleinNishinaInteractor.hh>

Public Member Functions

CELER_FUNCTION KleinNishinaInteractor (KleinNishinaData const &shared, ParticleTrackView const &particle, Real3 const &inc_direction, StackAllocator< Secondary > &allocate)
 Construct with shared and state data. More...
 
template<class Engine >
CELER_FUNCTION Interaction operator() (Engine &rng)
 Sample Compton scattering using the Klein-Nishina model. More...
 

Static Public Member Functions

static CELER_CONSTEXPR_FUNCTION units::MevEnergy secondary_cutoff ()
 Energy threshold for secondary production [MeV].
 

Detailed Description

Perform Compton scattering, neglecting atomic binding energy.

This is a model for the discrete Compton inelastic scattering process. Given an incident gamma, it adds a single secondary (electron) to the secondary stack and returns an interaction for the change to the incident gamma direction and energy. No cutoffs are performed for the incident energy or the exiting gamma energy. A secondary production cutoff is applied to the outgoing electron.

Note
This performs the same sampling routine as in Geant4's G4KleinNishinaCompton, as documented in section 6.4.2 of the Geant4 Physics Reference (release 10.6).

Constructor & Destructor Documentation

◆ KleinNishinaInteractor()

CELER_FUNCTION celeritas::KleinNishinaInteractor::KleinNishinaInteractor ( KleinNishinaData const &  shared,
ParticleTrackView const &  particle,
Real3 const &  inc_direction,
StackAllocator< Secondary > &  allocate 
)
inline

Construct with shared and state data.

The incident particle must be above the energy threshold: this should be handled in code before the interactor is constructed.

Member Function Documentation

◆ operator()()

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

Sample Compton scattering using the Klein-Nishina model.

See section 6.4.2 of the Geant physics reference. Epsilon is the ratio of outgoing to incident gamma energy, bounded in [epsilon_0, 1].


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