12 #include <corsika/framework/geometry/Point.hpp> 13 #include <corsika/media/Environment.hpp> 14 #include <corsika/media/IMediumModel.hpp> 15 #include <corsika/media/NuclearComposition.hpp> 16 #include <corsika/media/VolumeTreeNode.hpp> 19 #include <corsika/detail/media/LayeredSphericalAtmosphereBuilder.hpp> 24 #include <type_traits> 39 template <
typename TMediumInterface = IMediumModel,
40 template <
typename>
typename MExtraEnvirnoment = detail::NoExtraModel>
57 typename... TModelArgs>
67 template <
typename,
template <
typename>
typename>
74 , planetRadius_(planetRadius)
75 , additionalModelArgs_{args...} {}
83 unsigned int const nBins,
LengthType const deltaHeight,
86 int getSize()
const {
return layers_.size(); }
99 std::unique_ptr<NuclearComposition> composition_;
103 std::tuple<TModelArgs...>
const additionalModelArgs_;
105 std::stack<typename VolumeTreeNode<TMediumInterface>::VTNUPtr>
112 #include <corsika/detail/media/LayeredSphericalAtmosphereBuilder.inl>
LengthType getPlanetRadius() const
Get the current planet radius.
Import and extend the phys::units package.
Helper class to setup concentric spheres of layered atmosphere with spcified density profiles (expone...
The cascade namespace assembles all objects needed to simulate full particles cascades.
Helper class to create LayeredSphericalAtmosphereBuilder, the extra environment models have to be pas...
static constexpr quantity zero()
We need a "zero" of each type – for comparisons, to initialize running totals, etc.
Describes the composition of matter Allowes and handles the creation of custom matter compositions...
Base Evnironment class Describes the Environment in which the shower is propagated.