Files
uLib/src/Math/Units.h
AndreaRigoni 148c046a02 fix warnings
2026-04-03 13:09:08 +00:00

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