CORSIKA8  0.0.0
The framework to simulate particle cascades for astroparticle physics
BaseExponential.hpp
1 /*
2  * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu
3  *
4  * This software is distributed under the terms of the GNU General Public
5  * Licence version 3 (GPL Version 3). See file LICENSE for a full version of
6  * the license.
7  */
8 
9 #pragma once
10 
13 #include <corsika/framework/geometry/Line.hpp>
14 #include <corsika/framework/geometry/Point.hpp>
15 #include <corsika/framework/geometry/BaseTrajectory.hpp>
16 #include <limits>
17 
18 namespace corsika {
19 
24  template <typename TDerived>
26 
27  public:
28  BaseExponential(Point const& point, LengthType const referenceHeight,
29  MassDensityType rho0, LengthType lambda);
30 
31  Point const& getAnchorPoint() const { return point_; }
32 
33  protected:
34  auto const& getImplementation() const;
35 
36  MassDensityType getMassDensity(LengthType const height) const;
37 
38  // clang-format off
51  // clang-format on
53  DirectionVector const& axis) const;
54 
55  // clang-format off
72  // clang-format on
74  DirectionVector const& axis) const;
75 
76  private:
77  MassDensityType const rho0_;
78  LengthType const lambda_;
79  InverseLengthType const invLambda_;
80  Point const point_;
81  LengthType const referenceHeight_;
82 
83  }; // class BaseExponential
84 
85 } // namespace corsika
86 
87 #include <corsika/detail/media/BaseExponential.inl>
LengthType getArclengthFromGrammage(BaseTrajectory const &line, GrammageType grammage, DirectionVector const &axis) const
For a (normalized) axis , the length of a non-orthogonal line with (normalized) direction correspond...
Import and extend the phys::units package.
This class provides the grammage/length conversion functionality for (locally) flat exponential atmos...
The cascade namespace assembles all objects needed to simulate full particles cascades.
A Trajectory is a description of a momvement of an object in three-dimensional space that describes t...
Interface to particle properties.
GrammageType getIntegratedGrammage(BaseTrajectory const &line, DirectionVector const &axis) const
For a (normalized) axis , the grammage along a non-orthogonal line with (normalized) direction is gi...