Iguana 0.0.0
Implementation Guardian of Analysis Algorithms
Loading...
Searching...
No Matches
TypeDefs.h
Go to the documentation of this file.
1
3#pragma once
4
5#include <string>
6#include <unordered_map>
7
8namespace iguana {
9
11 using vector_element_t = double;
12
22
34
36 namespace particle {
37 // clang-format off
38
40 enum PDG {
41 electron = 11,
42 photon = 22,
43 proton = 2212,
44 antiproton = -2212,
45 neutron = 2112,
46 antineutron = -2112,
47 pi_plus = 211,
48 pi_minus = -211,
49 kaon_plus = 321,
50 kaon_minus = -321
51 };
52
54 const std::unordered_map<PDG, std::string> name{
55 { electron, "electron" },
56 { photon, "photon" },
57 { proton, "proton" },
58 { antiproton, "antiproton" },
59 { neutron, "neutron" },
60 { antineutron, "antineutron" },
61 { pi_plus, "pi_plus" },
62 { pi_minus, "pi_minus" },
63 { kaon_plus, "kaon_plus" },
64 { kaon_minus, "kaon_minus" }
65 };
66
68 const std::unordered_map<PDG, std::string> title{
69 { electron, "e^{-}" },
70 { photon, "#gamma" },
71 { proton, "p" },
72 { antiproton, "#bar{p}" },
73 { neutron, "n" },
74 { antineutron, "#bar{n}" },
75 { pi_plus, "#pi^{+}" },
76 { pi_minus, "#pi^{-}" },
77 { kaon_plus, "K^{+}" },
78 { kaon_minus, "K^{-}" }
79 };
80
82 const std::unordered_map<PDG, double> mass{
83 { electron, 0.000511 },
84 { photon, 0.0 },
85 { proton, 0.938272 },
86 { antiproton, 0.938272 },
87 { neutron, 0.939565 },
88 { antineutron, 0.939565 },
89 { pi_plus, 0.139570 },
90 { pi_minus, 0.139570 },
91 { kaon_plus, 0.493677 },
92 { kaon_minus, 0.493677 }
93 };
94
95 // clang-format on
96 }
97
98}
const std::unordered_map< PDG, std::string > name
Particle names.
Definition TypeDefs.h:54
const std::unordered_map< PDG, double > mass
Particle mass in GeV.
Definition TypeDefs.h:82
PDG
PDG codes.
Definition TypeDefs.h:40
const std::unordered_map< PDG, std::string > title
Particle titles.
Definition TypeDefs.h:68
General, top-level namespace for algorithms and infrastructure. For algorithms and bindings,...
Definition Algorithm.h:14
double vector_element_t
Vector element type.
Definition TypeDefs.h:11
3-momentum type
Definition TypeDefs.h:14
vector_element_t pz
-component
Definition TypeDefs.h:20
vector_element_t py
-component
Definition TypeDefs.h:18
vector_element_t px
-component
Definition TypeDefs.h:16
4-momentum type
Definition TypeDefs.h:24
vector_element_t px
-component
Definition TypeDefs.h:26
vector_element_t E
-component
Definition TypeDefs.h:32
vector_element_t py
-component
Definition TypeDefs.h:28
vector_element_t pz
-component
Definition TypeDefs.h:30