]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HERWIG/src/hwccut.f
pyquen added.
[u/mrichter/AliRoot.git] / HERWIG / src / hwccut.f
CommitLineData
3820ca8e 1
2CDECK ID>, HWCCUT.
3
4*CMZ :- -26/04/91 14.29.39 by Federico Carminati
5
6*-- Author : Bryan Webber
7
8C-----------------------------------------------------------------------
9
10 SUBROUTINE HWCCUT(JHEP,KHEP,PCL,BTCLUS,SPLIT)
11
12C-----------------------------------------------------------------------
13
14C Cuts into 2 the cluster, momentum PCL, made of partons JHEP & KHEP
15
16C-----------------------------------------------------------------------
17
18 INCLUDE 'HERWIG61.INC'
19
20 DOUBLE PRECISION HWREXQ,HWUPCM,HWR,HWVDOT,EMC,QM1,QM2,EMX,EMY,
21
22 & QM3,PXY,PCX,PCY,RCM,PCL(5),AX(5),PA(5),PB(5),PC(5),SKAPPA,DELTM,
23
24 & VSCA,VTMP(4),RKAPPA,VCLUS
25
26 INTEGER HWRINT,JHEP,KHEP,LHEP,MHEP,ID1,ID2,ID3,NTRY,NTRYMX,J,IB
27
28 LOGICAL BTCLUS,SPLIT
29
30 EXTERNAL HWREXQ,HWUPCM,HWR,HWVDOT,HWRINT
31
32 COMMON/HWCFRM/VCLUS(4,NMXHEP)
33
34 PARAMETER (SKAPPA=1.,NTRYMX=100)
35
36 IF (IERROR.NE.0) RETURN
37
38 EMC=PCL(5)
39
40 ID1=IDHW(JHEP)
41
42 ID2=IDHW(KHEP)
43
44 QM1=RMASS(ID1)
45
46 QM2=RMASS(ID2)
47
48 SPLIT=.FALSE.
49
50 NTRY=0
51
52C Decide if cluster contains a b-(anti)quark
53
54 IF (ID1.EQ.5.OR.ID1.EQ.11.OR.ID2.EQ.5.OR.ID2.EQ.11) THEN
55
56 IB=2
57
58 ELSE
59
60 IB=1
61
62 ENDIF
63
64 IF (BTCLUS) THEN
65
66C Split beam and target clusters as soft clusters
67
68C Both (remnant) children treated like soft clusters if IOPREM=0(1)
69
70 10 ID3=HWRINT(1,2)
71
72 QM3=RMASS(ID3)
73
74 IF (EMC.LE.QM1+QM2+2.*QM3) THEN
75
76 ID3=3-ID3
77
78 QM3=RMASS(ID3)
79
80 IF (EMC.LE.QM1+QM2+2.*QM3) RETURN
81
82 ENDIF
83
84 PXY=EMC-QM1-QM2-TWO*QM3
85
86 IF (ISTHEP(JHEP).EQ.153.OR.ISTHEP(JHEP).EQ.154.OR.
87
88 & IOPREM.EQ.0) THEN
89
90 EMX=QM1+QM3+HWREXQ(BTCLM,PXY)
91
92 ELSE
93
94 EMX=QM1+QM3+PXY*HWR()**PSPLT(IB)
95
96 ENDIF
97
98 IF (ISTHEP(KHEP).EQ.153.OR.ISTHEP(KHEP).EQ.154.OR.
99
100 & IOPREM.EQ.0) THEN
101
102 EMY=QM2+QM3+HWREXQ(BTCLM,PXY)
103
104 ELSE
105
106 EMY=QM2+QM3+PXY*HWR()**PSPLT(IB)
107
108 ENDIF
109
110 IF (EMX+EMY.GE.EMC) THEN
111
112 NTRY=NTRY+1
113
114 IF (NTRY.GT.NTRYMX) RETURN
115
116 GOTO 10
117
118 ENDIF
119
120 PCX=HWUPCM(EMX,QM1,QM3)
121
122 PCY=HWUPCM(EMY,QM2,QM3)
123
124 ELSE
125
126C Choose fragment masses for ordinary cluster
127
128 PXY=EMC-QM1-QM2
129
130 20 NTRY=NTRY+1
131
132 IF (NTRY.GT.NTRYMX) RETURN
133
134 30 EMX=QM1+PXY*HWR()**PSPLT(IB)
135
136 EMY=QM2+PXY*HWR()**PSPLT(IB)
137
138 IF (EMX+EMY.GE.EMC) GOTO 30
139
140C u,d,s pair production with weights QWT
141
142 40 ID3=HWRINT(1,3)
143
144 IF (QWT(ID3).LT.HWR()) GOTO 40
145
146 QM3=RMASS(ID3)
147
148 PCX=HWUPCM(EMX,QM1,QM3)
149
150 IF (PCX.LT.ZERO) GOTO 20
151
152 PCY=HWUPCM(EMY,QM2,QM3)
153
154 IF (PCY.LT.ZERO) GOTO 20
155
156 SPLIT=.TRUE.
157
158 ENDIF
159
160C Boost antiquark to CoM frame to find axis
161
162 CALL HWULOF(PCL,PHEP(1,KHEP),AX)
163
164 RCM=1./SQRT(HWVDOT(3,AX,AX))
165
166 CALL HWVSCA(3,RCM,AX,AX)
167
168C Construct new CoM momenta (collinear)
169
170 PXY=HWUPCM(EMC,EMX,EMY)
171
172 CALL HWVSCA(3,PXY,AX,PC)
173
174 PC(4)=SQRT(PXY**2+EMY**2)
175
176 PC(5)=EMY
177
178 CALL HWVSCA(3,PCY,AX,PA)
179
180 PA(4)=SQRT(PCY**2+QM2**2)
181
182 PA(5)=QM2
183
184 CALL HWULOB(PC,PA,PB)
185
186 CALL HWVDIF(4,PC,PB,PA)
187
188 PA(5)=QM3
189
190 LHEP=NHEP+1
191
192 MHEP=NHEP+2
193
194 CALL HWULOB(PCL,PB,PHEP(1,KHEP))
195
196 CALL HWULOB(PCL,PA,PHEP(1,MHEP))
197
198 CALL HWVSCA(3,-ONE,PC,PC)
199
200 PC(4)=EMC-PC(4)
201
202 PC(5)=EMX
203
204 CALL HWVSCA(3,PCX,AX,PA)
205
206 PA(4)=SQRT(PCX**2+QM3**2)
207
208 CALL HWULOB(PC,PA,PB)
209
210 CALL HWULOB(PCL,PB,PHEP(1,LHEP))
211
212 DO 50 J=1,4
213
214 50 PHEP(J,JHEP)=PCL(J)-PHEP(J,KHEP)-PHEP(J,LHEP)-PHEP(J,MHEP)
215
216 PHEP(5,JHEP)=QM1
217
218 CALL HWVEQU(4,VHEP(1,LHEP),VHEP(1,MHEP))
219
220C Construct new vertex positions
221
222 RKAPPA=GEV2MM/SKAPPA
223
224 CALL HWVSCA(3,RKAPPA,AX,AX)
225
226 DELTM=(EMX-EMY)*(EMX+EMY)/(TWO*EMC)
227
228 CALL HWVSCA(3,DELTM,AX,VTMP)
229
230 VTMP(4)=(HALF*EMC-PXY)*RKAPPA
231
232 CALL HWULB4(PCL,VTMP,VTMP)
233
234 CALL HWVSUM(4,VTMP,VCLUS(1,JHEP),VHEP(1,LHEP))
235
236 CALL HWVEQU(4,VHEP(1,LHEP),VHEP(1,MHEP))
237
238 VSCA=0.25*EMC+HALF*(PXY+DELTM)
239
240 CALL HWVSCA(3,VSCA,AX,VTMP)
241
242 VTMP(4)=(EMC-VSCA)*RKAPPA
243
244 CALL HWULB4(PCL,VTMP,VTMP)
245
246 CALL HWVSUM(4,VTMP,VCLUS(1,JHEP),VCLUS(1,MHEP))
247
248 VSCA=-0.25*EMC+HALF*(DELTM-PXY)
249
250 CALL HWVSCA(3,VSCA,AX,VTMP)
251
252 VTMP(4)=(EMC+VSCA)*RKAPPA
253
254 CALL HWULB4(PCL,VTMP,VTMP)
255
256 CALL HWVSUM(4,VTMP,VCLUS(1,JHEP),VCLUS(1,JHEP))
257
258C (Re-)label quarks
259
260 IDHW(LHEP)=ID3+6
261
262 IDHW(MHEP)=ID3
263
264 IDHEP(MHEP)= IDPDG(ID3)
265
266 IDHEP(LHEP)=-IDPDG(ID3)
267
268 ISTHEP(LHEP)=151
269
270 ISTHEP(MHEP)=151
271
272 JMOHEP(2,JHEP)=LHEP
273
274 JDAHEP(2,KHEP)=MHEP
275
276 JMOHEP(1,LHEP)=JMOHEP(1,KHEP)
277
278 JMOHEP(2,LHEP)=MHEP
279
280 JDAHEP(1,LHEP)=0
281
282 JDAHEP(2,LHEP)=JHEP
283
284 JMOHEP(1,MHEP)=JMOHEP(1,JHEP)
285
286 JMOHEP(2,MHEP)=KHEP
287
288 JDAHEP(1,MHEP)=0
289
290 JDAHEP(2,MHEP)=LHEP
291
292 NHEP=NHEP+2
293
294 999 END
295
296CDECK ID>, HWCDEC.
297
298*CMZ :- -26/04/91 10.18.56 by Bryan Webber
299
300*-- Author : Bryan Webber
301
302C-----------------------------------------------------------------------
303
304 SUBROUTINE HWCDEC
305
306C-----------------------------------------------------------------------
307
308C DECAYS CLUSTERS INTO PRIMARY HADRONS
309
310C-----------------------------------------------------------------------
311
312 INCLUDE 'HERWIG61.INC'
313
314 INTEGER JCL,KCL,IP,JP,KP,IST,ID1,ID2,ID3
315
316 IF (IERROR.NE.0) RETURN
317
318 IF (IPROC/1000.EQ.9.OR.IPROC/1000.EQ.5) THEN
319
320C---RELABEL CLUSTER CONNECTED TO REMNANT IN DIS
321
322 DO 10 JCL=2,NHEP
323
324 IF (ISTHEP(JCL).EQ.164) GOTO 20
325
326 IF (ISTHEP(JCL).EQ.165) THEN
327
328 IP=JMOHEP(1,JCL)
329
330 JP=JMOHEP(2,JCL)
331
332 KP=IP
333
334 IF (ISTHEP(IP).EQ.162) THEN
335
336 KP=JP
337
338 JP=IP
339
340 ENDIF
341
342 IF (JMOHEP(2,KP).NE.JP) THEN
343
344 IP=JMOHEP(2,KP)
345
346 ELSE
347
348 IP=JDAHEP(2,KP)
349
350 ENDIF
351
352 KCL=JDAHEP(1,IP)
353
354 IF (ISTHEP(KCL)/10.NE.16) CALL HWWARN('HWCDEC',100,*999)
355
356 ISTHEP(KCL)=164
357
358 GOTO 20
359
360 ENDIF
361
362 10 CONTINUE
363
364 ENDIF
365
366 20 CONTINUE
367
368 DO 30 JCL=1,NHEP
369
370 IST=ISTHEP(JCL)
371
372 IF (IST.GT.162.AND.IST.LT.166) THEN
373
374C---DON'T HADRONIZE BEAM/TARGET CLUSTERS
375
376 IF (IST.EQ.163.OR..NOT.GENSOF) THEN
377
378C---SET UP FLAVOURS FOR CLUSTER DECAY
379
380 CALL HWCFLA(IDHW(JMOHEP(1,JCL)),IDHW(JMOHEP(2,JCL)),ID1,ID3)
381
382 CALL HWCHAD(JCL,ID1,ID3,ID2)
383
384 ENDIF
385
386 ENDIF
387
388 30 CONTINUE
389
390 ISTAT=50
391
392 999 END
393
394CDECK ID>, HWCFLA.
395
396*CMZ :- -26/04/91 10.18.56 by Bryan Webber
397
398*-- Author : Bryan Webber
399
400C-----------------------------------------------------------------------
401
402 SUBROUTINE HWCFLA(JD1,JD2,ID1,ID2)
403
404C-----------------------------------------------------------------------
405
406C SETS UP FLAVOURS FOR CLUSTER DECAY
407
408C-----------------------------------------------------------------------
409
410 INTEGER JD1,JD2,ID1,ID2,JD,JDEC(12)
411
412 DATA JDEC/1,2,3,10,11,12,4,5,6,7,8,9/
413
414 JD=JD1
415
416 IF (JD.GT.12) JD=JD-108
417
418 ID1=JDEC(JD)
419
420 JD=JD2
421
422 IF (JD.GT.12) JD=JD-96
423
424 ID2=JDEC(JD-6)
425
426 END