herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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!):

See also
UtilityBase

Function Documentation

◆ 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
pThe momentum of the decaying particle
m1The mass of the first decay product
m2The mass of the second decay product
unitDir1Direction for the products in the rest frame of the decaying particle
p1The momentum of the first decay product
p2The 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
pThe momentum of the decaying particle
m1The mass of the first decay product
m2The mass of the second decay product
cosThetaStar1Polar angle in rest frame
phiStar1Azimuthal angle in rest frame
p1The momentum of the first decay product
p2The momentum of the second decay product

Definition at line 71 of file Kinematics.h.

References threeBodyDecay(), and unitDirection().