diff --git a/corsika/detail/modules/fluka/InteractionModel.inl b/corsika/detail/modules/fluka/InteractionModel.inl index 87f03804c8f9b6cd41422afcea99e2119ffcb89e..a095a374084cb1219431a41982ed6de910c7a3d5 100644 --- a/corsika/detail/modules/fluka/InteractionModel.inl +++ b/corsika/detail/modules/fluka/InteractionModel.inl @@ -27,6 +27,8 @@ #include <corsika/framework/core/PhysicalUnits.hpp> #include <corsika/modules/fluka/ParticleConversion.hpp> +#include <FLUKA.hpp> + namespace corsika::fluka { template <typename TEnvironment> inline InteractionModel::InteractionModel(TEnvironment const& env) @@ -36,6 +38,12 @@ namespace corsika::fluka { CORSIKA_LOGGER_DEBUG(logger_, "FLUKA material initialization: {} -> {}", get_name(code, full_name{}), matno); } + + if (int const ndmhep = ::fluka::ndmhep_(); ::fluka::nmxhep != ndmhep) { + CORSIKA_LOGGER_CRITICAL(logger_, "HEPEVT dimension mismatch. FLUKA reports %d", + ndmhep); + throw std::runtime_error{"FLUKA HEPEVT dimension mismatch"}; + } } inline bool InteractionModel::isValid(Code projectileID, int material, diff --git a/modules/fluka/FLUKA.hpp b/modules/fluka/FLUKA.hpp index 7c5ab5f168fba1056cb086877fb4fd733bba1cf5..12b8a17562cee175314c8ba6c6ff0a5154eb683b 100644 --- a/modules/fluka/FLUKA.hpp +++ b/modules/fluka/FLUKA.hpp @@ -204,6 +204,25 @@ namespace fluka { *----------------------------------------------------------------------*/ void fllhep_(); + /**----------------------------------------------------------------------* + * * + * Copyright (C) 2023-2023 by Alfredo Ferrari & Paola Sala * + * All Rights Reserved. * + * * + * N DiMension of the HEP common: * + * * + * Authors: Alfredo Ferrari & Paola Sala * + * * + * * + * Created on 09 March 2023 by Alfredo Ferrari & Paola Sala * + * Private Private * + * * + * Last change on 09-Mar-23 by Alfredo Ferrari * + * Private * + * * + *----------------------------------------------------------------------*/ + int ndmhep_(); + //! random-number generator called from within FLUKA double flrndm_(); } diff --git a/modules/fluka/fluka.cpp b/modules/fluka/fluka.cpp index afd7b2aba8dd513cda4574bfd885071be1c6d071..3c059962069cb172414d9041699f9c644b00f4b2 100644 --- a/modules/fluka/fluka.cpp +++ b/modules/fluka/fluka.cpp @@ -26,6 +26,7 @@ namespace fluka { [[maybe_unused]] auto* const stpxyc_ptr = &stpxyz_; [[maybe_unused]] auto* const evtxyz_ptr = &evtxyz_; [[maybe_unused]] auto* const sgmxyz_ptr = &sgmxyz_; + [[maybe_unused]] auto* const ndmhep_ptr = &ndmhep_; } } // namespace fluka