1
subroutine idenparts(iden_part,itree,sprop,forcebw,prwidth)
3
c Keep track of identical particles to map radiation processes
4
c (i.e., not use BW for such processes).
5
c Only consider particles that are present in final state as
6
c radiating, since need to correctly map conflicting BWs for decays.
11
include 'maxconfigs.inc'
13
include 'nexternal.inc'
17
integer iden_part(-nexternal+1:nexternal)
18
integer itree(2,-max_branch:-1),iconfig
19
integer sprop(maxsproc,-max_branch:-1) ! Propagator id
20
integer forcebw(-max_branch:-1) ! Forced BW, for identical particle conflicts
21
double precision prwidth(-nexternal:0) !Propagator width
26
integer idup(nexternal,maxproc,maxsproc)
27
integer mothup(2,nexternal)
28
integer icolup(2,nexternal,maxflow,maxsproc)
29
include 'leshouche.inc'
30
integer ipdg(-nexternal+1:nexternal)
34
include 'coupl.inc' !Mass and width info
41
do i=-(nexternal-1),nexternal
46
do while (i .lt. nexternal-2 .and. itree(1,-i) .ne. 1)
48
if (prwidth(-i) .gt. 0d0) then
49
if(ipdg(-i).eq.ipdg(itree(1,-i)).and.itree(1,-i).gt.0.or.
50
$ ipdg(-i).eq.ipdg(itree(2,-i)).and.itree(2,-i).gt.0) then
51
iden_part(-i) = ipdg(-i)
52
else if(ipdg(-i).eq.ipdg(itree(1,-i)).and.
53
$ iden_part(itree(1,-i)).ne.0.or.
54
$ ipdg(-i).eq.ipdg(itree(2,-i)).and.
55
$ iden_part(itree(2,-i)).ne.0) then
56
iden_part(-i) = ipdg(-i)