CORSIKA8  0.0.0
The framework to simulate particle cascades for astroparticle physics
TrackWriter.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 
11 #include <corsika/framework/process/ContinuousProcess.hpp>
12 #include <corsika/modules/writers/TrackWriterParquet.hpp>
13 
14 namespace corsika {
15 
16  template <typename TOutputWriter = TrackWriterParquet>
17  class TrackWriter : public ContinuousProcess<TrackWriter<TOutputWriter>>,
18  public TOutputWriter {
19 
20  public:
21  TrackWriter();
22 
23  template <typename TParticle, typename TTrack>
24  ProcessReturn doContinuous(TParticle const&, TTrack const&, bool const limitFlag);
25 
26  template <typename TParticle, typename TTrack>
27  LengthType getMaxStepLength(TParticle const&, TTrack const&);
28 
29  YAML::Node getConfig() const;
30  };
31 
32 } // namespace corsika
33 
34 #include <corsika/detail/modules/TrackWriter.inl>
Processes with continuous effects along a particle Trajectory.
The cascade namespace assembles all objects needed to simulate full particles cascades.
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 "|="