Lets assume we have a two body scattering like;

$$a + b = c+d$$

In the lab frame particle $a$ is moving with a certain beam energy $E_a$, and hits stationary particle $b$. Before the collision, the four momentum components for particle $a$ is $(E_a, 0,0, P_z)$ and for particle $b$ are $(m_b,0,0,0 )$.

I have all four momentum components (after the collision in lab frame) for particle $c$, which is $(E_c, p_{xc}, p_{yc}, P_{zc})$. How can I get the four momentum components of $c$ in the CM frame?

I do know how to write down the total four vector of $(a+b)$ in the CM and Lab frames and transfer them. But knowing all the four vector components of particle $c$, how can I get the four vector of particle $c$ in CM frame?

I want to do the computation in C++, so any mathematical trick how to get four momentum of $c$ particle in CM frame would be very helpful.

Any suggestions will be appreciated.


  1. I said the decay assuming the c particle could decay, but if I do know all the momentum components, I can explain that thing, so please ignore that
  2. Actually I know the four vector of (a+b) in CM frame calculation and also I also know all the all initial four vector of particle c in LAB frame, my concern is to get the four vector of c particle in CM frame (not lab frame, coz I know and I have the numerical value of the four components too) in terms of LAB frame.
  • 2
    $\begingroup$ Are you indeed describing a particle decay ? It looks like an inelastic collision. Please clarify abbreviations like CM (centre of mass or momentum) . By "transfer" do you mean "transform" ? Please show how you "transferred" the sum of momenta. What is the problem to apply the same approach to the momentum of c? It also helps to use consistent notation. $\endgroup$
    – my2cts
    Jun 28, 2018 at 8:04
  • $\begingroup$ The name is Lorentz by the way. $\endgroup$
    – my2cts
    Jun 28, 2018 at 16:12

2 Answers 2


Let $\tilde p_{com}=\tilde p_a+ \tilde p_b$, which you say you know.
Assuming that $\tilde p_{com}$ is future-timelike [and assuming signature $(+,-,-,-)$],
the 4-velocity along $\tilde p_{com}$ is this unit-vector $$\hat t_{com}=\frac{1}{\sqrt{\tilde p_{com}\cdot\tilde p_{com}}}\tilde p_{com}.$$

Given any 4-vector $\tilde Q$,
its t-component in the com-frame is $$Q_{t,com}=\tilde Q\cdot \hat t_{com}.$$

For simplicity, let's assume that all y- and z-components are zero.

To find the unit vector of the x-axis in the com-frame, you can use this trick:
if $\hat t_{com}=A \hat t + B \hat x$, then $\hat x_{com}=B \hat t + A \hat x$. [Check that $\hat x_{com}$ is unit and is orthogonal to $\hat t_{com}$.]

Thus, the x-component of $\tilde Q$ in the com-frame is $$Q_{x,com}=-\tilde Q\cdot \hat x_{com}.$$

Both dot-products $Q_{t,com}$ and $Q_{x,com}$ can be evaluated using components in the lab frame.

(I'll leave all the algebra and C++-coding for you to do.)

You could also find the spatial velocity $\beta_{com}$ of $\tilde p_{com}$ [e.g. $\beta_{com}=\frac{p_{com,x}}{p_{com,t}}$ in the simple case], then write down a Lorentz transformation matrix with $\beta_{com}$. Then apply that transformation matrix to $\tilde Q$.


You are leaving some degrees of freedom on the table, since you know the masses of the initial particles:

$$ E_a = \sqrt{P_Z^2 + M_a^2} $$

and of course,

$$ E_b = M_b $$.

Hence the initial 4 momentum in the lab is:

$$ p_{\mu} = (M_b + \sqrt{P_Z^2 + M_a^2}, 0, 0, P_Z) $$

Now find the boost that zeros the momentum and apply it to:

$$ p_C = (E_C, \vec p_c) $$

  • $\begingroup$ Actually this calculation I did and also I know the all initial four vector of (a+b) in CM frame, my concern is to get the four vector of c particle in CM frame (not lab frame, coz I know and I have the numerical value of the four components too) and my concern is how four momentum of particle c in Lab frame (which I already have) can give me the four momentum of the c particle at CM frame. $\endgroup$
    – user193422
    Jun 28, 2018 at 17:57
  • $\begingroup$ the velocity of the COM is $\vec p/E$. Use that to boost from lab to COM. $\endgroup$
    – JEB
    Jun 29, 2018 at 3:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.