CORSIKA  @c8_version@
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>
15 #include <corsika/media/NuclearComposition.hpp>
16 #include <corsika/framework/geometry/BaseTrajectory.hpp>
17 
18 namespace corsika {
19 
20  // clang-format off
33  // clang-format on
34  template <typename T>
35  class FlatExponential : public BaseExponential<FlatExponential<T>>, public T {
37 
38  public:
39  FlatExponential(Point const& point, Vector<dimensionless_d> const& axis,
40  MassDensityType const rho, LengthType const lambda,
41  NuclearComposition const& nuclComp);
42 
43  MassDensityType getMassDensity(Point const& point) const override;
44 
45  NuclearComposition const& getNuclearComposition() const override;
46 
47  GrammageType getIntegratedGrammage(BaseTrajectory const& line) const override;
48 
49  LengthType getArclengthFromGrammage(BaseTrajectory const& line,
50  GrammageType const grammage) const override;
51 
52  private:
53  DirectionVector const axis_;
54  NuclearComposition const nuclComp_;
55  };
56 
57 } // namespace corsika
58 
59 #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
`, since they are used everywhere as integral part of the framework.
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...