CORSIKA8  0.0.0
The framework to simulate particle cascades for astroparticle physics
corsika::InteractionProcess< TDerived > Class Template Reference

Process describing the interaction of particles. More...

#include <InteractionProcess.hpp>

Inheritance diagram for corsika::InteractionProcess< TDerived >:

Public Member Functions

template<typename TParticle >
InverseGrammageType getInverseInteractionLength (TParticle const &particle)
 

Additional Inherited Members

- Public Types inherited from corsika::BaseProcess< TDerived >
using process_type = TDerived
 Base processor type for use in other template classes.
 
- Static Public Attributes inherited from corsika::BaseProcess< TDerived >
static bool const is_process_sequence = false
 
static bool const is_switch_process_sequence = false
 
- Protected Member Functions inherited from corsika::BaseProcess< TDerived >
TDerived & ref ()
 
const TDerived & ref () const
 
- Protected Attributes inherited from corsika::BaseProcess< TDerived >
friend TDerived
 

Detailed Description

template<typename TDerived>
class corsika::InteractionProcess< TDerived >

Process describing the interaction of particles.

Create a new InteractionProcess, e.g. for XYModel, via

class XYModel : public InteractionProcess<XYModel> {};

and provide the two necessary interface methods

template <typename TSecondaryView>
void XYModel::doInteraction(TSecondaryView&);
template <typename TParticle>
GrammageType XYModel::getInteractionLength(TParticle const&)

Where, of course, SecondaryView and Particle are the valid classes to access particles on the Stack. In user code, those two methods do not need to be templated, they could use the types e.g. corsika::setup::Stack::particle_type – but by the cost of loosing all flexibility otherwise provided.

SecondaryView allows to retrieve the properties of the projectile particles, AND to store new particles (secondaries) which then subsequently can be processes by SecondariesProcess. This is how the output of interactions can be studied right away.

Definition at line 52 of file InteractionProcess.hpp.


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