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

ParticleCut process to kill particles. More...

#include <ParticleCut.hpp>

Inheritance diagram for corsika::ParticleCut< TOutput >:

Public Member Functions

template<typename... TArgs>
 ParticleCut (HEPEnergyType const eEleCut, HEPEnergyType const ePhoCut, HEPEnergyType const eHadCut, HEPEnergyType const eMuCut, bool const inv, TArgs &&... args)
 particle cut with kinetic energy thresholds for electrons, photons, hadrons (including nuclei with energy per nucleon) and muons invisible particles (neutrinos) can be cut or not. More...
 
template<typename... TArgs>
 ParticleCut (HEPEnergyType const eCut, bool const inv, TArgs &&... OutputArgs)
 particle cut with kinetic energy thresholds for all particles. More...
 
template<typename... TArgs>
 ParticleCut (std::unordered_map< Code const, HEPEnergyType const > const &eCuts, bool const inv, TArgs &&... outputArgs)
 Threshold for specific particles redefined. More...
 
template<typename TStackView >
void doSecondaries (TStackView &)
 Cut particles which are secondaries from discrete processes. More...
 
template<typename TParticle >
ProcessReturn doContinuous (Step< TParticle > &, const bool limitFlag=false)
 Cut particles during continuous processes (energy losses etc). More...
 
template<typename TParticle , typename TTrajectory >
LengthType getMaxStepLength (TParticle const &, TTrajectory const &)
 Limit on continuous step length imposed by ParticleCut: none. More...
 
void printThresholds () const
 
HEPEnergyType getElectronKineticECut () const
 
HEPEnergyType getPhotonKineticECut () const
 
HEPEnergyType getMuonKineticECut () const
 
HEPEnergyType getHadronKineticECut () const
 
YAML::Node getConfig () const override
 get configuration of this node, for output
 

Additional Inherited Members

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

Detailed Description

template<typename TOutput = WriterOff>
class corsika::ParticleCut< TOutput >

ParticleCut process to kill particles.

Goes through the secondaries of an interaction and removes particles according to their kinetic energy. Particles with a time delay of more than 10ms are removed as well. Invisible particles (neutrinos) can be removed if selected. The threshold value is set to 0 by default but in principle can be configured for each particle. Special constructors for cuts by the following groups are implemented: (electrons,positrons), photons, hadrons and muons.

Definition at line 33 of file ParticleCut.hpp.

Constructor & Destructor Documentation

◆ ParticleCut() [1/3]

template<typename TOutput = WriterOff>
template<typename... TArgs>
corsika::ParticleCut< TOutput >::ParticleCut ( HEPEnergyType const  eEleCut,
HEPEnergyType const  ePhoCut,
HEPEnergyType const  eHadCut,
HEPEnergyType const  eMuCut,
bool const  inv,
TArgs &&...  args 
)

particle cut with kinetic energy thresholds for electrons, photons, hadrons (including nuclei with energy per nucleon) and muons invisible particles (neutrinos) can be cut or not.

Parameters
outputArgs- optional arguments of TOutput writer

◆ ParticleCut() [2/3]

template<typename TOutput = WriterOff>
template<typename... TArgs>
corsika::ParticleCut< TOutput >::ParticleCut ( HEPEnergyType const  eCut,
bool const  inv,
TArgs &&...  OutputArgs 
)

particle cut with kinetic energy thresholds for all particles.

Parameters
outputArgs- optional arguments of TOutput writer

◆ ParticleCut() [3/3]

template<typename TOutput = WriterOff>
template<typename... TArgs>
corsika::ParticleCut< TOutput >::ParticleCut ( std::unordered_map< Code const, HEPEnergyType const > const &  eCuts,
bool const  inv,
TArgs &&...  outputArgs 
)

Threshold for specific particles redefined.

EM and invisible particles can be set to be discarded altogether.

Parameters
outputArgs- optional arguments of TOutput writer

Member Function Documentation

◆ doContinuous()

template<typename TOutput = WriterOff>
template<typename TParticle >
ProcessReturn corsika::ParticleCut< TOutput >::doContinuous ( Step< TParticle > &  ,
const bool  limitFlag = false 
)

Cut particles during continuous processes (energy losses etc).

Template Parameters
TParticle
Parameters
step
limitFlag
Returns
ProcessReturn

◆ doSecondaries()

template<typename TOutput = WriterOff>
template<typename TStackView >
void corsika::ParticleCut< TOutput >::doSecondaries ( TStackView &  )

Cut particles which are secondaries from discrete processes.

Template Parameters
TStackView

◆ getMaxStepLength()

template<typename TOutput = WriterOff>
template<typename TParticle , typename TTrajectory >
LengthType corsika::ParticleCut< TOutput >::getMaxStepLength ( TParticle const &  ,
TTrajectory const &   
)
inline

Limit on continuous step length imposed by ParticleCut: none.

Template Parameters
TParticle
TTrajectory
Returns
LengthType

Definition at line 97 of file ParticleCut.hpp.


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