PYTHIA
8.312
|
#include <Basics.h>
Public Member Functions | |
RotBstMatrix () | |
Constructors. | |
RotBstMatrix (const RotBstMatrix &Min) | |
RotBstMatrix & | operator= (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... | |
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.
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.
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.
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.
Boost and rotation that transforms from p1 and p2 to their rest frame with p1 along +z axis.
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.
|
friend |
Print a transformation matrix.
Print a rotation and boost matrix: operator overloading with friend.
Print a transformation matrix.