OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
Units.h
Go to the documentation of this file.
1//
2// Units
3// A namespace defining various units conversions.
4//
5// Copyright (c) 2021, Carl Jolly, STFC, RAL
6// All rights reserved
7//
8// This file is part of OPAL.
9//
10// OPAL is free software: you can redistribute it and/or modify
11// it under the terms of the GNU General Public License as published by
12// the Free Software Foundation, either version 3 of the License, or
13// (at your option) any later version.
14//
15// You should have received a copy of the GNU General Public License
16// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
17//
18#ifndef CLASSIC_Units_HH
19#define CLASSIC_Units_HH
20
21#include "Physics.h"
22
23namespace Units {
24
25 // metre to millimetre
26 constexpr double m2mm = 1e+3;
27
28 // millimetre to metre
29 constexpr double mm2m = 1 / m2mm;
30
31 // meter to centimeter
32 constexpr double m2cm = 1e+2;
33
34 // centimeter to meter
35 constexpr double cm2m = 1 / m2cm;
36
37 //seconds to micro seconds
38 constexpr double s2us = 1e+6;
39
40 //micro seconds to seconds
41 constexpr double us2s = 1 / s2us;
42
43 //seconds to nano seconds
44 constexpr double s2ns = 1e+9;
45
46 //nano seconds to seconds
47 constexpr double ns2s = 1 / s2ns;
48
49 //seconds to pico seconds
50 constexpr double s2ps = 1e+12;
51
52 //pico seconds to seconds
53 constexpr double ps2s = 1 / s2ps;
54
55 //Tesla to kilo Gauss
56 constexpr double T2kG = 1e+1;
57
58 //kilo Gauss to Tesla
59 constexpr double kG2T = 1 / T2kG;
60
61 //kilo volts to volts
62 constexpr double kV2V = 1e+3;
63
64 //volts to kilo volts
65 constexpr double V2kV = 1 / kV2V;
66
67 //GeV to eV
68 constexpr double GeV2eV = 1e+9;
69
70 //eV to GeV
71 constexpr double eV2GeV = 1 / GeV2eV;
72
73 // MeV to eV
74 constexpr double MeV2eV = 1e+6;
75
76 // eV to MeV
77 constexpr double eV2MeV = 1 / MeV2eV;
78
79 // GeV to MeV
80 constexpr double GeV2MeV = GeV2eV * eV2MeV;
81
82 // MeV to GeV
83 constexpr double MeV2GeV = 1 / GeV2MeV;
84
85 // keV to eV
86 constexpr double keV2eV = 1e+3;
87
88 // eV to keV
89 constexpr double eV2keV = 1 / keV2eV;
90
91 // GeV to keV
92 constexpr double GeV2keV = GeV2eV * eV2keV;
93
94 // keV t to GeV
95 constexpr double keV2GeV = keV2eV * eV2GeV;
96
97 // MeV to keV
98 constexpr double MeV2keV = MeV2eV * eV2keV;
99
100 // keV to MeV
101 constexpr double keV2MeV = 1 / MeV2keV;
102
103 //GeV/c^2 to V*C*s^2/m^2 (ie GeV/c^2 to kg conversion)
104 constexpr double GeV2kg = 1.0e+9 * Physics::q_e / Physics::c / Physics::c;
105
106 //V*C*s^2/m^2 to GeV/c^2 (ie GeV/c^2 to kg conversion)
107 constexpr double kg2GeV = 1 / GeV2kg;
108
109 //eV to kg
110 constexpr double eV2kg = 1.782661921e-36;
111
112 //MHz to Hz
113 constexpr double MHz2Hz = 1e+6;
114
115 //Hz to MHz
116 constexpr double Hz2MHz = 1 / MHz2Hz;
117
118 //GHz to Hz
119 constexpr double GHz2Hz = 1e+9;
120
121 //Hz to GHz
122 constexpr double Hz2GHz = 1 / GHz2Hz;
123
124 //V/m to MV/m
125 constexpr double Vpm2MVpm = 1e-6;
126
127 //MV/m to V/m
128 constexpr double MVpm2Vpm = 1 / Vpm2MVpm;
129
130 //A to mA
131 constexpr double A2mA = 1e+3;
132
133 //mA to A
134 constexpr double mA2A = 1 / A2mA;
135
136 // rad to mrad
137 constexpr double rad2mrad = 1e3;
138
139 // mrad to rad
140 constexpr double mrad2rad = 1 / rad2mrad;
141
142 // deg to rad
143 constexpr double deg2rad = Physics::pi / 180;
144
145 // rad to deg
146 constexpr double rad2deg = 1 / deg2rad;
147};
148
149#endif // CLASSIC_Units_HH
constexpr double q_e
The elementary charge in As.
Definition: Physics.h:69
constexpr double e
The value of.
Definition: Physics.h:39
constexpr double c
The velocity of light in m/s.
Definition: Physics.h:45
constexpr double pi
The value of.
Definition: Physics.h:30
Definition: Units.h:23
constexpr double us2s
Definition: Units.h:41
constexpr double GeV2MeV
Definition: Units.h:80
constexpr double s2ps
Definition: Units.h:50
constexpr double mrad2rad
Definition: Units.h:140
constexpr double A2mA
Definition: Units.h:131
constexpr double V2kV
Definition: Units.h:65
constexpr double rad2mrad
Definition: Units.h:137
constexpr double GeV2keV
Definition: Units.h:92
constexpr double eV2keV
Definition: Units.h:89
constexpr double GHz2Hz
Definition: Units.h:119
constexpr double m2cm
Definition: Units.h:32
constexpr double ps2s
Definition: Units.h:53
constexpr double mm2m
Definition: Units.h:29
constexpr double m2mm
Definition: Units.h:26
constexpr double MHz2Hz
Definition: Units.h:113
constexpr double ns2s
Definition: Units.h:47
constexpr double kg2GeV
Definition: Units.h:107
constexpr double keV2GeV
Definition: Units.h:95
constexpr double keV2eV
Definition: Units.h:86
constexpr double eV2GeV
Definition: Units.h:71
constexpr double cm2m
Definition: Units.h:35
constexpr double mA2A
Definition: Units.h:134
constexpr double MVpm2Vpm
Definition: Units.h:128
constexpr double GeV2kg
Definition: Units.h:104
constexpr double eV2MeV
Definition: Units.h:77
constexpr double Hz2MHz
Definition: Units.h:116
constexpr double kV2V
Definition: Units.h:62
constexpr double Vpm2MVpm
Definition: Units.h:125
constexpr double T2kG
Definition: Units.h:56
constexpr double GeV2eV
Definition: Units.h:68
constexpr double MeV2GeV
Definition: Units.h:83
constexpr double MeV2eV
Definition: Units.h:74
constexpr double keV2MeV
Definition: Units.h:101
constexpr double MeV2keV
Definition: Units.h:98
constexpr double kG2T
Definition: Units.h:59
constexpr double rad2deg
Definition: Units.h:146
constexpr double eV2kg
Definition: Units.h:110
constexpr double Hz2GHz
Definition: Units.h:122
constexpr double deg2rad
Definition: Units.h:143
constexpr double s2ns
Definition: Units.h:44
constexpr double s2us
Definition: Units.h:38