|
Celeritas 0.7.0-dev.194+develop.0df4cab59
|
Find and interpolate scaled cross sections. More...
#include <XsCalculator.hh>
Public Types | |
Type aliases | |
| using | Energy = RealQuantity< XsGridRecord::EnergyUnits > |
| using | Values = Collection< real_type, Ownership::const_reference, MemSpace::native > |
Public Member Functions | |
| CELER_FUNCTION | XsCalculator (XsGridRecord const &grid, Values const &reals) |
| Construct from cross section data. | |
| CELER_FUNCTION real_type | operator() (Energy energy) const |
| Calculate the cross section using linear or spline interpolation. | |
| CELER_FUNCTION Energy | energy_min () const |
| Get the minimum energy. | |
| CELER_FUNCTION Energy | energy_max () const |
| Get the maximum energy. | |
Find and interpolate scaled cross sections.
This cross section calculator uses the same representation and interpolation as Geant4's physics tables for EM physics:
This scaling and interpolation exactly reproduces functions \( f(E) \sim a E + b \) below the \(E'\) threshold and \( f(E) \sim \frac{a'}{E} + b' \) above that threshold.
Note that linear interpolation is applied with energy points, not log-energy points.