From 458f9b0e9df0ac0c4bc6d2d71c3226c0623609c0 Mon Sep 17 00:00:00 2001
From: Felix Riehn <felix@matilda>
Date: Mon, 17 May 2021 15:28:07 +0100
Subject: [PATCH] logger

---
 corsika/detail/modules/epos/Interaction.inl | 163 ++++++++++----------
 corsika/modules/epos/Interaction.hpp        |   1 +
 2 files changed, 83 insertions(+), 81 deletions(-)

diff --git a/corsika/detail/modules/epos/Interaction.inl b/corsika/detail/modules/epos/Interaction.inl
index 4487084b7..a28c6c8ac 100644
--- a/corsika/detail/modules/epos/Interaction.inl
+++ b/corsika/detail/modules/epos/Interaction.inl
@@ -33,7 +33,8 @@ namespace corsika::epos {
     if (dataPath == "") {
       if (std::getenv("CORSIKA_DATA")) {
         data_path_ = std::string(std::getenv("CORSIKA_DATA")) + "/EPOS/";
-        CORSIKA_LOG_DEBUG("Searching for EPOSLHC data tables in {}", data_path_);
+        CORSIKA_LOGGER_DEBUG(logger_, "Searching for EPOSLHC data tables in {}",
+                             data_path_);
       }
     }
 
@@ -47,6 +48,8 @@ namespace corsika::epos {
 
   inline void Interaction::initialize_eposlhc_c7() const {
 
+    CORSIKA_LOGGER_DEBUG(logger_, "initializing...");
+
     // corsika7 ini
     int iarg = 0;
     ::epos::aaset_(iarg);
@@ -135,10 +138,10 @@ namespace corsika::epos {
 
   inline void Interaction::initialize_event_CoM(Code const idBeam, Code const idTarget,
                                                 HEPEnergyType const Ecm) const {
-    CORSIKA_LOG_TRACE(
-        "Epos:: initialize event in CoM frame!"
-        " Ecm={}",
-        Ecm);
+    CORSIKA_LOGGER_TRACE(logger_,
+                         "initialize event in CoM frame!"
+                         " Ecm={}",
+                         Ecm);
     ::epos::lept1_.engy = -1.;
     ::epos::enrgy_.ecms = -1.;
     ::epos::enrgy_.elab = -1.;
@@ -146,12 +149,12 @@ namespace corsika::epos {
     ::epos::hadr1_.pnll = -1.;
 
     ::epos::enrgy_.ecms = Ecm / 1_GeV;
-    
-    CORSIKA_LOG_TRACE(
-        "Epos::initialize_event: inside EPOS: "
-        "Ecm={}, "
-        "Elab={}",
-        ::epos::enrgy_.ecms, ::epos::enrgy_.elab);
+
+    CORSIKA_LOGGER_TRACE(logger_,
+                         "initialize_event: inside EPOS: "
+                         "Ecm={}, "
+                         "Elab={}",
+                         ::epos::enrgy_.ecms, ::epos::enrgy_.elab);
 
     configure_particles(idBeam, idTarget);
     ::epos::ainit_();
@@ -159,10 +162,10 @@ namespace corsika::epos {
 
   inline void Interaction::initialize_event_Lab(Code const idBeam, Code const idTarget,
                                                 HEPEnergyType const Plab) const {
-    CORSIKA_LOG_TRACE(
-        "Epos:: initialize event in lab. frame!"
-        " Plab per nuc={} GeV",
-        Plab / 1_GeV);
+    CORSIKA_LOGGER_TRACE(logger_,
+                         "initialize event in lab. frame!"
+                         " Plab per nuc={} GeV",
+                         Plab / 1_GeV);
     ::epos::lept1_.engy = -1.;
     ::epos::enrgy_.ecms = -1.;
     ::epos::enrgy_.elab = -1.;
@@ -172,12 +175,12 @@ namespace corsika::epos {
     // hadron-nucleon momentum
     ::epos::hadr1_.pnll = float(Plab / 1_GeV);
 
-    CORSIKA_LOG_TRACE(
-        "Epos::initialize_event: inside EPOS: "
-        "Ecm={}, "
-        "Elab={}, "
-        "Pnll={}",
-        ::epos::enrgy_.ecms, ::epos::enrgy_.elab, ::epos::hadr1_.pnll);
+    CORSIKA_LOGGER_TRACE(logger_,
+                         "initialize_event: inside EPOS: "
+                         "Ecm={}, "
+                         "Elab={}, "
+                         "Pnll={}",
+                         ::epos::enrgy_.ecms, ::epos::enrgy_.elab, ::epos::hadr1_.pnll);
 
     configure_particles(idBeam, idTarget);
     ::epos::ainit_();
@@ -185,12 +188,12 @@ namespace corsika::epos {
 
   inline void Interaction::configure_particles(Code const idBeam,
                                                Code const idTarget) const {
-    CORSIKA_LOG_TRACE(
-        "configure_particles: setting "
-        "Beam={} "
-        "Target={}",
-        idBeam, idTarget);
-    
+    CORSIKA_LOGGER_TRACE(logger_,
+                         "configure_particles: setting "
+                         "Beam={} "
+                         "Target={}",
+                         idBeam, idTarget);
+
     //   idprojin = idtrafo("pdg","nxs",idpro)
     //   if (idpro.ne.2212) izpro = -1
     //   laproj = izpro      !proj Z
@@ -227,31 +230,32 @@ namespace corsika::epos {
     } else {
       throw std::runtime_error("Epos: configure_particles: target outside range!");
     }
-    CORSIKA_LOG_TRACE(
-        "configure_particles: inside EPOS: "
-        "Id beam={}, "
-        "Z beam={}, "
-        "A beam={}, "
-        "Id target={}, "
-        "Z target={}, "
-        "A target={}",
-        ::epos::hadr25_.idprojin, ::epos::nucl1_.laproj, ::epos::nucl1_.maproj,
-        ::epos::hadr25_.idtargin, ::epos::nucl1_.latarg, ::epos::nucl1_.matarg);
+    CORSIKA_LOGGER_TRACE(logger_,
+                         "configure_particles: inside EPOS: "
+                         "Id beam={}, "
+                         "Z beam={}, "
+                         "A beam={}, "
+                         "Id target={}, "
+                         "Z target={}, "
+                         "A target={}",
+                         ::epos::hadr25_.idprojin, ::epos::nucl1_.laproj,
+                         ::epos::nucl1_.maproj, ::epos::hadr25_.idtargin,
+                         ::epos::nucl1_.latarg, ::epos::nucl1_.matarg);
   }
 
   inline Interaction::~Interaction() {
-    CORSIKA_LOG_DEBUG("Epos::Interaction n={} ", count_);
+    CORSIKA_LOGGER_DEBUG(logger_, "n={} ", count_);
   }
 
   inline std::tuple<corsika::CrossSectionType, corsika::CrossSectionType>
   Interaction::getCrossSection(const corsika::Code BeamId, const corsika::Code TargetId,
                                const corsika::HEPEnergyType EnergyCOM) const {
-    CORSIKA_LOG_DEBUG(
-        "getCrossSection: input:"
-        " beam={},"
-        " target={},"
-        " Ecm={:4.3f} GeV,",
-        BeamId, TargetId, EnergyCOM / 1_GeV);
+    CORSIKA_LOGGER_DEBUG(logger_,
+                         "getCrossSection: input:"
+                         " beam={},"
+                         " target={},"
+                         " Ecm={:4.3f} GeV,",
+                         BeamId, TargetId, EnergyCOM / 1_GeV);
 
     const int iBeam = corsika::epos::getEposXSCode(
         BeamId); // 0 (can not interact, 1: proton-like, 2: pion-like, 3:kaon-like)
@@ -287,11 +291,11 @@ namespace corsika::epos {
     //float sigTot, sigProd, sigEla, sigCut = 0;
     //::epos::crseaaepos_(sigTot, sigProd, sigCut, sigEla);
 
-    CORSIKA_LOG_DEBUG(
-        "getCrossSection: output:"
-        " sigProd={} mb,"
-        " sigEla={} mb",
-        sigProd, sigEla);
+    CORSIKA_LOGGER_DEBUG(logger_,
+                         "getCrossSection: output:"
+                         " sigProd={} mb,"
+                         " sigEla={} mb",
+                         sigProd, sigEla);
 
     return std::make_tuple(sigProd * 1_mb, sigEla * 1_mb);
 
@@ -323,12 +327,13 @@ namespace corsika::epos {
 
     const corsika::Code corsikaBeamId = projectile.getPID();
     const bool kInteraction = corsika::epos::canInteract(corsikaBeamId);
-    CORSIKA_LOG_DEBUG(
-        "Interaction: LambdaInt: \n"
-        " input energy: {} GeV "
-        " beam can interact: {} "
-        " beam pid: {}",
-        projectile.getEnergy() / 1_GeV, kInteraction, projectile.getPID());
+    CORSIKA_LOGGER_DEBUG(logger_,
+                         "InteractionLength: input: \n"
+                         " energy: {} GeV "
+                         " beam can interact: {} "
+                         " beam pid: {}",
+                         projectile.getEnergy() / 1_GeV, kInteraction,
+                         projectile.getPID());
 
     if (kInteraction) {
       // get target from environment
@@ -363,18 +368,14 @@ namespace corsika::epos {
             return std::get<0>(this->getCrossSection(corsikaBeamId, targetID, ECoM));
           });
 
-      CORSIKA_LOG_DEBUG(
-          "Interaction: "
-          "IntLength: weighted CrossSection (mb): {} ",
-          weightedProdCrossSection / 1_mb);
+      CORSIKA_LOGGER_DEBUG(logger_, "InteractionLength: weighted CrossSection (mb): {} ",
+                           weightedProdCrossSection / 1_mb);
 
       // calculate interaction length in medium
       GrammageType const int_length = mediumComposition.getAverageMassNumber() *
                                       constants::u / weightedProdCrossSection;
-      CORSIKA_LOG_DEBUG(
-          "Interaction: "
-          "interaction length (g/cm2): {} ",
-          int_length / (0.001_kg) * 1_cm * 1_cm);
+      CORSIKA_LOGGER_DEBUG(logger_, "interaction length (g/cm2): {} ",
+                           int_length / (0.001_kg) * 1_cm * 1_cm);
 
       return int_length;
     }
@@ -408,10 +409,7 @@ namespace corsika::epos {
 
       HEPEnergyType const projectileMomentumLabPerNucleon = projectileMomentum / beamA;
 
-      CORSIKA_LOG_DEBUG(
-          "ProcessEPOS: "
-          "DoInteraction: {} interaction ",
-          corsikaBeamId);
+      CORSIKA_LOGGER_DEBUG(logger_, "DoInteraction: {} interaction ", corsikaBeamId);
 
       // define target
       // for Sibyll is always a single nucleon
@@ -420,11 +418,11 @@ namespace corsika::epos {
       const auto pTargetLab = MomentumVector(originalCS, 0_GeV, 0_GeV, 0_GeV);
       const FourVector PtargLab(eTargetLab, pTargetLab);
 
-      CORSIKA_LOG_DEBUG(
+      CORSIKA_LOGGER_DEBUG(logger_,
           "Interaction: ebeam lab: {} GeV"
           "Interaction: pbeam lab: {} GeV",
           eProjectileLab / 1_GeV, pProjectileLab.getComponents());
-      CORSIKA_LOG_DEBUG(
+      CORSIKA_LOGGER_DEBUG(logger_,
           "Interaction: etarget lab: {} GeV "
           "Interaction: ptarget lab: {} GeV",
           eTargetLab / 1_GeV, pTargetLab.getComponents() / 1_GeV);
@@ -444,20 +442,22 @@ namespace corsika::epos {
       // boost target
       [[maybe_unused]] auto const PtargCoM = boost.toCoM(PtargLab);
 
-      CORSIKA_LOG_DEBUG(
+      CORSIKA_LOGGER_DEBUG(
+          logger_,
           "Interaction: ebeam CoM: {} GeV "
           "Interaction: pbeam CoM: {} GeV ",
           PprojCoM.getTimeLikeComponent() / 1_GeV,
           PprojCoM.getSpaceLikeComponents().getComponents(csPrime) / 1_GeV);
-      CORSIKA_LOG_DEBUG(
+      CORSIKA_LOGGER_DEBUG(
+          logger_,
           "Interaction: etarget CoM: {} GeV "
           "Interaction: ptarget CoM: {} GeV ",
           PtargCoM.getTimeLikeComponent() / 1_GeV,
           PtargCoM.getSpaceLikeComponents().getComponents(csPrime) / 1_GeV);
 
-      CORSIKA_LOG_DEBUG("Interaction: position of interaction: {} ",
-                        pOrig.getCoordinates());
-      CORSIKA_LOG_DEBUG("Interaction: time: {} ", tOrig);
+      CORSIKA_LOGGER_DEBUG(logger_, "Interaction: position of interaction: {} ",
+                           pOrig.getCoordinates());
+      CORSIKA_LOGGER_DEBUG(logger_, "Interaction: time: {} ", tOrig);
 
       HEPEnergyType Etot = eProjectileLab + eTargetLab;
       MomentumVector Ptot = projectile.getMomentum();
@@ -486,7 +486,7 @@ namespace corsika::epos {
 
       const auto targetCode =
           mediumComposition.sampleTarget(cross_section_of_components, RNG_);
-      CORSIKA_LOG_DEBUG("Interaction: target selected: {} ", targetCode);
+      CORSIKA_LOGGER_DEBUG(logger_, "Interaction: target selected: {} ", targetCode);
 
       initialize_event_Lab(corsikaBeamId, targetCode, projectileMomentumLabPerNucleon);
 
@@ -548,7 +548,7 @@ namespace corsika::epos {
 
       // secondaries
       EposStack es;
-      CORSIKA_LOG_DEBUG("EPOSLHC number of particles: {}", es.getSize());
+      CORSIKA_LOGGER_DEBUG(logger_, "number of particles: {}", es.getSize());
       // int i=-1;
       for (auto& psec : es) {
         //++i;
@@ -569,16 +569,17 @@ namespace corsika::epos {
         momentum.rebase(originalCS); // transform back into standard lab frame
 
         auto const pid = corsika::epos::convertFromEpos(psec.getPID());
-        CORSIKA_LOG_DEBUG(
-            " id= {}"
-            " p= {}",
-            pid, momentum.getComponents() / 1_GeV);
+        CORSIKA_LOGGER_DEBUG(logger_,
+                             " id= {}"
+                             " p= {}",
+                             pid, momentum.getComponents() / 1_GeV);
         auto pnew =
             view.addSecondary(std::make_tuple(pid, energy, momentum, pOrig, tOrig));
         Plab_final += pnew.getMomentum();
         Elab_final += pnew.getEnergy();
       }
-      CORSIKA_LOG_DEBUG(
+      CORSIKA_LOGGER_DEBUG(
+          logger_,
           "conservation (all GeV): Ecm_final= n/a" /* << Ecm_final / 1_GeV*/
           ", Elab_final={}"
           ", Plab_final={}",
diff --git a/corsika/modules/epos/Interaction.hpp b/corsika/modules/epos/Interaction.hpp
index 234cf8bee..e3ed357b3 100644
--- a/corsika/modules/epos/Interaction.hpp
+++ b/corsika/modules/epos/Interaction.hpp
@@ -57,6 +57,7 @@ namespace corsika::epos {
     
   private:
     default_prng_type& RNG_ = RNGManager::getInstance().getRandomStream("epos");
+    std::shared_ptr<spdlog::logger> logger_ = get_logger("corsika_epos_Interaction");
     HEPEnergyType const minEnergyCoM_ = -10. * 1e9 * electronvolt;
     HEPEnergyType const maxEnergyCoM_ = -1.e6 * 1e9 * electronvolt;
     int const maxTargetMassNumber_ = 20;
-- 
GitLab