57 lines
3.6 KiB
C++
57 lines
3.6 KiB
C++
#ifndef ULIB_MATH_UNITS_H
|
|
#define ULIB_MATH_UNITS_H
|
|
|
|
|
|
#ifdef HAVE_GEANT4
|
|
#include <CLHEP/Units/PhysicalConstants.h>
|
|
#include <CLHEP/Units/SystemOfUnits.h>
|
|
#else
|
|
#include "CLHEP_defs.hh"
|
|
#endif
|
|
|
|
namespace uLib {
|
|
using namespace CLHEP;
|
|
|
|
inline namespace literals {
|
|
constexpr double operator"" _m(long double v) { return static_cast<double>(v) * CLHEP::meter; }
|
|
constexpr double operator"" _cm(long double v) { return static_cast<double>(v) * CLHEP::centimeter; }
|
|
constexpr double operator"" _mm(long double v) { return static_cast<double>(v) * CLHEP::millimeter; }
|
|
constexpr double operator"" _um(long double v) { return static_cast<double>(v) * CLHEP::micrometer; }
|
|
constexpr double operator"" _nm(long double v) { return static_cast<double>(v) * CLHEP::nanometer; }
|
|
constexpr double operator"" _km(long double v) { return static_cast<double>(v) * CLHEP::kilometer; }
|
|
|
|
constexpr double operator"" _m(unsigned long long v) { return static_cast<double>(v) * CLHEP::meter; }
|
|
constexpr double operator"" _cm(unsigned long long v) { return static_cast<double>(v) * CLHEP::centimeter; }
|
|
constexpr double operator"" _mm(unsigned long long v) { return static_cast<double>(v) * CLHEP::millimeter; }
|
|
constexpr double operator"" _um(unsigned long long v) { return static_cast<double>(v) * CLHEP::micrometer; }
|
|
constexpr double operator"" _nm(unsigned long long v) { return static_cast<double>(v) * CLHEP::nanometer; }
|
|
constexpr double operator"" _km(unsigned long long v) { return static_cast<double>(v) * CLHEP::kilometer; }
|
|
|
|
constexpr double operator"" _deg(long double v) { return static_cast<double>(v) * CLHEP::degree; }
|
|
constexpr double operator"" _rad(long double v) { return static_cast<double>(v) * CLHEP::radian; }
|
|
constexpr double operator"" _deg(unsigned long long v) { return static_cast<double>(v) * CLHEP::degree; }
|
|
constexpr double operator"" _rad(unsigned long long v) { return static_cast<double>(v) * CLHEP::radian; }
|
|
|
|
constexpr double operator"" _ns(long double v) { return static_cast<double>(v) * CLHEP::nanosecond; }
|
|
constexpr double operator"" _s(long double v) { return static_cast<double>(v) * CLHEP::second; }
|
|
constexpr double operator"" _ms(long double v) { return static_cast<double>(v) * CLHEP::millisecond; }
|
|
constexpr double operator"" _ns(unsigned long long v) { return static_cast<double>(v) * CLHEP::nanosecond; }
|
|
constexpr double operator"" _s(unsigned long long v) { return static_cast<double>(v) * CLHEP::second; }
|
|
constexpr double operator"" _ms(unsigned long long v) { return static_cast<double>(v) * CLHEP::millisecond; }
|
|
|
|
constexpr double operator"" _MeV(long double v) { return static_cast<double>(v) * CLHEP::megaelectronvolt; }
|
|
constexpr double operator"" _eV(long double v) { return static_cast<double>(v) * CLHEP::electronvolt; }
|
|
constexpr double operator"" _keV(long double v) { return static_cast<double>(v) * CLHEP::kiloelectronvolt; }
|
|
constexpr double operator"" _GeV(long double v) { return static_cast<double>(v) * CLHEP::gigaelectronvolt; }
|
|
constexpr double operator"" _TeV(long double v) { return static_cast<double>(v) * CLHEP::teraelectronvolt; }
|
|
constexpr double operator"" _MeV(unsigned long long v) { return static_cast<double>(v) * CLHEP::megaelectronvolt; }
|
|
constexpr double operator"" _eV(unsigned long long v) { return static_cast<double>(v) * CLHEP::electronvolt; }
|
|
constexpr double operator"" _keV(unsigned long long v) { return static_cast<double>(v) * CLHEP::kiloelectronvolt; }
|
|
constexpr double operator"" _GeV(unsigned long long v) { return static_cast<double>(v) * CLHEP::gigaelectronvolt; }
|
|
}
|
|
}
|
|
|
|
#endif
|
|
|
|
|