CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
ExponentialRefractiveIndex.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/media/IRefractiveIndexModel.hpp>
12 
13 namespace corsika {
14 
22  template <typename T>
23  class ExponentialRefractiveIndex : public T {
24 
25  double n0_;
26  InverseLengthType lambda_;
27  Point center_;
28  LengthType radius_;
29 
30  public:
40  template <typename... Args>
41  ExponentialRefractiveIndex(double const n0, InverseLengthType const lambda,
42  Point const center, LengthType const radius,
43  Args&&... args);
44 
51  double getRefractiveIndex(Point const& point) const final override;
52 
53  }; // END: class ExponentialRefractiveIndex
54 
55 } // namespace corsika
56 
57 #include <corsika/detail/media/ExponentialRefractiveIndex.inl>
double getRefractiveIndex(Point const &point) const final override
Evaluate the refractive index at a given location using its z-coordinate.
`, since they are used everywhere as integral part of the framework.
ExponentialRefractiveIndex(double const n0, InverseLengthType const lambda, Point const center, LengthType const radius, Args &&... args)
Construct an ExponentialRefractiveIndex.