diff --git a/Documentation/Examples/cascade_example.cc b/Documentation/Examples/cascade_example.cc
index c2cc3c4f49f0ce60b089a9e3b893151e6b7464e8..d5a7097b17d0e6ca6112b1143ed7d9f9a8f191e1 100644
--- a/Documentation/Examples/cascade_example.cc
+++ b/Documentation/Examples/cascade_example.cc
@@ -135,7 +135,8 @@ int main() {
   process::sibyll::Interaction sibyll;
   process::sibyll::NuclearInteraction sibyllNuc(sibyll, env);
   process::sibyll::Decay decay;
-  process::particle_cut::ParticleCut cut(20_GeV);
+  // cascade with only HE model ==> HE cut
+  process::particle_cut::ParticleCut cut(80_GeV);
 
   process::track_writer::TrackWriter trackWriter("tracks.dat");
   process::energy_loss::EnergyLoss eLoss;
@@ -158,8 +159,4 @@ int main() {
        << "relative difference (%): " << (Efinal / E0 - 1) * 100 << endl;
   cout << "total dEdX energy (GeV): " << eLoss.GetTotal() / 1_GeV << endl
        << "relative difference (%): " << eLoss.GetTotal() / E0 * 100 << endl;
-
-  // basic check for unit-tests
-  assert(cut.GetNumberEmParticles() == 127);
-  assert(cut.GetNumberInvParticles() == 116);
 }
diff --git a/Framework/Particles/ParticleData.xml b/Framework/Particles/ParticleData.xml
index 6c8c3d0a06fec27481d508c030ddad6a7df8f925..0102f3e261ceee58b0b94003ec940d37231dd10c 100644
--- a/Framework/Particles/ParticleData.xml
+++ b/Framework/Particles/ParticleData.xml
@@ -860,6 +860,7 @@
  <channel onMode="1" bRatio="0.0016900" products="111 111 111"/> 
  <channel onMode="1" bRatio="0.0001076" products="13 -13 22"/> 
 </particle> 
+-->
  
 <particle id="333" name="phi" spinType="3" chargeType="0" colType="0" 
           m0="1.01946" mWidth="0.00426" mMin="1.00000" mMax="1.04000"> 
@@ -878,6 +879,7 @@
  <channel onMode="1" bRatio="0.0000470" products="223 111"/> 
 </particle> 
  
+<!--
 <particle id="335" name="f'_2(1525)" spinType="5" chargeType="0" colType="0" 
           m0="1.52500" mWidth="0.07300" mMin="1.10000" mMax="2.00000"> 
  <channel onMode="1" bRatio="0.4444000" products="321 -321"/> 
diff --git a/Processes/Sibyll/ParticleConversion.h b/Processes/Sibyll/ParticleConversion.h
index a6b31fc8fa980bca74e8af5a62cf2443ca9bc883..62ccdda99f9a6d2f57a0e2b53437d8389f2e71e6 100644
--- a/Processes/Sibyll/ParticleConversion.h
+++ b/Processes/Sibyll/ParticleConversion.h
@@ -13,7 +13,7 @@
 
 #include <corsika/particles/ParticleProperties.h>
 
-#include <map>
+#include <string>
 
 namespace corsika::process::sibyll {
 
@@ -28,7 +28,14 @@ namespace corsika::process::sibyll {
   }
 
   corsika::particles::Code constexpr ConvertFromSibyll(SibyllCode pCode) {
-    return sibyll2corsika[static_cast<SibyllCodeIntType>(pCode) - minSibyll];
+    auto const s = static_cast<SibyllCodeIntType>(pCode);
+    auto const corsikaCode = sibyll2corsika[s - minSibyll];
+    if (corsikaCode == corsika::particles::Code::Unknown) {
+      throw std::runtime_error(std::string("SIBYLL/CORSIKA conversion of ")
+                                   .append(std::to_string(s))
+                                   .append(" impossible"));
+    }
+    return corsikaCode;
   }
 
   int constexpr ConvertToSibyllRaw(corsika::particles::Code pCode) {
@@ -40,7 +47,7 @@ namespace corsika::process::sibyll {
   }
 
   bool constexpr CanInteract(corsika::particles::Code pCode) {
-    return GetSibyllXSCode(pCode) != 0;
+    return GetSibyllXSCode(pCode) > 0;
   }
 
 } // namespace corsika::process::sibyll
diff --git a/Processes/Sibyll/code_generator.py b/Processes/Sibyll/code_generator.py
index cb7d0cb2471c004b84345a544698defbd3e9c9f0..d2ca87c6f221bf169ad080a5dd06295016e025e4 100755
--- a/Processes/Sibyll/code_generator.py
+++ b/Processes/Sibyll/code_generator.py
@@ -64,7 +64,7 @@ def generate_corsika2sibyll(particle_db):
 def generate_corsika2sibyll_xsType(particle_db):    
     string = "std::array<int, {:d}> constexpr corsika2sibyllXStype = {{\n".format(len(particle_db))
     for identifier, pData in particle_db.items():
-        sibCodeXS = pData.get("sibyll_xsType", -1)
+        sibCodeXS = pData.get("sibyll_xsType", 0)
         string += "  {:d}, // {:s}\n".format(sibCodeXS, identifier if sibCodeXS else identifier + " (not implemented in SIBYLL)")
     string += "};\n"
     return string
diff --git a/Processes/Sibyll/sibyll_codes.dat b/Processes/Sibyll/sibyll_codes.dat
index 45aa507f964304a941b2ccf5c257f52e11f46c26..1bc87904bf53354323ce514761e22a868d0111b7 100644
--- a/Processes/Sibyll/sibyll_codes.dat
+++ b/Processes/Sibyll/sibyll_codes.dat
@@ -90,4 +90,5 @@ XiCMinusBar -87 1 1
 OmegaC0 99 0 0
 OmegaC0Bar -99 0 0
 Jpsi 83 0 0
+Phi 33 0 0
 #Unknown 0 0 0
diff --git a/Processes/Sibyll/testSibyll.cc b/Processes/Sibyll/testSibyll.cc
index b0099568795e074ce6bc72e2635eaa1a35c84344..492b6bf3ed455c8ee3c7c599ab16b98cccec0030 100644
--- a/Processes/Sibyll/testSibyll.cc
+++ b/Processes/Sibyll/testSibyll.cc
@@ -45,6 +45,9 @@ TEST_CASE("Sibyll", "[processes]") {
 
     REQUIRE_FALSE(process::sibyll::CanInteract(particles::Electron::GetCode()));
     REQUIRE_FALSE(process::sibyll::CanInteract(particles::SigmaC0::GetCode()));
+
+    REQUIRE_FALSE(process::sibyll::CanInteract(particles::Nucleus::GetCode()));
+    REQUIRE_FALSE(process::sibyll::CanInteract(particles::Helium::GetCode()));
   }
 
   SECTION("cross-section type") {