CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
corsika::BaseExponential< TDerived > Class Template Reference

This class provides the grammage/length conversion functionality for (locally) flat exponential atmospheres. More...

#include <BaseExponential.hpp>

Inheritance diagram for corsika::BaseExponential< TDerived >:

Public Member Functions

 BaseExponential (Point const &point, LengthType const referenceHeight, MassDensityType const rho0, LengthType const lambda)
 
Point const & getAnchorPoint () const
 

Protected Member Functions

auto const & getImplementation () const
 
MassDensityType getMassDensity (LengthType const height) const
 Returns the mass density at altitude "height". More...
 
GrammageType getIntegratedGrammage (BaseTrajectory const &line, DirectionVector const &axis) const
 For a (normalized) axis \( \vec{a} \), the grammage along a non-orthogonal line with (normalized) direction \( \vec{u} \) is given by:

\[ X = \frac{\varrho_0 \lambda}{\vec{u} \cdot \vec{a}} \left( \exp\left( \vec{u} \cdot \vec{a} \frac{l}{\lambda} \right) - 1 \right) \quad \text{,} \]

where \( \varrho_0 \) is the density at the starting point. More...

 
LengthType getArclengthFromGrammage (BaseTrajectory const &line, GrammageType const grammage, DirectionVector const &axis) const
 For a (normalized) axis \( \vec{a} \), the length of a non-orthogonal line with (normalized) direction \( \vec{u} \) corresponding to grammage \( X \) is given by:

\[ l = \begin{cases} \frac{\lambda}{\vec{u} \cdot \vec{a}} \log\left(Y \right), & \text{if} & Y := 1 + \vec{u} \cdot \vec{a} \frac{X}{\rho_0 \lambda} > 0 \\ \infty & \text{else} & \text{,} \end{cases} \]

where \( \varrho_0 \) is the density at the starting point. More...

 

Detailed Description

template<typename TDerived>
class corsika::BaseExponential< TDerived >

This class provides the grammage/length conversion functionality for (locally) flat exponential atmospheres.

The density is described according to

\[ \varrho() \]

Definition at line 31 of file BaseExponential.hpp.

Member Function Documentation

◆ getArclengthFromGrammage()

template<typename TDerived>
LengthType corsika::BaseExponential< TDerived >::getArclengthFromGrammage ( BaseTrajectory const &  line,
GrammageType const  grammage,
DirectionVector const &  axis 
) const
protected

For a (normalized) axis \( \vec{a} \), the length of a non-orthogonal line with (normalized) direction \( \vec{u} \) corresponding to grammage \( X \) is given by:

\[ l = \begin{cases} \frac{\lambda}{\vec{u} \cdot \vec{a}} \log\left(Y \right), & \text{if} & Y := 1 + \vec{u} \cdot \vec{a} \frac{X}{\rho_0 \lambda} > 0 \\ \infty & \text{else} & \text{,} \end{cases} \]

where \( \varrho_0 \) is the density at the starting point.

If \( \vec{u} \cdot \vec{a} = 0 \), the calculation is just like for a homogeneous density:

\[ l = \frac{X}{\varrho_0} \]

◆ getIntegratedGrammage()

template<typename TDerived>
GrammageType corsika::BaseExponential< TDerived >::getIntegratedGrammage ( BaseTrajectory const &  line,
DirectionVector const &  axis 
) const
protected

For a (normalized) axis \( \vec{a} \), the grammage along a non-orthogonal line with (normalized) direction \( \vec{u} \) is given by:

\[ X = \frac{\varrho_0 \lambda}{\vec{u} \cdot \vec{a}} \left( \exp\left( \vec{u} \cdot \vec{a} \frac{l}{\lambda} \right) - 1 \right) \quad \text{,} \]

where \( \varrho_0 \) is the density at the starting point.

If \( \vec{u} \cdot \vec{a} = 0 \), the calculation is just like with a homogeneous density:

\[ X = \varrho_0 l \]

◆ getMassDensity()

template<typename TDerived>
MassDensityType corsika::BaseExponential< TDerived >::getMassDensity ( LengthType const  height) const
protected

Returns the mass density at altitude "height".

Parameters
height
Returns
MassDensityType

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