14 #include <corsika/framework/random/RNGManager.hpp> 23 bool const epos_printout_on =
false);
39 Code
const corsikaId,
int const,
int const, Code
const targetId,
int const,
47 Code
const,
int const,
int const, Code
const,
HEPEnergyType const)
const;
57 Code
const projectileId, Code
const targetId,
FourMomentum const& projectileP4,
66 bool isValid(Code
const projectileId, Code
const targetId,
88 template <
typename TSecondaries>
89 void doInteraction(TSecondaries&, Code
const projectileId, Code
const targetId,
92 void initializeEventCoM(Code
const,
int const,
int const, Code
const,
int const,
94 void initializeEventLab(Code
const,
int const,
int const, Code
const,
int const,
96 void configureParticles(Code
const,
int const,
int const, Code
const,
int const,
102 void initialize()
const;
103 void setParticlesStable()
const;
104 inline static bool isInitialized_ =
false;
106 std::string data_path_;
107 unsigned int count_ = 0;
111 std::shared_ptr<spdlog::logger> logger_ =
get_logger(
"corsika_epos_Interaction");
113 HEPEnergyType const maxEnergyCoM_ = 2.e6 * 1e9 * electronvolt;
114 static Code constexpr maxNucleus_ = Code::Lead;
119 #include <corsika/detail/modules/epos/InteractionModel.inl>
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.
std::tuple< CrossSectionType, CrossSectionType > getCrossSectionInelEla(Code const projectileId, Code const targetId, FourMomentum const &projectileP4, FourMomentum const &targetP4) const
Returns production and elastic cross section.
std::tuple< CrossSectionType, CrossSectionType > readCrossSectionTableLab(Code const, int const, int const, Code const, HEPEnergyType const) const
Returns production and elastic cross section for hadrons in epos by reading pre-calculated tables fro...
std::tuple< CrossSectionType, CrossSectionType > calcCrossSectionCoM(Code const corsikaId, int const, int const, Code const targetId, int const, int const, HEPEnergyType const sqrtS) const
Returns production and elastic cross section for hadrons in epos.
Description of physical four-vectors.
Interface to particle properties.
CrossSectionType getCrossSection(Code const projectileId, Code const targetId, FourMomentum const &projectileP4, FourMomentum const &targetP4) const
Get the inelatic/production cross section.
void doInteraction(TSecondaries &, Code const projectileId, Code const targetId, FourMomentum const &projectileP4, FourMomentum const &targetP4)
Calculate one hadron-hadron interaction.
bool isValid(Code const projectileId, Code const targetId, HEPEnergyType const sqrtS) const
Checks validity of projectile, target and energy combination.
General FourVector object.
prng_type & getRandomStream(string_type const &streamName)