12 #include <boost/filesystem/path.hpp> 17 #include <corsika/framework/random/RNGManager.hpp> 18 #include <corsika/framework/process/InteractionProcess.hpp> 19 #include <corsika/modules/pythia8/Pythia8.hpp> 26 boost::filesystem::path
const& mpiInitFile = corsika_data(
"Pythia/main184.mpi"),
27 bool const print_listing =
false);
30 bool canInteract(Code
const)
const;
32 bool isValid(Code
const projectileId, Code
const targetId,
51 Code
const projectile, Code
const target,
FourMomentum const& projectileP4,
70 Code
const projectile, Code
const target,
FourMomentum const& projectileP4,
77 template <
typename TView>
78 void doInteraction(TView& output, Code
const projectileId, Code
const targetId,
90 static std::array constexpr validTargets_{Code::Oxygen, Code::Nitrogen,
91 Code::Argon, Code::Hydrogen,
92 Code::Proton, Code::Neutron};
98 bool const print_listing_ =
false;
99 Pythia8::Pythia pythiaMain_;
100 Pythia8::Pythia
mutable pythiaColl_;
101 double const probSD_ =
109 #include <corsika/detail/modules/pythia8/Interaction.inl> CrossSectionType getCrossSection(Code const projectile, Code const target, FourMomentum const &projectileP4, FourMomentum const &targetP4) const
Returns inelastic (production) cross section.
void doInteraction(TView &output, Code const projectileId, Code const targetId, FourMomentum const &projectileP4, FourMomentum const &targetP4)
In this function PYTHIA is called to produce one event.
Import and extend the phys::units package.
double getAverageSubcollisions(Code targetId, CrossSectionType sigTot) const
return average number of sub-collisions in a nucleus, using the parameterizations of Sjöstrand and Ut...
std::tuple< CrossSectionType, CrossSectionType > getCrossSectionInelEla(Code const projectile, Code const target, FourMomentum const &projectileP4, FourMomentum const &targetP4) const
Returns inelastic AND elastic cross sections.
Description of physical four-vectors.
returns the full path of the file filename within the CORSIKA_DATA directory.
Interface to particle properties.
Process describing the interaction of particles.
prng_type & getRandomStream(string_type const &streamName)