Celeritas
0.5.0-56+6b053cd
|
Calculate the energy that would limit a particle to a particular range. More...
#include <InverseRangeCalculator.hh>
Public Types | |
Type aliases | |
using | Energy = Quantity< XsGridData::EnergyUnits > |
using | Values = Collection< real_type, Ownership::const_reference, MemSpace::native > |
Public Member Functions | |
CELER_FUNCTION | InverseRangeCalculator (XsGridData const &grid, Values const &values) |
Construct from range data. More... | |
CELER_FUNCTION Energy | operator() (real_type range) const |
Calculate the energy of a particle that has the given range. | |
Calculate the energy that would limit a particle to a particular range.
This should provide the inverse of the result of RangeCalculator
. The given range
is not allowed to be greater than the maximum range in the physics data.
The range must be monotonically increasing in energy, since it's defined as the integral of the inverse of the stopping power (which is always positive). For ranges shorter than the minimum energy in the table, the resulting energy is scaled:
\[ E = E_\mathrm{min} \left( \frac{r}{r_\mathrm{min}} \right)^2 \]
This scaling is the inverse of the off-the-end energy scaling in the RangeCalculator.
|
inline |
Construct from range data.
The range is expected to be monotonically increaing with energy. Lower-energy particles have shorter ranges.