CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
corsika::sibyll::HadronInteractionModel Class Reference

Provides the SIBYLL hadron-nucleus interaction model. More...

#include <HadronInteractionModel.hpp>

Public Member Functions

void setVerbose (bool const flag)
 Set the Verbose flag. More...
 
bool constexpr isValid (Code const projectileId, Code const targetId, HEPEnergyType const sqrtSnn) const
 evaluated validity of collision system. More...
 
std::tuple< CrossSectionType, CrossSectionTypegetCrossSectionInelEla (Code const projectile, Code const target, FourMomentum const &projectileP4, FourMomentum const &targetP4) const
 Returns inelastic AND elastic cross sections. More...
 
CrossSectionType getCrossSection (Code const projectile, Code const target, FourMomentum const &projectileP4, FourMomentum const &targetP4) const
 Returns inelastic (production) cross section. More...
 
template<typename TSecondaries >
void doInteraction (TSecondaries &view, Code const projectile, Code const target, FourMomentum const &projectileP4, FourMomentum const &targetP4)
 In this function SIBYLL is called to produce one event. More...
 

Detailed Description

Provides the SIBYLL hadron-nucleus interaction model.

This is a TModel argument for InteractionProcess<TModel>.

Definition at line 26 of file HadronInteractionModel.hpp.

Member Function Documentation

◆ doInteraction()

template<typename TSecondaries >
void corsika::sibyll::HadronInteractionModel::doInteraction ( TSecondaries &  view,
Code const  projectile,
Code const  target,
FourMomentum const &  projectileP4,
FourMomentum const &  targetP4 
)

In this function SIBYLL is called to produce one event.

The event is copied (and boosted) into the shower lab frame.

Parameters
viewis the stack object for the secondaries
projectileis the Code of the projectile
targetis the Code of the target
projectileP4four-momentum of projectile
targetP4four-momentum of target

◆ getCrossSection()

CrossSectionType corsika::sibyll::HadronInteractionModel::getCrossSection ( Code const  projectile,
Code const  target,
FourMomentum const &  projectileP4,
FourMomentum const &  targetP4 
) const
inline

Returns inelastic (production) cross section.

This cross section must correspond to the process described in doInteraction. Allowed targets are: nuclei or single nucleons (p,n,hydrogen).

Parameters
projectileis the Code of the projectile
targetis the Code of the target
projectileP4four-momentum of projectile
targetP4four-momentum of target
Returns
inelastic cross section elastic cross section

Definition at line 84 of file HadronInteractionModel.hpp.

◆ getCrossSectionInelEla()

std::tuple<CrossSectionType, CrossSectionType> corsika::sibyll::HadronInteractionModel::getCrossSectionInelEla ( Code const  projectile,
Code const  target,
FourMomentum const &  projectileP4,
FourMomentum const &  targetP4 
) const

Returns inelastic AND elastic cross sections.

These cross sections must correspond to the process described in doInteraction AND elastic scattering (sigma_tot = sigma_inel + sigma_el). Allowed targets are: nuclei or single nucleons (p,n,hydrogen). This "InelEla" method is used since Sibyll must be useful inside the NuclearInteraction model, which requires that.

Parameters
projectileis the Code of the projectile
targetis the Code of the target
projectileP4four-momentum of projectile
targetP4four-momentum of target
Returns
a tuple of: inelastic cross section, elastic cross section

◆ isValid()

bool constexpr corsika::sibyll::HadronInteractionModel::isValid ( Code const  projectileId,
Code const  targetId,
HEPEnergyType const  sqrtSnn 
) const

evaluated validity of collision system.

sibyll only accepts nuclei with 4<=A<=18 as targets, or protons aka Hydrogen or neutrons (p,n == nucleon).

◆ setVerbose()

void corsika::sibyll::HadronInteractionModel::setVerbose ( bool const  flag)

Set the Verbose flag.

If flag is true, SIBYLL will printout additional secondary particle information lists, etc.

Parameters
flagto switch.

The documentation for this class was generated from the following file: