CORSIKA
@c8_version@
The framework to simulate particle cascades for astroparticle physics
SlidingPlanarExponential.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
11
#include <
corsika/framework/core/ParticleProperties.hpp
>
12
#include <
corsika/framework/core/PhysicalUnits.hpp
>
13
#include <corsika/framework/geometry/Line.hpp>
14
#include <corsika/framework/geometry/Point.hpp>
15
#include <corsika/framework/random/RNGManager.hpp>
16
#include <corsika/media/NuclearComposition.hpp>
17
#include <corsika/framework/geometry/BaseTrajectory.hpp>
18
19
namespace
corsika
{
20
21
// clang-format off
31
// clang-format on
32
33
template
<
typename
T>
34
class
SlidingPlanarExponential
:
public
BaseExponential
<SlidingPlanarExponential<T>>,
35
public
T {
36
37
using
Base
=
BaseExponential<SlidingPlanarExponential<T>
>;
38
39
public
:
40
SlidingPlanarExponential
(
Point
const
& p0,
MassDensityType
const
rho0,
41
LengthType
const
lambda,
NuclearComposition
const
& nuclComp,
42
LengthType
const
referenceHeight =
LengthType::zero
());
43
44
MassDensityType
getMassDensity(
Point
const
& point)
const override
;
45
46
NuclearComposition
const
& getNuclearComposition()
const override
;
47
48
GrammageType
getIntegratedGrammage(
BaseTrajectory
const
& line)
const override
;
49
50
LengthType
getArclengthFromGrammage(
BaseTrajectory
const
& line,
51
GrammageType
const
grammage)
const override
;
52
53
private
:
54
NuclearComposition
const
nuclComp_;
55
};
56
57
}
// namespace corsika
58
59
#include <corsika/detail/media/SlidingPlanarExponential.inl>
corsika::Point
Definition:
Point.hpp:22
PhysicalUnits.hpp
Import and extend the phys::units package.
corsika::BaseExponential
This class provides the grammage/length conversion functionality for (locally) flat exponential atmos...
Definition:
BaseExponential.hpp:31
corsika::SlidingPlanarExponential
The SlidingPlanarExponential models mass density as: For grammage/length conversion, the density distribution is approximated as locally flat at the starting point of the trajectory with the axis pointing from to .
Definition:
SlidingPlanarExponential.hpp:34
phys::units::quantity
class "quantity" is the heart of the library.
Definition:
quantity.hpp:54
corsika
`, since they are used everywhere as integral part of the framework.
Definition:
BoundaryCrossingProcess.hpp:14
phys::units::quantity< phys::units::length_d, double >::zero
static constexpr quantity zero()
We need a "zero" of each type – for comparisons, to initialize running totals, etc.
Definition:
quantity.hpp:359
corsika::BaseTrajectory
A Trajectory is a description of a momvement of an object in three-dimensional space that describes t...
Definition:
BaseTrajectory.hpp:36
corsika::NuclearComposition
Describes the composition of matter Allowes and handles the creation of custom matter compositions...
Definition:
NuclearComposition.hpp:28
ParticleProperties.hpp
Interface to particle properties.
corsika
media
SlidingPlanarExponential.hpp
Generated by
1.8.13