forked from alisw/POWHEG
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gen_Born_phsp.f
46 lines (42 loc) · 1.29 KB
/
gen_Born_phsp.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
subroutine gen_born_phsp(xborn)
implicit none
include 'nlegborn.h'
include 'pwhg_flst.h'
real * 8 xborn(ndiminteg-3)
call born_phsp(xborn)
call compute_csimax_fsr
end
subroutine compute_csimax_fsr
implicit none
c Compute csimax for all possible final state emitters;
c for initial state emitters it is not possible, since
c csimax depends upon y in this case.
include 'nlegborn.h'
include 'pwhg_flst.h'
include 'pwhg_flg.h'
include 'pwhg_kn.h'
integer j,kres
real * 8 q0,mrec2,pj(0:3)
real * 8 dotp
logical valid_emitter
external valid_emitter
do j=0,nlegborn
if(valid_emitter(j)) then
if(j.gt.2) then
kres=flst_bornres(j,1)
if(kres.gt.0) then
call boost2reson(kn_cmpborn(:,kres),1,
1 kn_cmpborn(:,j),pj)
q0=sqrt(dotp(kn_cmpborn(:,kres),kn_cmpborn(:,kres)))
else
pj=kn_cmpborn(:,j)
q0=2*kn_cmpborn(0,1)
endif
mrec2=(q0-pj(0))**2-pj(1)**2-pj(2)**2-pj(3)**2
kn_csimax_arr(j)=1-mrec2/q0**2
endif
else
kn_csimax_arr(j)=-1
endif
enddo
end