diff --git a/corsika/detail/modules/ParticleCut.inl b/corsika/detail/modules/ParticleCut.inl index 04aff2d69f0e237541c73389a10b5fc7823004b0..9fc69b4a947677128b57b6d33152907bc1ff9e6f 100644 --- a/corsika/detail/modules/ParticleCut.inl +++ b/corsika/detail/modules/ParticleCut.inl @@ -8,7 +8,7 @@ #pragma once -#include <corsika/modules/ParticleCut.hpp> +#include <corsika/framework/core/Logging.hpp> namespace corsika { @@ -148,7 +148,8 @@ namespace corsika { return false; // this particle will not be removed/cut } - inline void ParticleCut::doSecondaries(corsika::setup::StackView& vS) { + template <typename TStackView> + inline void ParticleCut::doSecondaries(TStackView& vS) { auto particle = vS.begin(); while (particle != vS.end()) { if (checkCutParticle(particle)) { particle.erase(); } @@ -156,9 +157,9 @@ namespace corsika { } } - inline ProcessReturn ParticleCut::doContinuous( - corsika::setup::Stack::particle_type& particle, corsika::setup::Trajectory const&, - bool const) { + template <typename TParticle, typename TTrajectory> + inline ProcessReturn ParticleCut::doContinuous(TParticle& particle, TTrajectory const&, + bool const) { CORSIKA_LOG_TRACE("ParticleCut::DoContinuous"); if (checkCutParticle(particle)) { CORSIKA_LOG_TRACE("removing during continuous"); diff --git a/corsika/modules/ParticleCut.hpp b/corsika/modules/ParticleCut.hpp index 7857c691f53024263ab2dd8e284cab8777a9e317..e9df7a602ec974963e8e3bc2ef566c56f19a9020 100644 --- a/corsika/modules/ParticleCut.hpp +++ b/corsika/modules/ParticleCut.hpp @@ -15,9 +15,6 @@ #include <corsika/framework/process/SecondariesProcess.hpp> #include <corsika/framework/process/ContinuousProcess.hpp> -#include <corsika/setup/SetupStack.hpp> -#include <corsika/setup/SetupTrajectory.hpp> - namespace corsika { /** simple ParticleCut process. Goes through the secondaries of an interaction and @@ -52,13 +49,16 @@ namespace corsika { ParticleCut(std::unordered_map<Code const, HEPEnergyType const> const& eCuts, bool const em, bool const inv); - void doSecondaries(corsika::setup::StackView&); + template <typename TStackView> + void doSecondaries(TStackView&); + + template <typename TParticle, typename TTrajectory> ProcessReturn doContinuous( - corsika::setup::Stack::particle_type& vParticle, - corsika::setup::Trajectory const& vTrajectory, + TParticle& vParticle, TTrajectory const& vTrajectory, const bool limitFlag = false); // this is not used for ParticleCut - LengthType getMaxStepLength(corsika::setup::Stack::particle_type const&, - corsika::setup::Trajectory const&) { + + template <typename TParticle, typename TTrajectory> + LengthType getMaxStepLength(TParticle const&, TTrajectory const&) { return meter * std::numeric_limits<double>::infinity(); } diff --git a/tests/modules/testParticleCut.cpp b/tests/modules/testParticleCut.cpp index 94ec3f27f194160547d35fbab2df13007b6c93b2..ea3a8bbe552d874ae5d26d9841caf7b556381e5c 100644 --- a/tests/modules/testParticleCut.cpp +++ b/tests/modules/testParticleCut.cpp @@ -18,6 +18,7 @@ #include <SetupTestStack.hpp> #include <SetupTestTrajectory.hpp> +#include <corsika/setup/SetupTrajectory.hpp> #include <catch2/catch.hpp>