From bddf6ba4aa3f67f67182826bc710a890f560dc7d Mon Sep 17 00:00:00 2001 From: Remy Prechelt <prechelt@hawaii.edu> Date: Tue, 18 May 2021 12:22:08 -1000 Subject: [PATCH] Remove Setup from PROPOSAL. --- .../modules/proposal/ContinuousProcess.inl | 27 +++++++------------ .../detail/modules/proposal/Interaction.inl | 17 +++++------- .../modules/proposal/ProposalProcessBase.inl | 7 ++--- corsika/modules/proposal/Interaction.hpp | 4 --- .../modules/proposal/ProposalProcessBase.hpp | 5 ++-- 5 files changed, 20 insertions(+), 40 deletions(-) diff --git a/corsika/detail/modules/proposal/ContinuousProcess.inl b/corsika/detail/modules/proposal/ContinuousProcess.inl index b8403dc14..e65046c23 100644 --- a/corsika/detail/modules/proposal/ContinuousProcess.inl +++ b/corsika/detail/modules/proposal/ContinuousProcess.inl @@ -16,12 +16,6 @@ #include <corsika/framework/utility/COMBoost.hpp> #include <corsika/framework/core/Logging.hpp> -#include <corsika/setup/SetupEnvironment.hpp> -#include <corsika/setup/SetupStack.hpp> -#include <corsika/setup/SetupTrajectory.hpp> - -#include <iostream> - namespace corsika::proposal { inline void ContinuousProcess::buildCalculator(Code code, @@ -54,13 +48,12 @@ namespace corsika::proposal { calc[std::make_pair(comp.getHash(), code)] = std::move(calculator); } - template <> - inline ContinuousProcess::ContinuousProcess(setup::Environment const& _env) + template <typename TEnvironment> + inline ContinuousProcess::ContinuousProcess(TEnvironment const& _env) : ProposalProcessBase(_env) {} - template <> - inline void ContinuousProcess::scatter(setup::Stack::particle_type& vP, - HEPEnergyType const& loss, + template <typename TParticle> + inline void ContinuousProcess::scatter(TParticle& vP, HEPEnergyType const& loss, GrammageType const& grammage) { // get or build corresponding calculators @@ -91,9 +84,9 @@ namespace corsika::proposal { vP.setMomentum(MomentumVector(vP_dir.getCoordinateSystem(), vec)); } - template <> - inline ProcessReturn ContinuousProcess::doContinuous(setup::Stack::particle_type& vP, - setup::Trajectory const& vT, + template <typename TParticle, typename TTrajectory> + inline ProcessReturn ContinuousProcess::doContinuous(TParticle& vP, + TTrajectory const& vT, bool const) { if (!canInteract(vP.getPID())) return ProcessReturn::Ok; @@ -119,9 +112,9 @@ namespace corsika::proposal { return ProcessReturn::Ok; } - template <> - inline LengthType ContinuousProcess::getMaxStepLength( - setup::Stack::particle_type const& vP, setup::Trajectory const& vT) { + template <typename TParticle, typename TTrajectory> + inline LengthType ContinuousProcess::getMaxStepLength(TParticle const& vP, + TTrajectory const& vT) { auto const code = vP.getPID(); if (!canInteract(code)) return meter * std::numeric_limits<double>::infinity(); diff --git a/corsika/detail/modules/proposal/Interaction.inl b/corsika/detail/modules/proposal/Interaction.inl index 019d31270..c45059414 100644 --- a/corsika/detail/modules/proposal/Interaction.inl +++ b/corsika/detail/modules/proposal/Interaction.inl @@ -12,10 +12,6 @@ #include <corsika/framework/utility/COMBoost.hpp> #include <corsika/framework/core/PhysicalUnits.hpp> -#include <corsika/setup/SetupEnvironment.hpp> -#include <corsika/setup/SetupStack.hpp> -#include <corsika/setup/SetupTrajectory.hpp> - #include <limits> #include <memory> #include <random> @@ -23,8 +19,8 @@ namespace corsika::proposal { - template <> - inline Interaction::Interaction(setup::Environment const& _env) + template <typename TEnvironment> + inline Interaction::Interaction(TEnvironment const& _env) : ProposalProcessBase(_env) {} inline void Interaction::buildCalculator(Code code, NuclearComposition const& comp) { @@ -52,8 +48,8 @@ namespace corsika::proposal { PROPOSAL::make_interaction(c, true)); } - template <> - inline ProcessReturn Interaction::doInteraction(setup::StackView& view) { + template <typename TStackView> + inline ProcessReturn Interaction::doInteraction(TStackView& view) { auto const projectile = view.getProjectile(); @@ -106,9 +102,8 @@ namespace corsika::proposal { return ProcessReturn::Ok; } - template <> - inline GrammageType Interaction::getInteractionLength( - setup::Stack::particle_type const& projectile) { + template <typename TParticle> + inline GrammageType Interaction::getInteractionLength(TParticle const& projectile) { if (canInteract(projectile.getPID())) { auto c = getCalculator(projectile, calc); diff --git a/corsika/detail/modules/proposal/ProposalProcessBase.inl b/corsika/detail/modules/proposal/ProposalProcessBase.inl index bc497ea94..0633df0c6 100644 --- a/corsika/detail/modules/proposal/ProposalProcessBase.inl +++ b/corsika/detail/modules/proposal/ProposalProcessBase.inl @@ -12,10 +12,6 @@ #include <corsika/framework/core/PhysicalUnits.hpp> #include <corsika/framework/utility/COMBoost.hpp> -#include <corsika/setup/SetupEnvironment.hpp> -#include <corsika/setup/SetupStack.hpp> -#include <corsika/setup/SetupTrajectory.hpp> - #include <cstdlib> #include <iostream> #include <limits> @@ -30,7 +26,8 @@ namespace corsika::proposal { return false; } - inline ProposalProcessBase::ProposalProcessBase(setup::Environment const& _env) + template <typename TEnvironment> + inline ProposalProcessBase::ProposalProcessBase(TEnvironment const& _env) : RNG_(RNGManager::getInstance().getRandomStream("proposal")) { _env.getUniverse()->walk([&](auto& vtn) { if (vtn.hasModelProperties()) { diff --git a/corsika/modules/proposal/Interaction.hpp b/corsika/modules/proposal/Interaction.hpp index 80a8a7864..b6f2fabba 100644 --- a/corsika/modules/proposal/Interaction.hpp +++ b/corsika/modules/proposal/Interaction.hpp @@ -16,12 +16,8 @@ #include <corsika/framework/random/RNGManager.hpp> #include <corsika/framework/random/UniformRealDistribution.hpp> -#include <corsika/media/Environment.hpp> - #include <corsika/modules/proposal/ProposalProcessBase.hpp> -#include <array> - namespace corsika::proposal { //! diff --git a/corsika/modules/proposal/ProposalProcessBase.hpp b/corsika/modules/proposal/ProposalProcessBase.hpp index 3edb90720..d1231a5db 100644 --- a/corsika/modules/proposal/ProposalProcessBase.hpp +++ b/corsika/modules/proposal/ProposalProcessBase.hpp @@ -13,8 +13,6 @@ #include <corsika/framework/core/ParticleProperties.hpp> #include <corsika/framework/random/RNGManager.hpp> -#include <corsika/setup/SetupEnvironment.hpp> - #include <array> namespace corsika::proposal { @@ -83,7 +81,8 @@ namespace corsika::proposal { //! Store cut and nuclear composition of the whole universe in media which are //! required for creating crosssections by proposal. //! - ProposalProcessBase(corsika::setup::Environment const& _env); + template <typename TEnvironment> + ProposalProcessBase(TEnvironment const& _env); //! //! Checks if a particle can be processed by proposal -- GitLab