1 #include "isajet/pilot.h"
2 SUBROUTINE RESCAL(N1,N2,PSUM,IFAIL)
3 C RESCALE MOMENTA OF PARTICLES N1...N2 TO GIVE TOTAL
5 C RETURN IFAIL=0 IF OK, IFAIL=1 IF NO GOOD.
6 #include "isajet/itapes.inc"
7 #include "isajet/partcl.inc"
8 DIMENSION PSUM(5),PADD(5),BETA(3)
10 C ORIGIONAL MOMENTUM IS PADD.
17 PADD(K)=PADD(K)+PPTCL(K,IP)
19 IF(PADD(5).GE.PSUM(5)) RETURN
20 PADD(5)=PADD(4)**2-PADD(1)**2-PADD(2)**2-PADD(3)**2
21 IF(PADD(5).LE.0) RETURN
24 120 BETA(K)=-PADD(K)/PADD(5)
26 C BOOST PARTICLES TO REST.
31 220 BP=BP+PPTCL(K,IP)*BETA(K)
33 230 PPTCL(K,IP)=PPTCL(K,IP)+BETA(K)*PPTCL(4,IP)
34 $+BETA(K)*BP/(GAMMA+1.)
35 PPTCL(4,IP)=GAMMA*PPTCL(4,IP)+BP
38 C RESCALE MOMENTA IN REST FRAME.
44 320 PPTCL(K,IP)=SCAL*PPTCL(K,IP)
45 PPTCL(4,IP)=SQRT(PPTCL(1,IP)**2+PPTCL(2,IP)**2+PPTCL(3,IP)**2
50 301 IF(ABS(SCAL-1.).LE.ERRLIM) GO TO 300
52 C BOOST BACK WITH PSUM.
55 BETA(K)=PSUM(K)/PSUM(5)
56 BMAG=BMAG+ABS(BETA(K))