CORSIKA8  0.0.0
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 rho0, LengthType lambda)
 
Point const & getAnchorPoint () const
 

Protected Member Functions

auto const & getImplementation () const
 
MassDensityType getMassDensity (LengthType const height) const
 
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) \]

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

 
LengthType getArclengthFromGrammage (BaseTrajectory const &line, GrammageType 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 := 0 > 1 + \vec{u} \cdot \vec{a} \frac{X}{\rho_0 \lambda} \infty & \text{else,} \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.

Definition at line 25 of file BaseExponential.hpp.

Member Function Documentation

◆ getArclengthFromGrammage()

template<typename TDerived>
LengthType corsika::BaseExponential< TDerived >::getArclengthFromGrammage ( BaseTrajectory const &  line,
GrammageType  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 := 0 > 1 + \vec{u} \cdot \vec{a} \frac{X}{\rho_0 \lambda} \infty & \text{else,} \end{cases} \]

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:

\[ 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) \]

, 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; \]


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