File indexing completed on 2024-04-06 12:13:31
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 subroutine upinit
0012
0013
0014 implicit double precision(a-h, o-z)
0015 implicit integer(i-n)
0016
0017
0018 common/pypars/mstp(200),parp(200),msti(200),pari(200)
0019 save /pypars/
0020
0021 INTEGER MAXPUP
0022 PARAMETER (MAXPUP=100)
0023 INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
0024 DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
0025 COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
0026 &IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
0027 &LPRUP(MAXPUP)
0028 SAVE /HEPRUP/
0029
0030
0031 parameter (maxnup=500)
0032 common/hepeup/nup,idprup,xwgtup,scalup,aqedup,aqcdup,idup(maxnup),
0033 &istup(maxnup),mothup(2,maxnup),icolup(2,maxnup),pup(5,maxnup),
0034 &vtimup(maxnup),spinup(maxnup)
0035 save /hepeup/
0036
0037
0038 common/ptpass/ptmin,ptmax,crossmax,etamin,etamax,
0039 & smin,smax,ymin,ymax,psetamin,psetamax
0040 common/histcol/inx
0041
0042
0043 double complex colmat,bundamp
0044 common/upcom/ecm,pmbc,pmb,pmc,fbcc,pmomup(5,8),
0045 & colmat(10,64),bundamp(4),pmomzero(5,8)
0046 common/counter/ibcstate,nev
0047 logical generate
0048 common/genefull/generate
0049 common/vegcross/vegsec,vegerr,iveggrade
0050
0051
0052 common/funtrans/nq2,npdfu
0053 common/usertran/ishower,idpp
0054
0055 common/loggrade/ievntdis,igenerate,ivegasopen,igrade
0056
0057
0058 PARAMETER (MAXLEN=200)
0059
0060
0061
0062
0063 if(npdfu.eq.1) then
0064 idbmup(1) = 2212
0065 idbmup(2) = -2212
0066 end if
0067
0068
0069 if(npdfu.eq.2) then
0070 idbmup(1) = 2212
0071 idbmup(2) = 2212
0072 end if
0073
0074 ebmup(1) = 0.5d0*ecm
0075 ebmup(2) = 0.5d0*ecm
0076
0077
0078 idwtup = idpp
0079 nprup = 1
0080 lprup(1) = 1001
0081 idprup = lprup(1)
0082
0083
0084
0085
0086
0087 if(idwtup.eq.1) then
0088 if(generate) then
0089 if(ivegasopen.eq.1) then
0090 xmaxup(1)=crossmax
0091 else
0092 write(*,'(a)')
0093 & 'warning: here should input a maximum differential cross-sec'
0094 write(*,'(a)')
0095 & '!stop here! input a proper value in (subroutine upinit)!!!!'
0096 stop 'or running vegas to get the correct value!program stop!'
0097
0098
0099 end if
0100 else
0101 xmaxup(1)=0.0d0
0102 end if
0103 end if
0104
0105
0106
0107
0108 if (idwtup.eq.3) then
0109 xsecup(1)=vegsec*1.0d+3 ! vegas value (nb) for initialization.
0110 xmaxup(1)=crossmax ! maximum differential cross-section
0111 end if
0112
0113 return
0114 end
0115
0116
0117
0118 subroutine upevnt
0119
0120
0121 implicit double precision(a-h, o-z)
0122 implicit integer(i-n)
0123
0124
0125 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
0126 SAVE /PYPARS/
0127
0128
0129
0130
0131 INTEGER MAXNUP
0132 PARAMETER (MAXNUP=500)
0133 INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
0134 DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
0135 COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
0136 &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP),
0137 &VTIMUP(MAXNUP),SPINUP(MAXNUP)
0138 SAVE /HEPEUP/
0139
0140 parameter (maxpup=100)
0141 integer pdfgup,pdfsup,lprup
0142 common/heprup/idbmup(2),ebmup(2),pdfgup(2),pdfsup(2),
0143 &idwtup,nprup,xsecup(maxpup),xerrup(maxpup),xmaxup(maxpup),
0144 &lprup(maxpup)
0145 save /heprup/
0146
0147
0148 PARAMETER (MAXLEN=200)
0149
0150 #include "invegas.h"
0151 #include "bcvegpy_set_par.inc"
0152
0153 common/grade/xi(NVEGBIN,10)
0154
0155 common/ptpass/ptmin,ptmax,crossmax,etamin,etamax,
0156 & smin,smax,ymin,ymax,psetamin,psetamax
0157 common/counter/ibcstate,nev
0158 logical generate
0159 common/genefull/generate
0160
0161
0162 common/totcross/appcross
0163
0164
0165 common/subopen/subfactor,subenergy,isubonly
0166
0167
0168
0169 common/qqbar/iqqbar,iqcode
0170 common/mixevnt/xbcsec(8),imix,imixtype
0171
0172 dimension x(10),ia(10)
0173
0174
0175
0176
0177
0178
0179 if(imix.eq.1 .and. isubonly.eq.0) call initmixgrade
0180
0181
0182 if(idprup.eq.1001) then
0183 xnd =NVEGBIN*1.0d0
0184 if(isubonly.eq.0) then
0185 ndim =7
0186 else
0187 ndim =5
0188 end if
0189
0190
0191 call generand(ndim,xnd,x,ia,wgt)
0192 call phpoint(x,wt)
0193 if(wt.lt.1.0d-16) then
0194 xwgtup=0.0d0
0195 else
0196 xwgtup=totfun(x,wt)*wgt
0197 end if
0198
0199 if(idwtup.eq.1.and.generate) then
0200
0201
0202
0203 if(xwgtup.gt.xmaxup(1)) then
0204 xwgtup = xmaxup(1)*0.9999999d0
0205 end if
0206 end if
0207
0208
0209 appcross=appcross+xwgtup/nev*1.0d-3 !nb
0210
0211
0212 if(xwgtup.gt.crossmax) then
0213 crossmax=xwgtup
0214 end if
0215
0216 if(iqqbar.eq.0) then
0217 call bcpythia(21)
0218 end if
0219
0220 if(iqqbar.eq.1 .and. (ibcstate.eq.1.or.ibcstate.eq.2)) then
0221 call bcpythia(iqcode)
0222 end if
0223 else
0224 write(*,*) 'fatal error! unknown process',idprup
0225 stop
0226 end if
0227
0228 return
0229 end
0230
0231
0232
0233
0234
0235
0236
0237 SUBROUTINE bcvegpy_write_lhe
0238
0239
0240 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0241 IMPLICIT INTEGER(I-N)
0242
0243
0244 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
0245 COMMON/PYCTAG/NCT,MCT(4000,2)
0246 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0247 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
0248 COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
0249 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
0250 COMMON/PYINT1/MINT(400),VINT(400)
0251 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
0252 COMMON/PYINT4/MWID(500),WIDS(500,5)
0253 SAVE /PYJETS/,/PYCTAG/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,
0254 &/PYINT1/,/PYINT2/,/PYINT4/
0255
0256
0257 INTEGER MAXNUP
0258 PARAMETER (MAXNUP=500)
0259 INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
0260 DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
0261 COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
0262 &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP),
0263 &VTIMUP(MAXNUP),SPINUP(MAXNUP)
0264 SAVE /HEPEUP/
0265
0266
0267 XWGTUP_wlhe = 1
0268
0269
0270 IF(MSTP(162).GT.0) THEN
0271 WRITE(MSTP(162),5200) NUP,IDPRUP,XWGTUP_wlhe,SCALUP,AQEDUP
0272 + ,AQCDUP
0273 DO 190 I=1,NUP
0274 IF(VTIMUP(I).EQ.0D0) THEN
0275 WRITE(MSTP(162),5300) IDUP(I),ISTUP(I),MOTHUP(1,I),
0276 & MOTHUP(2,I),ICOLUP(1,I),ICOLUP(2,I),(PUP(J,I),J=1,5),
0277 & ' 0. 9.'
0278 ELSE
0279 WRITE(MSTP(162),5400) IDUP(I),ISTUP(I),MOTHUP(1,I),
0280 & MOTHUP(2,I),ICOLUP(1,I),ICOLUP(2,I),(PUP(J,I),J=1,5),
0281 & VTIMUP(I),' 9.'
0282 ENDIF
0283 190 CONTINUE
0284
0285
0286 IF(MSTP(165).GE.1) WRITE(MSTP(162),5500) MSTI(15),MSTI(16),
0287 & PARI(33),PARI(34),PARI(23),PARI(29),PARI(30)
0288 ENDIF
0289
0290
0291
0292 5200 FORMAT(1P,2I6,4E14.6)
0293 5300 FORMAT(1P,I8,5I5,5E18.10,A6)
0294 5400 FORMAT(1P,I8,5I5,5E18.10,E12.4,A3)
0295 5500 FORMAT(1P,'#pdf ',2I5,5E18.10)
0296
0297 RETURN
0298 END
0299
0300
0301
0302
0303
0304
0305
0306 SUBROUTINE bcvegpy_PYUPIN
0307
0308
0309 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0310 IMPLICIT INTEGER(I-N)
0311
0312
0313 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
0314 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
0315 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
0316 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
0317 SAVE /PYJETS/,/PYSUBS/,/PYPARS/,/PYINT5/
0318
0319
0320 INTEGER MAXPUP
0321 PARAMETER (MAXPUP=100)
0322 INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
0323 DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
0324 COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
0325 &IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
0326 &LPRUP(MAXPUP)
0327 SAVE /HEPRUP/
0328
0329
0330
0331
0332
0333
0334 PDFGUP(1)=0
0335 PDFGUP(2)=0
0336 PDFSUP(1)=MSTP(51)
0337 PDFSUP(2)=MSTP(51)
0338
0339
0340 IDWTUP=3
0341
0342
0343
0344
0345
0346
0347
0348
0349
0350
0351
0352
0353
0354
0355 IF(MSTP(161).GT.0) THEN
0356 WRITE(MSTP(161),5100) IDBMUP(1),IDBMUP(2),EBMUP(1),EBMUP(2),
0357 & PDFGUP(1),PDFGUP(2),PDFSUP(1),PDFSUP(2),IDWTUP,NPRUP
0358 DO 110 IPR=1,NPRUP
0359 WRITE(MSTP(161),5200) XSECUP(IPR),XERRUP(IPR),XMAXUP(IPR),
0360 & LPRUP(IPR)
0361 110 CONTINUE
0362 ENDIF
0363
0364
0365 5100 FORMAT(1P,2I8,2E14.6,6I6)
0366 5200 FORMAT(1P,3E14.6,I6)
0367
0368 RETURN
0369 END