diff --git a/corsika/detail/modules/epos/InteractionModel.inl b/corsika/detail/modules/epos/InteractionModel.inl index 14ad756e9c0a5159f7b4bfb789652aeebb4d0aca..f5cd77c48fc06a408d7e930dd8541ac4b4e0fd7f 100644 --- a/corsika/detail/modules/epos/InteractionModel.inl +++ b/corsika/detail/modules/epos/InteractionModel.inl @@ -21,6 +21,7 @@ #include <string> #include <tuple> #include <cmath> +#include "corsika/framework/core/ParticleProperties.hpp" namespace corsika::epos { @@ -64,7 +65,8 @@ namespace corsika::epos { if (!is_nucleus(targetId) && targetId != Code::Neutron && targetId != Code::Proton) { return false; } - if (is_nucleus(targetId) && (get_nucleus_A(targetId) >= maxTargetMassNumber_)) { + if (is_nucleus(targetId) && + (get_nucleus_A(targetId) >= get_nucleus_A(maxNucleus_))) { return false; } if ((minEnergyCoM_ > sqrtS) || (sqrtS > maxEnergyCoM_)) { return false; } @@ -141,9 +143,10 @@ namespace corsika::epos { strcpy(::epos::fname_.fncs, CS.data); ::epos::nfname_.nfncs = CS.length; - // initialiazes maximum energy and mass - initializeEventCoM(Code::Lead, Lead::nucleus_A, Lead::nucleus_Z, Code::Lead, - Lead::nucleus_A, Lead::nucleus_Z, 1_PeV); + // initializes maximum energy and mass + initializeEventCoM( + maxNucleus_, get_nucleus_A(maxNucleus_), get_nucleus_Z(maxNucleus_), maxNucleus_, + get_nucleus_A(maxNucleus_), get_nucleus_Z(maxNucleus_), maxEnergyCoM_); } inline void InteractionModel::initializeEventCoM(Code const idBeam, int const iBeamA, diff --git a/corsika/modules/epos/InteractionModel.hpp b/corsika/modules/epos/InteractionModel.hpp index b6701bfb5423669018975ea6edc47ff33a6b192b..3b2d501267fdc8a5ec2828fa3acf649a68a0ae7e 100644 --- a/corsika/modules/epos/InteractionModel.hpp +++ b/corsika/modules/epos/InteractionModel.hpp @@ -109,8 +109,7 @@ namespace corsika::epos { std::shared_ptr<spdlog::logger> logger_ = get_logger("corsika_epos_Interaction"); HEPEnergyType const minEnergyCoM_ = 6 * 1e9 * electronvolt; HEPEnergyType const maxEnergyCoM_ = 2.e6 * 1e9 * electronvolt; - static unsigned int constexpr maxTargetMassNumber_ = 20; - static unsigned int constexpr minNuclearTargetA_ = 4; + static Code constexpr maxNucleus_ = Code::Lead; }; } // namespace corsika::epos diff --git a/tests/modules/testEpos.cpp b/tests/modules/testEpos.cpp index 2c9c079c17a718b4c91975fa45f83cab19fec867..ac643d9e610e07879568d91d377e4de4668a82d2 100644 --- a/tests/modules/testEpos.cpp +++ b/tests/modules/testEpos.cpp @@ -148,7 +148,7 @@ TEST_CASE("Epos", "modules") { CHECK_FALSE(model.isValid(Code::Proton, Code::Electron, 100_GeV)); CHECK(model.isValid(Code::Proton, Code::Hydrogen, 100_GeV)); CHECK(model.isValid(Code::Proton, Code::Helium, 100_GeV)); - CHECK_FALSE(model.isValid(Code::Proton, Code::Iron, 100_GeV)); + CHECK_FALSE(model.isValid(Code::Proton, Code::Iron, 10_EeV)); CHECK(model.isValid(Code::Proton, Code::Oxygen, 100_GeV)); }