CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
NumericalIntegratingPropagator.hpp
1 /*
2  * (c) Copyright 2022 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 #pragma once
9 
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>
16 
17 namespace corsika {
18 
30  template <typename TEnvironment>
32  : public RadioPropagator<NumericalIntegratingPropagator<TEnvironment>,
33  TEnvironment> {
34 
35  using Base =
37  using SignalPathCollection = typename Base::SignalPathCollection;
38 
39  public:
44  NumericalIntegratingPropagator(TEnvironment const& env, LengthType const stepsize);
45 
51  template <typename Particle>
52  SignalPathCollection propagate(Particle const& particle, Point const& source,
53  Point const& destination) const;
54 
55  private:
56  LengthType const stepsize_;
57 
58  }; // End: StraightPropagator
59 
60  template <typename TEnvironment>
62  make_numerical_integrating_radio_propagator(TEnvironment const& env,
63  LengthType const stepsize) {
65  }
66 
67 } // namespace corsika
68 
69 #include <corsika/detail/modules/radio/propagators/NumericalIntegratingPropagator.inl>
Import and extend the phys::units package.
NumericalIntegratingPropagator(TEnvironment const &env, LengthType const stepsize)
Construct a new StraightPropagator 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 basic propagator that uses the straight-line (vector) between the particle lo...
SignalPathCollection propagate(Particle const &particle, Point const &source, Point const &destination) const
Return the collection of paths from start to end.