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