CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
Decay.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/framework/process/DecayProcess.hpp>
13 #include <corsika/framework/geometry/Vector.hpp>
15 
16 #include <corsika/modules/pythia8/Pythia8.hpp>
17 
18 namespace corsika::pythia8 {
19 
20  class Decay : public DecayProcess<Decay>, public Pythia8::Pythia {
21 
22  public:
23  Decay(bool const print_listing = false);
24  Decay(std::set<Code> const&);
25  ~Decay();
26 
27  // is Pythia::Decay set to handle the decay of this particle?
28  bool isDecayHandled(Code const);
29 
31  bool canHandleDecay(Code const);
32 
34  void setHandleDecay(Code const);
36  void setHandleDecay(std::vector<Code> const&);
38  void setHandleAllDecays();
39 
41  void printDecayConfig(Code const);
43  void printDecayConfig();
44 
45  bool canDecay(Code const);
46 
47  template <typename TParticle>
48  TimeType getLifetime(TParticle const&);
49 
50  template <typename TView>
51  void doDecay(TView&);
52 
53  private:
54  void init();
55 
56  bool isStable(Code const vCode);
57  void setStable(std::vector<Code> const&);
58  void setUnstable(Code const);
59  void setStable(Code const);
60 
61  // data members
62  int count_ = 0;
63  bool handleAllDecays_ = true;
64  std::set<Code> handledDecays_;
65  bool print_listing_ = false;
66  };
67 
68 } // namespace corsika::pythia8
69 
70 #include <corsika/detail/modules/pythia8/Decay.inl>
Import and extend the phys::units package.
void setHandleAllDecays()
set Pythia::Decay to handle all particle decays
bool canHandleDecay(Code const)
is decay possible in principle?
void setHandleDecay(Code const)
set Pythia::Decay to handle the decay of this particle!
Interface to particle properties.
Process decribing the decay of particles.
void printDecayConfig()
print configuration of decays in corsika