* * $Id: loren4.F,v 1.1.1.1 1996/02/15 17:49:49 mclareni Exp $ * * $Log: loren4.F,v $ * Revision 1.1.1.1 1996/02/15 17:49:49 mclareni * Kernlib * * #include "kerngen/pilot.h" SUBROUTINE LOREN4 (DIR,P4IN,P4OUT) C C CERN PROGLIB# U101 LOREN4 .VERSION KERNFOR 4.07 830624 C ORIG. 20/02/68 C #if !defined(CERNLIB_B48M) DOUBLE PRECISION PCM2, ONMCM, EPBETA, PROD #endif DIMENSION DIR(4),P4IN(4),P4OUT(4) C C-- VN(A) MEANS N-VECTOR A C-- GAMMA=ECM/MCM C-- EPBETA=ECM*V3(PCM)*V3(BETA) C-- V3(BETA)=V3(PCM)/ECM C PCM2=DIR(1)*DIR(1)+DIR(2)*DIR(2)+DIR(3)*DIR(3) #if defined(CERNLIB_B48M) ONMCM=1.D0/ SQRT (DIR(4)*DIR(4)-PCM2) #endif #if !defined(CERNLIB_B48M) ONMCM=1.D0/DSQRT (DIR(4)*DIR(4)-PCM2) #endif EPBETA=P4IN(1)*DIR(1)+P4IN(2)*DIR(2)+P4IN(3)*DIR(3) PROD=EPBETA*(DIR(4)*ONMCM-1.D0)/PCM2-P4IN(4)*ONMCM P4OUT(4)=ONMCM*(P4IN(4)*DIR(4)-EPBETA) DO 50 I=1,3 50 P4OUT(I)=P4IN(I)+DIR(I)*PROD RETURN END