diff --git a/Documentation/Examples/em_shower.cc b/Documentation/Examples/em_shower.cc index d83cdacf51cf28cf70a0f97dae8f6a63ae672c91..5bc85b48cb624e96369820257d1a4fd027683dd3 100644 --- a/Documentation/Examples/em_shower.cc +++ b/Documentation/Examples/em_shower.cc @@ -130,9 +130,6 @@ int main(int argc, char** argv) { // setup processes, decays and interactions // PROPOSAL processs proposal{...}; - PROPOSAL::InterpolationDef::path_to_tables = "~/.local/share/PROPOSAL/tables/"; - PROPOSAL::InterpolationDef::path_to_tables_readonly = "~/.local/share/PROPOSAL/tables/"; - process::particle_cut::ParticleCut cut(10_GeV, false, true); process::proposal::Interaction proposal(env, cut); process::proposal::ContinuousProcess em_continuous(env, cut); diff --git a/Documentation/Examples/vertical_EAS.cc b/Documentation/Examples/vertical_EAS.cc index 738bd73e4eb4ed4c09bdfcccf8cb6584c28c4e85..057db325afd06ff77485d66dd14ca52fc31147b8 100644 --- a/Documentation/Examples/vertical_EAS.cc +++ b/Documentation/Examples/vertical_EAS.cc @@ -185,9 +185,6 @@ int main(int argc, char** argv) { decaySibyll.PrintDecayConfig(); // PROPOSAL processs proposal{...}; - PROPOSAL::InterpolationDef::path_to_tables = "~/.local/share/PROPOSAL/tables/"; - PROPOSAL::InterpolationDef::path_to_tables_readonly = "~/.local/share/PROPOSAL/tables/"; - process::particle_cut::ParticleCut cut{60_GeV, false, true}; process::proposal::Interaction proposal(env, cut); process::proposal::ContinuousProcess em_continuous(env, cut); diff --git a/Processes/Proposal/ProposalProcessBase.cc b/Processes/Proposal/ProposalProcessBase.cc index 815f032b533de2aca85587dd036d7d3a43b20417..d2ab2a2209fb5d5e7beac33f957c559383da253a 100644 --- a/Processes/Proposal/ProposalProcessBase.cc +++ b/Processes/Proposal/ProposalProcessBase.cc @@ -18,6 +18,7 @@ #include <memory> #include <random> #include <tuple> +#include <cstdlib> namespace corsika::process::proposal { bool ProposalProcessBase::CanInteract(particles::Code pcode) const { @@ -50,6 +51,12 @@ namespace corsika::process::proposal { PROPOSAL::InterpolationDef::order_of_interpolation = 2; PROPOSAL::InterpolationDef::nodes_cross_section = 100; PROPOSAL::InterpolationDef::nodes_propagate = 1000; + + //! If corsika data exist store interpolation tables to the corresponding + //! path, otherwise interpolation tables would only stored in main memory if + //! no explicit intrpolation def is specified. + if(auto data_path = std::getenv("CORSIKA_DATA")) + PROPOSAL::InterpolationDef::path_to_tables = std::string(data_path) + "/PROPOSAL"; } size_t ProposalProcessBase::hash::operator()(const calc_key_t& p) const noexcept {