PYTHIA  8.312
Public Member Functions | Friends | List of all members
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 &, bool flip=false)
 
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,
bool  flip = false 
)

Rotation and boost that transforms from rest frame of p1 and p2 with p1 by default along +z axis to actual frame of p1 and p2. (Inverse of above.) The option flip handles the case when p1 is along the -z axis in the rest frame. This is accomplished by performing the rotation for p2 and negating the rotational part.

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.

Print a rotation and boost matrix: operator overloading with friend.

Print a transformation matrix.


The documentation for this class was generated from the following files: