15 #include <corsika/media/Environment.hpp> 16 #include <corsika/media/NuclearComposition.hpp> 18 #include <corsika/framework/utility/COMBoost.hpp> 21 #include <corsika/framework/random/RNGManager.hpp> 37 template <
typename TEnvironment>
45 bool isValid(Code projectileID, Code targetID,
HEPEnergyType sqrtS)
const;
46 bool isValid(Code projectileID,
int material,
HEPEnergyType sqrtS)
const;
55 template <
typename TSecondaryView>
56 void doInteraction(TSecondaryView& view, Code
const projectileId, Code
const targetId,
61 std::vector<std::pair<Code, int>>
const 63 std::shared_ptr<spdlog::logger> logger_ =
get_logger(
"corsika_FLUKA_Interaction");
64 std::unique_ptr<double[]> cumsgx_;
66 template <
typename TEnvironment>
67 static std::vector<std::pair<Code, int>> genFlukaMaterials(TEnvironment
const&);
70 inline static int const iflxyz_ = 1;
73 #include <corsika/detail/modules/fluka/InteractionModel.inl> This class exposes the (hadronic) interactions of FLUKA.
Import and extend the phys::units package.
std::shared_ptr< spdlog::logger > get_logger(std::string const &name, bool const defaultlog=false)
Get a smart pointer to an existing logger.
CrossSectionType getCrossSection(Code projectileId, Code targetId, FourMomentum const &projectileP4, FourMomentum const &targetP4) const
Return the cross-section of a given combination of projectile/target.
CORSIKA8 logging utilities.
Description of physical four-vectors.
InteractionModel(TEnvironment const &)
Create a new InteractionModel.
int getMaterialIndex(Code targetID) const
convert target Code to FLUKA material number
void doInteraction(TSecondaryView &view, Code const projectileId, Code const targetId, FourMomentum const &projectileP4, FourMomentum const &targetP4)
Perform an interaction.
General FourVector object.
prng_type & getRandomStream(string_type const &streamName)