File: Units.h
This is the declaration of a number of classes for variables with
dimension. Currently they are all typedefs of double, but in the
future the SIUnits package will be used.
Here is also defined helper-classes and helper functions to read
and write variables with dimensions. As an example, to read and
write an energy variable e in units of GeV, use: os
<< ounit(e, GeV) and is >> iunit(e,
GeV)
See
also:
namespace Pythia7
namespace Units
static const Energy2 GeV2 = GeV*GeV;
The following should be used for defining return types for
templated functions involving multiplication.
template <typename T>
STRUCT
MultiplicationTraits
Public members:
template <typename T>
STRUCT
MultiplicationTraits<
Public members:
template <>
STRUCT
MultiplicationTraits<
Public members:
typedef double ResultType;
template <>
STRUCT
MultiplicationTraits<
Public members:
typedef double ResultType;
When including the SIUnits package more specializations should be
added for Energy, Length, etc.
TYPE DEFINITIONS
double Mass;
double Energy;
double Time;
double Length;
double Charge;
double AngularMomentum;
double Area;
Area CrossSection;
double Energy2;
double Energy4;
double Energy2XSec; // CrossSection*Energy2
double DiffXSec; // CrossSection/Energy2
double Diff2XSec; // CrossSection/Energy2/Energy2
double Diff3XSec; // CrossSection/Energy2/Energy2/Energy2
double InvEnergy2; // 1/Energy2
double InvEnergy; // 1/Energy2
Energy2 Scale;
Vector3 Point;
Vector3 Distance;
Vector3 Momentum3;
LorentzVector LorentzDistance;
Lorentz5Vector<Length> Lorentz5Distance;
LorentzVector LorentzPoint;
LorentzVector LorentzMomentum;
Lorentz5Vector<Energy> Lorentz5Momentum;
Transverse<Energy> TransverseMomentum;
DEFINED MACROS
INCLUDED FILES
Pythia7/CLHEPWrap/Lorentz5Vector.fh
Pythia7/CLHEPWrap/LorentzVector.fh
Pythia7/CLHEPWrap/ThreeVector.fh
Pythia7/CLHEPWrap/Transverse.fh
Pythia7/CLHEPWrap/SystemOfUnits.h
Pythia7/Utilities/UnitIO.h
vector