ThePEG  1.8.0
Classes | Namespaces | Macros | Functions
LorentzVector.h File Reference

contains the LorentzVector class. More...

#include "LorentzVector.fh"
#include "ThePEG/Utilities/Direction.h"
#include "ThePEG/Utilities/UnitIO.h"
#include "LorentzRotation.h"
#include "ThreeVector.h"
#include "Transverse.h"

Go to the source code of this file.

Classes

class  ThePEG::LorentzVector< Value >
 A 4-component Lorentz vector. More...
 
class  ThePEG::LorentzVector< Value >
 A 4-component Lorentz vector. More...
 
struct  ThePEG::BinaryOpTraits< T, U >
 BinaryOpTraits should be specialized with typdefs called MulT and DivT which gives the type resulting when multiplying and dividing the template argument types respectively. More...
 
struct  ThePEG::BinaryOpTraits< LorentzVector< T >, U >
 Template for multiplication by scalar. More...
 
struct  ThePEG::BinaryOpTraits< T, LorentzVector< U > >
 Template for multiplication by scalar. More...
 

Namespaces

 ThePEG
 This is the main namespace within which all identifiers in ThePEG are declared.
 

Macros

#define ERROR_IF(condition, message)   if ( (condition) ) throw ThePEG::Exception( (message) , ThePEG::Exception::eventerror)
 Debug helper function.
 

Functions

template<typename Value >
bool ThePEG::operator== (const LorentzVector< Value > &a, const LorentzVector< Value > &b)
 Equality.
 
ostream & ThePEG::operator<< (ostream &os, const LorentzVector< double > &v)
 Stream output. Format $(x,y,z;t)$.
 
template<typename Value >
Value ThePEG::dirPlus (const LorentzVector< Value > &p)
 Return the positive light-cone component. More...
 
template<typename Value >
Value ThePEG::dirMinus (const LorentzVector< Value > &p)
 Return the negative light-cone component. More...
 
template<typename Value >
Value ThePEG::dirZ (const LorentzVector< Value > &p)
 Return the component along the positive z-axis. More...
 
template<typename Value >
double ThePEG::dirTheta (const LorentzVector< Value > &p)
 Return the polar angle wrt. More...
 
template<typename Value >
double ThePEG::dirCosTheta (const LorentzVector< Value > &p)
 Return the cosine of the polar angle wrt. More...
 
template<typename Value >
ThreeVector< Value > ThePEG::dirBoostVector (const LorentzVector< Value > &p)
 Get the boost vector for the LorentzVector. More...
 
template<typename Value >
LorentzVector< Value > ThePEG::lightCone (Value plus, Value minus, Value x, Value y)
 Create a LorentzVector giving its light-cone and transverse components. More...
 
template<typename Value >
LorentzVector< Value > ThePEG::lightCone (Value plus, Value minus)
 Create a LorentzVector giving its light-cone components. More...
 
template<typename Value >
LorentzVector< Value > ThePEG::lightCone (Value plus, Value minus, Transverse< Value > pt)
 Create a LorentzVector giving its light-cone and transverse components. More...
 
template<typename Value >
LorentzVector< Value > ThePEG::lightConeDir (Value plus, Value minus, Value x=Value(), Value y=Value())
 Create a LorentzVector giving its light-cone and transverse components. More...
 
template<typename Value >
LorentzVector< Value > ThePEG::lightConeDir (Value plus, Value minus, Transverse< Value > pt)
 Create a LorentzVector giving its light-cone and transverse components. More...
 
template<typename OStream , typename UnitT , typename Value >
void ThePEG::ounitstream (OStream &os, const LorentzVector< Value > &p, UnitT &u)
 Output a LorentzVector with units to a stream. More...
 
template<typename IStream , typename UnitT , typename Value >
void ThePEG::iunitstream (IStream &is, LorentzVector< Value > &p, UnitT &u)
 Input a LorentzVector with units from a stream. More...
 
Basic mathematical operations
template<typename Value >
LorentzVector< double > ThePEG::operator/ (const LorentzVector< Value > &v, Value a)
 
LorentzVector< Complex > ThePEG::operator/ (const LorentzVector< Complex > &v, Complex a)
 
template<typename Value >
LorentzVector< Value > ThePEG::operator- (const LorentzVector< Value > &v)
 
template<typename ValueA , typename ValueB >
LorentzVector< ValueA > ThePEG::operator+ (LorentzVector< ValueA > a, const LorentzVector< ValueB > &b)
 
template<typename ValueA , typename ValueB >
LorentzVector< ValueA > ThePEG::operator- (LorentzVector< ValueA > a, const LorentzVector< ValueB > &b)
 
template<typename Value >
LorentzVector< Value > ThePEG::operator* (const LorentzVector< Value > &a, double b)
 
template<typename Value >
LorentzVector< Value > ThePEG::operator* (double b, LorentzVector< Value > a)
 
template<typename ValueA , typename ValueB >
LorentzVector< typename BinaryOpTraits< ValueA, ValueB >::MulT > ThePEG::operator* (ValueB a, const LorentzVector< ValueA > &v)
 
template<typename ValueA , typename ValueB >
LorentzVector< typename BinaryOpTraits< ValueA, ValueB >::MulT > ThePEG::operator* (const LorentzVector< ValueA > &v, ValueB b)
 
template<typename ValueA , typename ValueB >
LorentzVector< typename BinaryOpTraits< ValueA, ValueB >::DivT > ThePEG::operator/ (const LorentzVector< ValueA > &v, ValueB b)
 
Scalar product with metric \f$(+,-,-,-)\f$
template<typename ValueA , typename ValueB >
BinaryOpTraits< ValueA, ValueB >::MulT ThePEG::operator* (const LorentzVector< ValueA > &a, const LorentzVector< ValueB > &b)
 
template<typename Value >
BinaryOpTraits< Value, Value >::MulT ThePEG::operator* (const LorentzVector< Value > &a, const LorentzVector< Value > &b)
 

Detailed Description

contains the LorentzVector class.

Lorentz vectors can be created with any unit type as template parameter. All basic mathematical operations are supported, as well as a subset of the CLHEP LorentzVector functionality.

Definition in file LorentzVector.h.