10 #include <corsika/media/Environment.hpp> 11 #include <corsika/framework/geometry/Point.hpp> 12 #include <corsika/framework/geometry/Vector.hpp> 15 #include <corsika/modules/radio/propagators/RadioPropagator.hpp> 27 template <
typename TEnvironment>
29 :
public RadioPropagator<TabulatedFlatAtmospherePropagator<TEnvironment>,
34 using SignalPathCollection =
typename Base::SignalPathCollection;
50 template <
typename Particle>
51 SignalPathCollection
propagate(Particle
const& particle,
Point const& source,
52 Point const& destination);
55 Point const upperLimit_;
56 Point const lowerLimit_;
62 std::vector<double> refractivityTable_;
64 std::vector<LengthType>
67 integratedRefractivityTable_;
68 double slopeRefrLower_;
69 double slopeIntRefrLower_;
71 double slopeRefrUpper_;
73 double slopeIntRefrUpper_;
77 std::deque<Point> points;
83 template <
typename TEnvironment>
85 make_tabulated_flat_atmosphere_radio_propagator(TEnvironment
const& env,
86 Point const& upperLimit,
87 Point const& lowerLimit,
95 #include <corsika/detail/modules/radio/propagators/TabulatedFlatAtmospherePropagator.inl>
Import and extend the phys::units package.
SignalPathCollection propagate(Particle const &particle, Point const &source, Point const &destination)
Return the collection of paths from source to destination.
TabulatedFlatAtmospherePropagator(TEnvironment const &env, Point const &upperLimit, Point const &lowerLimit, LengthType const step)
Construct a new FlatEarthPropagator with a given environment.
`, since they are used everywhere as integral part of the framework.
Constants are defined with static units, based on the package (namespace) phys::units, imported in PhysicsUnits.hpp.
Radio propagators are used to calculate the propagation paths from particles to antennas.
This class implements a tabulated propagator that approximates the Earth's atmosphere as flat...