Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:15:42

0001 C
0002 C*******************************************************************
0003 C       This subroutine performs elastic scatterings and possible 
0004 C       elastic cascading within their own nuclei
0005 c*******************************************************************
0006         SUBROUTINE HIJCSC(JP,JT)
0007         DIMENSION PSC1(5),PSC2(5)
0008         COMMON/HIJCRDN/YP(3,300),YT(3,300)
0009         SAVE  /HIJCRDN/
0010         COMMON/HIPARNT/HIPR1(100),IHPR2(50),HINT1(100),IHNT2(50)
0011         SAVE  /HIPARNT/
0012         COMMON/RANSEED/NSEED
0013         SAVE  /RANSEED/
0014         COMMON/HISTRNG/NFP(300,15),PP(300,15),NFT(300,15),PT(300,15)
0015         SAVE  /HISTRNG/
0016         IF(JP.EQ.0 .OR. JT.EQ.0) GO TO 25
0017         DO 10 I=1,5
0018         PSC1(I)=PP(JP,I)
0019         PSC2(I)=PT(JT,I)
0020 10      CONTINUE
0021         CALL HIJELS(PSC1,PSC2)
0022         DPP1=PSC1(1)-PP(JP,1)
0023         DPP2=PSC1(2)-PP(JP,2)
0024         DPT1=PSC2(1)-PT(JT,1)
0025         DPT2=PSC2(2)-PT(JT,2)
0026         PP(JP,6)=PP(JP,6)+DPP1/2.0
0027         PP(JP,7)=PP(JP,7)+DPP2/2.0
0028         PP(JP,8)=PP(JP,8)+DPP1/2.0
0029         PP(JP,9)=PP(JP,9)+DPP2/2.0
0030         PT(JT,6)=PT(JT,6)+DPT1/2.0
0031         PT(JT,7)=PT(JT,7)+DPT2/2.0
0032         PT(JT,8)=PT(JT,8)+DPT1/2.0
0033         PT(JT,9)=PT(JT,9)+DPT2/2.0
0034         DO 20 I=1,4
0035         PP(JP,I)=PSC1(I)
0036         PT(JT,I)=PSC2(I)
0037 20      CONTINUE
0038         NFP(JP,5)=MAX(1,NFP(JP,5))
0039         NFT(JT,5)=MAX(1,NFT(JT,5))
0040 C               ********Perform elastic scattering between JP and JT
0041         RETURN
0042 C               ********The following is for possible elastic cascade
0043 c
0044 25      IF(JP.EQ.0) GO TO 45
0045         PABS=SQRT(PP(JP,1)**2+PP(JP,2)**2+PP(JP,3)**2)
0046         BX=PP(JP,1)/PABS
0047         BY=PP(JP,2)/PABS
0048         BZ=PP(JP,3)/PABS
0049         DO 40 I=1,IHNT2(1)
0050                 IF(I.EQ.JP) GO TO 40
0051                 DX=YP(1,I)-YP(1,JP)
0052                 DY=YP(2,I)-YP(2,JP)
0053                 DZ=YP(3,I)-YP(3,JP)
0054                 DIS=DX*BX+DY*BY+DZ*BZ
0055                 IF(DIS.LE.0) GO TO 40
0056                 BB=DX**2+DY**2+DZ**2-DIS**2
0057                 R2=BB*HIPR1(40)/HIPR1(31)/0.1
0058 C               ********mb=0.1*fm, YP is in fm,HIPR1(31) is in mb
0059                 GS=1.0-EXP(-(HIPR1(30)+HINT1(11))/HIPR1(31)/2.0
0060      &                  *ROMG(R2))**2
0061                 GS0=1.0-EXP(-(HIPR1(30)+HINT1(11))/HIPR1(31)/2.0
0062      &                  *ROMG(0.0))**2
0063                 IF(ATL_RAN(NSEED).GT.GS/GS0) GO TO 40
0064                 DO 30 K=1,5
0065                         PSC1(K)=PP(JP,K)
0066                         PSC2(K)=PP(I,K)
0067 30              CONTINUE
0068                 CALL HIJELS(PSC1,PSC2)
0069                 DPP1=PSC1(1)-PP(JP,1)
0070                 DPP2=PSC1(2)-PP(JP,2)
0071                 DPT1=PSC2(1)-PP(I,1)
0072                 DPT2=PSC2(2)-PP(I,2)
0073                 PP(JP,6)=PP(JP,6)+DPP1/2.0
0074                 PP(JP,7)=PP(JP,7)+DPP2/2.0
0075                 PP(JP,8)=PP(JP,8)+DPP1/2.0
0076                 PP(JP,9)=PP(JP,9)+DPP2/2.0
0077                 PP(I,6)=PP(I,6)+DPT1/2.0
0078                 PP(I,7)=PP(I,7)+DPT2/2.0
0079                 PP(I,8)=PP(I,8)+DPT1/2.0
0080                 PP(I,9)=PP(I,9)+DPT2/2.0
0081                 DO 35 K=1,5
0082                         PP(JP,K)=PSC1(K)
0083                         PP(I,K)=PSC2(K)
0084 35              CONTINUE
0085                 NFP(I,5)=MAX(1,NFP(I,5))
0086                 GO TO 45
0087 40      CONTINUE
0088 45      IF(JT.EQ.0) GO TO 80
0089 50      PABS=SQRT(PT(JT,1)**2+PT(JT,2)**2+PT(JT,3)**2)
0090         BX=PT(JT,1)/PABS
0091         BY=PT(JT,2)/PABS
0092         BZ=PT(JT,3)/PABS
0093         DO 70 I=1,IHNT2(3)
0094                 IF(I.EQ.JT) GO TO 70
0095                 DX=YT(1,I)-YT(1,JT)
0096                 DY=YT(2,I)-YT(2,JT)
0097                 DZ=YT(3,I)-YT(3,JT)
0098                 DIS=DX*BX+DY*BY+DZ*BZ
0099                 IF(DIS.LE.0) GO TO 70
0100                 BB=DX**2+DY**2+DZ**2-DIS**2
0101                 R2=BB*HIPR1(40)/HIPR1(31)/0.1
0102 C               ********mb=0.1*fm, YP is in fm,HIPR1(31) is in mb
0103                 GS=(1.0-EXP(-(HIPR1(30)+HINT1(11))/HIPR1(31)/2.0
0104      &                  *ROMG(R2)))**2
0105                 GS0=(1.0-EXP(-(HIPR1(30)+HINT1(11))/HIPR1(31)/2.0
0106      &                  *ROMG(0.0)))**2
0107                 IF(ATL_RAN(NSEED).GT.GS/GS0) GO TO 70
0108                 DO 60 K=1,5
0109                         PSC1(K)=PT(JT,K)
0110                         PSC2(K)=PT(I,K)
0111 60              CONTINUE
0112                 CALL HIJELS(PSC1,PSC2)
0113                 DPP1=PSC1(1)-PT(JT,1)
0114                 DPP2=PSC1(2)-PT(JT,2)
0115                 DPT1=PSC2(1)-PT(I,1)
0116                 DPT2=PSC2(2)-PT(I,2)
0117                 PT(JT,6)=PT(JT,6)+DPP1/2.0
0118                 PT(JT,7)=PT(JT,7)+DPP2/2.0
0119                 PT(JT,8)=PT(JT,8)+DPP1/2.0
0120                 PT(JT,9)=PT(JT,9)+DPP2/2.0
0121                 PT(I,6)=PT(I,6)+DPT1/2.0
0122                 PT(I,7)=PT(I,7)+DPT2/2.0
0123                 PT(I,8)=PT(I,8)+DPT1/2.0
0124                 PT(I,9)=PT(I,9)+DPT2/2.0
0125                 DO 65 K=1,5
0126                         PT(JT,K)=PSC1(K)
0127                         PT(I,K)=PSC2(K)
0128 65              CONTINUE
0129                 NFT(I,5)=MAX(1,NFT(I,5))
0130                 GO TO 80
0131 70      CONTINUE
0132 80      RETURN
0133         END