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

Processes with continuous effects along a particle Trajectory. More...

#include <ContinuousProcess.hpp>

Inheritance diagram for corsika::ContinuousProcess< TDerived >:

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 & getRef ()
 
const TDerived & getRef () const
 
- Protected Attributes inherited from corsika::BaseProcess< TDerived >
friend TDerived
 

Detailed Description

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

Processes with continuous effects along a particle Trajectory.

Create a new ContinuousProcess, e.g. for XYModel, via:

class XYModel : public ContinuousProcess<XYModel> {};

and provide two necessary interface methods:

template <typename TParticle, typename TTrack>
LengthType getMaxStepLength(TParticle const& p, TTrack const& track) const;

which allows any ContinuousProcess to tell to CORSIKA a maximum allowed step length. Such step-length limitation, if it turns out to be smaller/sooner than any other limit (decay length, interaction length, other continuous processes, geometry, etc.) will lead to a limited step length.

template <typename TParticle, typename TTrack>
ProcessReturn doContinuous(TParticle& p, TTrack const& t, bool const stepLimit)
const;

which applied any continuous effects on Particle p along Trajectory t. The particle in all typical scenarios will be altered by a doContinuous. The flag stepLimit will be true if the preious evaluation of getMaxStepLength resulted in this particular ContinuousProcess to be responsible for the step length limit on the current track t. This information can be expoited and avoid e.g. any uncessary calculations.

Particle and Track are the valid classes to access particles and track (Trajectory) data on the Stack. 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.

Definition at line 65 of file ContinuousProcess.hpp.


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