CORSIKA8  0.0.0
The framework to simulate particle cascades for astroparticle physics
FlatExponential.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 
12 #include <corsika/framework/geometry/Line.hpp>
13 #include <corsika/framework/geometry/Point.hpp>
14 #include <corsika/media/BaseExponential.hpp>
15 #include <corsika/media/NuclearComposition.hpp>
16 #include <corsika/framework/geometry/BaseTrajectory.hpp>
17 
18 namespace corsika {
19 
20  // clang-format off
30  // clang-format on
31  template <typename T>
32  class FlatExponential : public BaseExponential<FlatExponential<T>>, public T {
34 
35  public:
36  FlatExponential(Point const& point, Vector<dimensionless_d> const& axis,
37  MassDensityType rho, LengthType lambda,
38  NuclearComposition const& nuclComp);
39 
40  MassDensityType getMassDensity(Point const& point) const override;
41 
42  NuclearComposition const& getNuclearComposition() const override;
43 
44  GrammageType getIntegratedGrammage(BaseTrajectory const& line) const override;
45 
46  LengthType getArclengthFromGrammage(BaseTrajectory const& line,
47  GrammageType grammage) const override;
48 
49  private:
50  DirectionVector const axis_;
51  NuclearComposition const nuclComp_;
52  };
53 
54 } // namespace corsika
55 
56 #include <corsika/detail/media/FlatExponential.inl>
Import and extend the phys::units package.
This class provides the grammage/length conversion functionality for (locally) flat exponential atmos...
flat exponential density distribution with denotes the axis and should be normalized to avoid degen...
class "quantity" is the heart of the library.
Definition: quantity.hpp:54
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...
Describes the composition of matter Allowes and handles the creation of custom matter compositions...