CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
CoREAS.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/modules/radio/RadioProcess.hpp>
11 #include <corsika/framework/geometry/QuantityVector.hpp>
13 
14 namespace corsika {
15 
16  template <typename TRadioDetector, typename TPropagator>
17  class CoREAS final
18  : public RadioProcess<TRadioDetector, CoREAS<TRadioDetector, TPropagator>,
19  TPropagator> {
20 
21  public:
22  // an identifier for which algorithm was used
23  static constexpr auto algorithm = "CoREAS";
24 
32  template <typename... TArgs>
33  CoREAS(TRadioDetector& detector, TArgs&&... args)
34  : RadioProcess<TRadioDetector, CoREAS, TPropagator>(detector, args...) {}
35 
45  template <typename Particle>
47  static constexpr auto emConstant_{1.0 / (4.0 * M_PI) / (constants::epsilonZero) /
48  constants::c};
49 
50  using Base =
52  using Base::antennas_;
53 
54  }; // end of class CoREAS
55 
56 } // namespace corsika
57 
58 #include <corsika/detail/modules/radio/CoREAS.inl>
Import and extend the phys::units package.
CoREAS(TRadioDetector &detector, TArgs &&... args)
Construct a new CoREAS instance.
Definition: CoREAS.hpp:33
`, since they are used everywhere as integral part of the framework.
ProcessReturn simulate(Step< Particle > const &step)
Simulate the radio emission from a particle across a track.
ProcessReturn
since in a process sequence many status updates can accumulate for a single particle, this enum should define only bit-flags that can be accumulated easily with "|="
The base interface for radio emission processes.