]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HIJING/hijing1_36/hijcsc.F
Avoid duplicated SAVE statements for G95
[u/mrichter/AliRoot.git] / HIJING / hijing1_36 / hijcsc.F
CommitLineData
e74335a4 1* $Id$
2C
3C*******************************************************************
4C This subroutine performs elastic scatterings and possible
5C elastic cascading within their own nuclei
6c*******************************************************************
7 SUBROUTINE HIJCSC(JP,JT)
8 DIMENSION PSC1(5),PSC2(5)
bc676b8e 9#define BLANKET_SAVE
e74335a4 10#include "hijcrdn.inc"
11#include "hiparnt.inc"
12#include "histrng.inc"
13 SAVE
14 IF(JP.EQ.0 .OR. JT.EQ.0) GO TO 25
15 DO 10 I=1,5
16 PSC1(I)=PP(JP,I)
17 PSC2(I)=PT(JT,I)
1810 CONTINUE
19 CALL HIJELS(PSC1,PSC2)
20 DPP1=PSC1(1)-PP(JP,1)
21 DPP2=PSC1(2)-PP(JP,2)
22 DPT1=PSC2(1)-PT(JT,1)
23 DPT2=PSC2(2)-PT(JT,2)
24 PP(JP,6)=PP(JP,6)+DPP1/2.0
25 PP(JP,7)=PP(JP,7)+DPP2/2.0
26 PP(JP,8)=PP(JP,8)+DPP1/2.0
27 PP(JP,9)=PP(JP,9)+DPP2/2.0
28 PT(JT,6)=PT(JT,6)+DPT1/2.0
29 PT(JT,7)=PT(JT,7)+DPT2/2.0
30 PT(JT,8)=PT(JT,8)+DPT1/2.0
31 PT(JT,9)=PT(JT,9)+DPT2/2.0
32 DO 20 I=1,4
33 PP(JP,I)=PSC1(I)
34 PT(JT,I)=PSC2(I)
3520 CONTINUE
36 NFP(JP,5)=MAX(1,NFP(JP,5))
37 NFT(JT,5)=MAX(1,NFT(JT,5))
38C ********Perform elastic scattering between JP and JT
39 RETURN
40C ********The following is for possible elastic cascade
41c
4225 IF(JP.EQ.0) GO TO 45
43 PABS=SQRT(PP(JP,1)**2+PP(JP,2)**2+PP(JP,3)**2)
44 BX=PP(JP,1)/PABS
45 BY=PP(JP,2)/PABS
46 BZ=PP(JP,3)/PABS
47 DO 40 I=1,IHNT2(1)
48 IF(I.EQ.JP) GO TO 40
49 DX=YP(1,I)-YP(1,JP)
50 DY=YP(2,I)-YP(2,JP)
51 DZ=YP(3,I)-YP(3,JP)
52 DIS=DX*BX+DY*BY+DZ*BZ
53 IF(DIS.LE.0) GO TO 40
54 BB=DX**2+DY**2+DZ**2-DIS**2
55 R2=BB*HIPR1(40)/HIPR1(31)/0.1
56C ********mb=0.1*fm, YP is in fm,HIPR1(31) is in mb
57 GS=1.0-EXP(-(HIPR1(30)+HINT1(11))/HIPR1(31)/2.0
58 & *ROMG(R2))**2
59 GS0=1.0-EXP(-(HIPR1(30)+HINT1(11))/HIPR1(31)/2.0
60 & *ROMG(0.0))**2
61 IF(RLU_HIJING(0).GT.GS/GS0) GO TO 40
62 DO 30 K=1,5
63 PSC1(K)=PP(JP,K)
64 PSC2(K)=PP(I,K)
6530 CONTINUE
66 CALL HIJELS(PSC1,PSC2)
67 DPP1=PSC1(1)-PP(JP,1)
68 DPP2=PSC1(2)-PP(JP,2)
69 DPT1=PSC2(1)-PP(I,1)
70 DPT2=PSC2(2)-PP(I,2)
71 PP(JP,6)=PP(JP,6)+DPP1/2.0
72 PP(JP,7)=PP(JP,7)+DPP2/2.0
73 PP(JP,8)=PP(JP,8)+DPP1/2.0
74 PP(JP,9)=PP(JP,9)+DPP2/2.0
75 PP(I,6)=PP(I,6)+DPT1/2.0
76 PP(I,7)=PP(I,7)+DPT2/2.0
77 PP(I,8)=PP(I,8)+DPT1/2.0
78 PP(I,9)=PP(I,9)+DPT2/2.0
79 DO 35 K=1,5
80 PP(JP,K)=PSC1(K)
81 PP(I,K)=PSC2(K)
8235 CONTINUE
83 NFP(I,5)=MAX(1,NFP(I,5))
84 GO TO 45
8540 CONTINUE
8645 IF(JT.EQ.0) GO TO 80
8750 PABS=SQRT(PT(JT,1)**2+PT(JT,2)**2+PT(JT,3)**2)
88 BX=PT(JT,1)/PABS
89 BY=PT(JT,2)/PABS
90 BZ=PT(JT,3)/PABS
91 DO 70 I=1,IHNT2(3)
92 IF(I.EQ.JT) GO TO 70
93 DX=YT(1,I)-YT(1,JT)
94 DY=YT(2,I)-YT(2,JT)
95 DZ=YT(3,I)-YT(3,JT)
96 DIS=DX*BX+DY*BY+DZ*BZ
97 IF(DIS.LE.0) GO TO 70
98 BB=DX**2+DY**2+DZ**2-DIS**2
99 R2=BB*HIPR1(40)/HIPR1(31)/0.1
100C ********mb=0.1*fm, YP is in fm,HIPR1(31) is in mb
101 GS=(1.0-EXP(-(HIPR1(30)+HINT1(11))/HIPR1(31)/2.0
102 & *ROMG(R2)))**2
103 GS0=(1.0-EXP(-(HIPR1(30)+HINT1(11))/HIPR1(31)/2.0
104 & *ROMG(0.0)))**2
105 IF(RLU_HIJING(0).GT.GS/GS0) GO TO 70
106 DO 60 K=1,5
107 PSC1(K)=PT(JT,K)
108 PSC2(K)=PT(I,K)
10960 CONTINUE
110 CALL HIJELS(PSC1,PSC2)
111 DPP1=PSC1(1)-PT(JT,1)
112 DPP2=PSC1(2)-PT(JT,2)
113 DPT1=PSC2(1)-PT(I,1)
114 DPT2=PSC2(2)-PT(I,2)
115 PT(JT,6)=PT(JT,6)+DPP1/2.0
116 PT(JT,7)=PT(JT,7)+DPP2/2.0
117 PT(JT,8)=PT(JT,8)+DPP1/2.0
118 PT(JT,9)=PT(JT,9)+DPP2/2.0
119 PT(I,6)=PT(I,6)+DPT1/2.0
120 PT(I,7)=PT(I,7)+DPT2/2.0
121 PT(I,8)=PT(I,8)+DPT1/2.0
122 PT(I,9)=PT(I,9)+DPT2/2.0
123 DO 65 K=1,5
124 PT(JT,K)=PSC1(K)
125 PT(I,K)=PSC2(K)
12665 CONTINUE
127 NFT(I,5)=MAX(1,NFT(I,5))
128 GO TO 80
12970 CONTINUE
13080 RETURN
131 END