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
|
|
|
|
|