CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
BoundaryCrossingProcess.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 
12 #include <corsika/media/Environment.hpp>
13 
14 #include <type_traits>
15 
16 #include <corsika/detail/framework/process/BoundaryCrossingProcess.hpp> // for extra traits, method/interface checking
17 
18 namespace corsika {
19 
45  template <typename TDerived>
46  class BoundaryCrossingProcess : public BaseProcess<TDerived> {
47  public:
48  };
49 
53  template <typename TProcess>
54  struct is_boundary_process<TProcess,
55  std::enable_if_t<std::is_base_of_v<
56  BoundaryCrossingProcess<typename std::decay_t<TProcess>>,
57  typename std::decay_t<TProcess>>>> : std::true_type {};
58 
61 } // namespace corsika
STL namespace.
Each process in C8 must derive from BaseProcess.
Definition: BaseProcess.hpp:34
`, since they are used everywhere as integral part of the framework.
A traits marker to identify BoundaryProcess.
Processes acting on the particles traversion from one volume into another volume. ...