Celeritas  0.5.0-86+4a8eea4
Public Member Functions | List of all members
celeritas::ElementView Class Reference

Access amalgamated data for an element. More...

#include <ElementView.hh>

Public Types

Type aliases
using MaterialParamsRef = NativeCRef< MaterialParamsData >
 
using AmuMass = units::AmuMass
 

Public Member Functions

CELER_FUNCTION ElementView (MaterialParamsRef const &params, ElementId el_id)
 Construct from shared material data and global element ID.
 
CELER_FORCEINLINE_FUNCTION AtomicNumber atomic_number () const
 Atomic number Z. More...
 
CELER_FUNCTION AmuMass atomic_mass () const
 Abundance-weighted atomic mass M [amu].
 
CELER_FUNCTION IsotopeComponentId::size_type num_isotopes () const
 Number of isotopes available for this element.
 
CELER_FUNCTION IsotopeView make_isotope_view (IsotopeComponentId id) const
 Get isotope properties for a given index.
 
CELER_FUNCTION IsotopeId isotope_id (IsotopeComponentId id) const
 ID of an isotope in this element.
 
CELER_FUNCTION Span< ElIsotopeComponent const > isotopes () const
 View the isotopic components (id/fraction) of this element.
 
CELER_FUNCTION real_type cbrt_z () const
 Cube root of atomic number: Z^(1/3)
 
CELER_FUNCTION real_type cbrt_zzp () const
 Cube root of Z*(Z+1)
 
CELER_FUNCTION real_type log_z () const
 log(z)
 
CELER_FUNCTION real_type coulomb_correction () const
 Coulomb correction term [unitless]. More...
 
CELER_FUNCTION real_type mass_radiation_coeff () const
 Mass radiation coefficient 1/X_0 for Bremsstrahlung [len^2/mass]. More...
 

Detailed Description

Access amalgamated data for an element.

This encapsulates general data specific to an element instance. (We may allow multiple element instances for an element eventually since they may have various enriched abundances of component isotopes.) It also provides access to ionization-related data, which in Geant4 is in a separate class.

One use case of this class is after sampling an element in an EM model.

The "derived quantities" may be calculated on-the-fly or stored in global memory. As with the particle track view, assume that accessing them is expensive and store them locally.

Member Function Documentation

◆ atomic_number()

CELER_FUNCTION AtomicNumber celeritas::ElementView::atomic_number ( ) const

Atomic number Z.

Number of protons in an atom of this element.

◆ coulomb_correction()

CELER_FUNCTION real_type celeritas::ElementView::coulomb_correction ( ) const
inline

Coulomb correction term [unitless].

Used by Bremsstrahlung and other physics processes, this constant is calculated with greater precision than in Geant4 (which is accurate to only 5 or 6 digits across the range of natural elements).

◆ mass_radiation_coeff()

CELER_FUNCTION real_type celeritas::ElementView::mass_radiation_coeff ( ) const
inline

Mass radiation coefficient 1/X_0 for Bremsstrahlung [len^2/mass].

The "radiation length" X_0 is "the mean distance over which a high-energy electron loses all but 1/e of its energy by bremsstrahlung". See Review of Particle Physics (2020), S34.4.2 (p541) for the semi-empirical calculation of 1/X0.

This quantity 1/X_0 is normalized by material density and is equivalent to Geant4's G4Element::GetfRadTsai.


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