10 #define ThePEG_Units_H
12 #include "ThePEG/Vectors/Lorentz5Vector.fh"
13 #include "ThePEG/Vectors/LorentzVector.fh"
14 #include "ThePEG/Vectors/ThreeVector.fh"
15 #include "ThePEG/Vectors/Transverse.fh"
16 #include "ThePEG_Qty.h"
90 typedef QTY<0, -2, 0>::Type InvEnergy2;
159 const Energy keV = 1.0e-3 * MeV;
160 const Energy GeV = 1.0e3 * MeV;
161 const Energy TeV = 1.0e6 * MeV;
163 const Energy2 MeV2 = MeV * MeV;
164 const Energy2 GeV2 = GeV * GeV;
165 const InvEnergy InvGeV = 1/GeV;
167 const Length meter = 1.0e3 * millimeter;
168 const Length mm = millimeter;
169 const Length centimeter = 10.0*millimeter;
170 const Length micrometer = 1.0e-3 * millimeter;
171 const Length nanometer = 1.0e-6 * millimeter;
172 const Length picometer = 1.0e-9 * millimeter;
173 const Length femtometer = 1.0e-12 * millimeter;
175 const Area picobarn = 1.0e-40 * meter * meter;
176 const Area nanobarn = 1.0e3 * picobarn;
177 const Area microbarn = 1.0e6 * picobarn;
178 const Area millibarn = 1.0e9 * picobarn;
179 const Area barn = 1.0e12 * picobarn;
180 const Area femtobarn = 1.0e-3 * picobarn;
193 namespace UnitRemoval {
198 const Units::Energy2 E2 = E*E;
203 const Units::InvEnergy2 InvE2 = 1.0/E2;
Helper class to define unitful quantities.
ThreeVector< Length > Point
A point in three-dimensional euclidean space.
QTY<-1, 1, 0 >::Type Tension
Tension.
const QTY< 1, 1, 0 >::Type hbar_Planck
Planck's constant (PDG 2006 value 197.326968(17) MeV fm)
LorentzVector< Energy > LorentzMomentum
A momentum in four-dimensional space-time.
QTY<-2, 0, 0 >::Type InvArea
Inverse Area.
Lorentz5Vector< Energy > Lorentz5Momentum
A momentum in four-dimensional space-time with an explicit invariant mass component.
This is the main namespace within which all identifiers in ThePEG are declared.
Area CrossSection
Cross section is an area.
Lorentz5Vector< Length > Lorentz5Distance
A distance in four-dimensional space-time with an explicit invariant time component.
QTY< 2,-6, 0 >::Type Diff3XSec
CrossSection/Energy6.
ThreeVector< double > Boost
A three-dimensional boost vector.
QTY< 0, 1, 0 >::Type Energy
Energy.
double Velocity
Velocities are dimensionless fractions of c.
QTY< 1, 0, 0 >::Type Length
Length.
LorentzVector< Length > LorentzPoint
A point in four-dimensional space-time.
Length Time
Time has the same unit as Length.
ThreeVector< Length > Distance
A distance in three-dimensional euclidean space.
QTY<-1, 0, 0 >::Type InvLength
Inverse Length.
QTY< 1, 1, 0 >::Type AngularMomentum
Angular momentum.
LorentzVector< Length > LorentzDistance
A distance in four-dimensional space-time.
QTY< 2,-2, 0 >::Type DiffXSec
CrossSection/Energy2.
Transverse< Energy > TransverseMomentum
Transverse components of a momentum.
ThreeVector< Energy > Momentum3
A momentum in three-dimensional euclidean space.
QTY< 2,-4, 0 >::Type Diff2XSec
CrossSection/Energy4.
Type traits for built-in types.
Energy2 Scale
Scale is the same as a squared energy.
This template class allows the compiler to check calculations with physical quantities for dimensiona...
QTY< 2, 2, 0 >::Type Energy2XSec
CrossSection*Energy2.
QTY< 2, 0, 0 >::Type Area
Area will be assumed to be Length .
QTY< 0, 0, 1 >::Type Charge
Charge.
ThreeVector< double > Axis
A direction in three-dimensional euclidean space.
const QTY< 1, 1, 0 >::Type hbarc
Planck's constant times c (PDG 2006 value 197.326968(17) MeV fm)
Energy Mass
Mass has the same unit as Energy <=> c == 1.