ElectronVolt.hh
Go to the documentation of this file.
1 
4 #pragma once
5 
6 #include <boost/units/base_dimension.hpp>
7 #include <boost/units/base_unit.hpp>
8 #include <boost/units/quantity.hpp>
9 #include <boost/units/systems/si/energy.hpp>
10 
11 #if BOOST_UNITS_HAS_BOOST_TYPEOF
12 #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
13 #endif
14 
15 namespace boca
16 {
17 
18 namespace units
19 {
20 
25 namespace electronvolt
26 {
27 
28 struct EnergyBaseDimension : boost::units::base_dimension<EnergyBaseDimension, 1> {};
29 
30 #if BOOST_UNITS_HAS_BOOST_TYPEOF
31 BOOST_TYPEOF_REGISTER_TYPE(boca::EnergyBaseDimension)
32 #endif
33 
34 using EnergyDimension = EnergyBaseDimension::dimension_type;
35 struct EnergyBaseUnit : public boost::units::base_unit<EnergyBaseUnit, EnergyDimension, 100> {
36  static std::string name();
37  static std::string symbol();
38 };
39 
40 #if BOOST_UNITS_HAS_BOOST_TYPEOF
41 BOOST_TYPEOF_REGISTER_TYPE(boca::EnergyBaseUnit)
42 #endif
43 
44 using System = boost::units::make_system <EnergyBaseUnit>::type;
45 using Dimensionless = boost::units::unit<boost::units::dimensionless_type, System>;
46 using Energy = boost::units::unit<EnergyDimension, System>;
47 }
48 
51 
56 using Energy = boost::units::quantity<electronvolt::Energy>;
57 
62 using Mass = Energy;
63 
68 using Momentum = Energy;
69 std::string Name(Energy const& energy);
70 
71 Momentum const at_rest = 0. * ElectronVolt;
72 Mass const massless = 0. * ElectronVolt;
73 
74 using EnergySquare = typename boost::units::multiply_typeof_helper<Energy, Energy>::type;
75 using MassSquare = typename boost::units::multiply_typeof_helper<Mass, Mass>::type;
76 using MomentumSquare = typename boost::units::multiply_typeof_helper<Momentum, Momentum>::type;
77 
78 }
79 
80 using namespace units;
81 
82 }
83 
84 BOOST_UNITS_DEFINE_CONVERSION_FACTOR(boca::units::electronvolt::EnergyBaseUnit, boost::units::si::energy, double, 1.602176565e-19);
Momentum const at_rest
Definition: ElectronVolt.hh:71
typename boost::units::multiply_typeof_helper< Mass, Mass >::type MassSquare
Definition: ElectronVolt.hh:75
boost::units::make_system< EnergyBaseUnit >::type System
Definition: ElectronVolt.hh:44
boost::units::unit< boost::units::dimensionless_type, System > Dimensionless
Definition: ElectronVolt.hh:45
BOOST_UNITS_STATIC_CONSTANT(Barn, barn::Area)
typename boost::units::multiply_typeof_helper< Energy, Energy >::type EnergySquare
Definition: ElectronVolt.hh:74
typename boost::units::multiply_typeof_helper< Momentum, Momentum >::type MomentumSquare
Definition: ElectronVolt.hh:76
BOOST_UNITS_DEFINE_CONVERSION_FACTOR(boca::units::electronvolt::EnergyBaseUnit, boost::units::si::energy, double, 1.602176565e-19)
std::string Name(Energy const &energy)
Definition: ElectronVolt.cpp:34
Boosted Collider Analysis.
Definition: Analysis.hh:15
boost::units::quantity< electronvolt::Energy > Energy
Energy measured in electronvolt.
Definition: ElectronVolt.hh:56
Definition: ElectronVolt.hh:35
Mass const massless
Definition: ElectronVolt.hh:72
boost::units::unit< EnergyDimension, System > Energy
Definition: ElectronVolt.hh:46
Energy Momentum
Momentum measured in electronvolt.
Definition: ElectronVolt.hh:68
EnergyBaseDimension::dimension_type EnergyDimension
Definition: ElectronVolt.hh:34
Energy Mass
Mass measured in electronvolt.
Definition: ElectronVolt.hh:62