diff --git a/Processes/CONEXSourceCut/CMakeLists.txt b/Processes/CONEXSourceCut/CMakeLists.txt index f0afca985805bc8498fcfff49e4185d52d032db6..d1d926c2f2c22e43165400f2a38edeff8459aafc 100644 --- a/Processes/CONEXSourceCut/CMakeLists.txt +++ b/Processes/CONEXSourceCut/CMakeLists.txt @@ -21,7 +21,6 @@ set_target_properties ( PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION 1 -# PUBLIC_HEADER "${MODEL_HEADERS}" ) # target dependencies on other libraries (also the header onlys) @@ -31,6 +30,7 @@ target_link_libraries ( CORSIKAparticles CORSIKAprocesssequence CORSIKAsetup + C8::ext::conex ) target_include_directories ( diff --git a/Processes/CONEXSourceCut/CONEXSourceCut.cc b/Processes/CONEXSourceCut/CONEXSourceCut.cc index 0c53e60dc65f01f67f8243041f659685c9f61c54..9c83af267997a694513e2ee138be925a65cf2288 100644 --- a/Processes/CONEXSourceCut/CONEXSourceCut.cc +++ b/Processes/CONEXSourceCut/CONEXSourceCut.cc @@ -20,12 +20,6 @@ using namespace corsika::units::si; using namespace corsika::particles; using namespace corsika::setup; -// RU, after the cleanup it seems there are just few direct calls to CONEX left: -// show_ -// HadronCascade_(id, nshtot_, zero, iCEmode); -// SolveMomentEquations_(zero); -// and a new "ini" function - corsika::process::EProcessReturn CONEXSourceCut::DoSecondaries( corsika::setup::StackView& vS) { @@ -95,13 +89,14 @@ void CONEXSourceCut::Init() {} void CONEXSourceCut::SolveCE() { int zero = 0; int iCEmode = 1; - int id =0; // RU - HadronCascade_(id, nshtot_, zero, iCEmode); - SolveMomentEquations_(zero); + int id =0; // RU: max, fix this + int nshtot_ = 0;//RU: max, fix this + conex::hadroncascade_(id, nshtot_, zero, iCEmode); + conex::solvemomentequations_(zero); // RU: this here is from cxroot, - const int nX = get_number_of_depth_bins_(); // make sure this works! + const int nX = conex::get_number_of_depth_bins_(); // make sure this works! int icut = 1; int icutg = 2; @@ -115,20 +110,13 @@ void CONEXSourceCut::SolveCE() { Mu[maxX], dMu[maxX], Gamma[maxX], Electrons[maxX], Hadrons[maxX], EGround[3], fitpars[13], currlgE, Xmx, Nmx, XmxdEdX, dEdXmx ; - get_shower_data_(icut, iSec, nX, X[0], N[0], fitpars[0], H[0], D[0]); - get_shower_edep_(icut, nX, dEdX[0], EGround[0]); - get_shower_muon_(icutm, nX, Mu[0], dMu[0]); - get_shower_gamma_(icutg, nX, Gamma[0]); - get_shower_electron_(icute, nX, Electrons[0]); - get_shower_hadron_(icuth, nX, Hadrons[0]); + 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]); - /*fConexInterface->GetShowerData(icut, iSec, nX, X[0], N[0], fitpars[0], H[0], D[0]); - fConexInterface->GetdEdXProfile(icut, nX, dEdX[0], EGround[0]); - fConexInterface->GetMuonProfile(icutm, nX, Mu[0], dMu[0]); - fConexInterface->GetGammaProfile(icutg, nX, Gamma[0]); - fConexInterface->GetElectronProfile(icute, nX, Electrons[0]); - fConexInterface->GetHadronProfile(icuth, nX, Hadrons[0]); - */ } // RU: move all the non-C8 code from the following c++ function into a new file. Here we only want to have a single function call to CONEX left. diff --git a/Processes/CONEXSourceCut/CONEXSourceCut.h b/Processes/CONEXSourceCut/CONEXSourceCut.h index 477261c585c24f01002aceebaf8e82b824beaf72..ea974593e4fa0a0a2a981bbbc8c3270edfe68830 100644 --- a/Processes/CONEXSourceCut/CONEXSourceCut.h +++ b/Processes/CONEXSourceCut/CONEXSourceCut.h @@ -23,45 +23,26 @@ namespace conex { extern "C" { - extern struct { - double eecut; - double epcut; - double ehcut; - double emcut; - } cxcut_; + // ipart,energy,theta,phi,dimpact,ioseed + void conexrun_(int& ipart, double& energy, double& theta, double& phi, double& dimpact, + int ioseed[3]); + void conexcascade_(); + void hadroncascade_(int&, int&, int&, int&); + void solvemomentequations_(int&); + void show_(int& iqi, double& ei, double& xmi, double& ymi, double& zmi, double& dmi, + double& xi, double& yi, double& zi, double& tmi, double& ui, double& vi, + double& wi, int& iri, double& wti, int& latchi); - extern struct { - double feecut_; - double fehcut_; - double femcut_; - } cxsubcut_; + int get_number_of_depth_bins_(); - extern struct { - double eprima_; - double thetas_; - double costhet_; - double phisho_; - int muse; - int musz; - double c2bas; - double sinthet; - double sinphi; - double XminSlant; - double HGrd; - double distMaxi; - } cxbas4_; - - // ipart,energy,theta,phi,dimpact,ioseed - void conexrun_(int& ipart, double& energy, double& theta, double& phi, double& dimpact, - int ioseed[3]); - void conexcascade_(); - void hadroncascade_(int&, int&, int&, int&); - void solvemomentequations_(int&); - void show_(int& iqi, double& ei, double& xmi, double& ymi, double& zmi, double& dmi, - double& xi, double& yi, double& zi, double& tmi, double& ui, double& vi, - double& wi, int& iri, double& wti, int& latchi); + void get_shower_data_(const int&, const int&, const int&, float&, float&, + float&, float&, float&); + void get_shower_edep_(const int&, const int&, float&, float&); + void get_shower_muon_(const int&, const int&, float&, float&); + void get_shower_gamma_(const int&, const int&, float&); + 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 diff --git a/ThirdParty/CMakeLists.txt b/ThirdParty/CMakeLists.txt index 775ffd7a7175fdba7aadb628aba353fde2ede429..f0c73e78c39a002335865f1ef05ef562d1a1cdb5 100644 --- a/ThirdParty/CMakeLists.txt +++ b/ThirdParty/CMakeLists.txt @@ -257,7 +257,7 @@ else () GIT_REPOSITORY https://gitlab.ikp.kit.edu/AirShowerPhysics/cxroot.git GIT_SUBMODULES "" GIT_TAG origin/master - GIT_SHALLOW 1 + GIT_SHALLOW 5 GIT_PROGRESS 1 SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/cxroot/source INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/cxroot/source