CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
TimeCut.hpp
1 /*
2  * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu
3  *
4  * This software is distributed under the terms of the GNU General Public
5  * Licence version 3 (GPL Version 3). See file LICENSE for a full version of
6  * the license.
7  */
8 
9 #pragma once
10 
13 #include <corsika/framework/process/ContinuousProcess.hpp>
14 #include <corsika/framework/core/Step.hpp>
15 
16 #include <corsika/setup/SetupStack.hpp>
18 
19 namespace corsika {
20 
24  class TimeCut : public ContinuousProcess<TimeCut> {
25 
26  public:
27  TimeCut(TimeType const time);
28 
29  template <typename Particle>
30  ProcessReturn doContinuous(
31  Step<Particle> const& step,
32  const bool limitFlag = false); // this is not used for TimeCut
33  template <typename Particle, typename Track>
34  LengthType getMaxStepLength(Particle const&, Track const&) {
35  return meter * std::numeric_limits<double>::infinity();
36  }
37 
38  private:
39  TimeType time_;
40  };
41 
42 } // namespace corsika
43 
44 #include <corsika/detail/modules/TimeCut.inl>
Import and extend the phys::units package.
Simple TimeCut process, removes particles older than specified cut time.
Definition: TimeCut.hpp:24
Processes with continuous effects along a particle Trajectory.
`, since they are used everywhere as integral part of the framework.
ProcessReturn
since in a process sequence many status updates can accumulate for a single particle, this enum should define only bit-flags that can be accumulated easily with "|="
Interface to particle properties.
Note/Warning: Tracking and Trajectory must fit together !