Skip to content

Commit a9b489a

Browse files
author
nason
committed
New commit of Z_ew-BMNNPV
git-svn-id: svn://powhegbox.mib.infn.it/trunk/POWHEG-BOX@2200 9e129b38-c2c0-4eec-9301-dc54fda404de
1 parent c2a0e5d commit a9b489a

37 files changed

+23710
-0
lines changed

Z_ew-BMNNPV/Born.f

+465
Large diffs are not rendered by default.

Z_ew-BMNNPV/Born_phsp.f

+220
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
subroutine born_phsp(xborn)
2+
implicit none
3+
include 'nlegborn.h'
4+
include 'pwhg_flst.h'
5+
include 'pwhg_kn.h'
6+
include 'pwhg_math.h'
7+
include 'PhysPars.h'
8+
real * 8 xborn(ndiminteg-3)
9+
real * 8 xjac,tau,y,beta,vec(3),cth,cthdec,phidec,s,
10+
# z,zhigh,zlow
11+
integer mu,k
12+
logical ini
13+
data ini/.true./
14+
save ini
15+
real*8 random
16+
external random
17+
real *8 decmass
18+
common/clepmass/decmass
19+
real*8 lambda,dotp
20+
external lambda,dotp
21+
real*8 pmod
22+
23+
real*8 anorm,anbw,anlog,pbw,csi
24+
25+
if(ini) then
26+
c set initial- and final-state masses for Born and real
27+
do k=1,2
28+
kn_masses(k)=0
29+
enddo
30+
kn_masses(3)=decmass
31+
kn_masses(4)=decmass
32+
kn_masses(nlegreal)=0
33+
ini=.false.
34+
endif
35+
c Phase space:
36+
c 1 /(16 pi S) d m^2 d cth d y
37+
xjac=1d0/kn_sbeams/(16*pi)
38+
39+
40+
pbw=0.5d0
41+
42+
zlow=atan((ph_Zmass2low - ph_Zmass2)/ph_ZmZw)
43+
zhigh=atan((ph_Zmass2high - ph_Zmass2)/ph_ZmZw)
44+
45+
anbw = (zhigh - zlow)/ph_ZmZw
46+
47+
anlog = log(ph_Zmass2high/ph_Zmass2low)
48+
49+
anorm = pbw*anbw + (1d0-pbw)*anlog
50+
51+
c z=zlow+(zhigh-zlow)*xborn(1)
52+
c m2=ph_ZmZw*tan(z)+ph_Zmass2
53+
54+
if (xborn(1).lt.pbw) then
55+
s = ph_Zmass2 + ph_ZmZw*tan(ph_ZmZw*anbw*xborn(2)+zlow)
56+
else
57+
s = exp(anlog*xborn(2)) * ph_Zmass2low
58+
endif
59+
60+
xjac = xjac /
61+
& ( pbw/((s-ph_Zmass2)**2+ph_ZmZw**2)/anbw
62+
& + (1.d0-pbw)/s/anlog)
63+
c d m^2 jacobian
64+
c xjac=xjac*(zhigh-zlow)
65+
c xjac=xjac*ph_ZmZw/cos(z)**2
66+
c d x1 d x2 = d tau d y;
67+
tau=s/kn_sbeams
68+
kn_sborn=s
69+
c ymax=|log(tau)|/2
70+
y=-(1-2*xborn(3))*log(tau)/2
71+
xjac=-xjac*log(tau)
72+
z=1-2*xborn(4)
73+
xjac=xjac*2
74+
cth=1.5d0*(z-z**3/3)
75+
xjac=xjac*1.5d0*(1-z**2)
76+
kn_born_pt2=0d0
77+
78+
xjac = xjac * sqrt(lambda(s,kn_masses(3)**2,kn_masses(3)**2))/s
79+
c
80+
cthdec=cth
81+
phidec=0d0
82+
kn_cthdec=cthdec
83+
kn_jacborn=xjac
84+
c Build kinematics
85+
kn_xb1=sqrt(tau)*exp(y)
86+
kn_xb2=tau/kn_xb1
87+
c initial state particles
88+
kn_cmpborn(0,1)=sqrt(s)/2
89+
kn_cmpborn(1,1)=0
90+
kn_cmpborn(2,1)=0
91+
kn_cmpborn(3,1)=kn_cmpborn(0,1)
92+
93+
kn_cmpborn(0,2)=kn_cmpborn(0,1)
94+
kn_cmpborn(1,2)=0
95+
kn_cmpborn(2,2)=0
96+
kn_cmpborn(3,2)=-kn_cmpborn(0,2)
97+
98+
c decay products in their rest frame
99+
pmod = sqrt(lambda(s,decmass**2,decmass**2))
100+
+ /2d0/sqrt(s)
101+
102+
kn_cmpborn(0,3) = sqrt(pmod**2 + decmass**2)
103+
kn_cmpborn(1,3) = pmod*sqrt(1-kn_cthdec**2)*cos(phidec)
104+
kn_cmpborn(2,3) = pmod*sqrt(1-kn_cthdec**2)*sin(phidec)
105+
kn_cmpborn(3,3) = pmod*kn_cthdec
106+
107+
kn_cmpborn(0,4) = sqrt(s) - kn_cmpborn(0,3)
108+
kn_cmpborn(1,4) = - kn_cmpborn(1,3)
109+
kn_cmpborn(2,4) = - kn_cmpborn(2,3)
110+
kn_cmpborn(3,4) = - kn_cmpborn(3,3)
111+
112+
c now boost everything along 3
113+
beta=(kn_xb1-kn_xb2)/(kn_xb1+kn_xb2)
114+
vec(1)=0
115+
vec(2)=0
116+
vec(3)=1
117+
call mboost(nlegborn-2,vec,beta,kn_cmpborn(0,3),kn_pborn(0,3))
118+
do mu=0,3
119+
kn_pborn(mu,1)=kn_xb1*kn_beams(mu,1)
120+
kn_pborn(mu,2)=kn_xb2*kn_beams(mu,2)
121+
enddo
122+
c call checkmomzero(nlegborn,kn_pborn)
123+
c call checkmass(2,kn_pborn(0,3))
124+
125+
c minimal final state mass
126+
kn_minmass=sqrt(ph_Zmass2low)
127+
128+
end
129+
130+
131+
subroutine born_suppression(fact)
132+
implicit none
133+
include 'nlegborn.h'
134+
include 'pwhg_flst.h'
135+
include 'pwhg_kn.h'
136+
logical ini
137+
data ini/.true./
138+
real * 8 fact,pt
139+
real * 8 powheginput
140+
external powheginput
141+
if (ini) then
142+
pt = powheginput("#ptsupp")
143+
if(pt.gt.0) then
144+
write(*,*) ' ******** WARNING: ptsupp is deprecated'
145+
write(*,*) ' ******** Replace it with bornsuppfact'
146+
else
147+
pt = powheginput("#bornsuppfact")
148+
endif
149+
if(pt.ge.0) then
150+
write(*,*) '**************************'
151+
write(*,*) 'No Born suppression factor'
152+
write(*,*) '**************************'
153+
endif
154+
ini=.false.
155+
endif
156+
fact=1d0
157+
end
158+
159+
160+
subroutine set_fac_ren_scales(muf,mur)
161+
implicit none
162+
include 'PhysPars.h'
163+
include 'nlegborn.h'
164+
include 'pwhg_flst.h'
165+
include 'pwhg_kn.h'
166+
include 'mathx.h'
167+
real * 8 muf,mur
168+
logical ini
169+
data ini/.true./
170+
real *8 muref
171+
real *8 dotp
172+
external dotp
173+
logical runningscales
174+
save runningscales
175+
real * 8 pt2
176+
real * 8 powheginput
177+
external powheginput
178+
if(ini) then
179+
if(powheginput('#runningscale').ge.1) then
180+
runningscales=.true.
181+
else
182+
runningscales=.false.
183+
endif
184+
endif
185+
if (runningscales) then
186+
if (ini) then
187+
write(*,*) '*************************************'
188+
write(*,*) ' Factorization and renormalization '
189+
if (powheginput('#runningscale').eq.1) then
190+
write(*,*) ' scales set to the Z virtuality '
191+
else
192+
write(*,*) "runningscale value not allowed"
193+
call exit(1)
194+
endif
195+
write(*,*) '*************************************'
196+
ini=.false.
197+
endif
198+
muref=sqrt(2d0*dotp(kn_pborn(0,3),kn_pborn(0,4)))
199+
else
200+
if (ini) then
201+
write(*,*) '*************************************'
202+
write(*,*) ' Factorization and renormalization '
203+
write(*,*) ' scales set to the Z mass '
204+
write(*,*) '*************************************'
205+
ini=.false.
206+
endif
207+
muref=ph_Zmass
208+
endif
209+
muf=muref
210+
mur=muref
211+
mudim2=1d0
212+
end
213+
214+
215+
function lambda(x,y,z)
216+
real*8 lambda
217+
real*8 x,y,z
218+
lambda = x**2+y**2+z**2 - 2.d0*x*y - 2.d0*x*z - 2.d0*y*z
219+
return
220+
end

Z_ew-BMNNPV/Docs/manual-BOX-ZEW.pdf

181 KB
Binary file not shown.

0 commit comments

Comments
 (0)