@@ -30,8 +30,11 @@ subroutine coales(ijk,neve,nnout,nap,nat,nzp,nzt,i_coal)
3030 common / sa6_p/ ithroq_p,ithrob_p,ich_p,non6_p,throe_p(4 ) ! 201104 300623 Lei
3131 common / sa18/ i_deex,n_deex_step,i_pT,i_pT_max,a_FF,aPS_c,aPS_b ! 280823 Lei
3232 common / sa24/ adj1(40 ),nnstop,non24,zstop
33+ common / sa28/ nstr,nstra(kszj),nstrv(kszj),nstr0,
34+ & nstr1,nstr1a(kszj),nstr1v(kszj) ! 030620
3335 common / sa36/ nglu,nongu,kglu(kszj,5 ),pglu(kszj,5 ),vglu(kszj,5 ) ! 220822
3436 common / sa37/ nth,npadth,kth(kszj,5 ),pth(kszj,5 ),vth(kszj,5 ) ! 150922
37+ common / sbe/ nbe,nonbe,kbe(kszj,5 ),pbe(kszj,5 ),vbe(kszj,5 )
3538 common / sbh/ nbh,nonh,kbh(kszj,5 ),pbh(kszj,5 ),vbh(kszj,5 )
3639 common / syspar/ ipden,itden,suppm,suptm,suppc,suptc,r0p,r0t,
3740 c napp,natt,nzpp,nztt,pio
@@ -58,19 +61,21 @@ subroutine coales(ijk,neve,nnout,nap,nat,nzp,nzt,i_coal)
5861
5962c -------------------------------------------------------------------------------
6063c ---------------------------- Junctions removing ---------------------------
64+ if ( INT (adj1(40 )).eq. 3 )then ! 070223
6165c220822 Remove junctions.
62- jb = 0
63- 2010 do i1= jb+1 ,N,1 ! i1 loop
64- kf = K(i1,2 )
65- kfab = ABS (kf)
66- if (kfab.ne. 88 )then
67- jb = jb + 1
68- goto 2020
69- endif
70- call updad_pyj(N,i1+1 ,1 ) ! 090922 ' updad_pyj' in sfm_30.f
71- N = N - 1
72- goto 2010
73- 2020 enddo ! i1 loop
66+ jb = 0
67+ 2010 do i1= jb+1 ,N,1 ! i1 loop
68+ kf = K(i1,2 )
69+ kfab = ABS (kf)
70+ if (kfab.ne. 88 )then
71+ jb = jb + 1
72+ goto 2020
73+ endif
74+ call updad_pyj(N,i1+1 ,1 ) ! 090922 ' updad_pyj' in sfm_30.f
75+ N = N - 1
76+ goto 2010
77+ 2020 enddo ! i1 loop
78+ endif ! 070223
7479c ---------------------------- Junctions removing ---------------------------
7580c -------------------------------------------------------------------------------
7681
@@ -83,6 +88,7 @@ subroutine coales(ijk,neve,nnout,nap,nat,nzp,nzt,i_coal)
8388c -------------------------------------------------------------------------------
8489c ----------------------------- Gluon splitting -----------------------------
8590c220122
91+ n00 = N ! Original total entries in PYJETS
8692c Move gluons from 'pyjest' to 'sa36'.
8793 call remo_glu
8894c Break-up gluon (with E_g>2E_u in 'sa36') -> qqbar string
@@ -100,20 +106,15 @@ subroutine coales(ijk,neve,nnout,nap,nat,nzp,nzt,i_coal)
100106c -------------------------------------------------------------------------------
101107
102108
103- c250823 Debug mode. ! 250823 Lei
104- c Do g-splitting only, without q-deexcitation.
105- if ( INT (adj1(12 )).eq. 3 ) goto 1000
106-
107-
108109c -------------------------------------------------------------------------------
109110c --------------------------- Quark deexcitation ----------------------------
110111c280822 energetic q (qbar) de- excitation
111- n00 = N ! Original total entries in PYJETS
112112 i_call_deex = 0
113113 i_daught_gen = 1 ! the #- th newly produced daughter qqbar
114114 n_deex = 0 ! the number of successful deexcitation
115115 jb = 0
116116 n0 = N ! Current total entries in PYJETS
117+ if ( i_deex_gen.eq. 0 ) goto 900 ! 300324 Lei
117118700 continue
118119 do i1= jb+1 ,n0,1
119120 kf0 = K(i1,2 )
@@ -147,12 +148,37 @@ subroutine coales(ijk,neve,nnout,nap,nat,nzp,nzt,i_coal)
147148c300623 Shares the 4 - momentum in ' throe_p' among partons. ! 300623 Lei
148149 call share_p_PYJETS ! 300623 Lei
149150c220122
151+
152+ c300324 Lei
153+ if ( INT (adj1(12 )).eq. 3 )then
154+ c Records the location (line numbers) of new strings (qqbar).
155+ do i1= n00+1 ,N,2
156+ nstr1 = nstr1 + 1
157+ nstr1a( nstr1 ) = i1
158+ nstr1v( nstr1 ) = i1 + 1
159+ end do
160+ nstr0 = nstr1
161+ c Updates "sbe".
162+ do ii= n00+1 ,N,1
163+ nbe = nbe + 1
164+ do jj= 1 ,5 ,1
165+ kbe( nbe, jj ) = K(ii,jj)
166+ pbe( nbe, jj ) = P(ii,jj)
167+ vbe( nbe, jj ) = V(ii,jj)
168+ end do
169+ end do
170+ end if
171+ c300324 Lei
172+
150173c --------------------------- Quark deexcitation ----------------------------
151174c -------------------------------------------------------------------------------
152175
153176
154177c Just do the g-splitting and quark deexcitation, without real coalescence
155- 1000 if ( i_coal.eq. 0 ) return ! 300623 Lei For adj12 = 2
178+ c250324
179+ 1000 continue
180+ if ( i_coal.eq. 0 ) return ! 300623 Lei For adj12 = 2
181+ c250324
156182
157183
158184c -------------------------------------------------------------------------------
@@ -506,7 +532,7 @@ subroutine hadpro(rrp,iphas) ! 080324
506532 common / sa6_p/ ithroq_p,ithrob_p,ich_p,non6_p,throe_p(4 ) ! 201104 300623 Lei
507533 common / sa24/ adj1(40 ),nnstop,non24,zstop
508534 common / sa37/ nth,npadth,kth(kszj,5 ),pth(kszj,5 ),vth(kszj,5 ) ! 150922
509- common / coal1/ bmrat ! ratio of baryon to meson
535+ common / coal1/ bmrat,i_mm ! ratio of baryon to meson
510536 dimension pc(4 ),rc(3 ),iar(3 ),rcp(3 )
511537 dimension psu(3 ),peo(5 ),pnn(kszj,5 )
512538 dimension numb(3 ) ! 110905
@@ -575,7 +601,7 @@ subroutine hadpro(rrp,iphas) ! 080324
575601c110324 Lei
576602 KF_in_1 = kf1
577603 KF_in_2 = kf2
578- c Exchanges KFSs of qbar and q to ensure the first one is q.
604+ c Exchanges KFs of qbar and q to ensure the first one is q.
579605 if ( kf1.lt. 0 )then
580606 KF_in_1 = kf2
581607 KF_in_2 = kf1
@@ -584,13 +610,13 @@ subroutine hadpro(rrp,iphas) ! 080324
584610c110324 Lei
585611 if (isucc.eq. 0 ) goto 500
586612
587- c Phase space adjudgment.
613+ c Phase space adjudgment.
588614 if ( iphas.ne. 0 )then
589615 call phas(i1,i2,0 ,isucc,2 ,iphas)
590616 if ( isucc.eq. 0 ) goto 500 ! fail
591617 endif
592618
593- c Proceed for success
619+ c Proceed for success
594620 imes = imes + 1
595621 nme = nme + 1
596622
@@ -659,6 +685,12 @@ subroutine hadpro(rrp,iphas) ! 080324
659685 call findb(kf1,kf2,kf3,cm,kfii,amasi,isucc,1 )
660686 if (isucc.eq. 0 ) goto 600
661687
688+ c Phase space adjudgment.
689+ if ( iphas.ne. 0 )then
690+ call phas(i1,i2,i3,isucc,3 ,iphas)
691+ if ( isucc.eq. 0 ) goto 600 ! fail
692+ endif
693+
662694c Proceed for success.
663695 ibarp = ibarp + 1
664696 nba = nba + 1
@@ -735,6 +767,12 @@ subroutine hadpro(rrp,iphas) ! 080324
735767 call findb(- kf1,- kf2,- kf3,cm,kfii,amasi,isucc,- 1 )
736768 if (isucc.eq. 0 ) goto 700 ! 110324 Lei
737769
770+ c Phase space adjudgment.
771+ if ( iphas.ne. 0 )then
772+ call phas(i1,i2,i3,isucc,3 ,iphas)
773+ if ( isucc.eq. 0 ) goto 700 ! fail
774+ endif
775+
738776 ibarm = ibarm + 1
739777 nba = nba + 1
740778
@@ -2424,13 +2462,21 @@ subroutine tdgaus(v,pmax,np,pp)
24242462c ccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
24252463 subroutine remo_glu ! 160822
24262464c moves gluons from 'pyjets' to 'sa36'
2465+ c290324 Removes gluons from ' sbe' , too. ! 290324 Lei
24272466 IMPLICIT DOUBLE PRECISION (A- H, O- Z)
24282467 IMPLICIT INTEGER (I- N)
24292468 INTEGER PYK,PYCHGE,PYCOMP
24302469 PARAMETER (KSZJ= 80000 )
24312470 COMMON / PYJETS/ N,NPAD,K(KSZJ,5 ),P(KSZJ,5 ),V(KSZJ,5 )
2432- common / sa36/ nglu,nongu,kglu(kszj,5 ),pglu(kszj,5 ),vglu(kszj,5 )
24332471 common / sa1/ kjp21,non1,bp,iii,neve,nout,nosc
2472+ common / sa24/ adj1(40 ),nnstop,non24,zstop ! 170205
2473+ common / sa26/ ndiq(kszj),npt(kszj),ifcom(kszj),idi,idio ! 220110
2474+ common / sa28/ nstr,nstra(kszj),nstrv(kszj),nstr0,
2475+ & nstr1,nstr1a(kszj),nstr1v(kszj) ! 030620
2476+ common / sa36/ nglu,nongu,kglu(kszj,5 ),pglu(kszj,5 ),vglu(kszj,5 )
2477+ common / sbe/ nbe,nonbe,kbe(kszj,5 ),pbe(kszj,5 ),vbe(kszj,5 )
2478+
2479+
24342480 nglu= 0
24352481 if (iii.eq. 1 )then ! 300623 Lei
24362482 kglu= 0
@@ -2466,9 +2512,62 @@ subroutine remo_glu ! 160822
24662512 enddo
24672513 enddo
24682514 N= N-1
2515+ c290324 Lei
2516+ if ( INT (adj1(12 )).eq. 3 )then
2517+ c Adjusts line numbers of components of broken diquarks.
2518+ do i_diq = 1 , idi, 1
2519+ if ( i1.lt. ifcom(i_diq) ) ifcom(i_diq) = ifcom(i_diq) - 1
2520+ if ( i1.lt. npt(i_diq) ) npt(i_diq) = npt(i_diq) - 1
2521+ end do
2522+ do j = i1+1 , N+1 , 1
2523+ ndiq( j-1 ) = ndiq(j)
2524+ end do
2525+ c Adjusts line numbers of the string-locating.
2526+ do i_string = 1 , nstr1, 1
2527+ if ( i1.le. nstr1a(i_string) )
2528+ & nstr1a(i_string) = nstr1a(i_string) - 1
2529+ if ( i1.le. nstr1v(i_string) )
2530+ & nstr1v(i_string) = nstr1v(i_string) - 1
2531+ end do
2532+ end if
2533+ c290324 Lei
24692534 goto 201
24702535202 enddo ! do loop
24712536203 continue
2537+
2538+
2539+ c290324 Lei
2540+ if ( INT (adj1(12 )).eq. 3 )then
2541+ c Removes gluons from 'sbe'.
2542+ jb= 0
2543+ 301 do i1= jb+1 ,nbe
2544+ kf= kbe(i1,2 )
2545+ kfab= iabs(kf)
2546+ eng= pbe(i1,4 )
2547+ if (kfab.ne. 21 )then ! stay
2548+ jb= jb+1
2549+ goto 302
2550+ endif
2551+ if (i1.eq. nbe)then
2552+ nbe= nbe-1
2553+ goto 303
2554+ endif
2555+ c move particle list one step downward from i1+1 to nbe
2556+ do jj= 1 ,5
2557+ do j= i1+1 ,nbe,1
2558+ kbe(j-1 ,jj)= kbe(j,jj)
2559+ pbe(j-1 ,jj)= pbe(j,jj)
2560+ vbe(j-1 ,jj)= vbe(j,jj)
2561+ enddo
2562+ enddo
2563+ nbe= nbe-1
2564+ goto 301
2565+ 302 enddo ! do loop
2566+ 303 continue
2567+ end if
2568+ c290324 Lei
2569+
2570+
24722571 return
24732572 end
24742573
0 commit comments