! GeBoost.f90 ! ! Here p_old is the CM 4-momentum in the moving frame, ! p_frame is the 4-momentum of the moving frame in the lab. ! To transform from particle frame to lab, p_frame is p of particle ! in the lab. ! To transform from the lab into the particle frame, p_frame is -p ! of particle in the lab. ! (see CERNLIB function LOREN4 (U101)) ! ! Detlef Irmscher, Thomas Ullrich, Uni Heidelberg, September 1993 ! Last update: 17.3.95 tu ! function GeBoost (p_old, p_frame) use f90_kind use mom_m implicit none type(mom4) :: GeBoost type(mom4), intent(in) :: p_old, p_frame type(mom3) :: eta, pl real(kind=double) :: massp, gamma massp = abs(p_frame) ! mass of parent eta = (-1./massp)*p_frame%p ! gamma*beta gamma = p_frame%E/massp pl = ((p_old%p*eta)/(eta*eta))*eta ! longitudinal momentum GeBoost%p = p_old%p + (gamma - 1.)*pl - p_old%E*eta GeBoost%E = gamma*p_old%E - eta*p_old%p end function GeBoost