CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
NullModel.hpp
1 /*
2  * (c) Copyright 2018 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/BaseProcess.hpp>
13 
14 namespace corsika {
15 
24  class NullModel {
25 
26  public:
27  NullModel() = default;
28  ~NullModel() = default;
29 
30  static bool const is_process_sequence = false;
31  static bool const is_switch_process_sequence = false;
32 
34  static size_t constexpr getNumberOfProcesses() { return 0; }
35  };
36 
40  template <typename TNull>
41  struct is_process<
42  TNull, std::enable_if_t<std::is_base_of_v<NullModel, typename std::decay_t<TNull>>>>
43  : std::true_type {};
44 
48  template <int N>
49  struct count_processes<NullModel, N, void> {
50  static size_t constexpr count = N;
51  };
52 
54 
55 } // namespace corsika
traits class to count any type of Process, general version.
A traits marker to identify BaseProcess, thus any type of process.
STL namespace.
`, since they are used everywhere as integral part of the framework.
Process that does nothing.
Definition: NullModel.hpp:24
static size_t constexpr getNumberOfProcesses()
Default number of processes is zero, obviously.
Definition: NullModel.hpp:34