diff --git a/corsika/detail/media/ExponentialRefractiveIndex.inl b/corsika/detail/media/ExponentialRefractiveIndex.inl index ac60050c50147ad8a58672ae3459bb1d1192eeb6..675531eb85da2746c087c7d135c103686cf05eaa 100644 --- a/corsika/detail/media/ExponentialRefractiveIndex.inl +++ b/corsika/detail/media/ExponentialRefractiveIndex.inl @@ -15,14 +15,16 @@ namespace corsika { template <typename T> template <typename... Args> ExponentialRefractiveIndex<T>::ExponentialRefractiveIndex( - double const n0, InverseLengthType const lambda, Args&&... args) + double const n0, InverseLengthType const lambda_, Point const center_, LengthType const planetRadius_, Args&&... args) : T(std::forward<Args>(args)...) , n_0(n0) - , lambda_(lambda) {} + , lambda(lambda_) + , center(center_) + , planetRadius(planetRadius_) {} template <typename T> double ExponentialRefractiveIndex<T>::getRefractiveIndex(Point const& point) const { - return n_0 * exp((-lambda_) * point.getCoordinates().getZ()); + return n_0 * exp((-lambda) * (distance(point, center) - planetRadius)); } } // namespace corsika diff --git a/corsika/media/ExponentialRefractiveIndex.hpp b/corsika/media/ExponentialRefractiveIndex.hpp index 441f7b33fbb14c7ef9568aa5d942845c7591f0cb..eb41fde2432481b47397d81299779bacfe0f31f5 100644 --- a/corsika/media/ExponentialRefractiveIndex.hpp +++ b/corsika/media/ExponentialRefractiveIndex.hpp @@ -23,7 +23,9 @@ namespace corsika { class ExponentialRefractiveIndex : public T { double n_0; ///< n0 constant. - InverseLengthType lambda_; ///< lambda parameter. + InverseLengthType lambda; ///< lambda parameter. + LengthType planetRadius; ///< the planet radius. + Point center; ///< center of the planet. public: /** @@ -36,7 +38,7 @@ namespace corsika { * @param field The refractive index to return to a given point. */ template <typename... Args> - ExponentialRefractiveIndex(double const n0, InverseLengthType const lambda, + ExponentialRefractiveIndex(double const n0, InverseLengthType const lambda_, Point const center_, LengthType const planetRadius_, Args&&... args); /**