protected:
TLorentzRotation TLorentzRotation(Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t) void SetBoost(Double_t, Double_t, Double_t) public:
TLorentzRotation TLorentzRotation() TLorentzRotation TLorentzRotation(const TRotation&) TLorentzRotation TLorentzRotation(const TLorentzRotation&) TLorentzRotation TLorentzRotation(Double_t, Double_t, Double_t) TLorentzRotation TLorentzRotation(const TVector3&) TLorentzRotation MatrixMultiplication(const TLorentzRotation&) const TLorentzRotation operator*(const TLorentzRotation& m) const TLorentzRotation Inverse() const void ~TLorentzRotation() TLorentzRotation& Boost(Double_t bx, Double_t by, Double_t bz) TLorentzRotation& Boost(const TVector3& b) static TClass* Class() TLorentzRotation& Invert() virtual TClass* IsA() const Bool_t IsIdentity() const Bool_t operator!=(const TLorentzRotation& r) const Double_t operator()(int, int) const TLorentzVector operator*(const TLorentzVector& p) const TLorentzRotation& operator*=(const TLorentzRotation& m) TLorentzRotation& operator=(const TLorentzRotation& r) TLorentzRotation& operator=(const TRotation& r) Bool_t operator==(const TLorentzRotation& r) const TLorentzRotation::TLorentzRotationRow operator[](int i) const TLorentzRotation& Rotate(Double_t angle, const TVector3& axis) TLorentzRotation& Rotate(Double_t angle, const TVector3* axis) TLorentzRotation& RotateX(Double_t angle) TLorentzRotation& RotateY(Double_t angle) TLorentzRotation& RotateZ(Double_t angle) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) TLorentzRotation& Transform(const TLorentzRotation& m) TLorentzRotation& Transform(const TRotation& m) Double_t TT() const Double_t TX() const Double_t TY() const Double_t TZ() const TLorentzVector VectorMultiplication(const TLorentzVector& p) const Double_t XT() const Double_t XX() const Double_t XY() const Double_t XZ() const Double_t YT() const Double_t YX() const Double_t YY() const Double_t YZ() const Double_t ZT() const Double_t ZX() const Double_t ZY() const Double_t ZZ() const
protected:
Double_t fxx Double_t fxy Double_t fxz Double_t fxt Double_t fyx Double_t fyy Double_t fyz Double_t fyt Double_t fzx Double_t fzy Double_t fzz Double_t fzt Double_t ftx Double_t fty Double_t ftz Double_t ftt
*-*-*-*-*-*-*-*-*-*-*-*The Physics Vector package *-*-*-*-*-*-*-*-*-*-*-* *-* ========================== * *-* The Physics Vector package consists of five classes: * *-* - TVector2 * *-* - TVector3 * *-* - TRotation * *-* - TLorentzVector * *-* - TLorentzRotation * *-* It is a combination of CLHEPs Vector package written by * *-* Leif Lonnblad, Andreas Nilsson and Evgueni Tcherniaev * *-* and a ROOT package written by Pasha Murat. * *-* for CLHEP see: http://wwwinfo.cern.ch/asd/lhc++/clhep/ * *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* /*
| xx xy xz xt |
|
|
| yx yy yz yt |
lambda = |
|
| zx zy zz zt |
|
|
| tx ty tz tt |
TLorentzRotation l; // l is
initialized as identity
TLorentzRotation m(l); // m = l
TRotation r;
TLorentzRotation lr(r);
TLorentzRotation lb1(bx,by,bz);
TVector3 b;
TLorentzRotation lb2(b);
The Matrix for a Lorentz boosts is:
| 1+gamma'*bx*bx gamma'*bx*by gamma'*bx*bz
gamma*bx |
| gamma'*bx*bz 1+gamma'*by*by gamma'*by*by
gamma*by |
| gamma'*bz*bx gamma'*bz*by 1+gamma'*bz*bz
gamma*bz |
| gamma*bx
gamma*by gamma*bz
gamma |
with the boost vector b=(bx,by,bz) and gamma=1/Sqrt(1-beta*beta) and gamma'=(gamma-1)/beta*beta.
Double_t xx;
TLorentzRotation l;
xx = l.XX(); // gets the xx component
xx = l(0,0); // gets the xx component
if (l==m) {...} // test for equality
if (l !=m) {...} // test for inequality
if (l.IsIdentity()) {...} // test for identity
TLorentzRotation a,b,c;
c = b*a; // product
c = a.MatrixMultiplication(b); // a is unchanged
a *= b; // Attention: a=a*b
c = a.Transform(b) // a=b*a then c=a
l1 = l2.Inverse(); // l1 is inverse of l2, l2 unchanged
l1 = l2.Invert(); // invert l2, then l1=l2
TLorentzVector v;
...
v=l.VectorMultiplication(v);
v = l * v;
v.Transform(l);
v *= l; // Attention v = l*v
*/
Double_t XX() const Double_t XY() const Double_t XZ() const Double_t XT() const Double_t YX() const Double_t YY() const Double_t YZ() const Double_t YT() const Double_t ZX() const Double_t ZY() const Double_t ZZ() const Double_t ZT() const Double_t TX() const Double_t TY() const Double_t TZ() const Double_t TT() const TLorentzRotation::TLorentzRotationRow operator[](int i) const Double_t operator()(int, int) const TLorentzRotation& operator=(const TLorentzRotation& r) TLorentzRotation& operator=(const TRotation& r) Bool_t operator==(const TLorentzRotation& r) const Bool_t operator!=(const TLorentzRotation& r) const Bool_t IsIdentity() const TLorentzVector VectorMultiplication(const TLorentzVector& p) const TLorentzVector operator*(const TLorentzVector& p) const TLorentzRotation operator*(const TLorentzRotation& m) const TLorentzRotation& operator*=(const TLorentzRotation& m) TLorentzRotation& Transform(const TLorentzRotation& m) TLorentzRotation& Transform(const TRotation& m) TLorentzRotation Inverse() const TLorentzRotation& Invert() TLorentzRotation& Boost(Double_t bx, Double_t by, Double_t bz) TLorentzRotation& Boost(const TVector3& b) TLorentzRotation& RotateX(Double_t angle) TLorentzRotation& RotateY(Double_t angle) TLorentzRotation& RotateZ(Double_t angle) TLorentzRotation& Rotate(Double_t angle, const TVector3& axis) TLorentzRotation& Rotate(Double_t angle, const TVector3* axis) TClass* Class() TClass* IsA() const void ShowMembers(TMemberInspector& insp, char* parent) void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) void ~TLorentzRotation()