From 9792864385b048c7c3b2d7517f2bbb6f2ca7b501 Mon Sep 17 00:00:00 2001
From: ralfulrich <ralf.ulrich@kit.edu>
Date: Thu, 8 Oct 2020 00:34:36 +0200
Subject: [PATCH] improved/simplified interface to LayeredSp...Atm..Builder

---
 Documentation/Examples/hybrid_MC.cc           | 41 +++++++++++--------
 .../CONEXSourceCut/testCONEXSourceCut.cc      | 41 +++++++++++--------
 2 files changed, 49 insertions(+), 33 deletions(-)

diff --git a/Documentation/Examples/hybrid_MC.cc b/Documentation/Examples/hybrid_MC.cc
index 036de755a..515d9ac95 100644
--- a/Documentation/Examples/hybrid_MC.cc
+++ b/Documentation/Examples/hybrid_MC.cc
@@ -72,9 +72,6 @@ void registerRandomStreams(const int seed) {
     random::RNGManager::GetInstance().SeedAll(seed);
 }
 
-template <typename T>
-using MEnv = environment::UniformMediumType<environment::UniformMagneticField<T>>;
-
 int main(int argc, char** argv) {
 
   logging::SetLevel(logging::level::info);
@@ -104,20 +101,30 @@ int main(int argc, char** argv) {
       {{particles::Code::Nitrogen, particles::Code::Oxygen},
        {0.7847f, 1.f - 0.7847f}}); // values taken from AIRES manual, Ar removed for now
 
-  builder.addExponentialLayer<MEnv>(1222.6562_g / (1_cm * 1_cm), 994186.38_cm, 4_km,
-                                    environment::EMediumType::eAir,
-                                    geometry::Vector(rootCS, 0_T, 0_T, 1_T));
-  builder.addExponentialLayer<MEnv>(1144.9069_g / (1_cm * 1_cm), 878153.55_cm, 10_km,
-                                    environment::EMediumType::eAir,
-                                    geometry::Vector(rootCS, 0_T, 0_T, 1_T));
-  builder.addExponentialLayer<MEnv>(1305.5948_g / (1_cm * 1_cm), 636143.04_cm, 40_km,
-                                    environment::EMediumType::eAir,
-                                    geometry::Vector(rootCS, 0_T, 0_T, 1_T));
-  builder.addExponentialLayer<MEnv>(540.1778_g / (1_cm * 1_cm), 772170.16_cm, 100_km,
-                                    environment::EMediumType::eAir,
-                                    geometry::Vector(rootCS, 0_T, 0_T, 1_T));
-  builder.addLinearLayer<MEnv>(1e9_cm, 112.8_km, environment::EMediumType::eAir,
-                               geometry::Vector(rootCS, 0_T, 0_T, 1_T));
+  builder.addExponentialLayer<
+      environment::UniformMediumType<environment::UniformMagneticField<
+          SlidingPlanarExponential<setup::EnvironmentInterface>>>>(
+      1222.6562_g / (1_cm * 1_cm), 994186.38_cm, 4_km, environment::EMediumType::eAir,
+      geometry::Vector(rootCS, 0_T, 0_T, 1_T));
+  builder.addExponentialLayer<
+      environment::UniformMediumType<environment::UniformMagneticField<
+          SlidingPlanarExponential<setup::EnvironmentInterface>>>>(
+      1144.9069_g / (1_cm * 1_cm), 878153.55_cm, 10_km, environment::EMediumType::eAir,
+      geometry::Vector(rootCS, 0_T, 0_T, 1_T));
+  builder.addExponentialLayer<
+      environment::UniformMediumType<environment::UniformMagneticField<
+          SlidingPlanarExponential<setup::EnvironmentInterface>>>>(
+      1305.5948_g / (1_cm * 1_cm), 636143.04_cm, 40_km, environment::EMediumType::eAir,
+      geometry::Vector(rootCS, 0_T, 0_T, 1_T));
+  builder.addExponentialLayer<
+      environment::UniformMediumType<environment::UniformMagneticField<
+          SlidingPlanarExponential<setup::EnvironmentInterface>>>>(
+      540.1778_g / (1_cm * 1_cm), 772170.16_cm, 100_km, environment::EMediumType::eAir,
+      geometry::Vector(rootCS, 0_T, 0_T, 1_T));
+  builder.addLinearLayer<environment::UniformMediumType<
+      environment::UniformMagneticField<HomogeneousMedium<setup::EnvironmentInterface>>>>(
+      1e9_cm, 112.8_km, environment::EMediumType::eAir,
+      geometry::Vector(rootCS, 0_T, 0_T, 1_T));
 
   builder.assemble(env);
 
diff --git a/Processes/CONEXSourceCut/testCONEXSourceCut.cc b/Processes/CONEXSourceCut/testCONEXSourceCut.cc
index cd0e58f06..09e905349 100644
--- a/Processes/CONEXSourceCut/testCONEXSourceCut.cc
+++ b/Processes/CONEXSourceCut/testCONEXSourceCut.cc
@@ -63,20 +63,30 @@ TEST_CASE("CONEXSourceCut") {
       {{particles::Code::Nitrogen, particles::Code::Oxygen},
        {0.7847f, 1.f - 0.7847f}}); // values taken from AIRES manual, Ar removed for now
 
-  builder.addExponentialLayer<MEnv>(1222.6562_g / (1_cm * 1_cm), 994186.38_cm, 4_km,
-                                    environment::EMediumType::eAir,
-                                    geometry::Vector(rootCS, 0_T, 0_T, 1_T));
-  builder.addExponentialLayer<MEnv>(1144.9069_g / (1_cm * 1_cm), 878153.55_cm, 10_km,
-                                    environment::EMediumType::eAir,
-                                    geometry::Vector(rootCS, 0_T, 0_T, 1_T));
-  builder.addExponentialLayer<MEnv>(1305.5948_g / (1_cm * 1_cm), 636143.04_cm, 40_km,
-                                    environment::EMediumType::eAir,
-                                    geometry::Vector(rootCS, 0_T, 0_T, 1_T));
-  builder.addExponentialLayer<MEnv>(540.1778_g / (1_cm * 1_cm), 772170.16_cm, 100_km,
-                                    environment::EMediumType::eAir,
-                                    geometry::Vector(rootCS, 0_T, 0_T, 1_T));
-  builder.addLinearLayer<MEnv>(1e9_cm, 112.8_km, environment::EMediumType::eAir,
-                               geometry::Vector(rootCS, 0_T, 0_T, 1_T));
+  builder.addExponentialLayer<
+      environment::UniformMediumType<environment::UniformMagneticField<
+          SlidingPlanarExponential<setup::EnvironmentInterface>>>>(
+      1222.6562_g / (1_cm * 1_cm), 994186.38_cm, 4_km, environment::EMediumType::eAir,
+      geometry::Vector(rootCS, 0_T, 0_T, 1_T));
+  builder.addExponentialLayer<
+      environment::UniformMediumType<environment::UniformMagneticField<
+          SlidingPlanarExponential<setup::EnvironmentInterface>>>>(
+      1144.9069_g / (1_cm * 1_cm), 878153.55_cm, 10_km, environment::EMediumType::eAir,
+      geometry::Vector(rootCS, 0_T, 0_T, 1_T));
+  builder.addExponentialLayer<
+      environment::UniformMediumType<environment::UniformMagneticField<
+          SlidingPlanarExponential<setup::EnvironmentInterface>>>>(
+      1305.5948_g / (1_cm * 1_cm), 636143.04_cm, 40_km, environment::EMediumType::eAir,
+      geometry::Vector(rootCS, 0_T, 0_T, 1_T));
+  builder.addExponentialLayer<
+      environment::UniformMediumType<environment::UniformMagneticField<
+          SlidingPlanarExponential<setup::EnvironmentInterface>>>>(
+      540.1778_g / (1_cm * 1_cm), 772170.16_cm, 100_km, environment::EMediumType::eAir,
+      geometry::Vector(rootCS, 0_T, 0_T, 1_T));
+  builder.addLinearLayer<environment::UniformMediumType<
+      environment::UniformMagneticField<HomogeneousMedium<setup::EnvironmentInterface>>>>(
+      1e9_cm, 112.8_km, environment::EMediumType::eAir,
+      geometry::Vector(rootCS, 0_T, 0_T, 1_T));
 
   builder.assemble(env);
 
@@ -102,8 +112,7 @@ TEST_CASE("CONEXSourceCut") {
   [[maybe_unused]] process::sibyll::NuclearInteraction sibyllNuc(sibyll, env);
 
   corsika::process::conex_source_cut::CONEXSourceCut conex(
-      center, showerAxis, t, injectionHeight, E0,
-      particles::GetPDG(particles::Code::Proton));
+      center, showerAxis, t, injectionHeight, E0, particles::Code::Proton);
 
   HEPEnergyType const Eem{1_PeV};
   auto const momentum = showerAxis.GetDirection() * Eem;
-- 
GitLab