diff --git a/Processes/Sibyll/ParticleConversion.h b/Processes/Sibyll/ParticleConversion.h index 4265441d3c6b30aa0905613144b48d57a9da776b..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) {