Home · Overview · Users Guide · Reference Guide

Kinematics Class Reference

Kinematics is a utility class to calculate and transform kinematic variables. More...

 #include "Kinematics.h"

Public Member Functions

static double xprobe(double Q2, double W2, double vmM)
static TLorentzVector electronBeam(double eE)
static TLorentzVector hadronBeam(double eH)
static double s(const TLorentzVector& e, const TLorentzVector& p)
static double s(double eE, double hE)
static double x(double Q2, double W2)
static double y(double Q2, double x, double s)
static double ymin(double s, double vmM)
static double ymax(double s, double vmM)
static double W2(double Q2, double x)
static double W2(double Q2, double xprobe, double vmM)
static double W2min(double vmM)
static double W2max(double s)
static double Q2min(double y)
static double Q2max(double s)
static double xpomeron(double t, double Q2, double W2, double vmM)
static double tmax(double xpom)
static double tmax(double t, double Q2, double W2, double vmM)
static double tmin(double hE)
static bool valid(double s, double t, double Q2, double W2, double vmMass,
static bool error()

Detailed Description

The Kinematics class consists of a rich set of static methods that allows one to calculate kinematic variables common in DIS. These methods are heavily used in Sartre but are also quite useful for the user. All calculation are conducted in the most precise way, i.e. without neglecting the nucleon mass or even the electron mass. We strongly recommend to use these methods. If an error occurs (e.g. invalid range) an internal error flag is set that can be checked using Kinematics::error().


Public Member Function Documentation

static double xprobe(double Q2, double W2, double vmM)

For vector meson production, the gluon density is typically evaluated at x = xBJ(1 + MV2/Q2). Here we use the (for our purposes) slightly more robust equivalent expression x = (Q2+ MV2)/(W2 - mp2 + Q2). If x < 0 or x > 1 the error flag is set.

static TLorentzVector electronBeam(double eE)

Returns Lorentz vector of the electron beam for given beam energy eE. Note that px=py=0 and z<0 (Sartre conventions).

static TLorentzVector hadronBeam(double eH)

Returns Lorentz vector of the hadron beam for given beam energy eH. Note that px=py=0 and pz > 0 (Sartre conventions).
Note that the units are always per nucleon.

static double s(const TLorentzVector& e, const TLorentzVector& p)

Returns the center-of-mass energy squared for electron beam e, and hadron beam 4-vector p.

static double s(double eE, double hE)

Overloaded function. Same as s(Kinematics::electronBeam(eE), Kinematics::hadronBeam(eH)).

static double x(double Q2, double W2)

Returns Bjorken x for given Q2 and W2 values.

static double y(double Q2, double x, double s)

Returns inelasticity for given Q2, W2, and s.

static double ymin(double s, double vmM)

Returns smallest allowed inelasticity value (kinematic limit) for given s and vector meson mass vmM.

static double ymax(double s, double vmM)

Returns largest allowed inelasticity value (kinematic limit) for given s and vector meson mass vmM.

static double W2(double Q2, double x)

Returns W2 for given Q2 and Bjorken x.

static double W2(double Q2, double xprobe, double vmM)

Returns W2 for given Q2, xprobe and vector meson mass vmM. For xprobe see xprobe().

static double W2min(double vmM)

Returns smallest allowed W2 value (kinematic limit) for vector meson mass vmM.

static double W2max(double s)

Returns largest allowed W2 value (kinematic limit) for given s.

static double Q2min(double y)

Returns smallest allowed Q2 value (kinematic limit) for given inelasticity y.

static double Q2max(double s)

Returns largest allowed Q2 value (kinematic limit) for given s.

static double xpomeron(double t, double Q2, double W2, double vmM)

Returns xIP for given t, Q2, W2,and vector meson mass MV.

static double tmax(double xpom)

Returns largest kinematically allowed t for a given xIP. Note that this value is incorrectly often referred to as tmin ignoring the fact that t < 0. See also notes at the second version of tmax().

static double tmax(double t, double Q2, double W2, double vmM)

Returns largest kinematically allowed t for given values of t, Q2, W2, and vector meson mass vmM. At a first glance this looks strange since tmax depends on t. The definition for tmax we use is tmax = - Mp2 xIP2 / (1 - xIP). Unfortunately xIP depends on t if no approximations are included. For all practical purposes setting t=0 is a good approximation.

Note that the returned value is incorrectly often referred to as tmin ignoring the fact that t < 0.

static double tmin(double hE)

Returns largest kinematically allowed |t| for a given hadron beam energy, hE.

static bool valid(double s, double t, double Q2, double W2, double vmMass, bool useTrueXp, bool verbose)

Returns true if the set of kinematic variables (s, t, Q2, W2 and Mp) are kinematically valid. Flag useTrueXp controls whether the exact calculation of xIP should be used (i.e., not neglecting t) or if the approximation for xIP with t=0 is to be used. If the verbose flag is on the method will print out the first encountered reason why the set of kinematic variables is not valid.

static bool error()

Returns the error flag of the last call. If true an error has occurred and the result cannot be trusted.

 

   

Last Update: January 8, 2013