From 9824d30cbd0f9b749aae9d2fa6cebabe0085b0e9 Mon Sep 17 00:00:00 2001
From: ralfulrich <ralf.ulrich@kit.edu>
Date: Tue, 7 Jul 2020 16:39:52 +0200
Subject: [PATCH] runs, but test fails

---
 Processes/CONEXSourceCut/CONEXSourceCut.cc | 27 +++++++++++-----------
 Processes/CONEXSourceCut/CONEXSourceCut.h  |  5 ++++
 2 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/Processes/CONEXSourceCut/CONEXSourceCut.cc b/Processes/CONEXSourceCut/CONEXSourceCut.cc
index 89eaf0f7b..e0c9cd7d7 100644
--- a/Processes/CONEXSourceCut/CONEXSourceCut.cc
+++ b/Processes/CONEXSourceCut/CONEXSourceCut.cc
@@ -77,8 +77,8 @@ corsika::process::EProcessReturn CONEXSourceCut::DoSecondaries(
               << std::endl;
     p.Delete();
 
-    conex::show_(egs_pid, E, x, y, altitude, slantDistance, lateralX, lateralY, slantX,
-                 time, u, v, w, iri, weight, latchin);
+    conex_.Shower(egs_pid, E, x, y, altitude, slantDistance, lateralX, lateralY, slantX,
+	       time, u, v, w, iri, weight, latchin);
   }
 
   return corsika::process::EProcessReturn::eOk;
@@ -91,12 +91,12 @@ void CONEXSourceCut::SolveCE() {
   int iCEmode = 1;
   int id =0; // RU: max, fix this
   int nshtot_ = 0;//RU: max, fix this
-  conex::hadroncascade_(id, nshtot_, zero, iCEmode);
-  conex::solvemomentequations_(zero);
+  conex_.HadronCascade(id, nshtot_, zero, iCEmode);
+  conex_.SolveMomentEquations(zero);
 
   // RU: this here is from cxroot,
 
-  const int nX = conex::get_number_of_depth_bins_(); // make sure this works! 
+  int nX = conex_.GetNumberOfDepthBins(); // make sure this works! 
 
   int icut = 1;
   int icutg = 2;
@@ -120,12 +120,12 @@ void CONEXSourceCut::SolveCE() {
   
   float EGround[3], fitpars[13], currlgE, Xmx, Nmx, XmxdEdX, dEdXmx ;
   
-  conex::get_shower_data_(icut, iSec, nX, X[0], N[0], fitpars[0], H[0], D[0]);
-  conex::get_shower_edep_(icut, nX, dEdX[0], EGround[0]);
-  conex::get_shower_muon_(icutm, nX, Mu[0], dMu[0]);
-  conex::get_shower_gamma_(icutg, nX, Gamma[0]);
-  conex::get_shower_electron_(icute, nX, Electrons[0]);
-  conex::get_shower_hadron_(icuth, nX, Hadrons[0]);
+  conex_.GetShowerData(icut, iSec, nX, X[0], N[0], fitpars[0], H[0], D[0]);
+  conex_.GetdEdXProfile(icut, nX, dEdX[0], EGround[0]);
+  conex_.GetMuonProfile(icutm, nX, Mu[0], dMu[0]);
+  conex_.GetGammaProfile(icutg, nX, Gamma[0]);
+  conex_.GetElectronProfile(icute, nX, Electrons[0]);
+  conex_.GetHadronProfile(icuth, nX, Hadrons[0]);
   
 }
 
@@ -136,7 +136,8 @@ CONEXSourceCut::CONEXSourceCut(geometry::Point center, environment::ShowerAxis s
                                // units::si::GrammageType Xcut,
                                units::si::HEPEnergyType primaryEnergy,
                                particles::PDGCode primaryID)
-    : center_{center}
+  : conex_(ConexDynamicInterface(eSibyll23))
+    , center_{center}
     , showerAxis_{showerAxis}
     , groundDist_{groundDist}
     , conexObservationCS_{std::invoke([&]() {
@@ -182,5 +183,5 @@ CONEXSourceCut::CONEXSourceCut(geometry::Point center, environment::ShowerAxis s
   std::array<int, 3> ioseed{static_cast<int>(rng()), static_cast<int>(rng()),
                             static_cast<int>(rng())};
 
-  conex::conexrun_(ipart, eprima, theta, phi, dimpact, ioseed.data());
+  conex_.ConexRun(ipart, eprima, theta, phi, dimpact, ioseed.data());
 }
diff --git a/Processes/CONEXSourceCut/CONEXSourceCut.h b/Processes/CONEXSourceCut/CONEXSourceCut.h
index ea974593e..22e868883 100644
--- a/Processes/CONEXSourceCut/CONEXSourceCut.h
+++ b/Processes/CONEXSourceCut/CONEXSourceCut.h
@@ -11,6 +11,7 @@
 #ifndef _corsika_process_particle_cut_CONEXSourceCut_h_
 #define _corsika_process_particle_cut_CONEXSourceCut_h_
 
+#define __CORSIKA8__ //must define this conex-internal flag
 #include <ConexDynamicInterface.h>
 
 #include <corsika/environment/ShowerAxis.h>
@@ -22,6 +23,7 @@
 #include <corsika/units/PhysicalUnits.h>
 
 namespace conex {
+/*
   extern "C" {
     // ipart,energy,theta,phi,dimpact,ioseed
     void conexrun_(int& ipart, double& energy, double& theta, double& phi, double& dimpact,
@@ -43,6 +45,7 @@ namespace conex {
     void get_shower_electron_(const int&, const int&, float&);
     void get_shower_hadron_(const int&, const int&, float&);
   }
+*/
   corsika::units::si::LengthType constexpr earthRadius{6371315 *
                                                        corsika::units::si::meter};
 } // namespace conex
@@ -63,6 +66,8 @@ namespace corsika::process {
       void SolveCE();
 
     private:
+      ConexDynamicInterface conex_; 
+
       //! CONEX e.m. particle codes
       static std::array<std::pair<particles::Code, int>, 3> constexpr egs_em_codes_{
           {{particles::Code::Gamma, 0},
-- 
GitLab