GGEMS  1.1
GPU GEant4-based Monte Carlo Simulations
GGEMSSystemOfUnits.hh File Reference

Namespace storing all the usefull physical units. More...

#include <algorithm>
#include <sstream>
#include <cfloat>
#include <iostream>
#include "GGEMS/tools/GGEMSTools.hh"
Include dependency graph for GGEMSSystemOfUnits.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 anonymous_namespace{GGEMSSystemOfUnits.hh}
 empty namespace storing prefix unit
 

Macros

#define __constant   inline static constexpr
 __constant is known for OpenCL, but for C++ we define __constant as a constexpr More...
 

Functions

template<typename T >
std::string BestDistanceUnit (T const &value)
 Choose best distance unit. More...
 
template<typename T >
T DistanceUnit (T const &value, std::string const &unit)
 Choose best distance unit. More...
 
template<typename T >
std::string BestEnergyUnit (T const &value)
 Choose best energy unit, mega is the reference. More...
 
template<typename T >
T EnergyUnit (T const &value, std::string const &unit)
 Choose best energy unit. More...
 
template<typename T >
T AngleUnit (T const &value, std::string const &unit)
 Choose best angle unit. More...
 
template<typename T >
T DensityUnit (T const &value, std::string const &unit)
 Choose best density unit. More...
 
std::string BestDigitalUnit (GGulong const &value)
 Choose best digital unit. More...
 

Variables

__constant GGfloat nm = 1.e-6f
 
__constant GGfloat um = 1.e-3f
 
__constant GGfloat mm = 1.0f
 
__constant GGfloat mm2 = 1.0f
 
__constant GGfloat mm3 = 1.0f
 
__constant GGfloat cm = 10.f
 
__constant GGfloat cm2 = 1.e2f
 
__constant GGfloat cm3 = 1.e3f
 
__constant GGfloat m = 1.e3f
 
__constant GGfloat m2 = 1.e6f
 
__constant GGfloat m3 = 1.e9f
 
__constant GGfloat km = 1.e6f
 
__constant GGfloat km2 = 1.e12f
 
__constant GGfloat km3 = 1.e18f
 
__constant GGfloat pc = 3.0856775807e+19f
 
__constant GGfloat b = 1.e-22f
 
__constant GGfloat mb = 1.e-25f
 
__constant GGfloat ub = 1.e-28f
 
__constant GGfloat nb = 1.e-31f
 
__constant GGfloat pb = 1.e-34f
 
__constant GGfloat rad = 1.0f
 
__constant GGfloat mrad = 1.e-3f
 
__constant GGfloat deg = 3.141592653589793238463f/180.0f
 
__constant GGfloat sr = 1.0f
 
__constant GGfloat ns = 1.f
 
__constant GGfloat s = 1.e+9f
 
__constant GGfloat ms = 1.e+6f
 
__constant GGfloat us = 1.e+3f
 
__constant GGfloat ps = 1.e-3f
 
__constant GGfloat Hz = 1.f/(1.e+9f)
 
__constant GGfloat kHz = 1.e-6f
 
__constant GGfloat MHz = 1.e-3f
 
__constant GGfloat eplus = 1.f
 
__constant GGfloat qe = 1.602176487e-19f
 
__constant GGfloat C = 1.f/1.602176487e-19f
 
__constant GGfloat eV = 1.e-6f
 
__constant GGfloat keV = 1.e-3f
 
__constant GGfloat MeV = 1.f
 
__constant GGfloat GeV = 1.e+3f
 
__constant GGfloat TeV = 1.e+6f
 
__constant GGfloat PeV = 1.e+9f
 
__constant GGfloat J = 1.e-6f/1.602176487e-19f
 
__constant GGfloat kg = 6.241509704e+24f
 
__constant GGfloat g = 6.241509704e+21f
 
__constant GGfloat mg = 6.241509704e+18f
 
__constant GGfloat W = 6.241509766e+3f
 
__constant GGfloat N = 6.241509766e+9f
 
__constant GGfloat Pa = 6.241509766e+3f
 
__constant GGfloat bar = 100000.0f*6.241509766e+3f
 
__constant GGfloat atm = 101325.0f*6.241509766e+3f
 
__constant GGfloat A = 6.241509696e+9f
 
__constant GGfloat mA = 6.241509696e+6f
 
__constant GGfloat uA = 6.241509696e+3f
 
__constant GGfloat nA = 6.241509696f
 
__constant GGfloat MV = 1.0f
 
__constant GGfloat kV = 1.e-3f
 
__constant GGfloat V = 1.e-6f
 
__constant GGfloat OHM = 1.602176452e-16f
 
__constant GGfloat F = 6.241509468e+24f
 
__constant GGfloat mF = 6.241509468e+21f
 
__constant GGfloat uF = 6.241509468e+18f
 
__constant GGfloat nF = 6.241509468e+15f
 
__constant GGfloat pF = 6.241509468e+12f
 
__constant GGfloat Wb = 1000.0f
 
__constant GGfloat T = 0.001f
 
__constant GGfloat G = 1.e-7f
 
__constant GGfloat kG = 1.e-4f
 
__constant GGfloat H = 1.602176383e-07f
 
__constant GGfloat K = 1.0f
 
__constant GGfloat mol = 1.0f
 
__constant GGfloat Bq = 1.e-9f
 
__constant GGfloat kBq = 1.e-6f
 
__constant GGfloat MBq = 1.e-3f
 
__constant GGfloat GBq = 1.0f
 
__constant GGfloat Ci = 3.7e+10f/1.e+9f
 
__constant GGfloat mCi = 3.7e-2f
 
__constant GGfloat uCi = 3.7e-5f
 
__constant GGfloat Gy = 1.0e-12f
 
__constant GGfloat kGy = 1.0e-9f
 
__constant GGfloat mGy = 1.0e-15f
 
__constant GGfloat uGy = 1.0e-18f
 
__constant GGfloat cd = 1.0f
 
__constant GGfloat lm = 1.0f
 
__constant GGfloat lx = 1.e-6f
 
__constant GGfloat percent = 0.01f
 
__constant GGfloat perthousant = 0.001f
 
__constant GGfloat permillion = 0.000001f
 
std::string anonymous_namespace{GGEMSSystemOfUnits.hh}::prefix_unit [17]
 

Detailed Description

Namespace storing all the usefull physical units.

Author
Julien BERT julie.nosp@m.n.be.nosp@m.rt@un.nosp@m.iv-b.nosp@m.rest..nosp@m.fr
Didier BENOIT didie.nosp@m.r.be.nosp@m.noit@.nosp@m.inse.nosp@m.rm.fr
LaTIM, Brest, FRANCE
Version
1.0
Date
Tuesday October 1, 2019

Definition in file GGEMSSystemOfUnits.hh.

Macro Definition Documentation

◆ __constant

#define __constant   inline static constexpr

__constant is known for OpenCL, but for C++ we define __constant as a constexpr

Definition at line 43 of file GGEMSSystemOfUnits.hh.

Function Documentation

◆ AngleUnit()

template<typename T >
T AngleUnit ( T const &  value,
std::string const &  unit 
)
inline

Choose best angle unit.

Template Parameters
T- type of the value to convert unit
Parameters
value- value to check
unit- angle unit
Returns
value in the good unit

Definition at line 360 of file GGEMSSystemOfUnits.hh.

◆ BestDigitalUnit()

std::string BestDigitalUnit ( GGulong const &  value)
inline

Choose best digital unit.

Parameters
value- value to convert to best unit
Returns
string value and energy unit

Definition at line 425 of file GGEMSSystemOfUnits.hh.

◆ BestDistanceUnit()

template<typename T >
std::string BestDistanceUnit ( T const &  value)
inline

Choose best distance unit.

Template Parameters
T- type of the value
Parameters
value- value to convert to best unit
Returns
string value and distance unit

Definition at line 217 of file GGEMSSystemOfUnits.hh.

◆ BestEnergyUnit()

template<typename T >
std::string BestEnergyUnit ( T const &  value)
inline

Choose best energy unit, mega is the reference.

Template Parameters
T- type of the value
Parameters
value- value to convert to best unit
Returns
string value and energy unit

Definition at line 290 of file GGEMSSystemOfUnits.hh.

◆ DensityUnit()

template<typename T >
T DensityUnit ( T const &  value,
std::string const &  unit 
)
inline

Choose best density unit.

Template Parameters
T- type of the value to convert unit
Parameters
value- value to check
unit- density unit
Returns
value in the good unit

Definition at line 396 of file GGEMSSystemOfUnits.hh.

◆ DistanceUnit()

template<typename T >
T DistanceUnit ( T const &  value,
std::string const &  unit 
)
inline

Choose best distance unit.

Template Parameters
T- type of the value to convert unit
Parameters
value- value to check
unit- distance unit
Returns
value in the good unit

Definition at line 243 of file GGEMSSystemOfUnits.hh.

◆ EnergyUnit()

template<typename T >
T EnergyUnit ( T const &  value,
std::string const &  unit 
)
inline

Choose best energy unit.

Template Parameters
T- type of the value to convert unit
Parameters
value- value to check
unit- energy unit
Returns
value in the good unit

Definition at line 316 of file GGEMSSystemOfUnits.hh.

Variable Documentation

◆ A

__constant GGfloat A = 6.241509696e+9f

Ampere

Definition at line 126 of file GGEMSSystemOfUnits.hh.

◆ atm

__constant GGfloat atm = 101325.0f*6.241509766e+3f

Atmosphere

Definition at line 123 of file GGEMSSystemOfUnits.hh.

◆ b

__constant GGfloat b = 1.e-22f

Barn

Definition at line 69 of file GGEMSSystemOfUnits.hh.

◆ bar

__constant GGfloat bar = 100000.0f*6.241509766e+3f

Bar

Definition at line 122 of file GGEMSSystemOfUnits.hh.

◆ Bq

__constant GGfloat Bq = 1.e-9f

Becquerel

Definition at line 164 of file GGEMSSystemOfUnits.hh.

◆ C

__constant GGfloat C = 1.f/1.602176487e-19f

Coulomb = 6.24150e+18 * eplus

Definition at line 98 of file GGEMSSystemOfUnits.hh.

◆ cd

__constant GGfloat cd = 1.0f

Candela (REFERENCE)

Definition at line 179 of file GGEMSSystemOfUnits.hh.

◆ Ci

__constant GGfloat Ci = 3.7e+10f/1.e+9f

Curie (Bq.ns-1)

Definition at line 168 of file GGEMSSystemOfUnits.hh.

◆ cm

__constant GGfloat cm = 10.f

Centimeter

Definition at line 57 of file GGEMSSystemOfUnits.hh.

◆ cm2

__constant GGfloat cm2 = 1.e2f

Squared centimeter

Definition at line 58 of file GGEMSSystemOfUnits.hh.

◆ cm3

__constant GGfloat cm3 = 1.e3f

Cubic centimeter

Definition at line 59 of file GGEMSSystemOfUnits.hh.

◆ deg

__constant GGfloat deg = 3.141592653589793238463f/180.0f

Degree

Definition at line 78 of file GGEMSSystemOfUnits.hh.

◆ eplus

__constant GGfloat eplus = 1.f

Positron charge

Definition at line 96 of file GGEMSSystemOfUnits.hh.

◆ eV

__constant GGfloat eV = 1.e-6f

Electronvolt

Definition at line 101 of file GGEMSSystemOfUnits.hh.

◆ F

__constant GGfloat F = 6.241509468e+24f

Farad

Definition at line 140 of file GGEMSSystemOfUnits.hh.

◆ g

__constant GGfloat g = 6.241509704e+21f

gram

Definition at line 111 of file GGEMSSystemOfUnits.hh.

◆ G

__constant GGfloat G = 1.e-7f

Gauss

Definition at line 151 of file GGEMSSystemOfUnits.hh.

◆ GBq

__constant GGfloat GBq = 1.0f

Gigabecquerel (REFERENCE)

Definition at line 167 of file GGEMSSystemOfUnits.hh.

◆ GeV

__constant GGfloat GeV = 1.e+3f

Gigaelectronvolt

Definition at line 104 of file GGEMSSystemOfUnits.hh.

◆ Gy

__constant GGfloat Gy = 1.0e-12f

Gray

Definition at line 173 of file GGEMSSystemOfUnits.hh.

◆ H

__constant GGfloat H = 1.602176383e-07f

Henry 1.60217e-7*MeV*(ns/eplus)^2

Definition at line 155 of file GGEMSSystemOfUnits.hh.

◆ Hz

__constant GGfloat Hz = 1.f/(1.e+9f)

Hertz

Definition at line 91 of file GGEMSSystemOfUnits.hh.

◆ J

__constant GGfloat J = 1.e-6f/1.602176487e-19f

Joule 6.24150 e+12 * MeV

Definition at line 107 of file GGEMSSystemOfUnits.hh.

◆ K

__constant GGfloat K = 1.0f

Kelvin (REFERENCE)

Definition at line 158 of file GGEMSSystemOfUnits.hh.

◆ kBq

__constant GGfloat kBq = 1.e-6f

Kilobecquerel

Definition at line 165 of file GGEMSSystemOfUnits.hh.

◆ keV

__constant GGfloat keV = 1.e-3f

kiloelectronvolt

Definition at line 102 of file GGEMSSystemOfUnits.hh.

◆ kg

__constant GGfloat kg = 6.241509704e+24f

Kilogram

Definition at line 110 of file GGEMSSystemOfUnits.hh.

◆ kG

__constant GGfloat kG = 1.e-4f

Kilogauss

Definition at line 152 of file GGEMSSystemOfUnits.hh.

◆ kGy

__constant GGfloat kGy = 1.0e-9f

Kilogray

Definition at line 174 of file GGEMSSystemOfUnits.hh.

◆ kHz

__constant GGfloat kHz = 1.e-6f

Kilohertz

Definition at line 92 of file GGEMSSystemOfUnits.hh.

◆ km

__constant GGfloat km = 1.e6f

Kilometer

Definition at line 63 of file GGEMSSystemOfUnits.hh.

◆ km2

__constant GGfloat km2 = 1.e12f

Squared kilometer

Definition at line 64 of file GGEMSSystemOfUnits.hh.

◆ km3

__constant GGfloat km3 = 1.e18f

Cubic kilometer

Definition at line 65 of file GGEMSSystemOfUnits.hh.

◆ kV

__constant GGfloat kV = 1.e-3f

Kilovolt

Definition at line 133 of file GGEMSSystemOfUnits.hh.

◆ lm

__constant GGfloat lm = 1.0f

Lumen (REFERENCE)

Definition at line 182 of file GGEMSSystemOfUnits.hh.

◆ lx

__constant GGfloat lx = 1.e-6f

Lux

Definition at line 185 of file GGEMSSystemOfUnits.hh.

◆ m

__constant GGfloat m = 1.e3f

Meter

Definition at line 60 of file GGEMSSystemOfUnits.hh.

◆ m2

__constant GGfloat m2 = 1.e6f

Squared meter

Definition at line 61 of file GGEMSSystemOfUnits.hh.

◆ m3

__constant GGfloat m3 = 1.e9f

Cubic meter

Definition at line 62 of file GGEMSSystemOfUnits.hh.

◆ mA

__constant GGfloat mA = 6.241509696e+6f

Milliampere

Definition at line 127 of file GGEMSSystemOfUnits.hh.

◆ mb

__constant GGfloat mb = 1.e-25f

millibarn

Definition at line 70 of file GGEMSSystemOfUnits.hh.

◆ MBq

__constant GGfloat MBq = 1.e-3f

Megabecquerel

Definition at line 166 of file GGEMSSystemOfUnits.hh.

◆ mCi

__constant GGfloat mCi = 3.7e-2f

Millicurie

Definition at line 169 of file GGEMSSystemOfUnits.hh.

◆ MeV

__constant GGfloat MeV = 1.f

Megaelectronvolt (REFERENCE)

Definition at line 103 of file GGEMSSystemOfUnits.hh.

◆ mF

__constant GGfloat mF = 6.241509468e+21f

millifarad

Definition at line 141 of file GGEMSSystemOfUnits.hh.

◆ mg

__constant GGfloat mg = 6.241509704e+18f

milligram

Definition at line 112 of file GGEMSSystemOfUnits.hh.

◆ mGy

__constant GGfloat mGy = 1.0e-15f

Milligray

Definition at line 175 of file GGEMSSystemOfUnits.hh.

◆ MHz

__constant GGfloat MHz = 1.e-3f

Megahertz

Definition at line 93 of file GGEMSSystemOfUnits.hh.

◆ mm

__constant GGfloat mm = 1.0f

Millimeter (REFERENCE)

Definition at line 54 of file GGEMSSystemOfUnits.hh.

◆ mm2

__constant GGfloat mm2 = 1.0f

Squared millimeter (REFERENCE)

Definition at line 55 of file GGEMSSystemOfUnits.hh.

◆ mm3

__constant GGfloat mm3 = 1.0f

Cubic millimeter (REFERENCE)

Definition at line 56 of file GGEMSSystemOfUnits.hh.

◆ mol

__constant GGfloat mol = 1.0f

Mole (REFERENCE)

Definition at line 161 of file GGEMSSystemOfUnits.hh.

◆ mrad

__constant GGfloat mrad = 1.e-3f

milliradian

Definition at line 77 of file GGEMSSystemOfUnits.hh.

◆ ms

__constant GGfloat ms = 1.e+6f

Millisecond

Definition at line 86 of file GGEMSSystemOfUnits.hh.

◆ MV

__constant GGfloat MV = 1.0f

Megavolt (REFERENCE)

Definition at line 132 of file GGEMSSystemOfUnits.hh.

◆ N

__constant GGfloat N = 6.241509766e+9f

Newton

Definition at line 118 of file GGEMSSystemOfUnits.hh.

◆ nA

__constant GGfloat nA = 6.241509696f

Nanoampere

Definition at line 129 of file GGEMSSystemOfUnits.hh.

◆ nb

__constant GGfloat nb = 1.e-31f

nanobarn

Definition at line 72 of file GGEMSSystemOfUnits.hh.

◆ nF

__constant GGfloat nF = 6.241509468e+15f

nanofarad

Definition at line 143 of file GGEMSSystemOfUnits.hh.

◆ nm

__constant GGfloat nm = 1.e-6f

Nanometer

Definition at line 52 of file GGEMSSystemOfUnits.hh.

◆ ns

__constant GGfloat ns = 1.f

Nanosecond (REFERENCE)

Definition at line 84 of file GGEMSSystemOfUnits.hh.

◆ OHM

__constant GGfloat OHM = 1.602176452e-16f

OHM 1.60217e-16*(MeV/eplus)/(eplus/ns)

Definition at line 137 of file GGEMSSystemOfUnits.hh.

◆ Pa

__constant GGfloat Pa = 6.241509766e+3f

Pascal

Definition at line 121 of file GGEMSSystemOfUnits.hh.

◆ pb

__constant GGfloat pb = 1.e-34f

picobarn

Definition at line 73 of file GGEMSSystemOfUnits.hh.

◆ pc

__constant GGfloat pc = 3.0856775807e+19f

Parsec

Definition at line 66 of file GGEMSSystemOfUnits.hh.

◆ percent

__constant GGfloat percent = 0.01f

Percent value

Definition at line 188 of file GGEMSSystemOfUnits.hh.

◆ permillion

__constant GGfloat permillion = 0.000001f

Permillion value

Definition at line 190 of file GGEMSSystemOfUnits.hh.

◆ perthousant

__constant GGfloat perthousant = 0.001f

Perthousand value

Definition at line 189 of file GGEMSSystemOfUnits.hh.

◆ PeV

__constant GGfloat PeV = 1.e+9f

Petaelectronvolt

Definition at line 106 of file GGEMSSystemOfUnits.hh.

◆ pF

__constant GGfloat pF = 6.241509468e+12f

picofarad

Definition at line 144 of file GGEMSSystemOfUnits.hh.

◆ ps

__constant GGfloat ps = 1.e-3f

Picosecond

Definition at line 88 of file GGEMSSystemOfUnits.hh.

◆ qe

__constant GGfloat qe = 1.602176487e-19f

elementary charge in coulomb (C)

Definition at line 97 of file GGEMSSystemOfUnits.hh.

◆ rad

__constant GGfloat rad = 1.0f

Radian (REFERENCE)

Definition at line 76 of file GGEMSSystemOfUnits.hh.

◆ s

__constant GGfloat s = 1.e+9f

Second

Definition at line 85 of file GGEMSSystemOfUnits.hh.

◆ sr

__constant GGfloat sr = 1.0f

Steradian (REFERENCE)

Definition at line 81 of file GGEMSSystemOfUnits.hh.

◆ T

__constant GGfloat T = 0.001f

Tesla 0.001*megavolt*ns/mm2

Definition at line 150 of file GGEMSSystemOfUnits.hh.

◆ TeV

__constant GGfloat TeV = 1.e+6f

Teraelectronvolt

Definition at line 105 of file GGEMSSystemOfUnits.hh.

◆ uA

__constant GGfloat uA = 6.241509696e+3f

Microampere

Definition at line 128 of file GGEMSSystemOfUnits.hh.

◆ ub

__constant GGfloat ub = 1.e-28f

microbarn

Definition at line 71 of file GGEMSSystemOfUnits.hh.

◆ uCi

__constant GGfloat uCi = 3.7e-5f

Microcurie

Definition at line 170 of file GGEMSSystemOfUnits.hh.

◆ uF

__constant GGfloat uF = 6.241509468e+18f

microfarad

Definition at line 142 of file GGEMSSystemOfUnits.hh.

◆ uGy

__constant GGfloat uGy = 1.0e-18f

Microgray

Definition at line 176 of file GGEMSSystemOfUnits.hh.

◆ um

__constant GGfloat um = 1.e-3f

Micrometer

Definition at line 53 of file GGEMSSystemOfUnits.hh.

◆ us

__constant GGfloat us = 1.e+3f

Microsecond

Definition at line 87 of file GGEMSSystemOfUnits.hh.

◆ V

__constant GGfloat V = 1.e-6f

Volt

Definition at line 134 of file GGEMSSystemOfUnits.hh.

◆ W

__constant GGfloat W = 6.241509766e+3f

Watt

Definition at line 115 of file GGEMSSystemOfUnits.hh.

◆ Wb

__constant GGfloat Wb = 1000.0f

Weber 1000*megavolt*ns

Definition at line 147 of file GGEMSSystemOfUnits.hh.