]>
Commit | Line | Data |
---|---|---|
e74335a4 | 1 | * $Id$ |
2 | ||
3 | C | |
4 | C | |
5 | C | |
6 | C | |
7 | SUBROUTINE HIJFRG(JTP,NTP,IERROR) | |
8 | C NTP=1, fragment proj string, NTP=2, targ string, | |
9 | C NTP=3, independent | |
10 | C strings from jets. JTP is the line number of the string | |
11 | C*******Fragment all leading strings of proj and targ************** | |
12 | C IHNT2(1)=atomic #, IHNT2(2)=proton #(=-1 if anti-proton) * | |
13 | C****************************************************************** | |
bc676b8e | 14 | #define BLANKET_SAVE |
e74335a4 | 15 | #include "hiparnt.inc" |
16 | #include "hijdat.inc" | |
17 | #include "histrng.inc" | |
18 | #include "hijjet1.inc" | |
19 | #include "hijjet2.inc" | |
20 | C | |
21 | #include "lujets_hijing.inc" | |
22 | #include "ludat1_hijing.inc" | |
23 | SAVE | |
24 | ||
25 | IERROR=0 | |
26 | CALL LUEDIT_HIJING(0) | |
27 | N=0 | |
28 | C ********initialize the document lines | |
29 | IF(NTP.EQ.3) THEN | |
30 | ISG=JTP | |
31 | N=NJSG(ISG) | |
32 | DO 100 I=1,NJSG(ISG) | |
33 | K(I,1)=K1SG(ISG,I) | |
34 | K(I,2)=K2SG(ISG,I) | |
35 | P(I,1)=PXSG(ISG,I) | |
36 | P(I,2)=PYSG(ISG,I) | |
37 | P(I,3)=PZSG(ISG,I) | |
38 | P(I,4)=PESG(ISG,I) | |
39 | P(I,5)=PMSG(ISG,I) | |
40 | 100 CONTINUE | |
41 | C IF(IHPR2(1).GT.0) CALL ATTRAD(IERROR) | |
42 | c IF(IERROR.NE.0) RETURN | |
43 | C CALL LULIST_HIJING(1) | |
44 | CALL LUEXEC_HIJING | |
45 | RETURN | |
46 | ENDIF | |
47 | C | |
48 | IF(NTP.EQ.2) GO TO 200 | |
49 | IF(JTP.GT.IHNT2(1)) RETURN | |
50 | IF(NFP(JTP,5).NE.3.AND.NFP(JTP,3).NE.0 | |
51 | & .AND.NPJ(JTP).EQ.0.AND.NFP(JTP,10).EQ.0) GO TO 1000 | |
52 | IF(NFP(JTP,15).EQ.-1) THEN | |
53 | KF1=NFP(JTP,2) | |
54 | KF2=NFP(JTP,1) | |
55 | PQ21=PP(JTP,6) | |
56 | PQ22=PP(JTP,7) | |
57 | PQ11=PP(JTP,8) | |
58 | PQ12=PP(JTP,9) | |
59 | AM1=PP(JTP,15) | |
60 | AM2=PP(JTP,14) | |
61 | ELSE | |
62 | KF1=NFP(JTP,1) | |
63 | KF2=NFP(JTP,2) | |
64 | PQ21=PP(JTP,8) | |
65 | PQ22=PP(JTP,9) | |
66 | PQ11=PP(JTP,6) | |
67 | PQ12=PP(JTP,7) | |
68 | AM1=PP(JTP,14) | |
69 | AM2=PP(JTP,15) | |
70 | ENDIF | |
71 | C ********for NFP(JTP,15)=-1 NFP(JTP,1) IS IN -Z DIRECTION | |
72 | PB1=PQ11+PQ21 | |
73 | PB2=PQ12+PQ22 | |
74 | PB3=PP(JTP,3) | |
75 | PECM=PP(JTP,5) | |
76 | BTZ=PB3/PP(JTP,4) | |
77 | IF((ABS(PB1-PP(JTP,1)).GT.0.01.OR. | |
78 | & ABS(PB2-PP(JTP,2)).GT.0.01).AND.IHPR2(10).NE.0) | |
79 | & WRITE(6,*) ' Pt of Q and QQ do not sum to the total' | |
80 | ||
81 | GO TO 300 | |
82 | ||
83 | 200 IF(JTP.GT.IHNT2(3)) RETURN | |
84 | IF(NFT(JTP,5).NE.3.AND.NFT(JTP,3).NE.0 | |
85 | & .AND.NTJ(JTP).EQ.0.AND.NFT(JTP,10).EQ.0) GO TO 1200 | |
86 | IF(NFT(JTP,15).EQ.1) THEN | |
87 | KF1=NFT(JTP,1) | |
88 | KF2=NFT(JTP,2) | |
89 | PQ11=PT(JTP,6) | |
90 | PQ12=PT(JTP,7) | |
91 | PQ21=PT(JTP,8) | |
92 | PQ22=PT(JTP,9) | |
93 | AM1=PT(JTP,14) | |
94 | AM2=PT(JTP,15) | |
95 | ELSE | |
96 | KF1=NFT(JTP,2) | |
97 | KF2=NFT(JTP,1) | |
98 | PQ11=PT(JTP,8) | |
99 | PQ12=PT(JTP,9) | |
100 | PQ21=PT(JTP,6) | |
101 | PQ22=PT(JTP,7) | |
102 | AM1=PT(JTP,15) | |
103 | AM2=PT(JTP,14) | |
104 | ENDIF | |
105 | C ********for NFT(JTP,15)=1 NFT(JTP,1) IS IN +Z DIRECTION | |
106 | PB1=PQ11+PQ21 | |
107 | PB2=PQ12+PQ22 | |
108 | PB3=PT(JTP,3) | |
109 | PECM=PT(JTP,5) | |
110 | BTZ=PB3/PT(JTP,4) | |
111 | ||
112 | IF((ABS(PB1-PT(JTP,1)).GT.0.01.OR. | |
113 | & ABS(PB2-PT(JTP,2)).GT.0.01).AND.IHPR2(10).NE.0) | |
114 | & WRITE(6,*) ' Pt of Q and QQ do not sum to the total' | |
115 | ||
116 | 300 IF(PECM.LT.HIPR1(1)) THEN | |
117 | IERROR=1 | |
118 | IF(IHPR2(10).EQ.0) RETURN | |
119 | WRITE(6,*) ' ECM=',PECM,' energy of the string is too small' | |
120 | RETURN | |
121 | ENDIF | |
122 | AMT=PECM**2+PB1**2+PB2**2 | |
123 | AMT1=AM1**2+PQ11**2+PQ12**2 | |
124 | AMT2=AM2**2+PQ21**2+PQ22**2 | |
125 | PZCM=SQRT(ABS(AMT**2+AMT1**2+AMT2**2-2.0*AMT*AMT1 | |
126 | & -2.0*AMT*AMT2-2.0*AMT1*AMT2))/2.0/SQRT(AMT) | |
127 | C *******PZ of end-partons in c.m. frame of the string | |
128 | K(1,1)=2 | |
129 | K(1,2)=KF1 | |
130 | P(1,1)=PQ11 | |
131 | P(1,2)=PQ12 | |
132 | P(1,3)=PZCM | |
133 | P(1,4)=SQRT(AMT1+PZCM**2) | |
134 | P(1,5)=AM1 | |
135 | K(2,1)=1 | |
136 | K(2,2)=KF2 | |
137 | P(2,1)=PQ21 | |
138 | P(2,2)=PQ22 | |
139 | P(2,3)=-PZCM | |
140 | P(2,4)=SQRT(AMT2+PZCM**2) | |
141 | P(2,5)=AM2 | |
142 | N=2 | |
143 | C***** | |
144 | CALL HIROBO(0.0,0.0,0.0,0.0,BTZ) | |
145 | JETOT=0 | |
146 | IF((PQ21**2+PQ22**2).GT.(PQ11**2+PQ12**2)) THEN | |
147 | PMAX1=P(2,1) | |
148 | PMAX2=P(2,2) | |
149 | PMAX3=P(2,3) | |
150 | ELSE | |
151 | PMAX1=P(1,1) | |
152 | PMAX2=P(1,2) | |
153 | PMAX3=P(1,3) | |
154 | ENDIF | |
155 | IF(NTP.EQ.1) THEN | |
156 | PP(JTP,10)=PMAX1 | |
157 | PP(JTP,11)=PMAX2 | |
158 | PP(JTP,12)=PMAX3 | |
159 | ELSE IF(NTP.EQ.2) THEN | |
160 | PT(JTP,10)=PMAX1 | |
161 | PT(JTP,11)=PMAX2 | |
162 | PT(JTP,12)=PMAX3 | |
163 | ENDIF | |
164 | C*******************attach produced jets to the leading partons**** | |
165 | IF(NTP.EQ.1.AND.NPJ(JTP).NE.0) THEN | |
166 | JETOT=NPJ(JTP) | |
167 | C IF(NPJ(JTP).GE.2) CALL HIJSRT(JTP,1) | |
168 | C ********sort jets in order of y | |
169 | IEX=0 | |
170 | IF((ABS(KF1).GT.1000.AND.KF1.LT.0) | |
171 | & .OR.(ABS(KF1).LT.1000.AND.KF1.GT.0)) IEX=1 | |
172 | DO 520 I=N,2,-1 | |
173 | DO 520 J=1,5 | |
174 | II=NPJ(JTP)+I | |
175 | K(II,J)=K(I,J) | |
176 | P(II,J)=P(I,J) | |
177 | V(II,J)=V(I,J) | |
178 | 520 CONTINUE | |
179 | DO 540 I=1,NPJ(JTP) | |
180 | DO 542 J=1,5 | |
181 | K(I+1,J)=0 | |
182 | V(I+1,J)=0 | |
183 | 542 CONTINUE | |
184 | I0=I | |
185 | IF(IEX.EQ.1) I0=NPJ(JTP)-I+1 | |
186 | C ********reverse the order of jets | |
187 | KK1=KFPJ(JTP,I0) | |
188 | K(I+1,1)=2 | |
189 | K(I+1,2)=KK1 | |
190 | IF(KK1.NE.21 .AND. KK1.NE.0) K(I+1,1)= | |
191 | & 1+(ABS(KK1)+(2*IEX-1)*KK1)/2/ABS(KK1) | |
192 | P(I+1,1)=PJPX(JTP,I0) | |
193 | P(I+1,2)=PJPY(JTP,I0) | |
194 | P(I+1,3)=PJPZ(JTP,I0) | |
195 | P(I+1,4)=PJPE(JTP,I0) | |
196 | P(I+1,5)=PJPM(JTP,I0) | |
197 | 540 CONTINUE | |
198 | N=N+NPJ(JTP) | |
199 | ELSE IF(NTP.EQ.2.AND.NTJ(JTP).NE.0) THEN | |
200 | JETOT=NTJ(JTP) | |
201 | c IF(NTJ(JTP).GE.2) CALL HIJSRT(JTP,2) | |
202 | C ********sort jets in order of y | |
203 | IEX=1 | |
204 | IF((ABS(KF2).GT.1000.AND.KF2.LT.0) | |
205 | & .OR.(ABS(KF2).LT.1000.AND.KF2.GT.0)) IEX=0 | |
206 | DO 560 I=N,2,-1 | |
207 | DO 560 J=1,5 | |
208 | II=NTJ(JTP)+I | |
209 | K(II,J)=K(I,J) | |
210 | P(II,J)=P(I,J) | |
211 | V(II,J)=V(I,J) | |
212 | 560 CONTINUE | |
213 | DO 580 I=1,NTJ(JTP) | |
214 | DO 582 J=1,5 | |
215 | K(I+1,J)=0 | |
216 | V(I+1,J)=0 | |
217 | 582 CONTINUE | |
218 | I0=I | |
219 | IF(IEX.EQ.1) I0=NTJ(JTP)-I+1 | |
220 | C ********reverse the order of jets | |
221 | KK1=KFTJ(JTP,I0) | |
222 | K(I+1,1)=2 | |
223 | K(I+1,2)=KK1 | |
224 | IF(KK1.NE.21 .AND. KK1.NE.0) K(I+1,1)= | |
225 | & 1+(ABS(KK1)+(2*IEX-1)*KK1)/2/ABS(KK1) | |
226 | P(I+1,1)=PJTX(JTP,I0) | |
227 | P(I+1,2)=PJTY(JTP,I0) | |
228 | P(I+1,3)=PJTZ(JTP,I0) | |
229 | P(I+1,4)=PJTE(JTP,I0) | |
230 | P(I+1,5)=PJTM(JTP,I0) | |
231 | 580 CONTINUE | |
232 | N=N+NTJ(JTP) | |
233 | ENDIF | |
234 | IF(IHPR2(1).GT.0.AND.RLU_HIJING(0).LE.HIDAT(3)) THEN | |
235 | HIDAT20=HIDAT(2) | |
236 | HIPR150=HIPR1(5) | |
237 | IF(IHPR2(8).EQ.0.AND.IHPR2(3).EQ.0.AND.IHPR2(9).EQ.0) | |
238 | & HIDAT(2)=2.0 | |
239 | IF(HINT1(1).GE.1000.0.AND.JETOT.EQ.0)THEN | |
240 | HIDAT(2)=3.0 | |
241 | HIPR1(5)=5.0 | |
242 | ENDIF | |
243 | CALL ATTRAD(IERROR) | |
244 | HIDAT(2)=HIDAT20 | |
245 | HIPR1(5)=HIPR150 | |
246 | ELSE IF(JETOT.EQ.0.AND.IHPR2(1).GT.0.AND. | |
247 | & HINT1(1).GE.1000.0.AND. | |
248 | & RLU_HIJING(0).LE.0.8) THEN | |
249 | HIDAT20=HIDAT(2) | |
250 | HIPR150=HIPR1(5) | |
251 | HIDAT(2)=3.0 | |
252 | HIPR1(5)=5.0 | |
253 | IF(IHPR2(8).EQ.0.AND.IHPR2(3).EQ.0.AND.IHPR2(9).EQ.0) | |
254 | & HIDAT(2)=2.0 | |
255 | CALL ATTRAD(IERROR) | |
256 | HIDAT(2)=HIDAT20 | |
257 | HIPR1(5)=HIPR150 | |
258 | ENDIF | |
259 | IF(IERROR.NE.0) RETURN | |
260 | C ******** conduct soft radiations | |
261 | C**************************** | |
262 | C | |
263 | C | |
264 | C CALL LULIST_HIJING(1) | |
265 | CALL LUEXEC_HIJING | |
266 | RETURN | |
267 | ||
268 | 1000 N=1 | |
269 | K(1,1)=1 | |
270 | K(1,2)=NFP(JTP,3) | |
271 | DO 1100 JJ=1,5 | |
272 | P(1,JJ)=PP(JTP,JJ) | |
273 | 1100 CONTINUE | |
274 | C ********proj remain as a nucleon or delta | |
275 | CALL LUEXEC_HIJING | |
276 | C call LULIST_HIJING(1) | |
277 | RETURN | |
278 | C | |
279 | 1200 N=1 | |
280 | K(1,1)=1 | |
281 | K(1,2)=NFT(JTP,3) | |
282 | DO 1300 JJ=1,5 | |
283 | P(1,JJ)=PT(JTP,JJ) | |
284 | 1300 CONTINUE | |
285 | C ********targ remain as a nucleon or delta | |
286 | CALL LUEXEC_HIJING | |
287 | C call LULIST_HIJING(1) | |
288 | RETURN | |
289 | END |