]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HERWIG/src/hwcbct.f
Coding rule violations corrected.
[u/mrichter/AliRoot.git] / HERWIG / src / hwcbct.f
CommitLineData
3820ca8e 1
2CDECK ID>, HWCBCT.
3
4*CMZ :- -20/07/99 10:56:12 by Peter Richardson
5
6*-- Author : Peter Richardson
7
8C-----------------------------------------------------------------------
9
10 SUBROUTINE HWCBCT(JHEP,KHEP,THEP,PCL,SPLIT)
11
12C-----------------------------------------------------------------------
13
14C Subroutine to split a baryonic cluster containing two heavy quarks
15
16C Based on HWCCUT
17
18C-----------------------------------------------------------------------
19
20 INCLUDE 'HERWIG61.INC'
21
22 DOUBLE PRECISION HWUPCM,HWR,HWVDOT,EMC,QM1,QM2,QM3,QM4,
23
24 & PXY,PCX,PCY,RCM,PCL(5),AX(5),PA(5),PB(5),PC(5),
25
26 & VCLUS(4),DQM,EMX,EMY,SKAPPA,RKAPPA,VTMP(4),
27
28 & DELTM,PDIQUK(5),AY(5)
29
30 INTEGER HWRINT,JHEP,KHEP,LHEP,MHEP,THEP,ID1,ID2,ID3,ID4,NTRY,
31
32 & NTRYMX,J,IB
33
34 LOGICAL SPLIT
35
36 EXTERNAL HWUPCM,HWR,HWVDOT
37
38 PARAMETER(SKAPPA=1.,NTRYMX=100)
39
40 IF(IERROR.NE.0) RETURN
41
42 EMC=PCL(5)
43
44 ID1=IDHW(JHEP)
45
46 ID2=IDHW(KHEP)
47
48 ID3=IDHW(THEP)
49
50 QM1=RMASS(ID1)
51
52 QM2=RMASS(ID2)
53
54 QM3=RMASS(ID3)
55
56 SPLIT = .FALSE.
57
58 NTRY = 0
59
60C Decide if cluster contains a b-(anti)quark
61
62 IF (ID1.EQ.5.OR.ID1.EQ.11.OR.ID2.EQ.5.OR.ID2.EQ.11.OR.
63
64 & ID3.EQ.5.OR.ID3.EQ.11) THEN
65
66 IB=2
67
68 ELSE
69
70 IB=1
71
72 ENDIF
73
74C-- Set the positon of the cluster to be that of the heavy quark
75
76 CALL HWVEQU(4,VHEP(1,THEP),VCLUS)
77
78C--SPLIT THE BARYONIC CLUSTER INTO A HEAVY FLAVOUR MESON AND A HEAVY
79
80C--FLAVOUR BARYON
81
82 PXY=EMC-QM1-QM2-QM3
83
84 20 NTRY=NTRY+1
85
86 IF(NTRY.GT.NTRYMX) RETURN
87
88 30 EMX=QM1+QM2+PXY*HWR()**PSPLT(IB)
89
90 EMY= QM3+PXY*HWR()**PSPLT(IB)
91
92 IF(EMX+EMY.GE.EMC) GOTO 30
93
94C--PULL A LIGHT QUARK PAIR OUT OF THE VACUUM
95
96 40 ID4=HWRINT(1,3)
97
98 IF(QWT(ID4).LT.HWR()) GOTO 40
99
100 QM4=RMASS(ID4)
101
102C--Now combine particles 3 & 4 into a diquark
103
104C--If three also heavy this diquark doesn't exist in HERWIG
105
106C--just assume mass is sum of quark masses,as for other diquarks
107
108 DQM=QM3+QM4
109
110C--Now obtain the masses for the cluster splitting
111
112 PCX=HWUPCM(EMX,QM1,DQM)
113
114 IF(PCX.LT.ZERO) GOTO 20
115
116 PCY=HWUPCM(EMY,QM2,QM4)
117
118 IF(PCY.LT.ZERO) GOTO 20
119
120 SPLIT=.TRUE.
121
122C--Now we've decided which light quark to pull out of the vacuum
123
124C--Find the direction of the second heavy quark
125
126 CALL HWULOF(PCL,PHEP(1,THEP),AX)
127
128 RCM=1./SQRT(HWVDOT(3,AX,AX))
129
130 CALL HWVSCA(3,RCM,AX,AX)
131
132C--Construct the new CoM momenta(collinear)
133
134 PXY=HWUPCM(EMC,EMX,EMY)
135
136 CALL HWVSCA(3,PXY,AX,PC)
137
138C--pc is momenta of Y cluster along 2nd quark dirn in cluster frame
139
140 PC(4)=SQRT(PXY**2+EMY**2)
141
142 PC(5)=EMY
143
144C--pa is momenta of 2nd quark in Y frame
145
146 CALL HWVSCA(3,PCY,AX,PA)
147
148 PA(4)=SQRT(PCY**2+QM3**2)
149
150 PA(5)=QM3
151
152C--pb is momenta of 2nd quark in cluster frame,pa now momenta of antiquark
153
154 CALL HWULOB(PC,PA,PB)
155
156 CALL HWVDIF(4,PC,PB,PA)
157
158 PA(5)=QM4
159
160 LHEP=NHEP+1
161
162 MHEP=NHEP+2
163
164C--boost these momenta back to lab frame
165
166 CALL HWULOB(PCL,PB,PHEP(1,THEP))
167
168 CALL HWULOB(PCL,PA,PHEP(1,MHEP))
169
170C--pc now becomes momenta of X cluster in cluster frame
171
172 CALL HWVSCA(3,-ONE,PC,PC)
173
174 PC(4)=EMC-PC(4)
175
176 PC(5)=EMX
177
178C--find the dirn of the 1st heavy quark in the X frame
179
180C--transform to cluster frame
181
182 CALL HWULOF(PCL,PHEP(1,JHEP),AY)
183
184C--transform to X-frame
185
186 CALL HWULOF(PC,AY,AY)
187
188 RCM=1./SQRT(HWVDOT(3,AY,AY))
189
190 CALL HWVSCA(3,RCM,AY,AY)
191
192C--pa now momenta of 1st havy quark along this dirn
193
194 CALL HWVSCA(3,PCX,AY,PA)
195
196 PA(4)=SQRT(PCX**2+QM1**2)
197
198 PA(5)=QM1
199
200C--pb now momenta of 1st heavy quark in cluster frame then to lab
201
202 CALL HWULOB(PC,PA,PB)
203
204 CALL HWULOB(PCL,PB,PHEP(1,JHEP))
205
206C--now find the diquark momenta by momentum conservation
207
208 DO 50 J=1,4
209
210 50 PDIQUK(J)=PCL(J)-PHEP(J,THEP)-PHEP(J,MHEP)-PHEP(J,JHEP)
211
212 PDIQUK(5)=DQM
213
214C--Now obtain the quark momenta from the diquark
215
216 DO 60 J=1,3
217
218 60 PA(J) = 0
219
220 PA(4) = QM2
221
222 PA(5) = QM2
223
224 CALL HWULOB(PDIQUK,PA,PHEP(1,KHEP))
225
226 CALL HWVDIF(4,PDIQUK,PHEP(1,KHEP),PHEP(1,LHEP))
227
228C--Construct new vertex positions
229
230 RKAPPA=GEV2MM/SKAPPA
231
232 CALL HWVSCA(3,RKAPPA,AX,AX)
233
234 DELTM=(EMX-EMY)*(EMX+EMY)/(TWO*EMC)
235
236 CALL HWVSCA(3,DELTM,AX,VTMP)
237
238 VTMP(4)=(HALF*EMC-PXY)*RKAPPA
239
240 CALL HWULB4(PCL,VTMP,VTMP)
241
242 CALL HWVSUM(4,VTMP,VCLUS,VHEP(1,LHEP))
243
244 CALL HWVEQU(4,VHEP(1,LHEP),VHEP(1,MHEP))
245
246C--Relabel the colours of the quarks
247
248 IDHEP(LHEP) = IDPDG(ID4)
249
250 IDHEP(MHEP) = IDPDG(ID4)
251
252 IF(IDHEP(JHEP).GT.0) THEN
253
254 IDHW(LHEP) = ID4+6
255
256 IDHEP(LHEP) = -IDHEP(LHEP)
257
258 IDHW(MHEP) = ID4
259
260 JDAHEP(2,LHEP) = JHEP
261
262 JMOHEP(2,LHEP) = MHEP
263
264 JMOHEP(2,MHEP) = JMOHEP(2,JHEP)
265
266 JDAHEP(2,MHEP) = LHEP
267
268 JMOHEP(2,JHEP) = LHEP
269
270 ELSE
271
272 IDHW(LHEP) = ID4
273
274 IDHW(MHEP) = ID4+6
275
276 IDHEP(MHEP) = -IDHEP(MHEP)
277
278 JMOHEP(2,LHEP) = JHEP
279
280 JDAHEP(2,MHEP) = JDAHEP(2,JHEP)
281
282 JDAHEP(2,LHEP) = MHEP
283
284 JMOHEP(2,MHEP) = LHEP
285
286 JDAHEP(2,JHEP) = LHEP
287
288 ENDIF
289
290 ISTHEP(LHEP) = 151
291
292 ISTHEP(MHEP) = 151
293
294 JMOHEP(1,LHEP) = JMOHEP(1,KHEP)
295
296 JDAHEP(1,LHEP) = 0
297
298 JMOHEP(1,MHEP) = JMOHEP(1,JHEP)
299
300 JDAHEP(1,MHEP) = 0
301
302 NHEP = NHEP+2
303
304 999 END
305
306CDECK ID>, HWCBVI.
307
308*CMZ :-
309
310*-- Author : Mark Gibbs modified by Peter Richardson
311
312C-----------------------------------------------------------------------
313
314 SUBROUTINE HWCBVI
315
316C-----------------------------------------------------------------------
317
318C FINDS UNPAIRED PARTONS AFTER BARYON-NUMBER VIOLATION
319
320C MODIFIED FOR RPARITY VIOLATING SUSY
321
322C-----------------------------------------------------------------------
323
324 INCLUDE 'HERWIG61.INC'
325
326 COMMON/HWBVIC/NBV,IBV(18)
327
328 DOUBLE PRECISION HWR,PDQ(5)
329
330 INTEGER NBV,IBV,JBV,KBV,LBV,IHEP,IP1,IP2,IP3,JP1,JP2,JP3,
331
332 & HWCBVT,NBR,MBV,IQ1,IQ2,IQ3,ID1,ID2,IDQ,IDIQK(3,3)
333
334 LOGICAL SPLIT,DUNBV(18)
335
336 DATA IDIQK/111,110,113,110,109,112,113,112,114/
337
338C---Check for errors
339
340 IF (IERROR.NE.0) RETURN
341
342C---Correct colour connections are gluon splitting
343
344 CALL HWCCCC
345
346C---Reset bvi clustering flag
347
348 HVFCEN = .FALSE.
349
350C---LIST PARTONS WITH WRONG COLOUR PARTNERS-QUARKS ONLY
351
352 5 NBV=0
353
354 DO 10 IHEP=1,NHEP
355
356 IF (ISTHEP(IHEP).GT.149.AND.ISTHEP(IHEP).LT.155) THEN
357
358 IF (QORQQB(IDHW(IHEP))) THEN
359
360 IF (.NOT.QORQQB(IDHW(JMOHEP(2,IHEP))).
361
362 & AND.JMOHEP(2,IHEP).GT.6) GOTO 10
363
364 ELSE
365
366C---Extra check for Gamma's
367
368 IF (IDHW(IHEP).EQ.59) GO TO 10
369
370C---End of bug fix.
371
372 IF (QORQQB(IDHW(JDAHEP(2,IHEP)))) GO TO 10
373
374 GO TO 10
375
376 ENDIF
377
378 IF(JMOHEP(2,IHEP).LT.6.AND.
379
380 & .NOT.QBORQQ(IDHW(JMOHEP(2,IHEP)))) GOTO 10
381
382C--new for hard process
383
384 NBV=NBV+1
385
386 IF (NBV.GT.18) CALL HWWARN('HWCBVI',100,*999)
387
388 IBV(NBV)=IHEP
389
390 DUNBV(NBV)=.FALSE.
391
392 ENDIF
393
394 10 CONTINUE
395
396C--NOW FIND THE ANTIQUARKS WITH WRONG COLOUR CONNECTIONS
397
398 DO 11 IHEP=1,NHEP
399
400 IF(ISTHEP(IHEP).GT.149.AND.ISTHEP(IHEP).LT.155) THEN
401
402 IF(QBORQQ(IDHW(IHEP))) THEN
403
404 IF(.NOT.QBORQQ(IDHW(JDAHEP(2,IHEP))).AND.
405
406 & JDAHEP(2,IHEP).GT.6) GO TO 11
407
408 ELSE
409
410C--Extra check for gamma's
411
412 IF(IDHW(IHEP).EQ.59) GO TO 11
413
414 IF(QBORQQ(IDHW(JMOHEP(2,IHEP)))) GO TO 11
415
416 GO TO 11
417
418 ENDIF
419
420 IF(JDAHEP(2,IHEP).LT.6.AND.
421
422 & .NOT.QORQQB(IDHW(JDAHEP(2,IHEP)))) GOTO 11
423
424 NBV=NBV+1
425
426 IF(NBV.GT.18) CALL HWWARN('HWCBVI',100,*999)
427
428 IBV(NBV)=IHEP
429
430 DUNBV(NBV)=.FALSE.
431
432 ENDIF
433
434 11 CONTINUE
435
436 IF (NBV.EQ.0) RETURN
437
438 IF(MOD(NBV,3).NE.0) CALL HWWARN('HWCBVI',101,*999)
439
440C---PROCESS FOUND PARTONS, STARTING AT RANDOM POINT IN LIST
441
442 NBR=NBV*HWR()
443
444 DO 100 MBV=1,NBV
445
446 JBV=MBV+NBR
447
448 IF (JBV.GT.NBV) JBV=JBV-NBV
449
450 IF (.NOT.DUNBV(JBV)) THEN
451
452 DUNBV(JBV)=.TRUE.
453
454 IP1=IBV(JBV)
455
456 JP1=HWCBVT(IP1)
457
458C---FIND ASSOCIATED PARTONS
459
460 DO 20 KBV=1,NBV
461
462 IF (.NOT.DUNBV(KBV)) THEN
463
464 IP2=IBV(KBV)
465
466 JP2=HWCBVT(IP2)
467
468 IF (JP2.EQ.JP1) THEN
469
470 DUNBV(KBV)=.TRUE.
471
472 DO 15 LBV=1,NBV
473
474 IF (.NOT.DUNBV(LBV)) THEN
475
476 IP3=IBV(LBV)
477
478 JP3=HWCBVT(IP3)
479
480 IF (JP3.EQ.JP2) THEN
481
482 DUNBV(LBV)=.TRUE.
483
484 GO TO 25
485
486 ENDIF
487
488 ENDIF
489
490 15 CONTINUE
491
492 ENDIF
493
494 ENDIF
495
496 20 CONTINUE
497
498 CALL HWWARN('HWCBVI',102,*999)
499
500 25 IQ1=0
501
502C---LOOK FOR DIQUARK
503
504 IF (ABS(IDHEP(IP1)).GT.100) THEN
505
506 IQ1=IP1
507
508 IQ2=IP2
509
510 IQ3=IP3
511
512 ELSEIF (ABS(IDHEP(IP2)).GT.100) THEN
513
514 IQ1=IP2
515
516 IQ2=IP3
517
518 IQ3=IP1
519
520 ELSEIF (ABS(IDHEP(IP3)).GT.100) THEN
521
522 IQ1=IP3
523
524 IQ2=IP1
525
526 IQ3=IP2
527
528 ENDIF
529
530 IF (IQ1.EQ.0) THEN
531
532C---NO DIQUARKS: COMBINE TWO (ANTI)QUARKS
533
534 IF (ABS(IDHEP(IP1)).GT.3) THEN
535
536 IQ1=IP2
537
538 IQ2=IP3
539
540 IQ3=IP1
541
542 ELSEIF (ABS(IDHEP(IP2)).GT.3) THEN
543
544 IQ1=IP3
545
546 IQ2=IP1
547
548 IQ3=IP2
549
550 ELSE
551
552 IQ1=IP1
553
554 IQ2=IP2
555
556 IQ3=IP3
557
558 ENDIF
559
560 ID1=IDHEP(IQ1)
561
562 ID2=IDHEP(IQ2)
563
564C---CHECK FLAVOURS
565
566 IF (ID1.GT.0.AND.ID1.LT.4.AND.
567
568 & ID2.GT.0.AND.ID2.LT.4) THEN
569
570 IDQ=IDIQK(ID1,ID2)
571
572 ELSEIF (ID1.LT.0.AND.ID1.GT.-4.AND.
573
574 & ID1.LT.0.AND.ID2.GT.-4) THEN
575
576 IDQ=IDIQK(-ID1,-ID2)+6
577
578 ELSE
579
580C---CANT MAKE DIQUARKS WITH HEAVY QUARKS: TRY CLUSTER SPLITTING
581
582 CALL HWVSUM(4,PHEP(1,IQ1),PHEP(1,IQ2),PDQ)
583
584 CALL HWUMAS(PDQ)
585
586C--Use the original splitting procedure
587
588 CALL HWCCUT(IQ1,IQ2,PDQ,.FALSE.,SPLIT)
589
590 IF(SPLIT) GOTO 5
591
592C--If it fails try the new procedure
593
594 CALL HWVSUM(4,PDQ,PHEP(1,IQ3),PDQ)
595
596 CALL HWUMAS(PDQ)
597
598 IF(ABS(ID1).GT.3) THEN
599
600 CALL HWCBCT(IQ3,IQ2,IQ1,PDQ,SPLIT)
601
602 ELSEIF(ABS(ID2).GT.3) THEN
603
604 CALL HWCBCT(IQ3,IQ1,IQ2,PDQ,SPLIT)
605
606 ELSE
607
608 CALL HWWARN('HWCBVI',100,*999)
609
610 ENDIF
611
612 IF (SPLIT) GO TO 5
613
614C---Unable to form cluster; dispose of event
615
616 CALL HWWARN('HWCBVI',-3,*999)
617
618 ENDIF
619
620C---OVERWRITE FIRST AND CANCEL SECOND
621
622 IDHW(IQ1)=IDQ
623
624 IDHEP(IQ1)=IDPDG(IDQ)
625
626 CALL HWVSUM(4,PHEP(1,IQ1),PHEP(1,IQ2),PHEP(1,IQ1))
627
628 CALL HWUMAS(PHEP(1,IQ1))
629
630 ISTHEP(IQ2)=0
631
632C---REMAKE COLOUR CONNECTIONS
633
634 IF (QORQQB(IDQ)) THEN
635
636 JMOHEP(2,IQ1)=IQ3
637
638 JDAHEP(2,IQ3)=IQ1
639
640 ELSE
641
642 JDAHEP(2,IQ1)=IQ3
643
644 JMOHEP(2,IQ3)=IQ1
645
646 ENDIF
647
648 ELSE
649
650C---SPLIT A DIQUARK
651
652 NHEP=NHEP+1
653
654 CALL HWVSCA(5,HALF,PHEP(1,IQ1),PHEP(1,IQ1))
655
656 CALL HWVEQU(5,PHEP(1,IQ1),PHEP(1,NHEP))
657
658 ISTHEP(NHEP)=150
659
660 JMOHEP(1,NHEP)=JMOHEP(1,IQ1)
661
662 JDAHEP(1,NHEP)=0
663
664C---FIND FLAVOURS
665
666 IDQ=IDHW(IQ1)
667
668 DO 30 ID2=1,3
669
670 DO 30 ID1=1,3
671
672 IF (IDIQK(ID1,ID2).EQ.IDQ) THEN
673
674 IDHW(IQ1)=ID1
675
676 IDHW(NHEP)=ID2
677
678C---REMAKE COLOUR CONNECTIONS (DIQUARK)
679
680 JMOHEP(2,IQ1)=IQ2
681
682 JMOHEP(2,IQ2)=NHEP
683
684 JMOHEP(2,IQ3)=IQ1
685
686 JMOHEP(2,NHEP)=IQ3
687
688 JDAHEP(2,IQ1)=IQ3
689
690 JDAHEP(2,IQ2)=IQ1
691
692 JDAHEP(2,IQ3)=NHEP
693
694 JDAHEP(2,NHEP)=IQ2
695
696 GO TO 35
697
698 ELSEIF (IDIQK(ID1,ID2).EQ.IDQ-6) THEN
699
700 IDHW(IQ1)=ID1+6
701
702 IDHW(NHEP)=ID2+6
703
704C---REMAKE COLOUR CONNECTIONS (ANTIDIQUARK)
705
706 JMOHEP(2,IQ1)=IQ3
707
708 JMOHEP(2,IQ2)=IQ1
709
710 JMOHEP(2,IQ3)=NHEP
711
712 JMOHEP(2,NHEP)=IQ2
713
714 JDAHEP(2,IQ1)=IQ2
715
716 JDAHEP(2,IQ2)=NHEP
717
718 JDAHEP(2,IQ3)=IQ1
719
720 JDAHEP(2,NHEP)=IQ3
721
722 GO TO 35
723
724 ENDIF
725
726 30 CONTINUE
727
728 CALL HWWARN('HWCBVI',104,*999)
729
730 35 IDHEP(IQ1)=IDPDG(IDHW(IQ1))
731
732 IDHEP(NHEP)=IDPDG(IDHW(NHEP))
733
734 ENDIF
735
736 ENDIF
737
738 100 CONTINUE
739
740 RETURN
741
742 999 END
743
744CDECK ID>, HWCBVT.
745
746*CMZ :-
747
748*-- Author : Peter Richardson
749
750C-----------------------------------------------------------------------
751
752 FUNCTION HWCBVT(IP)
753
754C-----------------------------------------------------------------------
755
756C Function to find the baryon number violating vertex a parton came from
757
758C-----------------------------------------------------------------------
759
760 INCLUDE 'HERWIG61.INC'
761
762 INTEGER HWCBVT,IP,JP(2),KP,I,J,ID,TYPE,IDM,IDM2,IDM3,IDM4
763
764 JP(1) = IP
765
766 ID = IDHW(IP)
767
768 IF(ID.LE.6.OR.(ID.GE.115.AND.ID.LE.120)) THEN
769
770 JP(2) = JMOHEP(2,IP)
771
772 ELSE
773
774 JP(2) = JDAHEP(2,IP)
775
776 ENDIF
777
778 DO I=1,2
779
780 IDM = JMOHEP(1,JMOHEP(1,JMOHEP(1,JMOHEP(1,JP(I)))))
781
782 IF(IDHW(IDM).EQ.6.OR.IDHW(IDM).EQ.12) THEN
783
784 JP(I)=IDM
785
786 ENDIF
787
788 ENDDO
789
790 DO J=1,7
791
792 DO I=1,2
793
794 KP = JMOHEP(1,JP(I))
795
796 IDM = IDHW(KP)
797
798 IDM2 = IDHW(JDAHEP(1,KP))
799
800 IDM3 = IDHW(JDAHEP(2,KP))
801
802 IDM4 = IDHW(JDAHEP(1,KP)+1)
803
804 IF((ISTHEP(KP).EQ.155.AND.
805
806 & ((IDM.GE.449.AND.IDM.LE.457.AND.IDM2.LE.12.AND.
807
808 & IDM3.LE.12.AND.IDM4.LE.12).OR.
809
810 & (((IDM.GE.411.AND.IDM.LE.424).OR.IDM.EQ.405.OR.IDM.EQ.406)
811
812 & .AND.IDM2.LE.12.AND.IDM3.LE.12)))
813
814 & .OR.(IDM.EQ.15.AND.IDM2.LE.12.AND.
815
816 & IDHW(JMOHEP(1,KP)).LE.12.AND.
817
818 & IDHW(JMOHEP(2,KP)).LE.12.AND.IDM3.GE.449.AND.
819
820 & IDM3.LE.457).OR.
821
822 & (IDM.EQ.15.AND.IDM2.GE.198.AND.IDM2.LE.200.
823
824 & AND.ABS(IDPDG(IDM3)).GT.1000000)) THEN
825
826 IF(IDHW(KP).EQ.449.AND.JDAHEP(1,KP).EQ.JP(I)) THEN
827
828 KP = JMOHEP(1,KP)
829
830 ELSEIF(IDHW(KP).EQ.15) THEN
831
832 TYPE=IDHW(JDAHEP(1,KP))
833
834 IF(TYPE.GE.7.AND.TYPE.LE.12.AND.
835
836 & JMOHEP(2,JDAHEP(2,KP)).EQ.JP(I)) THEN
837
838 KP=IP
839
840 ELSEIF(TYPE.LE.6.AND.
841
842 & JDAHEP(2,JDAHEP(2,KP)).EQ.JP(I)) THEN
843
844 KP=IP
845
846 ELSE
847
848 HWCBVT = KP
849
850 RETURN
851
852 ENDIF
853
854 ELSE
855
856 HWCBVT = KP
857
858 RETURN
859
860 ENDIF
861
862 ENDIF
863
864 JP(I) =KP
865
866 ENDDO
867
868 ENDDO
869
870 HWCBVT = 0
871
872 999 END
873
874CDECK ID>, HWCCCC.
875
876*CMZ :-
877
878*-- Author : Peter Richardson
879
880C-----------------------------------------------------------------------
881
882 SUBROUTINE HWCCCC
883
884C-----------------------------------------------------------------------
885
886C Subroutine to correct colour connections after the gluon splitting
887
888C-----------------------------------------------------------------------
889
890 INCLUDE 'HERWIG61.INC'
891
892 INTEGER IHEP,STFSPT,LHEP,MHEP,RHEP
893
894 IF(IERROR.NE.0) RETURN
895
896C--Find the first particle in the event record with status 150
897
898 DO IHEP=1,NHEP
899
900 IF(ISTHEP(IHEP).GE.150.AND.ISTHEP(IHEP).LE.154) THEN
901
902 STFSPT = IHEP
903
904 GOTO 10
905
906 ENDIF
907
908 ENDDO
909
910 10 CONTINUE
911
912C--Now find any that are colour connected to earlier particles
913
914C--in the event record
915
916 DO IHEP=STFSPT,NHEP
917
918C--First the quarks and antidiquarks
919
920 IF(IDHW(IHEP).LT.6.OR.
921
922 & (IDHW(IHEP).GE.115.AND.IDHW(IHEP).LE.120)) THEN
923
924 IF(JMOHEP(2,IHEP).LT.STFSPT) THEN
925
926 LHEP = IHEP
927
928 MHEP = JMOHEP(2,IHEP)
929
930 RHEP = MHEP
931
932 IF(MHEP.GT.6) RHEP = JDAHEP(1,MHEP)
933
934C--As from Rparity connect to particle not to antiparticle
935
936 IF(IDHW(MHEP).NE.13) THEN
937
938 JMOHEP(2,LHEP) = RHEP
939
940 ELSE
941
942 RHEP = RHEP+1
943
944 JMOHEP(2,LHEP) = RHEP
945
946 ENDIF
947
948 ENDIF
949
950 ENDIF
951
952C--Now the antiquarks
953
954 IF((IDHW(IHEP).GT.6.AND.IDHW(IHEP).LE.12).OR.
955
956 & (IDHW(IHEP).GE.109.AND.IDHW(IHEP).LE.114)) THEN
957
958 IF(JDAHEP(2,IHEP).LT.STFSPT) THEN
959
960 LHEP = IHEP
961
962 MHEP = JDAHEP(2,IHEP)
963
964 RHEP = MHEP
965
966 IF(MHEP.GT.6) RHEP = JDAHEP(1,MHEP)
967
968C--As from Rparity connect to antiparticle not particle
969
970 IF(IDHW(MHEP).NE.13) THEN
971
972 JDAHEP(2,LHEP) = RHEP
973
974 ELSE
975
976 JDAHEP(2,LHEP) = RHEP
977
978 ENDIF
979
980 ENDIF
981
982 ENDIF
983
984 ENDDO
985
986 END