From 356354fed0e8b26bc283dc9f9553d4ae1e43b6b9 Mon Sep 17 00:00:00 2001 From: Felix Riehn <felix@matilda> Date: Tue, 17 Jan 2023 19:40:44 +0100 Subject: [PATCH] fixed sampling --- .../detail/modules/proposal/HadronicPhotonModel.inl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/corsika/detail/modules/proposal/HadronicPhotonModel.inl b/corsika/detail/modules/proposal/HadronicPhotonModel.inl index c1aa266a0..f4707a0a4 100644 --- a/corsika/detail/modules/proposal/HadronicPhotonModel.inl +++ b/corsika/detail/modules/proposal/HadronicPhotonModel.inl @@ -91,13 +91,15 @@ namespace corsika::proposal { "LE photo-hadronic interaction! implemented via SOPHIA " "assuming a single nucleon as target"); // sample nucleon from nucleus A,Z - double const fProtons = get_nucleus_Z(targetId) / get_nucleus_A(targetId); + double const fProtons = get_nucleus_Z(targetId) / double(get_nucleus_A(targetId)); double const fNeutrons = 1. - fProtons; std::discrete_distribution<int> nucleonChannelDist{fProtons, fNeutrons}; - static corsika::default_prng_type& rng = + corsika::default_prng_type& rng = corsika::RNGManager<>::getInstance().getRandomStream("proposal"); - Code const nucleonId = (nucleonChannelDist(rng) ? Code::Proton : Code::Neutron); - CORSIKA_LOGGER_DEBUG(logger_, "selected {} as target nucleon", nucleonId); + Code const nucleonId = (nucleonChannelDist(rng) ? Code::Neutron : Code::Proton); + CORSIKA_LOGGER_DEBUG(logger_, + "selected {} as target nucleon (f_proton, f_neutron)={},{}", + nucleonId, fProtons, fNeutrons); if (!leHadronicInteraction_.isValid(Code::Photon, nucleonId, sqrtSNN)) { CORSIKA_LOGGER_WARN( -- GitLab