OPAL (Object Oriented Parallel Accelerator Library)  2024.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 
23 namespace 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 Hz2GHz
Definition: Units.h:122
constexpr double c
The velocity of light in m/s.
Definition: Physics.h:45
constexpr double mA2A
Definition: Units.h:134
constexpr double MVpm2Vpm
Definition: Units.h:128
constexpr double GHz2Hz
Definition: Units.h:119
constexpr double m2mm
Definition: Units.h:26
constexpr double eV2keV
Definition: Units.h:89
constexpr double cm2m
Definition: Units.h:35
constexpr double Hz2MHz
Definition: Units.h:116
constexpr double eV2kg
Definition: Units.h:110
constexpr double kg2GeV
Definition: Units.h:107
constexpr double GeV2keV
Definition: Units.h:92
constexpr double T2kG
Definition: Units.h:56
constexpr double rad2mrad
Definition: Units.h:137
constexpr double pi
The value of .
Definition: Physics.h:30
constexpr double Vpm2MVpm
Definition: Units.h:125
constexpr double ps2s
Definition: Units.h:53
constexpr double s2ps
Definition: Units.h:50
constexpr double m2cm
Definition: Units.h:32
constexpr double s2us
Definition: Units.h:38
constexpr double deg2rad
Definition: Units.h:143
constexpr double mm2m
Definition: Units.h:29
constexpr double ns2s
Definition: Units.h:47
constexpr double keV2eV
Definition: Units.h:86
constexpr double mrad2rad
Definition: Units.h:140
constexpr double s2ns
Definition: Units.h:44
constexpr double q_e
The elementary charge in As.
Definition: Physics.h:69
constexpr double GeV2MeV
Definition: Units.h:80
constexpr double V2kV
Definition: Units.h:65
constexpr double rad2deg
Definition: Units.h:146
constexpr double A2mA
Definition: Units.h:131
constexpr double MHz2Hz
Definition: Units.h:113
constexpr double MeV2GeV
Definition: Units.h:83
constexpr double GeV2eV
Definition: Units.h:68
constexpr double eV2GeV
Definition: Units.h:71
constexpr double keV2MeV
Definition: Units.h:101
constexpr double GeV2kg
Definition: Units.h:104
constexpr double e
The value of .
Definition: Physics.h:39
constexpr double us2s
Definition: Units.h:41
constexpr double MeV2keV
Definition: Units.h:98
constexpr double MeV2eV
Definition: Units.h:74
constexpr double kG2T
Definition: Units.h:59
constexpr double kV2V
Definition: Units.h:62
constexpr double eV2MeV
Definition: Units.h:77
constexpr double keV2GeV
Definition: Units.h:95