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

#include <InteractionLengthModifier.hpp>

Inheritance diagram for corsika::InteractionLengthModifier< TUnderlyingProcess >:

Public Types

using functor_signature = GrammageType(GrammageType, corsika::Code, HEPEnergyType)
 The signature of the modifying functor. Arguments are original int. length, PID, energy.
 
- Public Types inherited from corsika::BaseProcess< InteractionLengthModifier< TUnderlyingProcess > >
using process_type = InteractionLengthModifier< TUnderlyingProcess >
 Base processor type for use in other template classes.
 

Public Member Functions

 InteractionLengthModifier (TUnderlyingProcess &&process, std::function< functor_signature > modifier)
 Create wrapper around InteractionProcess. More...
 
template<typename TSecondaryView >
void doInteraction (TSecondaryView &view)
 wrapper around internal process doInteraction
 
template<typename TParticle >
GrammageType getInteractionLength (TParticle const &particle)
 ! returns underlying process getInteractionLength modified
 
TUnderlyingProcess const & getProcess () const
 ! obtain reference to wrapped process
 
TUnderlyingProcess & getProcess ()
 

Additional Inherited Members

- Static Public Attributes inherited from corsika::BaseProcess< InteractionLengthModifier< TUnderlyingProcess > >
static bool const is_process_sequence
 
static bool const is_switch_process_sequence
 
- Protected Member Functions inherited from corsika::BaseProcess< InteractionLengthModifier< TUnderlyingProcess > >
InteractionLengthModifier< TUnderlyingProcess > & getRef ()
 
const InteractionLengthModifier< TUnderlyingProcess > & getRef () const
 
- Protected Attributes inherited from corsika::BaseProcess< InteractionLengthModifier< TUnderlyingProcess > >
friend TDerived
 

Detailed Description

template<class TUnderlyingProcess>
class corsika::InteractionLengthModifier< TUnderlyingProcess >

Wrapper around an InteractionProcess that allows modifying the interaction length returned by the underlying process in a user-defined way. *

Definition at line 26 of file InteractionLengthModifier.hpp.

Constructor & Destructor Documentation

◆ InteractionLengthModifier()

template<class TUnderlyingProcess >
corsika::InteractionLengthModifier< TUnderlyingProcess >::InteractionLengthModifier ( TUnderlyingProcess &&  process,
std::function< functor_signature modifier 
)

Create wrapper around InteractionProcess.

Note that the passed process object itself may no longer be used, only through this class.


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