12 #include <corsika/framework/random/RNGManager.hpp> 13 #include <corsika/framework/process/InteractionProcess.hpp> 23 template <
class TEnvironment>
30 void initializeNuclearCrossSections();
31 void printCrossSectionTable(Code);
33 HEPEnergyType getMinEnergyPerNucleonCoM() {
return gMinEnergyPerNucleonCoM_; }
34 HEPEnergyType getMaxEnergyPerNucleonCoM() {
return gMaxEnergyPerNucleonCoM_; }
35 unsigned int constexpr getMaxNucleusAProjectile() {
return gMaxNucleusAProjectile_; }
36 unsigned int constexpr getMaxNFragments() {
return gMaxNFragments_; }
37 unsigned int constexpr getNEnergyBins() {
return gNEnBins_; }
39 template <
typename Particle>
40 std::tuple<CrossSectionType, CrossSectionType> getCrossSection(Particle
const& p,
43 template <
typename Particle>
46 template <
typename TSecondaryView>
47 void doInteraction(TSecondaryView&);
53 TEnvironment
const& environment_;
55 std::map<Code, int> targetComponentsIndex_;
57 static unsigned int constexpr gNSample_ =
59 static unsigned int constexpr gMaxNucleusAProjectile_ = 56;
60 static unsigned int constexpr gNEnBins_ = 6;
61 static unsigned int constexpr gMaxNFragments_ = 60;
64 static HEPEnergyType constexpr gMinEnergyPerNucleonCoM_ = 10. * 1e9 * electronvolt;
65 static HEPEnergyType constexpr gMaxEnergyPerNucleonCoM_ = 1.e6 * 1e9 * electronvolt;
70 #include <corsika/detail/modules/sibyll/NuclearInteraction.inl>
Interface to particle properties.
Process describing the interaction of particles.
prng_type & getRandomStream(string_type const &streamName)