5. Physics
5.1. Particle Identification code
Cosmos uses a conventional particle code that differs completely from extensive one recommended in the Particle Data book. Subroutines to convert the Cosmos code to the PDG code are available and described in Sec.??. A particle is identified by the particle code, subcode and charge. When you need to identify a particle in the user hook routines, you may use the #include "Zcode.h"
directive and refer the code names in that file rather than code numbers.
The following list is the names that represent the particles in Cosmos. They are roughly in the order of mass. The code for a heavy nucleus such as deuteron, alpha, … is not available when you judge particle type in air shower. It can be used to specify the primary particle type only. To judge a particle type of a nucleus in air shower, you may use kgnuc
for particle code, and if it matches, you can identify the nucleus by testing the subcode and charge; the subcode expresses the mass number (A). To specify a primary you can also avoid using the naming below but use 'iso 3 2'
, for example, to express \(^3\mathrm{He}\).
particle |
code name |
code number |
particle |
code name |
code number |
---|---|---|---|---|---|
photon |
kphoton |
1 |
electron |
kelec |
2 |
muon |
kmuon |
3 |
pion |
kpion |
4 |
kaon |
kkaon |
5 |
nucleon |
knuc |
6 |
\(\nu_e\) |
kneue |
7 |
\(\nu_\mu\) |
kneumu |
8 |
nucleus |
kgnuc |
9 |
triton |
ktriton |
17 |
He |
kalfa |
10 |
LiBeB(A~8) |
klibe |
11 |
CNO(A~14) |
kcno |
12 |
H(A~25) |
khvy |
13 |
VH(A~35) |
kvhvy |
14 |
Fe(A~56) |
kiron |
15 |
D meson |
kdmes |
16 |
\(\rho\) |
krho |
25 |
\(\Lambda\) |
klambda |
18 |
\(\Lambda_c\) |
klambdac |
21 |
\(\Sigma\) |
ksigma |
19 |
\(\Xi\) |
kgzai |
20 |
\(\omega\) |
komega |
26 |
\(\phi\) |
kphi |
27 |
\(\eta\) |
keta |
28 |
deuteron |
kdeuteron |
29 |
The subcode is used to discriminate the particle from anti-particle, if the difference is essential such as the neutron and neutrino, but not used for, say, anti-protons because the charge can tell it. For \(\mathrm{K^0}\) mesons, the subcode is used to distinguish between \(\mathrm{K^0}_S\) and \(\mathrm{K^0}_L\). Cosmos does not assign the particle and anti-particle code to them. They are assumed to be produced in equal weight and the actual assignment is performed randomly when they interact. To identify the particle and anti-particle, you can use the subcode name, regptcl
and antip
. For \(\mathrm{K^0}_S\) and \(\mathrm{K^0}_L\) the subcode name, k0l
and k0l
may be used.
The “KF” code used in Particle Data Book can be converted to the Cosmos code by calling ckf2cos()
as:
call ckf2cos(kf, code, subcode, chg)
where kf is an input integer kf code, and others are the output for Cosmos code.
The inverse conversion is possible by:
call ccos2kf(code, subcode, chg, kf)
The following fragment of a program code will tell you how to use these code and sub-code system.
!...
#include "Zcode.h"
!...
record /track/ aTrack
!...
if(aTrack.p.code .eq. knuc .and. aTrack.p.charge .eq. 0) then
! neutron; judge if anti neutron or not.
if(aTrack.p.subcode .eq. antip) then
! this is anti neutron
else if(aTrack.p.subcode .eq. regptcl) then
! this is neutron
else
! error assignment
endif
!...
5.2. Physics list and references
5.3. Hadronic interaction models
[Hadronic interaction models are read in LibLoft/Had/Interface/cintModels.f.]
[Available models are defined in LibLoft/Header/BlockData/cblkEvhnp.h.]
Available models are listed in Table 5.2.
Model |
Name in param |
Energy range |
Comment |
---|---|---|---|
PHITS |
phits |
||
JAM |
jam |
||
DPMJET3 |
dpmjet3 |
||
Fritiof 7.02 |
|||
Fritiof 1.6 |
fritiof1.6 |
||
GHEISHA |
gheisha |
||
Nucrin |
nucrin |
||
Ad hoc |
ad-hoc |
||
IncDPM3 |
incdpm3 |
||
Special |
special |
||
QGSJET II-03 |
qgsjet2 |
See Section 4.1 |
|
QGSJET II-04 |
qgsjet2 |
See Section 4.1 |
|
EPOS 1.99 |
epos |
See Section 4.1 |
|
EPOS LHC v3700 |
epos |
See Section 4.1 |
|
Sibyll 2.1 |
sibyll |
See Section 4.1 |
|
Sibyll 2.3c |
sibyll |
See Section 4.1 |