CORSIKA
@c8_version@
The framework to simulate particle cascades for astroparticle physics
Decay.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/core/ParticleProperties.hpp
>
12
#include <corsika/framework/process/DecayProcess.hpp>
13
14
#include <set>
15
#include <vector>
16
17
namespace
corsika::sibyll
{
18
19
class
Decay
:
public
DecayProcess
<Decay> {
20
21
public
:
22
Decay
(
const
bool
sibyll_listing =
false
);
23
Decay
(std::set<Code>
const
&);
24
~
Decay
();
25
26
void
printDecayConfig(
const
Code);
27
void
printDecayConfig();
28
void
setHadronsUnstable();
29
30
// is Sibyll::Decay set to handle the decay of this particle?
31
bool
isDecayHandled(
const
Code);
32
33
// is decay possible in principle?
34
bool
canHandleDecay(
const
Code);
35
36
// set Sibyll::Decay to handle the decay of this particle!
37
void
setHandleDecay(
const
Code);
38
// set Sibyll::Decay to handle the decay of this list of particles!
39
void
setHandleDecay(std::vector<Code>
const
&);
40
// set Sibyll::Decay to handle all particle decays
41
void
setHandleAllDecay();
42
43
template
<
typename
TParticle>
44
TimeType
getLifetime(TParticle
const
&);
45
50
template
<
typename
TSecondaryView>
51
void
doDecay
(TSecondaryView&);
52
53
private
:
54
// internal routines to set particles stable and unstable in the COMMON blocks in
55
// sibyll
56
void
setStable(std::vector<Code>
const
&);
57
void
setUnstable(std::vector<Code>
const
&);
58
59
void
setStable(Code
const
);
60
void
setUnstable(Code
const
);
61
62
// internally set all particles to decay/not to decay
63
void
setAllUnstable();
64
void
setAllStable();
65
66
// will this particle be stable in sibyll ?
67
bool
isStable(Code
const
);
68
// will this particle decay in sibyll ?
69
bool
isUnstable(Code
const
);
70
// set particle with input code to decay or not
71
void
setDecay(Code
const
,
bool
const
);
72
73
// data members
74
int
count_ = 0;
75
bool
handleAllDecays_ =
true
;
76
bool
sibyll_listing_ =
false
;
77
std::set<Code> handledDecays_;
78
};
79
80
}
// namespace corsika::sibyll
81
82
#include <corsika/detail/modules/sibyll/Decay.inl>
corsika::sibyll
Definition:
Decay.hpp:17
corsika::sibyll::Decay::doDecay
void doDecay(TSecondaryView &)
In this function SIBYLL is called to produce to decay the input particle.
phys::units::quantity< phys::units::time_interval_d, double >
ParticleProperties.hpp
Interface to particle properties.
corsika::DecayProcess
Process decribing the decay of particles.
Definition:
DecayProcess.hpp:51
corsika::sibyll::Decay
Definition:
Decay.hpp:19
corsika
modules
sibyll
Decay.hpp
Generated by
1.8.13