From 000019905d9eaf5e0695e8c52de7d8b08e2f8777 Mon Sep 17 00:00:00 2001
From: Maximilian Reininghaus <maximilian.reininghaus@tu-dortmund.de>
Date: Sun, 12 Jul 2020 23:51:37 +0200
Subject: [PATCH 1/2] use Vectors in magnetic field models

---
 Environment/IMagneticFieldModel.h  | 3 ++-
 Environment/UniformMagneticField.h | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/Environment/IMagneticFieldModel.h b/Environment/IMagneticFieldModel.h
index a2666ba26..c34f1878b 100644
--- a/Environment/IMagneticFieldModel.h
+++ b/Environment/IMagneticFieldModel.h
@@ -10,6 +10,7 @@
 #pragma once
 
 #include <corsika/geometry/Point.h>
+#include <corsika/geometry/Vector.h>
 #include <corsika/units/PhysicalUnits.h>
 
 namespace corsika::environment {
@@ -25,7 +26,7 @@ namespace corsika::environment {
 
     // a type-alias for a magnetic field vector
     using MagneticFieldVector =
-        corsika::geometry::QuantityVector<corsika::units::si::magnetic_flux_density_d>;
+        corsika::geometry::Vector<corsika::units::si::magnetic_flux_density_d>;
 
   public:
     /**
diff --git a/Environment/UniformMagneticField.h b/Environment/UniformMagneticField.h
index 31f2a1b94..e75c0420d 100644
--- a/Environment/UniformMagneticField.h
+++ b/Environment/UniformMagneticField.h
@@ -25,7 +25,7 @@ namespace corsika::environment {
 
     // a type-alias for a magnetic field vector
     using MagneticFieldVector =
-        corsika::geometry::QuantityVector<corsika::units::si::magnetic_flux_density_d>;
+        corsika::geometry::Vector<corsika::units::si::magnetic_flux_density_d>;
 
     MagneticFieldVector B_; ///< The constant magnetic field we use.
 
-- 
GitLab


From 5244de541d1cb6959bdf6932e6126af8ccbdddce Mon Sep 17 00:00:00 2001
From: Maximilian Reininghaus <maximilian.reininghaus@kit.edu>
Date: Tue, 14 Jul 2020 13:18:18 +0200
Subject: [PATCH 2/2] update testEnvironment

---
 Environment/testEnvironment.cc | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/Environment/testEnvironment.cc b/Environment/testEnvironment.cc
index ed2bf9a1a..8e59c7197 100644
--- a/Environment/testEnvironment.cc
+++ b/Environment/testEnvironment.cc
@@ -245,7 +245,7 @@ TEST_CASE("UniformMagneticField w/ Homogeneous Medium") {
                                              std::vector<float>{1.f});
 
   // create a magnetic field vector
-  QuantityVector B0(0_T, 0_T, 0_T);
+  Vector B0(gCS, 0_T, 0_T, 0_T);
 
   // the constant density
   const auto density{19.2_g / cube(1_cm)};
@@ -254,20 +254,28 @@ TEST_CASE("UniformMagneticField w/ Homogeneous Medium") {
   AtmModel medium(B0, density, protonComposition);
 
   // and test at several locations
-  REQUIRE(B0 == medium.GetMagneticField(Point(gCS, -10_m, 4_m, 35_km)));
-  REQUIRE(B0 == medium.GetMagneticField(Point(gCS, 1000_km, -1000_km, 1000_km)));
-  REQUIRE(B0 == medium.GetMagneticField(Point(gCS, 0_m, 0_m, 0_m)));
+  REQUIRE(B0.GetComponents(gCS) ==
+          medium.GetMagneticField(Point(gCS, -10_m, 4_m, 35_km)).GetComponents(gCS));
+  REQUIRE(
+      B0.GetComponents(gCS) ==
+      medium.GetMagneticField(Point(gCS, 1000_km, -1000_km, 1000_km)).GetComponents(gCS));
+  REQUIRE(B0.GetComponents(gCS) ==
+          medium.GetMagneticField(Point(gCS, 0_m, 0_m, 0_m)).GetComponents(gCS));
 
   // create a new magnetic field vector
-  QuantityVector B1(23_T, 57_T, -4_T);
+  Vector B1(gCS, 23_T, 57_T, -4_T);
 
   // and update this atmospheric model
   medium.SetMagneticField(B1);
 
   // and test at several locations
-  REQUIRE(B1 == medium.GetMagneticField(Point(gCS, -10_m, 4_m, 35_km)));
-  REQUIRE(B1 == medium.GetMagneticField(Point(gCS, 1000_km, -1000_km, 1000_km)));
-  REQUIRE(B1 == medium.GetMagneticField(Point(gCS, 0_m, 0_m, 0_m)));
+  REQUIRE(B1.GetComponents(gCS) ==
+          medium.GetMagneticField(Point(gCS, -10_m, 4_m, 35_km)).GetComponents(gCS));
+  REQUIRE(
+      B1.GetComponents(gCS) ==
+      medium.GetMagneticField(Point(gCS, 1000_km, -1000_km, 1000_km)).GetComponents(gCS));
+  REQUIRE(B1.GetComponents(gCS) ==
+          medium.GetMagneticField(Point(gCS, 0_m, 0_m, 0_m)).GetComponents(gCS));
 
   // check the density and nuclear composition
   REQUIRE(density == medium.GetMassDensity(Point(gCS, 0_m, 0_m, 0_m)));
-- 
GitLab