next up previous contents
Next: isNear() and howNear() for Up: HepLorentzRotation Class Previous: Components of HepLorentzRotations   Contents

Decomposition of Transformations into Boost and Rotation

A HepLorentzRotation $T$ may be decomposed either into the form $ B R $ or the form $ R B $. Here we will refer to the first form as $T = \acute{B}(T) \grave{R}(T)$ and the second as $T = \acute{R}(T) \grave{B}(T)$.

When decomposing into the product $ B R $, the boost will have the same last column as the HepLorentzRotation $T$. Using the value of $\gamma$ read off $T_{tt}$, one can apply equation ([*]) to find the matrix $\acute{B}(T)$ for that boost. Then

\begin{displaymath}
\grave{R}(T) = \left[ \acute{B}(T) \right] ^{-1} T
\end{displaymath} (176)

When decomposing into the product $ R B $, the boost will have the same last row as the HepLorentzRotation $T$. Again one can apply equation ([*]) to find the matrix (this time $\grave{B}(T)$) for that boost. Then

\begin{displaymath}
\acute{R}(T) = T \left[ \grave{B}(T) \right] ^{-1}
\end{displaymath} (177)

Naively applying the above equations leads to non-neglible round-off errors in the components of the Rotation--of order $3 \cdot 10^{-14}$ if the boost has $\beta = .95$. Since a Rotation representation which is non-orthogonal on that scale would lead to errors in distance measures of more than one part in $10^{-7}$, the decompose() method rectifies the Rotation before returning.


next up previous contents
Next: isNear() and howNear() for Up: HepLorentzRotation Class Previous: Components of HepLorentzRotations   Contents
Fermilab ZOOM Physics Class Library Task Force