PYTHIA  8.303
RotBstMatrix Class Reference

`#include <Basics.h>`

## Public Member Functions

RotBstMatrix ()
Constructors.

RotBstMatrix (const RotBstMatrix &Min)

RotBstMatrixoperator= (const RotBstMatrix &Min)

void rot (double=0., double=0.)
Member functions. More...

void rot (const Vec4 &p)
Rotate so that vector originally along z axis becomes parallel with p.

void bst (double=0., double=0., double=0.)
Boost with velocity vector (betaX, betaY, betaZ). More...

void bst (const Vec4 &)
Boost so that vector originally at rest obtains same velocity as p.

void bstback (const Vec4 &)
Boost so vector originally with same velocity as p is brought to rest.

void bst (const Vec4 &, const Vec4 &)
Boost that transforms p1 to p2, where p1^2 = p2^2 is assumed.

void toCMframe (const Vec4 &, const Vec4 &)

void fromCMframe (const Vec4 &, const Vec4 &)

void toSameVframe (const Vec4 &, const Vec4 &)

void fromSameVframe (const Vec4 &, const Vec4 &)

void rotbst (const RotBstMatrix &)
Combine existing rotation/boost matrix with another one.

void invert ()
Invert the rotation and boost.

RotBstMatrix inverse () const

void reset ()
Reset to diagonal matrix.

double value (int i, int j)
Return value of matrix element.

double deviation () const
Crude estimate deviation from unit matrix.

Vec4 operator* (Vec4 p) const
Multiplication.

RotBstMatrix operator* (RotBstMatrix R) const

## Friends

class Vec4
Private members to be accessible from Vec4.

ostream & operator<< (ostream &, const RotBstMatrix &)
Print a transformation matrix. More...

## Detailed Description

RotBstMatrix class. This class implements 4 * 4 matrices that encode an arbitrary combination of rotations and boosts, that can be applied to Vec4 four-vectors.

## Member Function Documentation

 void bst ( double betaX = `0.`, double betaY = `0.`, double betaZ = `0.` )

Boost with velocity vector (betaX, betaY, betaZ).

Set up boost matrix.

Boost current matrix correspondingly.

 void fromCMframe ( const Vec4 & p1, const Vec4 & p2 )

Rotation and boost that transforms from rest frame of p1 and p2 with p1 along +z axis to actual frame of p1 and p2. (Inverse of above.)

 void fromSameVframe ( const Vec4 & p1, const Vec4 & p2 )

Rotation and boost that transforms from equal-velocity frame of p1 and p2 with p1 along +z axis to actual frame of p1 and p2. (Inverse of above.)

Boost and rotation to CM frame along +-z axis.

Initial boost from equal-velocity to equal-momentum frame.

Rotation and boost back to lab frame.

 void rot ( double theta = `0.`, double phi = `0.` )

Member functions.

Rotate by polar angle theta and azimuthal angle phi.

Set up rotation matrix.

Rotate current matrix accordingly.

 void toCMframe ( const Vec4 & p1, const Vec4 & p2 )

Boost and rotation that transforms from p1 and p2 to their rest frame with p1 along +z axis.

 void toSameVframe ( const Vec4 & p1, const Vec4 & p2 )

Boost and rotation that transforms from p1 and p2 to the frame where they have opposite same-magnitude velocities with p1 along +z axis.

Boost and rotate (p1, p2) = (dir, inv) to CM frame along +-z axis.

Final boost to frame with equal velocities oppositely directed.

## Friends And Related Function Documentation

 ostream& operator<< ( ostream & os, const RotBstMatrix & M )
friend

Print a transformation matrix.