diff --git a/Processes/ParticleCut/ParticleCut.cc b/Processes/ParticleCut/ParticleCut.cc
index ca807889446e6ea24ab3819609c4b083b330303e..8a350f259ecd3267ac2af968377118a40584f8e1 100644
--- a/Processes/ParticleCut/ParticleCut.cc
+++ b/Processes/ParticleCut/ParticleCut.cc
@@ -86,8 +86,7 @@ namespace corsika::process {
       return is_inv;
     }
 
-    template <typename TSecondaries>
-    EProcessReturn ParticleCut::DoSecondaries(TSecondaries& vS) {
+    EProcessReturn ParticleCut::DoSecondaries(corsika::setup::StackView& vS) {
       auto p = vS.begin();
       while (p != vS.end()) {
         const Code pid = p.GetPID();
diff --git a/Processes/ParticleCut/ParticleCut.h b/Processes/ParticleCut/ParticleCut.h
index 0ed8b5a26e8c5972ee95fbe065f0ceaa5e0860d3..6d5f7a685cccbce7f2e079a3c291f90dbf20039b 100644
--- a/Processes/ParticleCut/ParticleCut.h
+++ b/Processes/ParticleCut/ParticleCut.h
@@ -13,6 +13,7 @@
 
 #include <corsika/particles/ParticleProperties.h>
 #include <corsika/process/SecondariesProcess.h>
+#include <corsika/setup/SetupStack.h>
 #include <corsika/units/PhysicalUnits.h>
 
 namespace corsika::process {
@@ -32,8 +33,7 @@ namespace corsika::process {
           : fECut(vCut) {}
 
       bool ParticleIsInvisible(particles::Code) const;
-      template <typename TSecondaries>
-      EProcessReturn DoSecondaries(TSecondaries&);
+      EProcessReturn DoSecondaries(corsika::setup::StackView&);
 
       template <typename TParticle>
       bool ParticleIsBelowEnergyCut(TParticle const&) const;