From 65c40f5b82692e8603f133144cdbcc89c3907ee1 Mon Sep 17 00:00:00 2001
From: ralfulrich <ralf.ulrich@kit.edu>
Date: Thu, 20 May 2021 12:52:49 +0200
Subject: [PATCH] added helper include file for Random init, clang-format

---
 corsika/detail/modules/epos/Interaction.inl   | 49 ++++++-------
 .../modules/epos/ParticleConversion.inl       |  2 +-
 corsika/modules/Epos.hpp                      |  1 -
 corsika/modules/Random.hpp                    | 14 ++++
 corsika/modules/epos/Interaction.hpp          |  8 +--
 corsika/modules/qgsjetII/Interaction.hpp      |  1 -
 examples/boundary_example.cpp                 |  4 +-
 examples/cascade_example.cpp                  |  3 +-
 examples/cascade_proton_example.cpp           |  5 +-
 examples/hybrid_MC.cpp                        |  5 +-
 examples/particle_list_example.cpp            |  5 +-
 examples/vertical_EAS.cpp                     |  4 +-
 modules/epos/epos.cpp                         |  3 +-
 modules/epos/epos.hpp                         | 69 +++++++++----------
 tests/modules/testEpos.cpp                    | 34 +++++----
 15 files changed, 108 insertions(+), 99 deletions(-)
 create mode 100644 corsika/modules/Random.hpp

diff --git a/corsika/detail/modules/epos/Interaction.inl b/corsika/detail/modules/epos/Interaction.inl
index 4986bd9f6..31c0886c5 100644
--- a/corsika/detail/modules/epos/Interaction.inl
+++ b/corsika/detail/modules/epos/Interaction.inl
@@ -166,13 +166,13 @@ namespace corsika::epos {
 
     // dummy event (prepare commons)
     initializeEventLab(Code::Iron, Iron::nucleus_A, Iron::nucleus_Z, Code::Argon,
-                         Argon::nucleus_A, Argon::nucleus_Z, 100_GeV);
+                       Argon::nucleus_A, Argon::nucleus_Z, 100_GeV);
   }
 
   inline void Interaction::initializeEventCoM(Code const idBeam, int const iBeamA,
-                                                int const iBeamZ, Code const idTarget,
-                                                int const iTargetA, int const iTargetZ,
-                                                HEPEnergyType const Ecm) const {
+                                              int const iBeamZ, Code const idTarget,
+                                              int const iTargetA, int const iTargetZ,
+                                              HEPEnergyType const Ecm) const {
     CORSIKA_LOGGER_TRACE(logger_,
                          "initialize event in CoM frame!"
                          " Ecm={}",
@@ -196,9 +196,9 @@ namespace corsika::epos {
   }
 
   inline void Interaction::initializeEventLab(Code const idBeam, int const iBeamA,
-                                                int const iBeamZ, Code const idTarget,
-                                                int const iTargetA, int const iTargetZ,
-                                                HEPEnergyType const Plab) const {
+                                              int const iBeamZ, Code const idTarget,
+                                              int const iTargetA, int const iTargetZ,
+                                              HEPEnergyType const Plab) const {
     CORSIKA_LOGGER_TRACE(logger_,
                          "initialize event in lab. frame!"
                          " Plab per nuc={} GeV",
@@ -224,9 +224,9 @@ namespace corsika::epos {
   }
 
   inline void Interaction::configureParticles(Code const idBeam, int const iBeamA,
-                                               int const iBeamZ, Code const idTarget,
-                                               int const iTargetA,
-                                               int const iTargetZ) const {
+                                              int const iBeamZ, Code const idTarget,
+                                              int const iTargetA,
+                                              int const iTargetZ) const {
     CORSIKA_LOGGER_TRACE(logger_,
                          "setting "
                          "Beam={}, "
@@ -244,7 +244,7 @@ namespace corsika::epos {
       ::epos::had10_.iclpro = corsika::epos::getEposXSCode(Code::Proton);
     } else {
       ::epos::hadr25_.idprojin = convertToEposRaw(idBeam);
-      ::epos::had10_.iclpro = corsika::epos::getEposXSCode(idBeam); 
+      ::epos::had10_.iclpro = corsika::epos::getEposXSCode(idBeam);
       ::epos::nucl1_.laproj = -1;
       ::epos::nucl1_.maproj = 1;
     }
@@ -286,20 +286,22 @@ namespace corsika::epos {
   inline Interaction::~Interaction() { CORSIKA_LOGGER_DEBUG(logger_, "n={} ", count_); }
 
   // inline std::tuple<corsika::CrossSectionType, corsika::CrossSectionType>
-  // Interaction::getCrossSection(corsika::Code const BeamId, corsika::Code const TargetId,
+  // Interaction::getCrossSection(corsika::Code const BeamId, corsika::Code const
+  // TargetId,
   //                              const corsika::HEPEnergyType EnergyCOM) const {
   //   if (!is_nucleus(BeamId))
   //     return getCrossSection(BeamId, 1, 1, TargetId, get_nucleus_A(TargetId),
   //                            get_nucleus_Z(TargetId), EnergyCOM);
   //   else
-  //     throw("nuclear projecile, call getCrossSection with : BeamId, BeamA, BeamZ, ...");
+  //     throw("nuclear projecile, call getCrossSection with : BeamId, BeamA, BeamZ,
+  //     ...");
   // }
 
   inline std::tuple<corsika::CrossSectionType, corsika::CrossSectionType>
   Interaction::calcCrossSectionCoM(corsika::Code const BeamId, int const BeamA,
-                               int const BeamZ, corsika::Code const TargetId,
-                               int const TargetA, int const TargetZ,
-                               const corsika::HEPEnergyType EnergyCOM) const {
+                                   int const BeamZ, corsika::Code const TargetId,
+                                   int const TargetA, int const TargetZ,
+                                   const corsika::HEPEnergyType EnergyCOM) const {
     CORSIKA_LOGGER_DEBUG(logger_,
                          "calcCrossSection: input:"
                          " beamId={}, beamA={}, beamZ={}"
@@ -322,13 +324,13 @@ namespace corsika::epos {
     // reset beam particle // (1: pion-like, 2: proton-like, 3:kaon-like)
     if (iBeam == 1)
       initializeEventCoM(Code::PiPlus, BeamA, BeamZ, TargetId, TargetA, TargetZ,
-                           EnergyCOM);
+                         EnergyCOM);
     else if (iBeam == 2)
       initializeEventCoM(Code::Proton, BeamA, BeamZ, TargetId, TargetA, TargetZ,
-                           EnergyCOM);    
+                         EnergyCOM);
     else if (iBeam == 3)
       initializeEventCoM(Code::KPlus, BeamA, BeamZ, TargetId, TargetA, TargetZ,
-                           EnergyCOM);
+                         EnergyCOM);
     else
       throw std::runtime_error(
           "calcCrossSectionCoM: interaction of beam hadron not defined in "
@@ -378,7 +380,7 @@ namespace corsika::epos {
     // read cross section from epos internal tables
     int Abeam;
     float Ekin = -1;
-    
+
     if (is_nucleus(BeamId)) {
       Abeam = BeamA;
       // kinetic energy per nucleon
@@ -420,7 +422,7 @@ namespace corsika::epos {
     float sigProdEpos = ::epos::eposcrse_(Ekin, Abeam, Atarget, iMode);
     float sigElaEpos = ::epos::eposelacrse_(Ekin, Abeam, Atarget, iMode);
 
-      return std::make_tuple(sigProdEpos * 1_mb, sigElaEpos * 1_mb);
+    return std::make_tuple(sigProdEpos * 1_mb, sigElaEpos * 1_mb);
   }
 
   inline std::tuple<corsika::CrossSectionType, corsika::CrossSectionType>
@@ -483,7 +485,8 @@ namespace corsika::epos {
       // auto const pTotLabNorm = pTotLab.getNorm();
       // calculate cm. energy
       // const HEPEnergyType ECoM = sqrt(
-      //     (Elab + pTotLabNorm) * (Elab - pTotLabNorm)); // binomial for numerical accuracy
+      //     (Elab + pTotLabNorm) * (Elab - pTotLabNorm)); // binomial for numerical
+      //     accuracy
 
       auto const* currentNode = projectile.getNode();
       const auto& mediumComposition =
@@ -586,7 +589,7 @@ namespace corsika::epos {
         targetZ = get_nucleus_Z(targetCode);
       }
       initializeEventLab(corsikaBeamId, beamA, beamZ, targetCode, targetA, targetZ,
-                           projectileMomentumLabPerNucleon);
+                         projectileMomentumLabPerNucleon);
 
       // create event
       int iarg = 1;
diff --git a/corsika/detail/modules/epos/ParticleConversion.inl b/corsika/detail/modules/epos/ParticleConversion.inl
index d23b800c9..4ca093eed 100644
--- a/corsika/detail/modules/epos/ParticleConversion.inl
+++ b/corsika/detail/modules/epos/ParticleConversion.inl
@@ -21,7 +21,7 @@ namespace corsika::epos {
       throw std::runtime_error("getEposMass: unknown particle!");
     else {
       double mass2;
-      ::epos::idmass_(sCode,mass2);
+      ::epos::idmass_(sCode, mass2);
       return sqrt(mass2) * 1_GeV;
     }
   }
diff --git a/corsika/modules/Epos.hpp b/corsika/modules/Epos.hpp
index 5ca547e2a..c25be9b14 100644
--- a/corsika/modules/Epos.hpp
+++ b/corsika/modules/Epos.hpp
@@ -10,4 +10,3 @@
 
 #include <corsika/modules/epos/ParticleConversion.hpp>
 #include <corsika/modules/epos/Interaction.hpp>
-//#include <corsika/modules/epos/Decay.hpp>
diff --git a/corsika/modules/Random.hpp b/corsika/modules/Random.hpp
new file mode 100644
index 000000000..8882a5ff6
--- /dev/null
+++ b/corsika/modules/Random.hpp
@@ -0,0 +1,14 @@
+#pragma once
+
+/*
+  NOTE, WARNING, ATTENTION
+
+  The .../Random.hpp implement the hooks of external modules to the C8 random
+  number generator. It has to occur excatly ONCE per linked
+  executable. If you include the header below multiple times and
+  link this togehter, it will fail.
+ */
+#include <corsika/modules/sibyll/Random.hpp>
+#include <corsika/modules/epos/Random.hpp>
+#include <corsika/modules/urqmd/Random.hpp>
+#include <corsika/modules/qgsjetII/Random.hpp>
diff --git a/corsika/modules/epos/Interaction.hpp b/corsika/modules/epos/Interaction.hpp
index 05a220027..ec6cbeeaf 100644
--- a/corsika/modules/epos/Interaction.hpp
+++ b/corsika/modules/epos/Interaction.hpp
@@ -20,7 +20,7 @@ namespace corsika::epos {
     std::string data_path_;
     unsigned int count_ = 0;
     bool epos_listing_;
-    
+
   public:
     Interaction(const std::string& dataPath = "", const bool epos_printout_on = false);
     ~Interaction();
@@ -71,11 +71,11 @@ namespace corsika::epos {
 
     void initialize() const;
     void initializeEventCoM(Code const, int const, int const, Code const, int const,
-			      int const, HEPEnergyType const) const;
+                            int const, HEPEnergyType const) const;
     void initializeEventLab(Code const, int const, int const, Code const, int const,
-			      int const, HEPEnergyType const) const;
+                            int const, HEPEnergyType const) const;
     void configureParticles(Code const, int const, int const, Code const, int const,
-                             int const) const;
+                            int const) const;
     void setParticlesStable() const;
 
   private:
diff --git a/corsika/modules/qgsjetII/Interaction.hpp b/corsika/modules/qgsjetII/Interaction.hpp
index 4f2f1c1db..7af63723f 100644
--- a/corsika/modules/qgsjetII/Interaction.hpp
+++ b/corsika/modules/qgsjetII/Interaction.hpp
@@ -18,7 +18,6 @@
 #include <boost/filesystem/path.hpp>
 
 #include <qgsjet-II-04.hpp>
-
 #include <string>
 
 namespace corsika::qgsjetII {
diff --git a/examples/boundary_example.cpp b/examples/boundary_example.cpp
index 083a54559..6e369e8a2 100644
--- a/examples/boundary_example.cpp
+++ b/examples/boundary_example.cpp
@@ -32,11 +32,13 @@
 /*
   NOTE, WARNING, ATTENTION
 
-  The .../Random.hpp implement the hooks of external modules to the C8 random
+  The file Random.hpp implements the hooks of external modules to the C8 random
   number generator. It has to occur excatly ONCE per linked
   executable. If you include the header below multiple times and
   link this togehter, it will fail.
  */
+#include <corsika/modules/Random.hpp>
+
 #include <iostream>
 #include <limits>
 #include <typeinfo>
diff --git a/examples/cascade_example.cpp b/examples/cascade_example.cpp
index da7cdb2d4..2b9c38759 100644
--- a/examples/cascade_example.cpp
+++ b/examples/cascade_example.cpp
@@ -41,8 +41,7 @@
   executable. If you include the header below multiple times and
   link this togehter, it will fail.
  */
-#include <corsika/modules/sibyll/Random.hpp>
-#include <corsika/modules/urqmd/Random.hpp>
+#include <corsika/modules/Random.hpp>
 
 #include <iostream>
 #include <limits>
diff --git a/examples/cascade_proton_example.cpp b/examples/cascade_proton_example.cpp
index 81d8101d7..053a0c13e 100644
--- a/examples/cascade_proton_example.cpp
+++ b/examples/cascade_proton_example.cpp
@@ -38,13 +38,12 @@
 /*
   NOTE, WARNING, ATTENTION
 
-  The .../Random.hpppp implement the hooks of external modules to the C8 random
+  The file Random.hpp implements the hooks of external modules to the C8 random
   number generator. It has to occur excatly ONCE per linked
   executable. If you include the header below multiple times and
   link this togehter, it will fail.
  */
-#include <corsika/modules/sibyll/Random.hpp>
-#include <corsika/modules/urqmd/Random.hpp>
+#include <corsika/modules/Random.hpp>
 
 #include <iostream>
 #include <limits>
diff --git a/examples/hybrid_MC.cpp b/examples/hybrid_MC.cpp
index 627116620..4f4344784 100644
--- a/examples/hybrid_MC.cpp
+++ b/examples/hybrid_MC.cpp
@@ -57,13 +57,12 @@
 /*
   NOTE, WARNING, ATTENTION
 
-  The .../Random.hpppp implement the hooks of external modules to the C8 random
+  The file Random.hpp implements the hooks of external modules to the C8 random
   number generator. It has to occur excatly ONCE per linked
   executable. If you include the header below multiple times and
   link this togehter, it will fail.
  */
-#include <corsika/modules/sibyll/Random.hpp>
-#include <corsika/modules/urqmd/Random.hpp>
+#include <corsika/modules/Random.hpp>
 
 using namespace corsika;
 using namespace std;
diff --git a/examples/particle_list_example.cpp b/examples/particle_list_example.cpp
index 8a10d9f09..29e4bdc5f 100644
--- a/examples/particle_list_example.cpp
+++ b/examples/particle_list_example.cpp
@@ -15,13 +15,12 @@
 /*
   NOTE, WARNING, ATTENTION
 
-  The .../Random.hpp implement the hooks of external modules to the C8 random
+  The file Random.hpp implements the hooks of external modules to the C8 random
   number generator. It has to occur excatly ONCE per linked
   executable. If you include the header below multiple times and
   link this togehter, it will fail.
  */
-#include <corsika/modules/sibyll/Random.hpp>
-#include <corsika/modules/urqmd/Random.hpp>
+#include <corsika/modules/Random.hpp>
 
 #include <iomanip>
 #include <string>
diff --git a/examples/vertical_EAS.cpp b/examples/vertical_EAS.cpp
index 90db5adf8..6ae766bb1 100644
--- a/examples/vertical_EAS.cpp
+++ b/examples/vertical_EAS.cpp
@@ -50,6 +50,7 @@
 #include <corsika/modules/Pythia8.hpp>
 #include <corsika/modules/Sibyll.hpp>
 #include <corsika/modules/UrQMD.hpp>
+#include <corsika/modules/Epos.hpp>
 
 #include <corsika/setup/SetupStack.hpp>
 #include <corsika/setup/SetupTrajectory.hpp>
@@ -67,8 +68,7 @@
   executable. If you include the header below multiple times and
   link this togehter, it will fail.
  */
-#include <corsika/modules/sibyll/Random.hpp>
-#include <corsika/modules/urqmd/Random.hpp>
+#include <corsika/modules/Random.hpp>
 
 using namespace corsika;
 using namespace std;
diff --git a/modules/epos/epos.cpp b/modules/epos/epos.cpp
index bbfe7e20f..b24217206 100644
--- a/modules/epos/epos.cpp
+++ b/modules/epos/epos.cpp
@@ -23,5 +23,4 @@ namespace epos {
     data[i + 1] = '\0';
     length = dir.length();
   }
-}
-	
+} // namespace epos
diff --git a/modules/epos/epos.hpp b/modules/epos/epos.hpp
index a5ad0c9ff..7419bf1b2 100644
--- a/modules/epos/epos.hpp
+++ b/modules/epos/epos.hpp
@@ -52,12 +52,12 @@ namespace epos {
   void conini_();
   void psaini_();
 
-    //void idspin_(int&, int&, int&, int&);
-    //  void iclass_(int&, int&);
+  // void idspin_(int&, int&, int&, int&);
+  //  void iclass_(int&, int&);
   void emsini_(double&, int&, int&);
   void paramini_(int&);
   void xsigma_();
-    
+
   //
   //  cross section from tables
   //
@@ -478,38 +478,37 @@ namespace epos {
     float sigelaaa;
     float sigcutaa;
     float sigdd;
-    } hadr5_;
-
-    // integer      mxnody,nrnody,nody
-    // parameter(mxnody=200)
-    // common/nodcy/nrnody,nody(mxnody)
-    unsigned int constexpr mxnody = 200;
-    extern struct {
-      int nrnody;
-      int nody[mxnody];
-    } nodcy_;
-
-
-      // integer      iclpro,icltar,iclegy
-      // common/had10/iclpro,icltar,iclegy
-    extern struct {
-      int iclpro;
-      int icltar;
-      int iclegy;
-    } had10_;
-
-    /**
-     Small helper class to provide a data-directory name in the format eposlhc expects
-    */
-    class datadir {
-    private:
-      datadir operator=(const std::string& dir);
-      datadir operator=(const datadir&);
-
-    public:
-      datadir(const std::string& dir);
-      char data[500];
-      int length;
+  } hadr5_;
+
+  // integer      mxnody,nrnody,nody
+  // parameter(mxnody=200)
+  // common/nodcy/nrnody,nody(mxnody)
+  unsigned int constexpr mxnody = 200;
+  extern struct {
+    int nrnody;
+    int nody[mxnody];
+  } nodcy_;
+
+  // integer      iclpro,icltar,iclegy
+  // common/had10/iclpro,icltar,iclegy
+  extern struct {
+    int iclpro;
+    int icltar;
+    int iclegy;
+  } had10_;
+
+  /**
+   Small helper class to provide a data-directory name in the format eposlhc expects
+  */
+  class datadir {
+  private:
+    datadir operator=(const std::string& dir);
+    datadir operator=(const datadir&);
+
+  public:
+    datadir(const std::string& dir);
+    char data[500];
+    int length;
   };
   }
 } // namespace epos
diff --git a/tests/modules/testEpos.cpp b/tests/modules/testEpos.cpp
index 8e54d72f0..c5ed8743c 100644
--- a/tests/modules/testEpos.cpp
+++ b/tests/modules/testEpos.cpp
@@ -44,7 +44,8 @@ TEST_CASE("Epos", "[processes]") {
   SECTION("Corsika -> Epos") {
     CHECK(corsika::epos::convertToEpos(Electron::code) ==
           corsika::epos::EposCode::Electron);
-    // check if particle code is correct for common particles that interact (secret epos knowledge)
+    // check if particle code is correct for common particles that interact (secret epos
+    // knowledge)
     CHECK(corsika::epos::convertToEposRaw(Proton::code) == 1120);
     CHECK(corsika::epos::convertToEposRaw(PiPlus::code) == 120);
     CHECK(corsika::epos::convertToEposRaw(KPlus::code) == 130);
@@ -119,8 +120,7 @@ auto sumMomentum(TStackView const& view, CoordinateSystemPtr const& vCS) {
   return sum;
 }
 
-auto sqs2elab(HEPEnergyType const sqs, HEPEnergyType const ma,
-              HEPEnergyType const mb){
+auto sqs2elab(HEPEnergyType const sqs, HEPEnergyType const ma, HEPEnergyType const mb) {
   return (sqs * sqs - ma * ma - mb * mb) / 2. / mb;
 }
 
@@ -135,20 +135,20 @@ TEST_CASE("EposInterface", "[processes]") {
 
   RNGManager::getInstance().registerRandomStream("epos");
 
-  SECTION("InteractionInterface - random number"){
+  SECTION("InteractionInterface - random number") {
     auto const rndm = ::epos::rangen_();
-    CHECK(rndm>0);
-    CHECK(rndm<1);
+    CHECK(rndm > 0);
+    CHECK(rndm < 1);
   }
-  
+
   SECTION("InteractionInterface - valid targets") {
 
     Interaction model;
     // eposlhc accepts protons or nuclei with 4<=A<=18 as targets
     CHECK_FALSE(model.isValidTarget(Code::Electron));
     CHECK(model.isValidTarget(Code::Hydrogen));
-    //CHECK_FALSE(model.isValidTarget(Code::Deuterium));
-    //CHECK_FALSE(model.isValidTarget(Code::Helium3));
+    // CHECK_FALSE(model.isValidTarget(Code::Deuterium));
+    // CHECK_FALSE(model.isValidTarget(Code::Helium3));
     CHECK(model.isValidTarget(Code::Helium));
     CHECK_FALSE(model.isValidTarget(Code::Iron));
     CHECK(model.isValidTarget(Code::Oxygen));
@@ -163,7 +163,7 @@ TEST_CASE("EposInterface", "[processes]") {
     CHECK(xs_prod_pp == xs_prod_pHydrogen);
     CHECK(xs_prod_pp == xs_prod_pn);
     CHECK(xs_ela_pp == xs_ela_pHydrogen);
-    CHECK(xs_ela_pn == xs_ela_pHydrogen);    
+    CHECK(xs_ela_pn == xs_ela_pHydrogen);
   }
 
   SECTION("InteractionInterface - hadron cross sections") {
@@ -187,7 +187,7 @@ TEST_CASE("EposInterface", "[processes]") {
     auto const [xs_prod2, xs_ela2] =
         model.getCrossSectionLab(Code::KPlus, 0, 0, Code::Proton, 1, 1,
                                  sqs2elab(7_TeV, KPlus::mass, Proton::mass));
-    CHECK(xs_prod2 / 1_mb == Approx(45.7).margin(2.1));    
+    CHECK(xs_prod2 / 1_mb == Approx(45.7).margin(2.1));
   }
 
   SECTION("InteractionInterface - nuclear cross sections") {
@@ -210,7 +210,7 @@ TEST_CASE("EposInterface", "[processes]") {
         Oxygen::nucleus_A, Oxygen::nucleus_Z, 400_GeV);
     CHECK(xs_prod2 / xs_prod3 == 1);
   }
-  
+
   SECTION("InteractionInterface - low energy") {
 
     const HEPEnergyType P0 = 60_GeV;
@@ -226,7 +226,7 @@ TEST_CASE("EposInterface", "[processes]") {
     model.doInteraction(view);
 
     auto const pSum = sumMomentum(view, cs);
-    
+
     CHECK(pSum.getComponents(cs).getX() / P0 == Approx(1).margin(0.05));
     CHECK(pSum.getComponents(cs).getY() / 1_GeV == Approx(0).margin(1e-4));
     CHECK(pSum.getComponents(cs).getZ() / 1_GeV == Approx(0).margin(1e-4));
@@ -234,10 +234,9 @@ TEST_CASE("EposInterface", "[processes]") {
     CHECK((pSum - plab).getNorm() / 1_GeV ==
           Approx(0).margin(plab.getNorm() * 0.05 / 1_GeV));
     CHECK(pSum.getNorm() / P0 == Approx(1).margin(0.05));
-    
+
     [[maybe_unused]] const GrammageType length = model.getInteractionLength(particle);
     CHECK(length / 1_g * 1_cm * 1_cm == Approx(93.3).margin(0.1));
-
   }
 
   SECTION("InteractionInterface - nuclear projectile") {
@@ -255,7 +254,7 @@ TEST_CASE("EposInterface", "[processes]") {
     model.doInteraction(view);
 
     auto const pSum = sumMomentum(view, cs);
-    
+
     CHECK(pSum.getComponents(cs).getX() / P0 == Approx(1).margin(0.05));
     CHECK(pSum.getComponents(cs).getY() / 1_GeV == Approx(0).margin(1e-4));
     CHECK(pSum.getComponents(cs).getZ() / 1_GeV == Approx(0).margin(1e-4));
@@ -263,9 +262,8 @@ TEST_CASE("EposInterface", "[processes]") {
     CHECK((pSum - plab).getNorm() / 1_GeV ==
           Approx(0).margin(plab.getNorm() * 0.05 / 1_GeV));
     CHECK(pSum.getNorm() / P0 == Approx(1).margin(0.05));
-    
+
     [[maybe_unused]] const GrammageType length = model.getInteractionLength(particle);
     CHECK(length / 1_g * 1_cm * 1_cm == Approx(12.8).margin(4.1));
-
   }
 }
-- 
GitLab