From e9f0bf2696c5bd1d4ae2b42c94f4474af000c39b Mon Sep 17 00:00:00 2001
From: Maximilian Reininghaus <maximilian.reininghaus@tu-dortmund.de>
Date: Fri, 5 Mar 2021 17:57:01 +0100
Subject: [PATCH] fixed usage of environment interface

---
 examples/radio_shower.cpp | 49 +++++++--------------------------------
 1 file changed, 9 insertions(+), 40 deletions(-)

diff --git a/examples/radio_shower.cpp b/examples/radio_shower.cpp
index 8b85a168d..93b9e79dd 100644
--- a/examples/radio_shower.cpp
+++ b/examples/radio_shower.cpp
@@ -33,6 +33,7 @@
 #include <corsika/media/NuclearComposition.hpp>
 #include <corsika/media/MediumPropertyModel.hpp>
 #include <corsika/media/UniformMagneticField.hpp>
+#include <corsika/media/UniformRefractiveIndex.hpp>
 #include <corsika/media/ShowerAxis.hpp>
 #include <corsika/media/SlidingPlanarExponential.hpp>
 
@@ -86,8 +87,9 @@ void registerRandomStreams(const int seed) {
     RNGManager::getInstance().seedAll(seed);
 }
 
-template <typename T>
-using MyExtraEnv = MediumPropertyModel<UniformMagneticField<T>>;
+template <typename TInterface>
+using MyExtraEnv =
+    UniformRefractiveIndex<MediumPropertyModel<UniformMagneticField<TInterface>>>;
 
 int main(int argc, char** argv) {
 
@@ -108,48 +110,15 @@ int main(int argc, char** argv) {
   // initialize random number sequence(s)
   registerRandomStreams(seed);
 
-  // setup environment (idea 1)
-
-  using EnvType = Environment<IRefractiveIndexModel<IMediumModel>>;
-  EnvType env9;
-
-
-  using MyHomogeneousModel = MediumPropertyModel<
-      UniformMagneticField<HomogeneousMedium<UniformRefractiveIndex<IRefractiveIndexModel<IMediumModel>>>>>;
-
-  auto& universe = *(env9.getUniverse());
-  CoordinateSystemPtr const& rootCS9 = env9.getCoordinateSystem();
-
-  auto world = EnvType::createNode<Sphere>(Point{rootCS9, 0_m, 0_m, 0_m}, 150_km);
-
-  world->setModelProperties<MyHomogeneousModel>(
-      Medium::AirDry1Atm, MagneticFieldVector(rootCS9, 0_T, 0_T, 1_T),
-      1_kg / (1_m * 1_m * 1_m),
-      NuclearComposition(std::vector<Code>{Code::Hydrogen},
-                         std::vector<float>{(float)1.}), 1);
-
-  universe.addChild(std::move(world));
-
-//    world->setModelProperties<UniRIndex>(
-//        1);
-//
-//    universe.addChild(std::move(world));
-
-
   // setup environment (idea 2)
-  template <typename T>
-  using UniRIndex = UniformRefractiveIndex<HomogeneousMedium<IRefractiveIndexModel<MediumPropertyModel<UniformMagneticField<T>>>>>;
   using EnvType = setup::Environment;
   EnvType env;
   CoordinateSystemPtr const& rootCS = env.getCoordinateSystem();
   Point const center{rootCS, 0_m, 0_m, 0_m};
   auto builder = make_layered_spherical_atmosphere_builder<
-      setup::EnvironmentInterface, UniRIndex>::create(center,
-                                                      constants::EarthRadius::Mean,
-                                                      Medium::AirDry1Atm,
-                                                      1,                         // 1 is the refractive index
-                                                      MagneticFieldVector{rootCS, 0_T,
-                                                                          50_uT, 0_T});
-
+      setup::EnvironmentInterface, MyExtraEnv>::create(center,
+                                                       constants::EarthRadius::Mean, 1.,
+                                                       Medium::AirDry1Atm,
+                                                       MagneticFieldVector{rootCS, 0_T,
+                                                                           50_uT, 0_T});
 }
-
-- 
GitLab