CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
corsika::InteractionProcess< TModel > Class Template Reference

Process describing the interaction of particles. More...

#include <InteractionProcess.hpp>

Inheritance diagram for corsika::InteractionProcess< TModel >:

Additional Inherited Members

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

Detailed Description

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

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: