herwig is hosted by Hepforge, IPPP Durham
 Herwig  7.1.4
Herwig::Kinematics Namespace Reference

This is a namespace which provides some useful methods for kinematics computation, as the two body decays. More...

## Functions

bool twoBodyDecay (const Lorentz5Momentum &p, const Energy m1, const Energy m2, const Axis &unitDir1, Lorentz5Momentum &p1, Lorentz5Momentum &p2)
Calculate the momenta for a two body decay The return value indicates success or failure. More...

Axis unitDirection (const double cosTheta, const double phi)
It returns the unit 3-vector with the given cosTheta and phi.

bool twoBodyDecay (const Lorentz5Momentum &p, const Energy m1, const Energy m2, const double cosThetaStar1, const double phiStar1, Lorentz5Momentum &p1, Lorentz5Momentum &p2)
Calculate the momenta for a two body decay The return value indicates success or failure. More...

bool threeBodyDecay (Lorentz5Momentum p0, Lorentz5Momentum &p1, Lorentz5Momentum &p2, Lorentz5Momentum &p3, double(*fcn)(Energy2, Energy2, Energy2, InvEnergy4)=NULL)
As the name implies, this takes the momentum p0 and does a flat three body decay into p1..p3. More...

Energy pstarTwoBodyDecay (const Energy M, const Energy m1, const Energy m2)
For the two body decay M -> m1 + m2 it gives the module of the 3-momentum of the decay product in the rest frame of M.

void generateAngles (double &ct, double &az)
This just generates angles. More...

## Detailed Description

This is a namespace which provides some useful methods for kinematics computation, as the two body decays.

NB) For other useful kinematical methods (and probably even those implemented in Kinematics class!):

UtilityBase

## ◆ generateAngles()

 void Herwig::Kinematics::generateAngles ( double & ct, double & az )
inline

This just generates angles.

First flat -1..1, second flat 0..2Pi

Definition at line 103 of file Kinematics.h.

References generateAngles(), and ThePEG::UseRandom::rnd().

Referenced by generateAngles().

## ◆ threeBodyDecay()

 bool Herwig::Kinematics::threeBodyDecay ( Lorentz5Momentum p0, Lorentz5Momentum & p1, Lorentz5Momentum & p2, Lorentz5Momentum & p3, double(*)(Energy2, Energy2, Energy2, InvEnergy4) fcn = NULL )

As the name implies, this takes the momentum p0 and does a flat three body decay into p1..p3.

The argument fcn is used to add additional weights. If it is not used, the default is just flat in phasespace. The return value indicates success or failure.

Referenced by twoBodyDecay().

## ◆ twoBodyDecay() [1/2]

 bool Herwig::Kinematics::twoBodyDecay ( const Lorentz5Momentum & p, const Energy m1, const Energy m2, const Axis & unitDir1, Lorentz5Momentum & p1, Lorentz5Momentum & p2 )

Calculate the momenta for a two body decay The return value indicates success or failure.

Parameters
 p The momentum of the decaying particle m1 The mass of the first decay product m2 The mass of the second decay product unitDir1 Direction for the products in the rest frame of the decaying particle p1 The momentum of the first decay product p2 The momentum of the second decay product

## ◆ twoBodyDecay() [2/2]

 bool Herwig::Kinematics::twoBodyDecay ( const Lorentz5Momentum & p, const Energy m1, const Energy m2, const double cosThetaStar1, const double phiStar1, Lorentz5Momentum & p1, Lorentz5Momentum & p2 )
inline

Calculate the momenta for a two body decay The return value indicates success or failure.

Parameters
 p The momentum of the decaying particle m1 The mass of the first decay product m2 The mass of the second decay product cosThetaStar1 Polar angle in rest frame phiStar1 Azimuthal angle in rest frame p1 The momentum of the first decay product p2 The momentum of the second decay product

Definition at line 71 of file Kinematics.h.

References threeBodyDecay(), and unitDirection().