diff --git a/Processes/Sibyll/Interaction.h b/Processes/Sibyll/Interaction.h index 8fd2795867f1afcb0c04c2333a7ace0cebe8cdca..fb1334da22e571bc50cf576f5d7cdc0990b413b9 100644 --- a/Processes/Sibyll/Interaction.h +++ b/Processes/Sibyll/Interaction.h @@ -220,7 +220,7 @@ namespace corsika::process::sibyll { for (auto& psib : ss) { ++i; // skip particles that have decayed in Sibyll - if (abs(s_plist_.llist[i]) > 100) continue; + if( psib.HasDecayed()) continue; // transform energy to lab. frame, primitve // compute beta_vec * p_vec diff --git a/Processes/Sibyll/SibStack.h b/Processes/Sibyll/SibStack.h index 7398d40003402d3c45aa83c4b2fc0eae2e9d1fa3..d78273822c700edaaae9e2c6bbefdfbfabb2a9e8 100644 --- a/Processes/Sibyll/SibStack.h +++ b/Processes/Sibyll/SibStack.h @@ -20,7 +20,7 @@ namespace corsika::process::sibyll { void Clear() { s_plist_.np = 0; } int GetSize() const { return s_plist_.np; } -#warning check actual capacity of sibyll stack + int GetCapacity() const { return 8000; } void SetId(const int i, const int v) { s_plist_.llist[i] = v; } @@ -80,6 +80,10 @@ namespace corsika::process::sibyll { corsika::units::hep::EnergyType GetEnergy() const { return GetStackData().GetEnergy(GetIndex()); } + bool HasDecayed() const + { + return abs(GetStackData().GetId(GetIndex()))>100 ? true : false; + } void SetPID(const int v) { GetStackData().SetId(GetIndex(), v); } corsika::process::sibyll::SibyllCode GetPID() const { return static_cast<corsika::process::sibyll::SibyllCode>(