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
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) | |
virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
void | TObject::MakeZombie() |
void | SetBoost(Double_t, Double_t, Double_t) |
enum TObject::EStatusBits { | kCanDelete | |
kMustCleanup | ||
kObjInCanvas | ||
kIsReferenced | ||
kHasUUID | ||
kCannotPick | ||
kNoContextMenu | ||
kInvalidObject | ||
}; | ||
enum TObject::[unnamed] { | kIsOnHeap | |
kNotDeleted | ||
kZombie | ||
kBitMask | ||
kSingleKey | ||
kOverwrite | ||
kWriteDelete | ||
}; |
{}
multiply this vector by a matrix