1
subroutine sborn_sf(p_born,m,n,wgt)
3
include "nexternal.inc"
5
double precision p_born(0:3,nexternal-1), wgt
7
parameter (nsqampso = %(nsqorders)d)
9
C return the color-linked borns if i_fks is a color octet,
10
C the charge-linked if it is a color singlet
11
double complex wgt_born(2,0:nsqampso)
12
double precision wgt_col
13
double precision chargeprod
16
COMPLEX*16 ANS_CNT(2, NSPLITORDERS)
17
common /c_born_cnt/ ans_cnt
18
LOGICAL KEEP_ORDER_CNT(NSPLITORDERS, NSQAMPSO)
19
common /c_keep_order_cnt/ keep_order_cnt
20
double precision charges_born(nexternal-1)
21
common /c_charges_born/charges_born
22
logical need_color_links, need_charge_links
23
common /c_need_links/need_color_links, need_charge_links
24
double precision pmass(nexternal), zero
26
double precision amp_split_soft(amp_split_size)
27
common /to_amp_split_soft/amp_split_soft
31
if (need_color_links.and.need_charge_links) then
32
write(*,*) 'ERROR IN SBORN_SF, both color and charged links are needed'
35
C check if need color or charge links, and include the gs/w**2 term here
36
if (need_color_links) then
39
C update the amp_split_soft, which is summed in sbornsoft
40
amp_split_soft(1:amp_split_size) = dble(amp_split_cnt(1:amp_split_size,1,qcd_pos)) * g**2
42
else if (need_charge_links) then
43
chargeprod = charges_born(m) * charges_born(n)
44
if ((m.le.nincoming.and.n.gt.nincoming) .or. (n.le.nincoming.and.m.gt.nincoming)) chargeprod = - chargeprod
45
C add a factor 1/2 for the self-eikonal soft link
46
if (m.eq.n) chargeprod = chargeprod / 2d0
47
wgt = dble(ans_cnt(1, qed_pos)) * chargeprod * dble(gal(1))**2
48
C update the amp_split_soft, which is summed in sbornsoft
49
amp_split_soft(1:amp_split_size) = dble(amp_split_cnt(1:amp_split_size,1,qed_pos)) * chargeprod * dble(gal(1))**2