From 54eb6341e1cdcb7c234cabde544838aa155ad95c Mon Sep 17 00:00:00 2001 From: Felix Riehn <felix@matilda> Date: Thu, 22 Sep 2022 18:59:02 +0100 Subject: [PATCH] allow Lead-Lead interactions in epos --- corsika/detail/modules/epos/InteractionModel.inl | 11 +++++++---- corsika/modules/epos/InteractionModel.hpp | 3 +-- tests/modules/testEpos.cpp | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/corsika/detail/modules/epos/InteractionModel.inl b/corsika/detail/modules/epos/InteractionModel.inl index 14ad756e9..f5cd77c48 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 b6701bfb5..3b2d50126 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 2c9c079c1..ac643d9e6 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)); } -- GitLab