00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235 BLOCK DATA PYDATA
00236
00237
00238 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
00239 IMPLICIT INTEGER(I-N)
00240 INTEGER PYK,PYCHGE,PYCOMP
00241
00242 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
00243 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
00244 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
00245 COMMON/PYDAT4/CHAF(500,2)
00246 CHARACTER CHAF*16
00247 COMMON/PYDATR/MRPY(6),RRPY(100)
00248 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
00249 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
00250 COMMON/PYINT1/MINT(400),VINT(400)
00251 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
00252 COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
00253 COMMON/PYINT4/MWID(500),WIDS(500,5)
00254 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
00255 COMMON/PYINT6/PROC(0:500)
00256 CHARACTER PROC*28
00257 COMMON/PYINT7/SIGT(0:6,0:6,0:5)
00258 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
00259 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
00260 &SFMIX(16,4)
00261 COMMON/PYBINS/IHIST(4),INDX(1000),BIN(20000)
00262 SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYDAT4/,/PYDATR/,/PYSUBS/,
00263 &/PYPARS/,/PYINT1/,/PYINT2/,/PYINT3/,/PYINT4/,/PYINT5/,
00264 &/PYINT6/,/PYINT7/,/PYMSSM/,/PYSSMT/,/PYBINS/
00265
00266
00267 DATA MSTU/
00268 & 0, 0, 0, 4000,10000, 500, 4000, 0, 0, 2,
00269 1 6, 1, 1, 0, 1, 1, 0, 0, 0, 0,
00270 2 2, 10, 0, 0, 1, 10, 0, 0, 0, 0,
00271 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00272 4 2, 2, 1, 4, 2, 1, 1, 0, 0, 0,
00273 5 25, 24, 0, 1, 0, 0, 0, 0, 0, 0,
00274 6 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00275 7 30*0,
00276 1 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00277 2 1, 5, 3, 5, 0, 0, 0, 0, 0, 0,
00278 & 80*0/
00279 DATA (PARU(I),I=1,100)/
00280 & 3.141592653589793D0, 6.283185307179586D0,
00281 & 0.197327D0, 5.06773D0, 0.389380D0, 2.56819D0, 4*0D0,
00282 1 0.001D0, 0.09D0, 0.01D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0,
00283 2 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0,
00284 3 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0,
00285 4 2.0D0, 1.0D0, 0.25D0, 2.5D0, 0.05D0,
00286 4 0D0, 0D0, 0.0001D0, 0D0, 0D0,
00287 5 2.5D0,1.5D0,7.0D0,1.0D0,0.5D0,2.0D0,3.2D0, 0D0, 0D0, 0D0,
00288 6 40*0D0/
00289 DATA (PARU(I),I=101,200)/
00290 & 0.00729735D0, 0.232D0, 0.007764D0, 1.0D0, 1.16639D-5,
00291 & 0D0, 0D0, 0D0, 0D0, 0D0,
00292 1 0.20D0, 0.25D0, 1.0D0, 4.0D0, 10D0, 0D0, 0D0, 0D0, 0D0, 0D0,
00293 2 -0.693D0, -1.0D0, 0.387D0, 1.0D0, -0.08D0,
00294 2 -1.0D0, 1.0D0, 1.0D0, 1.0D0, 0D0,
00295 3 1.0D0,-1.0D0, 1.0D0,-1.0D0, 1.0D0, 0D0, 0D0, 0D0, 0D0, 0D0,
00296 4 5.0D0, 1.0D0, 1.0D0, 0D0, 1.0D0, 1.0D0, 0D0, 0D0, 0D0, 0D0,
00297 5 1.0D0, 0D0, 0D0, 0D0, 1000D0, 1.0D0, 1.0D0, 1.0D0, 1.0D0,0D0,
00298 6 1.0D0, 1.0D0, 1.0D0, 1.0D0, 1.0D0, 0D0, 0D0, 0D0, 0D0, 0D0,
00299 7 1.0D0, 1.0D0, 1.0D0, 1.0D0, 1.0D0, 1.0D0, 1.0D0, 0D0,0D0,0D0,
00300 8 1.0D0, 1.0D0, 1.0D0, 0.0D0, 0.0D0, 1.0D0, 1.0D0, 0D0,0D0,0D0,
00301 9 0D0, 0D0, 0D0, 0D0, 1.0D0, 0D0, 0D0, 0D0, 0D0, 0D0/
00302 DATA MSTJ/
00303 & 1, 3, 0, 0, 0, 0, 0, 0, 0, 0,
00304 1 4, 2, 0, 1, 0, 2, 2, 0, 0, 0,
00305 2 2, 1, 1, 2, 1, 2, 2, 0, 0, 0,
00306 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00307 4 2, 2, 4, 2, 5, 3, 3, 0, 0, 3,
00308 5 0, 3, 0, 2, 0, 0, 1, 0, 0, 0,
00309 6 40*0,
00310 & 5, 2, 7, 5, 1, 1, 0, 2, 0, 2,
00311 1 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
00312 2 80*0/
00313 DATA PARJ/
00314 & 0.10D0, 0.30D0, 0.40D0, 0.05D0, 0.50D0,
00315 & 0.50D0, 0.50D0, 0.6D0, 1.2D0, 0.6D0,
00316 1 0.50D0,0.60D0,0.75D0, 0D0, 0D0, 0D0, 0D0, 1.0D0, 1.0D0, 0D0,
00317 2 0.36D0, 1.0D0,0.01D0, 2.0D0,1.0D0,0.4D0, 0D0, 0D0, 0D0, 0D0,
00318 3 0.10D0, 1.0D0, 0.8D0, 1.5D0,0D0,2.0D0,0.2D0, 0D0,0.08D0,0D0,
00319 4 0.3D0, 0.58D0, 0.5D0, 0.9D0,0.5D0,1.0D0,1.0D0,1.0D0,0D0,0D0,
00320 5 0.77D0, 0.77D0, 0.77D0, -0.05D0, -0.005D0,
00321 5 -0.00001D0, -0.00001D0, -0.00001D0, 1.0D0, 0D0,
00322 6 4.5D0, 0.7D0, 0D0,0.003D0, 0.5D0, 0.5D0, 0D0, 0D0, 0D0, 0D0,
00323 7 10D0, 1000D0, 100D0, 1000D0, 0D0, 0.7D0,10D0, 0D0, 0D0, 0D0,
00324 8 0.29D0, 1.0D0, 1.0D0, 0D0, 10D0, 10D0, 0D0, 0D0, 0D0,1D-4,
00325 9 0.02D0, 1.0D0, 0.2D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0,
00326 & 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0,
00327 1 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0,
00328 2 1.0D0, 0.25D0,91.187D0,2.489D0, 0.01D0,
00329 2 2.0D0, 1.0D0, 0.25D0,0.002D0, 0D0,
00330 3 0D0, 0D0, 0D0, 0D0, 0.01D0, 0.99D0, 0D0, 0D0, 0.2D0, 0D0,
00331 4 10*0D0,
00332 5 10*0D0,
00333 6 10*0D0,
00334 7 0D0, 200D0, 200D0, .333D0, .05D0, 0D0, 0D0, 0D0, 0D0, -0.693D0,
00335 8 -1.0D0, 0.387D0, 1.0D0, -0.08D0, -1.0D0,
00336 8 1.0D0, 1.0D0, -0.693D0, -1.0D0, 0.387D0,
00337 9 1.0D0, -0.08D0, -1.0D0, 1.0D0, 1.0D0,
00338 9 5*0D0/
00339
00340
00341 DATA (KCHG(I,1),I= 1, 500)/-1,2,-1,2,-1,2,-1,2,2*0,-3,0,-3,0,
00342 &-3,0,-3,6*0,3,9*0,3,2*0,3,0,-1,12*0,3,2*0,3,5*0,2*6,3,20*0,2,-1,
00343 &20*0,4*3,8*0,3*3,4*0,3*3,3*0,3*3,7*0,3*3,3*0,3*3,3*0,-2,-3,2*1,
00344 &3*0,4,3*3,6,2*-2,2*-3,0,2*1,2*0,2*3,-2,2*-3,2*0,-3,2*1,2*0,3,0,
00345 &2*4,2*3,2*6,3,2*1,2*0,2*3,2*0,4,2*3,2*6,2*3,6,2*-2,2*-3,0,-3,0,
00346 &2*1,2*0,2*3,0,3,2*-2,2*-3,2*0,2*-3,0,2*1,2*0,2*3,2*0,2*3,-2,2*-3,
00347 &2*0,2*-3,2*0,-3,2*0,2*3,4*0,2*3,2*0,2*3,2*0,2*3,4*0,2*3,2*0,2*3,
00348 &3*0,3,2*0,3,0,3,0,3,2*0,3,0,3,3*0,-1,2,-1,2,-1,2,-3,0,-3,0,-3,
00349 &4*0,3,2*0,3,0,-1,2,-1,2,-1,2,-3,0,-3,0,-3,0,-1,2,-3,164*0/
00350 DATA (KCHG(I,2),I= 1, 500)/8*1,12*0,2,16*0,2,1,113*0,-1,0,2*-1,
00351 &3*0,-1,4*0,2*-1,3*0,2*-1,4*0,-1,5*0,2*-1,4*0,2*-1,5*0,2*-1,6*0,
00352 &-1,7*0,2*-1,5*0,2*-1,6*0,2*-1,7*0,2*-1,8*0,-1,56*0,6*1,6*0,2,7*0,
00353 &6*1,6*0,2*1,165*0/
00354 DATA (KCHG(I,3),I= 1, 500)/8*1,2*0,8*1,5*0,1,9*0,1,2*0,1,0,2*1,
00355 &11*0,1,2*0,1,5*0,6*1,15*0,1,0,2*1,20*0,4*1,5*0,6*1,4*0,9*1,4*0,
00356 &12*1,3*0,102*1,2*0,2*1,2*0,4*1,2*0,6*1,2*0,8*1,3*0,1,0,2*1,0,3*1,
00357 &0,4*1,3*0,12*1,3*0,1,2*0,1,0,16*1,163*0/
00358 DATA (KCHG(I,4),I= 1, 293)/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
00359 &16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,
00360 &37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,
00361 &58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,
00362 &79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,
00363 &100,110,111,113,115,130,210,211,213,215,220,221,223,225,310,311,
00364 &313,315,321,323,325,330,331,333,335,411,413,415,421,423,425,431,
00365 &433,435,440,441,443,445,511,513,515,521,523,525,531,533,535,541,
00366 &543,545,551,553,555,1103,1114,2101,2103,2110,2112,2114,2203,2210,
00367 &2212,2214,2224,3101,3103,3112,3114,3122,3201,3203,3212,3214,3222,
00368 &3224,3303,3312,3314,3322,3324,3334,4101,4103,4112,4114,4122,4132,
00369 &4201,4203,4212,4214,4222,4224,4232,4301,4303,4312,4314,4322,4324,
00370 &4332,4334,4403,4412,4414,4422,4424,4432,4434,4444,5101,5103,5112,
00371 &5114,5122,5132,5142,5201,5203,5212,5214,5222,5224,5232,5242,5301,
00372 &5303,5312,5314,5322,5324,5332,5334,5342,5401,5403,5412,5414,5422,
00373 &5424,5432,5434,5442,5444,5503,5512,5514,5522,5524,5532,5534,5542,
00374 &5544,5554,10111,10113,10211,10213,10221,10223,10311,10313,10321,
00375 &10323,10331,10333,10411,10413,10421,10423,10431,10433,10441,
00376 &10443,10511,10513,10521,10523,10531,10533,10541,10543,10551,
00377 &10553,20113,20213,20223,20313,20323,20333,20413,20423,20433/
00378 DATA (KCHG(I,4),I= 294, 500)/20443,20513,20523,20533,20543,20553,
00379 &100443,100553,1000001,1000002,1000003,1000004,1000005,1000006,
00380 &1000011,1000012,1000013,1000014,1000015,1000016,1000021,1000022,
00381 &1000023,1000024,1000025,1000035,1000037,1000039,2000001,2000002,
00382 &2000003,2000004,2000005,2000006,2000011,2000012,2000013,2000014,
00383 &2000015,2000016,4000001,4000002,4000011,4000012,163*0/
00384 DATA (PMAS(I,1),I= 1, 211)/0.33D0,0.33D0,0.50D0,1.50D0,
00385 &4.80D0,175D0,2*400D0,2*0D0,0.00051D0,0D0,0.10566D0,0D0,1.777D0,
00386 &0D0,400D0,5*0D0,91.187D0,80.33D0,80D0,6*0D0,500D0,900D0,500D0,
00387 &3*300D0,350D0,200D0,5000D0,10*0D0,3*110D0,3*210D0,4*0D0,2*200D0,
00388 &4*750D0,16*0D0,1D0,2D0,5D0,16*0D0,0.13498D0,0.7685D0,1.318D0,
00389 &0.49767D0,0D0,0.13957D0,0.7669D0,1.318D0,0D0,0.54745D0,0.78194D0,
00390 &1.275D0,2*0.49767D0,0.8961D0,1.432D0,0.4936D0,0.8916D0,1.425D0,
00391 &0D0,0.95777D0,1.0194D0,1.525D0,1.8693D0,2.01D0,2.46D0,1.8645D0,
00392 &2.0067D0,2.46D0,1.9685D0,2.1124D0,2.5735D0,0D0,2.9798D0,
00393 &3.09688D0,3.5562D0,5.2792D0,5.3248D0,5.83D0,5.2789D0,5.3248D0,
00394 &5.83D0,5.3693D0,5.4163D0,6.07D0,6.594D0,6.602D0,7.35D0,9.4D0,
00395 &9.4603D0,9.9132D0,0.77133D0,1.234D0,0.57933D0,0.77133D0,0D0,
00396 &0.93957D0,1.233D0,0.77133D0,0D0,0.93827D0,1.232D0,1.231D0,
00397 &0.80473D0,0.92953D0,1.19744D0,1.3872D0,1.11568D0,0.80473D0,
00398 &0.92953D0,1.19255D0,1.3837D0,1.18937D0,1.3828D0,1.09361D0,
00399 &1.3213D0,1.535D0,1.3149D0,1.5318D0,1.67245D0,1.96908D0,2.00808D0,
00400 &2.4521D0,2.5D0,2.2849D0,2.4703D0,1.96908D0,2.00808D0,2.4535D0,
00401 &2.5D0,2.4529D0,2.5D0,2.4656D0,2.15432D0,2.17967D0,2.55D0,2.63D0,
00402 &2.55D0,2.63D0,2.704D0,2.8D0,3.27531D0,3.59798D0,3.65648D0,
00403 &3.59798D0,3.65648D0,3.78663D0,3.82466D0,4.91594D0,5.38897D0/
00404 DATA (PMAS(I,1),I= 212, 500)/5.40145D0,5.8D0,5.81D0,5.641D0,
00405 &5.84D0,7.00575D0,5.38897D0,5.40145D0,5.8D0,5.81D0,5.8D0,5.81D0,
00406 &5.84D0,7.00575D0,5.56725D0,5.57536D0,5.96D0,5.97D0,5.96D0,5.97D0,
00407 &6.12D0,6.13D0,7.19099D0,6.67143D0,6.67397D0,7.03724D0,7.0485D0,
00408 &7.03724D0,7.0485D0,7.21101D0,7.219D0,8.30945D0,8.31325D0,
00409 &10.07354D0,10.42272D0,10.44144D0,10.42272D0,10.44144D0,
00410 &10.60209D0,10.61426D0,11.70767D0,11.71147D0,15.11061D0,0.9835D0,
00411 &1.231D0,0.9835D0,1.231D0,1D0,1.17D0,1.429D0,1.29D0,1.429D0,
00412 &1.29D0,2*1.4D0,2.272D0,2.424D0,2.272D0,2.424D0,2.5D0,2.536D0,
00413 &3.4151D0,3.46D0,5.68D0,5.73D0,5.68D0,5.73D0,5.92D0,5.97D0,7.25D0,
00414 &7.3D0,9.8598D0,9.875D0,2*1.23D0,1.282D0,2*1.402D0,1.427D0,
00415 &2*2.372D0,2.56D0,3.5106D0,2*5.78D0,6.02D0,7.3D0,9.8919D0,3.686D0,
00416 &10.0233D0,32*500D0,4*400D0,163*0D0/
00417 DATA (PMAS(I,2),I= 1, 500)/5*0D0,1.39883D0,16*0D0,2.48009D0,
00418 &2.07002D0,0.00237D0,6*0D0,14.54848D0,0D0,16.6708D0,8.42842D0,
00419 &4.92026D0,5.75967D0,0.10158D0,0.39162D0,417.4648D0,10*0D0,
00420 &0.04104D0,0.0105D0,0.02807D0,0.82101D0,0.64973D0,0.1575D0,4*0D0,
00421 &0.88161D0,0.88001D0,19.33905D0,39*0D0,0.151D0,0.107D0,3*0D0,
00422 &0.149D0,0.107D0,2*0D0,0.00843D0,0.185D0,2*0D0,0.0505D0,0.109D0,
00423 &0D0,0.0498D0,0.098D0,0D0,0.0002D0,0.00443D0,0.076D0,2*0D0,
00424 &0.023D0,2*0D0,0.023D0,2*0D0,0.015D0,0D0,0.0013D0,0D0,0.002D0,
00425 &2*0D0,0.02D0,2*0D0,0.02D0,2*0D0,0.02D0,2*0D0,0.02D0,4*0D0,0.12D0,
00426 &4*0D0,0.12D0,3*0D0,2*0.12D0,3*0D0,0.0394D0,4*0D0,0.036D0,0D0,
00427 &0.0358D0,2*0D0,0.0099D0,0D0,0.0091D0,74*0D0,0.06D0,0.142D0,
00428 &0.06D0,0.142D0,0D0,0.36D0,0.287D0,0.09D0,0.287D0,0.09D0,0.25D0,
00429 &0.08D0,0.05D0,0.02D0,0.05D0,0.02D0,0.05D0,0D0,0.014D0,0.01D0,
00430 &8*0.05D0,0D0,0.01D0,2*0.4D0,0.025D0,2*0.174D0,0.053D0,3*0.05D0,
00431 &0.0009D0,4*0.05D0,3*0D0,19*1D0,0D0,7*1D0,0D0,1D0,0D0,1D0,0D0,
00432 &2.65171D0,2.65499D0,0.42901D0,0.41917D0,163*0D0/
00433 DATA (PMAS(I,3),I= 1, 500)/5*0D0,13.98835D0,16*0D0,24.8009D0,
00434 &20.70015D0,0.02369D0,6*0D0,145.48484D0,0D0,166.70801D0,
00435 &84.28416D0,49.20256D0,57.59671D0,1.0158D0,3.91624D0,4174.64797D0,
00436 &10*0D0,0.41042D0,0.10504D0,0.28068D0,8.21005D0,6.49728D0,
00437 &1.57496D0,4*0D0,8.81606D0,8.80013D0,193.39048D0,39*0D0,0.4D0,
00438 &0.25D0,3*0D0,0.4D0,0.25D0,2*0D0,0.1D0,0.17D0,2*0D0,0.2D0,0.12D0,
00439 &0D0,0.2D0,0.12D0,0D0,0.002D0,0.015D0,0.2D0,2*0D0,0.12D0,2*0D0,
00440 &0.12D0,2*0D0,0.05D0,0D0,0.005D0,0D0,0.01D0,2*0D0,0.05D0,2*0D0,
00441 &0.05D0,2*0D0,0.05D0,2*0D0,0.05D0,4*0D0,0.14D0,4*0D0,0.14D0,3*0D0,
00442 &2*0.14D0,3*0D0,0.04D0,4*0D0,0.035D0,0D0,0.035D0,2*0D0,0.05D0,0D0,
00443 &0.05D0,74*0D0,0.05D0,0.25D0,0.05D0,0.25D0,0D0,0.2D0,0.4D0,
00444 &0.005D0,0.4D0,0.01D0,0.35D0,0.001D0,0.1D0,0.08D0,0.1D0,0.08D0,
00445 &0.1D0,0D0,0.05D0,0.02D0,6*0.1D0,0.05D0,0.1D0,0D0,0.02D0,2*0.3D0,
00446 &0.05D0,2*0.3D0,0.02D0,2*0.1D0,0.03D0,0.001D0,4*0.1D0,3*0D0,
00447 &19*10D0,0.00001D0,7*10D0,0.00001D0,10D0,0.00001D0,10D0,0.00001D0,
00448 &26.51715D0,26.54994D0,4.29011D0,4.19173D0,163*0D0/
00449 DATA (PMAS(I,4),I= 1, 500)/12*0D0,658654D0,0D0,0.0872D0,68*0D0,
00450 &0.1D0,0.387D0,16*0D0,0.00003D0,2*0D0,15500D0,0D0,7804.5D0,6*0D0,
00451 &26.762D0,3*0D0,3709D0,6*0D0,0.317D0,2*0D0,0.1244D0,2*0D0,0.14D0,
00452 &6*0D0,0.468D0,2*0D0,0.462D0,2*0D0,0.483D0,2*0D0,0.15D0,19*0D0,
00453 &44.34D0,0D0,78.88D0,4*0D0,23.96D0,2*0D0,49.1D0,0D0,87.1D0,0D0,
00454 &24.6D0,4*0D0,0.0618D0,0.029D0,6*0D0,0.106D0,6*0D0,0.019D0,2*0D0,
00455 &7*0.1D0,4*0D0,0.342D0,2*0.387D0,6*0D0,2*0.387D0,6*0D0,0.387D0,
00456 &0D0,0.387D0,2*0D0,8*0.387D0,0D0,9*0.387D0,83*0D0,163*0D0/
00457 DATA PARF/
00458 & 0.5D0,0.25D0, 0.5D0,0.25D0, 1D0, 0.5D0, 0D0, 0D0, 0D0, 0D0,
00459 1 0.5D0, 0D0, 0.5D0, 0D0, 1D0, 1D0, 0D0, 0D0, 0D0, 0D0,
00460 2 0.5D0, 0D0, 0.5D0, 0D0, 1D0, 1D0, 0D0, 0D0, 0D0, 0D0,
00461 3 0.5D0, 0D0, 0.5D0, 0D0, 1D0, 1D0, 0D0, 0D0, 0D0, 0D0,
00462 4 0.5D0, 0D0, 0.5D0, 0D0, 1D0, 1D0, 0D0, 0D0, 0D0, 0D0,
00463 5 0.5D0, 0D0, 0.5D0, 0D0, 1D0, 1D0, 0D0, 0D0, 0D0, 0D0,
00464 6 0.75D0, 0.5D0, 0D0,0.1667D0,0.0833D0,0.1667D0,0D0,0D0,0D0, 0D0,
00465 7 0D0, 0D0, 1D0,0.3333D0,0.6667D0,0.3333D0,0D0,0D0,0D0, 0D0,
00466 8 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0,
00467 9 0.0099D0, 0.0056D0, 0.199D0, 1.35D0, 4.5D0, 5*0D0,
00468 & 0.325D0,0.325D0,0.5D0,1.6D0, 5.0D0, 0D0, 0D0, 0D0, 0D0, 0D0,
00469 1 0D0,0.11D0,0.16D0,0.048D0,0.50D0,0.45D0,0.55D0,0.60D0,0D0,0D0,
00470 2 0.2D0, 0.1D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0, 0D0,
00471 3 60*0D0,
00472 4 0.2D0, 0.5D0, 8*0D0,
00473 5 1800*0D0/
00474 DATA ((VCKM(I,J),J=1,4),I=1,4)/
00475 & 0.95113D0, 0.04884D0, 0.00003D0, 0.00000D0,
00476 & 0.04884D0, 0.94940D0, 0.00176D0, 0.00000D0,
00477 & 0.00003D0, 0.00176D0, 0.99821D0, 0.00000D0,
00478 & 0.00000D0, 0.00000D0, 0.00000D0, 1.00000D0/
00479
00480
00481 DATA (MDCY(I,1),I= 1, 500)/5*0,3*1,6*0,1,0,1,5*0,3*1,6*0,1,0,
00482 &7*1,10*0,6*1,4*0,3*1,19*0,3*1,16*0,3*1,3*0,2*1,0,7*1,0,2*1,0,
00483 &12*1,0,18*1,0,1,4*0,1,3*0,2*1,2*0,3*1,2*0,4*1,0,5*1,2*0,4*1,2*0,
00484 &5*1,2*0,6*1,0,7*1,2*0,5*1,2*0,6*1,2*0,7*1,2*0,8*1,0,75*1,0,7*1,0,
00485 &1,0,1,0,4*1,163*0/
00486 DATA (MDCY(I,2),I= 1, 500)/1,9,17,25,33,41,56,66,2*0,76,80,82,
00487 &87,89,143,145,150,2*0,153,162,174,190,210,6*0,289,0,311,334,416,
00488 &496,523,526,527,10*0,536,544,550,558,582,608,4*0,632,639,646,
00489 &19*0,658,659,663,16*0,672,674,679,688,0,697,699,701,0,708,716,
00490 &722,731,733,735,738,748,754,757,0,768,774,785,791,854,857,865,
00491 &926,928,936,969,971,0,975,976,979,981,1017,1018,1026,1062,1063,
00492 &1071,1110,1111,1115,1146,1147,1151,1152,1161,0,1163,4*0,1164,3*0,
00493 &1167,1170,2*0,1171,1173,1176,2*0,1180,1181,1184,1187,0,1190,1195,
00494 &1197,1200,1202,2*0,1206,1207,1208,1284,2*0,1288,1289,1290,1291,
00495 &1292,2*0,1296,1297,1299,1300,1302,1306,0,1307,1311,1315,1319,
00496 &1323,1327,1331,2*0,1335,1336,1337,1354,1363,2*0,1372,1373,1374,
00497 &1375,1376,1385,2*0,1394,1395,1396,1397,1398,1407,1408,2*0,1417,
00498 &1426,1435,1444,1453,1462,1471,1480,0,1489,1498,1507,1516,1525,
00499 &1534,1543,1552,1561,1570,1571,1572,1573,1574,1579,1582,1584,1589,
00500 &1591,1596,1603,1607,1609,1611,1613,1615,1617,1619,1621,1622,1624,
00501 &1626,1628,1630,1632,1634,1636,1638,1640,1641,1643,1645,1659,1661,
00502 &1663,1667,1669,1671,1673,1675,1677,1679,1681,1683,1685,1696,1710,
00503 &1722,1734,1746,1758,1770,1785,1796,1807,1818,1829,1840,1851,1912,
00504 &1919,2021,2077,2195,2329,0,2400,2416,2432,2448,2464,2480,2496,0,
00505 &2511,0,2526,0,2541,2545,2549,2552,163*0/
00506 DATA (MDCY(I,3),I= 1, 500)/5*8,15,2*10,2*0,4,2,5,2,54,2,5,3,
00507 &2*0,9,12,16,20,79,6*0,22,0,23,82,80,27,3,1,9,10*0,8,6,8,24,26,24,
00508 &4*0,2*7,12,19*0,1,4,9,16*0,2,5,2*9,0,2*2,7,0,8,6,9,2*2,3,10,6,3,
00509 &11,0,6,11,6,63,3,8,61,2,8,33,2,4,0,1,3,2,36,1,8,36,1,8,39,1,4,31,
00510 &1,4,1,9,2,0,1,4*0,3,3*0,3,1,2*0,2,3,4,2*0,1,3*3,0,5,2,3,2,4,2*0,
00511 &2*1,76,4,2*0,4*1,4,2*0,1,2,1,2,4,1,0,7*4,2*0,2*1,17,2*9,2*0,4*1,
00512 &2*9,2*0,4*1,9,1,9,2*0,8*9,0,9*9,4*1,5,3,2,5,2,5,7,4,7*2,1,9*2,1,
00513 &2*2,14,2*2,4,9*2,11,14,5*12,15,6*11,61,7,102,56,118,134,71,0,
00514 &6*16,15,0,15,0,15,0,2*4,3,2,163*0/
00515 DATA (MDME(I,1),I= 1,4000)/6*1,-1,7*1,-1,7*1,-1,7*1,-1,7*1,-1,
00516 &7*1,-1,1,7*-1,8*1,2*-1,8*1,2*-1,73*1,-1,2*1,-1,5*1,0,2*-1,6*1,0,
00517 &2*-1, 3*1,-1,6*1,2*-1,6*1,2*-1,3*1,-1,3*1,-1,3*1,5*-1,3*1,-1,6*1,
00518 &2*-1,3*1,-1,5*1,62*1,6*1,2*-1,6*1,8*-1,3*1,-1,3*1,-1,3*1,5*-1,3*1,
00519 &4*-1,6*1,2*-1,3*1,-1,8*1,62*1,6*1,2*-1,3*1,-1,6*1,62*1,3*1,-1,
00520 &3*1,-1,1,18*1,8*1,2*-1,2*1,-1,36*1,2*-1,6*1,2*-1,9*1,-1,3*1,-1,
00521 &3*1,5*-1,3*1,-1,14*1,2*-1,6*1,2*-1,1151*1,2*-1,132*1,2*-1,635*1,
00522 &1447*0/
00523 DATA (MDME(I,2),I= 1,4000)/43*102,4*0,102,0,6*53,3*102,4*0,102,
00524 &2*0,3*102,4*0,102,2*0,6*102,42,6*102,2*42,2*0,8*41,2*0,36*41,
00525 &8*102,0,102,0,102,2*0,21*102,8*32,8*0,16*32,4*0,8*32,9*0,62*53,
00526 &8*32,14*0,16*32,7*0,8*32,12*0,62*53,8*32,10*0,62*53,4*32,5*0,
00527 &18*53,3*32,0,6*32,3*0,4*32,3*0,4*32,3*0,4*32,3*0,32,8*0,8*32,
00528 &14*0,16*32,12*0,8*32,22*0,9*32,3*0,12,2*42,2*11,9*42,0,2,3,15*0,
00529 &4*42,5*0,3,12*0,2,3*0,1,0,3,16*0,2*3,15*0,2*42,2*3,18*0,2*3,3*0,
00530 &1,11*0,22*42,41*0,2*3,9*0,16*42,45*0,3,10*0,10*42,20*0,2*13,6*0,
00531 &12,2*0,12,0,12,14*42,16*0,48,3*13,2*42,9*0,14*42,16*0,48,3*13,
00532 &2*42,9*0,14*42,19*0,48,3*13,2*42,6*0,2*11,28*42,5*0,32,3*0,4*32,
00533 &2*4,0,32,45*0,14*42,52*0,10*13,2*42,2*11,4*0,2*42,2*11,6*0,2*42,
00534 &2*11,0,2*42,2*11,2*42,2*11,2*42,2*11,2*42,2*11,2*42,2*11,2*42,
00535 &2*11,2*42,2*11,2*0,3*42,8*0,48,3*13,20*42,4*0,18*42,4*0,9*42,0,
00536 &162*42,50*0,2*12,17*0,2*32,33*0,12,9*0,32,2*0,12,11*0,4*32,2*4,
00537 &5*0,832*53,1459*0/
00538 DATA (BRAT(I) ,I= 1, 348)/43*0D0,0.00003D0,0.001765D0,
00539 &0.998205D0,35*0D0,1D0,6*0D0,0.1783D0,0.1735D0,0.1131D0,0.2494D0,
00540 &0.003D0,0.09D0,0.0027D0,0.01D0,0.0014D0,0.0012D0,2*0.00025D0,
00541 &0.0071D0,0.012D0,0.0004D0,0.00075D0,0.00006D0,2*0.00078D0,
00542 &0.0034D0,0.08D0,0.011D0,0.0191D0,0.00006D0,0.005D0,0.0133D0,
00543 &0.0067D0,0.0005D0,0.0035D0,0.0006D0,0.0015D0,0.00021D0,0.0002D0,
00544 &0.00075D0,0.0001D0,0.0002D0,0.0011D0,3*0.0002D0,0.00022D0,
00545 &0.0004D0,0.0001D0,2*0.00205D0,2*0.00069D0,0.00025D0,0.00051D0,
00546 &0.00025D0,35*0D0,0.154075D0,0.119483D0,0.154072D0,0.119346D0,
00547 &0.152196D0,3*0D0,0.033549D0,0.066752D0,0.033549D0,0.066752D0,
00548 &0.033473D0,0.066752D0,2*0D0,0.321502D0,0.016502D0,2*0D0,
00549 &0.016509D0,0.320778D0,2*0D0,0.00001D0,0.000591D0,6*0D0,
00550 &2*0.108062D0,0.107983D0,0D0,0.000001D0,0D0,0.000327D0,0.053489D0,
00551 &0.852249D0,4*0D0,0.000244D0,0.06883D0,0D0,0.023981D0,0.000879D0,
00552 &65*0D0,0.145869D0,0.113303D0,0.145869D0,0.113298D0,0.14581D0,
00553 &0.049013D0,2*0D0,0.032007D0,0.063606D0,0.032007D0,0.063606D0,
00554 &0.032004D0,0.063606D0,8*0D0,0.251276D0,0.012903D0,0.000006D0,0D0,
00555 &0.012903D0,0.250816D0,0.00038D0,0D0,0.000008D0,0.000465D0,
00556 &0.215459D0,5*0D0,2*0.085262D0,0.08526D0,7*0D0,0.000046D0,
00557 &0.000754D0,5*0D0,0.000074D0,0D0,0.000439D0,0.000015D0,0.000061D0/
00558 DATA (BRAT(I) ,I= 349, 642)/0.306171D0,0.68864D0,0D0,0.003799D0,
00559 &66*0D0,0.000079D0,0.001292D0,5*0D0,0.000126D0,0D0,0.002256D0,
00560 &0.00001D0,0.000002D0,2*0D0,0.996233D0,63*0D0,0.000013D0,
00561 &0.067484D0,2*0D0,0.00001D0,0.002701D0,0D0,0.929792D0,18*0D0,
00562 &0.452899D0,0D0,0.547101D0,1D0,2*0.215134D0,0.215133D0,0.214738D0,
00563 &2*0D0,2*0.06993D0,0D0,0.000225D0,0.036777D0,0.596654D0,2*0D0,
00564 &0.000177D0,0.050055D0,0.316112D0,0.041762D0,0.90916D0,2*0D0,
00565 &0.000173D0,0.048905D0,0.000328D0,0.053776D0,0.872444D0,2*0D0,
00566 &0.000259D0,0.073192D0,0D0,0.153373D0,2*0.342801D0,0D0,0.086867D0,
00567 &0.03128D0,0.001598D0,0.000768D0,0.004789D0,0.006911D0,0.004789D0,
00568 &0.006911D0,0.004789D0,3*0D0,0.003077D0,0.00103D0,0.003077D0,
00569 &0.00103D0,0.003077D0,0.00103D0,2*0D0,0.138845D0,0.474102D0,
00570 &0.176299D0,0D0,0.109767D0,0.008161D0,0.028584D0,0.001468D0,2*0D0,
00571 &0.001468D0,0.02853D0,0.000007D0,0D0,0.000001D0,0.000053D0,
00572 &0.003735D0,5*0D0,2*0.009661D0,0.00966D0,0D0,0.163019D0,
00573 &0.004003D0,0.45294D0,0.008334D0,2*0.038042D0,0.001999D0,0D0,
00574 &0.017733D0,0.045908D0,0.017733D0,0.045908D0,0.017733D0,3*0D0,
00575 &0.038354D0,0.011181D0,0.038354D0,0.011181D0,0.038354D0,
00576 &0.011181D0,2*0D0,0.090264D0,2*0.001805D0,0.090264D0,0.001805D0,
00577 &0.81225D0,0.001806D0,0.090428D0,0.001809D0,0.001808D0,0.090428D0/
00578 DATA (BRAT(I) ,I= 643, 803)/0.001808D0,0.81372D0,0D0,0.325914D0,
00579 &0.016735D0,0.000009D0,0.016736D0,0.32532D0,0.000554D0,0.00001D0,
00580 &0.000603D0,0.314118D0,3*0D0,1D0,2*0.08D0,0.76D0,0.08D0,2*0.105D0,
00581 &0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,0.015D0,0.005D0,0.988D0,
00582 &0.012D0,0.998739D0,0.00079D0,0.00038D0,0.000046D0,0.000045D0,
00583 &2*0.34725D0,0.144D0,0.104D0,0.0245D0,2*0.01225D0,0.0028D0,
00584 &0.0057D0,0.2112D0,0.1256D0,2*0.1939D0,2*0.1359D0,0.002D0,0.001D0,
00585 &0.0006D0,0.999877D0,0.000123D0,0.99955D0,0.00045D0,2*0.34725D0,
00586 &0.144D0,0.104D0,0.049D0,0.0028D0,0.0057D0,0.3923D0,0.321D0,
00587 &0.2317D0,0.0478D0,0.0049D0,0.0013D0,0.0003D0,0.0007D0,0.89D0,
00588 &0.08693D0,0.0221D0,0.00083D0,2*0.00007D0,0.564D0,0.282D0,0.072D0,
00589 &0.028D0,0.023D0,2*0.0115D0,0.005D0,0.003D0,0.6861D0,0.3139D0,
00590 &2*0.5D0,0.665D0,0.333D0,0.002D0,0.333D0,0.166D0,0.168D0,0.084D0,
00591 &0.087D0,0.043D0,0.059D0,2*0.029D0,0.002D0,0.6352D0,0.2116D0,
00592 &0.0559D0,0.0173D0,0.0482D0,0.0318D0,0.666D0,0.333D0,0.001D0,
00593 &0.332D0,0.166D0,0.168D0,0.084D0,0.086D0,0.043D0,0.059D0,
00594 &2*0.029D0,2*0.002D0,0.437D0,0.208D0,0.302D0,0.0302D0,0.0212D0,
00595 &0.0016D0,0.48947D0,0.34D0,3*0.043D0,0.027D0,0.0126D0,0.0013D0,
00596 &0.0003D0,0.00025D0,0.00008D0,0.444D0,2*0.222D0,0.104D0,2*0.004D0,
00597 &0.07D0,0.065D0,2*0.005D0,2*0.011D0,5*0.001D0,0.07D0,0.065D0/
00598 DATA (BRAT(I) ,I= 804, 977)/2*0.005D0,2*0.011D0,5*0.001D0,
00599 &0.026D0,0.019D0,0.066D0,0.041D0,0.045D0,0.076D0,0.0073D0,
00600 &2*0.0047D0,0.026D0,0.001D0,0.0006D0,0.0066D0,0.005D0,2*0.003D0,
00601 &2*0.0006D0,2*0.001D0,0.006D0,0.005D0,0.012D0,0.0057D0,0.067D0,
00602 &0.008D0,0.0022D0,0.027D0,0.004D0,0.019D0,0.012D0,0.002D0,0.009D0,
00603 &0.0218D0,0.001D0,0.022D0,0.087D0,0.001D0,0.0019D0,0.0015D0,
00604 &0.0028D0,0.683D0,0.306D0,0.011D0,0.3D0,0.15D0,0.16D0,0.08D0,
00605 &0.13D0,0.06D0,0.08D0,0.04D0,0.034D0,0.027D0,2*0.002D0,2*0.004D0,
00606 &2*0.002D0,0.034D0,0.027D0,2*0.002D0,2*0.004D0,2*0.002D0,0.0365D0,
00607 &0.045D0,0.073D0,0.062D0,3*0.021D0,0.0061D0,0.015D0,0.025D0,
00608 &0.0088D0,0.074D0,0.0109D0,0.0041D0,0.002D0,0.0035D0,0.0011D0,
00609 &0.001D0,0.0027D0,2*0.0016D0,0.0018D0,0.011D0,0.0063D0,0.0052D0,
00610 &0.018D0,0.016D0,0.0034D0,0.0036D0,0.0009D0,0.0006D0,0.015D0,
00611 &0.0923D0,0.018D0,0.022D0,0.0077D0,0.009D0,0.0075D0,0.024D0,
00612 &0.0085D0,0.067D0,0.0511D0,0.017D0,0.0004D0,0.0028D0,0.619D0,
00613 &0.381D0,0.3D0,0.15D0,0.16D0,0.08D0,0.13D0,0.06D0,0.08D0,0.04D0,
00614 &0.01D0,2*0.02D0,0.03D0,2*0.005D0,2*0.02D0,0.03D0,2*0.005D0,
00615 &0.015D0,0.037D0,0.028D0,0.079D0,0.095D0,0.052D0,0.0078D0,
00616 &4*0.001D0,0.028D0,0.033D0,0.026D0,0.05D0,0.01D0,4*0.005D0,0.25D0,
00617 &0.0952D0,0.94D0,0.06D0,2*0.4D0,2*0.1D0,1D0,0.0602D0,0.0601D0/
00618 DATA (BRAT(I) ,I= 978,1136)/0.8797D0,0.135D0,0.865D0,0.02D0,
00619 &0.055D0,2*0.005D0,0.008D0,0.012D0,0.02D0,0.055D0,2*0.005D0,
00620 &0.008D0,0.012D0,0.01D0,0.03D0,0.0035D0,0.011D0,0.0055D0,0.0042D0,
00621 &0.009D0,0.018D0,0.015D0,0.0185D0,0.0135D0,0.025D0,0.0004D0,
00622 &0.0007D0,0.0008D0,0.0014D0,0.0019D0,0.0025D0,0.4291D0,0.08D0,
00623 &0.07D0,0.02D0,0.015D0,0.005D0,1D0,0.3D0,0.15D0,0.16D0,0.08D0,
00624 &0.13D0,0.06D0,0.08D0,0.04D0,0.02D0,0.055D0,2*0.005D0,0.008D0,
00625 &0.012D0,0.02D0,0.055D0,2*0.005D0,0.008D0,0.012D0,0.01D0,0.03D0,
00626 &0.0035D0,0.011D0,0.0055D0,0.0042D0,0.009D0,0.018D0,0.015D0,
00627 &0.0185D0,0.0135D0,0.025D0,0.0004D0,0.0007D0,0.0008D0,0.0014D0,
00628 &0.0019D0,0.0025D0,0.4291D0,0.08D0,0.07D0,0.02D0,0.015D0,0.005D0,
00629 &1D0,0.3D0,0.15D0,0.16D0,0.08D0,0.13D0,0.06D0,0.08D0,0.04D0,
00630 &0.02D0,0.055D0,2*0.005D0,0.008D0,0.012D0,0.02D0,0.055D0,
00631 &2*0.005D0,0.008D0,0.012D0,0.01D0,0.03D0,0.0035D0,0.011D0,
00632 &0.0055D0,0.0042D0,0.009D0,0.018D0,0.015D0,0.0185D0,0.0135D0,
00633 &0.025D0,2*0.0002D0,0.0007D0,2*0.0004D0,0.0014D0,0.001D0,0.0009D0,
00634 &0.0025D0,0.4291D0,0.08D0,0.07D0,0.02D0,0.015D0,0.005D0,1D0,
00635 &2*0.3D0,2*0.2D0,0.047D0,0.122D0,0.006D0,0.012D0,0.035D0,0.012D0,
00636 &0.035D0,0.003D0,0.007D0,0.15D0,0.037D0,0.008D0,0.002D0,0.05D0,
00637 &0.015D0,0.003D0,0.001D0,0.014D0,0.042D0,0.014D0,0.042D0,0.24D0/
00638 DATA (BRAT(I) ,I=1137,1341)/0.065D0,0.012D0,0.003D0,0.001D0,
00639 &0.002D0,0.001D0,0.002D0,0.014D0,0.003D0,1D0,2*0.3D0,2*0.2D0,1D0,
00640 &0.0252D0,0.0248D0,0.0267D0,0.015D0,0.045D0,0.015D0,0.045D0,
00641 &0.7743D0,0.029D0,0.22D0,0.78D0,1D0,0.331D0,0.663D0,0.006D0,
00642 &0.663D0,0.331D0,0.006D0,1D0,0.999D0,0.001D0,0.88D0,2*0.06D0,
00643 &0.639D0,0.358D0,0.002D0,0.001D0,1D0,0.88D0,2*0.06D0,0.516D0,
00644 &0.483D0,0.001D0,0.88D0,2*0.06D0,0.9988D0,0.0001D0,0.0006D0,
00645 &0.0004D0,0.0001D0,0.667D0,0.333D0,0.9954D0,0.0011D0,0.0035D0,
00646 &0.333D0,0.667D0,0.676D0,0.234D0,0.085D0,0.005D0,2*1D0,0.018D0,
00647 &2*0.005D0,0.003D0,0.002D0,2*0.006D0,0.018D0,2*0.005D0,0.003D0,
00648 &0.002D0,2*0.006D0,0.0066D0,0.025D0,0.016D0,0.0088D0,2*0.005D0,
00649 &0.0058D0,0.005D0,0.0055D0,4*0.004D0,2*0.002D0,2*0.004D0,0.003D0,
00650 &0.002D0,2*0.003D0,3*0.002D0,2*0.001D0,0.002D0,2*0.001D0,
00651 &2*0.002D0,0.0013D0,0.0018D0,5*0.001D0,4*0.003D0,2*0.005D0,
00652 &2*0.002D0,2*0.001D0,2*0.002D0,2*0.001D0,0.2432D0,0.057D0,
00653 &2*0.035D0,0.15D0,2*0.075D0,0.03D0,2*0.015D0,2*0.08D0,0.76D0,
00654 &0.08D0,4*1D0,2*0.08D0,0.76D0,0.08D0,1D0,2*0.5D0,1D0,2*0.5D0,
00655 &2*0.08D0,0.76D0,0.08D0,1D0,2*0.08D0,0.76D0,3*0.08D0,0.76D0,
00656 &3*0.08D0,0.76D0,3*0.08D0,0.76D0,3*0.08D0,0.76D0,3*0.08D0,0.76D0,
00657 &3*0.08D0,0.76D0,0.08D0,2*1D0,2*0.105D0,0.04D0,0.0077D0,0.02D0/
00658 DATA (BRAT(I) ,I=1342,1522)/0.0235D0,0.0285D0,0.0435D0,0.0011D0,
00659 &0.0022D0,0.0044D0,0.4291D0,0.08D0,0.07D0,0.02D0,0.015D0,0.005D0,
00660 &2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,0.015D0,0.005D0,
00661 &2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,0.015D0,0.005D0,
00662 &4*1D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,0.015D0,
00663 &0.005D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,0.015D0,
00664 &0.005D0,4*1D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,
00665 &0.015D0,0.005D0,1D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,
00666 &0.015D0,0.005D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,
00667 &0.015D0,0.005D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,
00668 &0.015D0,0.005D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,
00669 &0.015D0,0.005D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,
00670 &0.015D0,0.005D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,
00671 &0.015D0,0.005D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,
00672 &0.015D0,0.005D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,
00673 &0.015D0,0.005D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,
00674 &0.015D0,0.005D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,
00675 &0.015D0,0.005D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,
00676 &0.015D0,0.005D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0,
00677 &0.015D0,0.005D0,2*0.105D0,0.04D0,0.5D0,0.08D0,0.14D0,0.01D0/
00678 DATA (BRAT(I) ,I=1523,2548)/0.015D0,0.005D0,2*0.105D0,0.04D0,
00679 &0.5D0,0.08D0,0.14D0,0.01D0,0.015D0,0.005D0,2*0.105D0,0.04D0,
00680 &0.5D0,0.08D0,0.14D0,0.01D0,0.015D0,0.005D0,2*0.105D0,0.04D0,
00681 &0.5D0,0.08D0,0.14D0,0.01D0,0.015D0,0.005D0,2*0.105D0,0.04D0,
00682 &0.5D0,0.08D0,0.14D0,0.01D0,0.015D0,0.005D0,2*0.105D0,0.04D0,
00683 &0.5D0,0.08D0,0.14D0,0.01D0,0.015D0,0.005D0,4*1D0,0.52D0,0.26D0,
00684 &0.11D0,2*0.055D0,0.333D0,0.334D0,0.333D0,0.667D0,0.333D0,0.28D0,
00685 &0.14D0,0.313D0,0.157D0,0.11D0,0.667D0,0.333D0,0.28D0,0.14D0,
00686 &0.313D0,0.157D0,0.11D0,0.36D0,0.18D0,0.03D0,2*0.015D0,2*0.2D0,
00687 &4*0.25D0,0.667D0,0.333D0,0.667D0,0.333D0,0.667D0,0.333D0,0.667D0,
00688 &0.333D0,4*0.5D0,0.007D0,0.993D0,1D0,0.667D0,0.333D0,0.667D0,
00689 &0.333D0,0.667D0,0.333D0,0.667D0,0.333D0,8*0.5D0,0.02D0,0.98D0,
00690 &1D0,4*0.5D0,3*0.146D0,3*0.05D0,0.15D0,2*0.05D0,4*0.024D0,0.066D0,
00691 &0.667D0,0.333D0,0.667D0,0.333D0,4*0.25D0,0.667D0,0.333D0,0.667D0,
00692 &0.333D0,2*0.5D0,0.273D0,0.727D0,0.667D0,0.333D0,0.667D0,0.333D0,
00693 &4*0.5D0,0.35D0,0.65D0,2*0.0083D0,0.1866D0,0.324D0,0.184D0,
00694 &0.027D0,0.001D0,0.093D0,0.087D0,0.078D0,0.0028D0,3*0.014D0,
00695 &0.008D0,0.024D0,0.008D0,0.024D0,0.425D0,0.02D0,0.185D0,0.088D0,
00696 &0.043D0,0.067D0,0.066D0,831*0D0,0.85422D0,0.005292D0,0.044039D0,
00697 &0.096449D0,0.853165D0,0.021144D0,0.029361D0,0.096329D0/
00698 DATA (BRAT(I) ,I=2549,4000)/0.294414D0,0.109437D0,0.596149D0,
00699 &0.389861D0,0.610139D0,1447*0D0/
00700 DATA (KFDP(I,1),I= 1, 374)/21,22,23,4*-24,25,21,22,23,4*24,25,
00701 &21,22,23,4*-24,25,21,22,23,4*24,25,21,22,23,4*-24,25,21,22,23,
00702 &4*24,25,37,1000022,1000023,1000025,1000035,1000021,1000039,21,22,
00703 &23,4*-24,25,2*-37,21,22,23,4*24,25,2*37,22,23,-24,25,23,24,-12,
00704 &22,23,-24,25,23,24,-12,-14,48*16,22,23,-24,25,23,24,22,23,-24,25,
00705 &-37,23,24,37,1,2,3,4,5,6,7,8,21,1,2,3,4,5,6,7,8,11,13,15,17,1,2,
00706 &3,4,5,6,7,8,11,12,13,14,15,16,17,18,4*-1,4*-3,4*-5,4*-7,-11,-13,
00707 &-15,-17,1,2,3,4,5,6,7,8,11,13,15,17,21,2*22,23,24,1000022,
00708 &2*1000023,3*1000025,4*1000035,2*1000024,2*1000037,1000001,
00709 &2000001,1000001,-1000001,1000002,2000002,1000002,-1000002,
00710 &1000003,2000003,1000003,-1000003,1000004,2000004,1000004,
00711 &-1000004,1000005,2000005,1000005,-1000005,1000006,2000006,
00712 &1000006,-1000006,1000011,2000011,1000011,-1000011,1000012,
00713 &2000012,1000012,-1000012,1000013,2000013,1000013,-1000013,
00714 &1000014,2000014,1000014,-1000014,1000015,2000015,1000015,
00715 &-1000015,1000016,2000016,1000016,-1000016,1,2,3,4,5,6,7,8,11,12,
00716 &13,14,15,16,17,18,24,37,2*23,25,35,4*-1,4*-3,4*-5,4*-7,-11,-13,
00717 &-15,-17,3*24,1,2,3,4,5,6,7,8,11,13,15,17,21,2*22,23,24,23,25,36,
00718 &1000022,2*1000023,3*1000025,4*1000035,2*1000024,2*1000037,
00719 &1000001,2000001,1000001,-1000001,1000002,2000002,1000002/
00720 DATA (KFDP(I,1),I= 375, 587)/-1000002,1000003,2000003,1000003,
00721 &-1000003,1000004,2000004,1000004,-1000004,1000005,2000005,
00722 &1000005,-1000005,1000006,2000006,1000006,-1000006,1000011,
00723 &2000011,1000011,-1000011,1000012,2000012,1000012,-1000012,
00724 &1000013,2000013,1000013,-1000013,1000014,2000014,1000014,
00725 &-1000014,1000015,2000015,1000015,-1000015,1000016,2000016,
00726 &1000016,-1000016,1,2,3,4,5,6,7,8,11,13,15,17,21,2*22,23,24,23,
00727 &1000022,2*1000023,3*1000025,4*1000035,2*1000024,2*1000037,
00728 &1000001,2000001,1000001,-1000001,1000002,2000002,1000002,
00729 &-1000002,1000003,2000003,1000003,-1000003,1000004,2000004,
00730 &1000004,-1000004,1000005,2000005,1000005,-1000005,1000006,
00731 &2000006,1000006,-1000006,1000011,2000011,1000011,-1000011,
00732 &1000012,2000012,1000012,-1000012,1000013,2000013,1000013,
00733 &-1000013,1000014,2000014,1000014,-1000014,1000015,2000015,
00734 &1000015,-1000015,1000016,2000016,1000016,-1000016,-1,-3,-5,-7,
00735 &-11,-13,-15,-17,24,2*1000022,2*1000023,2*1000025,2*1000035,
00736 &1000006,2000006,1000006,2000006,-1000001,-1000003,-1000011,
00737 &-1000013,-1000015,-2000015,5,6,21,2,1,2,3,4,5,6,11,13,15,3,4,5,6,
00738 &11,13,15,21,2*4,24,-11,-13,-15,3,4,5,6,11,13,15,21,2*24,2*52,
00739 &2*22,2*23,1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18,2*24,3*52,24/
00740 DATA (KFDP(I,1),I= 588, 979)/4*-1,4*-3,4*-5,4*-7,-11,-13,-15,-17,
00741 &22,23,22,23,24,52,24,52,1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18,
00742 &3*-11,2*-13,-15,24,3*-11,2*-13,-15,63,3*-1,3*-3,3*-5,-11,-13,-15,
00743 &82,-11,-13,2*2,-12,-14,-16,2*-2,2*-4,-2,-4,2*22,211,111,221,13,
00744 &11,213,-213,221,223,321,130,310,111,331,111,211,-12,12,-14,14,
00745 &211,111,22,-13,-11,2*211,213,113,221,223,321,211,331,22,111,211,
00746 &2*22,211,22,111,211,22,211,221,111,11,211,111,2*211,321,130,310,
00747 &221,111,211,111,130,310,321,2*311,321,311,323,313,323,313,321,
00748 &3*311,-13,3*211,12,14,311,2*321,311,321,313,323,313,323,311,
00749 &4*321,211,111,3*22,111,321,130,-213,113,213,211,22,111,11,13,211,
00750 &321,130,310,221,211,111,11*-11,11*-13,-311,-313,-311,-313,-20313,
00751 &2*-311,-313,-311,-313,2*111,2*221,2*331,2*113,2*223,2*333,-311,
00752 &-313,2*-321,211,-311,-321,333,-311,-313,-321,211,2*-321,2*-311,
00753 &-321,211,113,421,2*411,421,411,423,413,423,413,421,411,8*-11,
00754 &8*-13,-321,-323,-321,-323,-311,2*-313,-311,-313,2*-311,-321,
00755 &-10323,-321,-323,-321,-311,2*-313,211,111,333,3*-321,-311,-313,
00756 &-321,-313,310,333,211,2*-321,-311,-313,-311,211,-321,3*-311,211,
00757 &113,321,2*421,411,421,413,423,413,423,411,421,-15,5*-11,5*-13,
00758 &221,331,333,221,331,333,10221,211,213,211,213,321,323,321,323,
00759 &2212,221,331,333,221,2*2,2*431,421,411,423,413,82,11,13,82,443/
00760 DATA (KFDP(I,1),I= 980,1419)/82,6*12,6*14,2*16,3*-411,3*-413,
00761 &2*-411,2*-413,2*441,2*443,2*20443,2*2,2*4,2,4,511,521,511,523,
00762 &513,523,513,521,511,6*12,6*14,2*16,3*-421,3*-423,2*-421,2*-423,
00763 &2*441,2*443,2*20443,2*2,2*4,2,4,521,511,521,513,523,513,523,511,
00764 &521,6*12,6*14,2*16,3*-431,3*-433,2*-431,2*-433,3*441,3*443,
00765 &3*20443,2*2,2*4,2,4,531,521,511,523,513,16,2*4,2*12,2*14,2*16,
00766 &4*2,4*4,2*-11,2*-13,2*-1,2*-3,2*-11,2*-13,2*-1,541,511,521,513,
00767 &523,21,11,13,15,1,2,3,4,21,22,553,21,2112,2212,2*2112,2212,2112,
00768 &2*2212,2112,-12,3122,3212,3112,2212,2*2112,-12,2*3122,3222,3112,
00769 &2212,2112,2212,3122,3222,3212,3122,3112,-12,-14,-12,3322,3312,
00770 &2*3122,3212,3322,3312,3122,3322,3312,-12,2*4122,7*-11,7*-13,
00771 &2*2224,2*2212,2*2214,2*3122,2*3212,2*3214,5*3222,4*3224,2*3322,
00772 &3324,2*2224,7*2212,5*2214,2*2112,2*2114,2*3122,2*3212,2*3214,
00773 &2*3222,2*3224,4*2,3,2*2,1,2*2,-11,-13,2*2,4*4122,-11,-13,2*2,
00774 &3*4132,3*4232,-11,-13,2*2,4332,-11,-13,2*2,-11,-13,2*2,-11,-13,
00775 &2*2,-11,-13,2*2,-11,-13,2*2,-11,-13,2*2,-11,-13,2*2,2*5122,-12,
00776 &-14,-16,5*4122,441,443,20443,2*-2,2*-4,-2,-4,-12,-14,-16,2*-2,
00777 &2*-4,-2,-4,-12,-14,-16,2*-2,2*-4,-2,-4,4*5122,-12,-14,-16,2*-2,
00778 &2*-4,-2,-4,-12,-14,-16,2*-2,2*-4,-2,-4,2*5132,2*5232,-12,-14,-16,
00779 &2*-2,2*-4,-2,-4,5332,-12,-14,-16,2*-2,2*-4,-2,-4,-12,-14,-16/
00780 DATA (KFDP(I,1),I=1420,1739)/2*-2,2*-4,-2,-4,-12,-14,-16,2*-2,
00781 &2*-4,-2,-4,-12,-14,-16,2*-2,2*-4,-2,-4,-12,-14,-16,2*-2,2*-4,-2,
00782 &-4,-12,-14,-16,2*-2,2*-4,-2,-4,-12,-14,-16,2*-2,2*-4,-2,-4,-12,
00783 &-14,-16,2*-2,2*-4,-2,-4,-12,-14,-16,2*-2,2*-4,-2,-4,-12,-14,-16,
00784 &2*-2,2*-4,-2,-4,-12,-14,-16,2*-2,2*-4,-2,-4,-12,-14,-16,2*-2,
00785 &2*-4,-2,-4,-12,-14,-16,2*-2,2*-4,-2,-4,-12,-14,-16,2*-2,2*-4,-2,
00786 &-4,-12,-14,-16,2*-2,2*-4,-2,-4,-12,-14,-16,2*-2,2*-4,-2,-4,-12,
00787 &-14,-16,2*-2,2*-4,-2,-4,-12,-14,-16,2*-2,2*-4,-2,-4,221,223,221,
00788 &223,211,111,321,130,310,213,113,-213,321,311,321,311,323,313,
00789 &2*311,321,311,321,313,323,321,211,111,321,130,310,2*211,313,-313,
00790 &323,-323,421,411,423,413,411,421,413,423,411,421,423,413,443,
00791 &2*82,521,511,523,513,511,521,513,523,521,511,523,513,511,521,513,
00792 &523,553,2*21,213,-213,113,213,10211,10111,-10211,2*221,213,2*113,
00793 &-213,2*321,2*311,113,323,2*313,323,313,-313,323,-323,423,2*413,
00794 &2*423,413,443,82,523,2*513,2*523,2*513,523,553,21,11,13,82,4*443,
00795 &10441,20443,445,441,11,13,15,1,2,3,4,21,22,2*553,10551,20553,555,
00796 &1000039,-1000024,-1000037,1000022,1000023,1000025,1000035,
00797 &1000002,2000002,1000002,2000002,1000021,1000039,1000024,1000037,
00798 &1000022,1000023,1000025,1000035,1000001,2000001,1000001,2000001,
00799 &1000021,1000039,-1000024,-1000037,1000022,1000023,1000025/
00800 DATA (KFDP(I,1),I=1740,1907)/1000035,1000004,2000004,1000004,
00801 &2000004,1000021,1000039,1000024,1000037,1000022,1000023,1000025,
00802 &1000035,1000003,2000003,1000003,2000003,1000021,1000039,-1000024,
00803 &-1000037,1000022,1000023,1000025,1000035,1000006,2000006,1000006,
00804 &2000006,1000021,1000039,1000024,1000037,1000022,1000023,1000025,
00805 &1000035,1000005,2000005,1000005,2000005,1000021,1000022,1000016,
00806 &-1000015,1000039,-1000024,-1000037,1000022,1000023,1000025,
00807 &1000035,1000012,2000012,1000012,2000012,1000039,1000024,1000037,
00808 &1000022,1000023,1000025,1000035,1000011,2000011,1000011,2000011,
00809 &1000039,-1000024,-1000037,1000022,1000023,1000025,1000035,
00810 &1000014,2000014,1000014,2000014,1000039,1000024,1000037,1000022,
00811 &1000023,1000025,1000035,1000013,2000013,1000013,2000013,1000039,
00812 &-1000024,-1000037,1000022,1000023,1000025,1000035,1000016,
00813 &2000016,1000016,2000016,1000039,1000024,1000037,1000022,1000023,
00814 &1000025,1000035,1000015,2000015,1000015,2000015,1000039,1000001,
00815 &-1000001,2000001,-2000001,1000002,-1000002,2000002,-2000002,
00816 &1000003,-1000003,2000003,-2000003,1000004,-1000004,2000004,
00817 &-2000004,1000005,-1000005,2000005,-2000005,1000006,-1000006,
00818 &2000006,-2000006,6*1000022,6*1000023,6*1000025,6*1000035,1000024,
00819 &-1000024,1000024,-1000024,1000024,-1000024,1000037,-1000037/
00820 DATA (KFDP(I,1),I=1908,2126)/1000037,-1000037,1000037,-1000037,
00821 &5*1000039,4,1,5*1000039,16*1000022,1000024,-1000024,1000024,
00822 &-1000024,1000024,-1000024,1000024,-1000024,1000024,-1000024,
00823 &1000024,-1000024,1000037,-1000037,1000037,-1000037,1000037,
00824 &-1000037,1000037,-1000037,1000037,-1000037,1000037,-1000037,
00825 &1000024,-1000024,1000037,-1000037,1000001,-1000001,2000001,
00826 &-2000001,1000002,-1000002,2000002,-2000002,1000003,-1000003,
00827 &2000003,-2000003,1000004,-1000004,2000004,-2000004,1000005,
00828 &-1000005,2000005,-2000005,1000006,-1000006,2000006,-2000006,
00829 &1000011,-1000011,2000011,-2000011,1000012,-1000012,2000012,
00830 &-2000012,1000013,-1000013,2000013,-2000013,1000014,-1000014,
00831 &2000014,-2000014,1000015,-1000015,2000015,-2000015,1000016,
00832 &-1000016,2000016,-2000016,5*1000021,2*1000039,6*1000022,
00833 &6*1000023,6*1000025,6*1000035,1000022,1000023,1000025,1000035,
00834 &1000002,2000002,-1000001,-2000001,1000004,2000004,-1000003,
00835 &-2000003,1000006,2000006,-1000005,-2000005,1000012,2000012,
00836 &-1000011,-2000011,1000014,2000014,-1000013,-2000013,1000016,
00837 &2000016,-1000015,-2000015,2*1000021,5*1000039,16*1000022,
00838 &16*1000023,1000024,-1000024,1000024,-1000024,1000024,-1000024,
00839 &1000024,-1000024,1000024,-1000024,1000024,-1000024,1000037/
00840 DATA (KFDP(I,1),I=2127,2315)/-1000037,1000037,-1000037,1000037,
00841 &-1000037,1000037,-1000037,1000037,-1000037,1000037,-1000037,
00842 &1000024,-1000024,1000037,-1000037,1000001,-1000001,2000001,
00843 &-2000001,1000002,-1000002,2000002,-2000002,1000003,-1000003,
00844 &2000003,-2000003,1000004,-1000004,2000004,-2000004,1000005,
00845 &-1000005,2000005,-2000005,1000006,-1000006,2000006,-2000006,
00846 &1000011,-1000011,2000011,-2000011,1000012,-1000012,2000012,
00847 &-2000012,1000013,-1000013,2000013,-2000013,1000014,-1000014,
00848 &2000014,-2000014,1000015,-1000015,2000015,-2000015,1000016,
00849 &-1000016,2000016,-2000016,5*1000021,5*1000039,16*1000022,
00850 &16*1000023,16*1000025,1000024,-1000024,1000024,-1000024,1000024,
00851 &-1000024,1000024,-1000024,1000024,-1000024,1000024,-1000024,
00852 &1000037,-1000037,1000037,-1000037,1000037,-1000037,1000037,
00853 &-1000037,1000037,-1000037,1000037,-1000037,1000024,-1000024,
00854 &1000037,-1000037,1000001,-1000001,2000001,-2000001,1000002,
00855 &-1000002,2000002,-2000002,1000003,-1000003,2000003,-2000003,
00856 &1000004,-1000004,2000004,-2000004,1000005,-1000005,2000005,
00857 &-2000005,1000006,-1000006,2000006,-2000006,1000011,-1000011,
00858 &2000011,-2000011,1000012,-1000012,2000012,-2000012,1000013,
00859 &-1000013,2000013,-2000013,1000014,-1000014,2000014,-2000014/
00860 DATA (KFDP(I,1),I=2316,2516)/1000015,-1000015,2000015,-2000015,
00861 &1000016,-1000016,2000016,-2000016,5*1000021,2*1000039,15*1000024,
00862 &6*1000022,6*1000023,6*1000025,6*1000035,1000022,1000023,1000025,
00863 &1000035,1000002,2000002,-1000001,-2000001,1000004,2000004,
00864 &-1000003,-2000003,1000006,2000006,-1000005,-2000005,1000012,
00865 &2000012,-1000011,-2000011,1000014,2000014,-1000013,-2000013,
00866 &1000016,2000016,-1000015,-2000015,2*1000021,1000039,-1000024,
00867 &-1000037,1000022,1000023,1000025,1000035,4*1000001,1000002,
00868 &2000002,1000002,2000002,1000021,1000039,1000024,1000037,1000022,
00869 &1000023,1000025,1000035,4*1000002,1000001,2000001,1000001,
00870 &2000001,1000021,1000039,-1000024,-1000037,1000022,1000023,
00871 &1000025,1000035,4*1000003,1000004,2000004,1000004,2000004,
00872 &1000021,1000039,1000024,1000037,1000022,1000023,1000025,1000035,
00873 &4*1000004,1000003,2000003,1000003,2000003,1000021,1000039,
00874 &-1000024,-1000037,1000022,1000023,1000025,1000035,4*1000005,
00875 &1000006,2000006,1000006,2000006,1000021,1000039,1000024,1000037,
00876 &1000022,1000023,1000025,1000035,4*1000006,1000005,2000005,
00877 &1000005,2000005,1000021,1000039,-1000024,-1000037,1000022,
00878 &1000023,1000025,1000035,4*1000011,1000012,2000012,1000012,
00879 &2000012,1000039,-1000024,-1000037,1000022,1000023,1000025/
00880 DATA (KFDP(I,1),I=2517,4000)/1000035,4*1000013,1000014,2000014,
00881 &1000014,2000014,1000039,-1000024,-1000037,1000022,1000023,
00882 &1000025,1000035,4*1000015,1000016,2000016,1000016,2000016,21,22,
00883 &23,-24,21,22,23,24,22,23,-24,23,24,1447*0/
00884 DATA (KFDP(I,2),I= 1, 339)/3*1,2,4,6,8,1,3*2,1,3,5,7,2,3*3,2,4,
00885 &6,8,3,3*4,1,3,5,7,4,3*5,2,4,6,8,5,3*6,1,3,5,7,6,5,6*1000006,3*7,
00886 &2,4,6,8,7,4,6,3*8,1,3,5,7,8,5,7,2*11,12,11,12,2*11,2*13,14,13,14,
00887 &13,11,13,-211,-213,-211,-213,-211,-213,-211,-213,2*-211,-321,
00888 &-323,-321,2*-323,3*-321,4*-211,-213,-211,-213,-211,-213,-211,
00889 &-213,-211,-213,3*-211,-213,4*-211,-323,-321,2*-211,2*-321,3*-211,
00890 &2*15,16,15,16,15,2*17,18,17,2*18,2*17,-1,-2,-3,-4,-5,-6,-7,-8,21,
00891 &-1,-2,-3,-4,-5,-6,-7,-8,-11,-13,-15,-17,-1,-2,-3,-4,-5,-6,-7,-8,
00892 &-11,-12,-13,-14,-15,-16,-17,-18,2,4,6,8,2,4,6,8,2,4,6,8,2,4,6,8,
00893 &12,14,16,18,-1,-2,-3,-4,-5,-6,-7,-8,-11,-13,-15,-17,21,22,2*23,
00894 &-24,2*1000022,1000023,1000022,1000023,1000025,1000022,1000023,
00895 &1000025,1000035,-1000024,-1000037,-1000024,-1000037,-1000001,
00896 &2*-2000001,2000001,-1000002,2*-2000002,2000002,-1000003,
00897 &2*-2000003,2000003,-1000004,2*-2000004,2000004,-1000005,
00898 &2*-2000005,2000005,-1000006,2*-2000006,2000006,-1000011,
00899 &2*-2000011,2000011,-1000012,2*-2000012,2000012,-1000013,
00900 &2*-2000013,2000013,-1000014,2*-2000014,2000014,-1000015,
00901 &2*-2000015,2000015,-1000016,2*-2000016,2000016,-1,-2,-3,-4,-5,-6,
00902 &-7,-8,-11,-12,-13,-14,-15,-16,-17,-18,-24,-37,22,25,2*36,2,4,6,8,
00903 &2,4,6,8,2,4,6,8,2,4,6,8,12,14,16,18,23,22,25,-1,-2,-3,-4,-5,-6/
00904 DATA (KFDP(I,2),I= 340, 526)/-7,-8,-11,-13,-15,-17,21,22,2*23,
00905 &-24,2*25,36,2*1000022,1000023,1000022,1000023,1000025,1000022,
00906 &1000023,1000025,1000035,-1000024,-1000037,-1000024,-1000037,
00907 &-1000001,2*-2000001,2000001,-1000002,2*-2000002,2000002,-1000003,
00908 &2*-2000003,2000003,-1000004,2*-2000004,2000004,-1000005,
00909 &2*-2000005,2000005,-1000006,2*-2000006,2000006,-1000011,
00910 &2*-2000011,2000011,-1000012,2*-2000012,2000012,-1000013,
00911 &2*-2000013,2000013,-1000014,2*-2000014,2000014,-1000015,
00912 &2*-2000015,2000015,-1000016,2*-2000016,2000016,-1,-2,-3,-4,-5,-6,
00913 &-7,-8,-11,-13,-15,-17,21,22,2*23,-24,25,2*1000022,1000023,
00914 &1000022,1000023,1000025,1000022,1000023,1000025,1000035,-1000024,
00915 &-1000037,-1000024,-1000037,-1000001,2*-2000001,2000001,-1000002,
00916 &2*-2000002,2000002,-1000003,2*-2000003,2000003,-1000004,
00917 &2*-2000004,2000004,-1000005,2*-2000005,2000005,-1000006,
00918 &2*-2000006,2000006,-1000011,2*-2000011,2000011,-1000012,
00919 &2*-2000012,2000012,-1000013,2*-2000013,2000013,-1000014,
00920 &2*-2000014,2000014,-1000015,2*-2000015,2000015,-1000016,
00921 &2*-2000016,2000016,2,4,6,8,12,14,16,18,25,1000024,1000037,
00922 &1000024,1000037,1000024,1000037,1000024,1000037,2*-1000005,
00923 &2*-2000005,1000002,1000004,1000012,1000014,2*1000016,-5,-6,21,11/
00924 DATA (KFDP(I,2),I= 527, 931)/-3,-4,-5,-6,-7,-8,-13,-15,-17,-3,-4,
00925 &-5,-6,-11,-13,-15,21,-3,-5,5,12,14,16,-3,-4,-5,-6,-11,-13,-15,21,
00926 &-24,-52,-24,-52,51,53,51,53,-1,-2,-3,-4,-5,-6,-7,-8,-11,-12,-13,
00927 &-14,-15,-16,-17,-18,23,51,23,51,22,53,2,4,6,8,2,4,6,8,2,4,6,8,2,
00928 &4,6,8,12,14,16,18,2*51,2*53,-52,2*-24,-52,-1,-2,-3,-4,-5,-6,-7,
00929 &-8,-11,-12,-13,-14,-15,-16,-17,-18,-11,-13,-15,-13,2*-15,24,-11,
00930 &-13,-15,-13,2*-15,63,2,4,6,2,4,6,2,4,6,64,65,66,-82,12,14,-1,-3,
00931 &11,13,15,1,4,3,4,1,3,22,11,-211,2*22,-13,-11,-211,211,111,211,
00932 &-321,130,310,22,2*111,-211,11,-11,13,-13,-211,111,22,14,12,111,
00933 &22,111,3*211,-311,22,211,22,111,-211,211,11,-211,13,22,-211,111,
00934 &-211,22,111,-11,-211,111,2*-211,-321,130,310,221,111,-211,111,
00935 &2*0,-211,111,22,-211,111,-211,111,-211,211,-213,113,223,221,14,
00936 &111,211,111,-11,-13,211,111,22,211,111,211,111,2*211,213,113,223,
00937 &221,22,-211,111,113,223,22,111,-321,310,211,111,2*-211,221,22,
00938 &-11,-13,-211,-321,130,310,221,-211,111,11*12,11*14,2*211,2*213,
00939 &211,20213,2*321,2*323,211,213,211,213,211,213,211,213,211,213,
00940 &211,213,3*211,213,211,2*321,8*211,2*113,3*211,111,22,211,111,211,
00941 &111,4*211,8*12,8*14,2*211,2*213,2*111,221,2*113,223,333,20213,
00942 &211,2*321,323,2*311,313,-211,111,113,2*211,321,2*211,311,321,310,
00943 &211,-211,4*211,321,4*211,113,2*211,-321,111,22,-211,111,-211,111/
00944 DATA (KFDP(I,2),I= 932,1317)/-211,211,-211,211,16,5*12,5*14,
00945 &3*211,3*213,211,2*111,2*113,2*-311,2*-313,-2112,3*321,323,2*-1,
00946 &22,111,321,311,321,311,-82,-11,-13,-82,22,-82,6*-11,6*-13,2*-15,
00947 &211,213,20213,211,213,20213,431,433,431,433,311,313,311,313,311,
00948 &313,-1,-4,-3,-4,-1,-3,22,-211,111,-211,111,-211,211,-211,211,
00949 &6*-11,6*-13,2*-15,211,213,20213,211,213,20213,431,433,431,433,
00950 &321,323,321,323,321,323,-1,-4,-3,-4,-1,-3,22,211,111,211,111,
00951 &4*211,6*-11,6*-13,2*-15,211,213,20213,211,213,20213,431,433,431,
00952 &433,221,331,333,221,331,333,221,331,333,-1,-4,-3,-4,-1,-3,22,
00953 &-321,-311,-321,-311,-15,-3,-1,2*-11,2*-13,2*-15,-1,-4,-3,-4,-3,
00954 &-4,-1,-4,2*12,2*14,2,3,2,3,2*12,2*14,2,1,22,411,421,411,421,21,
00955 &-11,-13,-15,-1,-2,-3,-4,2*21,22,21,2*-211,111,22,111,211,22,211,
00956 &-211,11,2*-211,111,-211,111,22,11,22,111,-211,211,111,211,22,211,
00957 &111,211,-211,22,11,13,11,-211,2*111,2*22,111,211,-321,-211,111,
00958 &11,2*-211,7*12,7*14,-321,-323,-311,-313,-311,-313,211,213,211,
00959 &213,211,213,111,221,331,113,223,111,221,113,223,321,323,321,-211,
00960 &-213,111,221,331,113,223,333,10221,111,221,331,113,223,211,213,
00961 &211,213,321,323,321,323,321,323,311,313,311,313,2*-1,-3,-1,2203,
00962 &3201,3203,2203,2101,2103,12,14,-1,-3,2*111,2*211,12,14,-1,-3,22,
00963 &111,2*22,111,22,12,14,-1,-3,22,12,14,-1,-3,12,14,-1,-3,12,14,-1/
00964 DATA (KFDP(I,2),I=1318,1756)/-3,12,14,-1,-3,12,14,-1,-3,12,14,-1,
00965 &-3,12,14,-1,-3,2*-211,11,13,15,-211,-213,-20213,-431,-433,3*3122,
00966 &1,4,3,4,1,3,11,13,15,1,4,3,4,1,3,11,13,15,1,4,3,4,1,3,2*111,
00967 &2*211,11,13,15,1,4,3,4,1,3,11,13,15,1,4,3,4,1,3,4*22,11,13,15,1,
00968 &4,3,4,1,3,22,11,13,15,1,4,3,4,1,3,11,13,15,1,4,3,4,1,3,11,13,15,
00969 &1,4,3,4,1,3,11,13,15,1,4,3,4,1,3,11,13,15,1,4,3,4,1,3,11,13,15,1,
00970 &4,3,4,1,3,11,13,15,1,4,3,4,1,3,11,13,15,1,4,3,4,1,3,11,13,15,1,4,
00971 &3,4,1,3,11,13,15,1,4,3,4,1,3,11,13,15,1,4,3,4,1,3,11,13,15,1,4,3,
00972 &4,1,3,11,13,15,1,4,3,4,1,3,11,13,15,1,4,3,4,1,3,11,13,15,1,4,3,4,
00973 &1,3,11,13,15,1,4,3,4,1,3,11,13,15,1,4,3,4,1,3,11,13,15,1,4,3,4,1,
00974 &3,2*111,2*211,-211,111,-321,130,310,-211,111,211,-211,111,-213,
00975 &113,-211,111,223,211,111,213,113,211,111,223,-211,111,-321,130,
00976 &310,2*-211,-311,311,-321,321,211,111,211,111,-211,111,-211,111,
00977 &311,2*321,311,22,2*-82,-211,111,-211,111,211,111,211,111,-321,
00978 &-311,-321,-311,411,421,411,421,22,2*21,-211,2*211,111,-211,111,
00979 &2*211,111,-211,211,111,211,-321,2*-311,-321,22,-211,111,211,111,
00980 &-311,311,-321,321,211,111,-211,111,321,311,22,-82,-211,111,211,
00981 &111,-321,-311,411,421,22,21,-11,-13,-82,211,111,221,111,4*22,-11,
00982 &-13,-15,-1,-2,-3,-4,2*21,211,111,3*22,1,2*2,4*1,2*-24,2*-37,1,2,
00983 &2*1,4*2,2*24,2*37,2,3,2*4,4*3,2*-24,2*-37,3,4,2*3,4*4,2*24,2*37/
00984 DATA (KFDP(I,2),I=1757,2220)/4,5,2*6,4*5,2*-24,2*-37,5,6,2*5,4*6,
00985 &2*24,2*37,6,4,-15,16,11,2*12,4*11,2*-24,2*-37,12,2*11,4*12,2*24,
00986 &2*37,13,2*14,4*13,2*-24,2*-37,14,2*13,4*14,2*24,2*37,15,2*16,
00987 &4*15,2*-24,2*-37,16,2*15,4*16,2*24,2*37,21,-1,1,-1,1,-2,2,-2,2,
00988 &-3,3,-3,3,-4,4,-4,4,-5,5,-5,5,-6,6,-6,6,1,3,5,2,4,6,1,3,5,2,4,6,
00989 &1,3,5,2,4,6,1,3,5,2,4,6,1,-1,3,-3,5,-5,1,-1,3,-3,5,-5,22,23,25,
00990 &35,36,-1,-3,22,23,25,35,36,22,23,11,13,15,12,14,16,1,3,5,2,4,25,
00991 &35,36,-24,24,11,-11,13,-13,15,-15,1,-1,3,-3,-24,24,11,-11,13,-13,
00992 &15,-15,1,-1,3,-3,-37,37,-37,37,-1,1,-1,1,-2,2,-2,2,-3,3,-3,3,-4,
00993 &4,-4,4,-5,5,-5,5,-6,6,-6,6,-11,11,-11,11,-12,12,-12,12,-13,13,
00994 &-13,13,-14,14,-14,14,-15,15,-15,15,-16,16,-16,16,1,3,5,2,4,24,37,
00995 &24,-11,-13,-15,-1,-3,24,-11,-13,-15,-1,-3,24,-11,-13,-15,-1,-3,
00996 &24,-11,-13,-15,-1,-3,4*37,2*-1,2*2,2*-3,2*4,2*-5,2*6,2*-11,2*12,
00997 &2*-13,2*14,2*-15,2*16,-1,-3,22,23,25,35,36,22,23,11,13,15,12,14,
00998 &16,1,3,5,2,4,25,35,36,22,23,11,13,15,12,14,16,1,3,5,2,4,25,35,36,
00999 &-24,24,11,-11,13,-13,15,-15,1,-1,3,-3,-24,24,11,-11,13,-13,15,
01000 &-15,1,-1,3,-3,-37,37,-37,37,-1,1,-1,1,-2,2,-2,2,-3,3,-3,3,-4,4,
01001 &-4,4,-5,5,-5,5,-6,6,-6,6,-11,11,-11,11,-12,12,-12,12,-13,13,-13,
01002 &13,-14,14,-14,14,-15,15,-15,15,-16,16,-16,16,1,3,5,2,4,22,23,25,
01003 &35,36,22,23,11,13,15,12,14,16,1,3,5,2,4,25,35,36,22,23,11,13,15/
01004 DATA (KFDP(I,2),I=2221,4000)/12,14,16,1,3,5,2,4,25,35,36,22,23,
01005 &11,13,15,12,14,16,1,3,5,2,4,25,35,36,-24,24,11,-11,13,-13,15,-15,
01006 &1,-1,3,-3,-24,24,11,-11,13,-13,15,-15,1,-1,3,-3,-37,37,-37,37,-1,
01007 &1,-1,1,-2,2,-2,2,-3,3,-3,3,-4,4,-4,4,-5,5,-5,5,-6,6,-6,6,-11,11,
01008 &-11,11,-12,12,-12,12,-13,13,-13,13,-14,14,-14,14,-15,15,-15,15,
01009 &-16,16,-16,16,1,3,5,2,4,24,37,23,11,13,15,12,14,16,1,3,5,2,4,25,
01010 &35,36,24,-11,-13,-15,-1,-3,24,-11,-13,-15,-1,-3,24,-11,-13,-15,
01011 &-1,-3,24,-11,-13,-15,-1,-3,4*37,2*-1,2*2,2*-3,2*4,2*-5,2*6,2*-11,
01012 &2*12,2*-13,2*14,2*-15,2*16,-1,-3,1,2*2,4*1,23,25,35,36,2*-24,
01013 &2*-37,1,2,2*1,4*2,23,25,35,36,2*24,2*37,2,3,2*4,4*3,23,25,35,36,
01014 &2*-24,2*-37,3,4,2*3,4*4,23,25,35,36,2*24,2*37,4,5,2*6,4*5,23,25,
01015 &35,36,2*-24,2*-37,5,6,2*5,4*6,23,25,35,36,2*24,2*37,6,11,2*12,
01016 &4*11,23,25,35,36,2*-24,2*-37,13,2*14,4*13,23,25,35,36,2*-24,
01017 &2*-37,15,2*16,4*15,23,25,35,36,2*-24,2*-37,3*1,4*2,1,2*11,2*12,
01018 &11,1447*0/
01019 DATA (KFDP(I,3),I= 1,1134)/81*0,14,6*0,2*16,2*0,6*111,310,130,
01020 &2*0,3*111,310,130,321,113,211,223,221,2*113,2*211,2*223,2*221,
01021 &2*113,221,2*113,2*213,-213,113,2*111,310,130,310,130,2*310,130,
01022 &407*0,-5,112*0,4*3,4*4,1,4,3,2*2,0,-11,8*0,-211,5*0,2*111,211,
01023 &-211,211,-211,10*0,111,4*0,2*111,-211,-11,11,-13,22,111,3*0,22,
01024 &3*0,111,211,4*0,111,11*0,111,-211,6*0,-211,3*111,7*0,111,-211,
01025 &5*0,2*221,3*0,111,5*0,111,11*0,-311,-313,-311,-321,-313,-323,111,
01026 &221,331,113,223,-311,-313,-311,-321,-313,-323,111,221,331,113,
01027 &223,22*0,111,113,2*211,-211,-311,211,111,3*211,-211,7*211,7*0,
01028 &111,-211,111,-211,-321,-323,-311,-321,-313,-323,-211,-213,-321,
01029 &-323,-311,-321,-313,-323,-211,-213,22*0,111,113,-311,2*-211,211,
01030 &-211,310,-211,2*111,211,2*-211,-321,-211,2*211,-211,111,-211,
01031 &2*211,6*0,111,-211,111,-211,0,221,331,333,321,311,221,331,333,
01032 &321,311,20*0,3,13*0,-411,-413,-10413,-10411,-20413,-415,-411,
01033 &-413,-10413,-10411,-20413,-415,-411,-413,16*0,-4,-1,-4,-3,2*-2,
01034 &5*0,111,-211,111,-211,-421,-423,-10423,-10421,-20423,-425,-421,
01035 &-423,-10423,-10421,-20423,-425,-421,-423,16*0,-4,-1,-4,-3,2*-2,
01036 &5*0,111,-211,111,-211,-431,-433,-10433,-10431,-20433,-435,-431,
01037 &-433,-10433,-10431,-20433,-435,-431,-433,19*0,-4,-1,-4,-3,2*-2,
01038 &8*0,441,443,441,443,441,443,-4,-1,-4,-3,-4,-3,-4,-1,531,533,531/
01039 DATA (KFDP(I,3),I=1135,2233)/533,3,2,3,2,511,513,511,513,1,2,
01040 &13*0,2*21,11*0,2112,6*0,2212,12*0,2*3122,3212,10*0,3322,2*0,3122,
01041 &3212,3214,2112,2114,2212,2112,3122,3212,3214,2112,2114,2212,2112,
01042 &52*0,3*3,1,6*0,4*3,4*0,4*3,6*0,4*3,0,28*3,2*0,3*4122,8*0,4,1,4,3,
01043 &2*2,4*4,1,4,3,2*2,4*4,1,4,3,2*2,4*0,4*4,1,4,3,2*2,4*4,1,4,3,2*2,
01044 &4*0,4*4,1,4,3,2*2,0,4*4,1,4,3,2*2,4*4,1,4,3,2*2,4*4,1,4,3,2*2,
01045 &4*4,1,4,3,2*2,4*4,1,4,3,2*2,4*4,1,4,3,2*2,4*4,1,4,3,2*2,4*4,1,4,
01046 &3,2*2,4*4,1,4,3,2*2,4*4,1,4,3,2*2,4*4,1,4,3,2*2,4*4,1,4,3,2*2,
01047 &4*4,1,4,3,2*2,4*4,1,4,3,2*2,4*4,1,4,3,2*2,4*4,1,4,3,2*2,4*4,1,4,
01048 &3,2*2,4*4,1,4,3,2*2,31*0,211,111,45*0,-211,2*111,-211,3*111,-211,
01049 &111,211,30*0,-211,111,13*0,2*21,-211,111,76*0,2*5,91*0,-1,-3,-5,
01050 &-2,-4,-6,-1,-3,-5,-2,-4,-6,-1,-3,-5,-2,-4,-6,-1,-3,-5,-2,-4,-6,
01051 &-2,2,-4,4,-6,6,-2,2,-4,4,-6,6,5*0,11,12,7*0,-11,-13,-15,-12,-14,
01052 &-16,-1,-3,-5,-2,-4,5*0,-12,12,-14,14,-16,16,-2,2,-4,4,2*0,-12,12,
01053 &-14,14,-16,16,-2,2,-4,4,52*0,-1,-3,-5,-2,-4,3*0,12,14,16,2,4,0,
01054 &12,14,16,2,4,0,12,14,16,2,4,0,12,14,16,2,4,28*0,2,4,7*0,-11,-13,
01055 &-15,-12,-14,-16,-1,-3,-5,-2,-4,5*0,-11,-13,-15,-12,-14,-16,-1,-3,
01056 &-5,-2,-4,5*0,-12,12,-14,14,-16,16,-2,2,-4,4,2*0,-12,12,-14,14,
01057 &-16,16,-2,2,-4,4,52*0,-1,-3,-5,-2,-4,7*0,-11,-13,-15,-12,-14,-16,
01058 &-1,-3,-5,-2,-4,5*0,-11,-13,-15,-12,-14,-16,-1,-3,-5,-2,-4,5*0/
01059 DATA (KFDP(I,3),I=2234,4000)/-11,-13,-15,-12,-14,-16,-1,-3,-5,-2,
01060 &-4,5*0,-12,12,-14,14,-16,16,-2,2,-4,4,2*0,-12,12,-14,14,-16,16,
01061 &-2,2,-4,4,52*0,-1,-3,-5,-2,-4,3*0,-11,-13,-15,-12,-14,-16,-1,-3,
01062 &-5,-2,-4,4*0,12,14,16,2,4,0,12,14,16,2,4,0,12,14,16,2,4,0,12,14,
01063 &16,2,4,28*0,2,4,1601*0/
01064 DATA (KFDP(I,4),I= 1,4000)/94*0,4*111,6*0,111,2*0,-211,0,-211,
01065 &3*0,111,2*-211,0,111,0,2*111,113,221,2*111,-213,-211,211,113,
01066 &6*111,310,2*130,520*0,13*81,41*0,-11,10*0,111,-211,4*0,111,62*0,
01067 &111,211,111,211,7*0,111,211,111,211,35*0,2*-211,2*111,211,111,
01068 &-211,2*211,2*-211,13*0,-211,111,-211,111,4*0,-211,111,-211,111,
01069 &34*0,111,-211,3*111,3*-211,2*111,3*-211,14*0,-321,-311,3*0,-321,
01070 &-311,20*0,-3,43*0,6*1,39*0,6*2,42*0,6*3,14*0,8*4,4*0,4*-5,4*0,
01071 &2*-5,67*0,-211,111,5*0,-211,111,52*0,2101,2103,2*2101,6*0,4*81,
01072 &4*0,4*81,6*0,4*81,0,28*81,13*0,6*2101,18*81,4*0,18*81,4*0,9*81,0,
01073 &162*81,31*0,-211,111,2398*0/
01074 DATA (KFDP(I,5),I= 1,4000)/96*0,2*111,17*0,111,7*0,2*111,0,
01075 &3*111,0,111,715*0,-211,2*111,-211,111,-211,111,65*0,111,-211,
01076 &3*111,-211,111,3075*0/
01077
01078
01079 DATA (CHAF(I,1),I= 1, 185)/'d','u','s','c','b','t','b''','t''',
01080 &2*' ','e-','nu_e','mu-','nu_mu','tau-','nu_tau','tau''-',
01081 &'nu''_tau',2*' ','g','gamma','Z0','W+','h0',2*' ','reggeon',
01082 &'pomeron',2*' ','Z''0','Z"0','W''+','H0','A0','H+','eta_tech0',
01083 &'LQ_ue','R0',10*' ','pi_tech0','pi_tech+','pi''_tech0',
01084 &'rho_tech0','rho_tech+','omega_tech',4*' ','H_L++','H_R++',
01085 &'W_R+','nu_Re','nu_Rmu','nu_Rtau',14*' ','specflav','rndmflav',
01086 &'phasespa','c-hadron','b-hadron',5*' ','cluster','string',
01087 &'indep.','CMshower','SPHEaxis','THRUaxis','CLUSjet','CELLjet',
01088 &'table',' ','rho_diff0','pi0','rho0','a_20','K_L0','pi_diffr+',
01089 &'pi+','rho+','a_2+','omega_di','eta','omega','f_2','K_S0','K0',
01090 &'K*0','K*_20','K+','K*+','K*_2+','phi_diff','eta''','phi',
01091 &'f''_2','D+','D*+','D*_2+','D0','D*0','D*_20','D_s+','D*_s+',
01092 &'D*_2s+','J/psi_di','eta_c','J/psi','chi_2c','B0','B*0','B*_20',
01093 &'B+','B*+','B*_2+','B_s0','B*_s0','B*_2s0','B_c+','B*_c+',
01094 &'B*_2c+','eta_b','Upsilon','chi_2b','dd_1','Delta-','ud_0',
01095 &'ud_1','n_diffr0','n0','Delta0','uu_1','p_diffr+','p+','Delta+',
01096 &'Delta++','sd_0','sd_1','Sigma-','Sigma*-','Lambda0','su_0',
01097 &'su_1','Sigma0','Sigma*0','Sigma+','Sigma*+','ss_1','Xi-','Xi*-',
01098 &'Xi0','Xi*0','Omega-','cd_0','cd_1','Sigma_c0','Sigma*_c0'/
01099 DATA (CHAF(I,1),I= 186, 315)/'Lambda_c+','Xi_c0','cu_0','cu_1',
01100 &'Sigma_c+','Sigma*_c+','Sigma_c++','Sigma*_c++','Xi_c+','cs_0',
01101 &'cs_1','Xi''_c0','Xi*_c0','Xi''_c+','Xi*_c+','Omega_c0',
01102 &'Omega*_c0','cc_1','Xi_cc+','Xi*_cc+','Xi_cc++','Xi*_cc++',
01103 &'Omega_cc+','Omega*_cc+','Omega*_ccc++','bd_0','bd_1','Sigma_b-',
01104 &'Sigma*_b-','Lambda_b0','Xi_b-','Xi_bc0','bu_0','bu_1',
01105 &'Sigma_b0','Sigma*_b0','Sigma_b+','Sigma*_b+','Xi_b0','Xi_bc+',
01106 &'bs_0','bs_1','Xi''_b-','Xi*_b-','Xi''_b0','Xi*_b0','Omega_b-',
01107 &'Omega*_b-','Omega_bc0','bc_0','bc_1','Xi''_bc0','Xi*_bc0',
01108 &'Xi''_bc+','Xi*_bc+','Omega''_bc0','Omega*_bc0','Omega_bcc+',
01109 &'Omega*_bcc+','bb_1','Xi_bb-','Xi*_bb-','Xi_bb0','Xi*_bb0',
01110 &'Omega_bb-','Omega*_bb-','Omega_bbc0','Omega*_bbc0',
01111 &'Omega*_bbb-','a_00','b_10','a_0+','b_1+','f_0','h_1','K*_00',
01112 &'K_10','K*_0+','K_1+','f''_0','h''_1','D*_0+','D_1+','D*_00',
01113 &'D_10','D*_0s+','D_1s+','chi_0c','h_1c','B*_00','B_10','B*_0+',
01114 &'B_1+','B*_0s0','B_1s0','B*_0c+','B_1c+','chi_0b','h_1b','a_10',
01115 &'a_1+','f_1','K*_10','K*_1+','f''_1','D*_1+','D*_10','D*_1s+',
01116 &'chi_1c','B*_10','B*_1+','B*_1s0','B*_1c+','chi_1b','psi''',
01117 &'Upsilon''','~d_L','~u_L','~s_L','~c_L','~b_1','~t_1','~e_L-',
01118 &'~nu_eL','~mu_L-','~nu_muL','~tau_1-','~nu_tauL','~g','~chi_10'/
01119 DATA (CHAF(I,1),I= 316, 500)/'~chi_20','~chi_1+','~chi_30',
01120 &'~chi_40','~chi_2+','~gravitino','~d_R','~u_R','~s_R','~c_R',
01121 &'~b_2','~t_2','~e_R-','~nu_eR','~mu_R-','~nu_muR','~tau_2-',
01122 &'~nu_tauR','d*','u*','e*-','nu*_e0',163*' '/
01123 DATA (CHAF(I,2),I= 1, 198)/'dbar','ubar','sbar','cbar','bbar',
01124 &'tbar','b''bar','t''bar',2*' ','e+','nu_ebar','mu+','nu_mubar',
01125 &'tau+','nu_taubar','tau''+','nu''_taubar',5*' ','W-',9*' ',
01126 &'W''-',2*' ','H-',' ','LQ_uebar','Rbar0',11*' ','pi_tech-',2*' ',
01127 &'rho_tech-',5*' ','H_L--','H_R--','W_R-','nu_Rebar','nu_Rmubar',
01128 &'nu_Rtaubar',15*' ','rndmflavbar',' ','c-hadronbar',
01129 &'b-hadronbar',20*' ','pi_diffr-','pi-','rho-','a_2-',5*' ',
01130 &'Kbar0','K*bar0','K*_2bar0','K-','K*-','K*_2-',4*' ','D-','D*-',
01131 &'D*_2-','Dbar0','D*bar0','D*_2bar0','D_s-','D*_s-','D*_2s-',
01132 &4*' ','Bbar0','B*bar0','B*_2bar0','B-','B*-','B*_2-','B_sbar0',
01133 &'B*_sbar0','B*_2sbar0','B_c-','B*_c-','B*_2c-',3*' ','dd_1bar',
01134 &'Deltabar+','ud_0bar','ud_1bar','n_diffrbar0','nbar0',
01135 &'Deltabar0','uu_1bar','p_diffrbar-','pbar-','Deltabar-',
01136 &'Deltabar--','sd_0bar','sd_1bar','Sigmabar+','Sigma*bar+',
01137 &'Lambdabar0','su_0bar','su_1bar','Sigmabar0','Sigma*bar0',
01138 &'Sigmabar-','Sigma*bar-','ss_1bar','Xibar+','Xi*bar+','Xibar0',
01139 &'Xi*bar0','Omegabar+','cd_0bar','cd_1bar','Sigma_cbar0',
01140 &'Sigma*_cbar0','Lambda_cbar-','Xi_cbar0','cu_0bar','cu_1bar',
01141 &'Sigma_cbar-','Sigma*_cbar-','Sigma_cbar--','Sigma*_cbar--',
01142 &'Xi_cbar-','cs_0bar','cs_1bar','Xi''_cbar0','Xi*_cbar0'/
01143 DATA (CHAF(I,2),I= 199, 308)/'Xi''_cbar-','Xi*_cbar-',
01144 &'Omega_cbar0','Omega*_cbar0','cc_1bar','Xi_ccbar-','Xi*_ccbar-',
01145 &'Xi_ccbar--','Xi*_ccbar--','Omega_ccbar-','Omega*_ccbar-',
01146 &'Omega*_cccbar-','bd_0bar','bd_1bar','Sigma_bbar+',
01147 &'Sigma*_bbar+','Lambda_bbar0','Xi_bbar+','Xi_bcbar0','bu_0bar',
01148 &'bu_1bar','Sigma_bbar0','Sigma*_bbar0','Sigma_bbar-',
01149 &'Sigma*_bbar-','Xi_bbar0','Xi_bcbar-','bs_0bar','bs_1bar',
01150 &'Xi''_bbar+','Xi*_bbar+','Xi''_bbar0','Xi*_bbar0','Omega_bbar+',
01151 &'Omega*_bbar+','Omega_bcbar0','bc_0bar','bc_1bar','Xi''_bcbar0',
01152 &'Xi*_bcbar0','Xi''_bcbar-','Xi*_bcbar-','Omega''_bcba',
01153 &'Omega*_bcbar0','Omega_bccbar-','Omega*_bccbar-','bb_1bar',
01154 &'Xi_bbbar+','Xi*_bbbar+','Xi_bbbar0','Xi*_bbbar0','Omega_bbbar+',
01155 &'Omega*_bbbar+','Omega_bbcbar0','Omega*_bbcbar0',
01156 &'Omega*_bbbbar+',2*' ','a_0-','b_1-',2*' ','K*_0bar0','K_1bar0',
01157 &'K*_0-','K_1-',2*' ','D*_0-','D_1-','D*_0bar0','D_1bar0',
01158 &'D*_0s-','D_1s-',2*' ','B*_0bar0','B_1bar0','B*_0-','B_1-',
01159 &'B*_0sbar0','B_1sbar0','B*_0c-','B_1c-',3*' ','a_1-',' ',
01160 &'K*_1bar0','K*_1-',' ','D*_1-','D*_1bar0','D*_1s-',' ',
01161 &'B*_1bar0','B*_1-','B*_1sbar0','B*_1c-',3*' ','~d_Lbar',
01162 &'~u_Lbar','~s_Lbar','~c_Lbar','~b_1bar','~t_1bar','~e_L+'/
01163 DATA (CHAF(I,2),I= 309, 500)/'~nu_eLbar','~mu_L+','~nu_muLbar',
01164 &'~tau_1+','~nu_tauLbar',3*' ','~chi_1-',2*' ','~chi_2-',' ',
01165 &'~d_Rbar','~u_Rbar','~s_Rbar','~c_Rbar','~b_2bar','~t_2bar',
01166 &'~e_R+','~nu_eRbar','~mu_R+','~nu_muRbar','~tau_2+',
01167 &'~nu_tauRbar','d*bar','u*bar','e*bar+','nu*_ebar0',163*' '/
01168
01169
01170 DATA MRPY/19780503,0,0,97,33,0/
01171
01172
01173 DATA MSEL/1/
01174 DATA MSUB/500*0/
01175 DATA ((KFIN(I,J),J=-40,40),I=1,2)/16*0,4*1,4*0,6*1,5*0,5*1,0,
01176 &5*1,5*0,6*1,4*0,4*1,16*0,16*0,4*1,4*0,6*1,5*0,5*1,0,5*1,5*0,
01177 &6*1,4*0,4*1,16*0/
01178 DATA CKIN/
01179 & 2.0D0, -1.0D0, 0.0D0, -1.0D0, 1.0D0,
01180 & 1.0D0, -10D0, 10D0, -40D0, 40D0,
01181 1 -40D0, 40D0, -40D0, 40D0, -40D0,
01182 1 40D0, -1.0D0, 1.0D0, -1.0D0, 1.0D0,
01183 2 0.0D0, 1.0D0, 0.0D0, 1.0D0, -1.0D0,
01184 2 1.0D0, -1.0D0, 1.0D0, 0D0, 0D0,
01185 3 2.0D0, -1.0D0, 0D0, 0D0, 0.0D0,
01186 3 -1.0D0, 0.0D0, -1.0D0, 4.0D0, -1.0D0,
01187 4 12.0D0, -1.0D0, 12.0D0, -1.0D0, 12.0D0,
01188 4 -1.0D0, 12.0D0, -1.0D0, 0D0, 0D0,
01189 5 0.0D0, -1.0D0, 0.0D0, -1.0D0, 0.0D0,
01190 5 -1.0D0, 0D0, 0D0, 0D0, 0D0,
01191 6 0.0001D0, 0.99D0, 0.0001D0, 0.99D0, 0D0,
01192 6 -1D0, 0D0, -1D0, 0D0, -1D0,
01193 7 0D0, -1D0, 0.0001D0, 0.99D0, 0.0001D0,
01194 7 0.99D0, 2D0, -1D0, 0D0, 0D0,
01195 8 120*0D0/
01196
01197
01198 DATA (MSTP(I),I=1,100)/
01199 & 3, 1, 2, 0, 0, 0, 0, 0, 0, 0,
01200 1 1, 0, 1, 30, 0, 1, 4, 3, 4, 3,
01201 2 1, 0, 1, 0, 0, 0, 0, 0, 0, 1,
01202 3 1, 8, 0, 1, 0, 2, 1, 5, 2, 0,
01203 4 1, 1, 3, 7, 3, 1, 1, 0, 1, 0,
01204 5 4, 1, 3, 1, 5, 1, 1, 5, 1, 7,
01205 6 1, 3, 2, 2, 1, 5, 2, 1, 0, 0,
01206 7 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01207 8 1, 1, 100, 0, 0, 2, 0, 0, 0, 0,
01208 9 1, 3, 1, 3, 0, 0, 0, 0, 0, 0/
01209 DATA (MSTP(I),I=101,200)/
01210 & 3, 1, 0, 0, 0, 0, 0, 0, 0, 0,
01211 1 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
01212 2 0, 1, 2, 1, 1, 50, 0, 0, 10, 0,
01213 3 0, 4, 0, 1, 0, 0, 0, 0, 0, 0,
01214 4 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01215 5 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01216 6 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01217 7 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
01218 8 6, 152, 2000, 08, 17, 0, 0, 0, 0, 0,
01219 9 0, 0, 0, 0, 0, 0, 0, 0, 0, 0/
01220 DATA (PARP(I),I=1,100)/
01221 & 0.25D0, 10D0, 8*0D0,
01222 1 0D0, 0D0, 1.0D0, 0.01D0, 0.5D0, 1.0D0, 1.0D0, 0.4D0, 2*0D0,
01223 2 10*0D0,
01224 3 1.5D0,2.0D0,0.075D0,1.0D0,0.2D0,0D0,2.0D0,0.70D0,0.006D0,0D0,
01225 4 0.02D0,2.0D0,0.10D0,1000D0,2054D0, 123D0, 246D0, 50D0, 2*0D0,
01226 5 10*0D0,
01227 6 0.25D0, 1.0D0,0.25D0, 1.0D0, 2.0D0,1D-3, 1.0D0,1D-3,2*0D0,
01228 7 4.0D0, 0.25D0, 8*0D0,
01229 8 1.90D0, 2.10D0, 0.5D0, 0.2D0, 0.33D0,
01230 8 0.66D0, 0.7D0, 0.5D0, 1000D0, 0.16D0,
01231 9 1.0D0,0.40D0,5.0D0,1.0D0,0D0,3.0D0,1.0D0,0.75D0,1.0D0,5.0D0/
01232 DATA (PARP(I),I=101,200)/
01233 & 0.5D0, 0.28D0, 1.0D0, 0.8D0, 6*0D0,
01234 1 2.0D0, 3*0D0, 1.5D0, 0.5D0, 0.6D0, 2.5D0, 2.0D0, 1.0D0,
01235 2 1.0D0, 0.4D0, 8*0D0,
01236 3 0.01D0, 8*0D0, 0D0,
01237 4 0.33333D0, 82D0, 1.33333D0, 4D0, 1D0,
01238 4 1D0, .0182D0, 1D0, 0D0, 1.33333D0,
01239 5 0D0, 0D0, 0D0, 0D0, 6*0D0,
01240 6 2.20D0, 23.6D0, 18.4D0, 11.5D0, 0.5D0, 0D0, 0D0, 0D0, 2*0D0,
01241 7 0D0, 0D0, 0D0, 1.0D0, 6*0D0,
01242 8 0.1D0, 0.01D0, 0.01D0, 0.01D0, 0.1D0, 0.01D0, 0.01D0, 0.01D0,
01243 8 0.3D0, 0.64D0,
01244 9 0.64D0, 5.0D0, 8*0D0/
01245 DATA MSTI/200*0/
01246 DATA PARI/200*0D0/
01247 DATA MINT/400*0/
01248 DATA VINT/400*0D0/
01249
01250
01251 DATA (ISET(I),I=1,100)/
01252 & 1, 1, 1, -1, 3, -1, -1, 3, -2, 2,
01253 1 2, 2, 2, 2, 2, 2, -1, 2, 2, 2,
01254 2 -1, 2, 2, 2, 2, 2, -1, 2, 2, 2,
01255 3 2, 2, 2, 2, 2, 2, -1, -1, -1, -1,
01256 4 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01257 5 -1, -1, 2, 2, -1, -1, -1, 2, -1, -1,
01258 6 -1, -1, -1, -1, -1, -1, -1, 2, 2, 2,
01259 7 4, 4, 4, -1, -1, 4, 4, -1, -1, 2,
01260 8 2, 2, 2, 2, 2, 2, 2, 2, 2, -2,
01261 9 0, 0, 0, 0, 0, 9, -2, -2, 8, -2/
01262 DATA (ISET(I),I=101,200)/
01263 & -1, 1, 1, 1, 1, 2, 2, 2, -2, 2,
01264 1 2, 2, 2, 2, 2, -1, -1, -1, -2, -2,
01265 2 5, 5, 5, 5, -2, -2, -2, -2, -2, -2,
01266 3 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01267 4 1, 1, 1, 1, 1, 1, 1, 1, 1, -2,
01268 5 1, 1, 1, -2, -2, 1, 1, 1, -2, -2,
01269 6 2, 2, 2, 2, 2, 2, 2, 2, 2, -2,
01270 7 2, 2, 5, 5, -2, 2, 2, 5, 5, -2,
01271 8 5, 5, -2, -2, -2, 5, 5, -2, -2, -2,
01272 9 1, 1, 1, 2, 2, -2, -2, -2, -2, -2/
01273 DATA (ISET(I),I=201,300)/
01274 & 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01275 1 2, 2, 2, 2, -2, 2, 2, 2, 2, 2,
01276 2 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01277 3 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01278 4 2, 2, 2, 2, -1, 2, 2, 2, 2, 2,
01279 5 2, 2, 2, 2, -1, 2, -1, 2, 2, -2,
01280 6 2, 2, 2, 2, 2, -1, -1, -1, -1, -1,
01281 7 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01282 8 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01283 9 2, 2, 2, 2, 2, 2, 2, 2, 2, 2/
01284 DATA (ISET(I),I=301,500)/
01285 & 2, 39*-2,
01286 4 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
01287 5 5, 5, -1, -1, -1, -1, -1, -1, -1, -1,
01288 6 2, 2, 2, 2, 2, 2, 2, 2, -1, 2,
01289 7 2, 2, 2, 2, 2, 2, 2, -1, -1, -1,
01290 8 120*-2/
01291 DATA ((KFPR(I,J),J=1,2),I=1,50)/
01292 & 23, 0, 24, 0, 25, 0, 24, 0, 25, 0,
01293 & 24, 0, 23, 0, 25, 0, 0, 0, 0, 0,
01294 1 0, 0, 0, 0, 21, 21, 21, 22, 21, 23,
01295 1 21, 24, 21, 25, 22, 22, 22, 23, 22, 24,
01296 2 22, 25, 23, 23, 23, 24, 23, 25, 24, 24,
01297 2 24, 25, 25, 25, 0, 21, 0, 22, 0, 23,
01298 3 0, 24, 0, 25, 0, 21, 0, 22, 0, 23,
01299 3 0, 24, 0, 25, 0, 21, 0, 22, 0, 23,
01300 4 0, 24, 0, 25, 0, 21, 0, 22, 0, 23,
01301 4 0, 24, 0, 25, 0, 21, 0, 22, 0, 23/
01302 DATA ((KFPR(I,J),J=1,2),I=51,100)/
01303 5 0, 24, 0, 25, 0, 0, 0, 0, 0, 0,
01304 5 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01305 6 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01306 6 0, 0, 0, 0, 21, 21, 24, 24, 23, 24,
01307 7 23, 23, 24, 24, 23, 24, 23, 25, 22, 22,
01308 7 23, 23, 24, 24, 24, 25, 25, 25, 0, 211,
01309 8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01310 8 443, 21,10441, 21,20443, 21, 445, 21, 0, 0,
01311 9 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01312 9 0, 0, 0, 0, 0, 0, 0, 0, 0, 0/
01313 DATA ((KFPR(I,J),J=1,2),I=101,150)/
01314 & 23, 0, 25, 0, 25, 0,10441, 0, 445, 0,
01315 & 443, 22, 443, 21, 443, 22, 0, 0, 22, 25,
01316 1 21, 25, 0, 25, 21, 25, 22, 22, 21, 22,
01317 1 22, 23, 23, 23, 24, 24, 0, 0, 0, 0,
01318 2 25, 6, 25, 6, 25, 0, 25, 0, 0, 0,
01319 2 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01320 3 0, 21, 0, 21, 0, 22, 0, 22, 0, 0,
01321 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01322 4 32, 0, 34, 0, 37, 0, 40, 0, 39, 0,
01323 4 4000011, 0, 4000001, 0, 4000002, 0, 38, 0, 0, 0/
01324 DATA ((KFPR(I,J),J=1,2),I=151,200)/
01325 5 35, 0, 35, 0, 35, 0, 0, 0, 0, 0,
01326 5 36, 0, 36, 0, 36, 0, 0, 0, 0, 0,
01327 6 6, 37, 39, 0, 39, 39, 39, 39, 11, 0,
01328 6 11, 0, 0, 4000001, 0, 4000002, 0, 4000011, 0, 0,
01329 7 23, 35, 24, 35, 35, 0, 35, 0, 0, 0,
01330 7 23, 36, 24, 36, 36, 0, 36, 0, 0, 0,
01331 8 35, 6, 35, 6, 0, 0, 0, 0, 0, 0,
01332 8 36, 6, 36, 6, 0, 0, 0, 0, 0, 0,
01333 9 54, 0, 55, 0, 56, 0, 11, 0, 11, 0,
01334 9 0, 0, 0, 0, 0, 0, 0, 0, 0, 0/
01335 DATA ((KFPR(I,J),J=1,2),I=201,250)/
01336 & 1000011, 1000011, 2000011, 2000011, 1000011,
01337 & 2000011, 1000013, 1000013, 2000013, 2000013,
01338 & 1000013, 2000013, 1000015, 1000015, 2000015,
01339 & 2000015, 1000015, 2000015, 1000011, 1000012,
01340 1 1000015, 1000016, 2000015, 1000016, 1000012,
01341 1 1000012, 1000016, 1000016, 0, 0,
01342 1 1000022, 1000022, 1000023, 1000023, 1000025,
01343 1 1000025, 1000035, 1000035, 1000022, 1000023,
01344 2 1000022, 1000025, 1000022, 1000035, 1000023,
01345 2 1000025, 1000023, 1000035, 1000025, 1000035,
01346 2 1000024, 1000024, 1000037, 1000037, 1000024,
01347 2 1000037, 1000022, 1000024, 1000023, 1000024,
01348 3 1000025, 1000024, 1000035, 1000024, 1000022,
01349 3 1000037, 1000023, 1000037, 1000025, 1000037,
01350 3 1000035, 1000037, 1000021, 1000022, 1000021,
01351 3 1000023, 1000021, 1000025, 1000021, 1000035,
01352 4 1000021, 1000024, 1000021, 1000037, 1000021,
01353 4 1000021, 1000021, 1000021, 0, 0,
01354 4 1000002, 1000022, 2000002, 1000022, 1000002,
01355 4 1000023, 2000002, 1000023, 1000002, 1000025/
01356 DATA ((KFPR(I,J),J=1,2),I=251,300)/
01357 5 2000002, 1000025, 1000002, 1000035, 2000002,
01358 5 1000035, 1000001, 1000024, 2000005, 1000024,
01359 5 1000001, 1000037, 2000005, 1000037, 1000002,
01360 5 1000021, 2000002, 1000021, 0, 0,
01361 6 1000006, 1000006, 2000006, 2000006, 1000006,
01362 6 2000006, 1000006, 1000006, 2000006, 2000006,
01363 6 0, 0, 0, 0, 0,
01364 6 0, 0, 0, 0, 0,
01365 7 1000002, 1000002, 2000002, 2000002, 1000002,
01366 7 2000002, 1000002, 1000002, 2000002, 2000002,
01367 7 1000002, 2000002, 1000002, 1000002, 2000002,
01368 7 2000002, 1000002, 1000002, 2000002, 2000002,
01369 8 1000005, 1000002, 2000005, 2000002, 1000005,
01370 8 2000002, 1000005, 1000002, 2000005, 2000002,
01371 8 1000005, 2000002, 1000005, 1000005, 2000005,
01372 8 2000005, 1000005, 1000005, 2000005, 2000005,
01373 9 1000005, 1000005, 2000005, 2000005, 1000005,
01374 9 2000005, 1000005, 1000021, 2000005, 1000021,
01375 9 1000005, 2000005, 37, 25, 37,
01376 9 35, 36, 25, 36, 35/
01377 DATA ((KFPR(I,J),J=1,2),I=301,500)/
01378 & 37, 37, 78*0,
01379 4 61, 0, 62, 0, 61,
01380 4 11, 62, 11, 61, 13,
01381 4 62, 13, 61, 15, 62,
01382 4 15, 61, 61, 62, 62,
01383 5 61, 0, 62, 0, 0,
01384 5 0, 0, 0, 0, 0,
01385 5 0, 0, 0, 0, 0,
01386 5 0, 0, 0, 0, 0,
01387 6 24, 24, 24, 52, 52,
01388 6 52, 22, 51, 22, 53,
01389 6 23, 51, 23, 53, 24,
01390 6 52, 0, 0, 24, 23,
01391 7 24, 51, 52, 23, 52,
01392 7 51, 22, 52, 23, 52,
01393 7 24, 51, 24, 53, 0,
01394 7 0, 0, 0, 0, 0,
01395 8 240*0/
01396 DATA COEF/10000*0D0/
01397 DATA (((ICOL(I,J,K),K=1,2),J=1,4),I=1,40)/
01398 &4,0,3,0,2,0,1,0,3,0,4,0,1,0,2,0,2,0,0,1,4,0,0,3,3,0,0,4,1,0,0,2,
01399 &3,0,0,4,1,4,3,2,4,0,0,3,4,2,1,3,2,0,4,1,4,0,2,3,4,0,3,4,2,0,1,2,
01400 &3,2,1,0,1,4,3,0,4,3,3,0,2,1,1,0,3,2,1,4,1,0,0,2,2,4,3,1,2,0,0,1,
01401 &3,2,1,4,1,4,3,2,4,2,1,3,4,2,1,3,3,4,4,3,1,2,2,1,2,0,3,1,2,0,0,0,
01402 &4,2,1,0,0,0,1,0,3,0,0,3,1,2,0,0,4,0,0,4,0,0,1,2,2,0,0,1,4,4,3,3,
01403 &2,2,1,1,4,4,3,3,3,3,4,4,1,1,2,2,3,2,1,3,1,2,0,0,4,2,1,4,0,0,1,2,
01404 &4,0,0,0,4,0,1,3,0,0,3,0,2,4,3,0,3,4,0,0,1,0,0,1,0,0,3,4,2,0,0,2,
01405 &3,0,0,0,1,0,0,0,0,0,3,0,2,0,0,0,2,0,3,1,2,0,0,0,3,2,1,0,1,0,0,0,
01406 &4,4,3,3,2,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
01407 &0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0/
01408
01409
01410 DATA (MWID(I) ,I= 1, 500)/5*0,3*1,8*0,1,5*0,3*1,6*0,1,0,7*1,
01411 &10*0,6*1,4*0,3*1,238*0,19*2,0,7*2,0,2,0,2,0,4*1,163*0/
01412
01413
01414 DATA PROC(0)/ 'All included subprocesses '/
01415 DATA (PROC(I),I=1,20)/
01416 &'f + fbar -> gamma*/Z0 ', 'f + fbar'' -> W+/- ',
01417 &'f + fbar -> h0 ', 'gamma + W+/- -> W+/- ',
01418 &'Z0 + Z0 -> h0 ', 'Z0 + W+/- -> W+/- ',
01419 &' ', 'W+ + W- -> h0 ',
01420 &' ', 'f + f'' -> f + f'' (QFD) ',
01421 1'f + f'' -> f + f'' (QCD) ','f + fbar -> f'' + fbar'' ',
01422 1'f + fbar -> g + g ', 'f + fbar -> g + gamma ',
01423 1'f + fbar -> g + Z0 ', 'f + fbar'' -> g + W+/- ',
01424 1'f + fbar -> g + h0 ', 'f + fbar -> gamma + gamma ',
01425 1'f + fbar -> gamma + Z0 ', 'f + fbar'' -> gamma + W+/- '/
01426 DATA (PROC(I),I=21,40)/
01427 2'f + fbar -> gamma + h0 ', 'f + fbar -> Z0 + Z0 ',
01428 2'f + fbar'' -> Z0 + W+/- ', 'f + fbar -> Z0 + h0 ',
01429 2'f + fbar -> W+ + W- ', 'f + fbar'' -> W+/- + h0 ',
01430 2'f + fbar -> h0 + h0 ', 'f + g -> f + g ',
01431 2'f + g -> f + gamma ', 'f + g -> f + Z0 ',
01432 3'f + g -> f'' + W+/- ', 'f + g -> f + h0 ',
01433 3'f + gamma -> f + g ', 'f + gamma -> f + gamma ',
01434 3'f + gamma -> f + Z0 ', 'f + gamma -> f'' + W+/- ',
01435 3'f + gamma -> f + h0 ', 'f + Z0 -> f + g ',
01436 3'f + Z0 -> f + gamma ', 'f + Z0 -> f + Z0 '/
01437 DATA (PROC(I),I=41,60)/
01438 4'f + Z0 -> f'' + W+/- ', 'f + Z0 -> f + h0 ',
01439 4'f + W+/- -> f'' + g ', 'f + W+/- -> f'' + gamma ',
01440 4'f + W+/- -> f'' + Z0 ', 'f + W+/- -> f'' + W+/- ',
01441 4'f + W+/- -> f'' + h0 ', 'f + h0 -> f + g ',
01442 4'f + h0 -> f + gamma ', 'f + h0 -> f + Z0 ',
01443 5'f + h0 -> f'' + W+/- ', 'f + h0 -> f + h0 ',
01444 5'g + g -> f + fbar ', 'g + gamma -> f + fbar ',
01445 5'g + Z0 -> f + fbar ', 'g + W+/- -> f + fbar'' ',
01446 5'g + h0 -> f + fbar ', 'gamma + gamma -> f + fbar ',
01447 5'gamma + Z0 -> f + fbar ', 'gamma + W+/- -> f + fbar'' '/
01448 DATA (PROC(I),I=61,80)/
01449 6'gamma + h0 -> f + fbar ', 'Z0 + Z0 -> f + fbar ',
01450 6'Z0 + W+/- -> f + fbar'' ', 'Z0 + h0 -> f + fbar ',
01451 6'W+ + W- -> f + fbar ', 'W+/- + h0 -> f + fbar'' ',
01452 6'h0 + h0 -> f + fbar ', 'g + g -> g + g ',
01453 6'gamma + gamma -> W+ + W- ', 'gamma + W+/- -> Z0 + W+/- ',
01454 7'Z0 + Z0 -> Z0 + Z0 ', 'Z0 + Z0 -> W+ + W- ',
01455 7'Z0 + W+/- -> Z0 + W+/- ', 'Z0 + Z0 -> Z0 + h0 ',
01456 7'W+ + W- -> gamma + gamma ', 'W+ + W- -> Z0 + Z0 ',
01457 7'W+/- + W+/- -> W+/- + W+/- ', 'W+/- + h0 -> W+/- + h0 ',
01458 7'h0 + h0 -> h0 + h0 ', 'q + gamma -> q'' + pi+/- '/
01459 DATA (PROC(I),I=81,100)/
01460 8'q + qbar -> Q + Qbar, mass ', 'g + g -> Q + Qbar, massive ',
01461 8'f + q -> f'' + Q, massive ', 'g + gamma -> Q + Qbar, mass ',
01462 8'gamma + gamma -> F + Fbar, m', 'g + g -> J/Psi + g ',
01463 8'g + g -> chi_0c + g ', 'g + g -> chi_1c + g ',
01464 8'g + g -> chi_2c + g ', ' ',
01465 9'Elastic scattering ', 'Single diffractive (XB) ',
01466 9'Single diffractive (AX) ', 'Double diffractive ',
01467 9'Low-pT scattering ', 'Semihard QCD 2 -> 2 ',
01468 9' ', ' ',
01469 9'q + gamma* -> q ', ' '/
01470 DATA (PROC(I),I=101,120)/
01471 &'g + g -> gamma*/Z0 ', 'g + g -> h0 ',
01472 &'gamma + gamma -> h0 ', 'g + g -> chi_0c ',
01473 &'g + g -> chi_2c ', 'g + g -> J/Psi + gamma ',
01474 &'gamma + g -> J/Psi + g ', 'gamma+gamma -> J/Psi + gamma',
01475 &' ', 'f + fbar -> gamma + h0 ',
01476 1'f + fbar -> g + h0 ', 'q + g -> q + h0 ',
01477 1'g + g -> g + h0 ', 'g + g -> gamma + gamma ',
01478 1'g + g -> g + gamma ', 'g + g -> gamma + Z0 ',
01479 1'g + g -> Z0 + Z0 ', 'g + g -> W+ + W- ',
01480 1' ', ' '/
01481 DATA (PROC(I),I=121,140)/
01482 2'g + g -> Q + Qbar + h0 ', 'q + qbar -> Q + Qbar + h0 ',
01483 2'f + f'' -> f + f'' + h0 ',
01484 2'f + f'' -> f" + f"'' + h0 ',
01485 2' ', ' ',
01486 2' ', ' ',
01487 2' ', ' ',
01488 3'f + gamma*_T -> f + g ', 'f + gamma*_L -> f + g ',
01489 3'f + gamma*_T -> f + gamma ', 'f + gamma*_L -> f + gamma ',
01490 3'g + gamma*_T -> f + fbar ', 'g + gamma*_L -> f + fbar ',
01491 3'gamma*_T+gamma*_T -> f+fbar ', 'gamma*_T+gamma*_L -> f+fbar ',
01492 3'gamma*_L+gamma*_T -> f+fbar ', 'gamma*_L+gamma*_L -> f+fbar '/
01493 DATA (PROC(I),I=141,160)/
01494 4'f + fbar -> gamma*/Z0/Z''0 ', 'f + fbar'' -> W''+/- ',
01495 4'f + fbar'' -> H+/- ', 'f + fbar'' -> R ',
01496 4'q + l -> LQ ', 'e + gamma -> e* ',
01497 4'd + g -> d* ', 'u + g -> u* ',
01498 4'g + g -> eta_techni ', ' ',
01499 5'f + fbar -> H0 ', 'g + g -> H0 ',
01500 5'gamma + gamma -> H0 ', ' ',
01501 5' ', 'f + fbar -> A0 ',
01502 5'g + g -> A0 ', 'gamma + gamma -> A0 ',
01503 5' ', ' '/
01504 DATA (PROC(I),I=161,180)/
01505 6'f + g -> f'' + H+/- ', 'q + g -> LQ + lbar ',
01506 6'g + g -> LQ + LQbar ', 'q + qbar -> LQ + LQbar ',
01507 6'f + fbar -> f'' + fbar'' (g/Z)',
01508 6'f +fbar'' -> f" + fbar"'' (W) ',
01509 6'q + q'' -> q" + d* ', 'q + q'' -> q" + u* ',
01510 6'q + qbar -> e + e* ', ' ',
01511 7'f + fbar -> Z0 + H0 ', 'f + fbar'' -> W+/- + H0 ',
01512 7'f + f'' -> f + f'' + H0 ',
01513 7'f + f'' -> f" + f"'' + H0 ',
01514 7' ', 'f + fbar -> Z0 + A0 ',
01515 7'f + fbar'' -> W+/- + A0 ',
01516 7'f + f'' -> f + f'' + A0 ',
01517 7'f + f'' -> f" + f"'' + A0 ',
01518 7' '/
01519 DATA (PROC(I),I=181,200)/
01520 8'g + g -> Q + Qbar + H0 ', 'q + qbar -> Q + Qbar + H0 ',
01521 8' ', ' ',
01522 8' ', 'g + g -> Q + Qbar + A0 ',
01523 8'q + qbar -> Q + Qbar + A0 ', ' ',
01524 8' ', ' ',
01525 9'f + fbar -> rho_tech0 ', 'f + f'' -> rho_tech+/- ',
01526 9'f + fbar -> omega_tech0 ', 'f+fbar -> f''+fbar'' (ETC) ',
01527 9'f+fbar'' -> f"+fbar"'' (ETC)',' ',
01528 9' ', ' ',
01529 9' ', ' '/
01530 DATA (PROC(I),I=201,220)/
01531 &'f + fbar -> ~e_L + ~e_Lbar ', 'f + fbar -> ~e_R + ~e_Rbar ',
01532 &'f + fbar -> ~e_R + ~e_Lbar ', 'f + fbar -> ~mu_L + ~mu_Lbar',
01533 &'f + fbar -> ~mu_R + ~mu_Rbar', 'f + fbar -> ~mu_L + ~mu_Rbar',
01534 &'f+fbar -> ~tau_1 + ~tau_1bar', 'f+fbar -> ~tau_2 + ~tau_2bar',
01535 &'f+fbar -> ~tau_1 + ~tau_2bar', 'q + qbar'' -> ~l_L + ~nulbar ',
01536 1'q+qbar''-> ~tau_1 + ~nutaubar', 'q+qbar''-> ~tau_2 + ~nutaubar',
01537 1'f + fbar -> ~nul + ~nulbar ', 'f+fbar -> ~nutau + ~nutaubar',
01538 1' ', 'f + fbar -> ~chi1 + ~chi1 ',
01539 1'f + fbar -> ~chi2 + ~chi2 ', 'f + fbar -> ~chi3 + ~chi3 ',
01540 1'f + fbar -> ~chi4 + ~chi4 ', 'f + fbar -> ~chi1 + ~chi2 '/
01541 DATA (PROC(I),I=221,240)/
01542 2'f + fbar -> ~chi1 + ~chi3 ', 'f + fbar -> ~chi1 + ~chi4 ',
01543 2'f + fbar -> ~chi2 + ~chi3 ', 'f + fbar -> ~chi2 + ~chi4 ',
01544 2'f + fbar -> ~chi3 + ~chi4 ', 'f+fbar -> ~chi+-1 + ~chi-+1 ',
01545 2'f+fbar -> ~chi+-2 + ~chi-+2 ', 'f+fbar -> ~chi+-1 + ~chi-+2 ',
01546 2'q + qbar'' -> ~chi1 + ~chi+-1', 'q + qbar'' -> ~chi2 + ~chi+-1',
01547 3'q + qbar'' -> ~chi3 + ~chi+-1', 'q + qbar'' -> ~chi4 + ~chi+-1',
01548 3'q + qbar'' -> ~chi1 + ~chi+-2', 'q + qbar'' -> ~chi2 + ~chi+-2',
01549 3'q + qbar'' -> ~chi3 + ~chi+-2', 'q + qbar'' -> ~chi4 + ~chi+-2',
01550 3'q + qbar -> ~chi1 + ~g ', 'q + qbar -> ~chi2 + ~g ',
01551 3'q + qbar -> ~chi3 + ~g ', 'q + qbar -> ~chi4 + ~g '/
01552 DATA (PROC(I),I=241,260)/
01553 4'q + qbar'' -> ~chi+-1 + ~g ', 'q + qbar'' -> ~chi+-2 + ~g ',
01554 4'q + qbar -> ~g + ~g ', 'g + g -> ~g + ~g ',
01555 4' ', 'qj + g -> ~qj_L + ~chi1 ',
01556 4'qj + g -> ~qj_R + ~chi1 ', 'qj + g -> ~qj_L + ~chi2 ',
01557 4'qj + g -> ~qj_R + ~chi2 ', 'qj + g -> ~qj_L + ~chi3 ',
01558 5'qj + g -> ~qj_R + ~chi3 ', 'qj + g -> ~qj_L + ~chi4 ',
01559 5'qj + g -> ~qj_R + ~chi4 ', 'qj + g -> ~qk_L + ~chi+-1 ',
01560 5'qj + g -> ~qk_R + ~chi+-1 ', 'qj + g -> ~qk_L + ~chi+-2 ',
01561 5'qj + g -> ~qk_R + ~chi+-2 ', 'qj + g -> ~qj_L + ~g ',
01562 5'qj + g -> ~qj_R + ~g ', ' '/
01563 DATA (PROC(I),I=261,300)/
01564 6'f + fbar -> ~t_1 + ~t_1bar ', 'f + fbar -> ~t_2 + ~t_2bar ',
01565 6'f + fbar -> ~t_1 + ~t_2bar ', 'g + g -> ~t_1 + ~t_1bar ',
01566 6'g + g -> ~t_2 + ~t_2bar ', ' ',
01567 6' ', ' ',
01568 6' ', ' ',
01569 7'qi + qj -> ~qi_L + ~qj_L ', 'qi + qj -> ~qi_R + ~qj_R ',
01570 7'qi + qj -> ~qi_L + ~qj_R ', 'qi+qjbar -> ~qi_L + ~qj_Lbar',
01571 7'qi+qjbar -> ~qi_R + ~qj_Rbar', 'qi+qjbar -> ~qi_L + ~qj_Rbar',
01572 7'f + fbar -> ~qi_L + ~qi_Lbar', 'f + fbar -> ~qi_R + ~qi_Rbar',
01573 7'g + g -> ~qi_L + ~qi_Lbar ', 'g + g -> ~qi_R + ~qi_Rbar ',
01574 8'b + qj -> ~b_1 + ~qj_L ', 'b + qj -> ~b_2 + ~qj_R ',
01575 8'b + qj -> ~b_1 + ~qj_R ', 'b + qjbar -> ~b_1 + ~qj_Lbar',
01576 8'b + qjbar -> ~b_2 + ~qj_Rbar', 'b + qjbar -> ~b_1 + ~qj_Rbar',
01577 8'f + fbar -> ~b_1 + ~b_1bar ', 'f + fbar -> ~b_2 + ~b_2bar ',
01578 8'g + g -> ~b_1 + ~b_1bar ', 'g + g -> ~b_2 + ~b_2bar ',
01579 9'b + b -> ~b_1 + ~b_1 ', 'b + b -> ~b_2 + ~b_2 ',
01580 9'b + b -> ~b_1 + ~b_2 ', 'b + g -> ~b_1 + ~g ',
01581 9'b + g -> ~b_2 + ~g ', 'b + bbar -> ~b_1 + ~b_2bar ',
01582 9'f + fbar'' -> H+/- + h0 ', 'f + fbar -> H+/- + H0 ',
01583 9'f + fbar -> A0 + h0 ', 'f + fbar -> A0 + H0 '/
01584 DATA (PROC(I),I=301,340)/
01585 &'f + fbar -> H+ + H- ', 39*' '/
01586 DATA (PROC(I),I=341,500)/
01587 4'l + l -> H_L++/-- ', 'l + l -> H_R++/-- ',
01588 4'l + gamma -> H_L++/-- e-/+ ', 'l + gamma -> H_R++/-- e-/+ ',
01589 4'l + gamma -> H_L++/-- mu-/+ ', 'l + gamma -> H_R++/-- mu-/+ ',
01590 4'l + gamma -> H_L++/-- tau-/+', 'l + gamma -> H_R++/-- tau-/+',
01591 4'f + fbar -> H_L++ + H_L-- ', 'f + fbar -> H_R++ + H_R-- ',
01592 5'f + f -> f'' + f'' + H_L++/-- ',
01593 5'f + f -> f'' + f'' + H_R++/-- ', 7*' ',
01594 6' ', 'f + fbar -> W_L+ W_L- ',
01595 6'f + fbar -> W_L+/- pi_T-/+ ', 'f + fbar -> pi_T+ pi_T- ',
01596 6'f + fbar -> gamma pi_T0 ', 'f + fbar -> gamma pi_T0'' ',
01597 6'f + fbar -> Z0 pi_T0 ', 'f + fbar -> Z0 pi_T0'' ',
01598 6'f + fbar -> W+/- pi_T-/+ ', ' ',
01599 7'f + fbar'' -> W_L+/- Z_L0 ', 'f + fbar'' -> W_L+/- pi_T0 ',
01600 7'f + fbar'' -> pi_T+/- Z_L0 ', 'f + fbar'' -> pi_T+/- pi_T0 ',
01601 7'f + fbar'' -> gamma pi_T+/- ', 'f + fbar'' -> Z0 pi_T+/- ',
01602 7'f + fbar'' -> W+/- pi_T0 ',
01603 7'f + fbar'' -> W+/- pi_T0'' ',
01604 7' ',' ',
01605 8 121*' '/
01606
01607
01608 DATA SIGT/294*0D0/
01609
01610
01611 DATA IMSS/0,
01612 & 0, 0, 0, 1, 0, 0, 0, 1, 0, 0,
01613 1 89*0/
01614 DATA RMSS/0D0,
01615 & 80D0,160D0,500D0,800D0,2D0,250D0,200D0,800D0,700D0,800D0,
01616 1 700D0,500D0,250D0,200D0,800D0,400D0,0D0,0.1D0,850D0,0.041D0,
01617 2 1D0,800D0,1D4,1D4,1D4,0D0,0D0,0D0,24D17,0D0,
01618 3 69*0D0/
01619
01620
01621 DATA IHIST/1000,20000,55,1/
01622 DATA INDX/1000*0/
01623
01624 END
01625
01626
01627
01628
01629
01630
01631
01632 SUBROUTINE PYTEST(MTEST)
01633
01634
01635 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
01636 IMPLICIT INTEGER(I-N)
01637 INTEGER PYK,PYCHGE,PYCOMP
01638
01639 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
01640 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
01641 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
01642 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
01643 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
01644 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
01645 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYSUBS/,/PYPARS/
01646
01647 DIMENSION PSUM(5),PINI(6),PFIN(6)
01648
01649
01650 MSTJ1=MSTJ(1)
01651 MSTJ3=MSTJ(3)
01652 MSTJ11=MSTJ(11)
01653 MSTJ42=MSTJ(42)
01654 MSTJ43=MSTJ(43)
01655 MSTJ44=MSTJ(44)
01656 PARJ17=PARJ(17)
01657 PARJ22=PARJ(22)
01658 PARJ43=PARJ(43)
01659 PARJ54=PARJ(54)
01660 MST101=MSTJ(101)
01661 MST104=MSTJ(104)
01662 MST105=MSTJ(105)
01663 MST107=MSTJ(107)
01664 MST116=MSTJ(116)
01665
01666
01667 IF(MTEST.GE.1) CALL PYTABU(20)
01668 NERR=0
01669 DO 180 IEV=1,500
01670
01671
01672 MSTJ(1)=1
01673 MSTJ(3)=0
01674 MSTJ(11)=1
01675 MSTJ(42)=2
01676 MSTJ(43)=4
01677 MSTJ(44)=2
01678 PARJ(17)=0.1D0
01679 PARJ(22)=1.5D0
01680 PARJ(43)=1D0
01681 PARJ(54)=-0.05D0
01682 MSTJ(101)=5
01683 MSTJ(104)=5
01684 MSTJ(105)=0
01685 MSTJ(107)=1
01686 IF(IEV.EQ.301.OR.IEV.EQ.351.OR.IEV.EQ.401) MSTJ(116)=3
01687
01688
01689 IF(IEV.LE.50) THEN
01690 ITY=(IEV+9)/10
01691 MSTJ(3)=-1
01692 IF(ITY.EQ.3.OR.ITY.EQ.4) MSTJ(11)=2
01693 IF(ITY.EQ.1) CALL PY1ENT(1,1,15D0,0D0,0D0)
01694 IF(ITY.EQ.2) CALL PY1ENT(1,3101,15D0,0D0,0D0)
01695 IF(ITY.EQ.3) CALL PY1ENT(1,-2203,15D0,0D0,0D0)
01696 IF(ITY.EQ.4) CALL PY1ENT(1,-4,30D0,0D0,0D0)
01697 IF(ITY.EQ.5) CALL PY1ENT(1,21,15D0,0D0,0D0)
01698
01699
01700 ELSEIF(IEV.LE.130) THEN
01701 ITY=(IEV-41)/10
01702 IF(ITY.EQ.1) CALL PY2ENT(1,1,-1,40D0)
01703 IF(ITY.EQ.2) CALL PY2ENT(1,4,-4,30D0)
01704 IF(ITY.EQ.3) CALL PY2ENT(1,2,2103,100D0)
01705 IF(ITY.EQ.4) CALL PY2ENT(1,21,21,40D0)
01706 IF(ITY.EQ.5) CALL PY3ENT(1,2101,21,-3203,30D0,0.6D0,0.8D0)
01707 IF(ITY.EQ.6) CALL PY3ENT(1,5,21,-5,40D0,0.9D0,0.8D0)
01708 IF(ITY.EQ.7) CALL PY3ENT(1,21,21,21,60D0,0.7D0,0.5D0)
01709 IF(ITY.EQ.8) CALL PY4ENT(1,2,21,21,-2,40D0,
01710 & 0.4D0,0.64D0,0.6D0,0.12D0,0.2D0)
01711
01712
01713 ELSEIF(IEV.LE.200) THEN
01714 ITY=1+(IEV-131)/16
01715 MSTJ(2)=1+MOD(IEV-131,4)
01716 MSTJ(3)=1+MOD((IEV-131)/4,4)
01717 IF(ITY.EQ.1) CALL PY2ENT(1,4,-5,40D0)
01718 IF(ITY.EQ.2) CALL PY3ENT(1,3,21,-3,40D0,0.9D0,0.4D0)
01719 IF(ITY.EQ.3) CALL PY4ENT(1,2,21,21,-2,40D0,
01720 & 0.4D0,0.64D0,0.6D0,0.12D0,0.2D0)
01721 IF(ITY.GE.4) CALL PY4ENT(1,2,-3,3,-2,40D0,
01722 & 0.4D0,0.64D0,0.6D0,0.12D0,0.2D0)
01723
01724
01725 ELSEIF(IEV.LE.300) THEN
01726 100 DO 110 J=1,5
01727 PSUM(J)=0D0
01728 110 CONTINUE
01729 NJET=2D0+6D0*PYR(0)
01730 DO 130 I=1,NJET
01731 KFL=21
01732 IF(I.EQ.1) KFL=INT(1D0+4D0*PYR(0))
01733 IF(I.EQ.NJET) KFL=-INT(1D0+4D0*PYR(0))
01734 EJET=5D0+20D0*PYR(0)
01735 THETA=ACOS(2D0*PYR(0)-1D0)
01736 PHI=6.2832D0*PYR(0)
01737 IF(I.LT.NJET) CALL PY1ENT(-I,KFL,EJET,THETA,PHI)
01738 IF(I.EQ.NJET) CALL PY1ENT(I,KFL,EJET,THETA,PHI)
01739 IF(I.EQ.1.OR.I.EQ.NJET) MSTJ(93)=1
01740 IF(I.EQ.1.OR.I.EQ.NJET) PSUM(5)=PSUM(5)+PYMASS(KFL)
01741 DO 120 J=1,4
01742 PSUM(J)=PSUM(J)+P(I,J)
01743 120 CONTINUE
01744 130 CONTINUE
01745 IF(PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-PSUM(3)**2.LT.
01746 & (PSUM(5)+PARJ(32))**2) GOTO 100
01747
01748
01749 ELSEIF(IEV.LE.350) THEN
01750 MSTJ(101)=2
01751 CALL PYEEVT(0,40D0)
01752
01753
01754 ELSEIF(IEV.LE.400) THEN
01755 MSTJ(42)=1+MOD(IEV,2)
01756 MSTJ(43)=1+MOD(IEV/2,4)
01757 MSTJ(44)=MOD(IEV/8,3)
01758 CALL PYEEVT(0,90D0)
01759
01760
01761 ELSEIF(IEV.LE.450) THEN
01762 CALL PYEEVT(0,500D0)
01763
01764
01765 ELSE
01766 CALL PYONIA(5,9.46D0)
01767 ENDIF
01768
01769
01770 DO 140 J=1,4
01771 PINI(J)=PYP(0,J)
01772 140 CONTINUE
01773 PINI(6)=PYP(0,6)
01774 CALL PYEXEC
01775 DO 150 J=1,4
01776 PFIN(J)=PYP(0,J)
01777 150 CONTINUE
01778 PFIN(6)=PYP(0,6)
01779
01780
01781
01782 MERR=0
01783 IF(IEV.LE.50) THEN
01784 IF((PFIN(1)-PINI(1))**2+(PFIN(2)-PINI(2))**2.GE.10D0)
01785 & MERR=MERR+1
01786 EPZREM=PINI(4)+PINI(3)-PFIN(4)-PFIN(3)
01787 IF(EPZREM.LT.0D0.OR.EPZREM.GT.2D0*PARJ(31)) MERR=MERR+1
01788 IF(ABS(PFIN(6)-PINI(6)).GT.2.1D0) MERR=MERR+1
01789 ELSE
01790 DO 160 J=1,4
01791 IF(ABS(PFIN(J)-PINI(J)).GT.0.0001D0*PINI(4)) MERR=MERR+1
01792 160 CONTINUE
01793 IF(ABS(PFIN(6)-PINI(6)).GT.0.1D0) MERR=MERR+1
01794 ENDIF
01795 IF(MERR.NE.0) WRITE(MSTU(11),5000) (PINI(J),J=1,4),PINI(6),
01796 & (PFIN(J),J=1,4),PFIN(6)
01797
01798
01799
01800 DO 170 I=1,N
01801 IF(K(I,1).GT.20) GOTO 170
01802 IF(PYCOMP(K(I,2)).EQ.0) THEN
01803 WRITE(MSTU(11),5100) I
01804 MERR=MERR+1
01805 ENDIF
01806 PD=P(I,4)**2-P(I,1)**2-P(I,2)**2-P(I,3)**2-P(I,5)**2
01807 IF(ABS(PD).GT.MAX(0.1D0,0.001D0*P(I,4)**2).OR.P(I,4).LT.0D0)
01808 & THEN
01809 WRITE(MSTU(11),5200) I
01810 MERR=MERR+1
01811 ENDIF
01812 170 CONTINUE
01813 IF(MTEST.GE.1) CALL PYTABU(21)
01814
01815
01816 IF(MERR.NE.0.OR.MSTU(24).NE.0.OR.MSTU(28).NE.0) THEN
01817 IF(MERR.GE.1) WRITE(MSTU(11),6400)
01818 CALL PYLIST(2)
01819 ELSEIF(MTEST.GE.1.AND.MOD(IEV-5,100).EQ.0) THEN
01820 CALL PYLIST(1)
01821 ENDIF
01822
01823
01824 IF(MERR.NE.0) NERR=NERR+1
01825 IF(NERR.GE.10) THEN
01826 WRITE(MSTU(11),6300)
01827 CALL PYLIST(1)
01828 STOP
01829 ENDIF
01830 180 CONTINUE
01831
01832
01833 IF(MTEST.GE.1) CALL PYTABU(22)
01834
01835
01836 MSTJ(1)=MSTJ1
01837 MSTJ(3)=MSTJ3
01838 MSTJ(11)=MSTJ11
01839 MSTJ(42)=MSTJ42
01840 MSTJ(43)=MSTJ43
01841 MSTJ(44)=MSTJ44
01842 PARJ(17)=PARJ17
01843 PARJ(22)=PARJ22
01844 PARJ(43)=PARJ43
01845 PARJ(54)=PARJ54
01846 MSTJ(101)=MST101
01847 MSTJ(104)=MST104
01848 MSTJ(105)=MST105
01849 MSTJ(107)=MST107
01850 MSTJ(116)=MST116
01851
01852
01853
01854 MSTP(122)=MAX(0,MIN(2,MTEST))
01855 MDCY(PYCOMP(111),1)=0
01856 DO 230 IPROC=1,8
01857
01858
01859 MSEL=0
01860 DO 190 ISUB=1,500
01861 MSUB(ISUB)=0
01862 190 CONTINUE
01863 CKIN(1)=2D0
01864 CKIN(3)=0D0
01865 MSTP(2)=1
01866 MSTP(11)=0
01867 MSTP(33)=0
01868 MSTP(81)=1
01869 MSTP(82)=1
01870 MSTP(111)=1
01871 MSTP(131)=0
01872 MSTP(133)=0
01873 PARP(131)=0.01D0
01874
01875
01876 IF(IPROC.EQ.1) THEN
01877 PZSUM=300D0
01878 PESUM=SQRT(PZSUM**2+PYMASS(211)**2)+PYMASS(2212)
01879 PQSUM=2D0
01880 MSEL=10
01881 CKIN(3)=5D0
01882 CALL PYINIT('FIXT','pi+','p',PZSUM)
01883
01884
01885 ELSEIF(IPROC.EQ.2) THEN
01886 PESUM=63D0
01887 PZSUM=0D0
01888 PQSUM=2D0
01889 MSEL=1
01890 CKIN(3)=5D0
01891 CALL PYINIT('CMS','p','p',PESUM)
01892
01893
01894 ELSEIF(IPROC.EQ.3) THEN
01895 PESUM=630D0
01896 PZSUM=0D0
01897 PQSUM=0D0
01898 MSEL=12
01899 CKIN(1)=20D0
01900 MSTP(82)=4
01901 MSTP(2)=2
01902 MSTP(33)=3
01903 CALL PYINIT('CMS','p','pbar',PESUM)
01904
01905
01906 ELSEIF(IPROC.EQ.4) THEN
01907 PESUM=1800D0
01908 PZSUM=0D0
01909 PQSUM=0D0
01910 MSUB(22)=1
01911 MSUB(23)=1
01912 MSUB(25)=1
01913 CKIN(1)=200D0
01914 MSTP(111)=0
01915 MSTP(131)=1
01916 MSTP(133)=2
01917 PARP(131)=0.04D0
01918 CALL PYINIT('CMS','p','pbar',PESUM)
01919
01920
01921 ELSEIF(IPROC.EQ.5) THEN
01922 PESUM=15400D0
01923 PZSUM=0D0
01924 PQSUM=2D0
01925 MSUB(3)=1
01926 MSUB(102)=1
01927 MSUB(123)=1
01928 MSUB(124)=1
01929 PMAS(25,1)=300D0
01930 CKIN(1)=200D0
01931 MSTP(81)=0
01932 MSTP(111)=0
01933 CALL PYINIT('CMS','p','p',PESUM)
01934
01935
01936 ELSEIF(IPROC.EQ.6) THEN
01937 PESUM=40000D0
01938 PZSUM=0D0
01939 PQSUM=2D0
01940 MSEL=21
01941 PMAS(32,1)=600D0
01942 CKIN(1)=400D0
01943 MSTP(81)=0
01944 MSTP(111)=0
01945 CALL PYINIT('CMS','p','p',PESUM)
01946
01947
01948 ELSEIF(IPROC.EQ.7) THEN
01949 PESUM=1000D0
01950 PZSUM=0D0
01951 PQSUM=0D0
01952 MSUB(25)=1
01953 MSUB(69)=1
01954 MSTP(11)=1
01955 CALL PYINIT('CMS','e+','e-',PESUM)
01956
01957
01958 ELSEIF(IPROC.EQ.8) THEN
01959 P(1,1)=0D0
01960 P(1,2)=0D0
01961 P(1,3)=8000D0
01962 P(2,1)=0D0
01963 P(2,2)=0D0
01964 P(2,3)=-80D0
01965 PESUM=8080D0
01966 PZSUM=7920D0
01967 PQSUM=0D0
01968 MSUB(10)=1
01969 CKIN(3)=50D0
01970 MSTP(111)=0
01971 CALL PYINIT('USER','p','e-',PESUM)
01972 ENDIF
01973
01974
01975 DO 220 IEV=1,20
01976 CALL PYEVNT
01977 PESUMM=PESUM
01978 IF(IPROC.EQ.4) PESUMM=MSTI(41)*PESUM
01979
01980
01981 PINI(1)=0D0
01982 PINI(2)=0D0
01983 PINI(3)=PZSUM
01984 PINI(4)=PESUMM
01985 PINI(6)=PQSUM
01986 DO 200 J=1,4
01987 PFIN(J)=PYP(0,J)
01988 200 CONTINUE
01989 PFIN(6)=PYP(0,6)
01990 MERR=0
01991 DEVE=ABS(PFIN(4)-PINI(4))+ABS(PFIN(3)-PINI(3))
01992 DEVT=ABS(PFIN(1)-PINI(1))+ABS(PFIN(2)-PINI(2))
01993 DEVQ=ABS(PFIN(6)-PINI(6))
01994 IF(DEVE.GT.2D-3*PESUM.OR.DEVT.GT.MAX(0.01D0,1D-4*PESUM).OR.
01995 & DEVQ.GT.0.1D0) MERR=1
01996 IF(MERR.NE.0) WRITE(MSTU(11),5000) (PINI(J),J=1,4),PINI(6),
01997 & (PFIN(J),J=1,4),PFIN(6)
01998
01999
02000
02001 DO 210 I=1,N
02002 IF(K(I,1).GT.20) GOTO 210
02003 IF(PYCOMP(K(I,2)).EQ.0) THEN
02004 WRITE(MSTU(11),5100) I
02005 MERR=MERR+1
02006 ENDIF
02007 PD=P(I,4)**2-P(I,1)**2-P(I,2)**2-P(I,3)**2-P(I,5)**2*
02008 & SIGN(1D0,P(I,5))
02009 IF(ABS(PD).GT.MAX(0.1D0,0.002D0*P(I,4)**2,0.002D0*P(I,5)**2)
02010 & .OR.(P(I,5).GE.0D0.AND.P(I,4).LT.0D0)) THEN
02011 WRITE(MSTU(11),5200) I
02012 MERR=MERR+1
02013 ENDIF
02014 210 CONTINUE
02015
02016
02017 IF(MERR.GE.1) NERR=NERR+1
02018 IF(NERR.GE.10) THEN
02019 WRITE(MSTU(11),6300)
02020 CALL PYLIST(1)
02021 STOP
02022 ENDIF
02023 IF(MTEST.GE.1.AND.(MERR.GE.1.OR.IEV.EQ.1)) THEN
02024 IF(MERR.GE.1) WRITE(MSTU(11),6400)
02025 CALL PYLIST(1)
02026 ENDIF
02027 220 CONTINUE
02028
02029
02030 IF(MTEST.GE.1) CALL PYSTAT(1)
02031 230 CONTINUE
02032
02033
02034 IF(NERR.EQ.0) WRITE(MSTU(11),6500)
02035 IF(NERR.GT.0) WRITE(MSTU(11),6600) NERR
02036
02037
02038 5000 FORMAT(/' Momentum, energy and/or charge were not conserved ',
02039 &'in following event'/' sum of',9X,'px',11X,'py',11X,'pz',11X,
02040 &'E',8X,'charge'/' before',2X,4(1X,F12.5),1X,F8.2/' after',3X,
02041 &4(1X,F12.5),1X,F8.2)
02042 5100 FORMAT(/5X,'Entry no.',I4,' in following event not known code')
02043 5200 FORMAT(/5X,'Entry no.',I4,' in following event has faulty ',
02044 &'kinematics')
02045 6300 FORMAT(/5X,'This is the tenth error experienced! Something is ',
02046 &'wrong.'/5X,'Execution will be stopped after listing of event.')
02047 6400 FORMAT(5X,'Faulty event follows:')
02048 6500 FORMAT(//5X,'End result of PYTEST: no errors detected.')
02049 6600 FORMAT(//5X,'End result of PYTEST:',I2,' errors detected.'/
02050 &5X,'This should not have happened!')
02051
02052 RETURN
02053 END
02054
02055
02056
02057
02058
02059
02060
02061 SUBROUTINE PYHEPC(MCONV)
02062
02063
02064 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
02065 IMPLICIT INTEGER(I-N)
02066 INTEGER PYK,PYCHGE,PYCOMP
02067
02068 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
02069 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
02070 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
02071 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
02072
02073 PARAMETER (NMXHEP=4000)
02074 COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
02075 &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
02076 DOUBLE PRECISION PHEP,VHEP
02077 SAVE /HEPEVT/
02078
02079
02080 IF(MCONV.EQ.1) THEN
02081 NEVHEP=0
02082 IF(N.GT.NMXHEP) CALL PYERRM(8,
02083 & '(PYHEPC:) no more space in /HEPEVT/')
02084 NHEP=MIN(N,NMXHEP)
02085 DO 140 I=1,NHEP
02086 ISTHEP(I)=0
02087 IF(K(I,1).GE.1.AND.K(I,1).LE.10) ISTHEP(I)=1
02088 IF(K(I,1).GE.11.AND.K(I,1).LE.20) ISTHEP(I)=2
02089 IF(K(I,1).GE.21.AND.K(I,1).LE.30) ISTHEP(I)=3
02090 IF(K(I,1).GE.31.AND.K(I,1).LE.100) ISTHEP(I)=K(I,1)
02091 IDHEP(I)=K(I,2)
02092 JMOHEP(1,I)=K(I,3)
02093 JMOHEP(2,I)=0
02094 IF(K(I,1).NE.3.AND.K(I,1).NE.13.AND.K(I,1).NE.14) THEN
02095 JDAHEP(1,I)=K(I,4)
02096 JDAHEP(2,I)=K(I,5)
02097 ELSE
02098 JDAHEP(1,I)=0
02099 JDAHEP(2,I)=0
02100 ENDIF
02101 DO 100 J=1,5
02102 PHEP(J,I)=P(I,J)
02103 100 CONTINUE
02104 DO 110 J=1,4
02105 VHEP(J,I)=V(I,J)
02106 110 CONTINUE
02107
02108
02109 IF(I.EQ.1) THEN
02110 INEW=1
02111 ELSE
02112 IF(K(I,1).EQ.21.AND.K(I-1,1).NE.21) INEW=I
02113 ENDIF
02114
02115
02116 IF(I.GE.INEW+2.AND.K(I,1).EQ.21.AND.K(I,3).EQ.0) THEN
02117 IMO1=I-2
02118 IF(I.GE.INEW+3.AND.K(I-1,1).EQ.21.AND.K(I-1,3).EQ.0)
02119 & IMO1=IMO1-1
02120 JMOHEP(1,I)=IMO1
02121 JMOHEP(2,I)=IMO1+1
02122 ELSEIF(K(I,2).GE.91.AND.K(I,2).LE.93) THEN
02123 I1=K(I,3)-1
02124 120 I1=I1+1
02125 IF(I1.GE.I) CALL PYERRM(8,
02126 & '(PYHEPC:) translation of inconsistent event history')
02127 IF(I1.LT.I.AND.K(I1,1).NE.1.AND.K(I1,1).NE.11) GOTO 120
02128 KC=PYCOMP(K(I1,2))
02129 IF(I1.LT.I.AND.KC.EQ.0) GOTO 120
02130 IF(I1.LT.I.AND.KCHG(KC,2).EQ.0) GOTO 120
02131 JMOHEP(2,I)=I1
02132 ELSEIF(K(I,2).EQ.94) THEN
02133 NJET=2
02134 IF(NHEP.GE.I+3.AND.K(I+3,3).LE.I) NJET=3
02135 IF(NHEP.GE.I+4.AND.K(I+4,3).LE.I) NJET=4
02136 JMOHEP(2,I)=MOD(K(I+NJET,4)/MSTU(5),MSTU(5))
02137 IF(JMOHEP(2,I).EQ.JMOHEP(1,I)) JMOHEP(2,I)=
02138 & MOD(K(I+1,4)/MSTU(5),MSTU(5))
02139 ENDIF
02140
02141
02142 IF(K(I,2).EQ.94.AND.MSTU(16).NE.2) THEN
02143 DO 130 I1=JDAHEP(1,I),JDAHEP(2,I)
02144 I2=MOD(K(I1,4)/MSTU(5),MSTU(5))
02145 JDAHEP(1,I2)=I
02146 130 CONTINUE
02147 ENDIF
02148 IF(K(I,2).GE.91.AND.K(I,2).LE.94) GOTO 140
02149 I1=JMOHEP(1,I)
02150 IF(I1.LE.0.OR.I1.GT.NHEP) GOTO 140
02151 IF(K(I1,1).NE.13.AND.K(I1,1).NE.14) GOTO 140
02152 IF(JDAHEP(1,I1).EQ.0) THEN
02153 JDAHEP(1,I1)=I
02154 ELSE
02155 JDAHEP(2,I1)=I
02156 ENDIF
02157 140 CONTINUE
02158 DO 150 I=1,NHEP
02159 IF(K(I,1).NE.13.AND.K(I,1).NE.14) GOTO 150
02160 IF(JDAHEP(2,I).EQ.0) JDAHEP(2,I)=JDAHEP(1,I)
02161 150 CONTINUE
02162
02163
02164 ELSE
02165 IF(NHEP.GT.MSTU(4)) CALL PYERRM(8,
02166 & '(PYHEPC:) no more space in /PYJETS/')
02167 N=MIN(NHEP,MSTU(4))
02168 NKQ=0
02169 KQSUM=0
02170 DO 180 I=1,N
02171 K(I,1)=0
02172 IF(ISTHEP(I).EQ.1) K(I,1)=1
02173 IF(ISTHEP(I).EQ.2) K(I,1)=11
02174 IF(ISTHEP(I).EQ.3) K(I,1)=21
02175 K(I,2)=IDHEP(I)
02176 K(I,3)=JMOHEP(1,I)
02177 K(I,4)=JDAHEP(1,I)
02178 K(I,5)=JDAHEP(2,I)
02179 DO 160 J=1,5
02180 P(I,J)=PHEP(J,I)
02181 160 CONTINUE
02182 DO 170 J=1,4
02183 V(I,J)=VHEP(J,I)
02184 170 CONTINUE
02185 V(I,5)=0D0
02186 IF(ISTHEP(I).EQ.2.AND.PHEP(4,I).GT.PHEP(5,I)) THEN
02187 I1=JDAHEP(1,I)
02188 IF(I1.GT.0.AND.I1.LE.NHEP) V(I,5)=(VHEP(4,I1)-VHEP(4,I))*
02189 & PHEP(5,I)/PHEP(4,I)
02190 ENDIF
02191
02192
02193 IF(ISTHEP(I).EQ.1) THEN
02194 KC=PYCOMP(K(I,2))
02195 KQ=0
02196 IF(KC.NE.0) KQ=KCHG(KC,2)*ISIGN(1,K(I,2))
02197 IF(KQ.NE.0) NKQ=NKQ+1
02198 IF(KQ.NE.2) KQSUM=KQSUM+KQ
02199 IF(KQ.NE.0.AND.KQSUM.NE.0) THEN
02200 K(I,1)=2
02201 ELSEIF(KQ.EQ.2.AND.I.LT.N) THEN
02202 IF(K(I+1,2).EQ.21) K(I,1)=2
02203 ENDIF
02204 ENDIF
02205 180 CONTINUE
02206 IF(NKQ.EQ.1.OR.KQSUM.NE.0) CALL PYERRM(8,
02207 & '(PYHEPC:) input parton configuration not colour singlet')
02208 ENDIF
02209
02210 END
02211
02212
02213
02214
02215
02216
02217
02218 SUBROUTINE PYINIT(FRAME,BEAM,TARGET,WIN)
02219
02220
02221 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
02222 IMPLICIT INTEGER(I-N)
02223 INTEGER PYK,PYCHGE,PYCOMP
02224
02225 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
02226 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
02227 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
02228 COMMON/PYDAT4/CHAF(500,2)
02229 CHARACTER CHAF*16
02230 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
02231 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
02232 COMMON/PYINT1/MINT(400),VINT(400)
02233 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
02234 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
02235 SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYDAT4/,/PYSUBS/,/PYPARS/,
02236 &/PYINT1/,/PYINT2/,/PYINT5/
02237
02238 DIMENSION ALAMIN(20),NFIN(20)
02239 CHARACTER*(*) FRAME,BEAM,TARGET
02240 CHARACTER CHFRAM*12,CHBEAM*12,CHTARG*12,CHLH(2)*6
02241
02242
02243 COMMON/W50512/QCDL4,QCDL5
02244 SAVE /W50512/
02245 DOUBLE PRECISION VALUE(20),QCDL4,QCDL5
02246 CHARACTER*20 PARM(20)
02247 DATA VALUE/20*0D0/,PARM/20*' '/
02248
02249
02250 DATA ALAMIN/0.177D0,0.239D0,0.247D0,0.2322D0,0.248D0,0.248D0,
02251 &0.192D0,0.326D0,2*0.2D0,0.2D0,0.2D0,0.29D0,0.2D0,0.4D0,5*0.2D0/,
02252 &NFIN/20*4/
02253 DATA CHLH/'lepton','hadron'/
02254
02255
02256 DO 100 J=1,400
02257 MINT(J)=0
02258 VINT(J)=0D0
02259 100 CONTINUE
02260 IF(MSTU(12).GE.1) CALL PYLIST(0)
02261 IF(MSTP(122).GE.1) WRITE(MSTU(11),5100)
02262
02263
02264 MSTP(1)=MIN(4,MSTP(1))
02265 MSTU(114)=MIN(MSTU(114),2*MSTP(1))
02266 MSTP(58)=MIN(MSTP(58),2*MSTP(1))
02267
02268
02269 DO 120 I=-20,20
02270 VINT(180+I)=0D0
02271 IA=IABS(I)
02272 IF(IA.GE.1.AND.IA.LE.2*MSTP(1)) THEN
02273 DO 110 J=1,MSTP(1)
02274 IB=2*J-1+MOD(IA,2)
02275 IF(IB.GE.6.AND.MSTP(9).EQ.0) GOTO 110
02276 IPM=(5-ISIGN(1,I))/2
02277 IDC=J+MDCY(IA,2)+2
02278 IF(MDME(IDC,1).EQ.1.OR.MDME(IDC,1).EQ.IPM) VINT(180+I)=
02279 & VINT(180+I)+VCKM((IA+1)/2,(IB+1)/2)
02280 110 CONTINUE
02281 ELSEIF(IA.GE.11.AND.IA.LE.10+2*MSTP(1)) THEN
02282 VINT(180+I)=1D0
02283 ENDIF
02284 120 CONTINUE
02285
02286
02287 IF(MSTP(52).EQ.2) THEN
02288 PARM(1)='NPTYPE'
02289 VALUE(1)=1
02290 PARM(2)='NGROUP'
02291 VALUE(2)=MSTP(51)/1000
02292 PARM(3)='NSET'
02293 VALUE(3)=MOD(MSTP(51),1000)
02294 PARM(4)='TMAS'
02295 VALUE(4)=PMAS(6,1)
02296 CALL PDFSET(PARM,VALUE)
02297 MINT(93)=1000000+MSTP(51)
02298 ENDIF
02299
02300
02301 MSTU(111)=MSTP(2)
02302 IF(MSTP(3).GE.2) THEN
02303 ALAM=0.2D0
02304 NF=4
02305 IF(MSTP(52).EQ.1.AND.MSTP(51).GE.1.AND.MSTP(51).LE.20) THEN
02306 ALAM=ALAMIN(MSTP(51))
02307 NF=NFIN(MSTP(51))
02308 ELSEIF(MSTP(52).EQ.2) THEN
02309 ALAM=QCDL4
02310 NF=4
02311 ENDIF
02312 PARP(1)=ALAM
02313 PARP(61)=ALAM
02314 PARP(72)=ALAM
02315 PARU(112)=ALAM
02316 MSTU(112)=NF
02317 IF(MSTP(3).EQ.3) PARJ(81)=ALAM
02318 ENDIF
02319
02320
02321
02322 CALL PYMSIN
02323
02324
02325 CALL PYINRE
02326
02327 PARJ(123)=PMAS(23,1)
02328 PARJ(124)=PMAS(23,2)
02329
02330
02331 CHFRAM=FRAME//' '
02332 CHBEAM=BEAM//' '
02333 CHTARG=TARGET//' '
02334 CALL PYINBM(CHFRAM,CHBEAM,CHTARG,WIN)
02335 IF(MINT(65).EQ.1) GOTO 170
02336
02337
02338
02339 MINT(121)=1
02340 IF(MSTP(14).EQ.10.AND.(MSEL.EQ.1.OR.MSEL.EQ.2)) THEN
02341 IF((MINT(11).EQ.22.OR.MINT(12).EQ.22).AND.
02342 & (IABS(MINT(11)).GE.28.OR.IABS(MINT(12)).GE.28)) MINT(121)=3
02343 IF(MINT(11).EQ.22.AND.MINT(12).EQ.22) MINT(121)=6
02344 IF((MINT(11).EQ.22.OR.MINT(12).EQ.22).AND.
02345 & (IABS(MINT(11)).EQ.11.OR.IABS(MINT(12)).EQ.11)) MINT(121)=2
02346 ELSEIF(MSTP(14).EQ.20.AND.(MSEL.EQ.1.OR.MSEL.EQ.2)) THEN
02347 IF((MINT(11).EQ.22.OR.MINT(12).EQ.22).AND.
02348 & (IABS(MINT(11)).GE.28.OR.IABS(MINT(12)).GE.28)) MINT(121)=3
02349 IF(MINT(11).EQ.22.AND.MINT(12).EQ.22) MINT(121)=9
02350 ELSEIF(MSTP(14).EQ.25.AND.(MSEL.EQ.1.OR.MSEL.EQ.2)) THEN
02351 IF((MINT(11).EQ.22.OR.MINT(12).EQ.22).AND.
02352 & (IABS(MINT(11)).GE.28.OR.IABS(MINT(12)).GE.28)) MINT(121)=2
02353 IF(MINT(11).EQ.22.AND.MINT(12).EQ.22) MINT(121)=4
02354 ELSEIF(MSTP(14).EQ.30.AND.(MSEL.EQ.1.OR.MSEL.EQ.2)) THEN
02355 IF((MINT(11).EQ.22.OR.MINT(12).EQ.22).AND.
02356 & (IABS(MINT(11)).GE.28.OR.IABS(MINT(12)).GE.28)) MINT(121)=4
02357 IF(MINT(11).EQ.22.AND.MINT(12).EQ.22) MINT(121)=13
02358 ENDIF
02359 MINT(123)=MSTP(14)
02360 IF((MSTP(14).EQ.10.OR.MSTP(14).EQ.20.OR.MSTP(14).EQ.25.OR.
02361 &MSTP(14).EQ.30).AND.MSEL.NE.1.AND.MSEL.NE.2) MINT(123)=0
02362 IF(MSTP(14).GE.11.AND.MSTP(14).LE.19) THEN
02363 IF(MSTP(14).EQ.11) MINT(123)=0
02364 IF(MSTP(14).EQ.12.OR.MSTP(14).EQ.14) MINT(123)=5
02365 IF(MSTP(14).EQ.13.OR.MSTP(14).EQ.17) MINT(123)=6
02366 IF(MSTP(14).EQ.15) MINT(123)=2
02367 IF(MSTP(14).EQ.16.OR.MSTP(14).EQ.18) MINT(123)=7
02368 IF(MSTP(14).EQ.19) MINT(123)=3
02369 ELSEIF(MSTP(14).GE.21.AND.MSTP(14).LE.24) THEN
02370 IF(MSTP(14).EQ.21) MINT(123)=0
02371 IF(MSTP(14).EQ.22.OR.MSTP(14).EQ.23) MINT(123)=4
02372 IF(MSTP(14).EQ.24) MINT(123)=1
02373 ELSEIF(MSTP(14).GE.26.AND.MSTP(14).LE.29) THEN
02374 IF(MSTP(14).EQ.26.OR.MSTP(14).EQ.28) MINT(123)=8
02375 IF(MSTP(14).EQ.27.OR.MSTP(14).EQ.29) MINT(123)=9
02376 ENDIF
02377
02378
02379 CALL PYINKI(0)
02380
02381
02382 IF(MINT(141).NE.0.OR.MINT(142).NE.0) CALL PYGAGA(1,WTGAGA)
02383
02384
02385 CALL PYKFIN
02386
02387
02388 CKIN3=CKIN(3)
02389 MSAV48=0
02390 DO 160 IGA=1,MINT(121)
02391 CKIN(3)=CKIN3
02392 MINT(122)=IGA
02393
02394
02395 CALL PYINPR
02396 MINT(101)=1
02397 MINT(102)=1
02398 MINT(103)=MINT(11)
02399 MINT(104)=MINT(12)
02400
02401
02402 MINT(48)=0
02403 DO 130 ISUB=1,500
02404 IF(MINT(50).EQ.0.AND.ISUB.GE.91.AND.ISUB.LE.96.AND.
02405 & MSUB(ISUB).EQ.1.AND.MINT(121).GT.1) THEN
02406 MSUB(ISUB)=0
02407 ELSEIF(MINT(50).EQ.0.AND.ISUB.GE.91.AND.ISUB.LE.96.AND.
02408 & MSUB(ISUB).EQ.1) THEN
02409 WRITE(MSTU(11),5200) ISUB,CHLH(MINT(41)),CHLH(MINT(42))
02410 STOP
02411 ELSEIF(MSUB(ISUB).EQ.1.AND.ISET(ISUB).EQ.-1) THEN
02412 WRITE(MSTU(11),5300) ISUB
02413 STOP
02414 ELSEIF(MSUB(ISUB).EQ.1.AND.ISET(ISUB).LE.-2) THEN
02415 WRITE(MSTU(11),5400) ISUB
02416 STOP
02417 ELSEIF(MSUB(ISUB).EQ.1) THEN
02418 MINT(48)=MINT(48)+1
02419 ENDIF
02420 130 CONTINUE
02421 IF(MINT(121).EQ.1.AND.MINT(48).EQ.0) THEN
02422 WRITE(MSTU(11),5500)
02423 STOP
02424 ENDIF
02425 MINT(49)=MINT(48)-MSUB(91)-MSUB(92)-MSUB(93)-MSUB(94)
02426 MSAV48=MSAV48+MINT(48)
02427
02428
02429 DO 150 I=0,500
02430 DO 140 J=1,3
02431 NGEN(I,J)=0
02432 XSEC(I,J)=0D0
02433 140 CONTINUE
02434 150 CONTINUE
02435
02436
02437 CALL PYXTOT
02438 VINT(318)=VINT(317)
02439
02440
02441 IF(MSTP(121).LE.1) CALL PYMAXI
02442
02443
02444 IF(MINT(121).GT.1) MSTP(131)=0
02445 IF(MSTP(131).NE.0) CALL PYPILE(1)
02446
02447
02448 IF(MINT(50).EQ.1.AND.(MINT(49).NE.0.OR.MSTP(131).NE.0).AND.
02449 & MSTP(82).GE.2) CALL PYMULT(1)
02450
02451
02452 IF(MINT(121).GT.1) CALL PYSAVE(1,IGA)
02453 160 CONTINUE
02454
02455
02456 IF(MSAV48.EQ.0) THEN
02457 WRITE(MSTU(11),5500)
02458 STOP
02459 ENDIF
02460 170 IF(MSTP(122).GE.1) WRITE(MSTU(11),5600)
02461
02462
02463 5100 FORMAT('1',18('*'),1X,'PYINIT: initialization of PYTHIA ',
02464 &'routines',1X,17('*'))
02465 5200 FORMAT(1X,'Error: process number ',I3,' not meaningful for ',A6,
02466 &'-',A6,' interactions.'/1X,'Execution stopped!')
02467 5300 FORMAT(1X,'Error: requested subprocess',I4,' not implemented.'/
02468 &1X,'Execution stopped!')
02469 5400 FORMAT(1X,'Error: requested subprocess',I4,' not existing.'/
02470 &1X,'Execution stopped!')
02471 5500 FORMAT(1X,'Error: no subprocess switched on.'/
02472 &1X,'Execution stopped.')
02473 5600 FORMAT(/1X,22('*'),1X,'PYINIT: initialization completed',1X,
02474 &22('*'))
02475
02476 RETURN
02477 END
02478
02479
02480
02481
02482
02483
02484
02485 SUBROUTINE PYEVNT
02486
02487
02488 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
02489 IMPLICIT INTEGER(I-N)
02490 INTEGER PYK,PYCHGE,PYCOMP
02491
02492 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
02493 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
02494 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
02495 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
02496 COMMON/PYINT1/MINT(400),VINT(400)
02497 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
02498 COMMON/PYINT4/MWID(500),WIDS(500,5)
02499 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
02500 COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
02501 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYPARS/,/PYINT1/,/PYINT2/,
02502 &/PYINT4/,/PYINT5/,/PYUPPR/
02503
02504 DIMENSION VTX(4)
02505
02506
02507 N=0
02508 MINT(5)=MINT(5)+1
02509 MINT(7)=0
02510 MINT(8)=0
02511 MINT(83)=0
02512 MINT(84)=MSTP(126)
02513 MSTU(24)=0
02514 MSTU70=0
02515 MSTJ14=MSTJ(14)
02516
02517
02518 MSTI(61)=0
02519 IF(MSTP(171).EQ.1) THEN
02520 CALL PYINKI(1)
02521 IF(MSTI(61).EQ.1) THEN
02522 MINT(5)=MINT(5)-1
02523 RETURN
02524 ENDIF
02525 IF(MINT(121).GT.1) CALL PYSAVE(3,1)
02526 CALL PYXTOT
02527 ENDIF
02528
02529
02530 IF(MSTP(131).LE.0) THEN
02531 NPILE=1
02532 ELSE
02533 CALL PYPILE(2)
02534 NPILE=MINT(81)
02535 ENDIF
02536 DO 260 IPILE=1,NPILE
02537 IF(MINT(84)+100.GE.MSTU(4)) THEN
02538 CALL PYERRM(11,
02539 & '(PYEVNT:) no more space in PYJETS for pileup events')
02540 IF(MSTU(21).GE.1) GOTO 270
02541 ENDIF
02542 MINT(82)=IPILE
02543
02544
02545 MINT(51)=0
02546 MSTI(52)=0
02547 100 CONTINUE
02548 IF(MINT(51).NE.0.OR.MSTU(24).NE.0) MSTI(52)=MSTI(52)+1
02549 MINT(31)=0
02550 MINT(51)=0
02551 MINT(57)=0
02552 CALL PYRAND
02553 IF(MSTI(61).EQ.1) THEN
02554 MINT(5)=MINT(5)-1
02555 RETURN
02556 ENDIF
02557 IF(MINT(51).EQ.2) RETURN
02558 ISUB=MINT(1)
02559 IF(MSTP(111).EQ.-1) GOTO 250
02560
02561 IF((ISUB.LE.90.OR.ISUB.GE.95).AND.ISUB.NE.99) THEN
02562
02563
02564 MINT31=MINT(31)
02565 110 MINT(31)=MINT31
02566 MINT(51)=0
02567 CALL PYSCAT
02568 IF(MINT(51).EQ.1) GOTO 100
02569 IPU1=MINT(84)+1
02570 IPU2=MINT(84)+2
02571 IF(ISUB.EQ.95) GOTO 130
02572
02573
02574 ALAMSV=PARJ(81)
02575 PARJ(81)=PARP(72)
02576 IF(MSTP(61).GE.1.AND.MINT(47).GE.2) CALL PYSSPA(IPU1,IPU2)
02577 PARJ(81)=ALAMSV
02578 IF(MINT(51).EQ.1) GOTO 100
02579
02580
02581 ALAMSV=PARJ(81)
02582 PARJ(81)=PARP(72)
02583 IF(MSTP(71).GE.1.AND.ISET(ISUB).GE.2.AND.ISET(ISUB).LE.10)
02584 & THEN
02585 IPU3=MINT(84)+3
02586 IPU4=MINT(84)+4
02587 IF(ISET(ISUB).EQ.5) IPU4=-3
02588 QMAX=VINT(55)
02589 IF(ISET(ISUB).EQ.2) QMAX=SQRT(PARP(71))*VINT(55)
02590 CALL PYSHOW(IPU3,IPU4,QMAX)
02591 ELSEIF(MSTP(71).GE.1.AND.ISET(ISUB).EQ.11.AND.NFUP.GE.1) THEN
02592 DO 120 IUP=1,NFUP
02593 IPU3=IFUP(IUP,1)+MINT(84)
02594 IPU4=IFUP(IUP,2)+MINT(84)
02595 QMAX=SQRT(MAX(0D0,Q2UP(IUP)))
02596 CALL PYSHOW(IPU3,IPU4,QMAX)
02597 120 CONTINUE
02598 ENDIF
02599 PARJ(81)=ALAMSV
02600
02601
02602 MINT(32)=0
02603 IF(MSTP(41).GE.1.AND.ISET(ISUB).LE.10) CALL PYRESD(0)
02604 IF(MINT(51).EQ.1) GOTO 100
02605 MINT(52)=N
02606
02607
02608 IF(MSTP(81).GE.1.AND.MINT(50).EQ.1) CALL PYMULT(6)
02609 MINT(53)=N
02610
02611
02612 130 CALL PYREMN(IPU1,IPU2)
02613 IF(MINT(51).EQ.1.AND.MINT(57).GE.1.AND.MINT(57).LE.5) GOTO 110
02614 IF(MINT(51).EQ.1) GOTO 100
02615
02616 ELSEIF(ISUB.NE.99) THEN
02617
02618 CALL PYDIFF
02619
02620 ELSE
02621
02622 CALL PYDISG
02623 IF(MINT(51).EQ.1) GOTO 100
02624 ENDIF
02625
02626
02627 IF(MSTP(111).GE.1) THEN
02628 NFIX=N
02629 DO 140 I=MINT(84)+1,NFIX
02630 IF(K(I,1).GE.1.AND.K(I,1).LE.10.AND.K(I,2).NE.21.AND.
02631 & K(I,2).NE.22) THEN
02632 IF(MWID(PYCOMP(K(I,2))).NE.0) THEN
02633 CALL PYRESD(I)
02634 IF(MINT(51).EQ.1) GOTO 100
02635 ENDIF
02636 ENDIF
02637 140 CONTINUE
02638 ENDIF
02639
02640
02641
02642 IF(MINT(141).NE.0.OR.MINT(142).NE.0) CALL PYGAGA(4,WTGAGA)
02643
02644
02645 IF(MSTP(113).GE.1) THEN
02646 DO 150 I=MINT(83)+1,N
02647 IF(K(I,1).GT.0.AND.K(I,1).LE.10) P(I,4)=SQRT(P(I,1)**2+
02648 & P(I,2)**2+P(I,3)**2+P(I,5)**2)
02649 150 CONTINUE
02650 NRECAL=N
02651 ENDIF
02652
02653
02654 MSTU(28)=0
02655 IF(MSTP(111).LE.0) MSTJ(14)=-1
02656 CALL PYPREP(MINT(84)+1)
02657 MSTJ(14)=MSTJ14
02658 IF(MSTP(112).EQ.1.AND.MSTU(28).EQ.3) GOTO 100
02659 IF(MSTP(125).EQ.0.OR.MSTP(125).EQ.1) THEN
02660 DO 180 I=MINT(84)+1,N
02661 IF(K(I,2).EQ.94) THEN
02662 DO 170 I1=I+1,MIN(N,I+3)
02663 IF(K(I1,3).EQ.I) THEN
02664 K(I1,3)=MOD(K(I1,4)/MSTU(5),MSTU(5))
02665 IF(K(I1,3).EQ.0) THEN
02666 DO 160 II=MINT(84)+1,I-1
02667 IF(K(II,2).EQ.K(I1,2)) THEN
02668 IF(MOD(K(II,4),MSTU(5)).EQ.I1.OR.
02669 & MOD(K(II,5),MSTU(5)).EQ.I1) K(I1,3)=II
02670 ENDIF
02671 160 CONTINUE
02672 IF(K(I+1,3).EQ.0) K(I+1,3)=K(I,3)
02673 ENDIF
02674 ENDIF
02675 170 CONTINUE
02676 ENDIF
02677 180 CONTINUE
02678 CALL PYEDIT(12)
02679 CALL PYEDIT(14)
02680 IF(MSTP(125).EQ.0) CALL PYEDIT(15)
02681 IF(MSTP(125).EQ.0) MINT(4)=0
02682 DO 200 I=MINT(83)+1,N
02683 IF(K(I,1).EQ.11.AND.K(I,4).EQ.0.AND.K(I,5).EQ.0) THEN
02684 DO 190 I1=I+1,N
02685 IF(K(I1,3).EQ.I.AND.K(I,4).EQ.0) K(I,4)=I1
02686 IF(K(I1,3).EQ.I) K(I,5)=I1
02687 190 CONTINUE
02688 ENDIF
02689 200 CONTINUE
02690 ENDIF
02691
02692
02693 IF(IPILE.EQ.1.AND.MSTP(125).LE.0) THEN
02694 MSTU70=1
02695 MSTU(71)=N
02696 ELSEIF(IPILE.EQ.1) THEN
02697 MSTU70=3
02698 MSTU(71)=2
02699 MSTU(72)=MINT(4)
02700 MSTU(73)=N
02701 ENDIF
02702
02703
02704 CALL PYFRAM(1)
02705
02706
02707 IF(MSTP(151).EQ.1) THEN
02708 DO 210 J=1,4
02709 VTX(J)=PARP(150+J)*SQRT(-2D0*LOG(MAX(1D-10,PYR(0))))*
02710 & SIN(PARU(2)*PYR(0))
02711 210 CONTINUE
02712 DO 230 I=MINT(83)+1,N
02713 DO 220 J=1,4
02714 V(I,J)=V(I,J)+VTX(J)
02715 220 CONTINUE
02716 230 CONTINUE
02717 ENDIF
02718
02719
02720 IF(MSTP(111).GE.1) THEN
02721 CALL PYEXEC
02722 IF(MSTU(24).NE.0) GOTO 100
02723 ENDIF
02724 IF(MSTP(113).GE.1) THEN
02725 DO 240 I=NRECAL,N
02726 IF(P(I,5).GT.0D0) P(I,4)=SQRT(P(I,1)**2+
02727 & P(I,2)**2+P(I,3)**2+P(I,5)**2)
02728 240 CONTINUE
02729 ENDIF
02730 IF(MSTP(125).EQ.0.OR.MSTP(125).EQ.1) CALL PYEDIT(14)
02731
02732
02733
02734 250 IF(IPILE.EQ.1) CALL PYDOCU
02735
02736
02737 MSTI(41)=IPILE
02738 IF(IPILE.GE.2.AND.IPILE.LE.10) MSTI(40+IPILE)=ISUB
02739 IF(MSTU70.LT.10) THEN
02740 MSTU70=MSTU70+1
02741 MSTU(70+MSTU70)=N
02742 ENDIF
02743 MINT(83)=N
02744 MINT(84)=N+MSTP(126)
02745 IF(IPILE.LT.NPILE) CALL PYFRAM(2)
02746 260 CONTINUE
02747
02748
02749 IF(MSTP(131).EQ.1.AND.MSTP(133).GE.1) THEN
02750 PARI(91)=VINT(132)
02751 PARI(92)=VINT(133)
02752 PARI(93)=VINT(134)
02753 IF(MSTP(133).GE.2) PARI(93)=PARI(93)*XSEC(0,3)/VINT(131)
02754 ENDIF
02755 CALL PYEDIT(16)
02756
02757
02758 270 CALL PYFRAM(MSTP(124))
02759 MSTU(70)=MSTU70
02760 PARU(21)=VINT(1)
02761
02762 RETURN
02763 END
02764
02765
02766
02767
02768
02769
02770
02771 SUBROUTINE PYSTAT(MSTAT)
02772
02773
02774 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
02775 IMPLICIT INTEGER(I-N)
02776 INTEGER PYK,PYCHGE,PYCOMP
02777
02778 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
02779
02780 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
02781 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
02782 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
02783 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
02784 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
02785 COMMON/PYINT1/MINT(400),VINT(400)
02786 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
02787 COMMON/PYINT4/MWID(500),WIDS(500,5)
02788 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
02789 COMMON/PYINT6/PROC(0:500)
02790 CHARACTER PROC*28
02791 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
02792 SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYSUBS/,/PYPARS/,/PYINT1/,
02793 &/PYINT2/,/PYINT4/,/PYINT5/,/PYINT6/,/PYMSSM/
02794
02795 DIMENSION WDTP(0:200),WDTE(0:200,0:5)
02796 CHARACTER PROGA(6)*28,CHAU*16,CHKF*16,CHD1*16,CHD2*16,CHD3*16,
02797 &CHIN(2)*12,STATE(-1:5)*4,CHKIN(21)*18,DISGA(2)*28,
02798 &PROGG9(13)*28,PROGG4(4)*28,PROGG2(2)*28,PROGP4(4)*28
02799 DATA PROGA/
02800 &'VMD/hadron * VMD ','VMD/hadron * direct ',
02801 &'VMD/hadron * anomalous ','direct * direct ',
02802 &'direct * anomalous ','anomalous * anomalous '/
02803 DATA DISGA/'e * VMD','e * anomalous'/
02804 DATA PROGG9/
02805 &'direct * direct ','direct * VMD ',
02806 &'direct * anomalous ','VMD * direct ',
02807 &'VMD * VMD ','VMD * anomalous ',
02808 &'anomalous * direct ','anomalous * VMD ',
02809 &'anomalous * anomalous ','DIS * VMD ',
02810 &'DIS * anomalous ','VMD * DIS ',
02811 &'anomalous * DIS '/
02812 DATA PROGG4/
02813 &'direct * direct ','direct * resolved ',
02814 &'resolved * direct ','resolved * resolved '/
02815 DATA PROGG2/
02816 &'direct * hadron ','resolved * hadron '/
02817 DATA PROGP4/
02818 &'VMD * hadron ','direct * hadron ',
02819 &'anomalous * hadron ','DIS * hadron '/
02820 DATA STATE/'----','off ','on ','on/+','on/-','on/1','on/2'/,
02821 &CHKIN/' m_hard (GeV/c^2) ',' p_T_hard (GeV/c) ',
02822 &'m_finite (GeV/c^2)',' y*_subsystem ',' y*_large ',
02823 &' y*_small ',' eta*_large ',' eta*_small ',
02824 &'cos(theta*)_large ','cos(theta*)_small ',' x_1 ',
02825 &' x_2 ',' x_F ',' cos(theta_hard) ',
02826 &'m''_hard (GeV/c^2) ',' tau ',' y* ',
02827 &'cos(theta_hard^-) ','cos(theta_hard^+) ',' x_T^2 ',
02828 &' tau'' '/
02829
02830
02831 IF(MSTAT.LE.1) THEN
02832 IF(MINT(121).GT.1) CALL PYSAVE(5,0)
02833 WRITE(MSTU(11),5000)
02834 WRITE(MSTU(11),5100)
02835 WRITE(MSTU(11),5200) 0,PROC(0),NGEN(0,3),NGEN(0,1),XSEC(0,3)
02836 DO 100 I=1,500
02837 IF(MSUB(I).NE.1) GOTO 100
02838 WRITE(MSTU(11),5200) I,PROC(I),NGEN(I,3),NGEN(I,1),XSEC(I,3)
02839 100 CONTINUE
02840 IF(MINT(121).GT.1) THEN
02841 WRITE(MSTU(11),5300)
02842 DO 110 IGA=1,MINT(121)
02843 CALL PYSAVE(3,IGA)
02844 IF(MINT(121).EQ.2.AND.MSTP(14).EQ.10) THEN
02845 WRITE(MSTU(11),5200) IGA,DISGA(IGA),NGEN(0,3),NGEN(0,1),
02846 & XSEC(0,3)
02847 ELSEIF(MINT(121).EQ.9.OR.MINT(121).EQ.13) THEN
02848 WRITE(MSTU(11),5200) IGA,PROGG9(IGA),NGEN(0,3),NGEN(0,1),
02849 & XSEC(0,3)
02850 ELSEIF(MINT(121).EQ.4.AND.MSTP(14).EQ.30) THEN
02851 WRITE(MSTU(11),5200) IGA,PROGP4(IGA),NGEN(0,3),NGEN(0,1),
02852 & XSEC(0,3)
02853 ELSEIF(MINT(121).EQ.4) THEN
02854 WRITE(MSTU(11),5200) IGA,PROGG4(IGA),NGEN(0,3),NGEN(0,1),
02855 & XSEC(0,3)
02856 ELSEIF(MINT(121).EQ.2) THEN
02857 WRITE(MSTU(11),5200) IGA,PROGG2(IGA),NGEN(0,3),NGEN(0,1),
02858 & XSEC(0,3)
02859 ELSE
02860 WRITE(MSTU(11),5200) IGA,PROGA(IGA),NGEN(0,3),NGEN(0,1),
02861 & XSEC(0,3)
02862 ENDIF
02863 110 CONTINUE
02864 CALL PYSAVE(5,0)
02865 ENDIF
02866 WRITE(MSTU(11),5400) 1D0-DBLE(NGEN(0,3))/
02867 & MAX(1D0,DBLE(NGEN(0,2)))
02868
02869
02870 ELSEIF(MSTAT.EQ.2) THEN
02871 WRITE(MSTU(11),5500)
02872 WRITE(MSTU(11),5600)
02873 DO 140 KC=1,500
02874 KF=KCHG(KC,4)
02875 CALL PYNAME(KF,CHKF)
02876 IOFF=0
02877 IF(KC.LE.22) THEN
02878 IF(KC.GT.2*MSTP(1).AND.KC.LE.10) GOTO 140
02879 IF(KC.GT.10+2*MSTP(1).AND.KC.LE.20) GOTO 140
02880 IF(KC.LE.5.OR.(KC.GE.11.AND.KC.LE.16)) IOFF=1
02881 IF(KC.EQ.18.AND.PMAS(18,1).LT.1D0) IOFF=1
02882 IF(KC.EQ.21.OR.KC.EQ.22) IOFF=1
02883 ELSE
02884 IF(MWID(KC).LE.0) GOTO 140
02885 IF(IMSS(1).LE.0.AND.(KF/KSUSY1.EQ.1.OR.
02886 & KF/KSUSY1.EQ.2)) GOTO 140
02887 ENDIF
02888
02889 IF(IOFF.EQ.1) THEN
02890 NGP=0
02891 IF(KC.LE.20) NGP=(MOD(KC,10)+1)/2
02892 IF(NGP.LE.MSTP(1)) WRITE(MSTU(11),5700) KF,CHKF(1:10),
02893 & PMAS(KC,1),0D0,0D0,STATE(MDCY(KC,1)),0D0
02894 DO 120 J=1,MDCY(KC,3)
02895 IDC=J+MDCY(KC,2)-1
02896 NGP1=0
02897 IF(IABS(KFDP(IDC,1)).LE.20) NGP1=
02898 & (MOD(IABS(KFDP(IDC,1)),10)+1)/2
02899 NGP2=0
02900 IF(IABS(KFDP(IDC,2)).LE.20) NGP2=
02901 & (MOD(IABS(KFDP(IDC,2)),10)+1)/2
02902 CALL PYNAME(KFDP(IDC,1),CHD1)
02903 CALL PYNAME(KFDP(IDC,2),CHD2)
02904 IF(KFDP(IDC,3).EQ.0) THEN
02905 IF(MDME(IDC,2).EQ.102.AND.NGP1.LE.MSTP(1).AND.
02906 & NGP2.LE.MSTP(1)) WRITE(MSTU(11),5800) IDC,CHD1(1:10),
02907 & CHD2(1:10),0D0,0D0,STATE(MDME(IDC,1)),0D0
02908 ELSE
02909 CALL PYNAME(KFDP(IDC,3),CHD3)
02910 IF(MDME(IDC,2).EQ.102.AND.NGP1.LE.MSTP(1).AND.
02911 & NGP2.LE.MSTP(1)) WRITE(MSTU(11),5900) IDC,CHD1(1:10),
02912 & CHD2(1:10),CHD3(1:10),0D0,0D0,STATE(MDME(IDC,1)),0D0
02913 ENDIF
02914 120 CONTINUE
02915
02916 ELSE
02917 CALL PYWIDT(KF,PMAS(KC,1)**2,WDTP,WDTE)
02918 BRFIN=1D0
02919 IF(WDTE(0,0).LE.0D0) BRFIN=0D0
02920 WRITE(MSTU(11),5700) KF,CHKF(1:10),PMAS(KC,1),WDTP(0),1D0,
02921 & STATE(MDCY(KC,1)),BRFIN
02922 DO 130 J=1,MDCY(KC,3)
02923 IDC=J+MDCY(KC,2)-1
02924 NGP1=0
02925 IF(IABS(KFDP(IDC,1)).LE.20) NGP1=
02926 & (MOD(IABS(KFDP(IDC,1)),10)+1)/2
02927 NGP2=0
02928 IF(IABS(KFDP(IDC,2)).LE.20) NGP2=
02929 & (MOD(IABS(KFDP(IDC,2)),10)+1)/2
02930 BRFIN=0D0
02931 IF(WDTE(0,0).GT.0D0) BRFIN=WDTE(J,0)/WDTE(0,0)
02932 CALL PYNAME(KFDP(IDC,1),CHD1)
02933 CALL PYNAME(KFDP(IDC,2),CHD2)
02934 IF(KFDP(IDC,3).EQ.0) THEN
02935 IF(NGP1.LE.MSTP(1).AND.NGP2.LE.MSTP(1))
02936 & WRITE(MSTU(11),5800) IDC,CHD1(1:10),
02937 & CHD2(1:10),WDTP(J),WDTP(J)/WDTP(0),
02938 & STATE(MDME(IDC,1)),BRFIN
02939 ELSE
02940 CALL PYNAME(KFDP(IDC,3),CHD3)
02941 IF(NGP1.LE.MSTP(1).AND.NGP2.LE.MSTP(1))
02942 & WRITE(MSTU(11),5900) IDC,CHD1(1:10),
02943 & CHD2(1:10),CHD3(1:10),WDTP(J),WDTP(J)/WDTP(0),
02944 & STATE(MDME(IDC,1)),BRFIN
02945 ENDIF
02946 130 CONTINUE
02947 ENDIF
02948 140 CONTINUE
02949 WRITE(MSTU(11),6000)
02950
02951
02952 ELSEIF(MSTAT.EQ.3) THEN
02953 WRITE(MSTU(11),6100)
02954 CALL PYNAME(MINT(11),CHAU)
02955 CHIN(1)=CHAU(1:12)
02956 CALL PYNAME(MINT(12),CHAU)
02957 CHIN(2)=CHAU(1:12)
02958 WRITE(MSTU(11),6200) CHIN(1),CHIN(2)
02959 DO 150 I=-20,22
02960 IF(I.EQ.0) GOTO 150
02961 IA=IABS(I)
02962 IF(IA.GT.MSTP(58).AND.IA.LE.10) GOTO 150
02963 IF(IA.GT.10+2*MSTP(1).AND.IA.LE.20) GOTO 150
02964 CALL PYNAME(I,CHAU)
02965 WRITE(MSTU(11),6300) CHAU,STATE(KFIN(1,I)),CHAU,
02966 & STATE(KFIN(2,I))
02967 150 CONTINUE
02968 WRITE(MSTU(11),6400)
02969
02970
02971 ELSEIF(MSTAT.EQ.4) THEN
02972 WRITE(MSTU(11),6500)
02973 WRITE(MSTU(11),6600)
02974 SHRMAX=CKIN(2)
02975 IF(SHRMAX.LT.0D0) SHRMAX=VINT(1)
02976 WRITE(MSTU(11),6700) CKIN(1),CHKIN(1),SHRMAX
02977 PTHMIN=MAX(CKIN(3),CKIN(5))
02978 PTHMAX=CKIN(4)
02979 IF(PTHMAX.LT.0D0) PTHMAX=0.5D0*SHRMAX
02980 WRITE(MSTU(11),6800) CKIN(3),PTHMIN,CHKIN(2),PTHMAX
02981 WRITE(MSTU(11),6900) CHKIN(3),CKIN(6)
02982 DO 160 I=4,14
02983 WRITE(MSTU(11),6700) CKIN(2*I-1),CHKIN(I),CKIN(2*I)
02984 160 CONTINUE
02985 SPRMAX=CKIN(32)
02986 IF(SPRMAX.LT.0D0) SPRMAX=VINT(1)
02987 WRITE(MSTU(11),6700) CKIN(31),CHKIN(15),SPRMAX
02988 WRITE(MSTU(11),7000)
02989
02990
02991 ELSEIF(MSTAT.EQ.5) THEN
02992 WRITE(MSTU(11),7100)
02993 WRITE(MSTU(11),7200)
02994 DO 170 I=1,100
02995 WRITE(MSTU(11),7300) I,MSTP(I),PARP(I),100+I,MSTP(100+I),
02996 & PARP(100+I)
02997 170 CONTINUE
02998
02999
03000 ELSEIF(MSTAT.EQ.6) THEN
03001 WRITE(MSTU(11),7400)
03002 WRITE(MSTU(11),7500)
03003 DO 180 I=1,500
03004 IF(ISET(I).LT.0) GOTO 180
03005 WRITE(MSTU(11),7600) I,PROC(I),ISET(I),KFPR(I,1),KFPR(I,2)
03006 180 CONTINUE
03007 WRITE(MSTU(11),7700)
03008 ENDIF
03009
03010
03011 5000 FORMAT('1',9('*'),1X,'PYSTAT: Statistics on Number of ',
03012 &'Events and Cross-sections',1X,9('*'))
03013 5100 FORMAT(/1X,78('=')/1X,'I',34X,'I',28X,'I',12X,'I'/1X,'I',12X,
03014 &'Subprocess',12X,'I',6X,'Number of points',6X,'I',4X,'Sigma',3X,
03015 &'I'/1X,'I',34X,'I',28X,'I',12X,'I'/1X,'I',34('-'),'I',28('-'),
03016 &'I',4X,'(mb)',4X,'I'/1X,'I',34X,'I',28X,'I',12X,'I'/1X,'I',1X,
03017 &'N:o',1X,'Type',25X,'I',4X,'Generated',9X,'Tried',1X,'I',12X,
03018 &'I'/1X,'I',34X,'I',28X,'I',12X,'I'/1X,78('=')/1X,'I',34X,'I',28X,
03019 &'I',12X,'I')
03020 5200 FORMAT(1X,'I',1X,I3,1X,A28,1X,'I',1X,I12,1X,I13,1X,'I',1X,1P,
03021 &D10.3,1X,'I')
03022 5300 FORMAT(1X,'I',34X,'I',28X,'I',12X,'I'/1X,78('=')/
03023 &1X,'I',34X,'I',28X,'I',12X,'I')
03024 5400 FORMAT(1X,'I',34X,'I',28X,'I',12X,'I'/1X,78('=')//
03025 &1X,'********* Fraction of events that fail fragmentation ',
03026 &'cuts =',1X,F8.5,' *********'/)
03027 5500 FORMAT('1',27('*'),1X,'PYSTAT: Decay Widths and Branching ',
03028 &'Ratios',1X,27('*'))
03029 5600 FORMAT(/1X,98('=')/1X,'I',49X,'I',13X,'I',12X,'I',6X,'I',12X,'I'/
03030 &1X,'I',5X,'Mother --> Branching/Decay Channel',8X,'I',1X,
03031 &'Width (GeV)',1X,'I',7X,'B.R.',1X,'I',1X,'Stat',1X,'I',2X,
03032 &'Eff. B.R.',1X,'I'/1X,'I',49X,'I',13X,'I',12X,'I',6X,'I',12X,'I'/
03033 &1X,98('='))
03034 5700 FORMAT(1X,'I',49X,'I',13X,'I',12X,'I',6X,'I',12X,'I'/1X,'I',1X,
03035 &I8,2X,A10,3X,'(m =',F10.3,')',2X,'-->',5X,'I',2X,1P,D10.3,0P,1X,
03036 &'I',1X,1P,D10.3,0P,1X,'I',1X,A4,1X,'I',1X,1P,D10.3,0P,1X,'I')
03037 5800 FORMAT(1X,'I',1X,I8,2X,A10,1X,'+',1X,A10,15X,'I',2X,
03038 &1P,D10.3,0P,1X,'I',1X,1P,D10.3,0P,1X,'I',1X,A4,1X,'I',1X,
03039 &1P,D10.3,0P,1X,'I')
03040 5900 FORMAT(1X,'I',1X,I8,2X,A10,1X,'+',1X,A10,1X,'+',1X,A10,2X,'I',2X,
03041 &1P,D10.3,0P,1X,'I',1X,1P,D10.3,0P,1X,'I',1X,A4,1X,'I',1X,
03042 &1P,D10.3,0P,1X,'I')
03043 6000 FORMAT(1X,'I',49X,'I',13X,'I',12X,'I',6X,'I',12X,'I'/1X,98('='))
03044 6100 FORMAT('1',7('*'),1X,'PYSTAT: Allowed Incoming Partons/',
03045 &'Particles at Hard Interaction',1X,7('*'))
03046 6200 FORMAT(/1X,78('=')/1X,'I',38X,'I',37X,'I'/1X,'I',1X,
03047 &'Beam particle:',1X,A12,10X,'I',1X,'Target particle:',1X,A12,7X,
03048 &'I'/1X,'I',38X,'I',37X,'I'/1X,'I',1X,'Content',6X,'State',19X,
03049 &'I',1X,'Content',6X,'State',18X,'I'/1X,'I',38X,'I',37X,'I'/1X,
03050 &78('=')/1X,'I',38X,'I',37X,'I')
03051 6300 FORMAT(1X,'I',1X,A9,5X,A4,19X,'I',1X,A9,5X,A4,18X,'I')
03052 6400 FORMAT(1X,'I',38X,'I',37X,'I'/1X,78('='))
03053 6500 FORMAT('1',12('*'),1X,'PYSTAT: User-Defined Limits on ',
03054 &'Kinematical Variables',1X,12('*'))
03055 6600 FORMAT(/1X,78('=')/1X,'I',76X,'I')
03056 6700 FORMAT(1X,'I',16X,1P,D10.3,0P,1X,'<',1X,A,1X,'<',1X,1P,D10.3,0P,
03057 &16X,'I')
03058 6800 FORMAT(1X,'I',3X,1P,D10.3,0P,1X,'(',1P,D10.3,0P,')',1X,'<',1X,A,
03059 &1X,'<',1X,1P,D10.3,0P,16X,'I')
03060 6900 FORMAT(1X,'I',29X,A,1X,'=',1X,1P,D10.3,0P,16X,'I')
03061 7000 FORMAT(1X,'I',76X,'I'/1X,78('='))
03062 7100 FORMAT('1',12('*'),1X,'PYSTAT: Summary of Status Codes and ',
03063 &'Parameter Values',1X,12('*'))
03064 7200 FORMAT(/3X,'I',4X,'MSTP(I)',9X,'PARP(I)',20X,'I',4X,'MSTP(I)',9X,
03065 &'PARP(I)'/)
03066 7300 FORMAT(1X,I3,5X,I6,6X,1P,D10.3,0P,18X,I3,5X,I6,6X,1P,D10.3)
03067 7400 FORMAT('1',13('*'),1X,'PYSTAT: List of implemented processes',
03068 &1X,13('*'))
03069 7500 FORMAT(/1X,65('=')/1X,'I',34X,'I',28X,'I'/1X,'I',12X,
03070 &'Subprocess',12X,'I',1X,'ISET',2X,'KFPR(I,1)',2X,'KFPR(I,2)',1X,
03071 &'I'/1X,'I',34X,'I',28X,'I'/1X,65('=')/1X,'I',34X,'I',28X,'I')
03072 7600 FORMAT(1X,'I',1X,I3,1X,A28,1X,'I',1X,I4,1X,I10,1X,I10,1X,'I')
03073 7700 FORMAT(1X,'I',34X,'I',28X,'I'/1X,65('='))
03074
03075 RETURN
03076 END
03077
03078
03079
03080
03081
03082
03083
03084
03085 SUBROUTINE PYINRE
03086
03087
03088 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
03089 IMPLICIT INTEGER(I-N)
03090 INTEGER PYK,PYCHGE,PYCOMP
03091
03092 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
03093
03094 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
03095 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
03096 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
03097 COMMON/PYDAT4/CHAF(500,2)
03098 CHARACTER CHAF*16
03099 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
03100 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
03101 COMMON/PYINT1/MINT(400),VINT(400)
03102 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
03103 COMMON/PYINT4/MWID(500),WIDS(500,5)
03104 COMMON/PYINT6/PROC(0:500)
03105 CHARACTER PROC*28
03106 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
03107 SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYDAT4/,/PYSUBS/,/PYPARS/,
03108 &/PYINT1/,/PYINT2/,/PYINT4/,/PYINT6/,/PYMSSM/
03109
03110 DIMENSION WDTP(0:200),WDTE(0:200,0:5),WDTPM(0:200),
03111 &WDTEM(0:200,0:5),KCORD(500),PMORD(500)
03112
03113
03114 XW=PARU(102)
03115 XWV=XW
03116 IF(MSTP(8).GE.2) XW=1D0-(PMAS(24,1)/PMAS(23,1))**2
03117 XW1=1D0-XW
03118 IF(MSTP(4).EQ.2) THEN
03119 TANBE=PARU(141)
03120 RATBE=((1D0-TANBE**2)/(1D0+TANBE**2))**2
03121 SQMZ=PMAS(23,1)**2
03122 SQMW=PMAS(24,1)**2
03123 SQMH=PMAS(25,1)**2
03124 SQMA=SQMH*(SQMZ-SQMH)/(SQMZ*RATBE-SQMH)
03125 SQMHP=0.5D0*(SQMA+SQMZ+SQRT((SQMA+SQMZ)**2-4D0*SQMA*SQMZ*RATBE))
03126 SQMHC=SQMA+SQMW
03127 IF(SQMH.GE.SQMZ.OR.MIN(SQMA,SQMHP,SQMHC).LE.0D0) THEN
03128 WRITE(MSTU(11),5000)
03129 STOP
03130 ENDIF
03131 PMAS(35,1)=SQRT(SQMHP)
03132 PMAS(36,1)=SQRT(SQMA)
03133 PMAS(37,1)=SQRT(SQMHC)
03134 ALSU=0.5D0*ATAN(2D0*TANBE*(SQMA+SQMZ)/((1D0-TANBE**2)*
03135 & (SQMA-SQMZ)))
03136 BESU=ATAN(TANBE)
03137 PARU(142)=1D0
03138 PARU(143)=1D0
03139 PARU(161)=-SIN(ALSU)/COS(BESU)
03140 PARU(162)=COS(ALSU)/SIN(BESU)
03141 PARU(163)=PARU(161)
03142 PARU(164)=SIN(BESU-ALSU)
03143 PARU(165)=PARU(164)
03144 PARU(168)=SIN(BESU-ALSU)+0.5D0*COS(2D0*BESU)*SIN(BESU+ALSU)/XW
03145 PARU(171)=COS(ALSU)/COS(BESU)
03146 PARU(172)=SIN(ALSU)/SIN(BESU)
03147 PARU(173)=PARU(171)
03148 PARU(174)=COS(BESU-ALSU)
03149 PARU(175)=PARU(174)
03150 PARU(176)=COS(2D0*ALSU)*COS(BESU+ALSU)-2D0*SIN(2D0*ALSU)*
03151 & SIN(BESU+ALSU)
03152 PARU(177)=COS(2D0*BESU)*COS(BESU+ALSU)
03153 PARU(178)=COS(BESU-ALSU)-0.5D0*COS(2D0*BESU)*COS(BESU+ALSU)/XW
03154 PARU(181)=TANBE
03155 PARU(182)=1D0/TANBE
03156 PARU(183)=PARU(181)
03157 PARU(184)=0D0
03158 PARU(185)=PARU(184)
03159 PARU(186)=COS(BESU-ALSU)
03160 PARU(187)=SIN(BESU-ALSU)
03161 PARU(188)=PARU(186)
03162 PARU(189)=PARU(187)
03163 PARU(190)=0D0
03164 PARU(195)=COS(BESU-ALSU)
03165 ENDIF
03166
03167
03168 DO 110 I=1,500
03169 DO 100 J=1,5
03170 WIDS(I,J)=1D0
03171 100 CONTINUE
03172 110 CONTINUE
03173
03174
03175 NRES=0
03176 DO 140 KC=1,500
03177 KF=KCHG(KC,4)
03178 IF(KF.EQ.0) GOTO 140
03179 IF(MWID(KC).EQ.0) GOTO 140
03180 IF(KC.EQ.7.OR.KC.EQ.8.OR.KC.EQ.17.OR.KC.EQ.18) THEN
03181 IF(MSTP(1).LE.3) GOTO 140
03182 ENDIF
03183 IF(KF/KSUSY1.EQ.1.OR.KF/KSUSY1.EQ.2) THEN
03184 IF(IMSS(1).LE.0) GOTO 140
03185 ENDIF
03186 NRES=NRES+1
03187 PMRES=PMAS(KC,1)
03188 IF(KC.EQ.23.OR.KC.EQ.24) PMRES=0D0
03189 DO 120 I1=NRES-1,1,-1
03190 IF(PMRES.GE.PMORD(I1)) GOTO 130
03191 KCORD(I1+1)=KCORD(I1)
03192 PMORD(I1+1)=PMORD(I1)
03193 120 CONTINUE
03194 130 KCORD(I1+1)=KC
03195 PMORD(I1+1)=PMRES
03196 140 CONTINUE
03197
03198
03199 DO 180 I=1,NRES
03200 KC=KCORD(I)
03201 KF=KCHG(KC,4)
03202
03203
03204 IF(MSTP(1).LE.3) THEN
03205 DO 150 J=1,MDCY(KC,3)
03206 IDC=J+MDCY(KC,2)-1
03207 KFA1=IABS(KFDP(IDC,1))
03208 KFA2=IABS(KFDP(IDC,2))
03209 IF(KFA1.EQ.7.OR.KFA1.EQ.8.OR.KFA1.EQ.17.OR.KFA1.EQ.18.OR.
03210 & KFA2.EQ.7.OR.KFA2.EQ.8.OR.KFA2.EQ.17.OR.KFA2.EQ.18)
03211 & MDME(IDC,1)=-1
03212 150 CONTINUE
03213 ENDIF
03214
03215
03216 IF(IMSS(1).LE.0) THEN
03217 DO 160 J=1,MDCY(KC,3)
03218 IDC=J+MDCY(KC,2)-1
03219 KFA1S=IABS(KFDP(IDC,1))/KSUSY1
03220 KFA2S=IABS(KFDP(IDC,2))/KSUSY1
03221 IF(KFA1S.EQ.1.OR.KFA1S.EQ.2.OR.KFA2S.EQ.1.OR.KFA2S.EQ.2)
03222 & MDME(IDC,1)=-1
03223 160 CONTINUE
03224 ENDIF
03225
03226
03227 PMR=PMAS(KC,1)
03228 IF(KF.EQ.25.OR.KF.EQ.35.OR.KF.EQ.36) MINT(62)=1
03229 IF(MWID(KC).EQ.3) MINT(63)=1
03230 CALL PYWIDT(KF,PMR**2,WDTP,WDTE)
03231 MINT(51)=0
03232
03233
03234 IF(KCHG(KC,3).EQ.0) THEN
03235 WIDS(KC,1)=((WDTE(0,1)+WDTE(0,2))**2+
03236 & 2D0*(WDTE(0,1)+WDTE(0,2))*(WDTE(0,4)+WDTE(0,5))+
03237 & 2D0*WDTE(0,4)*WDTE(0,5))/WDTP(0)**2
03238 WIDS(KC,2)=(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))/WDTP(0)
03239 WIDS(KC,3)=0D0
03240 WIDS(KC,4)=0D0
03241 WIDS(KC,5)=0D0
03242 ELSE
03243 IF(MWID(KC).EQ.3) MINT(63)=1
03244 CALL PYWIDT(-KF,PMR**2,WDTPM,WDTEM)
03245 MINT(51)=0
03246 WIDS(KC,1)=((WDTE(0,1)+WDTE(0,2))*(WDTEM(0,1)+WDTEM(0,3))+
03247 & (WDTE(0,1)+WDTE(0,2))*(WDTEM(0,4)+WDTEM(0,5))+
03248 & (WDTE(0,4)+WDTE(0,5))*(WDTEM(0,1)+WDTEM(0,3))+
03249 & WDTE(0,4)*WDTEM(0,5)+WDTE(0,5)*WDTEM(0,4))/WDTP(0)**2
03250 WIDS(KC,2)=(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))/WDTP(0)
03251 WIDS(KC,3)=(WDTEM(0,1)+WDTEM(0,3)+WDTEM(0,4))/WDTP(0)
03252 WIDS(KC,4)=((WDTE(0,1)+WDTE(0,2))**2+
03253 & 2D0*(WDTE(0,1)+WDTE(0,2))*(WDTE(0,4)+WDTE(0,5))+
03254 & 2D0*WDTE(0,4)*WDTE(0,5))/WDTP(0)**2
03255 WIDS(KC,5)=((WDTEM(0,1)+WDTEM(0,3))**2+
03256 & 2D0*(WDTEM(0,1)+WDTEM(0,3))*(WDTEM(0,4)+WDTEM(0,5))+
03257 & 2D0*WDTEM(0,4)*WDTEM(0,5))/WDTP(0)**2
03258 ENDIF
03259
03260
03261
03262 IF(MWID(KC).EQ.1.OR.MWID(KC).EQ.3) THEN
03263 PMAS(KC,2)=WDTP(0)
03264 PMAS(KC,3)=MIN(0.9D0*PMAS(KC,1),10D0*PMAS(KC,2))
03265 MDCY(KC,1)=MSTP(41)
03266 DO 170 J=1,MDCY(KC,3)
03267 IDC=J+MDCY(KC,2)-1
03268 BRAT(IDC)=0D0
03269 IF(WDTP(0).GT.0D0) BRAT(IDC)=WDTP(J)/WDTP(0)
03270 170 CONTINUE
03271 ENDIF
03272 180 CONTINUE
03273
03274
03275 KFLQQ=KFDP(MDCY(39,2),1)
03276 KFLQL=KFDP(MDCY(39,2),2)
03277 KCHG(39,1)=KCHG(PYCOMP(KFLQQ),1)*ISIGN(1,KFLQQ)+
03278 &KCHG(PYCOMP(KFLQL),1)*ISIGN(1,KFLQL)
03279 LL=1
03280 IF(IABS(KFLQL).EQ.13) LL=2
03281 IF(IABS(KFLQL).EQ.15) LL=3
03282 CHAF(39,1)='LQ_'//CHAF(IABS(KFLQQ),1)(1:1)//
03283 &CHAF(IABS(KFLQL),1)(1:LL)//' '
03284 CHAF(39,2)=CHAF(39,2)(1:4+LL)//'bar '
03285
03286
03287 IF(MSTP(43).EQ.1) THEN
03288 PROC(1)='f + fbar -> gamma*'
03289 PROC(15)='f + fbar -> g + gamma*'
03290 PROC(19)='f + fbar -> gamma + gamma*'
03291 PROC(30)='f + g -> f + gamma*'
03292 PROC(35)='f + gamma -> f + gamma*'
03293 ELSEIF(MSTP(43).EQ.2) THEN
03294 PROC(1)='f + fbar -> Z0'
03295 PROC(15)='f + fbar -> g + Z0'
03296 PROC(19)='f + fbar -> gamma + Z0'
03297 PROC(30)='f + g -> f + Z0'
03298 PROC(35)='f + gamma -> f + Z0'
03299 ELSEIF(MSTP(43).EQ.3) THEN
03300 PROC(1)='f + fbar -> gamma*/Z0'
03301 PROC(15)='f + fbar -> g + gamma*/Z0'
03302 PROC(19)='f + fbar -> gamma + gamma*/Z0'
03303 PROC(30)='f + g -> f + gamma*/Z0'
03304 PROC(35)='f + gamma -> f + gamma*/Z0'
03305 ENDIF
03306
03307
03308 IF(MSTP(44).EQ.1) THEN
03309 PROC(141)='f + fbar -> gamma*'
03310 ELSEIF(MSTP(44).EQ.2) THEN
03311 PROC(141)='f + fbar -> Z0'
03312 ELSEIF(MSTP(44).EQ.3) THEN
03313 PROC(141)='f + fbar -> Z''0'
03314 ELSEIF(MSTP(44).EQ.4) THEN
03315 PROC(141)='f + fbar -> gamma*/Z0'
03316 ELSEIF(MSTP(44).EQ.5) THEN
03317 PROC(141)='f + fbar -> gamma*/Z''0'
03318 ELSEIF(MSTP(44).EQ.6) THEN
03319 PROC(141)='f + fbar -> Z0/Z''0'
03320 ELSEIF(MSTP(44).EQ.7) THEN
03321 PROC(141)='f + fbar -> gamma*/Z0/Z''0'
03322 ENDIF
03323
03324
03325 IF(MSTP(45).EQ.1) THEN
03326 PROC(77)='W+ + W+ -> W+ + W+'
03327 ELSEIF(MSTP(45).EQ.2) THEN
03328 PROC(77)='W+ + W- -> W+ + W-'
03329 ELSEIF(MSTP(45).EQ.3) THEN
03330 PROC(77)='W+/- + W+/- -> W+/- + W+/-'
03331 ENDIF
03332
03333
03334 5000 FORMAT(1X,'Error: unphysical input tan^2(beta) and m_H ',
03335 &'combination'/1X,'Execution stopped!')
03336
03337 RETURN
03338 END
03339
03340
03341
03342
03343
03344
03345 SUBROUTINE PYINBM(CHFRAM,CHBEAM,CHTARG,WIN)
03346
03347
03348 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
03349 IMPLICIT INTEGER(I-N)
03350 INTEGER PYK,PYCHGE,PYCOMP
03351
03352 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
03353 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
03354 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
03355 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
03356 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
03357 COMMON/PYINT1/MINT(400),VINT(400)
03358 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYSUBS/,/PYPARS/,/PYINT1/
03359
03360 CHARACTER CHFRAM*12,CHBEAM*12,CHTARG*12,CHCOM(3)*12,CHALP(2)*26,
03361 &CHIDNT(3)*12,CHTEMP*12,CHCDE(35)*12,CHINIT*76
03362 DIMENSION LEN(3),KCDE(35),PM(2)
03363 DATA CHALP/'abcdefghijklmnopqrstuvwxyz',
03364 &'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
03365 DATA CHCDE/ 'e- ','e+ ','nu_e ',
03366 &'nu_ebar ','mu- ','mu+ ','nu_mu ',
03367 &'nu_mubar ','tau- ','tau+ ','nu_tau ',
03368 &'nu_taubar ','pi+ ','pi- ','n0 ',
03369 &'nbar0 ','p+ ','pbar- ','gamma ',
03370 &'lambda0 ','sigma- ','sigma0 ','sigma+ ',
03371 &'xi- ','xi0 ','omega- ','pi0 ',
03372 &'reggeon ','pomeron ','gamma/e- ','gamma/e+ ',
03373 &'gamma/mu- ','gamma/mu+ ','gamma/tau- ','gamma/tau+ '/
03374 DATA KCDE/11,-11,12,-12,13,-13,14,-14,15,-15,16,-16,
03375 &211,-211,2112,-2112,2212,-2212,22,3122,3112,3212,3222,
03376 &3312,3322,3334,111,28,29,6*22/
03377
03378
03379 VINT(290)=WIN
03380 MINT(111)=0
03381
03382
03383 CHCOM(1)=CHFRAM
03384 CHCOM(2)=CHBEAM
03385 CHCOM(3)=CHTARG
03386 DO 130 I=1,3
03387 LEN(I)=12
03388 DO 110 LL=12,1,-1
03389 IF(LEN(I).EQ.LL.AND.CHCOM(I)(LL:LL).EQ.' ') LEN(I)=LL-1
03390 DO 100 LA=1,26
03391 IF(CHCOM(I)(LL:LL).EQ.CHALP(2)(LA:LA)) CHCOM(I)(LL:LL)=
03392 & CHALP(1)(LA:LA)
03393 100 CONTINUE
03394 110 CONTINUE
03395 CHIDNT(I)=CHCOM(I)
03396
03397
03398 DO 120 LL=1,10
03399 IF(CHIDNT(I)(LL:LL).EQ.'~') THEN
03400 CHTEMP=CHIDNT(I)
03401 CHIDNT(I)=CHTEMP(1:LL-1)//'bar'//CHTEMP(LL+1:10)//' '
03402 ENDIF
03403 120 CONTINUE
03404 IF(CHIDNT(I)(1:2).EQ.'nu'.AND.CHIDNT(I)(3:3).NE.'_') THEN
03405 CHTEMP=CHIDNT(I)
03406 CHIDNT(I)='nu_'//CHTEMP(3:7)
03407 ELSEIF(CHIDNT(I)(1:2).EQ.'n ') THEN
03408 CHIDNT(I)(1:3)='n0 '
03409 ELSEIF(CHIDNT(I)(1:4).EQ.'nbar') THEN
03410 CHIDNT(I)(1:5)='nbar0'
03411 ELSEIF(CHIDNT(I)(1:2).EQ.'p ') THEN
03412 CHIDNT(I)(1:3)='p+ '
03413 ELSEIF(CHIDNT(I)(1:4).EQ.'pbar'.OR.
03414 & CHIDNT(I)(1:2).EQ.'p-') THEN
03415 CHIDNT(I)(1:5)='pbar-'
03416 ELSEIF(CHIDNT(I)(1:6).EQ.'lambda') THEN
03417 CHIDNT(I)(7:7)='0'
03418 ELSEIF(CHIDNT(I)(1:3).EQ.'reg') THEN
03419 CHIDNT(I)(1:7)='reggeon'
03420 ELSEIF(CHIDNT(I)(1:3).EQ.'pom') THEN
03421 CHIDNT(I)(1:7)='pomeron'
03422 ENDIF
03423 130 CONTINUE
03424
03425
03426 IF(CHCOM(1)(1:2).EQ.'no') THEN
03427 MINT(65)=1
03428 RETURN
03429 ENDIF
03430
03431
03432 DO 160 I=1,2
03433 DO 140 J=1,35
03434 IF(CHIDNT(I+1).EQ.CHCDE(J)) MINT(10+I)=KCDE(J)
03435 140 CONTINUE
03436 PM(I)=PYMASS(MINT(10+I))
03437 VINT(2+I)=PM(I)
03438 MINT(140+I)=0
03439 IF(MINT(10+I).EQ.22.AND.CHIDNT(I+1)(6:6).EQ.'/') THEN
03440 CHTEMP=CHIDNT(I+1)(7:12)//' '
03441 DO 150 J=1,12
03442 IF(CHTEMP.EQ.CHCDE(J)) MINT(140+I)=KCDE(J)
03443 150 CONTINUE
03444 PM(I)=PYMASS(MINT(140+I))
03445 VINT(302+I)=PM(I)
03446 ENDIF
03447 160 CONTINUE
03448 IF(MINT(11).EQ.0) WRITE(MSTU(11),5000) CHBEAM(1:LEN(2))
03449 IF(MINT(12).EQ.0) WRITE(MSTU(11),5100) CHTARG(1:LEN(3))
03450 IF(MINT(11).EQ.0.OR.MINT(12).EQ.0) STOP
03451
03452
03453 CHINIT=' '
03454
03455
03456 IF(CHCOM(1)(1:2).EQ.'cm') THEN
03457 MINT(111)=1
03458 S=WIN**2
03459 IF(MSTP(122).GE.1) THEN
03460 IF(CHCOM(2)(1:1).NE.'e') THEN
03461 LOFFS=(31-(LEN(2)+LEN(3)))/2
03462 CHINIT(LOFFS+1:76)='PYTHIA will be initialized for a '//
03463 & CHCOM(2)(1:LEN(2))//' on '//CHCOM(3)(1:LEN(3))//
03464 & ' collider'//' '
03465 ELSE
03466 LOFFS=(30-(LEN(2)+LEN(3)))/2
03467 CHINIT(LOFFS+1:76)='PYTHIA will be initialized for an '//
03468 & CHCOM(2)(1:LEN(2))//' on '//CHCOM(3)(1:LEN(3))//
03469 & ' collider'//' '
03470 ENDIF
03471 WRITE(MSTU(11),5200) CHINIT
03472 WRITE(MSTU(11),5300) WIN
03473 ENDIF
03474
03475
03476 ELSEIF(CHCOM(1)(1:3).EQ.'fix') THEN
03477 MINT(111)=2
03478 S=PM(1)**2+PM(2)**2+2D0*PM(2)*SQRT(PM(1)**2+WIN**2)
03479 IF(MSTP(122).GE.1) THEN
03480 LOFFS=(29-(LEN(2)+LEN(3)))/2
03481 CHINIT(LOFFS+1:76)='PYTHIA will be initialized for '//
03482 & CHCOM(2)(1:LEN(2))//' on '//CHCOM(3)(1:LEN(3))//
03483 & ' fixed target'//' '
03484 WRITE(MSTU(11),5200) CHINIT
03485 WRITE(MSTU(11),5400) WIN
03486 WRITE(MSTU(11),5500) SQRT(S)
03487 ENDIF
03488
03489
03490 ELSEIF(CHCOM(1)(1:3).EQ.'use') THEN
03491 MINT(111)=3
03492 P(1,5)=PM(1)
03493 P(2,5)=PM(2)
03494 P(1,4)=SQRT(P(1,1)**2+P(1,2)**2+P(1,3)**2+P(1,5)**2)
03495 P(2,4)=SQRT(P(2,1)**2+P(2,2)**2+P(2,3)**2+P(2,5)**2)
03496 S=(P(1,4)+P(2,4))**2-(P(1,1)+P(2,1))**2-(P(1,2)+P(2,2))**2-
03497 & (P(1,3)+P(2,3))**2
03498 IF(MSTP(122).GE.1) THEN
03499 LOFFS=(22-(LEN(2)+LEN(3)))/2
03500 CHINIT(LOFFS+1:76)='PYTHIA will be initialized for '//
03501 & CHCOM(2)(1:LEN(2))//' on '//CHCOM(3)(1:LEN(3))//
03502 & ' user configuration'//' '
03503 WRITE(MSTU(11),5200) CHINIT
03504 WRITE(MSTU(11),5600)
03505 WRITE(MSTU(11),5700) CHCOM(2),P(1,1),P(1,2),P(1,3),P(1,4)
03506 WRITE(MSTU(11),5700) CHCOM(3),P(2,1),P(2,2),P(2,3),P(2,4)
03507 WRITE(MSTU(11),5500) SQRT(MAX(0D0,S))
03508 ENDIF
03509
03510
03511 ELSEIF(CHCOM(1)(1:4).EQ.'four') THEN
03512 MINT(111)=4
03513 PMS1=P(1,4)**2-P(1,1)**2-P(1,2)**2-P(1,3)**2
03514 P(1,5)=SIGN(SQRT(ABS(PMS1)),PMS1)
03515 PMS2=P(2,4)**2-P(2,1)**2-P(2,2)**2-P(2,3)**2
03516 P(2,5)=SIGN(SQRT(ABS(PMS2)),PMS2)
03517 S=(P(1,4)+P(2,4))**2-(P(1,1)+P(2,1))**2-(P(1,2)+P(2,2))**2-
03518 & (P(1,3)+P(2,3))**2
03519 IF(MSTP(122).GE.1) THEN
03520 LOFFS=(22-(LEN(2)+LEN(3)))/2
03521 CHINIT(LOFFS+1:76)='PYTHIA will be initialized for '//
03522 & CHCOM(2)(1:LEN(2))//' on '//CHCOM(3)(1:LEN(3))//
03523 & ' user configuration'//' '
03524 WRITE(MSTU(11),5200) CHINIT
03525 WRITE(MSTU(11),5600)
03526 WRITE(MSTU(11),5700) CHCOM(2),P(1,1),P(1,2),P(1,3),P(1,4)
03527 WRITE(MSTU(11),5700) CHCOM(3),P(2,1),P(2,2),P(2,3),P(2,4)
03528 WRITE(MSTU(11),5500) SQRT(MAX(0D0,S))
03529 ENDIF
03530
03531
03532 ELSEIF(CHCOM(1)(1:4).EQ.'five') THEN
03533 MINT(111)=5
03534 S=(P(1,4)+P(2,4))**2-(P(1,1)+P(2,1))**2-(P(1,2)+P(2,2))**2-
03535 & (P(1,3)+P(2,3))**2
03536 IF(MSTP(122).GE.1) THEN
03537 LOFFS=(22-(LEN(2)+LEN(3)))/2
03538 CHINIT(LOFFS+1:76)='PYTHIA will be initialized for '//
03539 & CHCOM(2)(1:LEN(2))//' on '//CHCOM(3)(1:LEN(3))//
03540 & ' user configuration'//' '
03541 WRITE(MSTU(11),5200) CHINIT
03542 WRITE(MSTU(11),5600)
03543 WRITE(MSTU(11),5700) CHCOM(2),P(1,1),P(1,2),P(1,3),P(1,4)
03544 WRITE(MSTU(11),5700) CHCOM(3),P(2,1),P(2,2),P(2,3),P(2,4)
03545 WRITE(MSTU(11),5500) SQRT(MAX(0D0,S))
03546 ENDIF
03547
03548
03549 ELSE
03550 WRITE(MSTU(11),5800) CHFRAM(1:LEN(1))
03551 STOP
03552 ENDIF
03553 IF(S.LT.PARP(2)**2) THEN
03554 WRITE(MSTU(11),5900) SQRT(S)
03555 STOP
03556 ENDIF
03557
03558
03559 5000 FORMAT(1X,'Error: unrecognized beam particle ''',A,'''D0'/
03560 &1X,'Execution stopped!')
03561 5100 FORMAT(1X,'Error: unrecognized target particle ''',A,'''D0'/
03562 &1X,'Execution stopped!')
03563 5200 FORMAT(/1X,78('=')/1X,'I',76X,'I'/1X,'I',A76,'I')
03564 5300 FORMAT(1X,'I',18X,'at',1X,F10.3,1X,'GeV center-of-mass energy',
03565 &19X,'I'/1X,'I',76X,'I'/1X,78('='))
03566 5400 FORMAT(1X,'I',22X,'at',1X,F10.3,1X,'GeV/c lab-momentum',22X,'I')
03567 5500 FORMAT(1X,'I',76X,'I'/1X,'I',11X,'corresponding to',1X,F10.3,1X,
03568 &'GeV center-of-mass energy',12X,'I'/1X,'I',76X,'I'/1X,78('='))
03569 5600 FORMAT(1X,'I',76X,'I'/1X,'I',18X,'px (GeV/c)',3X,'py (GeV/c)',3X,
03570 &'pz (GeV/c)',6X,'E (GeV)',9X,'I')
03571 5700 FORMAT(1X,'I',8X,A8,4(2X,F10.3,1X),8X,'I')
03572 5800 FORMAT(1X,'Error: unrecognized coordinate frame ''',A,'''D0'/
03573 &1X,'Execution stopped!')
03574 5900 FORMAT(1X,'Error: too low CM energy,',F8.3,' GeV for event ',
03575 &'generation.'/1X,'Execution stopped!')
03576
03577 RETURN
03578 END
03579
03580
03581
03582
03583
03584
03585 SUBROUTINE PYINKI(MODKI)
03586
03587
03588 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
03589 IMPLICIT INTEGER(I-N)
03590 INTEGER PYK,PYCHGE,PYCOMP
03591
03592 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
03593 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
03594 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
03595 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
03596 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
03597 COMMON/PYINT1/MINT(400),VINT(400)
03598 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYSUBS/,/PYPARS/,/PYINT1/
03599
03600
03601 N=2
03602 DO 100 I=1,2
03603 K(I,1)=1
03604 K(I,2)=MINT(10+I)
03605 IF(MINT(140+I).NE.0) K(I,2)=MINT(140+I)
03606 100 CONTINUE
03607
03608
03609 DO 110 J=6,10
03610 VINT(J)=0D0
03611 110 CONTINUE
03612
03613
03614 IF(MINT(111).EQ.1) THEN
03615 WIN=VINT(290)
03616 IF(MODKI.EQ.1) WIN=PARP(171)*VINT(290)
03617 S=WIN**2
03618 P(1,5)=VINT(3)
03619 P(2,5)=VINT(4)
03620 IF(MINT(141).NE.0) P(1,5)=VINT(303)
03621 IF(MINT(142).NE.0) P(2,5)=VINT(304)
03622 P(1,1)=0D0
03623 P(1,2)=0D0
03624 P(2,1)=0D0
03625 P(2,2)=0D0
03626 P(1,3)=SQRT(((S-P(1,5)**2-P(2,5)**2)**2-(2D0*P(1,5)*P(2,5))**2)/
03627 & (4D0*S))
03628 P(2,3)=-P(1,3)
03629 P(1,4)=SQRT(P(1,3)**2+P(1,5)**2)
03630 P(2,4)=SQRT(P(2,3)**2+P(2,5)**2)
03631
03632
03633 ELSEIF(MINT(111).EQ.2) THEN
03634 WIN=VINT(290)
03635 IF(MODKI.EQ.1) WIN=PARP(171)*VINT(290)
03636 P(1,5)=VINT(3)
03637 P(2,5)=VINT(4)
03638 IF(MINT(141).NE.0) P(1,5)=VINT(303)
03639 IF(MINT(142).NE.0) P(2,5)=VINT(304)
03640 P(1,1)=0D0
03641 P(1,2)=0D0
03642 P(2,1)=0D0
03643 P(2,2)=0D0
03644 P(1,3)=WIN
03645 P(1,4)=SQRT(P(1,3)**2+P(1,5)**2)
03646 P(2,3)=0D0
03647 P(2,4)=P(2,5)
03648 S=P(1,5)**2+P(2,5)**2+2D0*P(2,4)*P(1,4)
03649 VINT(10)=P(1,3)/(P(1,4)+P(2,4))
03650 CALL PYROBO(0,0,0D0,0D0,0D0,0D0,-VINT(10))
03651
03652
03653 ELSEIF(MINT(111).EQ.3) THEN
03654 P(1,5)=VINT(3)
03655 P(2,5)=VINT(4)
03656 IF(MINT(141).NE.0) P(1,5)=VINT(303)
03657 IF(MINT(142).NE.0) P(2,5)=VINT(304)
03658 P(1,4)=SQRT(P(1,1)**2+P(1,2)**2+P(1,3)**2+P(1,5)**2)
03659 P(2,4)=SQRT(P(2,1)**2+P(2,2)**2+P(2,3)**2+P(2,5)**2)
03660 DO 120 J=1,3
03661 VINT(7+J)=(P(1,J)+P(2,J))/(P(1,4)+P(2,4))
03662 120 CONTINUE
03663 CALL PYROBO(0,0,0D0,0D0,-VINT(8),-VINT(9),-VINT(10))
03664 VINT(7)=PYANGL(P(1,1),P(1,2))
03665 CALL PYROBO(0,0,0D0,-VINT(7),0D0,0D0,0D0)
03666 VINT(6)=PYANGL(P(1,3),P(1,1))
03667 CALL PYROBO(0,0,-VINT(6),0D0,0D0,0D0,0D0)
03668 S=P(1,5)**2+P(2,5)**2+2D0*(P(1,4)*P(2,4)-P(1,3)*P(2,3))
03669
03670
03671 ELSEIF(MINT(111).EQ.4) THEN
03672 PMS1=P(1,4)**2-P(1,1)**2-P(1,2)**2-P(1,3)**2
03673 P(1,5)=SIGN(SQRT(ABS(PMS1)),PMS1)
03674 PMS2=P(2,4)**2-P(2,1)**2-P(2,2)**2-P(2,3)**2
03675 P(2,5)=SIGN(SQRT(ABS(PMS2)),PMS2)
03676 DO 130 J=1,3
03677 VINT(7+J)=(P(1,J)+P(2,J))/(P(1,4)+P(2,4))
03678 130 CONTINUE
03679 CALL PYROBO(0,0,0D0,0D0,-VINT(8),-VINT(9),-VINT(10))
03680 VINT(7)=PYANGL(P(1,1),P(1,2))
03681 CALL PYROBO(0,0,0D0,-VINT(7),0D0,0D0,0D0)
03682 VINT(6)=PYANGL(P(1,3),P(1,1))
03683 CALL PYROBO(0,0,-VINT(6),0D0,0D0,0D0,0D0)
03684 S=(P(1,4)+P(2,4))**2
03685
03686
03687 ELSEIF(MINT(111).EQ.5) THEN
03688 DO 140 J=1,3
03689 VINT(7+J)=(P(1,J)+P(2,J))/(P(1,4)+P(2,4))
03690 140 CONTINUE
03691 CALL PYROBO(0,0,0D0,0D0,-VINT(8),-VINT(9),-VINT(10))
03692 VINT(7)=PYANGL(P(1,1),P(1,2))
03693 CALL PYROBO(0,0,0D0,-VINT(7),0D0,0D0,0D0)
03694 VINT(6)=PYANGL(P(1,3),P(1,1))
03695 CALL PYROBO(0,0,-VINT(6),0D0,0D0,0D0,0D0)
03696 S=(P(1,4)+P(2,4))**2
03697 ENDIF
03698
03699
03700 IF(MODKI.EQ.1.AND.S.LT.PARP(2)**2) THEN
03701 IF(MSTP(172).LE.1) THEN
03702 CALL PYERRM(23,
03703 & '(PYINKI:) too low invariant mass in this event')
03704 ELSE
03705 MSTI(61)=1
03706 RETURN
03707 ENDIF
03708 ENDIF
03709
03710
03711 VINT(1)=SQRT(S)
03712 VINT(2)=S
03713 IF(MINT(111).GE.4) THEN
03714 IF(MINT(141).EQ.0) THEN
03715 VINT(3)=P(1,5)
03716 IF(MINT(11).EQ.22.AND.P(1,5).LT.0) VINT(307)=P(1,5)**2
03717 ELSE
03718 VINT(303)=P(1,5)
03719 ENDIF
03720 IF(MINT(142).EQ.0) THEN
03721 VINT(4)=P(2,5)
03722 IF(MINT(12).EQ.22.AND.P(2,5).LT.0) VINT(308)=P(2,5)**2
03723 ELSE
03724 VINT(304)=P(2,5)
03725 ENDIF
03726 ENDIF
03727 VINT(5)=P(1,3)
03728 IF(MODKI.EQ.0) VINT(289)=S
03729 DO 150 J=1,5
03730 V(1,J)=0D0
03731 V(2,J)=0D0
03732 VINT(290+J)=P(1,J)
03733 VINT(295+J)=P(2,J)
03734 150 CONTINUE
03735
03736
03737 IF(MODKI.EQ.0) VINT(285)=CKIN(3)
03738 IF(MSTP(82).LE.1) THEN
03739 PTMN=PARP(81)*(VINT(1)/PARP(89))**PARP(90)
03740 ELSE
03741 PTMN=PARP(82)*(VINT(1)/PARP(89))**PARP(90)
03742 ENDIF
03743 VINT(149)=4D0*PTMN**2/S
03744 VINT(154)=PTMN
03745
03746 RETURN
03747 END
03748
03749
03750
03751
03752
03753
03754 SUBROUTINE PYINPR
03755
03756
03757 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
03758 IMPLICIT INTEGER(I-N)
03759 INTEGER PYK,PYCHGE,PYCOMP
03760
03761 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
03762 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
03763 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
03764 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
03765 COMMON/PYINT1/MINT(400),VINT(400)
03766 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
03767 SAVE /PYDAT1/,/PYDAT3/,/PYSUBS/,/PYPARS/,/PYINT1/,/PYINT2/
03768
03769
03770 IF(MSEL.NE.0) THEN
03771 DO 100 I=1,500
03772 MSUB(I)=0
03773 100 CONTINUE
03774 ENDIF
03775
03776
03777 IF(MSTP(82).LE.1) THEN
03778 PTMRUN=PARP(81)*(VINT(1)/PARP(89))**PARP(90)
03779 ELSE
03780 PTMRUN=PARP(82)*(VINT(1)/PARP(89))**PARP(90)
03781 ENDIF
03782
03783
03784 IF(MINT(11).EQ.22) MINT(15)=22
03785 IF(MINT(12).EQ.22) MINT(16)=22
03786
03787
03788 IF(MINT(121).EQ.2.AND.MSTP(14).EQ.10) THEN
03789 MSUB(10)=1
03790 MINT(123)=MINT(122)+1
03791
03792
03793
03794
03795 ELSEIF(MINT(121).GT.1) THEN
03796
03797
03798
03799 IF(MSTP(18).EQ.2) THEN
03800 MSTP(57)=3
03801 PARP(2)=2D0
03802 PARU(115)=1D0
03803 CKIN(5)=0.2D0
03804 CKIN(6)=0.2D0
03805 ENDIF
03806
03807
03808 PTMVMD=PTMRUN
03809 VINT(154)=PTMVMD
03810 PTMDIR=PTMVMD
03811 IF(MSTP(18).EQ.2) PTMDIR=PARP(15)
03812 PTMANO=PTMVMD
03813 IF(MSTP(15).EQ.5) PTMANO=0.60D0+
03814 & 0.125D0*LOG(1D0+0.10D0*VINT(1))**2
03815 IPTL=1
03816 IF(VINT(285).GT.MAX(PTMVMD,PTMDIR,PTMANO)) IPTL=0
03817 IF(MSEL.EQ.2) IPTL=1
03818
03819
03820 IF(MINT(121).EQ.3.OR.MINT(121).EQ.6.OR.(MINT(121).EQ.4.AND.
03821 & MSTP(14).EQ.30)) THEN
03822
03823
03824 IF(MINT(122).EQ.1) THEN
03825 MINT(123)=2
03826 MSUB(11)=1
03827 MSUB(12)=1
03828 MSUB(13)=1
03829 MSUB(28)=1
03830 MSUB(53)=1
03831 MSUB(68)=1
03832 IF(IPTL.EQ.1) MSUB(95)=1
03833 IF(MSEL.EQ.2) THEN
03834 MSUB(91)=1
03835 MSUB(92)=1
03836 MSUB(93)=1
03837 MSUB(94)=1
03838 ENDIF
03839 IF(IPTL.EQ.1) CKIN(3)=0D0
03840
03841
03842 ELSEIF(MINT(122).EQ.2) THEN
03843 MINT(123)=0
03844 IF(MINT(121).EQ.6) MINT(123)=5
03845 MSUB(131)=1
03846 MSUB(132)=1
03847 MSUB(135)=1
03848 MSUB(136)=1
03849 IF(IPTL.EQ.1) CKIN(3)=PTMDIR
03850
03851
03852 ELSEIF(MINT(122).EQ.3) THEN
03853 MINT(123)=3
03854 IF(MINT(121).EQ.6) MINT(123)=7
03855 MSUB(11)=1
03856 MSUB(12)=1
03857 MSUB(13)=1
03858 MSUB(28)=1
03859 MSUB(53)=1
03860 MSUB(68)=1
03861 IF(IPTL.EQ.1) MSUB(95)=1
03862 IF(MSEL.EQ.2) THEN
03863 MSUB(91)=1
03864 MSUB(92)=1
03865 MSUB(93)=1
03866 MSUB(94)=1
03867 ENDIF
03868 IF(IPTL.EQ.1) CKIN(3)=0D0
03869
03870
03871 ELSEIF(MINT(122).EQ.4.AND.(IABS(MINT(11)).GE.28.OR.
03872 & IABS(MINT(12)).GE.28)) THEN
03873 MINT(123)=8
03874 IF(IPTL.EQ.1) MSUB(99)=1
03875
03876
03877 ELSEIF(MINT(122).EQ.4) THEN
03878 MINT(123)=0
03879 MSUB(137)=1
03880 MSUB(138)=1
03881 MSUB(139)=1
03882 MSUB(140)=1
03883 DO 110 II=MDCY(22,2),MDCY(22,2)+MDCY(22,3)-1
03884 IF(IABS(KFDP(II,1)).GE.10) MDME(II,1)=MIN(0,MDME(II,1))
03885 110 CONTINUE
03886 IF(IPTL.EQ.1) CKIN(3)=PTMDIR
03887
03888
03889 ELSEIF(MINT(122).EQ.5) THEN
03890 MINT(123)=6
03891 MSUB(131)=1
03892 MSUB(132)=1
03893 MSUB(135)=1
03894 MSUB(136)=1
03895 IF(IPTL.EQ.1) CKIN(3)=PTMANO
03896
03897
03898 ELSEIF(MINT(122).EQ.6) THEN
03899 MINT(123)=3
03900 MSUB(11)=1
03901 MSUB(12)=1
03902 MSUB(13)=1
03903 MSUB(28)=1
03904 MSUB(53)=1
03905 MSUB(68)=1
03906 IF(IPTL.EQ.1) MSUB(95)=1
03907 IF(MSEL.EQ.2) THEN
03908 MSUB(91)=1
03909 MSUB(92)=1
03910 MSUB(93)=1
03911 MSUB(94)=1
03912 ENDIF
03913 IF(IPTL.EQ.1) CKIN(3)=0D0
03914 ENDIF
03915
03916
03917 ELSEIF(MINT(121).EQ.9.OR.MINT(121).EQ.13) THEN
03918
03919
03920 IF(MINT(122).EQ.1) THEN
03921 MINT(123)=0
03922 MSUB(137)=1
03923 MSUB(138)=1
03924 MSUB(139)=1
03925 MSUB(140)=1
03926 DO 120 II=MDCY(22,2),MDCY(22,2)+MDCY(22,3)-1
03927 IF(IABS(KFDP(II,1)).GE.10) MDME(II,1)=MIN(0,MDME(II,1))
03928 120 CONTINUE
03929 IF(IPTL.EQ.1) CKIN(3)=PTMDIR
03930
03931
03932 ELSEIF(MINT(122).EQ.2.OR.MINT(122).EQ.4) THEN
03933 MINT(123)=5
03934 MSUB(131)=1
03935 MSUB(132)=1
03936 MSUB(135)=1
03937 MSUB(136)=1
03938 IF(IPTL.EQ.1) CKIN(3)=PTMDIR
03939
03940
03941 ELSEIF(MINT(122).EQ.3.OR.MINT(122).EQ.7) THEN
03942 MINT(123)=6
03943 MSUB(131)=1
03944 MSUB(132)=1
03945 MSUB(135)=1
03946 MSUB(136)=1
03947 IF(IPTL.EQ.1) CKIN(3)=PTMANO
03948
03949
03950 ELSEIF(MINT(122).EQ.5) THEN
03951 MINT(123)=2
03952 MSUB(11)=1
03953 MSUB(12)=1
03954 MSUB(13)=1
03955 MSUB(28)=1
03956 MSUB(53)=1
03957 MSUB(68)=1
03958 IF(IPTL.EQ.1) MSUB(95)=1
03959 IF(MSEL.EQ.2) THEN
03960 MSUB(91)=1
03961 MSUB(92)=1
03962 MSUB(93)=1
03963 MSUB(94)=1
03964 ENDIF
03965 IF(IPTL.EQ.1) CKIN(3)=0D0
03966
03967
03968 ELSEIF(MINT(122).EQ.6.OR.MINT(122).EQ.8) THEN
03969 MINT(123)=7
03970 MSUB(11)=1
03971 MSUB(12)=1
03972 MSUB(13)=1
03973 MSUB(28)=1
03974 MSUB(53)=1
03975 MSUB(68)=1
03976 IF(IPTL.EQ.1) MSUB(95)=1
03977 IF(MSEL.EQ.2) THEN
03978 MSUB(91)=1
03979 MSUB(92)=1
03980 MSUB(93)=1
03981 MSUB(94)=1
03982 ENDIF
03983 IF(IPTL.EQ.1) CKIN(3)=0D0
03984
03985
03986 ELSEIF(MINT(122).EQ.9) THEN
03987 MINT(123)=3
03988 MSUB(11)=1
03989 MSUB(12)=1
03990 MSUB(13)=1
03991 MSUB(28)=1
03992 MSUB(53)=1
03993 MSUB(68)=1
03994 IF(IPTL.EQ.1) MSUB(95)=1
03995 IF(MSEL.EQ.2) THEN
03996 MSUB(91)=1
03997 MSUB(92)=1
03998 MSUB(93)=1
03999 MSUB(94)=1
04000 ENDIF
04001 IF(IPTL.EQ.1) CKIN(3)=0D0
04002
04003
04004 ELSEIF(MINT(122).EQ.10.OR.MINT(122).EQ.12) THEN
04005 MINT(123)=8
04006 IF(IPTL.EQ.1) MSUB(99)=1
04007
04008
04009 ELSEIF(MINT(122).EQ.11.OR.MINT(122).EQ.13) THEN
04010 MINT(123)=9
04011 IF(IPTL.EQ.1) MSUB(99)=1
04012 ENDIF
04013
04014
04015 ELSEIF(MINT(121).EQ.2) THEN
04016
04017
04018 IF(MINT(122).EQ.1) THEN
04019 MINT(123)=0
04020 MSUB(131)=1
04021 MSUB(132)=1
04022 MSUB(135)=1
04023 MSUB(136)=1
04024 IF(IPTL.EQ.1) CKIN(3)=PTMDIR
04025
04026
04027 ELSEIF(MINT(122).EQ.2) THEN
04028 MINT(123)=1
04029 MSUB(11)=1
04030 MSUB(12)=1
04031 MSUB(13)=1
04032 MSUB(28)=1
04033 MSUB(53)=1
04034 MSUB(68)=1
04035 IF(IPTL.EQ.1) MSUB(95)=1
04036 IF(MSEL.EQ.2) THEN
04037 MSUB(91)=1
04038 MSUB(92)=1
04039 MSUB(93)=1
04040 MSUB(94)=1
04041 ENDIF
04042 IF(IPTL.EQ.1) CKIN(3)=0D0
04043 ENDIF
04044
04045
04046 ELSEIF(MINT(121).EQ.4) THEN
04047
04048
04049 IF(MINT(122).EQ.1) THEN
04050 MINT(123)=0
04051 MSUB(137)=1
04052 MSUB(138)=1
04053 MSUB(139)=1
04054 MSUB(140)=1
04055 DO 130 II=MDCY(22,2),MDCY(22,2)+MDCY(22,3)-1
04056 IF(IABS(KFDP(II,1)).GE.10) MDME(II,1)=MIN(0,MDME(II,1))
04057 130 CONTINUE
04058 IF(IPTL.EQ.1) CKIN(3)=PTMDIR
04059
04060
04061 ELSEIF(MINT(122).EQ.2.OR.MINT(122).EQ.3) THEN
04062 MINT(123)=5
04063 MSUB(131)=1
04064 MSUB(132)=1
04065 MSUB(135)=1
04066 MSUB(136)=1
04067 IF(IPTL.EQ.1) CKIN(3)=PTMDIR
04068
04069
04070 ELSEIF(MINT(122).EQ.4) THEN
04071 MINT(123)=2
04072 MSUB(11)=1
04073 MSUB(12)=1
04074 MSUB(13)=1
04075 MSUB(28)=1
04076 MSUB(53)=1
04077 MSUB(68)=1
04078 IF(IPTL.EQ.1) MSUB(95)=1
04079 IF(MSEL.EQ.2) THEN
04080 MSUB(91)=1
04081 MSUB(92)=1
04082 MSUB(93)=1
04083 MSUB(94)=1
04084 ENDIF
04085 IF(IPTL.EQ.1) CKIN(3)=0D0
04086 ENDIF
04087
04088
04089 ENDIF
04090 CKIN(1)=2D0*CKIN(3)
04091 ENDIF
04092
04093
04094 DO 140 I=1,2
04095 MINT(40+I)=1
04096 IF(MINT(123).GE.1.AND.MINT(10+I).EQ.22) MINT(40+I)=2
04097 IF(IABS(MINT(10+I)).GT.100) MINT(40+I)=2
04098 IF(MINT(10+I).EQ.28.OR.MINT(10+I).EQ.29) MINT(40+I)=2
04099 MINT(44+I)=MINT(40+I)
04100 IF(MSTP(11).GE.1.AND.(IABS(MINT(10+I)).EQ.11.OR.
04101 & IABS(MINT(10+I)).EQ.13.OR.IABS(MINT(10+I)).EQ.15)) MINT(44+I)=3
04102 140 CONTINUE
04103
04104
04105
04106 IF(MINT(11).EQ.22.AND.MINT(12).EQ.22) THEN
04107 IF(MSTP(14).LE.10.AND.MINT(123).GE.4.AND.MINT(123).LE.6) THEN
04108 MINT(41)=1
04109 MINT(45)=1
04110 ELSEIF(MSTP(14).EQ.12.OR.MSTP(14).EQ.13.OR.MSTP(14).EQ.22.OR.
04111 & MSTP(14).EQ.26.OR.MSTP(14).EQ.27) THEN
04112 MINT(41)=1
04113 MINT(45)=1
04114 ELSEIF(MSTP(14).EQ.14.OR.MSTP(14).EQ.17.OR.MSTP(14).EQ.23.OR.
04115 & MSTP(14).EQ.28.OR.MSTP(14).EQ.29) THEN
04116 MINT(42)=1
04117 MINT(46)=1
04118 ELSEIF((MSTP(14).EQ.20.OR.MSTP(14).EQ.30).AND.(MINT(122).EQ.2
04119 & .OR.MINT(122).EQ.3.OR.MINT(122).EQ.10.OR.MINT(122).EQ.11)) THEN
04120 MINT(41)=1
04121 MINT(45)=1
04122 ELSEIF((MSTP(14).EQ.20.OR.MSTP(14).EQ.30).AND.(MINT(122).EQ.4
04123 & .OR.MINT(122).EQ.7.OR.MINT(122).EQ.12.OR.MINT(122).EQ.13)) THEN
04124 MINT(42)=1
04125 MINT(46)=1
04126 ELSEIF(MSTP(14).EQ.25.AND.MINT(122).EQ.2) THEN
04127 MINT(41)=1
04128 MINT(45)=1
04129 ELSEIF(MSTP(14).EQ.25.AND.MINT(122).EQ.3) THEN
04130 MINT(42)=1
04131 MINT(46)=1
04132 ENDIF
04133 ELSEIF(MINT(11).EQ.22.OR.MINT(12).EQ.22) THEN
04134 IF(MSTP(14).EQ.26.OR.MSTP(14).EQ.28.OR.MINT(122).EQ.4) THEN
04135 IF(MINT(11).EQ.22) THEN
04136 MINT(41)=1
04137 MINT(45)=1
04138 ELSE
04139 MINT(42)=1
04140 MINT(46)=1
04141 ENDIF
04142 ENDIF
04143 IF(MINT(123).GE.4.AND.MINT(123).LE.7) CALL PYERRM(26,
04144 & '(PYINPR:) unallowed MSTP(14) code for single photon')
04145 ENDIF
04146
04147
04148 MINT(43)=2*MINT(41)+MINT(42)-2
04149 MINT(44)=MINT(43)
04150 IF(MINT(123).LE.0) THEN
04151 IF(MINT(11).EQ.22) MINT(43)=MINT(43)+2
04152 IF(MINT(12).EQ.22) MINT(43)=MINT(43)+1
04153 ELSEIF(MINT(123).LE.3) THEN
04154 IF(MINT(11).EQ.22) MINT(44)=MINT(44)-2
04155 IF(MINT(12).EQ.22) MINT(44)=MINT(44)-1
04156 ELSEIF(MINT(11).EQ.22.AND.MINT(12).EQ.22) THEN
04157 MINT(43)=4
04158 MINT(44)=1
04159 ENDIF
04160 MINT(47)=2*MIN(2,MINT(45))+MIN(2,MINT(46))-2
04161 IF(MIN(MINT(45),MINT(46)).EQ.3) MINT(47)=5
04162 IF(MINT(45).EQ.1.AND.MINT(46).EQ.3) MINT(47)=6
04163 IF(MINT(45).EQ.3.AND.MINT(46).EQ.1) MINT(47)=7
04164 MINT(50)=0
04165 IF(MINT(41).EQ.2.AND.MINT(42).EQ.2) MINT(50)=1
04166 MINT(107)=0
04167 MINT(108)=0
04168 IF(MINT(121).EQ.9.OR.MINT(121).EQ.13) THEN
04169 IF((MINT(122).GE.4.AND.MINT(122).LE.6).OR.MINT(122).EQ.12)
04170 & MINT(107)=2
04171 IF((MINT(122).GE.7.AND.MINT(122).LE.9).OR.MINT(122).EQ.13)
04172 & MINT(107)=3
04173 IF(MINT(122).EQ.10.OR.MINT(122).EQ.11) MINT(107)=4
04174 IF(MINT(122).EQ.2.OR.MINT(122).EQ.5.OR.MINT(122).EQ.8.OR.
04175 & MINT(122).EQ.10) MINT(108)=2
04176 IF(MINT(122).EQ.3.OR.MINT(122).EQ.6.OR.MINT(122).EQ.9.OR.
04177 & MINT(122).EQ.11) MINT(108)=3
04178 IF(MINT(122).EQ.12.OR.MINT(122).EQ.13) MINT(108)=4
04179 ELSEIF(MINT(121).EQ.4.AND.MSTP(14).EQ.25) THEN
04180 IF(MINT(122).GE.3) MINT(107)=1
04181 IF(MINT(122).EQ.2.OR.MINT(122).EQ.4) MINT(108)=1
04182 ELSEIF(MINT(121).EQ.2) THEN
04183 IF(MINT(122).EQ.2.AND.MINT(11).EQ.22) MINT(107)=1
04184 IF(MINT(122).EQ.2.AND.MINT(12).EQ.22) MINT(108)=1
04185 ELSE
04186 IF(MINT(11).EQ.22) THEN
04187 MINT(107)=MINT(123)
04188 IF(MINT(123).GE.4) MINT(107)=0
04189 IF(MINT(123).EQ.7) MINT(107)=2
04190 IF(MSTP(14).EQ.26.OR.MSTP(14).EQ.27) MINT(107)=4
04191 IF(MSTP(14).EQ.28) MINT(107)=2
04192 IF(MSTP(14).EQ.29) MINT(107)=3
04193 IF(MSTP(14).EQ.30.AND.MINT(121).EQ.4.AND.MINT(122).EQ.4)
04194 & MINT(107)=4
04195 ENDIF
04196 IF(MINT(12).EQ.22) THEN
04197 MINT(108)=MINT(123)
04198 IF(MINT(123).GE.4) MINT(108)=MINT(123)-3
04199 IF(MINT(123).EQ.7) MINT(108)=3
04200 IF(MSTP(14).EQ.26) MINT(108)=2
04201 IF(MSTP(14).EQ.27) MINT(108)=3
04202 IF(MSTP(14).EQ.28.OR.MSTP(14).EQ.29) MINT(108)=4
04203 IF(MSTP(14).EQ.30.AND.MINT(121).EQ.4.AND.MINT(122).EQ.4)
04204 & MINT(108)=4
04205 ENDIF
04206 IF(MINT(11).EQ.22.AND.MINT(12).EQ.22.AND.(MSTP(14).EQ.14.OR.
04207 & MSTP(14).EQ.17.OR.MSTP(14).EQ.18.OR.MSTP(14).EQ.23)) THEN
04208 MINTTP=MINT(107)
04209 MINT(107)=MINT(108)
04210 MINT(108)=MINTTP
04211 ENDIF
04212 ENDIF
04213 IF(MINT(15).EQ.22.AND.MINT(41).EQ.2) MINT(15)=0
04214 IF(MINT(16).EQ.22.AND.MINT(42).EQ.2) MINT(16)=0
04215
04216
04217
04218
04219 IF(MINT(121).GT.1) THEN
04220 ELSEIF(MSEL.EQ.1.OR.MSEL.EQ.2) THEN
04221
04222 IF(MINT(43).EQ.1) THEN
04223
04224 IF(MINT(11)+MINT(12).EQ.0) MSUB(1)=1
04225 IF(MINT(11)+MINT(12).NE.0) MSUB(2)=1
04226
04227 ELSEIF(MINT(43).LE.3.AND.MINT(123).EQ.0.AND.
04228 & (MINT(11).EQ.22.OR.MINT(12).EQ.22)) THEN
04229
04230 MSUB(133)=1
04231 MSUB(134)=1
04232
04233 ELSEIF((MINT(123).EQ.8.OR.MINT(123).EQ.9).AND.(MINT(11).EQ.22
04234 & .OR.MINT(12).EQ.22)) THEN
04235
04236 MSUB(99)=1
04237
04238 ELSEIF(MINT(43).LE.3) THEN
04239
04240 MSUB(10)=1
04241
04242 ELSEIF(MINT(123).EQ.0.AND.MINT(11).EQ.22.AND.
04243 & MINT(12).EQ.22) THEN
04244
04245
04246 DO 150 ISUB=137,140
04247 MSUB(ISUB)=1
04248 150 CONTINUE
04249 DO 155 II=MDCY(22,2),MDCY(22,2)+MDCY(22,3)-1
04250 IF(IABS(KFDP(II,1)).GE.10) MDME(II,1)=MIN(0,MDME(II,1))
04251 155 CONTINUE
04252 PTMDIR=PTMRUN
04253 IF(MSTP(18).EQ.2) PTMDIR=PARP(15)
04254 IF(CKIN(3).LT.PTMRUN.OR.MSEL.EQ.2) CKIN(3)=PTMDIR
04255 CKIN(1)=MAX(CKIN(1),2D0*CKIN(3))
04256
04257 ELSEIF((MINT(123).EQ.0.AND.(MINT(11).EQ.22.OR.MINT(12).EQ.22))
04258 & .OR.(MINT(123).GE.4.AND.MINT(123).LE.6.AND.MINT(11).EQ.22.AND.
04259 & MINT(12).EQ.22)) THEN
04260
04261 DO 160 ISUB=131,136
04262 MSUB(ISUB)=1
04263 160 CONTINUE
04264
04265 ELSEIF(MSEL.EQ.1) THEN
04266
04267 MSUB(11)=1
04268 MSUB(12)=1
04269 MSUB(13)=1
04270 MSUB(28)=1
04271 MSUB(53)=1
04272 MSUB(68)=1
04273 PTMN=PTMRUN
04274 VINT(154)=PTMN
04275 IF(CKIN(3).LT.PTMN) MSUB(95)=1
04276 IF(MSUB(95).EQ.1.AND.MINT(50).EQ.0) MSUB(95)=0
04277
04278 ELSE
04279
04280 MSUB(11)=1
04281 MSUB(12)=1
04282 MSUB(13)=1
04283 MSUB(28)=1
04284 MSUB(53)=1
04285 MSUB(68)=1
04286 MSUB(91)=1
04287 MSUB(92)=1
04288 MSUB(93)=1
04289 MSUB(94)=1
04290 MSUB(95)=1
04291 ENDIF
04292
04293 ELSEIF(MSEL.GE.4.AND.MSEL.LE.8) THEN
04294
04295 MSUB(81)=1
04296 MSUB(82)=1
04297 MSUB(84)=1
04298 DO 170 J=1,MIN(8,MDCY(21,3))
04299 MDME(MDCY(21,2)+J-1,1)=0
04300 170 CONTINUE
04301 MDME(MDCY(21,2)+MSEL-1,1)=1
04302 MSUB(85)=1
04303 DO 180 J=1,MIN(12,MDCY(22,3))
04304 MDME(MDCY(22,2)+J-1,1)=0
04305 180 CONTINUE
04306 MDME(MDCY(22,2)+MSEL-1,1)=1
04307
04308 ELSEIF(MSEL.EQ.10) THEN
04309
04310 MSUB(14)=1
04311 MSUB(18)=1
04312 MSUB(29)=1
04313
04314 ELSEIF(MSEL.EQ.11) THEN
04315
04316 MSUB(1)=1
04317
04318 ELSEIF(MSEL.EQ.12) THEN
04319
04320 MSUB(2)=1
04321
04322 ELSEIF(MSEL.EQ.13) THEN
04323
04324 MSUB(15)=1
04325 MSUB(30)=1
04326
04327 ELSEIF(MSEL.EQ.14) THEN
04328
04329 MSUB(16)=1
04330 MSUB(31)=1
04331
04332 ELSEIF(MSEL.EQ.15) THEN
04333
04334 MSUB(19)=1
04335 MSUB(20)=1
04336 MSUB(22)=1
04337 MSUB(23)=1
04338 MSUB(25)=1
04339
04340 ELSEIF(MSEL.EQ.16) THEN
04341
04342 MSUB(3)=1
04343 MSUB(102)=1
04344 MSUB(103)=1
04345 MSUB(123)=1
04346 MSUB(124)=1
04347
04348 ELSEIF(MSEL.EQ.17) THEN
04349
04350 MSUB(24)=1
04351 MSUB(26)=1
04352
04353 ELSEIF(MSEL.EQ.18) THEN
04354
04355 MSUB(24)=1
04356 MSUB(103)=1
04357 MSUB(123)=1
04358 MSUB(124)=1
04359
04360 ELSEIF(MSEL.EQ.19) THEN
04361
04362 MSUB(24)=1
04363 MSUB(103)=1
04364 MSUB(123)=1
04365 MSUB(124)=1
04366 MSUB(153)=1
04367 MSUB(171)=1
04368 MSUB(173)=1
04369 MSUB(174)=1
04370 MSUB(158)=1
04371 MSUB(176)=1
04372 MSUB(178)=1
04373 MSUB(179)=1
04374
04375 ELSEIF(MSEL.EQ.21) THEN
04376
04377 MSUB(141)=1
04378
04379 ELSEIF(MSEL.EQ.22) THEN
04380
04381 MSUB(142)=1
04382
04383 ELSEIF(MSEL.EQ.23) THEN
04384
04385 MSUB(143)=1
04386
04387 ELSEIF(MSEL.EQ.24) THEN
04388
04389 MSUB(144)=1
04390
04391 ELSEIF(MSEL.EQ.25) THEN
04392
04393 MSUB(145)=1
04394 MSUB(162)=1
04395 MSUB(163)=1
04396 MSUB(164)=1
04397
04398 ELSEIF(MSEL.GE.35.AND.MSEL.LE.38) THEN
04399
04400 MSUB(83)=1
04401 DO 190 J=1,MIN(8,MDCY(21,3))
04402 MDME(MDCY(21,2)+J-1,1)=0
04403 190 CONTINUE
04404 MDME(MDCY(21,2)+MSEL-31,1)=1
04405
04406
04407 ELSEIF(MSEL.EQ.39) THEN
04408
04409 IF(MINT(43).EQ.4) THEN
04410
04411 DO 200 I=201,301
04412 IF(ISET(I).GE.0) MSUB(I)=1
04413 200 CONTINUE
04414 ELSEIF(MINT(43).EQ.1) THEN
04415
04416 DO 210 I=201,214
04417 MSUB(I)=1
04418 210 CONTINUE
04419 MSUB(210)=0
04420 MSUB(211)=0
04421 MSUB(212)=0
04422 DO 220 I=216,228
04423 MSUB(I)=1
04424 220 CONTINUE
04425 DO 230 I=261,263
04426 MSUB(I)=1
04427 230 CONTINUE
04428 MSUB(277)=1
04429 MSUB(278)=1
04430 ENDIF
04431
04432 ELSEIF(MSEL.EQ.40) THEN
04433
04434 IF(MINT(43).EQ.4) THEN
04435 MSUB(243)=1
04436 MSUB(244)=1
04437 MSUB(258)=1
04438 MSUB(259)=1
04439 MSUB(261)=1
04440 MSUB(262)=1
04441 MSUB(264)=1
04442 MSUB(265)=1
04443 DO 240 I=271,296
04444 MSUB(I)=1
04445 240 CONTINUE
04446 ELSEIF(MINT(43).EQ.1) THEN
04447 MSUB(277)=1
04448 MSUB(278)=1
04449 ENDIF
04450
04451 ELSEIF(MSEL.EQ.41) THEN
04452
04453 MSUB(261)=1
04454 MSUB(262)=1
04455 MSUB(263)=1
04456 IF(MINT(43).EQ.4) THEN
04457 MSUB(264)=1
04458 MSUB(265)=1
04459 ENDIF
04460
04461 ELSEIF(MSEL.EQ.42) THEN
04462
04463 DO 250 I=201,214
04464 MSUB(I)=1
04465 250 CONTINUE
04466 IF(MINT(43).NE.4) THEN
04467 MSUB(210)=0
04468 MSUB(211)=0
04469 MSUB(212)=0
04470 ENDIF
04471
04472 ELSEIF(MSEL.EQ.43) THEN
04473
04474 IF(MINT(43).EQ.4) THEN
04475 DO 260 I=237,242
04476 MSUB(I)=1
04477 260 CONTINUE
04478 DO 270 I=246,257
04479 MSUB(I)=1
04480 270 CONTINUE
04481 ENDIF
04482
04483 ELSEIF(MSEL.EQ.44) THEN
04484
04485 IF(MINT(43).EQ.4) THEN
04486 DO 280 I=216,236
04487 MSUB(I)=1
04488 280 CONTINUE
04489 ELSEIF(MINT(43).EQ.1) THEN
04490 DO 290 I=216,228
04491 MSUB(I)=1
04492 290 CONTINUE
04493 ENDIF
04494
04495 ELSEIF(MSEL.EQ.45) THEN
04496
04497 MSUB(287)=1
04498 MSUB(288)=1
04499 IF(MINT(43).EQ.4) THEN
04500 DO 300 I=281,296
04501 MSUB(I)=1
04502 300 CONTINUE
04503 ENDIF
04504
04505 ELSEIF(MSEL.EQ.50) THEN
04506 DO 305 I=361,368
04507 MSUB(I)=1
04508 305 CONTINUE
04509 IF(MINT(43).EQ.4) THEN
04510 DO 307 I=370,377
04511 MSUB(I)=1
04512 307 CONTINUE
04513 ENDIF
04514
04515 ENDIF
04516
04517
04518 KFLQM=1
04519 DO 310 I=1,MIN(8,MDCY(21,3))
04520 IDC=I+MDCY(21,2)-1
04521 IF(MDME(IDC,1).LE.0) GOTO 310
04522 KFLQM=I
04523 310 CONTINUE
04524 IF(MSTP(7).GE.1.AND.MSTP(7).LE.8.AND.(MSEL.LE.3.OR.MSEL.GE.9))
04525 &KFLQM=MSTP(7)
04526 MINT(55)=KFLQM
04527 KFPR(81,1)=KFLQM
04528 KFPR(81,2)=KFLQM
04529 KFPR(82,1)=KFLQM
04530 KFPR(82,2)=KFLQM
04531 KFPR(83,1)=KFLQM
04532 KFPR(84,1)=KFLQM
04533 KFPR(84,2)=KFLQM
04534
04535
04536 KFLFM=1
04537 DO 320 I=1,MIN(12,MDCY(22,3))
04538 IDC=I+MDCY(22,2)-1
04539 IF(MDME(IDC,1).LE.0) GOTO 320
04540 KFLFM=KFDP(IDC,1)
04541 320 CONTINUE
04542 IF(((MSTP(7).GE.1.AND.MSTP(7).LE.8).OR.(MSTP(7).GE.11.AND.
04543 &MSTP(7).LE.18)).AND.(MSEL.LE.3.OR.MSEL.GE.9)) KFLFM=MSTP(7)
04544 MINT(56)=KFLFM
04545 KFPR(85,1)=KFLFM
04546 KFPR(85,2)=KFLFM
04547
04548 RETURN
04549 END
04550
04551
04552
04553
04554
04555
04556
04557
04558
04559
04560
04561
04562
04563
04564
04565
04566
04567
04568
04569
04570
04571
04572
04573
04574
04575
04576
04577
04578 SUBROUTINE PYXTOT
04579
04580
04581 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
04582 IMPLICIT INTEGER(I-N)
04583 INTEGER PYK,PYCHGE,PYCOMP
04584
04585 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
04586 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
04587 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
04588 COMMON/PYINT1/MINT(400),VINT(400)
04589 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
04590 COMMON/PYINT7/SIGT(0:6,0:6,0:5)
04591 SAVE /PYDAT1/,/PYDAT2/,/PYPARS/,/PYINT1/,/PYINT5/,/PYINT7/
04592
04593 DIMENSION NPROC(30),XPAR(30),YPAR(30),IHADA(20),IHADB(20),
04594 &PMHAD(4),BHAD(4),BETP(4),IFITSD(20),IFITDD(20),CEFFS(10,8),
04595 &CEFFD(10,9),SIGTMP(6,0:5)
04596
04597
04598 DATA EPS/0.0808D0/, ETA/-0.4525D0/, ALP/0.25D0/, CRES/2D0/,
04599 &PMRC/1.062D0/, SMP/0.880D0/, FACEL/0.0511D0/, FACSD/0.0336D0/,
04600 &FACDD/0.0084D0/
04601
04602
04603 DATA NPROC/7*1,3*0,6*1,4*0,4*3,2*6,4*0/
04604
04605 DATA XPAR/2*21.70D0,3*13.63D0,10.01D0,0.970D0,3*0D0,
04606 &8.56D0,6.29D0,0.609D0,4.62D0,0.447D0,0.0434D0,4*0D0,
04607 &0.0677D0,0.0534D0,0.0425D0,0.0335D0,2.11D-4,1.31D-4,4*0D0/
04608 DATA YPAR/
04609 &56.08D0,98.39D0,27.56D0,36.02D0,31.79D0,-1.51D0,-0.146D0,3*0D0,
04610 &13.08D0,-0.62D0,-0.060D0,0.030D0,-0.0028D0,0.00028D0,4*0D0,
04611 &0.129D0,0.115D0,0.081D0,0.072D0,2.15D-4,1.70D-4,4*0D0/
04612
04613
04614
04615 DATA IHADA/2*1,3*2,3,4,3*0,3*2,2*3,4,4*0/
04616 DATA IHADB/7*1,3*0,2,3,4,3,2*4,4*0/
04617
04618 DATA PMHAD/0.938D0,0.770D0,1.020D0,3.097D0/
04619 DATA BHAD/2.3D0,1.4D0,1.4D0,0.23D0/
04620 DATA BETP/4.658D0,2.926D0,2.149D0,0.208D0/
04621
04622
04623 DATA IFITSD/2*1,3*2,3,4,3*0,5,6,7,8,9,10,4*0/
04624 DATA IFITDD/2*1,3*2,3,4,3*0,5,6,7,8,9,10,4*0/
04625 DATA ((CEFFS(J1,J2),J2=1,8),J1=1,10)/
04626 &0.213D0, 0.0D0, -0.47D0, 150D0, 0.213D0, 0.0D0, -0.47D0, 150D0,
04627 &0.213D0, 0.0D0, -0.47D0, 150D0, 0.267D0, 0.0D0, -0.47D0, 100D0,
04628 &0.213D0, 0.0D0, -0.47D0, 150D0, 0.232D0, 0.0D0, -0.47D0, 110D0,
04629 &0.213D0, 7.0D0, -0.55D0, 800D0, 0.115D0, 0.0D0, -0.47D0, 110D0,
04630 &0.267D0, 0.0D0, -0.46D0, 75D0, 0.267D0, 0.0D0, -0.46D0, 75D0,
04631 &0.232D0, 0.0D0, -0.46D0, 85D0, 0.267D0, 0.0D0, -0.48D0, 100D0,
04632 &0.115D0, 0.0D0, -0.50D0, 90D0, 0.267D0, 6.0D0, -0.56D0, 420D0,
04633 &0.232D0, 0.0D0, -0.48D0, 110D0, 0.232D0, 0.0D0, -0.48D0, 110D0,
04634 &0.115D0, 0.0D0, -0.52D0, 120D0, 0.232D0, 6.0D0, -0.56D0, 470D0,
04635 &0.115D0, 5.5D0, -0.58D0, 570D0, 0.115D0, 5.5D0, -0.58D0, 570D0/
04636 DATA ((CEFFD(J1,J2),J2=1,9),J1=1,10)/
04637 &3.11D0, -7.34D0, 9.71D0, 0.068D0, -0.42D0, 1.31D0,
04638 &-1.37D0, 35.0D0, 118D0, 3.11D0, -7.10D0, 10.6D0,
04639 &0.073D0, -0.41D0, 1.17D0, -1.41D0, 31.6D0, 95D0,
04640 &3.12D0, -7.43D0, 9.21D0, 0.067D0, -0.44D0, 1.41D0,
04641 &-1.35D0, 36.5D0, 132D0, 3.13D0, -8.18D0, -4.20D0,
04642 &0.056D0, -0.71D0, 3.12D0, -1.12D0, 55.2D0, 1298D0,
04643 &3.11D0, -6.90D0, 11.4D0, 0.078D0, -0.40D0, 1.05D0,
04644 &-1.40D0, 28.4D0, 78D0, 3.11D0, -7.13D0, 10.0D0,
04645 &0.071D0, -0.41D0, 1.23D0, -1.34D0, 33.1D0, 105D0,
04646 &3.12D0, -7.90D0, -1.49D0, 0.054D0, -0.64D0, 2.72D0,
04647 &-1.13D0, 53.1D0, 995D0, 3.11D0, -7.39D0, 8.22D0,
04648 &0.065D0, -0.44D0, 1.45D0, -1.36D0, 38.1D0, 148D0,
04649 &3.18D0, -8.95D0, -3.37D0, 0.057D0, -0.76D0, 3.32D0,
04650 &-1.12D0, 55.6D0, 1472D0, 4.18D0, -29.2D0, 56.2D0,
04651 &0.074D0, -1.36D0, 6.67D0, -1.14D0, 116.2D0, 6532D0/
04652
04653
04654 AEM=PARU(101)
04655 PMTH=PARP(102)
04656 S=VINT(2)
04657 SRT=VINT(1)
04658 SEPS=S**EPS
04659 SETA=S**ETA
04660 SLOG=LOG(S)
04661
04662
04663 VINT(281)=(XPAR(22)*SEPS+YPAR(22)*SETA)/
04664 &(XPAR(5)*SEPS+YPAR(5)*SETA)
04665 VINT(317)=1D0
04666 IF(MINT(50).NE.1) RETURN
04667
04668
04669 IF(IABS(MINT(11)).LE.IABS(MINT(12))) THEN
04670 KF1=IABS(MINT(11))
04671 KF2=IABS(MINT(12))
04672 IORD=1
04673 ELSE
04674 KF1=IABS(MINT(12))
04675 KF2=IABS(MINT(11))
04676 IORD=2
04677 ENDIF
04678 ISGN12=ISIGN(1,MINT(11)*MINT(12))
04679
04680
04681 IF(KF1.GT.1000) THEN
04682 IPROC=1
04683 IF(ISGN12.LT.0) IPROC=2
04684 ELSEIF(KF1.GT.100.AND.KF2.GT.1000) THEN
04685 IPROC=3
04686 IF(ISGN12.LT.0) IPROC=4
04687 IF(KF1.EQ.111) IPROC=5
04688 ELSEIF(KF1.GT.100) THEN
04689 IPROC=11
04690 ELSEIF(KF2.GT.1000) THEN
04691 IPROC=21
04692 IF(MINT(123).EQ.2.OR.MINT(123).EQ.3) IPROC=22
04693 ELSEIF(KF2.GT.100) THEN
04694 IPROC=23
04695 IF(MINT(123).EQ.2.OR.MINT(123).EQ.3) IPROC=24
04696 ELSE
04697 IPROC=25
04698 IF(MINT(123).EQ.2.OR.MINT(123).EQ.3.OR.MINT(123).EQ.7) IPROC=26
04699 ENDIF
04700
04701
04702 NPR=NPROC(IPROC)
04703 MINT(101)=1
04704 MINT(102)=1
04705 IF(NPR.EQ.3) THEN
04706 MINT(100+IORD)=4
04707 ELSEIF(NPR.EQ.6) THEN
04708 MINT(101)=4
04709 MINT(102)=4
04710 ENDIF
04711 N1=0
04712 IF(MINT(101).EQ.4) N1=4
04713 N2=0
04714 IF(MINT(102).EQ.4) N2=4
04715
04716
04717 IF(MSTP(31).LE.0) RETURN
04718 IF(NPR.EQ.0) CALL PYERRM(26,
04719 &'(PYXTOT:) cross section for this process not yet implemented')
04720
04721
04722 AEM=PARU(101)
04723 PMTH=PARP(102)
04724 S=VINT(2)
04725 SRT=VINT(1)
04726 SEPS=S**EPS
04727 SETA=S**ETA
04728 SLOG=LOG(S)
04729
04730
04731 DO 110 I=1,NPR
04732 IF(NPR.EQ.1) THEN
04733 IPR=IPROC
04734 ELSEIF(NPR.EQ.3) THEN
04735 IPR=I+4
04736 IF(KF2.LT.1000) IPR=I+10
04737 ELSEIF(NPR.EQ.6) THEN
04738 IPR=I+10
04739 ENDIF
04740
04741
04742 IHA=IHADA(IPR)
04743 IHB=IHADB(IPR)
04744 PMA=PMHAD(IHA)
04745 PMB=PMHAD(IHB)
04746 BHA=BHAD(IHA)
04747 BHB=BHAD(IHB)
04748 ISD=IFITSD(IPR)
04749 IDD=IFITDD(IPR)
04750
04751
04752 DO 100 J=0,5
04753 SIGTMP(I,J)=0D0
04754 100 CONTINUE
04755 IF(SRT.LT.PMA+PMB+PARP(104)) GOTO 110
04756
04757
04758 SIGTMP(I,0)=XPAR(IPR)*SEPS+YPAR(IPR)*SETA
04759 BEL=2D0*BHA+2D0*BHB+4D0*SEPS-4.2D0
04760 SIGTMP(I,1)=FACEL*SIGTMP(I,0)**2/BEL
04761
04762
04763 BSD=2D0*BHB
04764 SQML=(PMA+PMTH)**2
04765 SQMU=S*CEFFS(ISD,1)+CEFFS(ISD,2)
04766 SUM1=LOG((BSD+2D0*ALP*LOG(S/SQML))/
04767 & (BSD+2D0*ALP*LOG(S/SQMU)))/(2D0*ALP)
04768 BXB=CEFFS(ISD,3)+CEFFS(ISD,4)/S
04769 SUM2=CRES*LOG(1D0+((PMA+PMRC)/(PMA+PMTH))**2)/
04770 & (BSD+2D0*ALP*LOG(S/((PMA+PMTH)*(PMA+PMRC)))+BXB)
04771 SIGTMP(I,2)=FACSD*XPAR(IPR)*BETP(IHB)*MAX(0D0,SUM1+SUM2)
04772
04773
04774 BSD=2D0*BHA
04775 SQML=(PMB+PMTH)**2
04776 SQMU=S*CEFFS(ISD,5)+CEFFS(ISD,6)
04777 SUM1=LOG((BSD+2D0*ALP*LOG(S/SQML))/
04778 & (BSD+2D0*ALP*LOG(S/SQMU)))/(2D0*ALP)
04779 BAX=CEFFS(ISD,7)+CEFFS(ISD,8)/S
04780 SUM2=CRES*LOG(1D0+((PMB+PMRC)/(PMB+PMTH))**2)/
04781 & (BSD+2D0*ALP*LOG(S/((PMB+PMTH)*(PMB+PMRC)))+BAX)
04782 SIGTMP(I,3)=FACSD*XPAR(IPR)*BETP(IHA)*MAX(0D0,SUM1+SUM2)
04783
04784
04785 IF(IORD.EQ.2) THEN
04786 SIGSAV=SIGTMP(I,2)
04787 SIGTMP(I,2)=SIGTMP(I,3)
04788 SIGTMP(I,3)=SIGSAV
04789 ENDIF
04790
04791
04792 YEFF=LOG(S*SMP/((PMA+PMTH)*(PMB+PMTH))**2)
04793 DEFF=CEFFD(IDD,1)+CEFFD(IDD,2)/SLOG+CEFFD(IDD,3)/SLOG**2
04794 SUM1=DEFF+YEFF*(LOG(MAX(1D-10,YEFF/DEFF))-1D0)/(2D0*ALP)
04795 IF(YEFF.LE.0) SUM1=0D0
04796 SQMU=S*(CEFFD(IDD,4)+CEFFD(IDD,5)/SLOG+CEFFD(IDD,6)/SLOG**2)
04797 SLUP=LOG(MAX(1.1D0,S/(ALP*(PMA+PMTH)**2*(PMB+PMTH)*(PMB+PMRC))))
04798 SLDN=LOG(MAX(1.1D0,S/(ALP*SQMU*(PMB+PMTH)*(PMB+PMRC))))
04799 SUM2=CRES*LOG(1D0+((PMB+PMRC)/(PMB+PMTH))**2)*LOG(SLUP/SLDN)/
04800 & (2D0*ALP)
04801 SLUP=LOG(MAX(1.1D0,S/(ALP*(PMB+PMTH)**2*(PMA+PMTH)*(PMA+PMRC))))
04802 SLDN=LOG(MAX(1.1D0,S/(ALP*SQMU*(PMA+PMTH)*(PMA+PMRC))))
04803 SUM3=CRES*LOG(1D0+((PMA+PMRC)/(PMA+PMTH))**2)*LOG(SLUP/SLDN)/
04804 & (2D0*ALP)
04805 BXX=CEFFD(IDD,7)+CEFFD(IDD,8)/SRT+CEFFD(IDD,9)/S
04806 SLRR=LOG(S/(ALP*(PMA+PMTH)*(PMA+PMRC)*(PMB+PMTH)*(PMB*PMRC)))
04807 SUM4=CRES**2*LOG(1D0+((PMA+PMRC)/(PMA+PMTH))**2)*
04808 & LOG(1D0+((PMB+PMRC)/(PMB+PMTH))**2)/MAX(0.1D0,2D0*ALP*SLRR+BXX)
04809 SIGTMP(I,4)=FACDD*XPAR(IPR)*MAX(0D0,SUM1+SUM2+SUM3+SUM4)
04810
04811
04812 SIGTMP(I,5)=SIGTMP(I,0)-SIGTMP(I,1)-SIGTMP(I,2)-SIGTMP(I,3)-
04813 & SIGTMP(I,4)
04814 110 CONTINUE
04815
04816
04817 IF(MINT(101).EQ.1.AND.MINT(102).EQ.1) THEN
04818 DO 120 J=0,5
04819 SIGT(0,0,J)=SIGTMP(1,J)
04820 120 CONTINUE
04821
04822
04823 ELSEIF(MINT(101).EQ.4.AND.MINT(102).EQ.1) THEN
04824 IF(MINT(107).EQ.2) THEN
04825 VINT(317)=(PMHAD(2)**2/(PMHAD(2)**2+VINT(307)))**2
04826 ELSE
04827 VINT(317)=16D0*PARP(15)**2*VINT(154)**2/
04828 & ((4D0*PARP(15)**2+VINT(307))*(4D0*VINT(154)**2+VINT(307)))
04829 ENDIF
04830 IF(MSTP(20).GT.0) THEN
04831 VINT(317)=VINT(317)*(VINT(2)/(VINT(2)+VINT(307)))**MSTP(20)
04832 ENDIF
04833 DO 140 I=1,4
04834 IF(MINT(107).EQ.2) THEN
04835 CONV=(AEM/PARP(160+I))*VINT(317)
04836 ELSEIF(VINT(154).GT.PARP(15)) THEN
04837 CONV=(AEM/PARU(1))*(KCHG(I,1)/3D0)**2*PARP(18)**2*
04838 & (1D0/PARP(15)**2-1D0/VINT(154)**2)*VINT(317)
04839 ELSE
04840 CONV=0D0
04841 ENDIF
04842 I1=MAX(1,I-1)
04843 DO 130 J=0,5
04844 SIGT(I,0,J)=CONV*SIGTMP(I1,J)
04845 130 CONTINUE
04846 140 CONTINUE
04847 DO 150 J=0,5
04848 SIGT(0,0,J)=SIGT(1,0,J)+SIGT(2,0,J)+SIGT(3,0,J)+SIGT(4,0,J)
04849 150 CONTINUE
04850
04851
04852 ELSEIF(MINT(101).EQ.1.AND.MINT(102).EQ.4) THEN
04853 IF(MINT(108).EQ.2) THEN
04854 VINT(317)=(PMHAD(2)**2/(PMHAD(2)**2+VINT(308)))**2
04855 ELSE
04856 VINT(317)=16D0*PARP(15)**2*VINT(154)**2/
04857 & ((4D0*PARP(15)**2+VINT(308))*(4D0*VINT(154)**2+VINT(308)))
04858 ENDIF
04859 IF(MSTP(20).GT.0) THEN
04860 VINT(317)=VINT(317)*(VINT(2)/(VINT(2)+VINT(308)))**MSTP(20)
04861 ENDIF
04862 DO 170 I=1,4
04863 IF(MINT(108).EQ.2) THEN
04864 CONV=(AEM/PARP(160+I))*VINT(317)
04865 ELSEIF(VINT(154).GT.PARP(15)) THEN
04866 CONV=(AEM/PARU(1))*(KCHG(I,1)/3D0)**2*PARP(18)**2*
04867 & (1D0/PARP(15)**2-1D0/VINT(154)**2)*VINT(317)
04868 ELSE
04869 CONV=0D0
04870 ENDIF
04871 IV=MAX(1,I-1)
04872 DO 160 J=0,5
04873 SIGT(0,I,J)=CONV*SIGTMP(IV,J)
04874 160 CONTINUE
04875 170 CONTINUE
04876 DO 180 J=0,5
04877 SIGT(0,0,J)=SIGT(0,1,J)+SIGT(0,2,J)+SIGT(0,3,J)+SIGT(0,4,J)
04878 180 CONTINUE
04879
04880
04881 ELSE
04882 IF(MINT(107).EQ.2) THEN
04883 VINT(317)=(PMHAD(2)**2/(PMHAD(2)**2+VINT(307)))**2
04884 ELSE
04885 VINT(317)=16D0*PARP(15)**2*VINT(154)**2/
04886 & ((4D0*PARP(15)**2+VINT(307))*(4D0*VINT(154)**2+VINT(307)))
04887 ENDIF
04888 IF(MINT(108).EQ.2) THEN
04889 VINT(317)=VINT(317)*(PMHAD(2)**2/(PMHAD(2)**2+VINT(308)))**2
04890 ELSE
04891 VINT(317)=VINT(317)*16D0*PARP(15)**2*VINT(154)**2/
04892 & ((4D0*PARP(15)**2+VINT(308))*(4D0*VINT(154)**2+VINT(308)))
04893 ENDIF
04894 IF(MSTP(20).GT.0) THEN
04895 VINT(317)=VINT(317)*(VINT(2)/(VINT(2)+VINT(307)+
04896 & VINT(308)))**MSTP(20)
04897 ENDIF
04898 DO 210 I1=1,4
04899 DO 200 I2=1,4
04900 IF(MINT(107).EQ.2) THEN
04901 CONV=(AEM/PARP(160+I1))*VINT(317)
04902 ELSEIF(VINT(154).GT.PARP(15)) THEN
04903 CONV=(AEM/PARU(1))*(KCHG(I1,1)/3D0)**2*PARP(18)**2*
04904 & (1D0/PARP(15)**2-1D0/VINT(154)**2)*VINT(317)
04905 ELSE
04906 CONV=0D0
04907 ENDIF
04908 IF(MINT(108).EQ.2) THEN
04909 CONV=CONV*(AEM/PARP(160+I2))
04910 ELSEIF(VINT(154).GT.PARP(15)) THEN
04911 CONV=CONV*(AEM/PARU(1))*(KCHG(I2,1)/3D0)**2*PARP(18)**2*
04912 & (1D0/PARP(15)**2-1D0/VINT(154)**2)
04913 ELSE
04914 CONV=0D0
04915 ENDIF
04916 IF(I1.LE.2) THEN
04917 IV=MAX(1,I2-1)
04918 ELSEIF(I2.LE.2) THEN
04919 IV=MAX(1,I1-1)
04920 ELSEIF(I1.EQ.I2) THEN
04921 IV=2*I1-2
04922 ELSE
04923 IV=5
04924 ENDIF
04925 DO 190 J=0,5
04926 JV=J
04927 IF(I2.GT.I1.AND.(J.EQ.2.OR.J.EQ.3)) JV=5-J
04928 SIGT(I1,I2,J)=CONV*SIGTMP(IV,JV)
04929 190 CONTINUE
04930 200 CONTINUE
04931 210 CONTINUE
04932 DO 230 J=0,5
04933 DO 220 I=1,4
04934 SIGT(I,0,J)=SIGT(I,1,J)+SIGT(I,2,J)+SIGT(I,3,J)+SIGT(I,4,J)
04935 SIGT(0,I,J)=SIGT(1,I,J)+SIGT(2,I,J)+SIGT(3,I,J)+SIGT(4,I,J)
04936 220 CONTINUE
04937 SIGT(0,0,J)=SIGT(1,0,J)+SIGT(2,0,J)+SIGT(3,0,J)+SIGT(4,0,J)
04938 230 CONTINUE
04939 ENDIF
04940
04941
04942 IF(IPROC.EQ.21.OR.IPROC.EQ.23.OR.IPROC.EQ.25) THEN
04943 RFAC=(XPAR(IPROC)*SEPS+YPAR(IPROC)*SETA)/SIGT(0,0,0)
04944 DO 260 I1=0,N1
04945 DO 250 I2=0,N2
04946 DO 240 J=0,5
04947 SIGT(I1,I2,J)=RFAC*SIGT(I1,I2,J)
04948 240 CONTINUE
04949 250 CONTINUE
04950 260 CONTINUE
04951 ENDIF
04952
04953 RETURN
04954 END
04955
04956
04957
04958
04959
04960
04961
04962
04963 SUBROUTINE PYMAXI
04964
04965
04966 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
04967 IMPLICIT INTEGER(I-N)
04968 INTEGER PYK,PYCHGE,PYCOMP
04969
04970 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
04971
04972 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
04973 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
04974 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
04975 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
04976 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
04977 COMMON/PYINT1/MINT(400),VINT(400)
04978 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
04979 COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
04980 COMMON/PYINT4/MWID(500),WIDS(500,5)
04981 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
04982 COMMON/PYINT6/PROC(0:500)
04983 CHARACTER PROC*28
04984 COMMON/PYINT7/SIGT(0:6,0:6,0:5)
04985 SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYSUBS/,/PYPARS/,/PYINT1/,
04986 &/PYINT2/,/PYINT3/,/PYINT4/,/PYINT5/,/PYINT6/,/PYINT7/
04987
04988 CHARACTER CVAR(4)*4
04989 DIMENSION NPTS(4),MVARPT(500,4),VINTPT(500,30),SIGSPT(500),
04990 &NAREL(7),WTREL(7),WTMAT(7,7),WTRELN(7),COEFU(7),COEFO(7),
04991 &IACCMX(4),SIGSMX(4),SIGSSM(3),PMMN(2)
04992 DATA CVAR/'tau ','tau''','y* ','cth '/
04993 DATA SIGSSM/3*0D0/
04994
04995
04996 NPOSI=0
04997 VINT(143)=1D0
04998 VINT(144)=1D0
04999 XSEC(0,1)=0D0
05000 DO 460 ISUB=1,500
05001 MINT(1)=ISUB
05002 MINT(51)=0
05003
05004
05005 IF(MSUB(ISUB).EQ.1.OR.(ISUB.GE.91.AND.ISUB.LE.100)) THEN
05006 IF(MINT(141).NE.0.OR.MINT(142).NE.0) CALL PYGAGA(2,WTGAGA)
05007 ENDIF
05008
05009
05010 IF(ISET(ISUB).EQ.11) THEN
05011 IF(MSUB(ISUB).NE.1) GOTO 460
05012 XSEC(ISUB,1)=1.00001D0*COEF(ISUB,1)
05013 IF(MINT(141).NE.0.OR.MINT(142).NE.0) XSEC(ISUB,1)=
05014 & WTGAGA*XSEC(ISUB,1)
05015 NPOSI=NPOSI+1
05016 GOTO 450
05017 ELSEIF(ISUB.GE.91.AND.ISUB.LE.95) THEN
05018 CALL PYSIGH(NCHN,SIGS)
05019 XSEC(ISUB,1)=SIGS
05020 IF(MINT(141).NE.0.OR.MINT(142).NE.0) XSEC(ISUB,1)=
05021 & WTGAGA*XSEC(ISUB,1)
05022 IF(MSUB(ISUB).NE.1) GOTO 460
05023 NPOSI=NPOSI+1
05024 GOTO 450
05025 ELSEIF(ISUB.EQ.99.AND.MSUB(ISUB).EQ.1) THEN
05026 CALL PYSIGH(NCHN,SIGS)
05027 XSEC(ISUB,1)=SIGS
05028 IF(MINT(141).NE.0.OR.MINT(142).NE.0) XSEC(ISUB,1)=
05029 & WTGAGA*XSEC(ISUB,1)
05030 IF(XSEC(ISUB,1).EQ.0D0) THEN
05031 MSUB(ISUB)=0
05032 ELSE
05033 NPOSI=NPOSI+1
05034 ENDIF
05035 GOTO 450
05036 ELSEIF(ISUB.EQ.96) THEN
05037 IF(MINT(50).EQ.0) GOTO 460
05038 IF(MSUB(95).NE.1.AND.MSTP(81).LE.0.AND.MSTP(131).LE.0)
05039 & GOTO 460
05040 IF(MINT(49).EQ.0.AND.MSTP(131).EQ.0) GOTO 460
05041 ELSEIF(ISUB.EQ.11.OR.ISUB.EQ.12.OR.ISUB.EQ.13.OR.ISUB.EQ.28.OR.
05042 & ISUB.EQ.53.OR.ISUB.EQ.68) THEN
05043 IF(MSUB(ISUB).NE.1.OR.MSUB(95).EQ.1) GOTO 460
05044 ELSE
05045 IF(MSUB(ISUB).NE.1) GOTO 460
05046 ENDIF
05047 ISTSB=ISET(ISUB)
05048 IF(ISUB.EQ.96) ISTSB=2
05049 IF(MSTP(122).GE.2) WRITE(MSTU(11),5000) ISUB
05050 MWTXS=0
05051 IF(MSTP(142).GE.1.AND.ISUB.NE.96.AND.MSUB(91)+MSUB(92)+MSUB(93)+
05052 & MSUB(94)+MSUB(95).EQ.0) MWTXS=1
05053
05054
05055 MINT(72)=0
05056 KFR1=0
05057 IF(ISTSB.EQ.1.OR.ISTSB.EQ.3.OR.ISTSB.EQ.5) THEN
05058 KFR1=KFPR(ISUB,1)
05059 ELSEIF(ISUB.EQ.24.OR.ISUB.EQ.25.OR.ISUB.EQ.110.OR.ISUB.EQ.165
05060 & .OR.ISUB.EQ.171.OR.ISUB.EQ.176) THEN
05061 KFR1=23
05062 ELSEIF(ISUB.EQ.23.OR.ISUB.EQ.26.OR.ISUB.EQ.166.OR.ISUB.EQ.172
05063 & .OR.ISUB.EQ.177) THEN
05064 KFR1=24
05065 ELSEIF(ISUB.GE.71.AND.ISUB.LE.77) THEN
05066 KFR1=25
05067 IF(MSTP(46).EQ.5) THEN
05068 KFR1=30
05069 PMAS(30,1)=PARP(45)
05070 PMAS(30,2)=PARP(45)**3/(96D0*PARU(1)*PARP(47)**2)
05071 ENDIF
05072 ELSEIF(ISUB.EQ.194) THEN
05073 KFR1=54
05074 ELSEIF(ISUB.EQ.195) THEN
05075 KFR1=55
05076 ELSEIF(ISUB.GE.361.AND.ISUB.LE.368) THEN
05077 KFR1=54
05078 ELSEIF(ISUB.GE.370.AND.ISUB.LE.377) THEN
05079 KFR1=55
05080 ENDIF
05081 CKMX=CKIN(2)
05082 IF(CKMX.LE.0D0) CKMX=VINT(1)
05083 KCR1=PYCOMP(KFR1)
05084 IF(KFR1.NE.0) THEN
05085 IF(CKIN(1).GT.PMAS(KCR1,1)+20D0*PMAS(KCR1,2).OR.
05086 & CKMX.LT.PMAS(KCR1,1)-20D0*PMAS(KCR1,2)) KFR1=0
05087 ENDIF
05088 IF(KFR1.NE.0) THEN
05089 TAUR1=PMAS(KCR1,1)**2/VINT(2)
05090 IF(KFR1.EQ.54) THEN
05091 CALL PYTECM(S1,S2)
05092 TAUR1=S1/VINT(2)
05093 ENDIF
05094 GAMR1=PMAS(KCR1,1)*PMAS(KCR1,2)/VINT(2)
05095 MINT(72)=1
05096 MINT(73)=KFR1
05097 VINT(73)=TAUR1
05098 VINT(74)=GAMR1
05099 ENDIF
05100 KFR2=0
05101 IF(ISUB.EQ.141.OR.ISUB.EQ.194.OR.(ISUB.GE.364.AND.ISUB.LE.368))
05102 $ THEN
05103 KFR2=23
05104 IF(ISUB.EQ.194) THEN
05105 KFR2=56
05106 ELSEIF(ISUB.GE.364.AND.ISUB.LE.368) THEN
05107 KFR2=56
05108 ENDIF
05109 KCR2=PYCOMP(KFR2)
05110 TAUR2=PMAS(KCR2,1)**2/VINT(2)
05111 IF(KFR2.EQ.56) THEN
05112 CALL PYTECM(S1,S2)
05113 TAUR2=S2/VINT(2)
05114 ENDIF
05115 GAMR2=PMAS(KCR2,1)*PMAS(KCR2,2)/VINT(2)
05116 IF(CKIN(1).GT.PMAS(KCR2,1)+20D0*PMAS(KCR2,2).OR.
05117 & CKMX.LT.PMAS(KCR2,1)-20D0*PMAS(KCR2,2)) KFR2=0
05118 IF(KFR2.NE.0.AND.KFR1.NE.0) THEN
05119 MINT(72)=2
05120 MINT(74)=KFR2
05121 VINT(75)=TAUR2
05122 VINT(76)=GAMR2
05123 ELSEIF(KFR2.NE.0) THEN
05124 KFR1=KFR2
05125 TAUR1=TAUR2
05126 GAMR1=GAMR2
05127 MINT(72)=1
05128 MINT(73)=KFR1
05129 VINT(73)=TAUR1
05130 VINT(74)=GAMR1
05131 KFR2=0
05132 ENDIF
05133 ENDIF
05134
05135
05136 SQM3=0D0
05137 SQM4=0D0
05138 MINT(71)=0
05139 VINT(71)=CKIN(3)
05140 VINT(80)=1D0
05141 IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) THEN
05142 NBW=0
05143 DO 110 I=1,2
05144 PMMN(I)=0D0
05145 IF(KFPR(ISUB,I).EQ.0) THEN
05146 ELSEIF(MSTP(42).LE.0.OR.PMAS(PYCOMP(KFPR(ISUB,I)),2).LT.
05147 & PARP(41)) THEN
05148 IF(I.EQ.1) SQM3=PMAS(PYCOMP(KFPR(ISUB,I)),1)**2
05149 IF(I.EQ.2) SQM4=PMAS(PYCOMP(KFPR(ISUB,I)),1)**2
05150 ELSE
05151 NBW=NBW+1
05152
05153 KFLW=KFPR(ISUB,I)
05154 IF(KFLW/KSUSY1.EQ.1.OR.KFLW/KSUSY1.EQ.2) THEN
05155 KCW=PYCOMP(KFLW)
05156 PMMN(I)=PMAS(KCW,1)
05157 DO 100 IDC=MDCY(KCW,2),MDCY(KCW,2)+MDCY(KCW,3)-1
05158 IF(MDME(IDC,1).GT.0.AND.BRAT(IDC).GT.1E-4) THEN
05159 PMSUM=PMAS(PYCOMP(KFDP(IDC,1)),1)+
05160 & PMAS(PYCOMP(KFDP(IDC,2)),1)
05161 IF(KFDP(IDC,3).NE.0) PMSUM=PMSUM+
05162 & PMAS(PYCOMP(KFDP(IDC,3)),1)
05163 PMMN(I)=MIN(PMMN(I),PMSUM)
05164 ENDIF
05165 100 CONTINUE
05166 ELSEIF(KFLW.EQ.6) THEN
05167 PMMN(I)=PMAS(24,1)+PMAS(5,1)
05168 ENDIF
05169 ENDIF
05170 110 CONTINUE
05171 IF(NBW.GE.1) THEN
05172 CKIN41=CKIN(41)
05173 CKIN43=CKIN(43)
05174 CKIN(41)=MAX(PMMN(1),CKIN(41))
05175 CKIN(43)=MAX(PMMN(2),CKIN(43))
05176 CALL PYOFSH(3,0,KFPR(ISUB,1),KFPR(ISUB,2),0D0,PQM3,PQM4)
05177 CKIN(41)=CKIN41
05178 CKIN(43)=CKIN43
05179 IF(MINT(51).EQ.1) THEN
05180 WRITE(MSTU(11),5100) ISUB
05181 MSUB(ISUB)=0
05182 GOTO 460
05183 ENDIF
05184 SQM3=PQM3**2
05185 SQM4=PQM4**2
05186 ENDIF
05187 IF(MIN(SQM3,SQM4).LT.CKIN(6)**2) MINT(71)=1
05188 IF(MINT(71).EQ.1) VINT(71)=MAX(CKIN(3),CKIN(5))
05189 IF(ISUB.EQ.96.AND.MSTP(82).LE.1) THEN
05190 VINT(71)=PARP(81)*(VINT(1)/PARP(89))**PARP(90)
05191 ELSEIF(ISUB.EQ.96) THEN
05192 VINT(71)=0.08D0*PARP(82)*(VINT(1)/PARP(89))**PARP(90)
05193 ENDIF
05194 ENDIF
05195 VINT(63)=SQM3
05196 VINT(64)=SQM4
05197
05198
05199 IF(ISTSB.EQ.5) THEN
05200 VINT(201)=0D0
05201 IF(KFPR(ISUB,2).GT.0) VINT(201)=PMAS(PYCOMP(KFPR(ISUB,2)),1)
05202 VINT(206)=VINT(201)
05203 VINT(204)=PMAS(23,1)
05204 IF(ISUB.EQ.124.OR.ISUB.EQ.351) VINT(204)=PMAS(24,1)
05205 IF(ISUB.EQ.352) VINT(204)=PMAS(63,1)
05206 IF(ISUB.EQ.121.OR.ISUB.EQ.122.OR.ISUB.EQ.181.OR.ISUB.EQ.182
05207 & .OR.ISUB.EQ.186.OR.ISUB.EQ.187) VINT(204)=VINT(201)
05208 VINT(209)=VINT(204)
05209 ENDIF
05210
05211
05212 NPTS(1)=2+2*MINT(72)
05213 IF(MINT(47).EQ.1) THEN
05214 IF(ISTSB.EQ.1.OR.ISTSB.EQ.2) NPTS(1)=1
05215 ELSEIF(MINT(47).GE.5) THEN
05216 IF(ISTSB.LE.2.OR.ISTSB.GT.5) NPTS(1)=NPTS(1)+1
05217 ENDIF
05218 NPTS(2)=1
05219 IF(ISTSB.GE.3.AND.ISTSB.LE.5) THEN
05220 IF(MINT(47).GE.2) NPTS(2)=2
05221 IF(MINT(47).GE.5) NPTS(2)=3
05222 ENDIF
05223 NPTS(3)=1
05224 IF(MINT(47).EQ.4.OR.MINT(47).EQ.5) THEN
05225 NPTS(3)=3
05226 IF(MINT(45).EQ.3) NPTS(3)=NPTS(3)+1
05227 IF(MINT(46).EQ.3) NPTS(3)=NPTS(3)+1
05228 ENDIF
05229 NPTS(4)=1
05230 IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) NPTS(4)=5
05231 NTRY=NPTS(1)*NPTS(2)*NPTS(3)*NPTS(4)
05232
05233
05234 DO 120 J=1,20
05235 COEF(ISUB,J)=0D0
05236 120 CONTINUE
05237 COEF(ISUB,1)=1D0
05238 COEF(ISUB,8)=0.5D0
05239 COEF(ISUB,9)=0.5D0
05240 COEF(ISUB,13)=1D0
05241 COEF(ISUB,18)=1D0
05242 MCTH=0
05243 MTAUP=0
05244 METAUP=0
05245 VINT(23)=0D0
05246 VINT(26)=0D0
05247 SIGSAM=0D0
05248
05249
05250
05251 CALL PYKLIM(1)
05252 METAU=MINT(51)
05253 NACC=0
05254 DO 150 ITRY=1,NTRY
05255 MINT(51)=0
05256 IF(METAU.EQ.1) GOTO 150
05257 IF(MOD(ITRY-1,NPTS(2)*NPTS(3)*NPTS(4)).EQ.0) THEN
05258 MTAU=1+(ITRY-1)/(NPTS(2)*NPTS(3)*NPTS(4))
05259 IF(MTAU.GT.2+2*MINT(72)) MTAU=7
05260 RTAU=0.5D0
05261
05262
05263 IF(MINT(72).EQ.2) THEN
05264 IF(ABS(PMAS(KCR2,1)-PMAS(KCR1,1)).LT.
05265 & 0.01D0*(PMAS(KCR2,1)+PMAS(KCR1,1))) THEN
05266 IF(MTAU.EQ.3.OR.MTAU.EQ.4) THEN
05267 RTAU=0.4D0
05268 ELSEIF(MTAU.EQ.5.OR.MTAU.EQ.6) THEN
05269 RTAU=0.6D0
05270 ENDIF
05271 ENDIF
05272 ENDIF
05273 CALL PYKMAP(1,MTAU,RTAU)
05274 IF(ISTSB.GE.3.AND.ISTSB.LE.5) CALL PYKLIM(4)
05275 METAUP=MINT(51)
05276 ENDIF
05277 IF(METAUP.EQ.1) GOTO 150
05278 IF(ISTSB.GE.3.AND.ISTSB.LE.5.AND.MOD(ITRY-1,NPTS(3)*NPTS(4))
05279 & .EQ.0) THEN
05280 MTAUP=1+MOD((ITRY-1)/(NPTS(3)*NPTS(4)),NPTS(2))
05281 CALL PYKMAP(4,MTAUP,0.5D0)
05282 ENDIF
05283 IF(MOD(ITRY-1,NPTS(3)*NPTS(4)).EQ.0) THEN
05284 CALL PYKLIM(2)
05285 MEYST=MINT(51)
05286 ENDIF
05287 IF(MEYST.EQ.1) GOTO 150
05288 IF(MOD(ITRY-1,NPTS(4)).EQ.0) THEN
05289 MYST=1+MOD((ITRY-1)/NPTS(4),NPTS(3))
05290 IF(MYST.EQ.4.AND.MINT(45).NE.3) MYST=5
05291 CALL PYKMAP(2,MYST,0.5D0)
05292 CALL PYKLIM(3)
05293 MECTH=MINT(51)
05294 ENDIF
05295 IF(MECTH.EQ.1) GOTO 150
05296 IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) THEN
05297 MCTH=1+MOD(ITRY-1,NPTS(4))
05298 CALL PYKMAP(3,MCTH,0.5D0)
05299 ENDIF
05300 IF(ISUB.EQ.96) VINT(25)=VINT(21)*(1D0-VINT(23)**2)
05301
05302
05303 MINT(51)=0
05304 CALL PYKLIM(0)
05305 IF(MINT(51).EQ.1) GOTO 150
05306 NACC=NACC+1
05307 MVARPT(NACC,1)=MTAU
05308 MVARPT(NACC,2)=MTAUP
05309 MVARPT(NACC,3)=MYST
05310 MVARPT(NACC,4)=MCTH
05311 DO 130 J=1,30
05312 VINTPT(NACC,J)=VINT(10+J)
05313 130 CONTINUE
05314
05315
05316 IF(ISTSB.NE.5) THEN
05317 CALL PYSIGH(NCHN,SIGS)
05318 IF(MWTXS.EQ.1) THEN
05319 CALL PYEVWT(WTXS)
05320 SIGS=WTXS*SIGS
05321 ENDIF
05322
05323
05324 ELSE
05325 SIGS=0D0
05326 DO 140 IKIN3=1,MSTP(129)
05327 CALL PYKMAP(5,0,0D0)
05328 IF(MINT(51).EQ.1) GOTO 140
05329 CALL PYSIGH(NCHN,SIGTMP)
05330 IF(MWTXS.EQ.1) THEN
05331 CALL PYEVWT(WTXS)
05332 SIGTMP=WTXS*SIGTMP
05333 ENDIF
05334 IF(SIGTMP.GT.SIGS) SIGS=SIGTMP
05335 140 CONTINUE
05336 ENDIF
05337
05338
05339 SIGSPT(NACC)=SIGS
05340 IF(SIGS.GT.SIGSAM) SIGSAM=SIGS
05341 IF(MSTP(122).GE.2) WRITE(MSTU(11),5200) MTAU,MYST,MCTH,MTAUP,
05342 & VINT(21),VINT(22),VINT(23),VINT(26),SIGS
05343 150 CONTINUE
05344 IF(NACC.EQ.0) THEN
05345 WRITE(MSTU(11),5100) ISUB
05346 MSUB(ISUB)=0
05347 GOTO 460
05348 ELSEIF(SIGSAM.EQ.0D0) THEN
05349 WRITE(MSTU(11),5300) ISUB
05350 MSUB(ISUB)=0
05351 GOTO 460
05352 ENDIF
05353 IF(ISUB.NE.96) NPOSI=NPOSI+1
05354
05355
05356 TAUMIN=VINT(11)
05357 TAUMAX=VINT(31)
05358 ATAU1=LOG(TAUMAX/TAUMIN)
05359 IF(NPTS(1).GE.2) THEN
05360 ATAU2=(TAUMAX-TAUMIN)/(TAUMAX*TAUMIN)
05361 ENDIF
05362 IF(NPTS(1).GE.4) THEN
05363 ATAU3=LOG(TAUMAX/TAUMIN*(TAUMIN+TAUR1)/(TAUMAX+TAUR1))/TAUR1
05364 ATAU4=(ATAN((TAUMAX-TAUR1)/GAMR1)-ATAN((TAUMIN-TAUR1)/GAMR1))/
05365 & GAMR1
05366 ENDIF
05367 IF(NPTS(1).GE.6) THEN
05368 ATAU5=LOG(TAUMAX/TAUMIN*(TAUMIN+TAUR2)/(TAUMAX+TAUR2))/TAUR2
05369 ATAU6=(ATAN((TAUMAX-TAUR2)/GAMR2)-ATAN((TAUMIN-TAUR2)/GAMR2))/
05370 & GAMR2
05371 ENDIF
05372 IF(NPTS(1).GT.2+2*MINT(72)) THEN
05373 ATAU7=LOG(MAX(2D-10,1D0-TAUMIN)/MAX(2D-10,1D0-TAUMAX))
05374 ENDIF
05375
05376
05377 DO 320 IVAR=1,4
05378 IF(NPTS(IVAR).EQ.1) GOTO 320
05379 IF(ISUB.EQ.96.AND.IVAR.EQ.4) GOTO 320
05380 NBIN=NPTS(IVAR)
05381 DO 170 J1=1,NBIN
05382 NAREL(J1)=0
05383 WTREL(J1)=0D0
05384 COEFU(J1)=0D0
05385 DO 160 J2=1,NBIN
05386 WTMAT(J1,J2)=0D0
05387 160 CONTINUE
05388 170 CONTINUE
05389 DO 180 IACC=1,NACC
05390 IBIN=MVARPT(IACC,IVAR)
05391 IF(IVAR.EQ.1.AND.IBIN.EQ.7) IBIN=3+2*MINT(72)
05392 IF(IVAR.EQ.3.AND.IBIN.EQ.5.AND.MINT(45).NE.3) IBIN=4
05393 NAREL(IBIN)=NAREL(IBIN)+1
05394 WTREL(IBIN)=WTREL(IBIN)+SIGSPT(IACC)
05395
05396
05397 IF(IVAR.EQ.1) THEN
05398 TAU=VINTPT(IACC,11)
05399 WTMAT(IBIN,1)=WTMAT(IBIN,1)+1D0
05400 WTMAT(IBIN,2)=WTMAT(IBIN,2)+(ATAU1/ATAU2)/TAU
05401 IF(NBIN.GE.4) THEN
05402 WTMAT(IBIN,3)=WTMAT(IBIN,3)+(ATAU1/ATAU3)/(TAU+TAUR1)
05403 WTMAT(IBIN,4)=WTMAT(IBIN,4)+(ATAU1/ATAU4)*TAU/
05404 & ((TAU-TAUR1)**2+GAMR1**2)
05405 ENDIF
05406 IF(NBIN.GE.6) THEN
05407 WTMAT(IBIN,5)=WTMAT(IBIN,5)+(ATAU1/ATAU5)/(TAU+TAUR2)
05408 WTMAT(IBIN,6)=WTMAT(IBIN,6)+(ATAU1/ATAU6)*TAU/
05409 & ((TAU-TAUR2)**2+GAMR2**2)
05410 ENDIF
05411 IF(NBIN.GT.2+2*MINT(72)) THEN
05412 WTMAT(IBIN,NBIN)=WTMAT(IBIN,NBIN)+(ATAU1/ATAU7)*
05413 & TAU/MAX(2D-10,1D0-TAU)
05414 ENDIF
05415
05416
05417 ELSEIF(IVAR.EQ.2) THEN
05418 TAU=VINTPT(IACC,11)
05419 TAUP=VINTPT(IACC,16)
05420 TAUPMN=VINTPT(IACC,6)
05421 TAUPMX=VINTPT(IACC,26)
05422 ATAUP1=LOG(TAUPMX/TAUPMN)
05423 ATAUP2=((1D0-TAU/TAUPMX)**4-(1D0-TAU/TAUPMN)**4)/(4D0*TAU)
05424 WTMAT(IBIN,1)=WTMAT(IBIN,1)+1D0
05425 WTMAT(IBIN,2)=WTMAT(IBIN,2)+(ATAUP1/ATAUP2)*
05426 & (1D0-TAU/TAUP)**3/TAUP
05427 IF(NBIN.GE.3) THEN
05428 ATAUP3=LOG(MAX(2D-10,1D0-TAUPMN)/MAX(2D-10,1D0-TAUPMX))
05429 WTMAT(IBIN,3)=WTMAT(IBIN,3)+(ATAUP1/ATAUP3)*
05430 & TAUP/MAX(2D-10,1D0-TAUP)
05431 ENDIF
05432
05433
05434 ELSEIF(IVAR.EQ.3) THEN
05435 YST=VINTPT(IACC,12)
05436 YSTMIN=VINTPT(IACC,2)
05437 YSTMAX=VINTPT(IACC,22)
05438 AYST0=YSTMAX-YSTMIN
05439 AYST1=0.5D0*(YSTMAX-YSTMIN)**2
05440 AYST2=AYST1
05441 AYST3=2D0*(ATAN(EXP(YSTMAX))-ATAN(EXP(YSTMIN)))
05442 WTMAT(IBIN,1)=WTMAT(IBIN,1)+(AYST0/AYST1)*(YST-YSTMIN)
05443 WTMAT(IBIN,2)=WTMAT(IBIN,2)+(AYST0/AYST2)*(YSTMAX-YST)
05444 WTMAT(IBIN,3)=WTMAT(IBIN,3)+(AYST0/AYST3)/COSH(YST)
05445 IF(MINT(45).EQ.3) THEN
05446 TAUE=VINTPT(IACC,11)
05447 IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUE=VINTPT(IACC,16)
05448 YST0=-0.5D0*LOG(TAUE)
05449 AYST4=LOG(MAX(1D-10,EXP(YST0-YSTMIN)-1D0)/
05450 & MAX(1D-10,EXP(YST0-YSTMAX)-1D0))
05451 WTMAT(IBIN,4)=WTMAT(IBIN,4)+(AYST0/AYST4)/
05452 & MAX(1D-10,1D0-EXP(YST-YST0))
05453 ENDIF
05454 IF(MINT(46).EQ.3) THEN
05455 TAUE=VINTPT(IACC,11)
05456 IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUE=VINTPT(IACC,16)
05457 YST0=-0.5D0*LOG(TAUE)
05458 AYST5=LOG(MAX(1D-10,EXP(YST0+YSTMAX)-1D0)/
05459 & MAX(1D-10,EXP(YST0+YSTMIN)-1D0))
05460 WTMAT(IBIN,NBIN)=WTMAT(IBIN,NBIN)+(AYST0/AYST5)/
05461 & MAX(1D-10,1D0-EXP(-YST-YST0))
05462 ENDIF
05463
05464
05465 ELSE
05466 RM34=MAX(1D-20,2D0*SQM3*SQM4/(VINTPT(IACC,11)*VINT(2))**2)
05467 RSQM=1D0+RM34
05468 CTHMAX=SQRT(1D0-4D0*VINT(71)**2/(TAUMAX*VINT(2)))
05469 CTHMIN=-CTHMAX
05470 IF(CTHMAX.GT.0.9999D0) RM34=MAX(RM34,2D0*VINT(71)**2/
05471 & (TAUMAX*VINT(2)))
05472 ACTH1=CTHMAX-CTHMIN
05473 ACTH2=LOG(MAX(RM34,RSQM-CTHMIN)/MAX(RM34,RSQM-CTHMAX))
05474 ACTH3=LOG(MAX(RM34,RSQM+CTHMAX)/MAX(RM34,RSQM+CTHMIN))
05475 ACTH4=1D0/MAX(RM34,RSQM-CTHMAX)-1D0/MAX(RM34,RSQM-CTHMIN)
05476 ACTH5=1D0/MAX(RM34,RSQM+CTHMIN)-1D0/MAX(RM34,RSQM+CTHMAX)
05477 CTH=VINTPT(IACC,13)
05478 WTMAT(IBIN,1)=WTMAT(IBIN,1)+1D0
05479 WTMAT(IBIN,2)=WTMAT(IBIN,2)+(ACTH1/ACTH2)/
05480 & MAX(RM34,RSQM-CTH)
05481 WTMAT(IBIN,3)=WTMAT(IBIN,3)+(ACTH1/ACTH3)/
05482 & MAX(RM34,RSQM+CTH)
05483 WTMAT(IBIN,4)=WTMAT(IBIN,4)+(ACTH1/ACTH4)/
05484 & MAX(RM34,RSQM-CTH)**2
05485 WTMAT(IBIN,5)=WTMAT(IBIN,5)+(ACTH1/ACTH5)/
05486 & MAX(RM34,RSQM+CTH)**2
05487 ENDIF
05488 180 CONTINUE
05489
05490
05491 IF(MSTP(122).GE.2) WRITE(MSTU(11),5400) CVAR(IVAR)
05492 MSOLV=1
05493 WTRELS=0D0
05494 DO 190 IBIN=1,NBIN
05495 IF(MSTP(122).GE.2) WRITE(MSTU(11),5500) (WTMAT(IBIN,IRED),
05496 & IRED=1,NBIN),WTREL(IBIN)
05497 IF(NAREL(IBIN).EQ.0) MSOLV=0
05498 WTRELS=WTRELS+WTREL(IBIN)
05499 190 CONTINUE
05500 IF(ABS(WTRELS).LT.1D-20) MSOLV=0
05501
05502
05503 IF(MSOLV.EQ.1) THEN
05504 DO 200 IBIN=1,NBIN
05505 WTRELN(IBIN)=MAX(0.1D0,WTREL(IBIN)/WTRELS)
05506 200 CONTINUE
05507 DO 230 IRED=1,NBIN-1
05508 DO 220 IBIN=IRED+1,NBIN
05509 IF(ABS(WTMAT(IRED,IRED)).LT.1D-20) THEN
05510 MSOLV=0
05511 GOTO 260
05512 ENDIF
05513 RQT=WTMAT(IBIN,IRED)/WTMAT(IRED,IRED)
05514 WTREL(IBIN)=WTREL(IBIN)-RQT*WTREL(IRED)
05515 DO 210 ICOE=IRED,NBIN
05516 WTMAT(IBIN,ICOE)=WTMAT(IBIN,ICOE)-RQT*WTMAT(IRED,ICOE)
05517 210 CONTINUE
05518 220 CONTINUE
05519 230 CONTINUE
05520 DO 250 IRED=NBIN,1,-1
05521 DO 240 ICOE=IRED+1,NBIN
05522 WTREL(IRED)=WTREL(IRED)-WTMAT(IRED,ICOE)*COEFU(ICOE)
05523 240 CONTINUE
05524 COEFU(IRED)=WTREL(IRED)/WTMAT(IRED,IRED)
05525 250 CONTINUE
05526 ENDIF
05527
05528
05529 260 IF(MSOLV.EQ.0) THEN
05530 DO 270 IBIN=1,NBIN
05531 COEFU(IBIN)=1D0
05532 WTRELN(IBIN)=0.1D0
05533 IF(WTRELS.GT.0D0) WTRELN(IBIN)=MAX(0.1D0,
05534 & WTREL(IBIN)/WTRELS)
05535 270 CONTINUE
05536 ENDIF
05537
05538
05539 COEFSU=0D0
05540 WTRELS=0D0
05541 DO 280 IBIN=1,NBIN
05542 COEFU(IBIN)=MAX(0D0,COEFU(IBIN))
05543 COEFSU=COEFSU+COEFU(IBIN)
05544 WTRELS=WTRELS+WTRELN(IBIN)
05545 280 CONTINUE
05546 IF(COEFSU.GT.0D0) THEN
05547 DO 290 IBIN=1,NBIN
05548 COEFO(IBIN)=PARP(122)/NBIN+(1D0-PARP(122))*0.5D0*
05549 & (COEFU(IBIN)/COEFSU+WTRELN(IBIN)/WTRELS)
05550 290 CONTINUE
05551 ELSE
05552 DO 300 IBIN=1,NBIN
05553 COEFO(IBIN)=1D0/NBIN
05554 300 CONTINUE
05555 ENDIF
05556 IF(IVAR.EQ.1) IOFF=0
05557 IF(IVAR.EQ.2) IOFF=17
05558 IF(IVAR.EQ.3) IOFF=7
05559 IF(IVAR.EQ.4) IOFF=12
05560 DO 310 IBIN=1,NBIN
05561 ICOF=IOFF+IBIN
05562 IF(IVAR.EQ.1.AND.IBIN.GT.2+2*MINT(72)) ICOF=7
05563 IF(IVAR.EQ.3.AND.IBIN.EQ.4.AND.MINT(45).NE.3) ICOF=ICOF+1
05564 COEF(ISUB,ICOF)=COEFO(IBIN)
05565 310 CONTINUE
05566 IF(MSTP(122).GE.2) WRITE(MSTU(11),5600) CVAR(IVAR),
05567 & (COEFO(IBIN),IBIN=1,NBIN)
05568 320 CONTINUE
05569
05570
05571 DO 330 J=1,4
05572 IACCMX(J)=0
05573 SIGSMX(J)=0D0
05574 330 CONTINUE
05575 NMAX=0
05576 DO 390 IACC=1,NACC
05577 DO 340 J=1,30
05578 VINT(10+J)=VINTPT(IACC,J)
05579 340 CONTINUE
05580 IF(ISTSB.NE.5) THEN
05581 CALL PYSIGH(NCHN,SIGS)
05582 IF(MWTXS.EQ.1) THEN
05583 CALL PYEVWT(WTXS)
05584 SIGS=WTXS*SIGS
05585 ENDIF
05586 ELSE
05587 SIGS=0D0
05588 DO 350 IKIN3=1,MSTP(129)
05589 CALL PYKMAP(5,0,0D0)
05590 IF(MINT(51).EQ.1) GOTO 350
05591 CALL PYSIGH(NCHN,SIGTMP)
05592 IF(MWTXS.EQ.1) THEN
05593 CALL PYEVWT(WTXS)
05594 SIGTMP=WTXS*SIGTMP
05595 ENDIF
05596 IF(SIGTMP.GT.SIGS) SIGS=SIGTMP
05597 350 CONTINUE
05598 ENDIF
05599 IEQ=0
05600 DO 360 IMV=1,NMAX
05601 IF(ABS(SIGS-SIGSMX(IMV)).LT.1D-4*(SIGS+SIGSMX(IMV))) IEQ=IMV
05602 360 CONTINUE
05603 IF(IEQ.EQ.0) THEN
05604 DO 370 IMV=NMAX,1,-1
05605 IIN=IMV+1
05606 IF(SIGS.LE.SIGSMX(IMV)) GOTO 380
05607 IACCMX(IMV+1)=IACCMX(IMV)
05608 SIGSMX(IMV+1)=SIGSMX(IMV)
05609 370 CONTINUE
05610 IIN=1
05611 380 IACCMX(IIN)=IACC
05612 SIGSMX(IIN)=SIGS
05613 IF(NMAX.LE.1) NMAX=NMAX+1
05614 ENDIF
05615 390 CONTINUE
05616
05617
05618 IF(MSTP(122).GE.2) WRITE(MSTU(11),5700)
05619 SIGSAM=SIGSMX(1)
05620 DO 440 IMAX=1,NMAX
05621 IACC=IACCMX(IMAX)
05622 MTAU=MVARPT(IACC,1)
05623 MTAUP=MVARPT(IACC,2)
05624 MYST=MVARPT(IACC,3)
05625 MCTH=MVARPT(IACC,4)
05626 VTAU=0.5D0
05627 VYST=0.5D0
05628 VCTH=0.5D0
05629 VTAUP=0.5D0
05630
05631
05632 DO 430 IRPT=1,2
05633 DO 420 IVAR=1,4
05634 IF(NPTS(IVAR).EQ.1) GOTO 420
05635 IF(IVAR.EQ.1) VVAR=VTAU
05636 IF(IVAR.EQ.2) VVAR=VTAUP
05637 IF(IVAR.EQ.3) VVAR=VYST
05638 IF(IVAR.EQ.4) VVAR=VCTH
05639 IF(IVAR.EQ.1) MVAR=MTAU
05640 IF(IVAR.EQ.2) MVAR=MTAUP
05641 IF(IVAR.EQ.3) MVAR=MYST
05642 IF(IVAR.EQ.4) MVAR=MCTH
05643 IF(IRPT.EQ.1) VDEL=0.1D0
05644 IF(IRPT.EQ.2) VDEL=MAX(0.01D0,MIN(0.05D0,VVAR-0.02D0,
05645 & 0.98D0-VVAR))
05646 IF(IRPT.EQ.1) VMAR=0.02D0
05647 IF(IRPT.EQ.2) VMAR=0.002D0
05648 IMOV0=1
05649 IF(IRPT.EQ.1.AND.IVAR.EQ.1) IMOV0=0
05650 DO 410 IMOV=IMOV0,8
05651
05652
05653 IF(IMOV.EQ.0) THEN
05654 INEW=2
05655 VNEW=VVAR
05656 ELSEIF(IMOV.EQ.1) THEN
05657 INEW=3
05658 VNEW=VVAR+VDEL
05659 ELSEIF(IMOV.EQ.2) THEN
05660 INEW=1
05661 VNEW=VVAR-VDEL
05662 ELSEIF(SIGSSM(3).GE.MAX(SIGSSM(1),SIGSSM(2)).AND.
05663 & VVAR+2D0*VDEL.LT.1D0-VMAR) THEN
05664 VVAR=VVAR+VDEL
05665 SIGSSM(1)=SIGSSM(2)
05666 SIGSSM(2)=SIGSSM(3)
05667 INEW=3
05668 VNEW=VVAR+VDEL
05669 ELSEIF(SIGSSM(1).GE.MAX(SIGSSM(2),SIGSSM(3)).AND.
05670 & VVAR-2D0*VDEL.GT.VMAR) THEN
05671 VVAR=VVAR-VDEL
05672 SIGSSM(3)=SIGSSM(2)
05673 SIGSSM(2)=SIGSSM(1)
05674 INEW=1
05675 VNEW=VVAR-VDEL
05676 ELSEIF(SIGSSM(3).GE.SIGSSM(1)) THEN
05677 VDEL=0.5D0*VDEL
05678 VVAR=VVAR+VDEL
05679 SIGSSM(1)=SIGSSM(2)
05680 INEW=2
05681 VNEW=VVAR
05682 ELSE
05683 VDEL=0.5D0*VDEL
05684 VVAR=VVAR-VDEL
05685 SIGSSM(3)=SIGSSM(2)
05686 INEW=2
05687 VNEW=VVAR
05688 ENDIF
05689
05690
05691 ILERR=0
05692 IF(IVAR.EQ.1) THEN
05693 VTAU=VNEW
05694 CALL PYKMAP(1,MTAU,VTAU)
05695 IF(ISTSB.GE.3.AND.ISTSB.LE.5) THEN
05696 CALL PYKLIM(4)
05697 IF(MINT(51).EQ.1) ILERR=1
05698 ENDIF
05699 ENDIF
05700 IF(IVAR.LE.2.AND.ISTSB.GE.3.AND.ISTSB.LE.5.AND.
05701 & ILERR.EQ.0) THEN
05702 IF(IVAR.EQ.2) VTAUP=VNEW
05703 CALL PYKMAP(4,MTAUP,VTAUP)
05704 ENDIF
05705 IF(IVAR.LE.2.AND.ILERR.EQ.0) THEN
05706 CALL PYKLIM(2)
05707 IF(MINT(51).EQ.1) ILERR=1
05708 ENDIF
05709 IF(IVAR.LE.3.AND.ILERR.EQ.0) THEN
05710 IF(IVAR.EQ.3) VYST=VNEW
05711 CALL PYKMAP(2,MYST,VYST)
05712 CALL PYKLIM(3)
05713 IF(MINT(51).EQ.1) ILERR=1
05714 ENDIF
05715 IF((ISTSB.EQ.2.OR.ISTSB.EQ.4.OR.ISTSB.EQ.6).AND.
05716 & ILERR.EQ.0) THEN
05717 IF(IVAR.EQ.4) VCTH=VNEW
05718 CALL PYKMAP(3,MCTH,VCTH)
05719 ENDIF
05720 IF(ISUB.EQ.96) VINT(25)=VINT(21)*(1.-VINT(23)**2)
05721
05722
05723 IF(ILERR.NE.0) THEN
05724 SIGS=0.
05725 ELSEIF(ISTSB.NE.5) THEN
05726 CALL PYSIGH(NCHN,SIGS)
05727 IF(MWTXS.EQ.1) THEN
05728 CALL PYEVWT(WTXS)
05729 SIGS=WTXS*SIGS
05730 ENDIF
05731 ELSE
05732 SIGS=0D0
05733 DO 400 IKIN3=1,MSTP(129)
05734 CALL PYKMAP(5,0,0D0)
05735 IF(MINT(51).EQ.1) GOTO 400
05736 CALL PYSIGH(NCHN,SIGTMP)
05737 IF(MWTXS.EQ.1) THEN
05738 CALL PYEVWT(WTXS)
05739 SIGTMP=WTXS*SIGTMP
05740 ENDIF
05741 IF(SIGTMP.GT.SIGS) SIGS=SIGTMP
05742 400 CONTINUE
05743 ENDIF
05744 SIGSSM(INEW)=SIGS
05745 IF(SIGS.GT.SIGSAM) SIGSAM=SIGS
05746 IF(MSTP(122).GE.2) WRITE(MSTU(11),5800) IMAX,IVAR,MVAR,
05747 & IMOV,VNEW,VINT(21),VINT(22),VINT(23),VINT(26),SIGS
05748 410 CONTINUE
05749 420 CONTINUE
05750 430 CONTINUE
05751 440 CONTINUE
05752 IF(MSTP(121).EQ.1) SIGSAM=PARP(121)*SIGSAM
05753 XSEC(ISUB,1)=1.05D0*SIGSAM
05754 IF(MINT(141).NE.0.OR.MINT(142).NE.0) XSEC(ISUB,1)=
05755 & WTGAGA*XSEC(ISUB,1)
05756 450 CONTINUE
05757 IF(MSTP(173).EQ.1.AND.ISUB.NE.96) XSEC(ISUB,1)=
05758 & PARP(174)*XSEC(ISUB,1)
05759 IF(ISUB.NE.96) XSEC(0,1)=XSEC(0,1)+XSEC(ISUB,1)
05760 460 CONTINUE
05761 MINT(51)=0
05762
05763
05764 IF(MINT(121).EQ.1.AND.NPOSI.EQ.0) THEN
05765 WRITE(MSTU(11),5900)
05766 STOP
05767 ENDIF
05768 IF(MSTP(122).GE.1) THEN
05769 WRITE(MSTU(11),6000)
05770 WRITE(MSTU(11),6100)
05771 DO 470 ISUB=1,500
05772 IF(MSUB(ISUB).NE.1.AND.ISUB.NE.96) GOTO 470
05773 IF(ISUB.EQ.96.AND.MINT(50).EQ.0) GOTO 470
05774 IF(ISUB.EQ.96.AND.MSUB(95).NE.1.AND.MSTP(81).LE.0) GOTO 470
05775 IF(ISUB.EQ.96.AND.MINT(49).EQ.0.AND.MSTP(131).EQ.0) GOTO 470
05776 IF(MSUB(95).EQ.1.AND.(ISUB.EQ.11.OR.ISUB.EQ.12.OR.ISUB.EQ.13
05777 & .OR.ISUB.EQ.28.OR.ISUB.EQ.53.OR.ISUB.EQ.68)) GOTO 470
05778 WRITE(MSTU(11),6200) ISUB,PROC(ISUB),XSEC(ISUB,1)
05779 470 CONTINUE
05780 WRITE(MSTU(11),6300)
05781 ENDIF
05782
05783
05784 5000 FORMAT(/1X,'Coefficient optimization and maximum search for ',
05785 &'subprocess no',I4/1X,'Coefficient modes tau',10X,'y*',9X,
05786 &'cth',9X,'tau''',7X,'sigma')
05787 5100 FORMAT(1X,'Warning: requested subprocess ',I3,' has no allowed ',
05788 &'phase space.'/1X,'Process switched off!')
05789 5200 FORMAT(1X,4I4,F12.8,F12.6,F12.7,F12.8,1P,D12.4)
05790 5300 FORMAT(1X,'Warning: requested subprocess ',I3,' has vanishing ',
05791 &'cross-section.'/1X,'Process switched off!')
05792 5400 FORMAT(1X,'Coefficients of equation system to be solved for ',A4)
05793 5500 FORMAT(1X,1P,8D11.3)
05794 5600 FORMAT(1X,'Result for ',A4,':',7F9.4)
05795 5700 FORMAT(1X,'Maximum search for given coefficients'/2X,'MAX VAR ',
05796 &'MOD MOV VNEW',7X,'tau',7X,'y*',8X,'cth',7X,'tau''',7X,'sigma')
05797 5800 FORMAT(1X,4I4,F8.4,F11.7,F9.3,F11.6,F11.7,1P,D12.4)
05798 5900 FORMAT(1X,'Error: no requested process has non-vanishing ',
05799 &'cross-section.'/1X,'Execution stopped!')
05800 6000 FORMAT(/1X,8('*'),1X,'PYMAXI: summary of differential ',
05801 &'cross-section maximum search',1X,8('*'))
05802 6100 FORMAT(/11X,58('=')/11X,'I',38X,'I',17X,'I'/11X,'I ISUB ',
05803 &'Subprocess name',15X,'I Maximum value I'/11X,'I',38X,'I',
05804 &17X,'I'/11X,58('=')/11X,'I',38X,'I',17X,'I')
05805 6200 FORMAT(11X,'I',2X,I3,3X,A28,2X,'I',2X,1P,D12.4,3X,'I')
05806 6300 FORMAT(11X,'I',38X,'I',17X,'I'/11X,58('='))
05807
05808 RETURN
05809 END
05810
05811
05812
05813
05814
05815
05816
05817
05818 SUBROUTINE PYPILE(MPILE)
05819
05820
05821 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
05822 IMPLICIT INTEGER(I-N)
05823 INTEGER PYK,PYCHGE,PYCOMP
05824
05825 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
05826 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
05827 COMMON/PYINT1/MINT(400),VINT(400)
05828 COMMON/PYINT7/SIGT(0:6,0:6,0:5)
05829 SAVE /PYDAT1/,/PYPARS/,/PYINT1/,/PYINT7/
05830
05831 DIMENSION WTI(0:200)
05832 SAVE IMIN,IMAX,WTI,WTS
05833
05834
05835 IF(MPILE.EQ.1) THEN
05836 VINT(131)=SIGT(0,0,5)
05837 IF(MSTP(132).GE.2) VINT(131)=VINT(131)+SIGT(0,0,4)
05838 IF(MSTP(132).GE.3) VINT(131)=VINT(131)+SIGT(0,0,2)+SIGT(0,0,3)
05839 IF(MSTP(132).GE.4) VINT(131)=VINT(131)+SIGT(0,0,1)
05840 IF(MSTP(133).LE.0) RETURN
05841
05842
05843 XNAVE=VINT(131)*PARP(131)
05844 IF(XNAVE.GT.120D0) WRITE(MSTU(11),5000) XNAVE
05845 INAVE=MAX(1,MIN(200,NINT(XNAVE)))
05846 WTI(INAVE)=1D0
05847 WTS=WTI(INAVE)
05848 WTN=WTI(INAVE)*INAVE
05849
05850
05851 IMIN=INAVE
05852 DO 100 I=INAVE-1,1,-1
05853 IF(MSTP(133).EQ.1) WTI(I)=WTI(I+1)*(I+1)/XNAVE
05854 IF(MSTP(133).GE.2) WTI(I)=WTI(I+1)*I/XNAVE
05855 IF(WTI(I).LT.1D-6) GOTO 110
05856 WTS=WTS+WTI(I)
05857 WTN=WTN+WTI(I)*I
05858 IMIN=I
05859 100 CONTINUE
05860
05861
05862 110 IMAX=INAVE
05863 DO 120 I=INAVE+1,200
05864 IF(MSTP(133).EQ.1) WTI(I)=WTI(I-1)*XNAVE/I
05865 IF(MSTP(133).GE.2) WTI(I)=WTI(I-1)*XNAVE/(I-1)
05866 IF(WTI(I).LT.1D-6) GOTO 130
05867 WTS=WTS+WTI(I)
05868 WTN=WTN+WTI(I)*I
05869 IMAX=I
05870 120 CONTINUE
05871 130 VINT(132)=XNAVE
05872 VINT(133)=WTN/WTS
05873 IF(MSTP(133).EQ.1.AND.IMIN.EQ.1) VINT(134)=
05874 & WTS/(WTS+WTI(1)/XNAVE)
05875 IF(MSTP(133).EQ.1.AND.IMIN.GT.1) VINT(134)=1D0
05876 IF(MSTP(133).GE.2) VINT(134)=XNAVE
05877
05878
05879 ELSE
05880 IF(MSTP(133).LE.0) THEN
05881 MINT(81)=MAX(1,MSTP(134))
05882 ELSE
05883 WTR=WTS*PYR(0)
05884 DO 140 I=IMIN,IMAX
05885 MINT(81)=I
05886 WTR=WTR-WTI(I)
05887 IF(WTR.LE.0D0) GOTO 150
05888 140 CONTINUE
05889 150 CONTINUE
05890 ENDIF
05891 ENDIF
05892
05893
05894 5000 FORMAT(1X,'Warning: requested average number of events per bunch',
05895 &'crossing too large, ',1P,D12.4)
05896
05897 RETURN
05898 END
05899
05900
05901
05902
05903
05904
05905
05906
05907 SUBROUTINE PYSAVE(ISAVE,IGA)
05908
05909
05910 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
05911 IMPLICIT INTEGER(I-N)
05912 INTEGER PYK,PYCHGE,PYCOMP
05913
05914 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
05915 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
05916 COMMON/PYINT1/MINT(400),VINT(400)
05917 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
05918 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
05919 COMMON/PYINT7/SIGT(0:6,0:6,0:5)
05920 SAVE /PYSUBS/,/PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYINT7/
05921
05922 DIMENSION NCP(15),NSUBCP(15,20),MSUBCP(15,20),COEFCP(15,20,20),
05923 &NGENCP(15,0:20,3),XSECCP(15,0:20,3),SIGTCP(15,0:6,0:6,0:5),
05924 &INTCP(15,20),RECP(15,20)
05925 SAVE NCP,NSUBCP,MSUBCP,COEFCP,NGENCP,XSECCP,SIGTCP,INTCP,RECP
05926
05927
05928 IF(ISAVE.EQ.1) THEN
05929 ICP=0
05930 DO 120 I=1,500
05931 IF(MSUB(I).EQ.0.AND.I.NE.96.AND.I.NE.97) GOTO 120
05932 ICP=ICP+1
05933 NSUBCP(IGA,ICP)=I
05934 MSUBCP(IGA,ICP)=MSUB(I)
05935 DO 100 J=1,20
05936 COEFCP(IGA,ICP,J)=COEF(I,J)
05937 100 CONTINUE
05938 DO 110 J=1,3
05939 NGENCP(IGA,ICP,J)=NGEN(I,J)
05940 XSECCP(IGA,ICP,J)=XSEC(I,J)
05941 110 CONTINUE
05942 120 CONTINUE
05943 NCP(IGA)=ICP
05944 DO 130 J=1,3
05945 NGENCP(IGA,0,J)=NGEN(0,J)
05946 XSECCP(IGA,0,J)=XSEC(0,J)
05947 130 CONTINUE
05948 DO 136 I1=0,6
05949 DO 134 I2=0,6
05950 DO 132 J=0,5
05951 SIGTCP(IGA,I1,I2,J)=SIGT(I1,I2,J)
05952 132 CONTINUE
05953 134 CONTINUE
05954 136 CONTINUE
05955
05956
05957 DO 140 J=1,10
05958 INTCP(IGA,J)=MINT(40+J)
05959 140 CONTINUE
05960 INTCP(IGA,11)=MINT(101)
05961 INTCP(IGA,12)=MINT(102)
05962 INTCP(IGA,13)=MINT(107)
05963 INTCP(IGA,14)=MINT(108)
05964 INTCP(IGA,15)=MINT(123)
05965 RECP(IGA,1)=CKIN(3)
05966 RECP(IGA,2)=VINT(318)
05967
05968
05969 ELSEIF(ISAVE.EQ.2) THEN
05970 DO 160 ICP=1,NCP(IGA)
05971 I=NSUBCP(IGA,ICP)
05972 DO 150 J=1,3
05973 NGENCP(IGA,ICP,J)=NGEN(I,J)
05974 XSECCP(IGA,ICP,J)=XSEC(I,J)
05975 150 CONTINUE
05976 160 CONTINUE
05977 DO 170 J=1,3
05978 NGENCP(IGA,0,J)=NGEN(0,J)
05979 XSECCP(IGA,0,J)=XSEC(0,J)
05980 170 CONTINUE
05981
05982
05983 ELSEIF(ISAVE.EQ.3.OR.ISAVE.EQ.4) THEN
05984 IF(ISAVE.EQ.4) THEN
05985 XSUMCP=0D0
05986 DO 180 IG=1,MINT(121)
05987 XSUMCP=XSUMCP+XSECCP(IG,0,1)
05988 180 CONTINUE
05989 XSUMCP=XSUMCP*PYR(0)
05990 DO 190 IG=1,MINT(121)
05991 IGA=IG
05992 XSUMCP=XSUMCP-XSECCP(IG,0,1)
05993 IF(XSUMCP.LE.0D0) GOTO 200
05994 190 CONTINUE
05995 200 CONTINUE
05996 ENDIF
05997
05998
05999 DO 210 I=1,500
06000 MSUB(I)=0
06001 210 CONTINUE
06002 DO 240 ICP=1,NCP(IGA)
06003 I=NSUBCP(IGA,ICP)
06004 MSUB(I)=MSUBCP(IGA,ICP)
06005 DO 220 J=1,20
06006 COEF(I,J)=COEFCP(IGA,ICP,J)
06007 220 CONTINUE
06008 DO 230 J=1,3
06009 NGEN(I,J)=NGENCP(IGA,ICP,J)
06010 XSEC(I,J)=XSECCP(IGA,ICP,J)
06011 230 CONTINUE
06012 240 CONTINUE
06013 DO 250 J=1,3
06014 NGEN(0,J)=NGENCP(IGA,0,J)
06015 XSEC(0,J)=XSECCP(IGA,0,J)
06016 250 CONTINUE
06017 DO 256 I1=0,6
06018 DO 254 I2=0,6
06019 DO 252 J=0,5
06020 SIGT(I1,I2,J)=SIGTCP(IGA,I1,I2,J)
06021 252 CONTINUE
06022 254 CONTINUE
06023 256 CONTINUE
06024
06025
06026 DO 260 J=1,10
06027 MINT(40+J)=INTCP(IGA,J)
06028 260 CONTINUE
06029 MINT(101)=INTCP(IGA,11)
06030 MINT(102)=INTCP(IGA,12)
06031 MINT(107)=INTCP(IGA,13)
06032 MINT(108)=INTCP(IGA,14)
06033 MINT(123)=INTCP(IGA,15)
06034 CKIN(3)=RECP(IGA,1)
06035 CKIN(1)=2D0*CKIN(3)
06036 VINT(318)=RECP(IGA,2)
06037
06038
06039 ELSEIF(ISAVE.EQ.5) THEN
06040 DO 270 I=1,500
06041 MSUB(I)=0
06042 NGEN(I,1)=0
06043 NGEN(I,3)=0
06044 XSEC(I,3)=0D0
06045 270 CONTINUE
06046 NGEN(0,1)=0
06047 NGEN(0,2)=0
06048 NGEN(0,3)=0
06049 XSEC(0,3)=0
06050 DO 290 IG=1,MINT(121)
06051 DO 280 ICP=1,NCP(IG)
06052 I=NSUBCP(IG,ICP)
06053 IF(MSUBCP(IG,ICP).EQ.1) MSUB(I)=1
06054 NGEN(I,1)=NGEN(I,1)+NGENCP(IG,ICP,1)
06055 NGEN(I,3)=NGEN(I,3)+NGENCP(IG,ICP,3)
06056 XSEC(I,3)=XSEC(I,3)+XSECCP(IG,ICP,3)
06057 280 CONTINUE
06058 NGEN(0,1)=NGEN(0,1)+NGENCP(IG,0,1)
06059 NGEN(0,2)=NGEN(0,2)+NGENCP(IG,0,2)
06060 NGEN(0,3)=NGEN(0,3)+NGENCP(IG,0,3)
06061 XSEC(0,3)=XSEC(0,3)+XSECCP(IG,0,3)
06062 290 CONTINUE
06063 ENDIF
06064
06065 RETURN
06066 END
06067
06068
06069
06070
06071
06072
06073
06074
06075 SUBROUTINE PYGAGA(IGAGA,WTGAGA)
06076
06077
06078 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
06079 IMPLICIT INTEGER(I-N)
06080 INTEGER PYK,PYCHGE,PYCOMP
06081
06082 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
06083 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
06084 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
06085 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
06086 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
06087 COMMON/PYINT1/MINT(400),VINT(400)
06088 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
06089 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYSUBS/,/PYPARS/,/PYINT1/,
06090 &/PYINT5/
06091
06092 DIMENSION PMS(2),XMIN(2),XMAX(2),Q2MIN(2),Q2MAX(2),PMC(3),
06093 &X(2),Q2(2),Y(2),THETA(2),PHI(2),PT(2),BETA(3)
06094 SAVE PMS,XMIN,XMAX,Q2MIN,Q2MAX,PMC,X,Q2,THETA,PHI,PT,W2MIN
06095 DATA EPS/1D-4/
06096
06097
06098 IF(IGAGA.EQ.1) THEN
06099
06100
06101 VINT(301)=VINT(1)
06102 VINT(302)=VINT(2)
06103 PMS(1)=VINT(303)**2
06104 IF(MINT(141).EQ.0) PMS(1)=SIGN(VINT(3)**2,VINT(3))
06105 PMS(2)=VINT(304)**2
06106 IF(MINT(142).EQ.0) PMS(2)=SIGN(VINT(4)**2,VINT(4))
06107 PMC(3)=VINT(302)-PMS(1)-PMS(2)
06108 W2MIN=MAX(CKIN(77),2D0*CKIN(3),2D0*CKIN(5))**2
06109
06110
06111 DO 100 I=1,2
06112 PMC(I)=VINT(302)+PMS(I)-PMS(3-I)
06113 IF(MINT(140+I).NE.0) THEN
06114 XMIN(I)=MAX(CKIN(59+2*I),EPS)
06115 XMAX(I)=MIN(CKIN(60+2*I),1D0-2D0*VINT(301)*SQRT(PMS(I))/
06116 & PMC(I),1D0-EPS)
06117 YMIN=MAX(CKIN(71+2*I),EPS)
06118 YMAX=MIN(CKIN(72+2*I),1D0-EPS)
06119 IF(CKIN(64+2*I).GT.0D0) XMIN(I)=MAX(XMIN(I),
06120 & (YMIN*PMC(3)-CKIN(64+2*I))/PMC(I))
06121 XMAX(I)=MIN(XMAX(I),(YMAX*PMC(3)-CKIN(63+2*I))/PMC(I))
06122 THEMIN=MAX(CKIN(67+2*I),0D0)
06123 THEMAX=MIN(CKIN(68+2*I),PARU(1))
06124 IF(CKIN(68+2*I).LT.0D0) THEMAX=PARU(1)
06125 Q2MIN(I)=MAX(CKIN(63+2*I),XMIN(I)**2*PMS(I)/(1D0-XMIN(I))+
06126 & ((1D0-XMAX(I))*(VINT(302)-2D0*PMS(3-I))-
06127 & 2D0*PMS(I)/(1D0-XMAX(I)))*SIN(THEMIN/2D0)**2,0D0)
06128 Q2MAX(I)=XMAX(I)**2*PMS(I)/(1D0-XMAX(I))+
06129 & ((1D0-XMIN(I))*(VINT(302)-2D0*PMS(3-I))-
06130 & 2D0*PMS(I)/(1D0-XMIN(I)))*SIN(THEMAX/2D0)**2
06131 IF(CKIN(64+2*I).GT.0D0) Q2MAX(I)=MIN(CKIN(64+2*I),Q2MAX(I))
06132
06133 IF(MINT(143-I).EQ.0) THEN
06134 XMIN(I)=MAX(XMIN(I),(W2MIN-PMS(3-I))/PMC(I))
06135 IF(CKIN(78).GT.0D0) XMAX(I)=MIN(XMAX(I),
06136 & (CKIN(78)**2-PMS(3-I))/PMC(I))
06137 ENDIF
06138 ENDIF
06139 100 CONTINUE
06140
06141
06142 IF(MINT(141).NE.0.AND.MINT(142).NE.0) THEN
06143 IF(CKIN(78).GT.0D0) XMAX(1)=MIN(XMAX(1),
06144 & (CKIN(78)**2+PMC(3)-PMC(2)*XMIN(2))/PMC(1))
06145 IF(CKIN(78).GT.0D0) XMAX(2)=MIN(XMAX(2),
06146 & (CKIN(78)**2+PMC(3)-PMC(1)*XMIN(1))/PMC(2))
06147 IF(IABS(MINT(141)).NE.IABS(MINT(142))) THEN
06148 XMIN(1)=MAX(XMIN(1),(PMS(1)-PMS(2)+VINT(302)*(W2MIN-
06149 & PMS(1)-PMS(2))/(PMC(2)*XMAX(2)+PMS(1)-PMS(2)))/PMC(1))
06150 XMIN(2)=MAX(XMIN(2),(PMS(2)-PMS(1)+VINT(302)*(W2MIN-
06151 & PMS(1)-PMS(2))/(PMC(1)*XMAX(1)+PMS(2)-PMS(1)))/PMC(2))
06152 ELSE
06153 XMIN(1)=MAX(XMIN(1),W2MIN/(VINT(302)*XMAX(2)))
06154 XMIN(2)=MAX(XMIN(2),W2MIN/(VINT(302)*XMAX(1)))
06155 ENDIF
06156 ENDIF
06157
06158
06159 ELSEIF(IGAGA.EQ.2) THEN
06160 ISUB=MINT(1)
06161 MINT(15)=0
06162 MINT(16)=0
06163
06164
06165
06166 IF(MINT(141).NE.0.AND.MINT(142).EQ.0) THEN
06167 VINT(2)=VINT(302)+PMS(1)-PMC(1)*(1D0-XMAX(1))
06168 ELSEIF(MINT(141).EQ.0.AND.MINT(142).NE.0) THEN
06169 VINT(2)=VINT(302)+PMS(2)-PMC(2)*(1D0-XMAX(2))
06170 ELSEIF(ISUB.GE.137.AND.ISUB.LE.140) THEN
06171 VINT(2)=MAX(CKIN(77)**2,12D0*MAX(CKIN(3),CKIN(5))**2)
06172 IF(CKIN(78).GT.0D0) VINT(2)=MIN(VINT(2),CKIN(78)**2)
06173 ELSE
06174 VINT(2)=XMAX(1)*XMAX(2)*VINT(302)
06175 IF(CKIN(78).GT.0D0) VINT(2)=MIN(VINT(2),CKIN(78)**2)
06176 ENDIF
06177 VINT(1)=SQRT(MAX(0D0,VINT(2)))
06178
06179
06180
06181 WTGAGA=1D0
06182 DO 110 I=1,2
06183 IF(MINT(140+I).NE.0) THEN
06184 WTGAGA=WTGAGA*2D0*(PARU(101)/PARU(2))*
06185 & LOG(XMAX(I)/XMIN(I))*LOG(Q2MAX(I)/Q2MIN(I))
06186 IF(ISUB.EQ.99.AND.MINT(106+I).EQ.4.AND.MINT(109-I).EQ.3)
06187 & THEN
06188 Q2INIT=5D0+Q2MIN(3-I)
06189 ELSEIF(ISUB.EQ.99.AND.MINT(106+I).EQ.4) THEN
06190 Q2INIT=PMAS(PYCOMP(113),1)**2+Q2MIN(3-I)
06191 ELSEIF(ISUB.EQ.132.OR.ISUB.EQ.134.OR.ISUB.EQ.136) THEN
06192 Q2INIT=MAX(CKIN(1),2D0*CKIN(3),2D0*CKIN(5))**2/3D0
06193 ELSEIF((ISUB.EQ.138.AND.I.EQ.2).OR.
06194 & (ISUB.EQ.139.AND.I.EQ.1)) THEN
06195 Q2INIT=VINT(2)/3D0
06196 ELSEIF(ISUB.EQ.140) THEN
06197 Q2INIT=VINT(2)/2D0
06198 ELSE
06199 Q2INIT=Q2MIN(I)
06200 ENDIF
06201 VINT(2+I)=-SQRT(MAX(Q2MIN(I),MIN(Q2MAX(I),Q2INIT)))
06202 IF(MSTP(14).EQ.0.OR.(ISUB.GE.131.AND.ISUB.LE.140))
06203 & MINT(14+I)=22
06204 VINT(306+I)=VINT(2+I)**2
06205 ENDIF
06206 110 CONTINUE
06207 VINT(320)=WTGAGA
06208
06209
06210 IF(MSTP(82).LE.1) THEN
06211 PTMN=PARP(81)*(VINT(1)/PARP(89))**PARP(90)
06212 ELSE
06213 PTMN=PARP(82)*(VINT(1)/PARP(89))**PARP(90)
06214 ENDIF
06215 VINT(149)=4D0*PTMN**2/VINT(2)
06216 VINT(154)=PTMN
06217 CALL PYXTOT
06218 VINT(318)=VINT(317)
06219
06220
06221
06222 ELSEIF(IGAGA.EQ.3) THEN
06223 ISUB=MINT(1)
06224 MINT(15)=0
06225 MINT(16)=0
06226
06227
06228 LOOP=0
06229 120 LOOP=LOOP+1
06230 DO 130 I=1,2
06231 IF(MINT(140+I).NE.0) THEN
06232
06233 X(I)=XMIN(I)*(XMAX(I)/XMIN(I))**PYR(0)
06234 Q2(I)=Q2MIN(I)*(Q2MAX(I)/Q2MIN(I))**PYR(0)
06235
06236 IF(Q2(I).LT.X(I)**2*PMS(I)/(1D0-X(I))) GOTO 120
06237 IF(Q2(I).GT.(1D0-X(I))*(VINT(302)-2D0*PMS(3-I))-
06238 & (2D0-X(I)**2)*PMS(I)/(1D0-X(I))) GOTO 120
06239
06240 Y(I)=(PMC(I)*X(I)+Q2(I))/PMC(3)
06241 IF(Y(I).LT.CKIN(71+2*I).OR.Y(I).GT.CKIN(72+2*I)) GOTO 120
06242 RAT=((1D0-X(I))*Q2(I)-X(I)**2*PMS(I))/
06243 & ((1D0-X(I))**2*(VINT(302)-2D0*PMS(3-I)-2D0*PMS(I)))
06244 THETA(I)=2D0*ASIN(SQRT(MAX(0D0,MIN(1D0,RAT))))
06245 IF(THETA(I).LT.CKIN(67+2*I)) GOTO 120
06246 IF(CKIN(68+2*I).GT.0D0.AND.THETA(I).GT.CKIN(68+2*I))
06247 & GOTO 120
06248
06249
06250 PHI(I)=PARU(2)*PYR(0)
06251 PT(I)=SQRT(((1D0-X(I))*PMC(I))**2/(4D0*VINT(302))-
06252 & PMS(I))*SIN(THETA(I))
06253
06254
06255 VINT(2+I)=-SQRT(Q2(I))
06256 VINT(304+I)=X(I)
06257 VINT(306+I)=Q2(I)
06258 VINT(308+I)=Y(I)
06259 VINT(310+I)=THETA(I)
06260 VINT(312+I)=PHI(I)
06261 ELSE
06262 VINT(304+I)=1D0
06263 VINT(306+I)=0D0
06264 VINT(308+I)=1D0
06265 VINT(310+I)=0D0
06266 VINT(312+I)=0D0
06267 ENDIF
06268 130 CONTINUE
06269
06270
06271 IF(MINT(141).NE.0.AND.MINT(142).NE.0) THEN
06272 W2=-Q2(1)-Q2(2)+0.5D0*X(1)*PMC(1)*X(2)*PMC(2)/VINT(302)-
06273 & 2D0*PT(1)*PT(2)*COS(PHI(1)-PHI(2))+2D0*
06274 & SQRT((0.5D0*X(1)*PMC(1)/VINT(301))**2+Q2(1)-PT(1)**2)*
06275 & SQRT((0.5D0*X(2)*PMC(2)/VINT(301))**2+Q2(2)-PT(2)**2)
06276 IF(W2.LT.W2MIN) GOTO 120
06277 IF(CKIN(78).GT.0D0.AND.W2.GT.CKIN(78)**2) GOTO 120
06278 PMS1=-Q2(1)
06279 PMS2=-Q2(2)
06280 ELSEIF(MINT(141).NE.0) THEN
06281 W2=(VINT(302)+PMS(1))*X(1)+PMS(2)*(1D0-X(1))
06282 PMS1=-Q2(1)
06283 PMS2=PMS(2)
06284 ELSEIF(MINT(142).NE.0) THEN
06285 W2=(VINT(302)+PMS(2))*X(2)+PMS(1)*(1D0-X(2))
06286 PMS1=PMS(1)
06287 PMS2=-Q2(2)
06288 ENDIF
06289
06290
06291 VINT(2)=W2
06292 VINT(1)=SQRT(W2)
06293 VINT(291)=0D0
06294 VINT(292)=0D0
06295 VINT(293)=0.5D0*SQRT((W2-PMS1-PMS2)**2-4D0*PMS1*PMS2)/VINT(1)
06296 VINT(294)=0.5D0*(W2+PMS1-PMS2)/VINT(1)
06297 VINT(295)=SIGN(SQRT(ABS(PMS1)),PMS1)
06298 VINT(296)=0D0
06299 VINT(297)=0D0
06300 VINT(298)=-VINT(293)
06301 VINT(299)=0.5D0*(W2+PMS2-PMS1)/VINT(1)
06302 VINT(300)=SIGN(SQRT(ABS(PMS2)),PMS2)
06303
06304
06305
06306 WTGAGA=1D0
06307 DO 140 I=1,2
06308 IF(MINT(140+I).NE.0) THEN
06309 WTGAGA=WTGAGA*2D0*(PARU(101)/PARU(2))*
06310 & LOG(XMAX(I)/XMIN(I))*LOG(Q2MAX(I)/Q2MIN(I))
06311 IF(MSTP(16).EQ.0) THEN
06312 XY=X(I)
06313 ELSE
06314 WTGAGA=WTGAGA*X(I)/Y(I)
06315 XY=Y(I)
06316 ENDIF
06317 IF(ISUB.EQ.132.OR.ISUB.EQ.134.OR.ISUB.EQ.136) THEN
06318 WTGAGA=WTGAGA*(1D0-XY)
06319 ELSEIF(I.EQ.1.AND.(ISUB.EQ.139.OR.ISUB.EQ.140)) THEN
06320 WTGAGA=WTGAGA*(1D0-XY)
06321 ELSEIF(I.EQ.2.AND.(ISUB.EQ.138.OR.ISUB.EQ.140)) THEN
06322 WTGAGA=WTGAGA*(1D0-XY)
06323 ELSE
06324 WTGAGA=WTGAGA*(0.5D0*(1D0+(1D0-XY)**2)-
06325 & PMS(I)*XY**2/Q2(I))
06326 ENDIF
06327 IF(MINT(106+I).EQ.0) MINT(14+I)=22
06328 ENDIF
06329 140 CONTINUE
06330 VINT(319)=WTGAGA
06331 MINT(143)=LOOP
06332
06333
06334 IF(MSTP(82).LE.1) THEN
06335 PTMN=PARP(81)*(VINT(1)/PARP(89))**PARP(90)
06336 ELSE
06337 PTMN=PARP(82)*(VINT(1)/PARP(89))**PARP(90)
06338 ENDIF
06339 VINT(149)=4D0*PTMN**2/VINT(2)
06340 VINT(154)=PTMN
06341 CALL PYXTOT
06342
06343
06344 ELSEIF(IGAGA.EQ.4) THEN
06345
06346
06347 MOVE=3
06348 IF(MINT(141).NE.0.AND.MINT(142).NE.0) MOVE=4
06349 MINT(4)=MINT(4)+MOVE
06350 DO 160 I=MINT(84)-MOVE,MINT(83)+1,-1
06351 IF(K(I,1).EQ.21) THEN
06352 DO 150 J=1,5
06353 K(I+MOVE,J)=K(I,J)
06354 P(I+MOVE,J)=P(I,J)
06355 V(I+MOVE,J)=V(I,J)
06356 150 CONTINUE
06357 IF(K(I,3).GT.MINT(83).AND.K(I,3).LE.MINT(84))
06358 & K(I+MOVE,3)=K(I,3)+MOVE
06359 IF(K(I,4).GT.MINT(83).AND.K(I,4).LE.MINT(84))
06360 & K(I+MOVE,4)=K(I,4)+MOVE
06361 IF(K(I,5).GT.MINT(83).AND.K(I,5).LE.MINT(84))
06362 & K(I+MOVE,5)=K(I,5)+MOVE
06363 ENDIF
06364 160 CONTINUE
06365 DO 170 I=MINT(84)+1,N
06366 IF(K(I,3).GT.MINT(83).AND.K(I,3).LE.MINT(84))
06367 & K(I,3)=K(I,3)+MOVE
06368 170 CONTINUE
06369
06370
06371 DO 190 I=MINT(83)+1,MINT(83)+MOVE
06372 DO 180 J=1,5
06373 K(I,J)=0
06374 P(I,J)=0D0
06375 V(I,J)=0D0
06376 180 CONTINUE
06377 190 CONTINUE
06378 DO 200 I=1,2
06379 K(MINT(83)+I,1)=21
06380 IF(MINT(140+I).NE.0) THEN
06381 K(MINT(83)+I,2)=MINT(140+I)
06382 P(MINT(83)+I,5)=VINT(302+I)
06383 ELSE
06384 K(MINT(83)+I,2)=MINT(10+I)
06385 P(MINT(83)+I,5)=VINT(2+I)
06386 ENDIF
06387 P(MINT(83)+I,3)=0.5D0*SQRT((PMC(3)**2-4D0*PMS(1)*PMS(2))/
06388 & VINT(302))*(-1D0)**(I+1)
06389 P(MINT(83)+I,4)=0.5D0*PMC(I)/VINT(301)
06390 200 CONTINUE
06391
06392
06393 IF(MINT(141).NE.0.AND.MINT(142).NE.0) THEN
06394 K(MINT(83)+1,4)=MINT(83)+3
06395 K(MINT(83)+1,5)=MINT(83)+5
06396 K(MINT(83)+2,4)=MINT(83)+4
06397 K(MINT(83)+2,5)=MINT(83)+6
06398 K(MINT(83)+3,3)=MINT(83)+1
06399 K(MINT(83)+5,3)=MINT(83)+1
06400 K(MINT(83)+4,3)=MINT(83)+2
06401 K(MINT(83)+6,3)=MINT(83)+2
06402 ELSEIF(MINT(141).NE.0) THEN
06403 K(MINT(83)+1,4)=MINT(83)+3
06404 K(MINT(83)+1,5)=MINT(83)+4
06405 K(MINT(83)+2,4)=MINT(83)+5
06406 K(MINT(83)+3,3)=MINT(83)+1
06407 K(MINT(83)+4,3)=MINT(83)+1
06408 K(MINT(83)+5,3)=MINT(83)+2
06409 ELSEIF(MINT(142).NE.0) THEN
06410 K(MINT(83)+1,4)=MINT(83)+4
06411 K(MINT(83)+2,4)=MINT(83)+3
06412 K(MINT(83)+2,5)=MINT(83)+5
06413 K(MINT(83)+3,3)=MINT(83)+2
06414 K(MINT(83)+4,3)=MINT(83)+1
06415 K(MINT(83)+5,3)=MINT(83)+2
06416 ENDIF
06417
06418
06419 DO 210 I=1,2
06420 IF(MINT(140+I).NE.0) THEN
06421 LSC=MINT(83)+MIN(I+2,MOVE)
06422 K(LSC,1)=21
06423 K(LSC,2)=MINT(140+I)
06424 P(LSC,1)=PT(I)*COS(PHI(I))
06425 P(LSC,2)=PT(I)*SIN(PHI(I))
06426 P(LSC,4)=(1D0-X(I))*P(MINT(83)+I,4)
06427 P(LSC,3)=SQRT(P(LSC,4)**2-PMS(I))*COS(THETA(I))*
06428 & (-1D0)**(I-1)
06429 P(LSC,5)=VINT(302+I)
06430 ENDIF
06431 210 CONTINUE
06432
06433
06434 K(N+1,1)=21
06435 IF(MINT(141).NE.0) THEN
06436 DO 220 J=1,4
06437 P(N+1,J)=P(MINT(83)+1,J)-P(MINT(83)+3,J)
06438 220 CONTINUE
06439 ELSE
06440 DO 230 J=1,4
06441 P(N+1,J)=P(MINT(83)+1,J)
06442 230 CONTINUE
06443 ENDIF
06444 K(N+2,1)=21
06445 IF(MINT(142).NE.0) THEN
06446 DO 240 J=1,4
06447 P(N+2,J)=P(MINT(83)+2,J)-P(MINT(83)+MOVE,J)
06448 240 CONTINUE
06449 ELSE
06450 DO 250 J=1,4
06451 P(N+2,J)=P(MINT(83)+2,J)
06452 250 CONTINUE
06453 ENDIF
06454
06455
06456
06457 DO 260 J=1,3
06458 BETA(J)=(P(N+1,J)+P(N+2,J))/(P(N+1,4)+P(N+2,4))
06459 260 CONTINUE
06460 CALL PYROBO(N+1,N+2,0D0,0D0,-BETA(1),-BETA(2),-BETA(3))
06461 BPHI=PYANGL(P(N+1,1),P(N+1,2))
06462 CALL PYROBO(N+1,N+2,0D0,-BPHI,0D0,0D0,0D0)
06463 BTHETA=PYANGL(P(N+1,3),P(N+1,1))
06464 CALL PYROBO(MINT(83)+MOVE+1,N,BTHETA,BPHI,BETA(1),BETA(2),
06465 & BETA(3))
06466
06467
06468 DO 280 I=1,2
06469 IF(MINT(140+I).NE.0) THEN
06470 LSC=MINT(83)+MIN(I+2,MOVE)
06471 N=N+1
06472 DO 270 J=1,5
06473 K(N,J)=K(LSC,J)
06474 P(N,J)=P(LSC,J)
06475 V(N,J)=V(LSC,J)
06476 270 CONTINUE
06477 K(N,1)=1
06478 K(N,3)=LSC
06479 ENDIF
06480 280 CONTINUE
06481 ENDIF
06482
06483 RETURN
06484 END
06485
06486
06487
06488
06489
06490
06491
06492
06493
06494 SUBROUTINE PYRAND
06495
06496
06497 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
06498 IMPLICIT INTEGER(I-N)
06499 INTEGER PYK,PYCHGE,PYCOMP
06500
06501 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
06502
06503 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
06504 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
06505 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
06506 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
06507 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
06508 COMMON/PYINT1/MINT(400),VINT(400)
06509 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
06510 COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
06511 COMMON/PYINT4/MWID(500),WIDS(500,5)
06512 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
06513 COMMON/PYINT7/SIGT(0:6,0:6,0:5)
06514 COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
06515 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
06516 SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYSUBS/,/PYPARS/,/PYINT1/,
06517 &/PYINT2/,/PYINT3/,/PYINT4/,/PYINT5/,/PYINT7/,/PYUPPR/,/PYMSSM/
06518
06519 DIMENSION XPQ(-25:25),PMM(2),PDIF(4),BHAD(4),PMMN(2)
06520
06521
06522 DATA EPS/0.0808D0/, ALP/0.25D0/, CRES/2D0/, PMRC/1.062D0/,
06523 &SMP/0.880D0/, BHAD/2.3D0,1.4D0,1.4D0,0.23D0/
06524
06525
06526 MINT(10)=0
06527 MINT(17)=0
06528 MINT(18)=0
06529 VINT(143)=1D0
06530 VINT(144)=1D0
06531 VINT(157)=0D0
06532 VINT(158)=0D0
06533 MFAIL=0
06534 IF(MSTP(171).EQ.1.AND.MSTP(172).EQ.2) MFAIL=1
06535 ISUB=0
06536 LOOP=0
06537 100 LOOP=LOOP+1
06538 MINT(51)=0
06539 MINT(143)=1
06540
06541
06542 IF(MINT(11).EQ.22) THEN
06543 MINT(15)=22
06544 VINT(307)=VINT(3)**2
06545 ENDIF
06546 IF(MINT(12).EQ.22) THEN
06547 MINT(16)=22
06548 VINT(308)=VINT(4)**2
06549 ENDIF
06550 MINT(103)=MINT(11)
06551 MINT(104)=MINT(12)
06552
06553
06554 INMULT=0
06555 IF(MINT(82).EQ.1.AND.(ISUB.LE.90.OR.ISUB.GT.96)) THEN
06556
06557
06558 IGA=0
06559 IF(MINT(121).GT.1) CALL PYSAVE(4,IGA)
06560 MINT(122)=IGA
06561
06562
06563 IF(MINT(11).EQ.22.AND.MINT(12).EQ.22.AND.MINT(123).GE.4.AND.
06564 & MSTP(14).LE.10.AND.PYR(0).GT.0.5D0) THEN
06565 MINTSV=MINT(41)
06566 MINT(41)=MINT(42)
06567 MINT(42)=MINTSV
06568 MINTSV=MINT(45)
06569 MINT(45)=MINT(46)
06570 MINT(46)=MINTSV
06571 MINTSV=MINT(107)
06572 MINT(107)=MINT(108)
06573 MINT(108)=MINTSV
06574 IF(MINT(47).EQ.2.OR.MINT(47).EQ.3) MINT(47)=5-MINT(47)
06575 ENDIF
06576
06577
06578 RSUB=XSEC(0,1)*PYR(0)
06579 DO 110 I=1,500
06580 IF(MSUB(I).NE.1) GOTO 110
06581 ISUB=I
06582 RSUB=RSUB-XSEC(I,1)
06583 IF(RSUB.LE.0D0) GOTO 120
06584 110 CONTINUE
06585 120 IF(ISUB.EQ.95) ISUB=96
06586 IF(ISUB.EQ.96) INMULT=1
06587
06588
06589 ELSEIF(MINT(82).GE.2.AND.ISUB.EQ.0) THEN
06590 RSUB=VINT(131)*PYR(0)
06591 ISUB=96
06592 IF(RSUB.GT.SIGT(0,0,5)) ISUB=94
06593 IF(RSUB.GT.SIGT(0,0,5)+SIGT(0,0,4)) ISUB=93
06594 IF(RSUB.GT.SIGT(0,0,5)+SIGT(0,0,4)+SIGT(0,0,3)) ISUB=92
06595 IF(RSUB.GT.SIGT(0,0,5)+SIGT(0,0,4)+SIGT(0,0,3)+SIGT(0,0,2))
06596 & ISUB=91
06597 IF(ISUB.EQ.96) INMULT=1
06598 ENDIF
06599
06600
06601 IF(MINT(141).NE.0.OR.MINT(142).NE.0) THEN
06602 CALL PYGAGA(3,WTGAGA)
06603 IF(ISUB.GE.131.AND.ISUB.LE.140) THEN
06604 CKIN(3)=MAX(VINT(285),VINT(154))
06605 CKIN(1)=2D0*CKIN(3)
06606 ENDIF
06607
06608 ELSEIF(MINT(15).EQ.22.OR.MINT(16).EQ.22) THEN
06609 IF(MINT(15).EQ.22.AND.MINT(41).EQ.2) MINT(15)=0
06610 IF(MINT(16).EQ.22.AND.MINT(42).EQ.2) MINT(16)=0
06611 ENDIF
06612
06613
06614
06615 IF(MSTP(18).EQ.3.AND.ISUB.GE.131.AND.ISUB.LE.136) THEN
06616 IF(MINT(15).EQ.22) THEN
06617 CKIN(3)=MAX(VINT(285),VINT(154),ABS(VINT(3)))
06618 ELSE
06619 CKIN(3)=MAX(VINT(285),VINT(154),ABS(VINT(4)))
06620 ENDIF
06621 CKIN(1)=2D0*CKIN(3)
06622 ENDIF
06623
06624
06625 IF(INMULT.EQ.1) CALL PYMULT(2)
06626
06627
06628 LOOP2=0
06629 125 LOOP2=LOOP2+1
06630 IF(MINT(82).EQ.1) NGEN(0,1)=NGEN(0,1)+MINT(143)
06631 IF(MINT(82).EQ.1) NGEN(ISUB,1)=NGEN(ISUB,1)+MINT(143)
06632 IF(ISUB.EQ.96.AND.LOOP2.EQ.1.AND.MINT(82).EQ.1)
06633 &NGEN(97,1)=NGEN(97,1)+MINT(143)
06634 MINT(1)=ISUB
06635 ISTSB=ISET(ISUB)
06636
06637
06638 IF(ISUB.GE.201.AND.ISUB.LE.301) THEN
06639
06640 IF(ISUB.EQ.210) THEN
06641 KFPR(ISUB,1)=KSUSY1+11+2*INT(0.5D0+PYR(0))
06642 KFPR(ISUB,2)=KFPR(ISUB,1)+1
06643
06644 ELSEIF(ISUB.EQ.213) THEN
06645 KFPR(ISUB,1)=KSUSY1+12+2*INT(0.5D0+PYR(0))
06646 KFPR(ISUB,2)=KFPR(ISUB,1)
06647
06648 ELSEIF(ISUB.GE.246.AND.ISUB.LE.259) THEN
06649 IF(ISUB.GE.258) THEN
06650 RKF=4D0
06651 ELSE
06652 RKF=5D0
06653 ENDIF
06654 IF(MOD(ISUB,2).EQ.0) THEN
06655 KFPR(ISUB,1)=KSUSY1+1+INT(RKF*PYR(0))
06656 ELSE
06657 KFPR(ISUB,1)=KSUSY2+1+INT(RKF*PYR(0))
06658 ENDIF
06659
06660 ELSEIF(ISUB.GE.271.AND.ISUB.LE.276) THEN
06661 IF(ISUB.EQ.271.OR.ISUB.EQ.274) THEN
06662 KSU1=KSUSY1
06663 KSU2=KSUSY1
06664 ELSEIF(ISUB.EQ.272.OR.ISUB.EQ.275) THEN
06665 KSU1=KSUSY2
06666 KSU2=KSUSY2
06667 ELSEIF(PYR(0).LT.0.5D0) THEN
06668 KSU1=KSUSY1
06669 KSU2=KSUSY2
06670 ELSE
06671 KSU1=KSUSY2
06672 KSU2=KSUSY1
06673 ENDIF
06674 KFPR(ISUB,1)=KSU1+1+INT(4D0*PYR(0))
06675 KFPR(ISUB,2)=KSU2+1+INT(4D0*PYR(0))
06676
06677 ELSEIF(ISUB.EQ.277.OR.ISUB.EQ.279) THEN
06678 KFPR(ISUB,1)=KSUSY1+1+INT(4D0*PYR(0))
06679 KFPR(ISUB,2)=KFPR(ISUB,1)
06680 ELSEIF(ISUB.EQ.278.OR.ISUB.EQ.280) THEN
06681 KFPR(ISUB,1)=KSUSY2+1+INT(4D0*PYR(0))
06682 KFPR(ISUB,2)=KFPR(ISUB,1)
06683
06684 ELSEIF(ISUB.GE.281.AND.ISUB.LE.286) THEN
06685 IF(ISUB.EQ.281.OR.ISUB.EQ.284) THEN
06686 KSU1=KSUSY1
06687 KSU2=KSUSY1
06688 ELSEIF(ISUB.EQ.282.OR.ISUB.EQ.285) THEN
06689 KSU1=KSUSY2
06690 KSU2=KSUSY2
06691 ELSEIF(PYR(0).LT.0.5D0) THEN
06692 KSU1=KSUSY1
06693 KSU2=KSUSY2
06694 ELSE
06695 KSU1=KSUSY2
06696 KSU2=KSUSY1
06697 ENDIF
06698 IF(ISUB.EQ.281.OR.ISUB.LE.283) THEN
06699 RKF=5D0
06700 ELSE
06701 RKF=4D0
06702 ENDIF
06703 KFPR(ISUB,2)=KSU2+1+INT(RKF*PYR(0))
06704 ENDIF
06705 ENDIF
06706
06707
06708 MINT(72)=0
06709 KFR1=0
06710 IF(ISTSB.EQ.1.OR.ISTSB.EQ.3.OR.ISTSB.EQ.5) THEN
06711 KFR1=KFPR(ISUB,1)
06712 ELSEIF(ISUB.EQ.24.OR.ISUB.EQ.25.OR.ISUB.EQ.110.OR.ISUB.EQ.165.OR.
06713 & ISUB.EQ.171.OR.ISUB.EQ.176) THEN
06714 KFR1=23
06715 ELSEIF(ISUB.EQ.23.OR.ISUB.EQ.26.OR.ISUB.EQ.166.OR.ISUB.EQ.172.OR.
06716 & ISUB.EQ.177) THEN
06717 KFR1=24
06718 ELSEIF(ISUB.GE.71.AND.ISUB.LE.77) THEN
06719 KFR1=25
06720 IF(MSTP(46).EQ.5) THEN
06721 KFR1=30
06722 PMAS(30,1)=PARP(45)
06723 PMAS(30,2)=PARP(45)**3/(96D0*PARU(1)*PARP(47)**2)
06724 ENDIF
06725 ELSEIF(ISUB.EQ.194) THEN
06726 KFR1=54
06727 ELSEIF(ISUB.EQ.195) THEN
06728 KFR1=55
06729 ELSEIF(ISUB.GE.361.AND.ISUB.LE.368) THEN
06730 KFR1=54
06731 ELSEIF(ISUB.GE.370.AND.ISUB.LE.377) THEN
06732 KFR1=55
06733 ENDIF
06734 CKMX=CKIN(2)
06735 IF(CKMX.LE.0D0) CKMX=VINT(1)
06736 KCR1=PYCOMP(KFR1)
06737 IF(KFR1.NE.0) THEN
06738 IF(CKIN(1).GT.PMAS(KCR1,1)+20D0*PMAS(KCR1,2).OR.
06739 & CKMX.LT.PMAS(KCR1,1)-20D0*PMAS(KCR1,2)) KFR1=0
06740 ENDIF
06741 IF(KFR1.NE.0) THEN
06742 TAUR1=PMAS(KCR1,1)**2/VINT(2)
06743 IF(KFR1.EQ.54) THEN
06744 CALL PYTECM(S1,S2)
06745 TAUR1=S1/VINT(2)
06746 ENDIF
06747 GAMR1=PMAS(KCR1,1)*PMAS(KCR1,2)/VINT(2)
06748 MINT(72)=1
06749 MINT(73)=KFR1
06750 VINT(73)=TAUR1
06751 VINT(74)=GAMR1
06752 ENDIF
06753 IF(ISUB.EQ.141.OR.ISUB.EQ.194.OR.(ISUB.GE.364.AND.ISUB.LE.368))
06754 $THEN
06755 KFR2=23
06756 IF(ISUB.EQ.194) THEN
06757 KFR2=56
06758 ELSEIF(ISUB.GE.364.AND.ISUB.LE.368) THEN
06759 KFR2=56
06760 ENDIF
06761 KCR2=PYCOMP(KFR2)
06762 TAUR2=PMAS(KCR2,1)**2/VINT(2)
06763 IF(KFR2.EQ.56) THEN
06764 CALL PYTECM(S1,S2)
06765 TAUR2=S2/VINT(2)
06766 ENDIF
06767 GAMR2=PMAS(KCR2,1)*PMAS(KCR2,2)/VINT(2)
06768 IF(CKIN(1).GT.PMAS(KCR2,1)+20D0*PMAS(KCR2,2).OR.
06769 & CKMX.LT.PMAS(KCR2,1)-20D0*PMAS(KCR2,2)) KFR2=0
06770 IF(KFR2.NE.0.AND.KFR1.NE.0) THEN
06771 MINT(72)=2
06772 MINT(74)=KFR2
06773 VINT(75)=TAUR2
06774 VINT(76)=GAMR2
06775 ELSEIF(KFR2.NE.0) THEN
06776 KFR1=KFR2
06777 TAUR1=TAUR2
06778 GAMR1=GAMR2
06779 MINT(72)=1
06780 MINT(73)=KFR1
06781 VINT(73)=TAUR1
06782 VINT(74)=GAMR1
06783 ENDIF
06784 ENDIF
06785
06786
06787
06788 VINT(63)=0D0
06789 VINT(64)=0D0
06790 MINT(71)=0
06791 VINT(71)=CKIN(3)
06792 IF(MINT(82).GE.2) VINT(71)=0D0
06793 VINT(80)=1D0
06794 IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) THEN
06795 NBW=0
06796 DO 140 I=1,2
06797 PMMN(I)=0D0
06798 IF(KFPR(ISUB,I).EQ.0) THEN
06799 ELSEIF(MSTP(42).LE.0.OR.PMAS(PYCOMP(KFPR(ISUB,I)),2).LT.
06800 & PARP(41)) THEN
06801 VINT(62+I)=PMAS(PYCOMP(KFPR(ISUB,I)),1)**2
06802 ELSE
06803 NBW=NBW+1
06804
06805 KFLW=KFPR(ISUB,I)
06806 IF(KFLW/KSUSY1.EQ.1.OR.KFLW/KSUSY1.EQ.2) THEN
06807 KCW=PYCOMP(KFLW)
06808 PMMN(I)=PMAS(KCW,1)
06809 DO 130 IDC=MDCY(KCW,2),MDCY(KCW,2)+MDCY(KCW,3)-1
06810 IF(MDME(IDC,1).GT.0.AND.BRAT(IDC).GT.1E-4) THEN
06811 PMSUM=PMAS(PYCOMP(KFDP(IDC,1)),1)+
06812 & PMAS(PYCOMP(KFDP(IDC,2)),1)
06813 IF(KFDP(IDC,3).NE.0) PMSUM=PMSUM+
06814 & PMAS(PYCOMP(KFDP(IDC,3)),1)
06815 PMMN(I)=MIN(PMMN(I),PMSUM)
06816 ENDIF
06817 130 CONTINUE
06818 ELSEIF(KFLW.EQ.6) THEN
06819 PMMN(I)=PMAS(24,1)+PMAS(5,1)
06820 ENDIF
06821 ENDIF
06822 140 CONTINUE
06823 IF(NBW.GE.1) THEN
06824 CKIN41=CKIN(41)
06825 CKIN43=CKIN(43)
06826 CKIN(41)=MAX(PMMN(1),CKIN(41))
06827 CKIN(43)=MAX(PMMN(2),CKIN(43))
06828 CALL PYOFSH(4,0,KFPR(ISUB,1),KFPR(ISUB,2),0D0,PQM3,PQM4)
06829 CKIN(41)=CKIN41
06830 CKIN(43)=CKIN43
06831 IF(MINT(51).EQ.1) THEN
06832 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
06833 IF(MFAIL.EQ.1) THEN
06834 MSTI(61)=1
06835 RETURN
06836 ENDIF
06837 GOTO 100
06838 ENDIF
06839 VINT(63)=PQM3**2
06840 VINT(64)=PQM4**2
06841 ENDIF
06842 IF(MIN(VINT(63),VINT(64)).LT.CKIN(6)**2) MINT(71)=1
06843 IF(MINT(71).EQ.1) VINT(71)=MAX(CKIN(3),CKIN(5))
06844 ENDIF
06845
06846
06847 IF(ISTSB.EQ.5) THEN
06848 VINT(201)=0D0
06849 IF(KFPR(ISUB,2).GT.0) VINT(201)=PMAS(PYCOMP(KFPR(ISUB,2)),1)
06850 VINT(206)=VINT(201)
06851 VINT(204)=PMAS(23,1)
06852 IF(ISUB.EQ.124.OR.ISUB.EQ.351) VINT(204)=PMAS(24,1)
06853 IF(ISUB.EQ.352) VINT(204)=PMAS(63,1)
06854 IF(ISUB.EQ.121.OR.ISUB.EQ.122.OR.ISUB.EQ.181.OR.ISUB.EQ.182.OR.
06855 & ISUB.EQ.186.OR.ISUB.EQ.187) VINT(204)=VINT(201)
06856 VINT(209)=VINT(204)
06857 ENDIF
06858
06859
06860 IF(ISTSB.NE.0.AND.(MINT(101).GE.2.OR.MINT(102).GE.2).AND.
06861 &(MINT(123).EQ.2.OR.MINT(123).EQ.3.OR.MINT(123).EQ.7)) THEN
06862 VRN=PYR(0)*SIGT(0,0,5)
06863 IF(MINT(101).LE.1) THEN
06864 I1MN=0
06865 I1MX=0
06866 ELSE
06867 I1MN=1
06868 I1MX=MINT(101)
06869 ENDIF
06870 IF(MINT(102).LE.1) THEN
06871 I2MN=0
06872 I2MX=0
06873 ELSE
06874 I2MN=1
06875 I2MX=MINT(102)
06876 ENDIF
06877 DO 160 I1=I1MN,I1MX
06878 KFV1=110*I1+3
06879 DO 150 I2=I2MN,I2MX
06880 KFV2=110*I2+3
06881 VRN=VRN-SIGT(I1,I2,5)
06882 IF(VRN.LE.0D0) GOTO 170
06883 150 CONTINUE
06884 160 CONTINUE
06885 170 IF(MINT(101).GE.2) MINT(103)=KFV1
06886 IF(MINT(102).GE.2) MINT(104)=KFV2
06887 ENDIF
06888
06889 IF(ISTSB.EQ.0) THEN
06890
06891
06892
06893 MINT(103)=MINT(11)
06894 MINT(104)=MINT(12)
06895 PMM(1)=VINT(3)
06896 PMM(2)=VINT(4)
06897 IF(MINT(101).GE.2.OR.MINT(102).GE.2) THEN
06898 JJ=ISUB-90
06899 VRN=PYR(0)*SIGT(0,0,JJ)
06900 IF(MINT(101).LE.1) THEN
06901 I1MN=0
06902 I1MX=0
06903 ELSE
06904 I1MN=1
06905 I1MX=MINT(101)
06906 ENDIF
06907 IF(MINT(102).LE.1) THEN
06908 I2MN=0
06909 I2MX=0
06910 ELSE
06911 I2MN=1
06912 I2MX=MINT(102)
06913 ENDIF
06914 DO 190 I1=I1MN,I1MX
06915 KFV1=110*I1+3
06916 DO 180 I2=I2MN,I2MX
06917 KFV2=110*I2+3
06918 VRN=VRN-SIGT(I1,I2,JJ)
06919 IF(VRN.LE.0D0) GOTO 200
06920 180 CONTINUE
06921 190 CONTINUE
06922 200 IF(MINT(101).GE.2) THEN
06923 MINT(103)=KFV1
06924 PMM(1)=PYMASS(KFV1)
06925 ENDIF
06926 IF(MINT(102).GE.2) THEN
06927 MINT(104)=KFV2
06928 PMM(2)=PYMASS(KFV2)
06929 ENDIF
06930 ENDIF
06931 VINT(67)=PMM(1)
06932 VINT(68)=PMM(2)
06933
06934
06935 Q0S=4D0*PARP(15)**2
06936 Q1S=4D0*VINT(154)**2
06937 LOOP3=0
06938 202 LOOP3=LOOP3+1
06939 DO 208 JT=1,2
06940 IF(MINT(106+JT).EQ.3) THEN
06941 PS=VINT(2+JT)**2
06942 PMM(JT)=(Q0S+PS)*(Q1S+PS)/
06943 & (Q0S+PYR(0)*(Q1S-Q0S)+PS)-PS
06944 IF(MINT(102+JT).GE.333) PMM(JT)=PMM(JT)-
06945 & PMAS(PYCOMP(113),1)+PMAS(PYCOMP(MINT(102+JT)),1)
06946 ENDIF
06947 208 CONTINUE
06948 IF(PMM(1)+PMM(2)+PARP(104).GE.VINT(1)) THEN
06949 IF(LOOP3.LT.100.AND.(MINT(107).EQ.3.OR.MINT(108).EQ.3))
06950 & GOTO 202
06951 GOTO 100
06952 ENDIF
06953
06954
06955 MINT(17)=0
06956 MINT(18)=0
06957 IF(ISUB.EQ.92.OR.ISUB.EQ.94) MINT(17)=1
06958 IF(ISUB.EQ.93.OR.ISUB.EQ.94) MINT(18)=1
06959
06960
06961 DO 210 JT=1,2
06962 PDIF(JT)=PMM(JT)
06963 VINT(68+JT)=PDIF(JT)
06964 IF(MINT(16+JT).EQ.1) PDIF(JT)=PDIF(JT)+PARP(102)
06965 210 CONTINUE
06966 SH=VINT(2)
06967 SQM1=PMM(1)**2
06968 SQM2=PMM(2)**2
06969 SQM3=PDIF(1)**2
06970 SQM4=PDIF(2)**2
06971 SMRES1=(PMM(1)+PMRC)**2
06972 SMRES2=(PMM(2)+PMRC)**2
06973
06974
06975 IHA=MAX(2,IABS(MINT(103))/110)
06976 IF(IHA.GE.5) IHA=1
06977 IHB=MAX(2,IABS(MINT(104))/110)
06978 IF(IHB.GE.5) IHB=1
06979 IF(ISUB.EQ.91) THEN
06980 BMN=2D0*BHAD(IHA)+2D0*BHAD(IHB)+4D0*SH**EPS-4.2D0
06981 ELSEIF(ISUB.EQ.92) THEN
06982 BMN=MAX(2D0,2D0*BHAD(IHB))
06983 ELSEIF(ISUB.EQ.93) THEN
06984 BMN=MAX(2D0,2D0*BHAD(IHA))
06985 ELSEIF(ISUB.EQ.94) THEN
06986 BMN=2D0*ALP*4D0
06987 ENDIF
06988
06989
06990 SQLA12=(SH-SQM1-SQM2)**2-4D0*SQM1*SQM2
06991 SQLA34=(SH-SQM3-SQM4)**2-4D0*SQM3*SQM4
06992 THA=SH-(SQM1+SQM2+SQM3+SQM4)+(SQM1-SQM2)*(SQM3-SQM4)/SH
06993 THB=SQRT(MAX(0D0,SQLA12))*SQRT(MAX(0D0,SQLA34))/SH
06994 THC=(SQM3-SQM1)*(SQM4-SQM2)+(SQM1+SQM4-SQM2-SQM3)*
06995 & (SQM1*SQM4-SQM2*SQM3)/SH
06996 THL=-0.5D0*(THA+THB)
06997 THU=THC/THL
06998 THRND=EXP(MAX(-50D0,BMN*(THL-THU)))-1D0
06999
07000
07001 LOOP3=0
07002 220 LOOP3=LOOP3+1
07003 DO 230 JT=1,2
07004 IF(MINT(16+JT).EQ.0) THEN
07005 PDIF(2+JT)=PDIF(JT)
07006 ELSE
07007 PMMIN=PDIF(JT)
07008 PMMAX=MAX(VINT(2+JT),VINT(1)-PDIF(3-JT))
07009 PDIF(2+JT)=PMMIN*(PMMAX/PMMIN)**PYR(0)
07010 ENDIF
07011 230 CONTINUE
07012 SQM3=PDIF(3)**2
07013 SQM4=PDIF(4)**2
07014
07015
07016 IF(PDIF(3)+PDIF(4).GE.VINT(1)) THEN
07017 IF(LOOP3.LT.100) GOTO 220
07018 GOTO 100
07019 ENDIF
07020 IF(ISUB.EQ.92) THEN
07021 FSD=(1D0-SQM3/SH)*(1D0+CRES*SMRES1/(SMRES1+SQM3))
07022 IF(FSD.LT.PYR(0)*(1D0+CRES)) GOTO 220
07023 ELSEIF(ISUB.EQ.93) THEN
07024 FSD=(1D0-SQM4/SH)*(1D0+CRES*SMRES2/(SMRES2+SQM4))
07025 IF(FSD.LT.PYR(0)*(1D0+CRES)) GOTO 220
07026 ELSEIF(ISUB.EQ.94) THEN
07027 FDD=(1D0-(PDIF(3)+PDIF(4))**2/SH)*(SH*SMP/
07028 & (SH*SMP+SQM3*SQM4))*(1D0+CRES*SMRES1/(SMRES1+SQM3))*
07029 & (1D0+CRES*SMRES2/(SMRES2+SQM4))
07030 IF(FDD.LT.PYR(0)*(1D0+CRES)**2) GOTO 220
07031 ENDIF
07032
07033
07034 TH=THU+LOG(1D0+THRND*PYR(0))/BMN
07035 IF(ISUB.GE.92) THEN
07036 IF(ISUB.EQ.92) THEN
07037 BADD=2D0*ALP*LOG(SH/SQM3)
07038 IF(BHAD(IHB).LT.1D0) BADD=MAX(0D0,BADD+2D0*BHAD(IHB)-2D0)
07039 ELSEIF(ISUB.EQ.93) THEN
07040 BADD=2D0*ALP*LOG(SH/SQM4)
07041 IF(BHAD(IHA).LT.1D0) BADD=MAX(0D0,BADD+2D0*BHAD(IHA)-2D0)
07042 ELSEIF(ISUB.EQ.94) THEN
07043 BADD=2D0*ALP*(LOG(EXP(4D0)+SH/(ALP*SQM3*SQM4))-4D0)
07044 ENDIF
07045 IF(EXP(MAX(-50D0,BADD*(TH-THU))).LT.PYR(0)) GOTO 220
07046 ENDIF
07047
07048
07049 SQLA34=(SH-SQM3-SQM4)**2-4D0*SQM3*SQM4
07050 THA=SH-(SQM1+SQM2+SQM3+SQM4)+(SQM1-SQM2)*(SQM3-SQM4)/SH
07051 THB=SQRT(MAX(0D0,SQLA12))*SQRT(MAX(0D0,SQLA34))/SH
07052 IF(THB.LE.1D-8) GOTO 220
07053 THC=(SQM3-SQM1)*(SQM4-SQM2)+(SQM1+SQM4-SQM2-SQM3)*
07054 & (SQM1*SQM4-SQM2*SQM3)/SH
07055 THLM=-0.5D0*(THA+THB)
07056 THUM=THC/THLM
07057 IF(TH.LT.THLM.OR.TH.GT.THUM) GOTO 220
07058
07059
07060 VINT(21)=1D0
07061 VINT(22)=0D0
07062 VINT(23)=MIN(1D0,MAX(-1D0,(THA+2D0*TH)/THB))
07063 VINT(45)=TH
07064 VINT(59)=2D0*SQRT(MAX(0D0,-(THC+THA*TH+TH**2)))/THB
07065 VINT(63)=PDIF(3)**2
07066 VINT(64)=PDIF(4)**2
07067 VINT(283)=PMM(1)**2/4D0
07068 VINT(284)=PMM(2)**2/4D0
07069
07070
07071
07072
07073
07074
07075
07076
07077
07078
07079 ELSEIF(ISTSB.GE.1.AND.ISTSB.LE.5) THEN
07080 CALL PYKLIM(1)
07081 IF(MINT(51).NE.0) THEN
07082 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
07083 IF(MFAIL.EQ.1) THEN
07084 MSTI(61)=1
07085 RETURN
07086 ENDIF
07087 GOTO 100
07088 ENDIF
07089 RTAU=PYR(0)
07090 MTAU=1
07091 IF(RTAU.GT.COEF(ISUB,1)) MTAU=2
07092 IF(RTAU.GT.COEF(ISUB,1)+COEF(ISUB,2)) MTAU=3
07093 IF(RTAU.GT.COEF(ISUB,1)+COEF(ISUB,2)+COEF(ISUB,3)) MTAU=4
07094 IF(RTAU.GT.COEF(ISUB,1)+COEF(ISUB,2)+COEF(ISUB,3)+COEF(ISUB,4))
07095 & MTAU=5
07096 IF(RTAU.GT.COEF(ISUB,1)+COEF(ISUB,2)+COEF(ISUB,3)+COEF(ISUB,4)+
07097 & COEF(ISUB,5)) MTAU=6
07098 IF(RTAU.GT.COEF(ISUB,1)+COEF(ISUB,2)+COEF(ISUB,3)+COEF(ISUB,4)+
07099 & COEF(ISUB,5)+COEF(ISUB,6)) MTAU=7
07100 CALL PYKMAP(1,MTAU,PYR(0))
07101
07102
07103
07104
07105
07106 IF(ISTSB.GE.3.AND.ISTSB.LE.5) THEN
07107 CALL PYKLIM(4)
07108 IF(MINT(51).NE.0) THEN
07109 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
07110 IF(MFAIL.EQ.1) THEN
07111 MSTI(61)=1
07112 RETURN
07113 ENDIF
07114 GOTO 100
07115 ENDIF
07116 RTAUP=PYR(0)
07117 MTAUP=1
07118 IF(RTAUP.GT.COEF(ISUB,18)) MTAUP=2
07119 IF(RTAUP.GT.COEF(ISUB,18)+COEF(ISUB,19)) MTAUP=3
07120 CALL PYKMAP(4,MTAUP,PYR(0))
07121 ENDIF
07122
07123
07124
07125
07126
07127
07128 CALL PYKLIM(2)
07129 IF(MINT(51).NE.0) THEN
07130 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
07131 IF(MFAIL.EQ.1) THEN
07132 MSTI(61)=1
07133 RETURN
07134 ENDIF
07135 GOTO 100
07136 ENDIF
07137 RYST=PYR(0)
07138 MYST=1
07139 IF(RYST.GT.COEF(ISUB,8)) MYST=2
07140 IF(RYST.GT.COEF(ISUB,8)+COEF(ISUB,9)) MYST=3
07141 IF(RYST.GT.COEF(ISUB,8)+COEF(ISUB,9)+COEF(ISUB,10)) MYST=4
07142 IF(RYST.GT.COEF(ISUB,8)+COEF(ISUB,9)+COEF(ISUB,10)+
07143 & COEF(ISUB,11)) MYST=5
07144 CALL PYKMAP(2,MYST,PYR(0))
07145
07146
07147
07148
07149
07150
07151
07152 CALL PYKLIM(3)
07153 IF(MINT(51).NE.0) THEN
07154 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
07155 IF(MFAIL.EQ.1) THEN
07156 MSTI(61)=1
07157 RETURN
07158 ENDIF
07159 GOTO 100
07160 ENDIF
07161 IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) THEN
07162 RCTH=PYR(0)
07163 MCTH=1
07164 IF(RCTH.GT.COEF(ISUB,13)) MCTH=2
07165 IF(RCTH.GT.COEF(ISUB,13)+COEF(ISUB,14)) MCTH=3
07166 IF(RCTH.GT.COEF(ISUB,13)+COEF(ISUB,14)+COEF(ISUB,15)) MCTH=4
07167 IF(RCTH.GT.COEF(ISUB,13)+COEF(ISUB,14)+COEF(ISUB,15)+
07168 & COEF(ISUB,16)) MCTH=5
07169 CALL PYKMAP(3,MCTH,PYR(0))
07170 ENDIF
07171
07172
07173 IF(ISTSB.EQ.5) THEN
07174 CALL PYKMAP(5,0,0D0)
07175 IF(MINT(51).NE.0) THEN
07176 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
07177 IF(MFAIL.EQ.1) THEN
07178 MSTI(61)=1
07179 RETURN
07180 ENDIF
07181 GOTO 100
07182 ENDIF
07183 ENDIF
07184
07185
07186 ELSEIF(ISTSB.EQ.8) THEN
07187 VINT(21)=0.9D0
07188 VINT(22)=0D0
07189 VINT(23)=0D0
07190 VINT(47)=0D0
07191 VINT(48)=0D0
07192
07193
07194 ELSEIF(ISTSB.EQ.9) THEN
07195 CALL PYMULT(3)
07196 ISUB=MINT(1)
07197
07198
07199 ELSEIF(ISTSB.EQ.11) THEN
07200 MSTI(51)=0
07201 CALL PYUPEV(ISUB,SIGS)
07202 IF(NUP.LE.0) THEN
07203 MINT(51)=2
07204 MSTI(51)=1
07205 IF(MINT(82).EQ.1) THEN
07206 NGEN(0,1)=NGEN(0,1)-1
07207 NGEN(0,2)=NGEN(0,2)-1
07208 NGEN(ISUB,1)=NGEN(ISUB,1)-1
07209 ENDIF
07210 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
07211 RETURN
07212 ENDIF
07213
07214
07215 KFL1=KUP(1,2)
07216 KFL2=KUP(2,2)
07217 VINT(41)=2D0*PUP(1,4)/VINT(1)
07218 VINT(42)=2D0*PUP(2,4)/VINT(1)
07219 VINT(21)=VINT(41)*VINT(42)
07220 VINT(22)=0.5D0*LOG(VINT(41)/VINT(42))
07221 VINT(44)=VINT(21)*VINT(2)
07222 VINT(43)=SQRT(MAX(0D0,VINT(44)))
07223 VINT(56)=Q2UP(0)
07224 VINT(55)=SQRT(MAX(0D0,VINT(56)))
07225
07226
07227 VINT(23)=0D0
07228 VINT(26)=VINT(21)
07229 VINT(45)=-0.5D0*VINT(44)
07230 VINT(46)=-0.5D0*VINT(44)
07231 VINT(49)=VINT(43)
07232 VINT(50)=VINT(44)
07233 VINT(51)=VINT(55)
07234 VINT(52)=VINT(56)
07235 VINT(53)=VINT(55)
07236 VINT(54)=VINT(56)
07237 VINT(25)=0D0
07238 VINT(48)=0D0
07239 DO 240 IUP=3,NUP
07240 IF(KUP(IUP,1).EQ.1) VINT(25)=VINT(25)+2D0*(PUP(IUP,5)**2+
07241 & PUP(IUP,1)**2+PUP(IUP,2)**2)/VINT(2)
07242 IF(KUP(IUP,1).EQ.1) VINT(48)=VINT(48)+0.5D0*(PUP(IUP,1)**2+
07243 & PUP(IUP,2)**2)
07244 240 CONTINUE
07245 VINT(47)=SQRT(VINT(48))
07246
07247
07248 IF(MINT(47).GE.2) THEN
07249 DO 260 I=3-MIN(2,MINT(45)),MIN(2,MINT(46))
07250 MINT(105)=MINT(102+I)
07251 MINT(109)=MINT(106+I)
07252 VINT(120)=VINT(2+I)
07253 IF(MSTP(57).LE.1) THEN
07254 CALL PYPDFU(MINT(10+I),VINT(40+I),Q2UP(0),XPQ)
07255 ELSE
07256 CALL PYPDFL(MINT(10+I),VINT(40+I),Q2UP(0),XPQ)
07257 ENDIF
07258 DO 250 KFL=-25,25
07259 XSFX(I,KFL)=XPQ(KFL)
07260 250 CONTINUE
07261 260 CONTINUE
07262 ENDIF
07263 ENDIF
07264
07265
07266 VINT(24)=PARU(2)*PYR(0)
07267
07268
07269 MINT(51)=0
07270 IF((ISUB.LE.90.OR.ISUB.GT.100).AND.ISTSB.LE.10) CALL PYKLIM(0)
07271 IF(MINT(51).NE.0) THEN
07272 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
07273 IF(MFAIL.EQ.1) THEN
07274 MSTI(61)=1
07275 RETURN
07276 ENDIF
07277 GOTO 100
07278 ENDIF
07279 IF(MINT(82).EQ.1.AND.MSTP(141).GE.1.AND.ISTSB.LE.10) THEN
07280 MCUT=0
07281 IF(MSUB(91)+MSUB(92)+MSUB(93)+MSUB(94)+MSUB(95).EQ.0)
07282 & CALL PYKCUT(MCUT)
07283 IF(MCUT.NE.0) THEN
07284 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
07285 IF(MFAIL.EQ.1) THEN
07286 MSTI(61)=1
07287 RETURN
07288 ENDIF
07289 GOTO 100
07290 ENDIF
07291 ENDIF
07292
07293
07294 IF(ISTSB.LE.10) CALL PYSIGH(NCHN,SIGS)
07295 SIGSOR=SIGS
07296 SIGLPT=SIGT(0,0,5)*VINT(315)*VINT(316)
07297
07298
07299 IF(MINT(141).NE.0.OR.MINT(142).NE.0) THEN
07300 SIGS=WTGAGA*SIGS
07301 DO 270 ICHN=1,NCHN
07302 SIGH(ICHN)=WTGAGA*SIGH(ICHN)
07303 270 CONTINUE
07304 SIGLPT=WTGAGA*SIGLPT
07305 ENDIF
07306
07307
07308 IF(MSTP(173).EQ.1) THEN
07309 SIGS=PARP(173)*SIGS
07310 DO 280 ICHN=1,NCHN
07311 SIGH(ICHN)=PARP(173)*SIGH(ICHN)
07312 280 CONTINUE
07313 SIGLPT=PARP(173)*SIGLPT
07314 ENDIF
07315 WTXS=1D0
07316 SIGSWT=SIGS
07317 VINT(99)=1D0
07318 VINT(100)=1D0
07319 IF(MINT(82).EQ.1.AND.MSTP(142).GE.1) THEN
07320 IF(ISUB.NE.96.AND.MSUB(91)+MSUB(92)+MSUB(93)+MSUB(94)+
07321 & MSUB(95).EQ.0) CALL PYEVWT(WTXS)
07322 SIGSWT=WTXS*SIGS
07323 VINT(99)=WTXS
07324 IF(MSTP(142).EQ.1) VINT(100)=1D0/WTXS
07325 ENDIF
07326
07327
07328 IF(MINT(82).EQ.1.AND.ISUB.LE.90.OR.ISUB.GE.96) THEN
07329 IF(MSTP(142).LE.1) THEN
07330 XSEC(ISUB,2)=XSEC(ISUB,2)+SIGS
07331 ELSE
07332 XSEC(ISUB,2)=XSEC(ISUB,2)+SIGSWT
07333 ENDIF
07334 ELSEIF(MINT(82).EQ.1) THEN
07335 XSEC(ISUB,2)=XSEC(ISUB,2)+SIGS
07336 ENDIF
07337 IF((ISUB.EQ.95.OR.ISUB.EQ.96).AND.LOOP2.EQ.1.AND.
07338 &MINT(82).EQ.1) XSEC(97,2)=XSEC(97,2)+SIGLPT
07339
07340
07341 IF(MINT(50).EQ.1.AND.MSTP(82).GE.3) THEN
07342 VINT(153)=SIGSOR
07343 CALL PYMULT(4)
07344 ENDIF
07345
07346
07347 VIOL=SIGSWT/XSEC(ISUB,1)
07348 IF(ISUB.EQ.96.AND.MSTP(173).EQ.1) VIOL=VIOL/PARP(174)
07349 IF(MSTP(123).LE.0) THEN
07350 IF(VIOL.LT.-1D-3) THEN
07351 WRITE(MSTU(11),5000) VIOL,NGEN(0,3)+1
07352 IF(MSTP(122).GE.1) WRITE(MSTU(11),5100) ISUB,VINT(21),
07353 & VINT(22),VINT(23),VINT(26)
07354 STOP
07355 ENDIF
07356 ELSE
07357 IF(VIOL.LT.MIN(-1D-3,VINT(109))) THEN
07358 VINT(109)=VIOL
07359 WRITE(MSTU(11),5200) VIOL,NGEN(0,3)+1
07360 IF(MSTP(122).GE.1) WRITE(MSTU(11),5100) ISUB,VINT(21),
07361 & VINT(22),VINT(23),VINT(26)
07362 ENDIF
07363 ENDIF
07364
07365
07366 IF(MFAIL.EQ.0.AND.ISUB.NE.95.AND.ISUB.NE.96) THEN
07367 IF(VIOL.LT.PYR(0)) THEN
07368 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
07369 IF(ISUB.GE.91.AND.ISUB.LE.94) ISUB=0
07370 GOTO 100
07371 ENDIF
07372 ELSEIF(MFAIL.EQ.0) THEN
07373 RATND=SIGLPT/XSEC(95,1)
07374 IF(LOOP2.EQ.1.AND.RATND.LT.PYR(0)) THEN
07375 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
07376 ISUB=0
07377 GOTO 100
07378 ENDIF
07379 VIOL=VIOL/RATND
07380 IF(VIOL.LT.PYR(0)) THEN
07381 GOTO 125
07382 ENDIF
07383 ELSEIF(ISUB.NE.95.AND.ISUB.NE.96) THEN
07384 IF(VIOL.LT.PYR(0)) THEN
07385 MSTI(61)=1
07386 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
07387 RETURN
07388 ENDIF
07389 ELSE
07390 RATND=SIGLPT/XSEC(95,1)
07391 IF(LOOP.EQ.1.AND.RATND.LT.PYR(0)) THEN
07392 MSTI(61)=1
07393 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
07394 RETURN
07395 ENDIF
07396 VIOL=VIOL/RATND
07397 IF(VIOL.LT.PYR(0)) THEN
07398 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
07399 GOTO 100
07400 ENDIF
07401 ENDIF
07402
07403
07404
07405 IF(MSTP(123).LE.0) THEN
07406 IF(VIOL.GT.1D0) THEN
07407 WRITE(MSTU(11),5300) VIOL,NGEN(0,3)+1
07408 IF(MSTP(122).GE.2) WRITE(MSTU(11),5100) ISUB,VINT(21),
07409 & VINT(22),VINT(23),VINT(26)
07410 STOP
07411 ENDIF
07412 ELSEIF(MSTP(123).EQ.1) THEN
07413 IF(VIOL.GT.VINT(108)) THEN
07414 VINT(108)=VIOL
07415 IF(VIOL.GT.1D0) THEN
07416 MINT(10)=1
07417 WRITE(MSTU(11),5400) VIOL,NGEN(0,3)+1
07418 IF(MSTP(122).GE.2) WRITE(MSTU(11),5100) ISUB,VINT(21),
07419 & VINT(22),VINT(23),VINT(26)
07420 ENDIF
07421 ENDIF
07422 ELSEIF(VIOL.GT.VINT(108)) THEN
07423 VINT(108)=VIOL
07424 IF(VIOL.GT.1D0) THEN
07425 MINT(10)=1
07426 XDIF=XSEC(ISUB,1)*(VIOL-1D0)
07427 XSEC(ISUB,1)=XSEC(ISUB,1)+XDIF
07428 IF(MSUB(ISUB).EQ.1.AND.(ISUB.LE.90.OR.ISUB.GT.96))
07429 & XSEC(0,1)=XSEC(0,1)+XDIF
07430 WRITE(MSTU(11),5400) VIOL,NGEN(0,3)+1
07431 IF(MSTP(122).GE.2) WRITE(MSTU(11),5100) ISUB,VINT(21),
07432 & VINT(22),VINT(23),VINT(26)
07433 IF(ISUB.LE.9) THEN
07434 WRITE(MSTU(11),5500) ISUB,XSEC(ISUB,1)
07435 ELSEIF(ISUB.LE.99) THEN
07436 WRITE(MSTU(11),5600) ISUB,XSEC(ISUB,1)
07437 ELSE
07438 WRITE(MSTU(11),5700) ISUB,XSEC(ISUB,1)
07439 ENDIF
07440 VINT(108)=1D0
07441 ENDIF
07442 ENDIF
07443
07444
07445 VINT(148)=1D0
07446 IF(MINT(50).EQ.1.AND.(ISUB.LE.90.OR.ISUB.GE.96).AND.
07447 &MSTP(82).GE.3) THEN
07448 CALL PYMULT(5)
07449 IF(VINT(150).LT.PYR(0)) THEN
07450 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
07451 IF(MFAIL.EQ.1) THEN
07452 MSTI(61)=1
07453 RETURN
07454 ENDIF
07455 GOTO 100
07456 ENDIF
07457 ENDIF
07458 IF(MINT(82).EQ.1) NGEN(0,2)=NGEN(0,2)+1
07459 IF(MINT(82).EQ.1.AND.MSUB(95).EQ.1) THEN
07460 IF(ISUB.LE.90.OR.ISUB.GE.95) NGEN(95,1)=NGEN(95,1)+MINT(143)
07461 IF(ISUB.LE.90.OR.ISUB.GE.96) NGEN(96,2)=NGEN(96,2)+1
07462 ENDIF
07463 IF(ISUB.LE.90.OR.ISUB.GE.96) MINT(31)=MINT(31)+1
07464
07465
07466 IF(ISTSB.GE.11) GOTO 300
07467 RSIGS=SIGS*PYR(0)
07468 QT2=VINT(48)
07469 RQQBAR=PARP(87)*(1D0-(QT2/(QT2+(PARP(88)*PARP(82)*
07470 &(VINT(1)/PARP(89))**PARP(90))**2))**2)
07471 IF(ISUB.NE.95.AND.(ISUB.NE.96.OR.MSTP(82).LE.1.OR.
07472 &PYR(0).GT.RQQBAR)) THEN
07473 DO 290 ICHN=1,NCHN
07474 KFL1=ISIG(ICHN,1)
07475 KFL2=ISIG(ICHN,2)
07476 MINT(2)=ISIG(ICHN,3)
07477 RSIGS=RSIGS-SIGH(ICHN)
07478 IF(RSIGS.LE.0D0) GOTO 300
07479 290 CONTINUE
07480
07481
07482 ELSEIF(ISUB.EQ.96) THEN
07483 MINT(105)=MINT(103)
07484 MINT(109)=MINT(107)
07485 CALL PYSPLI(MINT(11),21,KFL1,KFLDUM)
07486 MINT(105)=MINT(104)
07487 MINT(109)=MINT(108)
07488 CALL PYSPLI(MINT(12),21,KFL2,KFLDUM)
07489 MINT(1)=11
07490 MINT(2)=1
07491 IF(KFL1.EQ.KFL2.AND.PYR(0).LT.0.5D0) MINT(2)=2
07492
07493
07494 ELSE
07495 KFL1=21
07496 KFL2=21
07497 RSIGS=6D0*PYR(0)
07498 MINT(2)=1
07499 IF(RSIGS.GT.1D0) MINT(2)=2
07500 IF(RSIGS.GT.2D0) MINT(2)=3
07501 ENDIF
07502
07503
07504 300 IF(MINT(2).GT.10) THEN
07505 MINT(1)=MINT(2)/10
07506 MINT(2)=MOD(MINT(2),10)
07507 ENDIF
07508 IF(MINT(82).EQ.1.AND.MSTP(111).GE.0) NGEN(MINT(1),2)=
07509 &NGEN(MINT(1),2)+1
07510 MINT(15)=KFL1
07511 MINT(16)=KFL2
07512 MINT(13)=MINT(15)
07513 MINT(14)=MINT(16)
07514 VINT(141)=VINT(41)
07515 VINT(142)=VINT(42)
07516 VINT(151)=0D0
07517 VINT(152)=0D0
07518
07519
07520 DO 330 JT=1,2
07521 MINT(18+JT)=0
07522 VINT(154+JT)=0D0
07523 MSPLI=0
07524 IF(JT.EQ.1.AND.MINT(43).LE.2) MSPLI=1
07525 IF(JT.EQ.2.AND.MOD(MINT(43),2).EQ.1) MSPLI=1
07526 IF(IABS(MINT(14+JT)).LE.8.OR.MINT(14+JT).EQ.21) MSPLI=MSPLI+1
07527 IF(MSPLI.EQ.2) THEN
07528 KFLH=MINT(14+JT)
07529 XHRD=VINT(140+JT)
07530 Q2HRD=VINT(54)
07531 MINT(105)=MINT(102+JT)
07532 MINT(109)=MINT(106+JT)
07533 VINT(120)=VINT(2+JT)
07534 IF(MSTP(57).LE.1) THEN
07535 CALL PYPDFU(22,XHRD,Q2HRD,XPQ)
07536 ELSE
07537 CALL PYPDFL(22,XHRD,Q2HRD,XPQ)
07538 ENDIF
07539 WTMX=4D0*XPQ(KFLH)
07540 IF(MSTP(13).EQ.2) THEN
07541 Q2PMS=Q2HRD/PMAS(11,1)**2
07542 WTMX=WTMX*LOG(MAX(2D0,Q2PMS*(1D0-XHRD)/XHRD**2))
07543 ENDIF
07544 310 XE=XHRD**PYR(0)
07545 XG=MIN(1D0-1D-10,XHRD/XE)
07546 IF(MSTP(57).LE.1) THEN
07547 CALL PYPDFU(22,XG,Q2HRD,XPQ)
07548 ELSE
07549 CALL PYPDFL(22,XG,Q2HRD,XPQ)
07550 ENDIF
07551 WT=(1D0+(1D0-XE)**2)*XPQ(KFLH)
07552 IF(MSTP(13).EQ.2) WT=WT*LOG(MAX(2D0,Q2PMS*(1D0-XE)/XE**2))
07553 IF(WT.LT.PYR(0)*WTMX) GOTO 310
07554 MINT(18+JT)=1
07555 VINT(154+JT)=XE
07556 DO 320 KFLS=-25,25
07557 XSFX(JT,KFLS)=XPQ(KFLS)
07558 320 CONTINUE
07559 ENDIF
07560 330 CONTINUE
07561
07562
07563 Q0S=PARP(15)**2
07564 Q1S=VINT(154)**2
07565 VINT(283)=0D0
07566 IF(MINT(107).EQ.3) THEN
07567 IF(MSTP(66).EQ.1) THEN
07568 VINT(283)=Q0S*(VINT(54)/Q0S)**PYR(0)
07569 ELSEIF(MSTP(66).EQ.2) THEN
07570 PS=VINT(3)**2
07571 Q2EFF=VINT(54)*((Q0S+PS)/(VINT(54)+PS))*
07572 & EXP(PS*(VINT(54)-Q0S)/((VINT(54)+PS)*(Q0S+PS)))
07573 Q2INT=SQRT(Q0S*Q2EFF)
07574 VINT(283)=Q2INT*(VINT(54)/Q2INT)**PYR(0)
07575 ELSEIF(MSTP(66).EQ.3) THEN
07576 VINT(283)=Q0S*(Q1S/Q0S)**PYR(0)
07577 ELSEIF(MSTP(66).GE.4) THEN
07578 PS=0.25D0*VINT(3)**2
07579 VINT(283)=(Q0S+PS)*(Q1S+PS)/
07580 & (Q0S+PYR(0)*(Q1S-Q0S)+PS)-PS
07581 ENDIF
07582 ENDIF
07583 VINT(284)=0D0
07584 IF(MINT(108).EQ.3) THEN
07585 IF(MSTP(66).EQ.1) THEN
07586 VINT(284)=Q0S*(VINT(54)/Q0S)**PYR(0)
07587 ELSEIF(MSTP(66).EQ.2) THEN
07588 PS=VINT(4)**2
07589 Q2EFF=VINT(54)*((Q0S+PS)/(VINT(54)+PS))*
07590 & EXP(PS*(VINT(54)-Q0S)/((VINT(54)+PS)*(Q0S+PS)))
07591 Q2INT=SQRT(Q0S*Q2EFF)
07592 VINT(284)=Q2INT*(VINT(54)/Q2INT)**PYR(0)
07593 ELSEIF(MSTP(66).EQ.3) THEN
07594 VINT(284)=Q0S*(Q1S/Q0S)**PYR(0)
07595 ELSEIF(MSTP(66).GE.4) THEN
07596 PS=0.25D0*VINT(4)**2
07597 VINT(284)=(Q0S+PS)*(Q1S+PS)/
07598 & (Q0S+PYR(0)*(Q1S-Q0S)+PS)-PS
07599 ENDIF
07600 ENDIF
07601 IF(MINT(121).GT.1) CALL PYSAVE(2,IGA)
07602
07603
07604 5000 FORMAT(/1X,'Error: negative cross-section fraction',1P,D11.3,1X,
07605 &'in event',1X,I7,'D0'/1X,'Execution stopped!')
07606 5100 FORMAT(1X,'ISUB = ',I3,'; Point of violation:'/1X,'tau =',1P,
07607 &D11.3,', y* =',D11.3,', cthe = ',0P,F11.7,', tau'' =',1P,D11.3)
07608 5200 FORMAT(/1X,'Warning: negative cross-section fraction',1P,D11.3,1X,
07609 &'in event',1X,I7)
07610 5300 FORMAT(/1X,'Error: maximum violated by',1P,D11.3,1X,
07611 &'in event',1X,I7,'D0'/1X,'Execution stopped!')
07612 5400 FORMAT(/1X,'Advisory warning: maximum violated by',1P,D11.3,1X,
07613 &'in event',1X,I7)
07614 5500 FORMAT(1X,'XSEC(',I1,',1) increased to',1P,D11.3)
07615 5600 FORMAT(1X,'XSEC(',I2,',1) increased to',1P,D11.3)
07616 5700 FORMAT(1X,'XSEC(',I3,',1) increased to',1P,D11.3)
07617
07618 RETURN
07619 END
07620
07621
07622
07623
07624
07625
07626
07627 SUBROUTINE PYSCAT
07628
07629
07630 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
07631 IMPLICIT INTEGER(I-N)
07632 INTEGER PYK,PYCHGE,PYCOMP
07633
07634 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
07635
07636 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
07637 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
07638 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
07639 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
07640 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
07641 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
07642 COMMON/PYINT1/MINT(400),VINT(400)
07643 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
07644 COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
07645 COMMON/PYINT4/MWID(500),WIDS(500,5)
07646 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
07647 COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
07648 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
07649 &SFMIX(16,4)
07650 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYSUBS/,/PYPARS/,
07651 &/PYINT1/,/PYINT2/,/PYINT3/,/PYINT4/,/PYINT5/,/PYUPPR/,/PYSSMT/
07652
07653 DIMENSION WDTP(0:200),WDTE(0:200,0:5),PMQ(2),Z(2),CTHE(2),
07654 &PHI(2),KUPPO(20),VINTSV(41:66)
07655 SAVE VINTSV
07656
07657
07658 ISUB=MINT(1)
07659 ISUBSV=ISUB
07660
07661
07662 IF(ISUB.EQ.95.AND.MINT(57).GE.1) THEN
07663 DO 100 J=41,66
07664 100 VINT(J)=VINTSV(J)
07665 ENDIF
07666
07667
07668 IHIGG=1
07669 KFHIGG=25
07670 IF((ISUB.GE.151.AND.ISUB.LE.160).OR.(ISUB.GE.171.AND.
07671 &ISUB.LE.190)) THEN
07672 IHIGG=2
07673 IF(MOD(ISUB-1,10).GE.5) IHIGG=3
07674 KFHIGG=33+IHIGG
07675 IF(ISUB.EQ.151.OR.ISUB.EQ.156) ISUB=3
07676 IF(ISUB.EQ.152.OR.ISUB.EQ.157) ISUB=102
07677 IF(ISUB.EQ.153.OR.ISUB.EQ.158) ISUB=103
07678 IF(ISUB.EQ.171.OR.ISUB.EQ.176) ISUB=24
07679 IF(ISUB.EQ.172.OR.ISUB.EQ.177) ISUB=26
07680 IF(ISUB.EQ.173.OR.ISUB.EQ.178) ISUB=123
07681 IF(ISUB.EQ.174.OR.ISUB.EQ.179) ISUB=124
07682 IF(ISUB.EQ.181.OR.ISUB.EQ.186) ISUB=121
07683 IF(ISUB.EQ.182.OR.ISUB.EQ.187) ISUB=122
07684 ENDIF
07685
07686
07687 IDOC=6+ISET(ISUB)
07688 IF(ISUB.EQ.95) IDOC=8
07689 IF(ISET(ISUB).EQ.5) IDOC=9
07690 IF(ISET(ISUB).EQ.11) IDOC=4+NUP
07691 MINT(3)=IDOC-6
07692 IF(IDOC.GE.9.AND.ISET(ISUB).LE.4) IDOC=IDOC+2
07693 MINT(4)=IDOC
07694 IPU1=MINT(84)+1
07695 IPU2=MINT(84)+2
07696 IPU3=MINT(84)+3
07697 IPU4=MINT(84)+4
07698 IPU5=MINT(84)+5
07699 IPU6=MINT(84)+6
07700
07701
07702 DO 120 JT=1,MSTP(126)+20
07703 I=MINT(83)+JT
07704 DO 110 J=1,5
07705 K(I,J)=0
07706 P(I,J)=0D0
07707 V(I,J)=0D0
07708 110 CONTINUE
07709 120 CONTINUE
07710 DO 140 JT=1,2
07711 I=MINT(83)+JT
07712 K(I,1)=21
07713 K(I,2)=MINT(10+JT)
07714 DO 130 J=1,5
07715 P(I,J)=VINT(285+5*JT+J)
07716 130 CONTINUE
07717 140 CONTINUE
07718 MINT(6)=2
07719 KFRES=0
07720
07721
07722 SH=VINT(44)
07723 SHR=SQRT(SH)
07724 SHP=VINT(26)*VINT(2)
07725 SHPR=SQRT(SHP)
07726 SHUSER=SHR
07727 IF(ISET(ISUB).GE.3.AND.ISET(ISUB).LE.5) SHUSER=SHPR
07728 DO 150 JT=1,2
07729 I=MINT(84)+JT
07730 K(I,1)=14
07731 K(I,2)=MINT(14+JT)
07732 K(I,3)=MINT(83)+2+JT
07733 P(I,3)=0.5D0*SHUSER*(-1D0)**(JT-1)
07734 P(I,4)=0.5D0*SHUSER
07735 150 CONTINUE
07736
07737
07738 DO 170 JT=1,2
07739 I1=MINT(83)+4+JT
07740 I2=MINT(84)+JT
07741 K(I1,1)=21
07742 K(I1,2)=K(I2,2)
07743 K(I1,3)=I1-2
07744 DO 160 J=1,5
07745 P(I1,J)=P(I2,J)
07746 160 CONTINUE
07747 170 CONTINUE
07748
07749
07750 IF(ISUB.EQ.12.OR.ISUB.EQ.53.OR.ISUB.EQ.54.OR.ISUB.EQ.58.OR.
07751 &(ISUB.GE.135.AND.ISUB.LE.140)) THEN
07752 IGLGA=21
07753 IF(ISUB.EQ.58.OR.(ISUB.GE.137.AND.ISUB.LE.140)) IGLGA=22
07754 CALL PYWIDT(IGLGA,SH,WDTP,WDTE)
07755 180 RKFL=(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))*PYR(0)
07756 DO 190 I=1,MDCY(IGLGA,3)
07757 KFLF=KFDP(I+MDCY(IGLGA,2)-1,1)
07758 RKFL=RKFL-(WDTE(I,1)+WDTE(I,2)+WDTE(I,4))
07759 IF(RKFL.LE.0D0) GOTO 200
07760 190 CONTINUE
07761 200 CONTINUE
07762 IF(ISUB.EQ.12.AND.MSTP(5).EQ.1.AND.IABS(MINT(15)).LE.2.AND.
07763 & IABS(KFLF).GE.3) THEN
07764 FACQQB=VINT(58)**2*4D0/9D0*(VINT(45)**2+VINT(46)**2)/
07765 & VINT(44)**2
07766 FACCIB=VINT(46)**2/PARU(155)**4
07767 IF(FACQQB/(FACQQB+FACCIB).LT.PYR(0)) GOTO 180
07768 ELSEIF(ISUB.EQ.54.OR.ISUB.EQ.135.OR.ISUB.EQ.136) THEN
07769 IF((KCHG(PYCOMP(KFLF),1)/2D0)**2.LT.PYR(0)) GOTO 180
07770 ELSEIF(ISUB.EQ.58.OR.(ISUB.GE.137.AND.ISUB.LE.140)) THEN
07771 IF((KCHG(PYCOMP(KFLF),1)/3D0)**2.LT.PYR(0)) GOTO 180
07772 ENDIF
07773 ENDIF
07774
07775
07776 JS=1
07777 MINT(21)=MINT(15)
07778 MINT(22)=MINT(16)
07779 MINT(23)=0
07780 MINT(24)=0
07781 KCC=20
07782 KCS=ISIGN(1,MINT(15))
07783
07784 IF(ISET(ISUB).EQ.11) THEN
07785
07786 IRUP=0
07787 DO 210 IUP=3,NUP
07788 IF(KUP(IUP,1).NE.1) THEN
07789 ELSEIF(IRUP.LE.5) THEN
07790 IRUP=IRUP+1
07791 MINT(20+IRUP)=KUP(IUP,2)
07792 ENDIF
07793 210 CONTINUE
07794
07795 ELSEIF(ISUB.LE.10) THEN
07796 IF(ISUB.EQ.1) THEN
07797
07798 KFRES=23
07799
07800 ELSEIF(ISUB.EQ.2) THEN
07801
07802 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
07803 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
07804 KFRES=ISIGN(24,KCH1+KCH2)
07805
07806 ELSEIF(ISUB.EQ.3) THEN
07807
07808 KFRES=KFHIGG
07809
07810 ELSEIF(ISUB.EQ.4) THEN
07811
07812
07813 ELSEIF(ISUB.EQ.5) THEN
07814
07815 XH=SH/SHP
07816 MINT(21)=MINT(15)
07817 MINT(22)=MINT(16)
07818 PMQ(1)=PYMASS(MINT(21))
07819 PMQ(2)=PYMASS(MINT(22))
07820 220 JT=INT(1.5D0+PYR(0))
07821 ZMIN=2D0*PMQ(JT)/SHPR
07822 ZMAX=1D0-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/
07823 & (SHPR*(SHPR-PMQ(3-JT)))
07824 ZMAX=MIN(1D0-XH,ZMAX)
07825 Z(JT)=ZMIN+(ZMAX-ZMIN)*PYR(0)
07826 IF(-1D0+(1D0+XH)/(1D0-Z(JT))-XH/(1D0-Z(JT))**2.LT.
07827 & (1D0-XH)**2/(4D0*XH)*PYR(0)) GOTO 220
07828 SQC1=1D0-4D0*PMQ(JT)**2/(Z(JT)**2*SHP)
07829 IF(SQC1.LT.1D-8) GOTO 220
07830 C1=SQRT(SQC1)
07831 C2=1D0+2D0*(PMAS(23,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
07832 CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
07833 CTHE(JT)=MIN(1D0,MAX(-1D0,CTHE(JT)))
07834 Z(3-JT)=1D0-XH/(1D0-Z(JT))
07835 SQC1=1D0-4D0*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
07836 IF(SQC1.LT.1D-8) GOTO 220
07837 C1=SQRT(SQC1)
07838 C2=1D0+2D0*(PMAS(23,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
07839 CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
07840 CTHE(3-JT)=MIN(1D0,MAX(-1D0,CTHE(3-JT)))
07841 PHIR=PARU(2)*PYR(0)
07842 CPHI=COS(PHIR)
07843 ANG=CTHE(1)*CTHE(2)-SQRT(1D0-CTHE(1)**2)*
07844 & SQRT(1D0-CTHE(2)**2)*CPHI
07845 Z1=2D0-Z(JT)
07846 Z2=ANG*SQRT(Z(JT)**2-4D0*PMQ(JT)**2/SHP)
07847 Z3=1D0-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
07848 Z(3-JT)=2D0/(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
07849 & PMQ(3-JT)**2/SHP))
07850 ZMIN=2D0*PMQ(3-JT)/SHPR
07851 ZMAX=1D0-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
07852 ZMAX=MIN(1D0-XH,ZMAX)
07853 IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 220
07854 KCC=22
07855 KFRES=25
07856
07857 ELSEIF(ISUB.EQ.6) THEN
07858
07859
07860 ELSEIF(ISUB.EQ.7) THEN
07861
07862
07863 ELSEIF(ISUB.EQ.8) THEN
07864
07865 XH=SH/SHP
07866 230 DO 260 JT=1,2
07867 I=MINT(14+JT)
07868 IA=IABS(I)
07869 IF(IA.LE.10) THEN
07870 RVCKM=VINT(180+I)*PYR(0)
07871 DO 240 J=1,MSTP(1)
07872 IB=2*J-1+MOD(IA,2)
07873 IPM=(5-ISIGN(1,I))/2
07874 IDC=J+MDCY(IA,2)+2
07875 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 240
07876 MINT(20+JT)=ISIGN(IB,I)
07877 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
07878 IF(RVCKM.LE.0D0) GOTO 250
07879 240 CONTINUE
07880 ELSE
07881 IB=2*((IA+1)/2)-1+MOD(IA,2)
07882 MINT(20+JT)=ISIGN(IB,I)
07883 ENDIF
07884 250 PMQ(JT)=PYMASS(MINT(20+JT))
07885 260 CONTINUE
07886 JT=INT(1.5D0+PYR(0))
07887 ZMIN=2D0*PMQ(JT)/SHPR
07888 ZMAX=1D0-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/
07889 & (SHPR*(SHPR-PMQ(3-JT)))
07890 ZMAX=MIN(1D0-XH,ZMAX)
07891 IF(ZMIN.GE.ZMAX) GOTO 230
07892 Z(JT)=ZMIN+(ZMAX-ZMIN)*PYR(0)
07893 IF(-1D0+(1D0+XH)/(1D0-Z(JT))-XH/(1D0-Z(JT))**2.LT.
07894 & (1D0-XH)**2/(4D0*XH)*PYR(0)) GOTO 230
07895 SQC1=1D0-4D0*PMQ(JT)**2/(Z(JT)**2*SHP)
07896 IF(SQC1.LT.1D-8) GOTO 230
07897 C1=SQRT(SQC1)
07898 C2=1D0+2D0*(PMAS(24,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
07899 CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
07900 CTHE(JT)=MIN(1D0,MAX(-1D0,CTHE(JT)))
07901 Z(3-JT)=1D0-XH/(1D0-Z(JT))
07902 SQC1=1D0-4D0*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
07903 IF(SQC1.LT.1D-8) GOTO 230
07904 C1=SQRT(SQC1)
07905 C2=1D0+2D0*(PMAS(24,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
07906 CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
07907 CTHE(3-JT)=MIN(1D0,MAX(-1D0,CTHE(3-JT)))
07908 PHIR=PARU(2)*PYR(0)
07909 CPHI=COS(PHIR)
07910 ANG=CTHE(1)*CTHE(2)-SQRT(1D0-CTHE(1)**2)*
07911 & SQRT(1D0-CTHE(2)**2)*CPHI
07912 Z1=2D0-Z(JT)
07913 Z2=ANG*SQRT(Z(JT)**2-4D0*PMQ(JT)**2/SHP)
07914 Z3=1D0-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
07915 Z(3-JT)=2D0/(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
07916 & PMQ(3-JT)**2/SHP))
07917 ZMIN=2D0*PMQ(3-JT)/SHPR
07918 ZMAX=1D0-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
07919 ZMAX=MIN(1D0-XH,ZMAX)
07920 IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 230
07921 KCC=22
07922 KFRES=25
07923
07924 ELSEIF(ISUB.EQ.10) THEN
07925
07926 IF(MINT(2).EQ.1) THEN
07927 KCC=22
07928 ELSE
07929
07930 DO 280 JT=1,2
07931 I=MINT(14+JT)
07932 IA=IABS(I)
07933 IF(IA.LE.10) THEN
07934 RVCKM=VINT(180+I)*PYR(0)
07935 DO 270 J=1,MSTP(1)
07936 IB=2*J-1+MOD(IA,2)
07937 IPM=(5-ISIGN(1,I))/2
07938 IDC=J+MDCY(IA,2)+2
07939 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 270
07940 MINT(20+JT)=ISIGN(IB,I)
07941 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
07942 IF(RVCKM.LE.0D0) GOTO 280
07943 270 CONTINUE
07944 ELSE
07945 IB=2*((IA+1)/2)-1+MOD(IA,2)
07946 MINT(20+JT)=ISIGN(IB,I)
07947 ENDIF
07948 280 CONTINUE
07949 KCC=22
07950 ENDIF
07951 ENDIF
07952
07953 ELSEIF(ISUB.LE.20) THEN
07954 IF(ISUB.EQ.11) THEN
07955
07956 KCC=MINT(2)
07957 IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
07958
07959 ELSEIF(ISUB.EQ.12) THEN
07960
07961 MINT(21)=ISIGN(KFLF,MINT(15))
07962 MINT(22)=-MINT(21)
07963 KCC=4
07964
07965 ELSEIF(ISUB.EQ.13) THEN
07966
07967 MINT(21)=21
07968 MINT(22)=21
07969 KCC=MINT(2)+4
07970
07971 ELSEIF(ISUB.EQ.14) THEN
07972
07973 IF(PYR(0).GT.0.5D0) JS=2
07974 MINT(20+JS)=21
07975 MINT(23-JS)=22
07976 KCC=17+JS
07977
07978 ELSEIF(ISUB.EQ.15) THEN
07979
07980 IF(PYR(0).GT.0.5D0) JS=2
07981 MINT(20+JS)=21
07982 MINT(23-JS)=23
07983 KCC=17+JS
07984
07985 ELSEIF(ISUB.EQ.16) THEN
07986
07987 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
07988 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
07989 IF(MINT(15)*(KCH1+KCH2).LT.0) JS=2
07990 MINT(20+JS)=21
07991 MINT(23-JS)=ISIGN(24,KCH1+KCH2)
07992 KCC=17+JS
07993
07994 ELSEIF(ISUB.EQ.17) THEN
07995
07996 IF(PYR(0).GT.0.5D0) JS=2
07997 MINT(20+JS)=21
07998 MINT(23-JS)=25
07999 KCC=17+JS
08000
08001 ELSEIF(ISUB.EQ.18) THEN
08002
08003 MINT(21)=22
08004 MINT(22)=22
08005
08006 ELSEIF(ISUB.EQ.19) THEN
08007
08008 IF(PYR(0).GT.0.5D0) JS=2
08009 MINT(20+JS)=22
08010 MINT(23-JS)=23
08011
08012 ELSEIF(ISUB.EQ.20) THEN
08013
08014
08015 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
08016 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
08017 IF(MINT(15)*(KCH1+KCH2).LT.0) JS=2
08018 MINT(20+JS)=22
08019 MINT(23-JS)=ISIGN(24,KCH1+KCH2)
08020 ENDIF
08021
08022 ELSEIF(ISUB.LE.30) THEN
08023 IF(ISUB.EQ.21) THEN
08024
08025 IF(PYR(0).GT.0.5D0) JS=2
08026 MINT(20+JS)=22
08027 MINT(23-JS)=25
08028
08029 ELSEIF(ISUB.EQ.22) THEN
08030
08031 MINT(21)=23
08032 MINT(22)=23
08033
08034 ELSEIF(ISUB.EQ.23) THEN
08035
08036 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
08037 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
08038 IF(MINT(15)*(KCH1+KCH2).LT.0) JS=2
08039 MINT(20+JS)=23
08040 MINT(23-JS)=ISIGN(24,KCH1+KCH2)
08041
08042 ELSEIF(ISUB.EQ.24) THEN
08043
08044 IF(PYR(0).GT.0.5D0) JS=2
08045 MINT(20+JS)=23
08046 MINT(23-JS)=KFHIGG
08047
08048 ELSEIF(ISUB.EQ.25) THEN
08049
08050 MINT(21)=-ISIGN(24,MINT(15))
08051 MINT(22)=-MINT(21)
08052
08053 ELSEIF(ISUB.EQ.26) THEN
08054
08055
08056 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
08057 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
08058 IF(MINT(15)*(KCH1+KCH2).GT.0) JS=2
08059 MINT(20+JS)=ISIGN(24,KCH1+KCH2)
08060 MINT(23-JS)=KFHIGG
08061
08062 ELSEIF(ISUB.EQ.27) THEN
08063
08064
08065 ELSEIF(ISUB.EQ.28) THEN
08066
08067 KCC=MINT(2)+6
08068 IF(MINT(15).EQ.21) KCC=KCC+2
08069 IF(MINT(15).NE.21) KCS=ISIGN(1,MINT(15))
08070 IF(MINT(16).NE.21) KCS=ISIGN(1,MINT(16))
08071
08072 ELSEIF(ISUB.EQ.29) THEN
08073
08074 IF(MINT(15).EQ.21) JS=2
08075 MINT(23-JS)=22
08076 KCC=15+JS
08077 KCS=ISIGN(1,MINT(14+JS))
08078
08079 ELSEIF(ISUB.EQ.30) THEN
08080
08081 IF(MINT(15).EQ.21) JS=2
08082 MINT(23-JS)=23
08083 KCC=15+JS
08084 KCS=ISIGN(1,MINT(14+JS))
08085 ENDIF
08086
08087 ELSEIF(ISUB.LE.40) THEN
08088 IF(ISUB.EQ.31) THEN
08089
08090 IF(MINT(15).EQ.21) JS=2
08091 I=MINT(14+JS)
08092 IA=IABS(I)
08093 MINT(23-JS)=ISIGN(24,KCHG(IA,1)*I)
08094 RVCKM=VINT(180+I)*PYR(0)
08095 DO 290 J=1,MSTP(1)
08096 IB=2*J-1+MOD(IA,2)
08097 IPM=(5-ISIGN(1,I))/2
08098 IDC=J+MDCY(IA,2)+2
08099 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 290
08100 MINT(20+JS)=ISIGN(IB,I)
08101 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
08102 IF(RVCKM.LE.0D0) GOTO 300
08103 290 CONTINUE
08104 300 KCC=15+JS
08105 KCS=ISIGN(1,MINT(14+JS))
08106
08107 ELSEIF(ISUB.EQ.32) THEN
08108
08109 IF(MINT(15).EQ.21) JS=2
08110 MINT(23-JS)=25
08111 KCC=15+JS
08112 KCS=ISIGN(1,MINT(14+JS))
08113
08114 ELSEIF(ISUB.EQ.33) THEN
08115
08116 IF(MINT(15).EQ.22) JS=2
08117 MINT(23-JS)=21
08118 KCC=24+JS
08119 KCS=ISIGN(1,MINT(14+JS))
08120
08121 ELSEIF(ISUB.EQ.34) THEN
08122
08123 IF(MINT(15).EQ.22) JS=2
08124 KCC=22
08125 KCS=ISIGN(1,MINT(14+JS))
08126
08127 ELSEIF(ISUB.EQ.35) THEN
08128
08129 IF(MINT(15).EQ.22) JS=2
08130 MINT(23-JS)=23
08131 KCC=22
08132
08133 ELSEIF(ISUB.EQ.36) THEN
08134
08135 IF(MINT(15).EQ.22) JS=2
08136 I=MINT(14+JS)
08137 IA=IABS(I)
08138 MINT(23-JS)=ISIGN(24,KCHG(IA,1)*I)
08139 IF(IA.LE.10) THEN
08140 RVCKM=VINT(180+I)*PYR(0)
08141 DO 310 J=1,MSTP(1)
08142 IB=2*J-1+MOD(IA,2)
08143 IPM=(5-ISIGN(1,I))/2
08144 IDC=J+MDCY(IA,2)+2
08145 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 310
08146 MINT(20+JS)=ISIGN(IB,I)
08147 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
08148 IF(RVCKM.LE.0D0) GOTO 320
08149 310 CONTINUE
08150 ELSE
08151 IB=2*((IA+1)/2)-1+MOD(IA,2)
08152 MINT(20+JS)=ISIGN(IB,I)
08153 ENDIF
08154 320 KCC=22
08155
08156 ELSEIF(ISUB.EQ.37) THEN
08157
08158
08159 ELSEIF(ISUB.EQ.38) THEN
08160
08161
08162 ELSEIF(ISUB.EQ.39) THEN
08163
08164
08165 ELSEIF(ISUB.EQ.40) THEN
08166
08167 ENDIF
08168
08169 ELSEIF(ISUB.LE.50) THEN
08170 IF(ISUB.EQ.41) THEN
08171
08172
08173 ELSEIF(ISUB.EQ.42) THEN
08174
08175
08176 ELSEIF(ISUB.EQ.43) THEN
08177
08178
08179 ELSEIF(ISUB.EQ.44) THEN
08180
08181
08182 ELSEIF(ISUB.EQ.45) THEN
08183
08184
08185 ELSEIF(ISUB.EQ.46) THEN
08186
08187
08188 ELSEIF(ISUB.EQ.47) THEN
08189
08190
08191 ELSEIF(ISUB.EQ.48) THEN
08192
08193
08194 ELSEIF(ISUB.EQ.49) THEN
08195
08196
08197 ELSEIF(ISUB.EQ.50) THEN
08198
08199 ENDIF
08200
08201 ELSEIF(ISUB.LE.60) THEN
08202 IF(ISUB.EQ.51) THEN
08203
08204
08205 ELSEIF(ISUB.EQ.52) THEN
08206
08207
08208 ELSEIF(ISUB.EQ.53) THEN
08209
08210 KCS=(-1)**INT(1.5D0+PYR(0))
08211 MINT(21)=ISIGN(KFLF,KCS)
08212 MINT(22)=-MINT(21)
08213 KCC=MINT(2)+10
08214
08215 ELSEIF(ISUB.EQ.54) THEN
08216
08217 KCS=(-1)**INT(1.5D0+PYR(0))
08218 MINT(21)=ISIGN(KFLF,KCS)
08219 MINT(22)=-MINT(21)
08220 KCC=27
08221 IF(MINT(16).EQ.21) KCC=28
08222
08223 ELSEIF(ISUB.EQ.55) THEN
08224
08225
08226 ELSEIF(ISUB.EQ.56) THEN
08227
08228
08229 ELSEIF(ISUB.EQ.57) THEN
08230
08231
08232 ELSEIF(ISUB.EQ.58) THEN
08233
08234 KCS=(-1)**INT(1.5D0+PYR(0))
08235 MINT(21)=ISIGN(KFLF,KCS)
08236 MINT(22)=-MINT(21)
08237 KCC=21
08238
08239 ELSEIF(ISUB.EQ.59) THEN
08240
08241
08242 ELSEIF(ISUB.EQ.60) THEN
08243
08244 ENDIF
08245
08246 ELSEIF(ISUB.LE.70) THEN
08247 IF(ISUB.EQ.61) THEN
08248
08249
08250 ELSEIF(ISUB.EQ.62) THEN
08251
08252
08253 ELSEIF(ISUB.EQ.63) THEN
08254
08255
08256 ELSEIF(ISUB.EQ.64) THEN
08257
08258
08259 ELSEIF(ISUB.EQ.65) THEN
08260
08261
08262 ELSEIF(ISUB.EQ.66) THEN
08263
08264
08265 ELSEIF(ISUB.EQ.67) THEN
08266
08267
08268 ELSEIF(ISUB.EQ.68) THEN
08269
08270 KCC=MINT(2)+12
08271 KCS=(-1)**INT(1.5D0+PYR(0))
08272
08273 ELSEIF(ISUB.EQ.69) THEN
08274
08275 MINT(21)=24
08276 MINT(22)=-24
08277 KCC=21
08278
08279 ELSEIF(ISUB.EQ.70) THEN
08280
08281 IF(MINT(15).EQ.22) MINT(21)=23
08282 IF(MINT(16).EQ.22) MINT(22)=23
08283 KCC=21
08284 ENDIF
08285
08286 ELSEIF(ISUB.LE.80) THEN
08287 IF(ISUB.EQ.71.OR.ISUB.EQ.72) THEN
08288
08289 XH=SH/SHP
08290 MINT(21)=MINT(15)
08291 MINT(22)=MINT(16)
08292 PMQ(1)=PYMASS(MINT(21))
08293 PMQ(2)=PYMASS(MINT(22))
08294 330 JT=INT(1.5D0+PYR(0))
08295 ZMIN=2D0*PMQ(JT)/SHPR
08296 ZMAX=1D0-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/
08297 & (SHPR*(SHPR-PMQ(3-JT)))
08298 ZMAX=MIN(1D0-XH,ZMAX)
08299 Z(JT)=ZMIN+(ZMAX-ZMIN)*PYR(0)
08300 IF(-1D0+(1D0+XH)/(1D0-Z(JT))-XH/(1D0-Z(JT))**2.LT.
08301 & (1D0-XH)**2/(4D0*XH)*PYR(0)) GOTO 330
08302 SQC1=1D0-4D0*PMQ(JT)**2/(Z(JT)**2*SHP)
08303 IF(SQC1.LT.1D-8) GOTO 330
08304 C1=SQRT(SQC1)
08305 C2=1D0+2D0*(PMAS(23,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
08306 CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
08307 CTHE(JT)=MIN(1D0,MAX(-1D0,CTHE(JT)))
08308 Z(3-JT)=1D0-XH/(1D0-Z(JT))
08309 SQC1=1D0-4D0*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
08310 IF(SQC1.LT.1D-8) GOTO 330
08311 C1=SQRT(SQC1)
08312 C2=1D0+2D0*(PMAS(23,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
08313 CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
08314 CTHE(3-JT)=MIN(1D0,MAX(-1D0,CTHE(3-JT)))
08315 PHIR=PARU(2)*PYR(0)
08316 CPHI=COS(PHIR)
08317 ANG=CTHE(1)*CTHE(2)-SQRT(1D0-CTHE(1)**2)*
08318 & SQRT(1D0-CTHE(2)**2)*CPHI
08319 Z1=2D0-Z(JT)
08320 Z2=ANG*SQRT(Z(JT)**2-4D0*PMQ(JT)**2/SHP)
08321 Z3=1D0-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
08322 Z(3-JT)=2D0/(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
08323 & PMQ(3-JT)**2/SHP))
08324 ZMIN=2D0*PMQ(3-JT)/SHPR
08325 ZMAX=1D0-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
08326 ZMAX=MIN(1D0-XH,ZMAX)
08327 IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 330
08328 KCC=22
08329
08330 ELSEIF(ISUB.EQ.73) THEN
08331
08332 JS=MINT(2)
08333 XH=SH/SHP
08334 340 JT=3-MINT(2)
08335 I=MINT(14+JT)
08336 IA=IABS(I)
08337 IF(IA.LE.10) THEN
08338 RVCKM=VINT(180+I)*PYR(0)
08339 DO 350 J=1,MSTP(1)
08340 IB=2*J-1+MOD(IA,2)
08341 IPM=(5-ISIGN(1,I))/2
08342 IDC=J+MDCY(IA,2)+2
08343 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 350
08344 MINT(20+JT)=ISIGN(IB,I)
08345 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
08346 IF(RVCKM.LE.0D0) GOTO 360
08347 350 CONTINUE
08348 ELSE
08349 IB=2*((IA+1)/2)-1+MOD(IA,2)
08350 MINT(20+JT)=ISIGN(IB,I)
08351 ENDIF
08352 360 PMQ(JT)=PYMASS(MINT(20+JT))
08353 MINT(23-JT)=MINT(17-JT)
08354 PMQ(3-JT)=PYMASS(MINT(23-JT))
08355 JT=INT(1.5D0+PYR(0))
08356 ZMIN=2D0*PMQ(JT)/SHPR
08357 ZMAX=1D0-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/
08358 & (SHPR*(SHPR-PMQ(3-JT)))
08359 ZMAX=MIN(1D0-XH,ZMAX)
08360 IF(ZMIN.GE.ZMAX) GOTO 340
08361 Z(JT)=ZMIN+(ZMAX-ZMIN)*PYR(0)
08362 IF(-1D0+(1D0+XH)/(1D0-Z(JT))-XH/(1D0-Z(JT))**2.LT.
08363 & (1D0-XH)**2/(4D0*XH)*PYR(0)) GOTO 340
08364 SQC1=1D0-4D0*PMQ(JT)**2/(Z(JT)**2*SHP)
08365 IF(SQC1.LT.1D-8) GOTO 340
08366 C1=SQRT(SQC1)
08367 C2=1D0+2D0*(PMAS(23,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
08368 CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
08369 CTHE(JT)=MIN(1D0,MAX(-1D0,CTHE(JT)))
08370 Z(3-JT)=1D0-XH/(1D0-Z(JT))
08371 SQC1=1D0-4D0*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
08372 IF(SQC1.LT.1D-8) GOTO 340
08373 C1=SQRT(SQC1)
08374 C2=1D0+2D0*(PMAS(23,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
08375 CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
08376 CTHE(3-JT)=MIN(1D0,MAX(-1D0,CTHE(3-JT)))
08377 PHIR=PARU(2)*PYR(0)
08378 CPHI=COS(PHIR)
08379 ANG=CTHE(1)*CTHE(2)-SQRT(1D0-CTHE(1)**2)*
08380 & SQRT(1D0-CTHE(2)**2)*CPHI
08381 Z1=2D0-Z(JT)
08382 Z2=ANG*SQRT(Z(JT)**2-4D0*PMQ(JT)**2/SHP)
08383 Z3=1D0-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
08384 Z(3-JT)=2D0/(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
08385 & PMQ(3-JT)**2/SHP))
08386 ZMIN=2D0*PMQ(3-JT)/SHPR
08387 ZMAX=1D0-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
08388 ZMAX=MIN(1D0-XH,ZMAX)
08389 IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 340
08390 KCC=22
08391
08392 ELSEIF(ISUB.EQ.74) THEN
08393
08394
08395 ELSEIF(ISUB.EQ.75) THEN
08396
08397
08398 ELSEIF(ISUB.EQ.76.OR.ISUB.EQ.77) THEN
08399
08400 XH=SH/SHP
08401 370 DO 400 JT=1,2
08402 I=MINT(14+JT)
08403 IA=IABS(I)
08404 IF(IA.LE.10) THEN
08405 RVCKM=VINT(180+I)*PYR(0)
08406 DO 380 J=1,MSTP(1)
08407 IB=2*J-1+MOD(IA,2)
08408 IPM=(5-ISIGN(1,I))/2
08409 IDC=J+MDCY(IA,2)+2
08410 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 380
08411 MINT(20+JT)=ISIGN(IB,I)
08412 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
08413 IF(RVCKM.LE.0D0) GOTO 390
08414 380 CONTINUE
08415 ELSE
08416 IB=2*((IA+1)/2)-1+MOD(IA,2)
08417 MINT(20+JT)=ISIGN(IB,I)
08418 ENDIF
08419 390 PMQ(JT)=PYMASS(MINT(20+JT))
08420 400 CONTINUE
08421 JT=INT(1.5D0+PYR(0))
08422 ZMIN=2D0*PMQ(JT)/SHPR
08423 ZMAX=1D0-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/
08424 & (SHPR*(SHPR-PMQ(3-JT)))
08425 ZMAX=MIN(1D0-XH,ZMAX)
08426 IF(ZMIN.GE.ZMAX) GOTO 370
08427 Z(JT)=ZMIN+(ZMAX-ZMIN)*PYR(0)
08428 IF(-1D0+(1D0+XH)/(1D0-Z(JT))-XH/(1D0-Z(JT))**2.LT.
08429 & (1D0-XH)**2/(4D0*XH)*PYR(0)) GOTO 370
08430 SQC1=1D0-4D0*PMQ(JT)**2/(Z(JT)**2*SHP)
08431 IF(SQC1.LT.1D-8) GOTO 370
08432 C1=SQRT(SQC1)
08433 C2=1D0+2D0*(PMAS(24,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
08434 CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
08435 CTHE(JT)=MIN(1D0,MAX(-1D0,CTHE(JT)))
08436 Z(3-JT)=1D0-XH/(1D0-Z(JT))
08437 SQC1=1D0-4D0*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
08438 IF(SQC1.LT.1D-8) GOTO 370
08439 C1=SQRT(SQC1)
08440 C2=1D0+2D0*(PMAS(24,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
08441 CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
08442 CTHE(3-JT)=MIN(1D0,MAX(-1D0,CTHE(3-JT)))
08443 PHIR=PARU(2)*PYR(0)
08444 CPHI=COS(PHIR)
08445 ANG=CTHE(1)*CTHE(2)-SQRT(1D0-CTHE(1)**2)*
08446 & SQRT(1D0-CTHE(2)**2)*CPHI
08447 Z1=2D0-Z(JT)
08448 Z2=ANG*SQRT(Z(JT)**2-4D0*PMQ(JT)**2/SHP)
08449 Z3=1D0-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
08450 Z(3-JT)=2D0/(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
08451 & PMQ(3-JT)**2/SHP))
08452 ZMIN=2D0*PMQ(3-JT)/SHPR
08453 ZMAX=1D0-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
08454 ZMAX=MIN(1D0-XH,ZMAX)
08455 IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 370
08456 KCC=22
08457
08458 ELSEIF(ISUB.EQ.78) THEN
08459
08460
08461 ELSEIF(ISUB.EQ.79) THEN
08462
08463
08464 ELSEIF(ISUB.EQ.80) THEN
08465
08466 IF(MINT(15).EQ.22) JS=2
08467 I=MINT(14+JS)
08468 IA=IABS(I)
08469 MINT(23-JS)=ISIGN(211,KCHG(IA,1)*I)
08470 IB=3-IA
08471 MINT(20+JS)=ISIGN(IB,I)
08472 KCC=22
08473 ENDIF
08474
08475 ELSEIF(ISUB.LE.90) THEN
08476 IF(ISUB.EQ.81) THEN
08477
08478 MINT(21)=ISIGN(MINT(55),MINT(15))
08479 MINT(22)=-MINT(21)
08480 KCC=4
08481
08482 ELSEIF(ISUB.EQ.82) THEN
08483
08484 KCS=(-1)**INT(1.5D0+PYR(0))
08485 MINT(21)=ISIGN(MINT(55),KCS)
08486 MINT(22)=-MINT(21)
08487 KCC=MINT(2)+10
08488
08489 ELSEIF(ISUB.EQ.83) THEN
08490
08491 KFOLD=MINT(16)
08492 IF(MINT(2).EQ.2) KFOLD=MINT(15)
08493 KFAOLD=IABS(KFOLD)
08494 IF(KFAOLD.GT.10) THEN
08495 KFANEW=KFAOLD+2*MOD(KFAOLD,2)-1
08496 ELSE
08497 RCKM=VINT(180+KFOLD)*PYR(0)
08498 IPM=(5-ISIGN(1,KFOLD))/2
08499 KFANEW=-MOD(KFAOLD+1,2)
08500 410 KFANEW=KFANEW+2
08501 IDC=MDCY(KFAOLD,2)+(KFANEW+1)/2+2
08502 IF(MDME(IDC,1).EQ.1.OR.MDME(IDC,1).EQ.IPM) THEN
08503 IF(MOD(KFAOLD,2).EQ.0) RCKM=RCKM-
08504 & VCKM(KFAOLD/2,(KFANEW+1)/2)
08505 IF(MOD(KFAOLD,2).EQ.1) RCKM=RCKM-
08506 & VCKM(KFANEW/2,(KFAOLD+1)/2)
08507 ENDIF
08508 IF(KFANEW.LE.6.AND.RCKM.GT.0D0) GOTO 410
08509 ENDIF
08510 IF(MINT(2).EQ.1) THEN
08511 MINT(21)=ISIGN(MINT(55),MINT(15))
08512 MINT(22)=ISIGN(KFANEW,MINT(16))
08513 ELSE
08514 MINT(21)=ISIGN(KFANEW,MINT(15))
08515 MINT(22)=ISIGN(MINT(55),MINT(16))
08516 JS=2
08517 ENDIF
08518 KCC=22
08519
08520 ELSEIF(ISUB.EQ.84) THEN
08521
08522 KCS=(-1)**INT(1.5D0+PYR(0))
08523 MINT(21)=ISIGN(MINT(55),KCS)
08524 MINT(22)=-MINT(21)
08525 KCC=27
08526 IF(MINT(16).EQ.21) KCC=28
08527
08528 ELSEIF(ISUB.EQ.85) THEN
08529
08530 KCS=(-1)**INT(1.5D0+PYR(0))
08531 MINT(21)=ISIGN(MINT(56),KCS)
08532 MINT(22)=-MINT(21)
08533 KCC=21
08534
08535 ELSEIF(ISUB.GE.86.AND.ISUB.LE.89) THEN
08536
08537 MINT(21)=KFPR(ISUB,1)
08538 MINT(22)=KFPR(ISUB,2)
08539 KCC=24
08540 KCS=(-1)**INT(1.5D0+PYR(0))
08541 ENDIF
08542
08543 ELSEIF(ISUB.LE.100) THEN
08544 IF(ISUB.EQ.95) THEN
08545
08546 KCC=MINT(2)+12
08547 KCS=(-1)**INT(1.5D0+PYR(0))
08548
08549 ELSEIF(ISUB.EQ.96) THEN
08550
08551 ENDIF
08552
08553 ELSEIF(ISUB.LE.110) THEN
08554 IF(ISUB.EQ.101) THEN
08555
08556 KCC=21
08557 KFRES=22
08558
08559 ELSEIF(ISUB.EQ.102) THEN
08560
08561 KCC=21
08562 KFRES=KFHIGG
08563
08564 ELSEIF(ISUB.EQ.103) THEN
08565
08566 KCC=21
08567 KFRES=KFHIGG
08568
08569 ELSEIF(ISUB.EQ.104.OR.ISUB.EQ.105) THEN
08570
08571 KCC=21
08572 KFRES=KFPR(ISUB,1)
08573
08574 ELSEIF(ISUB.EQ.106) THEN
08575
08576 MINT(21)=KFPR(ISUB,1)
08577 MINT(22)=KFPR(ISUB,2)
08578 KCC=21
08579
08580 ELSEIF(ISUB.EQ.107) THEN
08581
08582 MINT(21)=KFPR(ISUB,1)
08583 MINT(22)=KFPR(ISUB,2)
08584 KCC=22
08585 IF(MINT(16).EQ.22) KCC=33
08586
08587 ELSEIF(ISUB.EQ.108) THEN
08588
08589 MINT(21)=KFPR(ISUB,1)
08590 MINT(22)=KFPR(ISUB,2)
08591
08592 ELSEIF(ISUB.EQ.110) THEN
08593
08594 IF(PYR(0).GT.0.5D0) JS=2
08595 MINT(20+JS)=22
08596 MINT(23-JS)=KFHIGG
08597 ENDIF
08598
08599 ELSEIF(ISUB.LE.120) THEN
08600 IF(ISUB.EQ.111) THEN
08601
08602 IF(PYR(0).GT.0.5D0) JS=2
08603 MINT(20+JS)=21
08604 MINT(23-JS)=25
08605 KCC=17+JS
08606
08607 ELSEIF(ISUB.EQ.112) THEN
08608
08609 IF(MINT(15).EQ.21) JS=2
08610 MINT(23-JS)=25
08611 KCC=15+JS
08612 KCS=ISIGN(1,MINT(14+JS))
08613
08614 ELSEIF(ISUB.EQ.113) THEN
08615
08616 IF(PYR(0).GT.0.5D0) JS=2
08617 MINT(23-JS)=25
08618 KCC=22+JS
08619 KCS=(-1)**INT(1.5D0+PYR(0))
08620
08621 ELSEIF(ISUB.EQ.114) THEN
08622
08623 IF(PYR(0).GT.0.5D0) JS=2
08624 MINT(21)=22
08625 MINT(22)=22
08626 KCC=21
08627
08628 ELSEIF(ISUB.EQ.115) THEN
08629
08630 IF(PYR(0).GT.0.5D0) JS=2
08631 MINT(23-JS)=22
08632 KCC=22+JS
08633 KCS=(-1)**INT(1.5D0+PYR(0))
08634
08635 ELSEIF(ISUB.EQ.116) THEN
08636
08637
08638 ELSEIF(ISUB.EQ.117) THEN
08639
08640
08641 ELSEIF(ISUB.EQ.118) THEN
08642
08643 ENDIF
08644
08645 ELSEIF(ISUB.LE.140) THEN
08646 IF(ISUB.EQ.121) THEN
08647
08648 KCS=(-1)**INT(1.5D0+PYR(0))
08649 MINT(21)=ISIGN(KFPR(ISUBSV,2),KCS)
08650 MINT(22)=-MINT(21)
08651 KCC=11+INT(0.5D0+PYR(0))
08652 KFRES=KFHIGG
08653
08654 ELSEIF(ISUB.EQ.122) THEN
08655
08656 MINT(21)=ISIGN(KFPR(ISUBSV,2),MINT(15))
08657 MINT(22)=-MINT(21)
08658 KCC=4
08659 KFRES=KFHIGG
08660
08661 ELSEIF(ISUB.EQ.123) THEN
08662
08663
08664 KCC=22
08665 KFRES=KFHIGG
08666
08667 ELSEIF(ISUB.EQ.124) THEN
08668
08669
08670 DO 430 JT=1,2
08671 I=MINT(14+JT)
08672 IA=IABS(I)
08673 IF(IA.LE.10) THEN
08674 RVCKM=VINT(180+I)*PYR(0)
08675 DO 420 J=1,MSTP(1)
08676 IB=2*J-1+MOD(IA,2)
08677 IPM=(5-ISIGN(1,I))/2
08678 IDC=J+MDCY(IA,2)+2
08679 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 420
08680 MINT(20+JT)=ISIGN(IB,I)
08681 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
08682 IF(RVCKM.LE.0D0) GOTO 430
08683 420 CONTINUE
08684 ELSE
08685 IB=2*((IA+1)/2)-1+MOD(IA,2)
08686 MINT(20+JT)=ISIGN(IB,I)
08687 ENDIF
08688 430 CONTINUE
08689 KCC=22
08690 KFRES=KFHIGG
08691
08692 ELSEIF(ISUB.EQ.131.OR.ISUB.EQ.132) THEN
08693
08694 IF(MINT(15).EQ.22) JS=2
08695 MINT(23-JS)=21
08696 KCC=24+JS
08697 KCS=ISIGN(1,MINT(14+JS))
08698
08699 ELSEIF(ISUB.EQ.133.OR.ISUB.EQ.134) THEN
08700
08701 IF(MINT(15).EQ.22) JS=2
08702 KCC=22
08703 KCS=ISIGN(1,MINT(14+JS))
08704
08705 ELSEIF(ISUB.EQ.135.OR.ISUB.EQ.136) THEN
08706
08707 KCS=(-1)**INT(1.5D0+PYR(0))
08708 MINT(21)=ISIGN(KFLF,KCS)
08709 MINT(22)=-MINT(21)
08710 KCC=27
08711 IF(MINT(16).EQ.21) KCC=28
08712
08713 ELSEIF(ISUB.GE.137.AND.ISUB.LE.140) THEN
08714
08715 KCS=(-1)**INT(1.5D0+PYR(0))
08716 MINT(21)=ISIGN(KFLF,KCS)
08717 MINT(22)=-MINT(21)
08718 KCC=21
08719
08720 ENDIF
08721
08722 ELSEIF(ISUB.LE.160) THEN
08723 IF(ISUB.EQ.141) THEN
08724
08725 KFRES=32
08726
08727 ELSEIF(ISUB.EQ.142) THEN
08728
08729 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
08730 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
08731 KFRES=ISIGN(34,KCH1+KCH2)
08732
08733 ELSEIF(ISUB.EQ.143) THEN
08734
08735 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
08736 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
08737 KFRES=ISIGN(37,KCH1+KCH2)
08738
08739 ELSEIF(ISUB.EQ.144) THEN
08740
08741 KFRES=ISIGN(40,MINT(15)+MINT(16))
08742
08743 ELSEIF(ISUB.EQ.145) THEN
08744
08745 IF(IABS(MINT(16)).LE.8) JS=2
08746 KFRES=ISIGN(39,MINT(14+JS))
08747 KCC=28+JS
08748 KCS=ISIGN(1,MINT(14+JS))
08749
08750 ELSEIF(ISUB.EQ.146) THEN
08751
08752 IF(MINT(15).EQ.22) JS=2
08753 KFRES=ISIGN(KFPR(ISUB,1),MINT(14+JS))
08754 KCC=22
08755
08756 ELSEIF(ISUB.EQ.147.OR.ISUB.EQ.148) THEN
08757
08758 IF(MINT(15).EQ.21) JS=2
08759 KFRES=ISIGN(KFPR(ISUB,1),MINT(14+JS))
08760 KCC=30+JS
08761 KCS=ISIGN(1,MINT(14+JS))
08762
08763 ELSEIF(ISUB.EQ.149) THEN
08764
08765 KFRES=38
08766 KCC=23
08767 KCS=(-1)**INT(1.5D0+PYR(0))
08768 ENDIF
08769
08770 ELSEIF(ISUB.LE.200) THEN
08771 IF(ISUB.EQ.161) THEN
08772
08773 IF(MINT(15).EQ.21) JS=2
08774 I=MINT(14+JS)
08775 IA=IABS(I)
08776 MINT(23-JS)=ISIGN(37,KCHG(IA,1)*I)
08777 IB=IA+MOD(IA,2)-MOD(IA+1,2)
08778 MINT(20+JS)=ISIGN(IB,I)
08779 KCC=15+JS
08780 KCS=ISIGN(1,MINT(14+JS))
08781
08782 ELSEIF(ISUB.EQ.162) THEN
08783
08784 IF(MINT(15).EQ.21) JS=2
08785 MINT(20+JS)=ISIGN(39,MINT(14+JS))
08786 KFLQL=KFDP(MDCY(39,2),2)
08787 MINT(23-JS)=-ISIGN(KFLQL,MINT(14+JS))
08788 KCC=15+JS
08789 KCS=ISIGN(1,MINT(14+JS))
08790
08791 ELSEIF(ISUB.EQ.163) THEN
08792
08793 KCS=(-1)**INT(1.5D0+PYR(0))
08794 MINT(21)=ISIGN(39,KCS)
08795 MINT(22)=-MINT(21)
08796 KCC=MINT(2)+10
08797
08798 ELSEIF(ISUB.EQ.164) THEN
08799
08800 MINT(21)=ISIGN(39,MINT(15))
08801 MINT(22)=-MINT(21)
08802 KCC=4
08803
08804 ELSEIF(ISUB.EQ.165) THEN
08805
08806 MINT(21)=ISIGN(KFPR(ISUB,1),MINT(15))
08807 MINT(22)=-MINT(21)
08808
08809 ELSEIF(ISUB.EQ.166) THEN
08810
08811 IF(MOD(MINT(15),2).EQ.0) THEN
08812 MINT(21)=ISIGN(KFPR(ISUB,1)+1,MINT(15))
08813 MINT(22)=ISIGN(KFPR(ISUB,1),MINT(16))
08814 ELSE
08815 MINT(21)=ISIGN(KFPR(ISUB,1),MINT(15))
08816 MINT(22)=ISIGN(KFPR(ISUB,1)+1,MINT(16))
08817 ENDIF
08818
08819 ELSEIF(ISUB.EQ.167.OR.ISUB.EQ.168) THEN
08820
08821 KFQSTR=KFPR(ISUB,2)
08822 KFQEXC=MOD(KFQSTR,KEXCIT)
08823 JS=MINT(2)
08824 MINT(20+JS)=ISIGN(KFQSTR,MINT(14+JS))
08825 IF(IABS(MINT(15)).NE.KFQEXC.AND.IABS(MINT(16)).NE.KFQEXC)
08826 & MINT(23-JS)=ISIGN(KFQEXC,MINT(17-JS))
08827 KCC=22
08828
08829 ELSEIF(ISUB.EQ.169) THEN
08830
08831 KFQSTR=KFPR(ISUB,2)
08832 KFQEXC=MOD(KFQSTR,KEXCIT)
08833 JS=MINT(2)
08834 MINT(20+JS)=ISIGN(KFQSTR,MINT(14+JS))
08835 MINT(23-JS)=ISIGN(KFQEXC,MINT(17-JS))
08836
08837 ELSEIF(ISUB.EQ.191) THEN
08838
08839 KFRES=54
08840
08841 ELSEIF(ISUB.EQ.192) THEN
08842
08843 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
08844 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
08845 KFRES=ISIGN(55,KCH1+KCH2)
08846
08847 ELSEIF(ISUB.EQ.193) THEN
08848
08849 KFRES=56
08850
08851 ELSEIF(ISUB.EQ.194) THEN
08852
08853
08854 MINT(21)=ISIGN(KFPR(ISUB,1),MINT(15))
08855 MINT(22)=-MINT(21)
08856
08857 ELSEIF(ISUB.EQ.195) THEN
08858
08859
08860
08861 IF(MOD(MINT(15),2).EQ.0) THEN
08862 MINT(21)=ISIGN(KFPR(ISUB,1)+1,MINT(15))
08863 MINT(22)=ISIGN(KFPR(ISUB,1),MINT(16))
08864 ELSE
08865 MINT(21)=ISIGN(KFPR(ISUB,1),MINT(15))
08866 MINT(22)=ISIGN(KFPR(ISUB,1)+1,MINT(16))
08867 ENDIF
08868 ENDIF
08869
08870
08871 ELSEIF(ISUB.LE.215) THEN
08872 IF(ISUB.EQ.201) THEN
08873
08874 MINT(21)=ISIGN(KSUSY1+11,KCS)
08875 MINT(22)=-MINT(21)
08876
08877 ELSEIF(ISUB.EQ.202) THEN
08878
08879 MINT(21)=ISIGN(KSUSY2+11,KCS)
08880 MINT(22)=-MINT(21)
08881
08882 ELSEIF(ISUB.EQ.203) THEN
08883
08884 KCSG=1
08885 IF(MINT(2).EQ.2) KCSG=-1
08886 MINT(21)=ISIGN(KSUSY1+11,KCSG)
08887 MINT(22)=-ISIGN(KSUSY2+11,KCSG)
08888
08889 ELSEIF(ISUB.EQ.204) THEN
08890
08891 MINT(21)=ISIGN(KSUSY1+13,KCS)
08892 MINT(22)=-MINT(21)
08893
08894 ELSEIF(ISUB.EQ.205) THEN
08895
08896 MINT(21)=ISIGN(KSUSY2+13,KCS)
08897 MINT(22)=-MINT(21)
08898
08899 ELSEIF(ISUB.EQ.206) THEN
08900
08901 KCSG=1
08902 IF(MINT(2).EQ.2) KCSG=-1
08903 MINT(21)=ISIGN(KSUSY1+13,KCSG)
08904 MINT(22)=-ISIGN(KSUSY2+13,KCSG)
08905
08906 ELSEIF(ISUB.EQ.207) THEN
08907
08908 MINT(21)=ISIGN(KSUSY1+15,KCS)
08909 MINT(22)=-MINT(21)
08910
08911 ELSEIF(ISUB.EQ.208) THEN
08912
08913 MINT(21)=ISIGN(KSUSY2+15,KCS)
08914 MINT(22)=-MINT(21)
08915
08916 ELSEIF(ISUB.EQ.209) THEN
08917
08918 KCSG=1
08919 IF(MINT(2).EQ.2) KCSG=-1
08920 MINT(21)=ISIGN(KSUSY1+15,KCSG)
08921 MINT(22)=-ISIGN(KSUSY2+15,KCSG)
08922
08923 ELSEIF(ISUB.EQ.210) THEN
08924
08925 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
08926 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
08927 MINT(21)=-ISIGN(KFPR(ISUB,1),KCH1+KCH2)
08928 MINT(22)=ISIGN(KFPR(ISUB,2),KCH1+KCH2)
08929
08930 ELSEIF(ISUB.EQ.211) THEN
08931
08932 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
08933 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
08934 MINT(21)=-ISIGN(KSUSY1+15,KCH1+KCH2)
08935 MINT(22)=ISIGN(KSUSY1+16,KCH1+KCH2)
08936
08937 ELSEIF(ISUB.EQ.212) THEN
08938
08939 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
08940 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
08941 MINT(21)=-ISIGN(KSUSY2+15,KCH1+KCH2)
08942 MINT(22)=ISIGN(KSUSY1+16,KCH1+KCH2)
08943
08944 ELSEIF(ISUB.EQ.213) THEN
08945
08946 MINT(21)=ISIGN(KFPR(ISUB,1),KCS)
08947 MINT(22)=-MINT(21)
08948
08949 ELSEIF(ISUB.EQ.214) THEN
08950
08951 MINT(21)=ISIGN(KSUSY1+16,KCS)
08952 MINT(22)=-MINT(21)
08953 ENDIF
08954
08955 ELSEIF(ISUB.LE.225) THEN
08956 IF(ISUB.EQ.216) THEN
08957
08958 MINT(21)=KSUSY1+22
08959 MINT(22)=KSUSY1+22
08960
08961 ELSEIF(ISUB.EQ.217) THEN
08962
08963 MINT(21)=KSUSY1+23
08964 MINT(22)=KSUSY1+23
08965
08966 ELSEIF(ISUB.EQ.218 ) THEN
08967
08968 MINT(21)=KSUSY1+25
08969 MINT(22)=KSUSY1+25
08970
08971 ELSEIF(ISUB.EQ.219 ) THEN
08972
08973 MINT(21)=KSUSY1+35
08974 MINT(22)=KSUSY1+35
08975
08976 ELSEIF(ISUB.EQ.220 ) THEN
08977
08978 IF(PYR(0).GT.0.5D0) JS=2
08979 MINT(20+JS)=KSUSY1+22
08980 MINT(23-JS)=KSUSY1+23
08981
08982 ELSEIF(ISUB.EQ.221 ) THEN
08983
08984 IF(PYR(0).GT.0.5D0) JS=2
08985 MINT(20+JS)=KSUSY1+22
08986 MINT(23-JS)=KSUSY1+25
08987
08988 ELSEIF(ISUB.EQ.222) THEN
08989
08990 IF(PYR(0).GT.0.5D0) JS=2
08991 MINT(20+JS)=KSUSY1+22
08992 MINT(23-JS)=KSUSY1+35
08993
08994 ELSEIF(ISUB.EQ.223) THEN
08995
08996 IF(PYR(0).GT.0.5D0) JS=2
08997 MINT(20+JS)=KSUSY1+23
08998 MINT(23-JS)=KSUSY1+25
08999
09000 ELSEIF(ISUB.EQ.224) THEN
09001
09002 IF(PYR(0).GT.0.5D0) JS=2
09003 MINT(20+JS)=KSUSY1+23
09004 MINT(23-JS)=KSUSY1+35
09005
09006 ELSEIF(ISUB.EQ.225) THEN
09007
09008 IF(PYR(0).GT.0.5D0) JS=2
09009 MINT(20+JS)=KSUSY1+25
09010 MINT(23-JS)=KSUSY1+35
09011 ENDIF
09012
09013 ELSEIF(ISUB.LE.236) THEN
09014 IF(ISUB.EQ.226) THEN
09015
09016
09017 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09018 MINT(21)=ISIGN(KSUSY1+24,KCH1)
09019 MINT(22)=-MINT(21)
09020
09021 ELSEIF(ISUB.EQ.227) THEN
09022
09023 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09024 MINT(21)=ISIGN(KSUSY1+37,KCH1)
09025 MINT(22)=-MINT(21)
09026
09027 ELSEIF(ISUB.EQ.228) THEN
09028
09029
09030
09031
09032
09033
09034
09035 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09036
09037 KCH2=INT(1-KCH1)/2
09038 IF(MINT(2).EQ.1) THEN
09039 MINT(22-KCH2)= -(KSUSY1+24)
09040 MINT(21+KCH2)= KSUSY1+37
09041 IF(KCH2.EQ.0) JS=2
09042 ELSE
09043 MINT(21+KCH2)= KSUSY1+24
09044 MINT(22-KCH2)= -(KSUSY1+37)
09045 IF(KCH2.EQ.1) JS=2
09046 ENDIF
09047
09048 ELSEIF(ISUB.EQ.229) THEN
09049
09050
09051 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09052 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
09053
09054 IF(MOD(MINT(15),2).NE.0) JS=2
09055 MINT(20+JS)=KSUSY1+22
09056 MINT(23-JS)=ISIGN(KSUSY1+24,KCH1+KCH2)
09057
09058 ELSEIF(ISUB.EQ.230) THEN
09059
09060 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09061 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
09062 IF(MOD(MINT(15),2).NE.0) JS=2
09063 MINT(20+JS)=KSUSY1+23
09064 MINT(23-JS)=ISIGN(KSUSY1+24,KCH1+KCH2)
09065
09066 ELSEIF(ISUB.EQ.231) THEN
09067
09068 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09069 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
09070 IF(MOD(MINT(15),2).NE.0) JS=2
09071 MINT(20+JS)=KSUSY1+25
09072 MINT(23-JS)=ISIGN(KSUSY1+24,KCH1+KCH2)
09073
09074 ELSEIF(ISUB.EQ.232) THEN
09075
09076 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09077 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
09078 IF(MOD(MINT(15),2).NE.0) JS=2
09079 MINT(20+JS)=KSUSY1+35
09080 MINT(23-JS)=ISIGN(KSUSY1+24,KCH1+KCH2)
09081
09082 ELSEIF(ISUB.EQ.233) THEN
09083
09084 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09085 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
09086 IF(MOD(MINT(15),2).NE.0) JS=2
09087 MINT(20+JS)=KSUSY1+22
09088 MINT(23-JS)=ISIGN(KSUSY1+37,KCH1+KCH2)
09089
09090 ELSEIF(ISUB.EQ.234) THEN
09091
09092 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09093 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
09094 IF(MOD(MINT(15),2).NE.0) JS=2
09095 MINT(20+JS)=KSUSY1+23
09096 MINT(23-JS)=ISIGN(KSUSY1+37,KCH1+KCH2)
09097
09098 ELSEIF(ISUB.EQ.235) THEN
09099
09100 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09101 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
09102 IF(MOD(MINT(15),2).NE.0) JS=2
09103 MINT(20+JS)=KSUSY1+25
09104 MINT(23-JS)=ISIGN(KSUSY1+37,KCH1+KCH2)
09105
09106 ELSEIF(ISUB.EQ.236) THEN
09107
09108 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09109 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
09110 IF(MOD(MINT(15),2).NE.0) JS=2
09111 MINT(20+JS)=KSUSY1+35
09112 MINT(23-JS)=ISIGN(KSUSY1+37,KCH1+KCH2)
09113 ENDIF
09114
09115 ELSEIF(ISUB.LE.245) THEN
09116 IF(ISUB.EQ.237) THEN
09117
09118
09119 IF(PYR(0).GT.0.5D0) JS=2
09120 MINT(20+JS)=KSUSY1+21
09121 MINT(23-JS)=KSUSY1+22
09122 KCC=17+JS
09123
09124 ELSEIF(ISUB.EQ.238) THEN
09125
09126
09127 IF(PYR(0).GT.0.5D0) JS=2
09128 MINT(20+JS)=KSUSY1+21
09129 MINT(23-JS)=KSUSY1+23
09130 KCC=17+JS
09131
09132 ELSEIF(ISUB.EQ.239) THEN
09133
09134
09135 IF(PYR(0).GT.0.5D0) JS=2
09136 MINT(20+JS)=KSUSY1+21
09137 MINT(23-JS)=KSUSY1+25
09138 KCC=17+JS
09139
09140 ELSEIF(ISUB.EQ.240) THEN
09141
09142
09143 IF(PYR(0).GT.0.5D0) JS=2
09144 MINT(20+JS)=KSUSY1+21
09145 MINT(23-JS)=KSUSY1+35
09146 KCC=17+JS
09147
09148 ELSEIF(ISUB.EQ.241) THEN
09149
09150
09151
09152
09153
09154
09155 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09156 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
09157 JS=1
09158 IF(MINT(15)*(KCH1+KCH2).GT.0) JS=2
09159 MINT(20+JS)=KSUSY1+21
09160 MINT(23-JS)=ISIGN(KSUSY1+24,KCH1+KCH2)
09161 KCC=17+JS
09162
09163 ELSEIF(ISUB.EQ.242) THEN
09164
09165
09166
09167
09168
09169
09170 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09171 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
09172 JS=1
09173 IF(MINT(15)*(KCH1+KCH2).GT.0) JS=2
09174 MINT(20+JS)=KSUSY1+21
09175 MINT(23-JS)=ISIGN(KSUSY1+37,KCH1+KCH2)
09176 KCC=17+JS
09177
09178 ELSEIF(ISUB.EQ.243) THEN
09179
09180 MINT(21)=KSUSY1+21
09181 MINT(22)=KSUSY1+21
09182 KCC=MINT(2)+4
09183
09184 ELSEIF(ISUB.EQ.244) THEN
09185
09186 KCC=MINT(2)+12
09187 KCS=(-1)**INT(1.5D0+PYR(0))
09188 MINT(21)=KSUSY1+21
09189 MINT(22)=KSUSY1+21
09190 ENDIF
09191
09192 ELSEIF(ISUB.LE.260) THEN
09193 IF(ISUB.EQ.246) THEN
09194
09195 IF(MINT(15).EQ.21) JS=2
09196 I=MINT(14+JS)
09197 IA=IABS(I)
09198 MINT(20+JS)=ISIGN(KSUSY1+IA,I)
09199 MINT(23-JS)=KSUSY1+22
09200 KCC=15+JS
09201 KCS=ISIGN(1,MINT(14+JS))
09202
09203 ELSEIF(ISUB.EQ.247) THEN
09204
09205 IF(MINT(15).EQ.21) JS=2
09206 I=MINT(14+JS)
09207 IA=IABS(I)
09208 MINT(20+JS)=ISIGN(KSUSY2+IA,I)
09209 MINT(23-JS)=KSUSY1+22
09210 KCC=15+JS
09211 KCS=ISIGN(1,MINT(14+JS))
09212
09213 ELSEIF(ISUB.EQ.248) THEN
09214
09215 IF(MINT(15).EQ.21) JS=2
09216 I=MINT(14+JS)
09217 IA=IABS(I)
09218 MINT(20+JS)=ISIGN(KSUSY1+IA,I)
09219 MINT(23-JS)=KSUSY1+23
09220 KCC=15+JS
09221 KCS=ISIGN(1,MINT(14+JS))
09222
09223 ELSEIF(ISUB.EQ.249) THEN
09224
09225 IF(MINT(15).EQ.21) JS=2
09226 I=MINT(14+JS)
09227 IA=IABS(I)
09228 MINT(20+JS)=ISIGN(KSUSY2+IA,I)
09229 MINT(23-JS)=KSUSY1+23
09230 KCC=15+JS
09231 KCS=ISIGN(1,MINT(14+JS))
09232
09233 ELSEIF(ISUB.EQ.250) THEN
09234
09235 IF(MINT(15).EQ.21) JS=2
09236 I=MINT(14+JS)
09237 IA=IABS(I)
09238 MINT(20+JS)=ISIGN(KSUSY1+IA,I)
09239 MINT(23-JS)=KSUSY1+25
09240 KCC=15+JS
09241 KCS=ISIGN(1,MINT(14+JS))
09242
09243 ELSEIF(ISUB.EQ.251) THEN
09244
09245 IF(MINT(15).EQ.21) JS=2
09246 I=MINT(14+JS)
09247 IA=IABS(I)
09248 MINT(20+JS)=ISIGN(KSUSY2+IA,I)
09249 MINT(23-JS)=KSUSY1+25
09250 KCC=15+JS
09251 KCS=ISIGN(1,MINT(14+JS))
09252
09253 ELSEIF(ISUB.EQ.252) THEN
09254
09255 IF(MINT(15).EQ.21) JS=2
09256 I=MINT(14+JS)
09257 IA=IABS(I)
09258 MINT(20+JS)=ISIGN(KSUSY1+IA,I)
09259 MINT(23-JS)=KSUSY1+35
09260 KCC=15+JS
09261 KCS=ISIGN(1,MINT(14+JS))
09262
09263 ELSEIF(ISUB.EQ.253) THEN
09264
09265 IF(MINT(15).EQ.21) JS=2
09266 I=MINT(14+JS)
09267 IA=IABS(I)
09268 MINT(20+JS)=ISIGN(KSUSY2+IA,I)
09269 MINT(23-JS)=KSUSY1+35
09270 KCC=15+JS
09271 KCS=ISIGN(1,MINT(14+JS))
09272
09273 ELSEIF(ISUB.EQ.254) THEN
09274
09275 IF(MINT(15).EQ.21) JS=2
09276 I=MINT(14+JS)
09277 IA=IABS(I)
09278 MINT(23-JS)=ISIGN(KSUSY1+24,KCHG(IA,1)*I)
09279 IB=-IA+INT((IA+1)/2)*4-1
09280 MINT(20+JS)=ISIGN(KSUSY1+IB,I)
09281 KCC=15+JS
09282 KCS=ISIGN(1,MINT(14+JS))
09283
09284 ELSEIF(ISUB.EQ.255) THEN
09285
09286 IF(MINT(15).EQ.21) JS=2
09287 I=MINT(14+JS)
09288 IA=IABS(I)
09289 MINT(23-JS)=ISIGN(KSUSY1+24,KCHG(IA,1)*I)
09290 IB=-IA+INT((IA+1)/2)*4-1
09291 MINT(20+JS)=ISIGN(KSUSY2+IB,I)
09292 KCC=15+JS
09293 KCS=ISIGN(1,MINT(14+JS))
09294
09295 ELSEIF(ISUB.EQ.256) THEN
09296
09297 IF(MINT(15).EQ.21) JS=2
09298 I=MINT(14+JS)
09299 IA=IABS(I)
09300 IB=-IA+INT((IA+1)/2)*4-1
09301 MINT(20+JS)=ISIGN(KSUSY1+IB,I)
09302 MINT(23-JS)=ISIGN(KSUSY1+37,KCHG(IA,1)*I)
09303 KCC=15+JS
09304 KCS=ISIGN(1,MINT(14+JS))
09305
09306 ELSEIF(ISUB.EQ.257) THEN
09307
09308 IF(MINT(15).EQ.21) JS=2
09309 I=MINT(14+JS)
09310 IA=IABS(I)
09311 IB=-IA+INT((IA+1)/2)*4-1
09312 MINT(20+JS)=ISIGN(KSUSY2+IB,I)
09313 MINT(23-JS)=ISIGN(KSUSY1+37,KCHG(IA,1)*I)
09314 KCC=15+JS
09315 KCS=ISIGN(1,MINT(14+JS))
09316
09317 ELSEIF(ISUB.EQ.258) THEN
09318
09319 IF(MINT(15).EQ.21) JS=2
09320 I=MINT(14+JS)
09321 IA=IABS(I)
09322 MINT(20+JS)=ISIGN(KSUSY1+IA,I)
09323 MINT(23-JS)=KSUSY1+21
09324 KCC=MINT(2)+6
09325 IF(JS.EQ.2) KCC=KCC+2
09326 KCS=ISIGN(1,I)
09327
09328 ELSEIF(ISUB.EQ.259) THEN
09329
09330 IF(MINT(15).EQ.21) JS=2
09331 I=MINT(14+JS)
09332 IA=IABS(I)
09333 MINT(20+JS)=ISIGN(KSUSY2+IA,I)
09334 MINT(23-JS)=KSUSY1+21
09335 KCC=MINT(2)+6
09336 IF(JS.EQ.2) KCC=KCC+2
09337 KCS=ISIGN(1,I)
09338 ENDIF
09339
09340 ELSEIF(ISUB.LE.270) THEN
09341 IF(ISUB.EQ.261) THEN
09342
09343 ISGN=1
09344 IF(MINT(43).EQ.1.AND.PYR(0).GT.0.5D0) ISGN=-1
09345 MINT(21)=ISGN*ISIGN(KFPR(ISUB,1),KCS)
09346 MINT(22)=-MINT(21)
09347
09348 IF(MINT(43).EQ.4) KCC=4
09349
09350 ELSEIF(ISUB.EQ.262) THEN
09351
09352 ISGN=1
09353 IF(MINT(43).EQ.1.AND.PYR(0).GT.0.5D0) ISGN=-1
09354 MINT(21)=ISGN*ISIGN(KFPR(ISUB,1),KCS)
09355 MINT(22)=-MINT(21)
09356
09357 IF(MINT(43).EQ.4) KCC=4
09358
09359 ELSEIF(ISUB.EQ.263) THEN
09360
09361 IF((KCS.GT.0.AND.MINT(2).EQ.1).OR.
09362 & (KCS.LT.0.AND.MINT(2).EQ.2)) THEN
09363 MINT(21)=ISIGN(KFPR(ISUB,1),KCS)
09364 MINT(22)=-ISIGN(KFPR(ISUB,2),KCS)
09365 ELSE
09366 JS=2
09367 MINT(21)=ISIGN(KFPR(ISUB,2),KCS)
09368 MINT(22)=-ISIGN(KFPR(ISUB,1),KCS)
09369 ENDIF
09370
09371 IF(MINT(43).EQ.4) KCC=4
09372
09373 ELSEIF(ISUB.EQ.264) THEN
09374
09375 KCS=(-1)**INT(1.5D0+PYR(0))
09376 MINT(21)=ISIGN(KFPR(ISUB,1),KCS)
09377 MINT(22)=-MINT(21)
09378 KCC=MINT(2)+10
09379
09380 ELSEIF(ISUB.EQ.265) THEN
09381
09382 KCS=(-1)**INT(1.5D0+PYR(0))
09383 MINT(21)=ISIGN(KFPR(ISUB,1),KCS)
09384 MINT(22)=-MINT(21)
09385 KCC=MINT(2)+10
09386 ENDIF
09387
09388 ELSEIF(ISUB.LE.296) THEN
09389 IF(ISUB.EQ.271.OR.ISUB.EQ.281.OR.ISUB.EQ.291) THEN
09390
09391 KCC=MINT(2)
09392 IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
09393 MINT(21)=ISIGN(KSUSY1+IABS(MINT(15)),MINT(15))
09394 MINT(22)=ISIGN(KSUSY1+IABS(MINT(16)),MINT(16))
09395
09396 ELSEIF(ISUB.EQ.272.OR.ISUB.EQ.282.OR.ISUB.EQ.292) THEN
09397
09398 KCC=MINT(2)
09399 IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
09400 MINT(21)=ISIGN(KSUSY2+IABS(MINT(15)),MINT(15))
09401 MINT(22)=ISIGN(KSUSY2+IABS(MINT(16)),MINT(16))
09402
09403 ELSEIF(ISUB.EQ.273.OR.ISUB.EQ.283.OR.ISUB.EQ.293) THEN
09404
09405 MINT(21)=ISIGN(KFPR(ISUB,1),MINT(15))
09406 MINT(22)=ISIGN(KFPR(ISUB,2),MINT(16))
09407 KCC=MINT(2)
09408 IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
09409
09410 ELSEIF(ISUB.EQ.274.OR.ISUB.EQ.284) THEN
09411
09412 MINT(21)=ISIGN(KSUSY1+IABS(MINT(15)),MINT(15))
09413 MINT(22)=ISIGN(KSUSY1+IABS(MINT(16)),MINT(16))
09414 KCC=MINT(2)
09415 IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
09416
09417 ELSEIF(ISUB.EQ.275.OR.ISUB.EQ.285) THEN
09418
09419 MINT(21)=ISIGN(KSUSY2+IABS(MINT(15)),MINT(15))
09420 MINT(22)=ISIGN(KSUSY2+IABS(MINT(16)),MINT(16))
09421 KCC=MINT(2)
09422 IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
09423
09424 ELSEIF(ISUB.EQ.276.OR.ISUB.EQ.286.OR.ISUB.EQ.296) THEN
09425
09426 MINT(21)=ISIGN(KFPR(ISUB,1),MINT(15))
09427 MINT(22)=ISIGN(KFPR(ISUB,2),MINT(16))
09428 KCC=MINT(2)
09429 IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
09430
09431 ELSEIF(ISUB.EQ.277.OR.ISUB.EQ.287) THEN
09432
09433 ISGN=1
09434 IF(MINT(43).EQ.1.AND.PYR(0).GT.0.5D0) ISGN=-1
09435 MINT(21)=ISGN*ISIGN(KFPR(ISUB,1),KCS)
09436 MINT(22)=-MINT(21)
09437 IF(MINT(43).EQ.4) KCC=4
09438
09439 ELSEIF(ISUB.EQ.278.OR.ISUB.EQ.288) THEN
09440
09441 ISGN=1
09442 IF(MINT(43).EQ.1.AND.PYR(0).GT.0.5D0) ISGN=-1
09443 MINT(21)=ISGN*ISIGN(KFPR(ISUB,1),KCS)
09444 MINT(22)=-MINT(21)
09445 IF(MINT(43).EQ.4) KCC=4
09446
09447 ELSEIF(ISUB.EQ.279.OR.ISUB.EQ.289) THEN
09448
09449
09450 KCS=(-1)**INT(1.5D0+PYR(0))
09451 MINT(21)=ISIGN(KFPR(ISUB,1),KCS)
09452 MINT(22)=-MINT(21)
09453 KCC=MINT(2)+10
09454
09455 ELSEIF(ISUB.EQ.280.OR.ISUB.EQ.290) THEN
09456
09457 KCS=(-1)**INT(1.5D0+PYR(0))
09458 MINT(21)=ISIGN(KFPR(ISUB,1),KCS)
09459 MINT(22)=-MINT(21)
09460 KCC=MINT(2)+10
09461
09462 ELSEIF(ISUB.EQ.294) THEN
09463
09464 IF(MINT(15).EQ.21) JS=2
09465 I=MINT(14+JS)
09466 IA=IABS(I)
09467 MINT(20+JS)=ISIGN(KSUSY1+IA,I)
09468 MINT(23-JS)=KSUSY1+21
09469 KCC=MINT(2)+6
09470 IF(JS.EQ.2) KCC=KCC+2
09471 KCS=ISIGN(1,I)
09472
09473 ELSEIF(ISUB.EQ.295) THEN
09474
09475 IF(MINT(15).EQ.21) JS=2
09476 I=MINT(14+JS)
09477 IA=IABS(I)
09478 MINT(20+JS)=ISIGN(KSUSY2+IA,I)
09479 MINT(23-JS)=KSUSY1+21
09480 KCC=MINT(2)+6
09481 IF(JS.EQ.2) KCC=KCC+2
09482 KCS=ISIGN(1,I)
09483 ENDIF
09484
09485 ELSEIF(ISUB.LE.340) THEN
09486
09487 IF(ISUB.EQ.297.OR.ISUB.EQ.298) THEN
09488
09489 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09490 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
09491 IF(MINT(15)*(KCH1+KCH2).GT.0) JS=2
09492 MINT(20+JS)=ISIGN(37,KCH1+KCH2)
09493 MINT(23-JS)=KFPR(ISUB,2)
09494 ELSEIF(ISUB.EQ.299.OR.ISUB.EQ.300) THEN
09495
09496 IF(PYR(0).GT.0.5D0) JS=2
09497 MINT(20+JS)=KFPR(ISUB,1)
09498 MINT(23-JS)=KFPR(ISUB,2)
09499 ELSEIF(ISUB.EQ.301) THEN
09500
09501 MINT(21)=ISIGN(KFPR(ISUB,1),KCS)
09502 MINT(22)=-MINT(21)
09503 ENDIF
09504
09505
09506 ELSEIF(ISUB.LE.360) THEN
09507
09508 IF(ISUB.EQ.341.OR.ISUB.EQ.342) THEN
09509
09510 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09511 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
09512 KFRES=ISIGN(KFPR(ISUB,1),KCH1+KCH2)
09513
09514 ELSEIF(ISUB.GE.343.AND.ISUB.LE.348) THEN
09515
09516 IF(MINT(15).EQ.22) JS=2
09517 MINT(20+JS)=ISIGN(KFPR(ISUB,1),-MINT(14+JS))
09518 MINT(23-JS)=ISIGN(KFPR(ISUB,2),-MINT(14+JS))
09519 KCC=22
09520
09521 ELSEIF(ISUB.EQ.349.OR.ISUB.EQ.350) THEN
09522
09523 MINT(21)=-ISIGN(KFPR(ISUB,1),MINT(15))
09524 MINT(22)=-MINT(21)
09525
09526 ELSEIF(ISUB.EQ.351.OR.ISUB.EQ.352) THEN
09527
09528
09529 DO 432 JT=1,2
09530 I=MINT(14+JT)
09531 IA=IABS(I)
09532 IF(IA.LE.10) THEN
09533 RVCKM=VINT(180+I)*PYR(0)
09534 DO 422 J=1,MSTP(1)
09535 IB=2*J-1+MOD(IA,2)
09536 IPM=(5-ISIGN(1,I))/2
09537 IDC=J+MDCY(IA,2)+2
09538 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 422
09539 MINT(20+JT)=ISIGN(IB,I)
09540 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
09541 IF(RVCKM.LE.0D0) GOTO 432
09542 422 CONTINUE
09543 ELSE
09544 IB=2*((IA+1)/2)-1+MOD(IA,2)
09545 MINT(20+JT)=ISIGN(IB,I)
09546 ENDIF
09547 432 CONTINUE
09548 KCC=22
09549 KFRES=ISIGN(KFPR(ISUB,1),MINT(15))
09550 IF(MOD(MINT(15),2).EQ.1) KFRES=-KFRES
09551
09552 ENDIF
09553
09554 ELSEIF(ISUB.LE.380) THEN
09555 IF(ISUB.LE.363.OR.ISUB.EQ.368) THEN
09556
09557 KSW=(-1)**INT(1.5D0+PYR(0))
09558 MINT(21)=ISIGN(KFPR(ISUB,1),KSW)
09559 MINT(22)=-ISIGN(KFPR(ISUB,2),KSW)
09560
09561 ELSEIF(ISUB.LE.367) THEN
09562 MINT(21)=KFPR(ISUB,1)
09563 MINT(22)=KFPR(ISUB,2)
09564
09565 ELSEIF(ISUB.EQ.374.OR.ISUB.EQ.375) THEN
09566 IN=1
09567 IC=2
09568 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09569 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
09570 IF(MINT(15)*(KCH1+KCH2).LT.0) JS=2
09571
09572
09573 MINT(23-JS)=ISIGN(KFPR(ISUB,IC),KCH1+KCH2)
09574 MINT(20+JS)=KFPR(ISUB,IN)
09575
09576 ELSEIF(ISUB.GE.370.AND.ISUB.LE.377) THEN
09577 IN=2
09578 IC=1
09579 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
09580 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
09581 IF(MINT(15)*(KCH1+KCH2).GT.0) JS=2
09582 MINT(20+JS)=ISIGN(KFPR(ISUB,IC),KCH1+KCH2)
09583 MINT(23-JS)=KFPR(ISUB,IN)
09584 ENDIF
09585 ENDIF
09586
09587 IF(ISET(ISUB).EQ.11) THEN
09588
09589 BEZUP=(PUP(1,4)-PUP(2,4))/(PUP(1,4)+PUP(2,4))
09590 KUPPO(1)=MINT(83)+5
09591 KUPPO(2)=MINT(83)+6
09592 I=MINT(83)+6
09593 DO 450 IUP=3,NUP
09594 KUPPO(IUP)=0
09595 IF(MSTP(128).GE.2.AND.KUP(IUP,3).NE.0) THEN
09596 IDOC=IDOC-1
09597 MINT(4)=MINT(4)-1
09598 GOTO 450
09599 ENDIF
09600 I=I+1
09601 KUPPO(IUP)=I
09602 K(I,1)=21
09603 K(I,2)=KUP(IUP,2)
09604 K(I,3)=0
09605 IF(KUP(IUP,3).NE.0) K(I,3)=KUPPO(KUP(IUP,3))
09606 K(I,4)=0
09607 K(I,5)=0
09608 DO 440 J=1,5
09609 P(I,J)=PUP(IUP,J)
09610 440 CONTINUE
09611 450 CONTINUE
09612 CALL PYROBO(MINT(83)+7,MINT(83)+4+NUP,0D0,VINT(24),0D0,0D0,
09613 & -BEZUP)
09614
09615
09616 N=IPU2
09617 DO 470 IUP=3,NUP
09618 N=N+1
09619 K(N,1)=1
09620 IF(KUP(IUP,1).NE.1) K(N,1)=11
09621 K(N,2)=KUP(IUP,2)
09622 IF(MSTP(128).LE.0.OR.KUP(IUP,3).EQ.0) THEN
09623 K(N,3)=KUPPO(IUP)
09624 ELSE
09625 K(N,3)=MINT(84)+KUP(IUP,3)
09626 ENDIF
09627 K(N,4)=0
09628 K(N,5)=0
09629 DO 460 J=1,5
09630 P(N,J)=PUP(IUP,J)
09631 460 CONTINUE
09632 470 CONTINUE
09633 CALL PYROBO(IPU3,N,0D0,VINT(24),0D0,0D0,-BEZUP)
09634
09635
09636 N=MINT(84)
09637 DO 480 IUP=1,NUP
09638 N=N+1
09639 IF(KCHG(PYCOMP(K(N,2)),2).EQ.0) GOTO 480
09640 IF(K(N,1).EQ.1) K(N,1)=3
09641 IF(K(N,1).EQ.11) K(N,1)=14
09642 IF(KUP(IUP,4).NE.0) K(N,4)=K(N,4)+MSTU(5)*(KUP(IUP,4)+
09643 & MINT(84))
09644 IF(KUP(IUP,5).NE.0) K(N,5)=K(N,5)+MSTU(5)*(KUP(IUP,5)+
09645 & MINT(84))
09646 IF(KUP(IUP,6).NE.0) K(N,4)=K(N,4)+KUP(IUP,6)+MINT(84)
09647 IF(KUP(IUP,7).NE.0) K(N,5)=K(N,5)+KUP(IUP,7)+MINT(84)
09648 480 CONTINUE
09649
09650 ELSEIF(IDOC.EQ.7) THEN
09651
09652 I=MINT(83)+7
09653 K(IPU3,1)=1
09654 K(IPU3,2)=KFRES
09655 K(IPU3,3)=I
09656 P(IPU3,4)=SHUSER
09657 P(IPU3,5)=SHUSER
09658 K(I,1)=21
09659 K(I,2)=KFRES
09660 P(I,4)=SHUSER
09661 P(I,5)=SHUSER
09662 N=IPU3
09663 MINT(21)=KFRES
09664 MINT(22)=0
09665
09666
09667 KCRES=PYCOMP(KFRES)
09668 IF(KCHG(KCRES,2).NE.0) THEN
09669 K(IPU3,1)=3
09670 DO 490 J=1,2
09671 JC=J
09672 IF(KCS.EQ.-1) JC=3-J
09673 IF(ICOL(KCC,1,JC).NE.0.AND.K(IPU1,1).EQ.14) K(IPU1,J+3)=
09674 & MINT(84)+ICOL(KCC,1,JC)
09675 IF(ICOL(KCC,2,JC).NE.0.AND.K(IPU2,1).EQ.14) K(IPU2,J+3)=
09676 & MINT(84)+ICOL(KCC,2,JC)
09677 IF(ICOL(KCC,3,JC).NE.0.AND.K(IPU3,1).EQ.3) K(IPU3,J+3)=
09678 & MSTU(5)*(MINT(84)+ICOL(KCC,3,JC))
09679 490 CONTINUE
09680 ELSE
09681 K(IPU1,4)=IPU2
09682 K(IPU1,5)=IPU2
09683 K(IPU2,4)=IPU1
09684 K(IPU2,5)=IPU1
09685 ENDIF
09686
09687 ELSEIF(IDOC.EQ.8) THEN
09688
09689 DO 500 JT=1,2
09690 I=MINT(84)+2+JT
09691 KCA=PYCOMP(MINT(20+JT))
09692 K(I,1)=1
09693 IF(KCHG(KCA,2).NE.0) K(I,1)=3
09694 K(I,2)=MINT(20+JT)
09695 K(I,3)=MINT(83)+IDOC+JT-2
09696 KFAA=IABS(K(I,2))
09697 IF(KFPR(ISUBSV,1+MOD(JS+JT,2)).NE.0) THEN
09698 P(I,5)=SQRT(VINT(63+MOD(JS+JT,2)))
09699 ELSE
09700 P(I,5)=PYMASS(K(I,2))
09701 ENDIF
09702 IF((KFAA.EQ.6.OR.KFAA.EQ.7.OR.KFAA.EQ.8).AND.
09703 & P(I,5).LT.PARP(42)) P(I,5)=PYMASS(K(I,2))
09704 500 CONTINUE
09705 IF(P(IPU3,5)+P(IPU4,5).GE.SHR) THEN
09706 KFA1=IABS(MINT(21))
09707 KFA2=IABS(MINT(22))
09708 IF((KFA1.GT.3.AND.KFA1.NE.21).OR.(KFA2.GT.3.AND.KFA2.NE.21))
09709 & THEN
09710 MINT(51)=1
09711 RETURN
09712 ENDIF
09713 P(IPU3,5)=0D0
09714 P(IPU4,5)=0D0
09715 ENDIF
09716 P(IPU3,4)=0.5D0*(SHR+(P(IPU3,5)**2-P(IPU4,5)**2)/SHR)
09717 P(IPU3,3)=SQRT(MAX(0D0,P(IPU3,4)**2-P(IPU3,5)**2))
09718 P(IPU4,4)=SHR-P(IPU3,4)
09719 P(IPU4,3)=-P(IPU3,3)
09720 N=IPU4
09721 MINT(7)=MINT(83)+7
09722 MINT(8)=MINT(83)+8
09723
09724
09725 CALL PYROBO(IPU3,IPU4,ACOS(VINT(23)),VINT(24),0D0,0D0,0D0)
09726
09727 ELSEIF(IDOC.EQ.9) THEN
09728
09729 DO 510 JT=1,2
09730 I=MINT(84)+2+JT
09731 KCA=PYCOMP(MINT(20+JT))
09732 K(I,1)=1
09733 IF(KCHG(KCA,2).NE.0) K(I,1)=3
09734 K(I,2)=MINT(20+JT)
09735 K(I,3)=MINT(83)+IDOC+JT-3
09736 IF(IABS(K(I,2)).LE.22) THEN
09737 P(I,5)=PYMASS(K(I,2))
09738 ELSE
09739 P(I,5)=SQRT(VINT(63+MOD(JS+JT,2)))
09740 ENDIF
09741 PT=SQRT(MAX(0D0,VINT(197+5*JT)-P(I,5)**2+VINT(196+5*JT)**2))
09742 P(I,1)=PT*COS(VINT(198+5*JT))
09743 P(I,2)=PT*SIN(VINT(198+5*JT))
09744 510 CONTINUE
09745 K(IPU5,1)=1
09746 K(IPU5,2)=KFRES
09747 K(IPU5,3)=MINT(83)+IDOC
09748 P(IPU5,5)=SHR
09749 P(IPU5,1)=-P(IPU3,1)-P(IPU4,1)
09750 P(IPU5,2)=-P(IPU3,2)-P(IPU4,2)
09751 PMS1=P(IPU3,5)**2+P(IPU3,1)**2+P(IPU3,2)**2
09752 PMS2=P(IPU4,5)**2+P(IPU4,1)**2+P(IPU4,2)**2
09753 PMS3=P(IPU5,5)**2+P(IPU5,1)**2+P(IPU5,2)**2
09754 PMT3=SQRT(PMS3)
09755 P(IPU5,3)=PMT3*SINH(VINT(211))
09756 P(IPU5,4)=PMT3*COSH(VINT(211))
09757 PMS12=(SHPR-P(IPU5,4))**2-P(IPU5,3)**2
09758 SQL12=(PMS12-PMS1-PMS2)**2-4D0*PMS1*PMS2
09759 IF(SQL12.LE.0D0) THEN
09760 MINT(51)=1
09761 RETURN
09762 ENDIF
09763 P(IPU3,3)=(-P(IPU5,3)*(PMS12+PMS1-PMS2)+
09764 & VINT(213)*(SHPR-P(IPU5,4))*SQRT(SQL12))/(2D0*PMS12)
09765 P(IPU4,3)=-P(IPU3,3)-P(IPU5,3)
09766 P(IPU3,4)=SQRT(PMS1+P(IPU3,3)**2)
09767 P(IPU4,4)=SQRT(PMS2+P(IPU4,3)**2)
09768 MINT(23)=KFRES
09769 N=IPU5
09770 MINT(7)=MINT(83)+7
09771 MINT(8)=MINT(83)+8
09772
09773 ELSEIF(IDOC.EQ.11) THEN
09774
09775 PHI(1)=PARU(2)*PYR(0)
09776 PHI(2)=PHI(1)-PHIR
09777 DO 520 JT=1,2
09778 I=MINT(84)+2+JT
09779 K(I,1)=1
09780 IF(KCHG(PYCOMP(MINT(20+JT)),2).NE.0) K(I,1)=3
09781 K(I,2)=MINT(20+JT)
09782 K(I,3)=MINT(83)+IDOC+JT-2
09783 P(I,5)=PYMASS(K(I,2))
09784 IF(0.5D0*SHPR*Z(JT).LE.P(I,5)) THEN
09785 MINT(51)=1
09786 RETURN
09787 ENDIF
09788 PABS=SQRT(MAX(0D0,(0.5D0*SHPR*Z(JT))**2-P(I,5)**2))
09789 PTABS=PABS*SQRT(MAX(0D0,1D0-CTHE(JT)**2))
09790 P(I,1)=PTABS*COS(PHI(JT))
09791 P(I,2)=PTABS*SIN(PHI(JT))
09792 P(I,3)=PABS*CTHE(JT)*(-1)**(JT+1)
09793 P(I,4)=0.5D0*SHPR*Z(JT)
09794 IZW=MINT(83)+6+JT
09795 K(IZW,1)=21
09796 K(IZW,2)=23
09797 IF(ISUB.EQ.8) K(IZW,2)=ISIGN(24,PYCHGE(MINT(14+JT)))
09798 K(IZW,3)=IZW-2
09799 P(IZW,1)=-P(I,1)
09800 P(IZW,2)=-P(I,2)
09801 P(IZW,3)=(0.5D0*SHPR-PABS*CTHE(JT))*(-1)**(JT+1)
09802 P(IZW,4)=0.5D0*SHPR*(1D0-Z(JT))
09803 P(IZW,5)=-SQRT(MAX(0D0,P(IZW,3)**2+PTABS**2-P(IZW,4)**2))
09804 520 CONTINUE
09805 I=MINT(83)+9
09806 K(IPU5,1)=1
09807 K(IPU5,2)=KFRES
09808 K(IPU5,3)=I
09809 P(IPU5,5)=SHR
09810 P(IPU5,1)=-P(IPU3,1)-P(IPU4,1)
09811 P(IPU5,2)=-P(IPU3,2)-P(IPU4,2)
09812 P(IPU5,3)=-P(IPU3,3)-P(IPU4,3)
09813 P(IPU5,4)=SHPR-P(IPU3,4)-P(IPU4,4)
09814 K(I,1)=21
09815 K(I,2)=KFRES
09816 DO 530 J=1,5
09817 P(I,J)=P(IPU5,J)
09818 530 CONTINUE
09819 N=IPU5
09820 MINT(23)=KFRES
09821
09822 ELSEIF(IDOC.EQ.12) THEN
09823
09824 PHI(1)=PARU(2)*PYR(0)
09825 PHI(2)=PHI(1)-PHIR
09826 JTRAN=INT(1.5D0+PYR(0))
09827 DO 540 JT=1,2
09828 I=MINT(84)+2+JT
09829 K(I,1)=1
09830 IF(KCHG(PYCOMP(MINT(20+JT)),2).NE.0) K(I,1)=3
09831 K(I,2)=MINT(20+JT)
09832 K(I,3)=MINT(83)+IDOC+JT-2
09833 P(I,5)=PYMASS(K(I,2))
09834 IF(0.5D0*SHPR*Z(JT).LE.P(I,5)) P(I,5)=0D0
09835 PABS=SQRT(MAX(0D0,(0.5D0*SHPR*Z(JT))**2-P(I,5)**2))
09836 PTABS=PABS*SQRT(MAX(0D0,1D0-CTHE(JT)**2))
09837 P(I,1)=PTABS*COS(PHI(JT))
09838 P(I,2)=PTABS*SIN(PHI(JT))
09839 P(I,3)=PABS*CTHE(JT)*(-1)**(JT+1)
09840 P(I,4)=0.5D0*SHPR*Z(JT)
09841 IZW=MINT(83)+6+JT
09842 K(IZW,1)=21
09843 IF(MINT(14+JT).EQ.MINT(20+JT)) THEN
09844 K(IZW,2)=23
09845 ELSE
09846 K(IZW,2)=ISIGN(24,PYCHGE(MINT(14+JT))-PYCHGE(MINT(20+JT)))
09847 ENDIF
09848 K(IZW,3)=IZW-2
09849 P(IZW,1)=-P(I,1)
09850 P(IZW,2)=-P(I,2)
09851 P(IZW,3)=(0.5D0*SHPR-PABS*CTHE(JT))*(-1)**(JT+1)
09852 P(IZW,4)=0.5D0*SHPR*(1D0-Z(JT))
09853 P(IZW,5)=-SQRT(MAX(0D0,P(IZW,3)**2+PTABS**2-P(IZW,4)**2))
09854 IPU=MINT(84)+4+JT
09855 K(IPU,1)=3
09856 K(IPU,2)=KFPR(ISUB,JT)
09857 IF(ISUB.EQ.72.AND.JT.EQ.JTRAN) K(IPU,2)=-K(IPU,2)
09858 IF(ISUB.EQ.73.OR.ISUB.EQ.77) K(IPU,2)=K(IZW,2)
09859 K(IPU,3)=MINT(83)+8+JT
09860 IF(IABS(K(IPU,2)).LE.10.OR.K(IPU,2).EQ.21) THEN
09861 P(IPU,5)=PYMASS(K(IPU,2))
09862 ELSE
09863 P(IPU,5)=SQRT(VINT(63+MOD(JS+JT,2)))
09864 ENDIF
09865 MINT(22+JT)=K(IPU,2)
09866 540 CONTINUE
09867
09868 I1=MINT(83)+7
09869 I2=MINT(83)+8
09870 BEXCM=(P(I1,1)+P(I2,1))/(P(I1,4)+P(I2,4))
09871 BEYCM=(P(I1,2)+P(I2,2))/(P(I1,4)+P(I2,4))
09872 BEZCM=(P(I1,3)+P(I2,3))/(P(I1,4)+P(I2,4))
09873 GAMCM=(P(I1,4)+P(I2,4))/SHR
09874 BEPCM=BEXCM*P(I1,1)+BEYCM*P(I1,2)+BEZCM*P(I1,3)
09875 PX=P(I1,1)+GAMCM*(GAMCM/(1D0+GAMCM)*BEPCM-P(I1,4))*BEXCM
09876 PY=P(I1,2)+GAMCM*(GAMCM/(1D0+GAMCM)*BEPCM-P(I1,4))*BEYCM
09877 PZ=P(I1,3)+GAMCM*(GAMCM/(1D0+GAMCM)*BEPCM-P(I1,4))*BEZCM
09878 THECM=PYANGL(PZ,SQRT(PX**2+PY**2))
09879 PHICM=PYANGL(PX,PY)
09880
09881 SQLAM=(SH-P(IPU5,5)**2-P(IPU6,5)**2)**2-4D0*P(IPU5,5)**2*
09882 & P(IPU6,5)**2
09883 PABS=SQRT(MAX(0D0,SQLAM/(4D0*SH)))
09884 CTHWZ=VINT(23)
09885 STHWZ=SQRT(MAX(0D0,1D0-CTHWZ**2))
09886 PHIWZ=VINT(24)-PHICM
09887 P(IPU5,1)=PABS*STHWZ*COS(PHIWZ)
09888 P(IPU5,2)=PABS*STHWZ*SIN(PHIWZ)
09889 P(IPU5,3)=PABS*CTHWZ
09890 P(IPU5,4)=SQRT(PABS**2+P(IPU5,5)**2)
09891 P(IPU6,1)=-P(IPU5,1)
09892 P(IPU6,2)=-P(IPU5,2)
09893 P(IPU6,3)=-P(IPU5,3)
09894 P(IPU6,4)=SQRT(PABS**2+P(IPU6,5)**2)
09895 CALL PYROBO(IPU5,IPU6,THECM,PHICM,BEXCM,BEYCM,BEZCM)
09896 DO 560 JT=1,2
09897 I1=MINT(83)+8+JT
09898 I2=MINT(84)+4+JT
09899 K(I1,1)=21
09900 K(I1,2)=K(I2,2)
09901 DO 550 J=1,5
09902 P(I1,J)=P(I2,J)
09903 550 CONTINUE
09904 560 CONTINUE
09905 N=IPU6
09906 MINT(7)=MINT(83)+9
09907 MINT(8)=MINT(83)+10
09908 ENDIF
09909
09910 IF(ISET(ISUB).EQ.11) THEN
09911 ELSEIF(IDOC.GE.8) THEN
09912
09913 DO 570 J=1,2
09914 JC=J
09915 IF(KCS.EQ.-1) JC=3-J
09916 IF(ICOL(KCC,1,JC).NE.0.AND.K(IPU1,1).EQ.14) K(IPU1,J+3)=
09917 & K(IPU1,J+3)+MINT(84)+ICOL(KCC,1,JC)
09918 IF(ICOL(KCC,2,JC).NE.0.AND.K(IPU2,1).EQ.14) K(IPU2,J+3)=
09919 & K(IPU2,J+3)+MINT(84)+ICOL(KCC,2,JC)
09920 IF(ICOL(KCC,3,JC).NE.0.AND.K(IPU3,1).EQ.3) K(IPU3,J+3)=
09921 & MSTU(5)*(MINT(84)+ICOL(KCC,3,JC))
09922 IF(ICOL(KCC,4,JC).NE.0.AND.K(IPU4,1).EQ.3) K(IPU4,J+3)=
09923 & MSTU(5)*(MINT(84)+ICOL(KCC,4,JC))
09924 570 CONTINUE
09925
09926
09927 IMAX=2
09928 IF(IDOC.EQ.9) IMAX=3
09929 DO 590 I=1,IMAX
09930 I1=MINT(83)+IDOC-IMAX+I
09931 I2=MINT(84)+2+I
09932 K(I1,1)=21
09933 K(I1,2)=K(I2,2)
09934 IF(IDOC.LE.9) K(I1,3)=0
09935 IF(IDOC.GE.11) K(I1,3)=MINT(83)+2+I
09936 DO 580 J=1,5
09937 P(I1,J)=P(I2,J)
09938 580 CONTINUE
09939 590 CONTINUE
09940
09941 ELSEIF(IDOC.EQ.9) THEN
09942
09943 DO 600 J=1,2
09944 JC=J
09945 IF(KCS.EQ.-1) JC=3-J
09946 IF(ICOL(KCC,1,JC).NE.0.AND.K(IPU1,1).EQ.14) K(IPU1,J+3)=
09947 & K(IPU1,J+3)+MINT(84)+ICOL(KCC,1,JC)+
09948 & MAX(0,MIN(1,ICOL(KCC,1,JC)-2))
09949 IF(ICOL(KCC,2,JC).NE.0.AND.K(IPU2,1).EQ.14) K(IPU2,J+3)=
09950 & K(IPU2,J+3)+MINT(84)+ICOL(KCC,2,JC)+
09951 & MAX(0,MIN(1,ICOL(KCC,2,JC)-2))
09952 IF(ICOL(KCC,3,JC).NE.0.AND.K(IPU4,1).EQ.3) K(IPU4,J+3)=
09953 & MSTU(5)*(MINT(84)+ICOL(KCC,3,JC))
09954 IF(ICOL(KCC,4,JC).NE.0.AND.K(IPU5,1).EQ.3) K(IPU5,J+3)=
09955 & MSTU(5)*(MINT(84)+ICOL(KCC,4,JC))
09956 600 CONTINUE
09957
09958
09959 DO 620 I=1,3
09960 I1=MINT(83)+IDOC-3+I
09961 I2=MINT(84)+2+I
09962 K(I1,1)=21
09963 K(I1,2)=K(I2,2)
09964 K(I1,3)=0
09965 DO 610 J=1,5
09966 P(I1,J)=P(I2,J)
09967 610 CONTINUE
09968 620 CONTINUE
09969 ENDIF
09970
09971
09972 IF(ISUB.EQ.95) THEN
09973 K(IPU3,1)=K(IPU3,1)+10
09974 K(IPU4,1)=K(IPU4,1)+10
09975 DO 630 J=41,66
09976 VINTSV(J)=VINT(J)
09977 VINT(J)=0D0
09978 630 CONTINUE
09979 DO 650 I=MINT(83)+5,MINT(83)+8
09980 DO 640 J=1,5
09981 P(I,J)=0D0
09982 640 CONTINUE
09983 650 CONTINUE
09984 ENDIF
09985
09986 RETURN
09987 END
09988
09989
09990
09991
09992
09993
09994 SUBROUTINE PYSSPA(IPU1,IPU2)
09995
09996
09997 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
09998 IMPLICIT INTEGER(I-N)
09999 INTEGER PYK,PYCHGE,PYCOMP
10000
10001 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
10002 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
10003 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
10004 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
10005 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
10006 COMMON/PYINT1/MINT(400),VINT(400)
10007 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
10008 COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
10009 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYSUBS/,/PYPARS/,/PYINT1/,
10010 &/PYINT2/,/PYINT3/
10011
10012 DIMENSION KFLS(4),IS(2),XS(2),ZS(2),Q2S(2),TEVCSV(2),TEVESV(2),
10013 &XFS(2,-25:25),XFA(-25:25),XFB(-25:25),XFN(-25:25),WTAPC(-25:25),
10014 &WTAPE(-25:25),WTSF(-25:25),THE2(2),ALAM(2),DQ2(3),DPC(3),DPD(4),
10015 &DPB(4),ROBO(5),MORE(2),KFBEAM(2),Q2MNCS(2),KCFI(2),NFIS(2),
10016 &THEFIS(2,2),ISFI(2)
10017 DATA IS/2*0/
10018
10019
10020 IPUS1=IPU1
10021 IPUS2=IPU2
10022 ISUB=MINT(1)
10023 Q2MX=VINT(56)
10024 IF(ISET(ISUB).EQ.2) Q2MX=MIN(VINT(2),PARP(67)*VINT(56))
10025 MECOR=0
10026 IF(MSTP(68).EQ.1.AND.(ISUB.EQ.1.OR.ISUB.EQ.2.OR.
10027 &ISUB.EQ.141.OR.ISUB.EQ.142.OR.ISUB.EQ.144)) MECOR=1
10028 FCQ2MX=1D0
10029
10030
10031 Q2MNC=PARP(62)**2
10032 Q2MNCS(1)=Q2MNC
10033 Q2MNCS(2)=Q2MNC
10034 IF(MINT(107).EQ.2.AND.MSTP(66).EQ.2) THEN
10035 Q0S=PARP(15)**2
10036 PS=VINT(3)**2
10037 Q2EFF=VINT(54)*((Q0S+PS)/(VINT(54)+PS))*
10038 & EXP(PS*(VINT(54)-Q0S)/((VINT(54)+PS)*(Q0S+PS)))
10039 Q2INT=SQRT(Q0S*Q2EFF)
10040 Q2MNCS(1)=MAX(Q2MNC,Q2INT)
10041 ELSEIF(MINT(107).EQ.3.AND.MSTP(66).GE.1) THEN
10042 Q2MNCS(1)=MAX(Q2MNC,VINT(283))
10043 ENDIF
10044 IF(MINT(108).EQ.2.AND.MSTP(66).EQ.2) THEN
10045 Q0S=PARP(15)**2
10046 PS=VINT(4)**2
10047 Q2EFF=VINT(54)*((Q0S+PS)/(VINT(54)+PS))*
10048 & EXP(PS*(VINT(54)-Q0S)/((VINT(54)+PS)*(Q0S+PS)))
10049 Q2INT=SQRT(Q0S*Q2EFF)
10050 Q2MNCS(2)=MAX(Q2MNC,Q2INT)
10051 ELSEIF(MINT(108).EQ.3.AND.MSTP(66).GE.1) THEN
10052 Q2MNCS(2)=MAX(Q2MNC,VINT(284))
10053 ENDIF
10054 MCEV=0
10055 ALAMS=PARU(112)
10056 PARU(112)=PARP(61)
10057 FQ2C=1D0
10058 TCMX=0D0
10059 IF(MINT(47).GE.2.AND.(MINT(47).LT.5.OR.MSTP(12).GE.1)) THEN
10060 MCEV=1
10061 IF(MSTP(64).EQ.1) FQ2C=PARP(63)
10062 IF(MSTP(64).EQ.2) FQ2C=PARP(64)
10063 TCMX=LOG(FQ2C*Q2MX/PARP(61)**2)
10064 IF(Q2MX.LT.MAX(Q2MNC,2D0*PARP(61)**2).OR.TCMX.LT.0.2D0)
10065 & MCEV=0
10066 ENDIF
10067
10068
10069 MEEV=0
10070 XEE=1D-10
10071 SPME=PMAS(11,1)**2
10072 IF(IABS(MINT(11)).EQ.13.OR.IABS(MINT(12)).EQ.13)
10073 &SPME=PMAS(13,1)**2
10074 IF(IABS(MINT(11)).EQ.15.OR.IABS(MINT(12)).EQ.15)
10075 &SPME=PMAS(15,1)**2
10076 Q2MNE=MAX(PARP(68)**2,2D0*SPME)
10077 TEMX=0D0
10078 FWTE=10D0
10079 IF(MINT(45).EQ.3.OR.MINT(46).EQ.3) THEN
10080 MEEV=1
10081 TEMX=LOG(Q2MX/SPME)
10082 IF(Q2MX.LE.Q2MNE.OR.TEMX.LT.0.2D0) MEEV=0
10083 ENDIF
10084 IF(MCEV.EQ.0.AND.MEEV.EQ.0) RETURN
10085
10086
10087 NS=N
10088 LOOP=0
10089 100 LOOP=LOOP+1
10090 IF(LOOP.GT.100) THEN
10091 MINT(51)=1
10092 RETURN
10093 ENDIF
10094 N=NS
10095
10096
10097 DO 120 JT=1,2
10098 MORE(JT)=1
10099 KFBEAM(JT)=MINT(10+JT)
10100 IF(MINT(18+JT).EQ.1)KFBEAM(JT)=22
10101 KFLS(JT)=MINT(14+JT)
10102 KFLS(JT+2)=KFLS(JT)
10103 XS(JT)=VINT(40+JT)
10104 IF(MINT(18+JT).EQ.1) XS(JT)=VINT(40+JT)/VINT(154+JT)
10105 ZS(JT)=1D0
10106 Q2S(JT)=FCQ2MX*Q2MX
10107 TEVCSV(JT)=TCMX
10108 ALAM(JT)=PARP(61)
10109 THE2(JT)=1D0
10110 TEVESV(JT)=TEMX
10111 DO 110 KFL=-25,25
10112 XFS(JT,KFL)=XSFX(JT,KFL)
10113 110 CONTINUE
10114
10115
10116 KFLCB=IABS(KFLS(JT))
10117 IF(KFBEAM(JT).NE.22.AND.(KFLCB.EQ.4.OR.KFLCB.EQ.5)) THEN
10118 IF(XS(JT).GT.0.9D0*Q2S(JT)/(PMAS(KFLCB,1)**2+Q2S(JT))) THEN
10119 MINT(51)=1
10120 RETURN
10121 ENDIF
10122 ENDIF
10123 120 CONTINUE
10124 DSH=VINT(44)
10125 IF(ISET(ISUB).GE.3.AND.ISET(ISUB).LE.5) DSH=VINT(26)*VINT(2)
10126
10127
10128 MFIS=0
10129 IF(MSTP(67).GE.1.AND.MSTP(67).LE.3) MFIS=MSTP(67)
10130 IF(MFIS.NE.0) THEN
10131 DO 140 I=1,2
10132 KCFI(I)=0
10133 KCA=PYCOMP(IABS(KFLS(I)))
10134 IF(KCA.NE.0) KCFI(I)=KCHG(KCA,2)*ISIGN(1,KFLS(I))
10135 NFIS(I)=0
10136 IF(KCFI(I).NE.0) THEN
10137 IF(I.EQ.1) IPFS=IPUS1
10138 IF(I.EQ.2) IPFS=IPUS2
10139 DO 130 J=1,2
10140 ICSI=MOD(K(IPFS,3+J),MSTU(5))
10141 IF(ICSI.GT.0.AND.ICSI.NE.IPUS1.AND.ICSI.NE.IPUS2.AND.
10142 & (KCFI(I).EQ.(-1)**(J+1).OR.KCFI(I).EQ.2)) THEN
10143 NFIS(I)=NFIS(I)+1
10144 THEFIS(I,NFIS(I))=PYANGL(P(ICSI,3),SQRT(P(ICSI,1)**2+
10145 & P(ICSI,2)**2))
10146 IF(I.EQ.2) THEFIS(I,NFIS(I))=PARU(1)-THEFIS(I,NFIS(I))
10147 ENDIF
10148 130 CONTINUE
10149 ENDIF
10150 140 CONTINUE
10151 IF(NFIS(1)+NFIS(2).EQ.0) MFIS=0
10152 ENDIF
10153
10154
10155 150 N=N+1
10156 JT=1
10157 IF(N.GT.NS+1.AND.Q2S(2).GT.Q2S(1)) JT=2
10158 IF(MORE(JT).EQ.0) JT=3-JT
10159 KFLB=KFLS(JT)
10160 XB=XS(JT)
10161 DO 160 KFL=-25,25
10162 XFB(KFL)=XFS(JT,KFL)
10163 160 CONTINUE
10164 DSHR=2D0*SQRT(DSH)
10165 DSHZ=DSH/ZS(JT)
10166
10167
10168 MCEV=0
10169 IF(IABS(KFLB).LE.10.OR.KFLB.EQ.21) THEN
10170 MCEV=1
10171 XEC=MAX(PARP(65)*DSHR/VINT(2),XB*(1D0/(1D0-PARP(66))-1D0))
10172 IF(XB.GE.1D0-2D0*XEC) MCEV=0
10173 ENDIF
10174 MEEV=0
10175 IF(MINT(44+JT).EQ.3) THEN
10176 MEEV=1
10177 IF(XB.GE.1D0-2D0*XEE) MEEV=0
10178 IF((IABS(KFLB).LE.10.OR.KFLB.EQ.21).AND.XB.GE.1D0-2D0*XEC)
10179 & MEEV=0
10180
10181 IF(MINT(18+JT).EQ.1) MEEV=0
10182
10183 IF(IABS(KFLB).EQ.24) THEN
10184 MCEV=0
10185 MEEV=0
10186 ENDIF
10187 ENDIF
10188 IF(MCEV.EQ.0.AND.MEEV.EQ.0) THEN
10189 Q2B=0D0
10190 GOTO 250
10191 ENDIF
10192
10193
10194 Q2B=Q2S(JT)
10195 TEVCB=TEVCSV(JT)
10196 TEVEB=TEVESV(JT)
10197 IF(MSTP(62).LE.1) THEN
10198 IF(ZS(JT).GT.0.99999D0) THEN
10199 Q2B=Q2S(JT)
10200 ELSE
10201 Q2B=0.5D0*(1D0/ZS(JT)+1D0)*Q2S(JT)+0.5D0*(1D0/ZS(JT)-1D0)*
10202 & (Q2S(3-JT)-DSH+SQRT((DSH+Q2S(1)+Q2S(2))**2+
10203 & 8D0*Q2S(1)*Q2S(2)*ZS(JT)/(1D0-ZS(JT))))
10204 ENDIF
10205 IF(MCEV.EQ.1) TEVCB=LOG(FQ2C*Q2B/ALAM(JT)**2)
10206 IF(MEEV.EQ.1) TEVEB=LOG(Q2B/SPME)
10207 ENDIF
10208 IF(MCEV.EQ.1) THEN
10209 ALSDUM=PYALPS(FQ2C*Q2B)
10210 TEVCB=TEVCB+2D0*LOG(ALAM(JT)/PARU(117))
10211 ALAM(JT)=PARU(117)
10212 B0=(33D0-2D0*MSTU(118))/6D0
10213 ENDIF
10214 TEVCBS=TEVCB
10215 TEVEBS=TEVEB
10216
10217
10218 IF(MFIS.GE.1.AND.N.LE.NS+2) THEN
10219 IFI=N-NS
10220 ISFI(IFI)=0
10221 IF(IABS(KCFI(IFI)).EQ.1.AND.NFIS(IFI).EQ.1) THEN
10222 ISFI(IFI)=1
10223 ELSEIF(KCFI(IFI).EQ.2.AND.NFIS(IFI).EQ.1) THEN
10224 IF(PYR(0).GT.0.5D0) ISFI(IFI)=1
10225 ELSEIF(KCFI(IFI).EQ.2.AND.NFIS(IFI).EQ.2) THEN
10226 ISFI(IFI)=1
10227 IF(PYR(0).GT.0.5D0) ISFI(IFI)=2
10228 ENDIF
10229 ENDIF
10230
10231
10232 DO 170 KFL=-25,25
10233 WTAPC(KFL)=0D0
10234 WTAPE(KFL)=0D0
10235 WTSF(KFL)=0D0
10236 170 CONTINUE
10237
10238 IF(IABS(KFLB).LE.10) THEN
10239 WTAPC(KFLB)=(8D0/3D0)*LOG((1D0-XEC-XB)*(XB+XEC)/(XEC*(1D0-XEC)))
10240 WTAPC(21)=0.5D0*(XB/(XB+XEC)-XB/(1D0-XEC))
10241 IF(MECOR.EQ.1.AND.(N.EQ.NS+1.OR.N.EQ.NS+2))
10242 & WTAPC(21)=3D0*WTAPC(21)
10243
10244 ELSEIF(IABS(KFLB).LE.20) THEN
10245 WTAPF1=LOG((1D0-XEE-XB)*(XB+XEE)/(XEE*(1D0-XEE)))
10246 WTAPF2=LOG((1D0-XEE-XB)*(1D0-XEE)/(XEE*(XB+XEE)))
10247 WTAPE(KFLB)=2D0*(WTAPF1+WTAPF2)
10248 IF(MSTP(12).GE.1) WTAPE(22)=XB/(XB+XEE)-XB/(1D0-XEE)
10249 IF(MECOR.EQ.1.AND.(N.EQ.NS+1.OR.N.EQ.NS+2))
10250 & WTAPE(22)=3D0*WTAPE(22)
10251
10252 ELSEIF(KFLB.EQ.21) THEN
10253 WTAPQ=(16D0/3D0)*(SQRT((1D0-XEC)/XB)-SQRT((XB+XEC)/XB))
10254 DO 180 KFL=1,MSTP(58)
10255 WTAPC(KFL)=WTAPQ
10256 WTAPC(-KFL)=WTAPQ
10257 180 CONTINUE
10258 WTAPC(21)=6D0*LOG((1D0-XEC-XB)/XEC)
10259
10260 ELSEIF(KFLB.EQ.22) THEN
10261 WTAPF=LOG((1D0-XEE-XB)*(1D0-XEE)/(XEE*(XB+XEE)))/XB
10262 WTAPE(11)=WTAPF
10263 WTAPE(-11)=WTAPF
10264 ELSEIF(KFLB.EQ.24) THEN
10265 WTAPE(-11)=1D0/(4D0*PARU(102))*LOG((1D0-XEE-XB)*(1D0-XEE)/
10266 & (XEE*(XB+XEE)))/XB
10267 ELSEIF(KFLB.EQ.-24) THEN
10268 WTAPE(11)=1D0/(4D0*PARU(102))*LOG((1D0-XEE-XB)*(1D0-XEE)/
10269 & (XEE*(XB+XEE)))/XB
10270 ENDIF
10271
10272
10273 NTRY=0
10274 190 NTRY=NTRY+1
10275 IF(NTRY.GT.500) THEN
10276 MINT(51)=1
10277 RETURN
10278 ENDIF
10279 WTSUMC=0D0
10280 WTSUME=0D0
10281 XFBO=MAX(1D-10,XFB(KFLB))
10282 DO 200 KFL=-25,25
10283 WTSF(KFL)=XFB(KFL)/XFBO
10284 WTSUMC=WTSUMC+WTAPC(KFL)*WTSF(KFL)
10285 WTSUME=WTSUME+WTAPE(KFL)*WTSF(KFL)
10286 200 CONTINUE
10287 WTSUMC=MAX(0.0001D0,WTSUMC)
10288 WTSUME=MAX(0.0001D0/FWTE,WTSUME)
10289
10290
10291 NTRY2=0
10292 210 NTRY2=NTRY2+1
10293 IF(NTRY2.GT.500) THEN
10294 MINT(51)=1
10295 RETURN
10296 ENDIF
10297 IF(MCEV.EQ.1) THEN
10298 IF(MSTP(64).LE.0) THEN
10299 TEVCB=TEVCB+LOG(PYR(0))*PARU(2)/(PARU(111)*WTSUMC)
10300 ELSEIF(MSTP(64).EQ.1) THEN
10301 TEVCB=TEVCB*EXP(MAX(-50D0,LOG(PYR(0))*B0/WTSUMC))
10302 ELSE
10303 TEVCB=TEVCB*EXP(MAX(-50D0,LOG(PYR(0))*B0/(5D0*WTSUMC)))
10304 ENDIF
10305 ENDIF
10306 IF(MEEV.EQ.1) THEN
10307 TEVEB=TEVEB*EXP(MAX(-50D0,LOG(PYR(0))*PARU(2)/
10308 & (PARU(101)*FWTE*WTSUME*TEMX)))
10309 ENDIF
10310
10311
10312 220 IF(MCEV.EQ.1) Q2CB=ALAM(JT)**2*EXP(MAX(-50D0,TEVCB))/FQ2C
10313 IF(MEEV.EQ.1) Q2EB=SPME*EXP(MAX(-50D0,TEVEB))
10314
10315 KFLCB=IABS(KFLB)
10316 IF(KFBEAM(JT).NE.22.AND.(KFLCB.EQ.4.OR.KFLCB.EQ.5).AND.
10317 &MCEV.EQ.1) THEN
10318 IF(Q2CB.LT.PMAS(KFLCB,1)**2) THEN
10319 Q2CB=1.1*PMAS(KFLCB,1)**2
10320 TEVCB=LOG(FQ2C*Q2B/ALAM(JT)**2)
10321 FCQ2MX=MIN(2D0,1.05D0*FCQ2MX)
10322 ENDIF
10323 ENDIF
10324 MCE=0
10325 IF(MCEV.EQ.0.AND.MEEV.EQ.0) THEN
10326 ELSEIF(MCEV.EQ.1.AND.MEEV.EQ.0) THEN
10327 IF(Q2CB.GT.Q2MNCS(JT)) MCE=1
10328 ELSEIF(MCEV.EQ.0.AND.MEEV.EQ.1) THEN
10329 IF(Q2EB.GT.Q2MNE) MCE=2
10330 ELSEIF(Q2MNCS(JT).GT.Q2MNE) THEN
10331 MCE=1
10332 IF(Q2EB.GT.Q2CB.OR.Q2CB.LE.Q2MNCS(JT)) MCE=2
10333 IF(MCE.EQ.2.AND.Q2EB.LE.Q2MNE) MCE=0
10334 ELSE
10335 MCE=2
10336 IF(Q2CB.GT.Q2EB.OR.Q2EB.LE.Q2MNE) MCE=1
10337 IF(MCE.EQ.1.AND.Q2CB.LE.Q2MNCS(JT)) MCE=0
10338 ENDIF
10339
10340
10341 IF(MCE.EQ.0) THEN
10342 Q2B=0D0
10343 GOTO 250
10344 ELSEIF(MCE.EQ.1) THEN
10345 Q2B=Q2CB
10346 Q2REF=FQ2C*Q2B
10347 IF(MEEV.EQ.1) TEVEB=LOG(Q2B/SPME)
10348 ELSE
10349 Q2B=Q2EB
10350 Q2REF=Q2B
10351 IF(MCEV.EQ.1) TEVCB=LOG(FQ2C*Q2B/ALAM(JT)**2)
10352 ENDIF
10353
10354
10355 IF(MCE.EQ.1) WTRAN=PYR(0)*WTSUMC
10356 IF(MCE.EQ.2) WTRAN=PYR(0)*WTSUME
10357 KFLA=-25
10358 230 KFLA=KFLA+1
10359 IF(MCE.EQ.1) WTRAN=WTRAN-WTAPC(KFLA)*WTSF(KFLA)
10360 IF(MCE.EQ.2) WTRAN=WTRAN-WTAPE(KFLA)*WTSF(KFLA)
10361 IF(KFLA.LE.24.AND.WTRAN.GT.0D0) GOTO 230
10362 IF(KFLA.EQ.25) THEN
10363 Q2B=0D0
10364 GOTO 250
10365 ENDIF
10366
10367
10368 WTZ=0D0
10369
10370 IF(IABS(KFLA).LE.10.AND.IABS(KFLB).LE.10) THEN
10371 Z=1D0-((1D0-XB-XEC)/(1D0-XEC))*
10372 & (XEC*(1D0-XEC)/((XB+XEC)*(1D0-XB-XEC)))**PYR(0)
10373 WTZ=0.5D0*(1D0+Z**2)
10374
10375 ELSEIF(IABS(KFLA).LE.10.AND.KFLB.EQ.21) THEN
10376 Z=XB/(SQRT(XB+XEC)+PYR(0)*(SQRT(1D0-XEC)-SQRT(XB+XEC)))**2
10377 WTZ=0.5D0*(1D0+(1D0-Z)**2)*SQRT(Z)
10378
10379 ELSEIF(IABS(KFLA).LE.20.AND.IABS(KFLB).LE.20) THEN
10380 IF(WTAPF1.GT.PYR(0)*(WTAPF1+WTAPF2)) THEN
10381 Z=1D0-((1D0-XB-XEE)/(1D0-XEE))*
10382 & (XEE*(1D0-XEE)/((XB+XEE)*(1D0-XB-XEE)))**PYR(0)
10383 ELSE
10384 Z=XB+XB*(XEE/(1D0-XEE))*
10385 & ((1D0-XB-XEE)*(1D0-XEE)/(XEE*(XB+XEE)))**PYR(0)
10386 ENDIF
10387 WTZ=0.5D0*(1D0+Z**2)*(Z-XB)/(1D0-XB)
10388
10389 ELSEIF(IABS(KFLA).LE.20.AND.KFLB.EQ.22) THEN
10390 Z=XB+XB*(XEE/(1D0-XEE))*
10391 & ((1D0-XB-XEE)*(1D0-XEE)/(XEE*(XB+XEE)))**PYR(0)
10392 WTZ=0.5D0*(1D0+(1D0-Z)**2)*XB*(Z-XB)/Z
10393
10394 ELSEIF(IABS(KFLA).LE.20.AND.IABS(KFLB).EQ.24) THEN
10395 Z=XB+XB*(XEE/(1D0-XEE))*
10396 & ((1D0-XB-XEE)*(1D0-XEE)/(XEE*(XB+XEE)))**PYR(0)
10397 WTZ=0.5D0*(1D0+(1D0-Z)**2)*(XB*(Z-XB)/Z)*
10398 & (Q2B/(Q2B+PMAS(24,1)**2))
10399
10400 ELSEIF(KFLA.EQ.21.AND.IABS(KFLB).LE.10) THEN
10401 Z=XB/(1D0-XEC)+PYR(0)*(XB/(XB+XEC)-XB/(1D0-XEC))
10402 WTZ=1D0-2D0*Z*(1D0-Z)
10403
10404 ELSEIF(KFLA.EQ.21.AND.KFLB.EQ.21) THEN
10405 Z=1D0/(1D0+((1D0-XEC-XB)/XB)*(XEC/(1D0-XEC-XB))**PYR(0))
10406 WTZ=(1D0-Z*(1D0-Z))**2
10407
10408 ELSEIF(KFLA.EQ.22.AND.IABS(KFLB).LE.20) THEN
10409 Z=XB/(1D0-XEE)+PYR(0)*(XB/(XB+XEE)-XB/(1D0-XEE))
10410 WTZ=1D0-2D0*Z*(1D0-Z)
10411 ENDIF
10412 IF(MCE.EQ.2) WTZ=(WTZ/FWTE)*(TEVEB/TEMX)
10413
10414
10415 IF(MCE.EQ.1) THEN
10416 IF(MSTP(65).GE.1) THEN
10417 RSOFT=6D0
10418 IF(KFLB.NE.21) RSOFT=8D0/3D0
10419 Z=Z*(TEVCB/TEVCSV(JT))**(RSOFT*XEC/((XB+XEC)*B0))
10420 IF(Z.LE.XB) GOTO 210
10421 ENDIF
10422
10423
10424 IF(MSTP(64).GE.2) THEN
10425 IF((1D0-Z)*Q2B.LT.Q2MNCS(JT)) GOTO 210
10426 ALPRAT=TEVCB/(TEVCB+LOG(1D0-Z))
10427 IF(ALPRAT.LT.5D0*PYR(0)) GOTO 210
10428 IF(ALPRAT.GT.5D0) WTZ=WTZ*ALPRAT/5D0
10429 ENDIF
10430 ENDIF
10431
10432
10433 UHAT=Q2B-DSH*(1D0-Z)/Z
10434 IF(MSTP(68).GE.0.AND.UHAT.GT.0D0) GOTO 210
10435
10436
10437 IF(MECOR.EQ.1.AND.(N.EQ.NS+1.OR.N.EQ.NS+2)) THEN
10438 SHAT=DSH/Z
10439 THAT=-Q2B
10440 IF(IABS(KFLA).LE.20.AND.IABS(KFLB).LE.20) THEN
10441 RMEPS=(THAT**2+UHAT**2+2D0*DSH*SHAT)/(SHAT**2+DSH**2)
10442 WTZ=WTZ*RMEPS
10443 ELSEIF((KFLA.EQ.21.OR.KFLA.EQ.22).AND.IABS(KFLB).LE.20) THEN
10444 RMEPS=(SHAT**2+UHAT**2+2D0*DSH*THAT)/((SHAT-DSH)**2+DSH**2)
10445 WTZ=WTZ*RMEPS/3D0
10446 ENDIF
10447 ENDIF
10448
10449
10450
10451 IF(MCE.EQ.1) THEN
10452 IF(MFIS.GE.1.AND.N.LE.NS+2.AND.NTRY2.LT.200) THEN
10453 THE2D=(4D0*Q2B)/(DSH*(1D0-Z))
10454 IF(N.EQ.NS+1.AND.ISFI(1).GE.1) THEN
10455 IF(THE2D.GT.THEFIS(1,ISFI(1))**2) GOTO 210
10456 ELSEIF(N.EQ.NS+2.AND.ISFI(2).GE.1) THEN
10457 IF(THE2D.GT.THEFIS(2,ISFI(2))**2) GOTO 210
10458 ENDIF
10459 ENDIF
10460
10461
10462 IF(MSTP(62).GE.3.AND.NTRY2.LT.200) THEN
10463 THE2T=(4D0*Z**2*Q2B)/(4D0*Z**2*Q2B+(1D0-Z)*XB**2*VINT(2))
10464 IF(THE2T.GT.THE2(JT)) GOTO 210
10465 ENDIF
10466 ENDIF
10467
10468
10469 MINT(105)=MINT(102+JT)
10470 MINT(109)=MINT(106+JT)
10471 VINT(120)=VINT(2+JT)
10472 IF(MSTP(57).LE.1) THEN
10473 CALL PYPDFU(KFBEAM(JT),XB,Q2REF,XFN)
10474 ELSE
10475 CALL PYPDFL(KFBEAM(JT),XB,Q2REF,XFN)
10476 ENDIF
10477 XFBN=XFN(KFLB)
10478 IF(XFBN.LT.1D-20) THEN
10479 IF(KFLA.EQ.KFLB) THEN
10480 TEVCB=TEVCBS
10481 TEVEB=TEVEBS
10482 WTAPC(KFLB)=0D0
10483 WTAPE(KFLB)=0D0
10484 GOTO 190
10485 ELSEIF(MCE.EQ.1.AND.TEVCBS-TEVCB.GT.0.2D0) THEN
10486 TEVCB=0.5D0*(TEVCBS+TEVCB)
10487 GOTO 220
10488 ELSEIF(MCE.EQ.2.AND.TEVEBS-TEVEB.GT.0.2D0) THEN
10489 TEVEB=0.5D0*(TEVEBS+TEVEB)
10490 GOTO 220
10491 ELSE
10492 XFBN=1D-10
10493 XFN(KFLB)=XFBN
10494 ENDIF
10495 ENDIF
10496 DO 240 KFL=-25,25
10497 XFB(KFL)=XFN(KFL)
10498 240 CONTINUE
10499 XA=XB/Z
10500 IF(MSTP(57).LE.1) THEN
10501 CALL PYPDFU(KFBEAM(JT),XA,Q2REF,XFA)
10502 ELSE
10503 CALL PYPDFL(KFBEAM(JT),XA,Q2REF,XFA)
10504 ENDIF
10505 XFAN=XFA(KFLA)
10506 IF(XFAN.LT.1D-20) GOTO 190
10507 WTSFA=WTSF(KFLA)
10508 IF(WTZ*XFAN/XFBN.LT.PYR(0)*WTSFA) GOTO 190
10509
10510
10511 250 IF(N.EQ.NS+2) THEN
10512 DQ2(JT)=Q2B
10513 DPLCM=SQRT((DSH+DQ2(1)+DQ2(2))**2-4D0*DQ2(1)*DQ2(2))/DSHR
10514 DO 270 JR=1,2
10515 I=NS+JR
10516 IF(JR.EQ.1) IPO=IPUS1
10517 IF(JR.EQ.2) IPO=IPUS2
10518 DO 260 J=1,5
10519 K(I,J)=0
10520 P(I,J)=0D0
10521 V(I,J)=0D0
10522 260 CONTINUE
10523 K(I,1)=14
10524 K(I,2)=KFLS(JR+2)
10525 K(I,4)=IPO
10526 K(I,5)=IPO
10527 P(I,3)=DPLCM*(-1)**(JR+1)
10528 P(I,4)=(DSH+DQ2(3-JR)-DQ2(JR))/DSHR
10529 P(I,5)=-SQRT(DQ2(JR))
10530 K(IPO,1)=14
10531 K(IPO,3)=I
10532 K(IPO,4)=MOD(K(IPO,4),MSTU(5))+MSTU(5)*I
10533 K(IPO,5)=MOD(K(IPO,5),MSTU(5))+MSTU(5)*I
10534 270 CONTINUE
10535
10536
10537 ELSEIF(N.GT.NS+2) THEN
10538 JR=3-JT
10539 DQ2(3)=Q2B
10540 DPC(1)=P(IS(1),4)
10541 DPC(2)=P(IS(2),4)
10542 DPC(3)=0.5D0*(ABS(P(IS(1),3))+ABS(P(IS(2),3)))
10543 DPD(1)=DSH+DQ2(JR)+DQ2(JT)
10544 DPD(2)=DSHZ+DQ2(JR)+DQ2(3)
10545 DPD(3)=SQRT(DPD(1)**2-4D0*DQ2(JR)*DQ2(JT))
10546 DPD(4)=SQRT(DPD(2)**2-4D0*DQ2(JR)*DQ2(3))
10547 IKIN=0
10548 IF(Q2S(JR).GE.0.25D0*Q2MNC.AND.DPD(1)-DPD(3).GE.
10549 & 1D-10*DPD(1)) IKIN=1
10550 IF(IKIN.EQ.0) DMSMA=(DQ2(JT)/ZS(JT)-DQ2(3))*
10551 & (DSH/(DSH+DQ2(JT))-DSH/(DSHZ+DQ2(3)))
10552 IF(IKIN.EQ.1) DMSMA=(DPD(1)*DPD(2)-DPD(3)*DPD(4))/
10553 & (2D0*DQ2(JR))-DQ2(JT)-DQ2(3)
10554
10555
10556 IT=N
10557 DO 280 J=1,5
10558 K(IT,J)=0
10559 P(IT,J)=0D0
10560 V(IT,J)=0D0
10561 280 CONTINUE
10562
10563 IF(IABS(KFLB).LE.20.AND.IABS(KFLS(JT+2)).LE.20) THEN
10564 K(IT,2)=21
10565 IF(IABS(KFLB).GE.11) K(IT,2)=22
10566
10567 ELSEIF(IABS(KFLB).LE.20.AND.IABS(KFLS(JT+2)).GT.20) THEN
10568 K(IT,2)=KFLB
10569 IF(KFLS(JT+2).EQ.24) THEN
10570 K(IT,2)=-12
10571 ELSEIF(KFLS(JT+2).EQ.-24) THEN
10572 K(IT,2)=12
10573 ENDIF
10574
10575 ELSE
10576 K(IT,2)=-KFLS(JT+2)
10577 IF(KFLS(JT+2).GT.20) K(IT,2)=KFLS(JT+2)
10578 ENDIF
10579 K(IT,1)=3
10580 IF((IABS(K(IT,2)).GE.11.AND.IABS(K(IT,2)).LE.18).OR.
10581 & IABS(K(IT,2)).EQ.22) K(IT,1)=1
10582 P(IT,5)=PYMASS(K(IT,2))
10583 IF(DMSMA.LE.P(IT,5)**2) GOTO 100
10584 IF(MSTP(63).GE.1.AND.MCE.EQ.1) THEN
10585 MSTJ48=MSTJ(48)
10586 PARJ85=PARJ(85)
10587 P(IT,4)=(DSHZ-DSH-P(IT,5)**2)/DSHR
10588 P(IT,3)=SQRT(P(IT,4)**2-P(IT,5)**2)
10589 IF(MSTP(63).EQ.1) THEN
10590 Q2TIM=DMSMA
10591 ELSEIF(MSTP(63).EQ.2) THEN
10592 Q2TIM=MIN(DMSMA,PARP(71)*Q2S(JT))
10593 ELSE
10594 Q2TIM=DMSMA
10595 MSTJ(48)=1
10596 IF(IKIN.EQ.0) DPT2=DMSMA*(DSHZ+DQ2(3))/(DSH+DQ2(JT))
10597 IF(IKIN.EQ.1) DPT2=DMSMA*(0.5D0*DPD(1)*DPD(2)+0.5D0*DPD(3)*
10598 & DPD(4)-DQ2(JR)*(DQ2(JT)+DQ2(3)))/(4D0*DSH*DPC(3)**2)
10599 PARJ(85)=SQRT(MAX(0D0,DPT2))*
10600 & (1D0/P(IT,4)+1D0/P(IS(JT),4))
10601 ENDIF
10602 CALL PYSHOW(IT,0,SQRT(Q2TIM))
10603 MSTJ(48)=MSTJ48
10604 PARJ(85)=PARJ85
10605 IF(N.GE.IT+1) P(IT,5)=P(IT+1,5)
10606 ENDIF
10607
10608
10609 DMS=P(IT,5)**2
10610 IF(IKIN.EQ.0) DPT2=(DMSMA-DMS)*(DSHZ+DQ2(3))/(DSH+DQ2(JT))
10611 IF(IKIN.EQ.1) DPT2=(DMSMA-DMS)*(0.5D0*DPD(1)*DPD(2)+
10612 & 0.5D0*DPD(3)*DPD(4)-DQ2(JR)*(DQ2(JT)+DQ2(3)+DMS))/
10613 & (4D0*DSH*DPC(3)**2)
10614 IF(DPT2.LT.0D0) GOTO 100
10615 DPB(1)=(0.5D0*DPD(2)-DPC(JR)*(DSHZ+DQ2(JR)-DQ2(JT)-DMS)/
10616 & DSHR)/DPC(3)-DPC(3)
10617 P(IT,1)=SQRT(DPT2)
10618 P(IT,3)=DPB(1)*(-1)**(JT+1)
10619 P(IT,4)=SQRT(DPT2+DPB(1)**2+DMS)
10620 IF(N.GE.IT+1) THEN
10621 DPB(1)=SQRT(DPB(1)**2+DPT2)
10622 DPB(2)=SQRT(DPB(1)**2+DMS)
10623 DPB(3)=P(IT+1,3)
10624 DPB(4)=SQRT(DPB(3)**2+DMS)
10625 DBEZ=(DPB(4)*DPB(1)-DPB(3)*DPB(2))/(DPB(4)*DPB(2)-DPB(3)*
10626 & DPB(1))
10627 CALL PYROBO(IT+1,N,0D0,0D0,0D0,0D0,DBEZ)
10628 THE=PYANGL(P(IT,3),P(IT,1))
10629 CALL PYROBO(IT+1,N,THE,0D0,0D0,0D0,0D0)
10630 ENDIF
10631
10632
10633 DO 290 J=1,5
10634 K(N+1,J)=0
10635 P(N+1,J)=0D0
10636 V(N+1,J)=0D0
10637 290 CONTINUE
10638 K(N+1,1)=14
10639 K(N+1,2)=KFLB
10640 P(N+1,1)=P(IT,1)
10641 P(N+1,3)=P(IT,3)+P(IS(JT),3)
10642 P(N+1,4)=P(IT,4)+P(IS(JT),4)
10643 P(N+1,5)=-SQRT(DQ2(3))
10644
10645
10646 K(IS(JT),3)=N+1
10647 K(IT,3)=N+1
10648 IM1=N+1
10649 IM2=N+1
10650
10651 IF(IABS(K(IT,2)).GE.22) THEN
10652 K(IT,1)=1
10653 ID1=IS(JT)
10654 ID2=IS(JT)
10655
10656 ELSEIF(IABS(K(IS(JT),2)).GE.22) THEN
10657 ID1=IT
10658 ID2=IT
10659
10660 ELSEIF(K(N+1,2).EQ.22) THEN
10661 ID1=IS(JT)
10662 ID2=IT
10663 IM1=ID2
10664 IM2=ID1
10665
10666 ELSEIF(K(N+1,2).GT.0.AND.K(N+1,2).NE.21.AND.K(IT,2).EQ.21) THEN
10667 ID1=IT
10668 ID2=IS(JT)
10669
10670 ELSEIF(K(N+1,2).GT.0.AND.K(N+1,2).NE.21) THEN
10671 ID1=IS(JT)
10672 ID2=IT
10673
10674 ELSEIF(K(N+1,2).LT.0.AND.K(IT,2).EQ.21) THEN
10675 ID1=IS(JT)
10676 ID2=IT
10677
10678 ELSEIF(K(N+1,2).LT.0) THEN
10679 ID1=IT
10680 ID2=IS(JT)
10681
10682 ELSEIF((K(IT,2).EQ.21.AND.PYR(0).GT.0.5D0).OR.K(IT,2).LT.0) THEN
10683 ID1=IS(JT)
10684 ID2=IT
10685 ELSE
10686 ID1=IT
10687 ID2=IS(JT)
10688 ENDIF
10689 IF(IM1.EQ.N+1) K(IM1,4)=K(IM1,4)+ID1
10690 IF(IM2.EQ.N+1) K(IM2,5)=K(IM2,5)+ID2
10691 K(ID1,4)=K(ID1,4)+MSTU(5)*IM1
10692 K(ID2,5)=K(ID2,5)+MSTU(5)*IM2
10693 IF(ID1.NE.ID2) THEN
10694 K(ID1,5)=K(ID1,5)+MSTU(5)*ID2
10695 K(ID2,4)=K(ID2,4)+MSTU(5)*ID1
10696 ENDIF
10697 N=N+1
10698
10699
10700 DBSVX=(P(N,1)+P(IS(JR),1))/(P(N,4)+P(IS(JR),4))
10701 DBSVZ=(P(N,3)+P(IS(JR),3))/(P(N,4)+P(IS(JR),4))
10702 IF(DBSVX**2+DBSVZ**2.GE.1D0) GOTO 100
10703 CALL PYROBO(NS+1,N,0D0,0D0,-DBSVX,0D0,-DBSVZ)
10704 IR=N+(JT-1)*(IS(1)-N)
10705 CALL PYROBO(NS+1,N,-PYANGL(P(IR,3),P(IR,1)),PARU(2)*PYR(0),
10706 & 0D0,0D0,0D0)
10707 ENDIF
10708
10709
10710 IS(JT)=N
10711 DQ2(JT)=Q2B
10712 IF(MSTP(62).GE.3.AND.NTRY2.LT.200) THE2(JT)=THE2T
10713 DSH=DSHZ
10714
10715
10716 Q2S(JT)=Q2B
10717 IF((MCEV.EQ.1.AND.Q2B.GE.0.25D0*Q2MNC).OR.
10718 &(MEEV.EQ.1.AND.Q2B.GE.Q2MNE)) THEN
10719 KFLS(JT+2)=KFLS(JT)
10720 KFLS(JT)=KFLA
10721 XS(JT)=XA
10722 ZS(JT)=Z
10723 DO 300 KFL=-25,25
10724 XFS(JT,KFL)=XFA(KFL)
10725 300 CONTINUE
10726 TEVCSV(JT)=TEVCB
10727 TEVESV(JT)=TEVEB
10728 ELSE
10729 MORE(JT)=0
10730 IF(JT.EQ.1) IPU1=N
10731 IF(JT.EQ.2) IPU2=N
10732 ENDIF
10733 IF(N.GT.MSTU(4)-MSTU(32)-10) THEN
10734 CALL PYERRM(11,'(PYSSPA:) no more memory left in PYJETS')
10735 IF(MSTU(21).GE.1) N=NS
10736 IF(MSTU(21).GE.1) RETURN
10737 ENDIF
10738 IF(MORE(1).EQ.1.OR.MORE(2).EQ.1) GOTO 150
10739
10740
10741 DO 310 J=1,3
10742 ROBO(J+2)=(P(NS+1,J)+P(NS+2,J))/(P(NS+1,4)+P(NS+2,4))
10743 310 CONTINUE
10744 K(N+2,1)=1
10745 DO 320 J=1,5
10746 P(N+2,J)=P(NS+1,J)
10747 320 CONTINUE
10748 CALL PYROBO(N+2,N+2,0D0,0D0,-ROBO(3),-ROBO(4),-ROBO(5))
10749 ROBO(2)=PYANGL(P(N+2,1),P(N+2,2))
10750 ROBO(1)=PYANGL(P(N+2,3),SQRT(P(N+2,1)**2+P(N+2,2)**2))
10751 CALL PYROBO(MINT(83)+5,NS,ROBO(1),ROBO(2),ROBO(3),ROBO(4),
10752 &ROBO(5))
10753
10754
10755 K(IPU1,3)=MINT(83)+3
10756 K(IPU2,3)=MINT(83)+4
10757 DO 330 JT=1,2
10758 MINT(12+JT)=KFLS(JT)
10759 VINT(140+JT)=XS(JT)
10760 IF(MINT(18+JT).EQ.1) VINT(140+JT)=VINT(154+JT)*XS(JT)
10761 330 CONTINUE
10762 PARU(112)=ALAMS
10763
10764 RETURN
10765 END
10766
10767
10768
10769
10770
10771
10772
10773 SUBROUTINE PYRESD(IRES)
10774
10775
10776 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
10777 IMPLICIT INTEGER(I-N)
10778 INTEGER PYK,PYCHGE,PYCOMP
10779
10780 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
10781
10782 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
10783 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
10784 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
10785 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
10786 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
10787 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
10788 COMMON/PYINT1/MINT(400),VINT(400)
10789 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
10790 COMMON/PYINT4/MWID(500),WIDS(500,5)
10791 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYSUBS/,/PYPARS/,
10792 &/PYINT1/,/PYINT2/,/PYINT4/
10793
10794 DIMENSION IREF(50,8),KDCY(3),KFL1(3),KFL2(3),KFL3(3),KEQL(3),
10795 &KCQM(3),KCQ1(3),KCQ2(3),KCQ3(3),NSD(3),PMMN(3),ILIN(6),
10796 &HGZ(3,3),COUP(6,4),CORL(2,2,2),PK(6,4),PKK(6,6),CTHE(3),
10797 &PHI(3),WDTP(0:200),WDTE(0:200,0:5),DBEZQQ(3),DPMO(5),XM(5),
10798 &VDCY(4)
10799 COMPLEX FGK,HA(6,6),HC(6,6)
10800 REAL TIR,UIR
10801 CHARACTER CODE*9,MASS*9
10802
10803
10804
10805 FGK(I1,I2,I3,I4,I5,I6)=4.*HA(I1,I3)*HC(I2,I6)*(HA(I1,I5)*
10806 &HC(I1,I4)+HA(I3,I5)*HC(I3,I4))
10807 DIGK(DT,DU)=-4D0*D34*D56+DT*(3D0*DT+4D0*DU)+DT**2*(DT*DU/
10808 &(D34*D56)-2D0*(1D0/D34+1D0/D56)*(DT+DU)+2D0*(D34/D56+D56/D34))
10809 DJGK(DT,DU)=8D0*(D34+D56)**2-8D0*(D34+D56)*(DT+DU)-6D0*DT*DU-
10810 &2D0*DT*DU*(DT*DU/(D34*D56)-2D0*(1D0/D34+1D0/D56)*(DT+DU)+
10811 &2D0*(D34/D56+D56/D34))
10812
10813
10814 XW=PARU(102)
10815 XWV=XW
10816 IF(MSTP(8).GE.2) XW=1D0-(PMAS(24,1)/PMAS(23,1))**2
10817 XW1=1D0-XW
10818 SQMZ=PMAS(23,1)**2
10819 GMMZ=PMAS(23,1)*PMAS(23,2)
10820 SQMW=PMAS(24,1)**2
10821 GMMW=PMAS(24,1)*PMAS(24,2)
10822 SH=VINT(44)
10823
10824
10825 DO 100 JT=1,8
10826 IREF(1,JT)=0
10827 100 CONTINUE
10828
10829
10830 IF(IRES.EQ.0) THEN
10831 ISUB=MINT(1)
10832 IF(ISET(ISUB).EQ.1.OR.ISET(ISUB).EQ.3) THEN
10833 IREF(1,1)=MINT(84)+2+ISET(ISUB)
10834 IREF(1,4)=MINT(83)+6+ISET(ISUB)
10835 JTMAX=1
10836 ELSEIF(ISET(ISUB).EQ.2.OR.ISET(ISUB).EQ.4) THEN
10837 IREF(1,1)=MINT(84)+1+ISET(ISUB)
10838 IREF(1,2)=MINT(84)+2+ISET(ISUB)
10839 IREF(1,4)=MINT(83)+5+ISET(ISUB)
10840 IREF(1,5)=MINT(83)+6+ISET(ISUB)
10841 JTMAX=2
10842 ELSEIF(ISET(ISUB).EQ.5) THEN
10843 IREF(1,1)=MINT(84)+3
10844 IREF(1,2)=MINT(84)+4
10845 IREF(1,3)=MINT(84)+5
10846 IREF(1,4)=MINT(83)+7
10847 IREF(1,5)=MINT(83)+8
10848 IREF(1,6)=MINT(83)+9
10849 JTMAX=3
10850 ENDIF
10851
10852
10853 ELSE
10854 ISUB=0
10855 IREF(1,1)=IRES
10856 JTMAX=1
10857 ENDIF
10858
10859
10860 DO 120 JT=1,3
10861 IF(IREF(1,JT).GT.0) THEN
10862 IF(K(IREF(1,JT),1).GT.10) THEN
10863 KFA=IABS(K(IREF(1,JT),2))
10864 IF(KFA.GE.6.AND.KCHG(PYCOMP(KFA),2).NE.0) THEN
10865 DO 110 I=IREF(1,JT)+1,N
10866 IF(K(I,1).LE.10.AND.K(I,2).EQ.K(IREF(1,JT),2))
10867 & IREF(1,JT)=I
10868 110 CONTINUE
10869 ELSE
10870 KDA=MOD(K(IREF(1,JT),4),MSTU(4))
10871 IF(MWID(PYCOMP(KFA)).NE.0.AND.KDA.GT.1) IREF(1,JT)=KDA
10872 ENDIF
10873 ENDIF
10874 ENDIF
10875 120 CONTINUE
10876
10877
10878 DO 140 JT=1,JTMAX
10879 DO 130 I=1,4
10880 V(IREF(1,JT),I)=0D0
10881 130 CONTINUE
10882 140 CONTINUE
10883
10884
10885 NP=1
10886 IP=0
10887 150 IP=IP+1
10888 NINH=0
10889 JTMAX=2
10890 IF(IREF(IP,2).EQ.0) JTMAX=1
10891 IF(IREF(IP,3).NE.0) JTMAX=3
10892 IT4=0
10893 NSAV=N
10894
10895
10896 160 N=NSAV
10897 DO 250 JT=1,JTMAX
10898 ID=IREF(IP,JT)
10899 KDCY(JT)=0
10900 KFL1(JT)=0
10901 KFL2(JT)=0
10902 KFL3(JT)=0
10903 KEQL(JT)=0
10904 NSD(JT)=ID
10905
10906
10907 IF(ID.EQ.0) GOTO 240
10908 KFA=IABS(K(ID,2))
10909 KCA=PYCOMP(KFA)
10910 IF(MWID(KCA).EQ.0) GOTO 240
10911 IF(K(ID,1).GT.10.OR.MDCY(KCA,1).EQ.0) GOTO 240
10912 IF(KFA.EQ.6.OR.KFA.EQ.7.OR.KFA.EQ.8.OR.KFA.EQ.17.OR.
10913 & KFA.EQ.18) IT4=IT4+1
10914 K(ID,4)=MSTU(5)*(K(ID,4)/MSTU(5))
10915 K(ID,5)=MSTU(5)*(K(ID,5)/MSTU(5))
10916
10917
10918 IF(K(ID,1).EQ.5) THEN
10919 V(ID,5)=0D0
10920 ELSEIF(K(ID,1).NE.4) THEN
10921 V(ID,5)=-PMAS(KCA,4)*LOG(PYR(0))
10922 ENDIF
10923 DO 170 J=1,4
10924 VDCY(J)=V(ID,J)+V(ID,5)*P(ID,J)/P(ID,5)
10925 170 CONTINUE
10926
10927
10928 MOUT=0
10929 IF(MSTJ(22).EQ.2) THEN
10930 IF(PMAS(KCA,4).GT.PARJ(71)) MOUT=1
10931 ELSEIF(MSTJ(22).EQ.3) THEN
10932 IF(VDCY(1)**2+VDCY(2)**2+VDCY(3)**2.GT.PARJ(72)**2) MOUT=1
10933 ELSEIF(MSTJ(22).EQ.4) THEN
10934 IF(VDCY(1)**2+VDCY(2)**2.GT.PARJ(73)**2) MOUT=1
10935 IF(ABS(VDCY(3)).GT.PARJ(74)) MOUT=1
10936 ENDIF
10937 IF(MOUT.EQ.1.AND.K(ID,1).NE.5) THEN
10938 K(ID,1)=4
10939 GOTO 240
10940 ENDIF
10941
10942
10943 IF(KCHG(KCA,3).EQ.0) THEN
10944 IPM=2
10945 ELSE
10946 IPM=(5-ISIGN(1,K(ID,2)))/2
10947 ENDIF
10948 KFB=0
10949 IF(JTMAX.EQ.2) THEN
10950 KFB=IABS(K(IREF(IP,3-JT),2))
10951 ELSEIF(JTMAX.EQ.3) THEN
10952 JT2=JT+1-3*(JT/3)
10953 KFB=IABS(K(IREF(IP,JT2),2))
10954 IF(KFB.NE.KFA) THEN
10955 JT2=JT+2-3*((JT+1)/3)
10956 KFB=IABS(K(IREF(IP,JT2),2))
10957 ENDIF
10958 ENDIF
10959
10960
10961 IF(ISUB.EQ.1.OR.ISUB.EQ.15.OR.ISUB.EQ.19.OR.ISUB.EQ.22.OR.
10962 & ISUB.EQ.30.OR.ISUB.EQ.35.OR.ISUB.EQ.141) MINT(61)=1
10963 CALL PYWIDT(KFA,P(ID,5)**2,WDTP,WDTE)
10964 WDTE0S=WDTE(0,1)+WDTE(0,IPM)+WDTE(0,4)
10965 IF(KFB.EQ.KFA) WDTE0S=WDTE0S+WDTE(0,5)
10966 IF(WDTE0S.LE.0D0) GOTO 240
10967 RKFL=WDTE0S*PYR(0)
10968 IDL=0
10969 180 IDL=IDL+1
10970 IDC=IDL+MDCY(KCA,2)-1
10971 RKFL=RKFL-(WDTE(IDL,1)+WDTE(IDL,IPM)+WDTE(IDL,4))
10972 IF(KFB.EQ.KFA) RKFL=RKFL-WDTE(IDL,5)
10973 IF(IDL.LT.MDCY(KCA,3).AND.RKFL.GT.0D0) GOTO 180
10974
10975
10976 KCQM(JT)=KCHG(KCA,2)*ISIGN(1,K(ID,2))
10977 IF(KCQM(JT).EQ.-2) KCQM(JT)=2
10978 KFL1(JT)=KFDP(IDC,1)*ISIGN(1,K(ID,2))
10979 KFC1A=PYCOMP(IABS(KFL1(JT)))
10980 IF(KCHG(KFC1A,3).EQ.0) KFL1(JT)=IABS(KFL1(JT))
10981 KCQ1(JT)=KCHG(KFC1A,2)*ISIGN(1,KFL1(JT))
10982 IF(KCQ1(JT).EQ.-2) KCQ1(JT)=2
10983 KFL2(JT)=KFDP(IDC,2)*ISIGN(1,K(ID,2))
10984 KFC2A=PYCOMP(IABS(KFL2(JT)))
10985 IF(KCHG(KFC2A,3).EQ.0) KFL2(JT)=IABS(KFL2(JT))
10986 KCQ2(JT)=KCHG(KFC2A,2)*ISIGN(1,KFL2(JT))
10987 IF(KCQ2(JT).EQ.-2) KCQ2(JT)=2
10988 KFL3(JT)=KFDP(IDC,3)*ISIGN(1,K(ID,2))
10989 IF(KFL3(JT).NE.0) THEN
10990 KFC3A=PYCOMP(IABS(KFL3(JT)))
10991 IF(KCHG(KFC3A,3).EQ.0) KFL3(JT)=IABS(KFL3(JT))
10992 KCQ3(JT)=KCHG(KFC3A,2)*ISIGN(1,KFL3(JT))
10993 IF(KCQ3(JT).EQ.-2) KCQ3(JT)=2
10994 ENDIF
10995
10996
10997 KDCY(JT)=1
10998 IF(KFB.EQ.KFA) KEQL(JT)=MDME(IDC,1)
10999 NSD(JT)=N
11000 HGZ(JT,1)=VINT(111)
11001 HGZ(JT,2)=VINT(112)
11002 HGZ(JT,3)=VINT(114)
11003 JTZ=JT
11004
11005
11006 DO 200 I=1,3
11007 P(N+I,5)=0D0
11008 PMMN(I)=0D0
11009 IF(I.EQ.1) THEN
11010 KFLW=IABS(KFL1(JT))
11011 KCW=KFC1A
11012 ELSEIF(I.EQ.2) THEN
11013 KFLW=IABS(KFL2(JT))
11014 KCW=KFC2A
11015 ELSEIF(I.EQ.3) THEN
11016 IF(KFL3(JT).EQ.0) GOTO 200
11017 KFLW=IABS(KFL3(JT))
11018 KCW=KFC3A
11019 ENDIF
11020 P(N+I,5)=PMAS(KCW,1)
11021
11022
11023 IF(KFLW/KSUSY1.EQ.1.OR.KFLW/KSUSY1.EQ.2) THEN
11024 PMMN(I)=PMAS(KCW,1)
11025 DO 190 IDC=MDCY(KCW,2),MDCY(KCW,2)+MDCY(KCW,3)-1
11026 IF(MDME(IDC,1).GT.0.AND.BRAT(IDC).GT.1E-4) THEN
11027 PMSUM=PMAS(PYCOMP(KFDP(IDC,1)),1)+
11028 & PMAS(PYCOMP(KFDP(IDC,2)),1)
11029 IF(KFDP(IDC,3).NE.0) PMSUM=PMSUM+
11030 & PMAS(PYCOMP(KFDP(IDC,3)),1)
11031 PMMN(I)=MIN(PMMN(I),PMSUM)
11032 ENDIF
11033 190 CONTINUE
11034
11035 ELSEIF(KFLW.EQ.6) THEN
11036 PMMN(I)=PMAS(24,1)+PMAS(5,1)
11037 ENDIF
11038 200 CONTINUE
11039
11040
11041 IWID1=1
11042 IWID2=2
11043 PWID1=PMAS(KFC1A,2)
11044 PWID2=PMAS(KFC2A,2)
11045 KFLW1=IABS(KFL1(JT))
11046 KFLW2=IABS(KFL2(JT))
11047 IF(KFL3(JT).NE.0) THEN
11048 PWID3=PMAS(KFC3A,2)
11049 IF(PWID3.GT.PWID1.AND.PWID2.GE.PWID1) THEN
11050 IWID1=3
11051 PWID1=PWID3
11052 KFLW1=IABS(KFL3(JT))
11053 ELSEIF(PWID3.GT.PWID2) THEN
11054 IWID2=3
11055 PWID2=PWID3
11056 KFLW2=IABS(KFL3(JT))
11057 ENDIF
11058 ENDIF
11059
11060
11061 IF(MSTP(42).LE.0.OR.(PWID1.LT.PARP(41).AND.
11062 & PWID2.LT.PARP(41))) THEN
11063
11064
11065 IF(KFA/KSUSY1.EQ.1.OR.KFA/KSUSY1.EQ.2) THEN
11066 IF(P(N+1,5)+P(N+2,5)+P(N+3,5).GT.P(ID,5)) THEN
11067 P(N+1,5)=P(ID,5)-P(N+2,5)-0.5D0
11068 IF(P(N+1,5).LT.0D0) P(N+1,5)=0D0
11069 ENDIF
11070 ENDIF
11071
11072 IF(P(N+1,5)+P(N+2,5)+P(N+3,5).GT.P(ID,5)) THEN
11073 CALL PYERRM(13,'(PYRESD:) daughter masses too large')
11074 MINT(51)=1
11075 RETURN
11076 ELSEIF(P(N+1,5)+P(N+2,5)+P(N+3,5)+PARJ(64).GT.P(ID,5)) THEN
11077 CALL PYERRM(3,'(PYRESD:) daughter masses too large')
11078 MINT(51)=1
11079 RETURN
11080 ENDIF
11081
11082
11083
11084 ELSE
11085 PMTOT=P(ID,5)
11086 IF(KFL3(JT).NE.0) THEN
11087 IWID3=6-IWID1-IWID2
11088 KFLW3=IABS(KFL1(JT))+IABS(KFL2(JT))+IABS(KFL3(JT))-
11089 & KFLW1-KFLW2
11090 LOOP=0
11091 210 LOOP=LOOP+1
11092 P(N+IWID3,5)=PYMASS(KFLW3)
11093 IF(LOOP.LE.10.AND. P(N+IWID3,5).LE.PMMN(IWID3)) GOTO 210
11094 PMTOT=PMTOT-P(N+IWID3,5)
11095 ENDIF
11096
11097 IF(IP.EQ.1) THEN
11098 CKIN45=CKIN(45)
11099 CKIN47=CKIN(47)
11100 CKIN(45)=MAX(PMMN(IWID1),CKIN(45))
11101 CKIN(47)=MAX(PMMN(IWID2),CKIN(47))
11102 CALL PYOFSH(2,KFA,KFLW1,KFLW2,PMTOT,P(N+IWID1,5),
11103 & P(N+IWID2,5))
11104 CKIN(45)=CKIN45
11105 CKIN(47)=CKIN47
11106 ELSE
11107 CKIN(49)=PMMN(IWID1)
11108 CKIN(50)=PMMN(IWID2)
11109 CALL PYOFSH(5,KFA,KFLW1,KFLW2,PMTOT,P(N+IWID1,5),
11110 & P(N+IWID2,5))
11111 CKIN(49)=0D0
11112 CKIN(50)=0D0
11113 ENDIF
11114 IF(MINT(51).EQ.1) RETURN
11115 ENDIF
11116
11117
11118 MSTU10=MSTU(10)
11119 MSTU(10)=1
11120 MSTU(19)=1
11121
11122
11123
11124 IF(KFL3(JT).NE.0) THEN
11125 DO 230 I=N+1,N+3
11126 DO 220 J=1,5
11127 K(I,J)=0
11128
11129 220 CONTINUE
11130 230 CONTINUE
11131 XM(1)=P(N+1,5)
11132 XM(2)=P(N+2,5)
11133 XM(3)=P(N+3,5)
11134 XM(5)=P(ID,5)
11135 CALL PYTBDY(XM)
11136 K(N+1,1)=1
11137 K(N+1,2)=KFL1(JT)
11138 K(N+2,1)=1
11139 K(N+2,2)=KFL2(JT)
11140 K(N+3,1)=1
11141 K(N+3,2)=KFL3(JT)
11142
11143
11144 IF(KFA.EQ.6) THEN
11145 K(N+2,1)=3
11146 ISID=4
11147 IF(KCQM(JT).EQ.-1) ISID=5
11148 IDAU=N+2
11149 K(ID,ISID)=K(ID,ISID)+IDAU
11150 K(IDAU,ISID)=MSTU(5)*ID
11151
11152
11153 ELSEIF(KFC2A.LE.6) THEN
11154 K(N+2,1)=3
11155 K(N+3,1)=3
11156 ISID=4
11157 IF(KFL2(JT).LT.0) ISID=5
11158 K(N+2,ISID)=MSTU(5)*(N+3)
11159 K(N+3,9-ISID)=MSTU(5)*(N+2)
11160 ENDIF
11161 IF(KFL1(JT).EQ.KSUSY1+21) THEN
11162 K(N+1,1)=3
11163 K(N+2,1)=3
11164 K(N+3,1)=3
11165 ISID=4
11166 IF(KFL2(JT).LT.0) ISID=5
11167 K(N+1,ISID)=MSTU(5)*(N+2)
11168 K(N+1,9-ISID)=MSTU(5)*(N+3)
11169 K(N+2,ISID)=MSTU(5)*(N+1)
11170 K(N+3,9-ISID)=MSTU(5)*(N+1)
11171 ENDIF
11172 IF(KFA.EQ.KSUSY1+21) THEN
11173 K(N+2,1)=3
11174 K(N+3,1)=3
11175 ISID=4
11176 IF(KFL2(JT).LT.0) ISID=5
11177 K(ID,ISID)=K(ID,ISID)+(N+2)
11178 K(ID,9-ISID)=K(ID,9-ISID)+(N+3)
11179 K(N+2,ISID)=MSTU(5)*ID
11180 K(N+3,9-ISID)=MSTU(5)*ID
11181 ENDIF
11182 N=N+3
11183
11184
11185
11186 ELSE
11187 CALL PY2ENT(N+1,KFL1(JT),KFL2(JT),P(ID,5))
11188
11189 IF(KCQ1(JT).NE.0) THEN
11190 K(N-1,1)=3
11191 IF(KCQ1(JT).NE.-1) K(N-1,4)=MSTU(5)*N
11192 IF(KCQ1(JT).NE.1) K(N-1,5)=MSTU(5)*N
11193 ENDIF
11194 IF(KCQ2(JT).NE.0) THEN
11195 K(N,1)=3
11196 IF(KCQ2(JT).NE.-1) K(N,4)=MSTU(5)*(N-1)
11197 IF(KCQ2(JT).NE.1) K(N,5)=MSTU(5)*(N-1)
11198 ENDIF
11199
11200 IF(KCQM(JT).EQ.0) THEN
11201 ELSEIF(KCQM(JT).NE.2) THEN
11202 ISID=4
11203 IF(KCQM(JT).EQ.-1) ISID=5
11204 IDAU=N-1
11205 IF(KCQ1(JT).EQ.0.OR.KCQ2(JT).EQ.2) IDAU=N
11206 K(ID,ISID)=K(ID,ISID)+IDAU
11207 K(IDAU,ISID)=MSTU(5)*ID
11208
11209 ELSEIF(KCQ1(JT).EQ.0.OR.KCQ2(JT).EQ.0) THEN
11210 IDAU=N-1
11211 IF(KCQ1(JT).EQ.0) IDAU=N
11212 K(ID,4)=K(ID,4)+IDAU
11213 K(ID,5)=K(ID,5)+IDAU
11214 K(IDAU,4)=MSTU(5)*ID
11215 K(IDAU,5)=MSTU(5)*ID
11216 ELSE
11217 ISID=4
11218 IF(KCQ1(JT).EQ.-1) ISID=5
11219 IF(KCQ1(JT).EQ.2) ISID=INT(4.5D0+PYR(0))
11220 K(ID,ISID)=K(ID,ISID)+(N-1)
11221 K(ID,9-ISID)=K(ID,9-ISID)+N
11222 K(N-1,ISID)=MSTU(5)*ID
11223 K(N,9-ISID)=MSTU(5)*ID
11224 ENDIF
11225 ENDIF
11226
11227
11228 MSTU(10)=MSTU10
11229 240 IF(MWID(KCA).NE.0.AND.(KFL1(JT).EQ.0.OR.KFL3(JT).NE.0))
11230 & NINH=NINH+1
11231 IF(IRES.GT.0.AND.MWID(KCA).NE.0.AND.KFL1(JT).EQ.0) THEN
11232 WRITE(CODE,'(I9)') K(ID,2)
11233 WRITE(MASS,'(F9.3)') P(ID,5)
11234 CALL PYERRM(3,'(PYRESD:) Failed to decay particle'//
11235 & CODE//' with mass'//MASS)
11236 MINT(51)=1
11237 RETURN
11238 ENDIF
11239 250 CONTINUE
11240
11241
11242 IF(JTMAX.EQ.1) THEN
11243 IF(KDCY(1).EQ.0) GOTO 620
11244 ELSEIF(JTMAX.EQ.2) THEN
11245 IF(KDCY(1).EQ.0.AND.KDCY(2).EQ.0) GOTO 620
11246 IF(KEQL(1).EQ.4.AND.KEQL(2).EQ.4) GOTO 160
11247 IF(KEQL(1).EQ.5.AND.KEQL(2).EQ.5) GOTO 160
11248 ELSEIF(JTMAX.EQ.3) THEN
11249 IF(KDCY(1).EQ.0.AND.KDCY(2).EQ.0.AND.KDCY(3).EQ.0) GOTO 620
11250 IF(KEQL(1).EQ.4.AND.KEQL(2).EQ.4) GOTO 160
11251 IF(KEQL(1).EQ.4.AND.KEQL(3).EQ.4) GOTO 160
11252 IF(KEQL(2).EQ.4.AND.KEQL(3).EQ.4) GOTO 160
11253 IF(KEQL(1).EQ.5.AND.KEQL(2).EQ.5) GOTO 160
11254 IF(KEQL(1).EQ.5.AND.KEQL(3).EQ.5) GOTO 160
11255 IF(KEQL(2).EQ.5.AND.KEQL(3).EQ.5) GOTO 160
11256 ENDIF
11257
11258
11259 IF(MSTP(48).EQ.1.AND.ISUB.EQ.1.AND.JTMAX.EQ.1.AND.
11260 &IABS(MINT(11)).EQ.11.AND.IABS(KFL1(1)).LE.5) THEN
11261
11262
11263 IF(MSTJ(109).EQ.2.AND.MSTJ(110).NE.1) THEN
11264 CALL PYERRM(6,
11265 & '(PYRESD:) MSTJ(109) value requires MSTJ(110) = 1')
11266 MSTJ(110)=1
11267 ENDIF
11268 IF(MSTJ(109).EQ.2.AND.MSTJ(111).NE.0) THEN
11269 CALL PYERRM(6,
11270 & '(PYRESD:) MSTJ(109) value requires MSTJ(111) = 0')
11271 MSTJ(111)=0
11272 ENDIF
11273
11274
11275 MST111=MSTU(111)
11276 PAR112=PARU(112)
11277 MSTU(111)=MSTJ(108)
11278 IF(MSTJ(108).EQ.2.AND.(MSTJ(101).EQ.0.OR.MSTJ(101).EQ.1))
11279 & MSTU(111)=1
11280 PARU(112)=PARJ(121)
11281 IF(MSTU(111).EQ.2) PARU(112)=PARJ(122)
11282
11283
11284 PARJ(171)=0D0
11285 IF((IABS(MSTJ(101)).EQ.1.AND.MSTJ(109).EQ.1).OR.
11286 & (MSTJ(101).EQ.5.AND.MSTJ(49).EQ.1)) THEN
11287 POLL=1D0-PARJ(131)*PARJ(132)
11288 SFF=1D0/(16D0*XW*XW1)
11289 SFW=P(ID,5)**4/((P(ID,5)**2-PARJ(123)**2)**2+
11290 & (PARJ(123)*PARJ(124))**2)
11291 SFI=SFW*(1D0-(PARJ(123)/P(ID,5))**2)
11292 VE=4D0*XW-1D0
11293 HF1I=SFI*SFF*(VE*POLL+PARJ(132)-PARJ(131))
11294 HF1W=SFW*SFF**2*((VE**2+1D0)*POLL+2D0*VE*
11295 & (PARJ(132)-PARJ(131)))
11296 KFLC=IABS(KFL1(1))
11297 PMQ=PYMASS(KFLC)
11298 QF=KCHG(KFLC,1)/3D0
11299 VQ=1D0
11300 IF(MOD(MSTJ(103),2).EQ.1) VQ=SQRT(MAX(0D0,
11301 & 1D0-(2D0*PMQ/P(ID,5))**2))
11302 VF=SIGN(1D0,QF)-4D0*QF*XW
11303 RFV=0.5D0*VQ*(3D0-VQ**2)*(QF**2*POLL-2D0*QF*VF*HF1I+
11304 & VF**2*HF1W)+VQ**3*HF1W
11305 IF(RFV.GT.0D0) PARJ(171)=MIN(1D0,VQ**3*HF1W/RFV)
11306 ENDIF
11307
11308
11309 CALL PYXJET(P(ID,5),NJET,CUT)
11310 KFLC=IABS(KFL1(1))
11311 KFLN=21
11312 IF(NJET.EQ.4) THEN
11313 CALL PYX4JT(NJET,CUT,KFLC,P(ID,5),KFLN,X1,X2,X4,X12,X14)
11314 ELSEIF(NJET.EQ.3) THEN
11315 CALL PYX3JT(NJET,CUT,KFLC,P(ID,5),X1,X3)
11316 ELSE
11317 MSTJ(120)=1
11318 ENDIF
11319
11320
11321 NC=N-2
11322 IF(NJET.EQ.2.AND.MSTJ(101).NE.5) THEN
11323 CALL PY2ENT(NC+1,KFLC,-KFLC,P(ID,5))
11324 ELSEIF(NJET.EQ.2) THEN
11325 CALL PY2ENT(-(NC+1),KFLC,-KFLC,P(ID,5))
11326 ELSEIF(NJET.EQ.3) THEN
11327 CALL PY3ENT(NC+1,KFLC,21,-KFLC,P(ID,5),X1,X3)
11328 ELSEIF(KFLN.EQ.21) THEN
11329 CALL PY4ENT(NC+1,KFLC,KFLN,KFLN,-KFLC,P(ID,5),X1,X2,X4,
11330 & X12,X14)
11331 ELSE
11332 CALL PY4ENT(NC+1,KFLC,-KFLN,KFLN,-KFLC,P(ID,5),X1,X2,X4,
11333 & X12,X14)
11334 ENDIF
11335 IF(MSTU(24).NE.0) THEN
11336 MINT(51)=1
11337 MSTU(111)=MST111
11338 PARU(112)=PAR112
11339 RETURN
11340 ENDIF
11341
11342
11343 IF(MSTJ(106).EQ.1) THEN
11344 CALL PYXDIF(NC,NJET,KFLC,P(ID,5),CHIZ,THEZ,PHIZ)
11345 IF(MINT(11).LT.0) THEZ=PARU(1)-THEZ
11346 CTHE(1)=COS(THEZ)
11347 CALL PYROBO(NC+1,N,0D0,CHIZ,0D0,0D0,0D0)
11348 CALL PYROBO(NC+1,N,THEZ,PHIZ,0D0,0D0,0D0)
11349 ENDIF
11350
11351
11352 CALL PYROBO(NC+1,N,0D0,0D0,P(ID,1)/P(ID,4),
11353 & P(ID,2)/P(ID,4),P(ID,3)/P(ID,4))
11354
11355
11356 K(ID,1)=K(ID,1)+10
11357 IDOC=MINT(83)+MINT(4)
11358 DO 270 I=NC+1,N
11359 I1=MINT(83)+MINT(4)+1
11360 K(I,3)=I1
11361 IF(MSTP(128).GE.1) K(I,3)=ID
11362 IF(MSTP(128).LE.1.AND.MINT(4).LT.MSTP(126)) THEN
11363 MINT(4)=MINT(4)+1
11364 K(I1,1)=21
11365 K(I1,2)=K(I,2)
11366 K(I1,3)=IREF(IP,4)
11367 DO 260 J=1,5
11368 P(I1,J)=P(I,J)
11369 260 CONTINUE
11370 ENDIF
11371 270 CONTINUE
11372
11373
11374 IF(MSTJ(101).EQ.5) CALL PYSHOW(N-1,N,P(ID,5))
11375
11376
11377 MSTU(111)=MST111
11378 PARU(112)=PAR112
11379 GOTO 610
11380 ENDIF
11381
11382
11383 IF(JTMAX.EQ.2.AND.ISUB.NE.0.AND.MSTP(47).GE.1.AND.
11384 &NINH.EQ.0) THEN
11385 ILIN(1)=MINT(84)+1
11386 IF(K(MINT(84)+1,2).GT.0) ILIN(1)=MINT(84)+2
11387 IF(K(ILIN(1),2).EQ.21.OR.K(ILIN(1),2).EQ.22)
11388 & ILIN(1)=2*MINT(84)+3-ILIN(1)
11389 ILIN(2)=2*MINT(84)+3-ILIN(1)
11390 IMIN=1
11391 IF(IREF(IP,7).EQ.25.OR.IREF(IP,7).EQ.35.OR.IREF(IP,7)
11392 & .EQ.36) IMIN=3
11393 IMAX=2
11394 IORD=1
11395 IF(K(IREF(IP,1),2).EQ.23) IORD=2
11396 IF(K(IREF(IP,1),2).EQ.24.AND.K(IREF(IP,2),2).EQ.-24) IORD=2
11397 IAKIPD=IABS(K(IREF(IP,IORD),2))
11398 IF(IAKIPD.EQ.25.OR.IAKIPD.EQ.35.OR.IAKIPD.EQ.36) IORD=3-IORD
11399 IF(KDCY(IORD).EQ.0) IORD=3-IORD
11400
11401
11402 DO 280 JT=IORD,3-IORD,3-2*IORD
11403 IF(KDCY(JT).EQ.0) THEN
11404 ILIN(IMAX+1)=NSD(JT)
11405 IMAX=IMAX+1
11406 ELSEIF(K(NSD(JT)+1,2).GT.0) THEN
11407 ILIN(IMAX+1)=N+2*JT-1
11408 ILIN(IMAX+2)=N+2*JT
11409 IMAX=IMAX+2
11410 K(N+2*JT-1,2)=K(NSD(JT)+1,2)
11411 K(N+2*JT,2)=K(NSD(JT)+2,2)
11412 ELSE
11413 ILIN(IMAX+1)=N+2*JT
11414 ILIN(IMAX+2)=N+2*JT-1
11415 IMAX=IMAX+2
11416 K(N+2*JT-1,2)=K(NSD(JT)+1,2)
11417 K(N+2*JT,2)=K(NSD(JT)+2,2)
11418 ENDIF
11419 280 CONTINUE
11420
11421
11422 DO 300 I=IMIN,IMAX
11423 DO 290 J=1,4
11424 COUP(I,J)=0D0
11425 290 CONTINUE
11426 KFA=IABS(K(ILIN(I),2))
11427 IF(KFA.EQ.0.OR.KFA.GT.20) GOTO 300
11428 COUP(I,1)=KCHG(KFA,1)/3D0
11429 COUP(I,2)=(-1)**MOD(KFA,2)
11430 COUP(I,4)=-2D0*COUP(I,1)*XWV
11431 COUP(I,3)=COUP(I,2)+COUP(I,4)
11432 300 CONTINUE
11433
11434
11435 IF(ISUB.EQ.22) THEN
11436 DO 330 I=3,5,2
11437 I1=IORD
11438 IF(I.EQ.5) I1=3-IORD
11439 DO 320 J1=1,2
11440 DO 310 J2=1,2
11441 CORL(I/2,J1,J2)=COUP(1,1)**2*HGZ(I1,1)*COUP(I,1)**2/
11442 & 16D0+COUP(1,1)*COUP(1,J1+2)*HGZ(I1,2)*COUP(I,1)*
11443 & COUP(I,J2+2)/4D0+COUP(1,J1+2)**2*HGZ(I1,3)*
11444 & COUP(I,J2+2)**2
11445 310 CONTINUE
11446 320 CONTINUE
11447 330 CONTINUE
11448 COWT12=(CORL(1,1,1)+CORL(1,1,2))*(CORL(2,1,1)+CORL(2,1,2))+
11449 & (CORL(1,2,1)+CORL(1,2,2))*(CORL(2,2,1)+CORL(2,2,2))
11450 COMX12=(CORL(1,1,1)+CORL(1,1,2)+CORL(1,2,1)+CORL(1,2,2))*
11451 & (CORL(2,1,1)+CORL(2,1,2)+CORL(2,2,1)+CORL(2,2,2))
11452 IF(COWT12.LT.PYR(0)*COMX12) GOTO 160
11453 ENDIF
11454 ENDIF
11455
11456
11457 MZPWP=0
11458 IF(ISUB.EQ.141) THEN
11459 IF(PYR(0).LT.PARU(130)) MZPWP=1
11460 IF(IP.EQ.2) THEN
11461 IF(IABS(K(IREF(2,1),2)).EQ.37) MZPWP=2
11462 IAKIR=IABS(K(IREF(2,2),2))
11463 IF(IAKIR.EQ.25.OR.IAKIR.EQ.35.OR.IAKIR.EQ.36) MZPWP=2
11464 IF(IAKIR.LE.20) MZPWP=2
11465 ENDIF
11466 IF(IP.GE.3) MZPWP=2
11467 ELSEIF(ISUB.EQ.142) THEN
11468 IF(PYR(0).LT.PARU(136)) MZPWP=1
11469 IF(IP.EQ.2) THEN
11470 IAKIR=IABS(K(IREF(2,2),2))
11471 IF(IAKIR.EQ.25.OR.IAKIR.EQ.35.OR.IAKIR.EQ.36) MZPWP=2
11472 IF(IAKIR.LE.20) MZPWP=2
11473 ENDIF
11474 IF(IP.GE.3) MZPWP=2
11475 ENDIF
11476
11477
11478 340 DO 350 JT=1,JTMAX
11479 IF(KDCY(JT).EQ.0) GOTO 350
11480 IF(JTMAX.EQ.1.AND.ISUB.NE.0) THEN
11481 CTHE(JT)=VINT(13)+(VINT(33)-VINT(13)+VINT(34)-VINT(14))*PYR(0)
11482 IF(CTHE(JT).GT.VINT(33)) CTHE(JT)=CTHE(JT)+VINT(14)-VINT(33)
11483 PHI(JT)=VINT(24)
11484 ELSE
11485 CTHE(JT)=2D0*PYR(0)-1D0
11486 PHI(JT)=PARU(2)*PYR(0)
11487 ENDIF
11488 350 CONTINUE
11489
11490 IF(JTMAX.EQ.2.AND.MSTP(47).GE.1.AND.NINH.EQ.0) THEN
11491
11492 DO 370 I=N+1,N+4
11493 K(I,1)=1
11494 DO 360 J=1,5
11495 P(I,J)=0D0
11496
11497 360 CONTINUE
11498 370 CONTINUE
11499 DO 380 JT=1,JTMAX
11500 IF(KDCY(JT).EQ.0) GOTO 380
11501 ID=IREF(IP,JT)
11502 P(N+2*JT-1,3)=0.5D0*P(ID,5)
11503 P(N+2*JT-1,4)=0.5D0*P(ID,5)
11504 P(N+2*JT,3)=-0.5D0*P(ID,5)
11505 P(N+2*JT,4)=0.5D0*P(ID,5)
11506 CALL PYROBO(N+2*JT-1,N+2*JT,ACOS(CTHE(JT)),PHI(JT),
11507 & P(ID,1)/P(ID,4),P(ID,2)/P(ID,4),P(ID,3)/P(ID,4))
11508 380 CONTINUE
11509
11510
11511
11512 IF(ISUB.NE.0) THEN
11513 DO 400 I=1,IMAX
11514 K(N+4+I,1)=1
11515 P(N+4+I,4)=SQRT(P(ILIN(I),1)**2+P(ILIN(I),2)**2+
11516 & P(ILIN(I),3)**2+P(ILIN(I),5)**2)
11517 P(N+4+I,5)=P(ILIN(I),5)
11518 DO 390 J=1,3
11519 P(N+4+I,J)=P(ILIN(I),J)
11520 390 CONTINUE
11521 400 CONTINUE
11522 410 THERR=ACOS(2D0*PYR(0)-1D0)
11523 PHIRR=PARU(2)*PYR(0)
11524 CALL PYROBO(N+5,N+4+IMAX,THERR,PHIRR,0D0,0D0,0D0)
11525 DO 430 I=1,IMAX
11526 IF(P(N+4+I,1)**2+P(N+4+I,2)**2.LT.1D-4*P(N+4+I,4)**2)
11527 & GOTO 410
11528 DO 420 J=1,4
11529 PK(I,J)=P(N+4+I,J)
11530 420 CONTINUE
11531 430 CONTINUE
11532 ENDIF
11533
11534
11535 IF(ISUB.EQ.22.OR.ISUB.EQ.23.OR.ISUB.EQ.25.OR.ISUB.EQ.141.OR.
11536 & ISUB.EQ.142) THEN
11537 DO 450 I1=IMIN,IMAX-1
11538 DO 440 I2=I1+1,IMAX
11539 HA(I1,I2)=SNGL(SQRT((PK(I1,4)-PK(I1,3))*(PK(I2,4)+
11540 & PK(I2,3))/(1D-20+PK(I1,1)**2+PK(I1,2)**2)))*
11541 & CMPLX(SNGL(PK(I1,1)),SNGL(PK(I1,2)))-
11542 & SNGL(SQRT((PK(I1,4)+PK(I1,3))*(PK(I2,4)-PK(I2,3))/
11543 & (1D-20+PK(I2,1)**2+PK(I2,2)**2)))*
11544 & CMPLX(SNGL(PK(I2,1)),SNGL(PK(I2,2)))
11545 HC(I1,I2)=CONJG(HA(I1,I2))
11546 IF(I1.LE.2) HA(I1,I2)=CMPLX(0.,1.)*HA(I1,I2)
11547 IF(I1.LE.2) HC(I1,I2)=CMPLX(0.,1.)*HC(I1,I2)
11548 HA(I2,I1)=-HA(I1,I2)
11549 HC(I2,I1)=-HC(I1,I2)
11550 440 CONTINUE
11551 450 CONTINUE
11552 ENDIF
11553
11554
11555 IF(ISUB.NE.0) THEN
11556 DO 470 I=1,2
11557 DO 460 J=1,4
11558 PK(I,J)=-PK(I,J)
11559 460 CONTINUE
11560 470 CONTINUE
11561 DO 490 I1=IMIN,IMAX-1
11562 DO 480 I2=I1+1,IMAX
11563 PKK(I1,I2)=2D0*(PK(I1,4)*PK(I2,4)-PK(I1,1)*PK(I2,1)-
11564 & PK(I1,2)*PK(I2,2)-PK(I1,3)*PK(I2,3))
11565 PKK(I2,I1)=PKK(I1,I2)
11566 480 CONTINUE
11567 490 CONTINUE
11568 ENDIF
11569 ENDIF
11570
11571 KFAGM=IABS(IREF(IP,7))
11572 IF(MSTP(47).LE.0.OR.NINH.NE.0) THEN
11573
11574 WT=1D0
11575 WTMAX=1D0
11576
11577 ELSEIF(JTMAX.EQ.3) THEN
11578
11579 WT=1D0
11580 WTMAX=1D0
11581
11582 ELSEIF(IT4.GE.1) THEN
11583
11584 WT=1D0
11585 WTMAX=1D0
11586
11587 ELSEIF(IREF(IP,7).EQ.25.OR.IREF(IP,7).EQ.35.OR.
11588 & IREF(IP,7).EQ.36) THEN
11589
11590 IF(IP.EQ.1) WTMAX=SH**2
11591 IF(IP.GE.2) WTMAX=P(IREF(IP,8),5)**4
11592 KFA=IABS(K(IREF(IP,1),2))
11593 IF(KFA.EQ.23) THEN
11594 KFLF1A=IABS(KFL1(1))
11595 EF1=KCHG(KFLF1A,1)/3D0
11596 AF1=SIGN(1D0,EF1+0.1D0)
11597 VF1=AF1-4D0*EF1*XWV
11598 KFLF2A=IABS(KFL1(2))
11599 EF2=KCHG(KFLF2A,1)/3D0
11600 AF2=SIGN(1D0,EF2+0.1D0)
11601 VF2=AF2-4D0*EF2*XWV
11602 VA12AS=4D0*VF1*AF1*VF2*AF2/((VF1**2+AF1**2)*(VF2**2+AF2**2))
11603 WT=8D0*(1D0+VA12AS)*PKK(3,5)*PKK(4,6)+
11604 & 8D0*(1D0-VA12AS)*PKK(3,6)*PKK(4,5)
11605 ELSEIF(KFA.EQ.24) THEN
11606 WT=16D0*PKK(3,5)*PKK(4,6)
11607 ELSE
11608 WT=WTMAX
11609 ENDIF
11610
11611 ELSEIF((KFAGM.EQ.6.OR.KFAGM.EQ.7.OR.KFAGM.EQ.8.OR.
11612 & KFAGM.EQ.17.OR.KFAGM.EQ.18).AND.IABS(K(IREF(IP,1),2)).EQ.24)
11613 & THEN
11614
11615 I1=IREF(IP,8)
11616 IF(MOD(KFAGM,2).EQ.0) THEN
11617 I2=N+1
11618 I3=N+2
11619 ELSE
11620 I2=N+2
11621 I3=N+1
11622 ENDIF
11623 I4=IREF(IP,2)
11624 WT=(P(I1,4)*P(I2,4)-P(I1,1)*P(I2,1)-P(I1,2)*P(I2,2)-
11625 & P(I1,3)*P(I2,3))*(P(I3,4)*P(I4,4)-P(I3,1)*P(I4,1)-
11626 & P(I3,2)*P(I4,2)-P(I3,3)*P(I4,3))
11627 WTMAX=(P(I1,5)**4-P(IREF(IP,1),5)**4)/8D0
11628
11629 ELSEIF(ISUB.EQ.1) THEN
11630
11631 EI=KCHG(IABS(MINT(15)),1)/3D0
11632 AI=SIGN(1D0,EI+0.1D0)
11633 VI=AI-4D0*EI*XWV
11634 EF=KCHG(IABS(KFL1(1)),1)/3D0
11635 AF=SIGN(1D0,EF+0.1D0)
11636 VF=AF-4D0*EF*XWV
11637 RMF=MIN(1D0,4D0*PMAS(IABS(KFL1(1)),1)**2/SH)
11638 WT1=EI**2*VINT(111)*EF**2+EI*VI*VINT(112)*EF*VF+
11639 & (VI**2+AI**2)*VINT(114)*(VF**2+(1D0-RMF)*AF**2)
11640 WT2=RMF*(EI**2*VINT(111)*EF**2+EI*VI*VINT(112)*EF*VF+
11641 & (VI**2+AI**2)*VINT(114)*VF**2)
11642 WT3=SQRT(1D0-RMF)*(EI*AI*VINT(112)*EF*AF+
11643 & 4D0*VI*AI*VINT(114)*VF*AF)
11644 WT=WT1*(1D0+CTHE(1)**2)+WT2*(1D0-CTHE(1)**2)+
11645 & 2D0*WT3*CTHE(1)*ISIGN(1,MINT(15)*KFL1(1))
11646 WTMAX=2D0*(WT1+ABS(WT3))
11647
11648 ELSEIF(ISUB.EQ.2) THEN
11649
11650 WT=(1D0+CTHE(1)*ISIGN(1,MINT(15)*KFL1(1)))**2
11651 WTMAX=4D0
11652
11653 ELSEIF(ISUB.EQ.15.OR.ISUB.EQ.19) THEN
11654
11655
11656 CLILF=COUP(1,1)**2*HGZ(JTZ,1)*COUP(3,1)**2/16D0+
11657 & COUP(1,1)*COUP(1,3)*HGZ(JTZ,2)*COUP(3,1)*COUP(3,3)/4D0+
11658 & COUP(1,3)**2*HGZ(JTZ,3)*COUP(3,3)**2
11659 CLIRF=COUP(1,1)**2*HGZ(JTZ,1)*COUP(3,1)**2/16D0+
11660 & COUP(1,1)*COUP(1,3)*HGZ(JTZ,2)*COUP(3,1)*COUP(3,4)/4D0+
11661 & COUP(1,3)**2*HGZ(JTZ,3)*COUP(3,4)**2
11662 CRILF=COUP(1,1)**2*HGZ(JTZ,1)*COUP(3,1)**2/16D0+
11663 & COUP(1,1)*COUP(1,4)*HGZ(JTZ,2)*COUP(3,1)*COUP(3,3)/4D0+
11664 & COUP(1,4)**2*HGZ(JTZ,3)*COUP(3,3)**2
11665 CRIRF=COUP(1,1)**2*HGZ(JTZ,1)*COUP(3,1)**2/16D0+
11666 & COUP(1,1)*COUP(1,4)*HGZ(JTZ,2)*COUP(3,1)*COUP(3,4)/4D0+
11667 & COUP(1,4)**2*HGZ(JTZ,3)*COUP(3,4)**2
11668 WT=(CLILF+CRIRF)*(PKK(1,3)**2+PKK(2,4)**2)+
11669 & (CLIRF+CRILF)*(PKK(1,4)**2+PKK(2,3)**2)
11670 WTMAX=(CLILF+CLIRF+CRILF+CRIRF)*
11671 & ((PKK(1,3)+PKK(1,4))**2+(PKK(2,3)+PKK(2,4))**2)
11672
11673 ELSEIF(ISUB.EQ.16.OR.ISUB.EQ.20) THEN
11674
11675
11676 WT=PKK(1,3)**2+PKK(2,4)**2
11677 WTMAX=(PKK(1,3)+PKK(1,4))**2+(PKK(2,3)+PKK(2,4))**2
11678
11679 ELSEIF(ISUB.EQ.22) THEN
11680
11681 S34=P(IREF(IP,IORD),5)**2
11682 S56=P(IREF(IP,3-IORD),5)**2
11683 TI=PKK(1,3)+PKK(1,4)+S34
11684 UI=PKK(1,5)+PKK(1,6)+S56
11685 TIR=REAL(TI)
11686 UIR=REAL(UI)
11687 FGK135=ABS(FGK(1,2,3,4,5,6)/TIR+FGK(1,2,5,6,3,4)/UIR)**2
11688 FGK145=ABS(FGK(1,2,4,3,5,6)/TIR+FGK(1,2,5,6,4,3)/UIR)**2
11689 FGK136=ABS(FGK(1,2,3,4,6,5)/TIR+FGK(1,2,6,5,3,4)/UIR)**2
11690 FGK146=ABS(FGK(1,2,4,3,6,5)/TIR+FGK(1,2,6,5,4,3)/UIR)**2
11691 FGK253=ABS(FGK(2,1,5,6,3,4)/TIR+FGK(2,1,3,4,5,6)/UIR)**2
11692 FGK263=ABS(FGK(2,1,6,5,3,4)/TIR+FGK(2,1,3,4,6,5)/UIR)**2
11693 FGK254=ABS(FGK(2,1,5,6,4,3)/TIR+FGK(2,1,4,3,5,6)/UIR)**2
11694 FGK264=ABS(FGK(2,1,6,5,4,3)/TIR+FGK(2,1,4,3,6,5)/UIR)**2
11695 WT=
11696 & CORL(1,1,1)*CORL(2,1,1)*FGK135+CORL(1,1,2)*CORL(2,1,1)*FGK145+
11697 & CORL(1,1,1)*CORL(2,1,2)*FGK136+CORL(1,1,2)*CORL(2,1,2)*FGK146+
11698 & CORL(1,2,1)*CORL(2,2,1)*FGK253+CORL(1,2,2)*CORL(2,2,1)*FGK263+
11699 & CORL(1,2,1)*CORL(2,2,2)*FGK254+CORL(1,2,2)*CORL(2,2,2)*FGK264
11700 WTMAX=16D0*((CORL(1,1,1)+CORL(1,1,2))*(CORL(2,1,1)+CORL(2,1,2))+
11701 & (CORL(1,2,1)+CORL(1,2,2))*(CORL(2,2,1)+CORL(2,2,2)))*S34*S56*
11702 & ((TI**2+UI**2+2D0*SH*(S34+S56))/(TI*UI)-S34*S56*(1D0/TI**2+
11703 & 1D0/UI**2))
11704
11705 ELSEIF(ISUB.EQ.23) THEN
11706
11707 D34=P(IREF(IP,IORD),5)**2
11708 D56=P(IREF(IP,3-IORD),5)**2
11709 DT=PKK(1,3)+PKK(1,4)+D34
11710 DU=PKK(1,5)+PKK(1,6)+D56
11711 FACBW=1D0/((SH-SQMW)**2+GMMW**2)
11712 CAWZ=COUP(2,3)/DT-2D0*XW1*COUP(1,2)*(SH-SQMW)*FACBW
11713 CBWZ=COUP(1,3)/DU+2D0*XW1*COUP(1,2)*(SH-SQMW)*FACBW
11714 FGK135=ABS(REAL(CAWZ)*FGK(1,2,3,4,5,6)+
11715 & REAL(CBWZ)*FGK(1,2,5,6,3,4))
11716 FGK136=ABS(REAL(CAWZ)*FGK(1,2,3,4,6,5)+
11717 & REAL(CBWZ)*FGK(1,2,6,5,3,4))
11718 WT=(COUP(5,3)*FGK135)**2+(COUP(5,4)*FGK136)**2
11719 WTMAX=4D0*D34*D56*(COUP(5,3)**2+COUP(5,4)**2)*(CAWZ**2*
11720 & DIGK(DT,DU)+CBWZ**2*DIGK(DU,DT)+CAWZ*CBWZ*DJGK(DT,DU))
11721
11722 ELSEIF(ISUB.EQ.24.OR.ISUB.EQ.171.OR.ISUB.EQ.176) THEN
11723
11724
11725 WT=((COUP(1,3)*COUP(3,3))**2+(COUP(1,4)*COUP(3,4))**2)*
11726 & PKK(1,3)*PKK(2,4)+((COUP(1,3)*COUP(3,4))**2+(COUP(1,4)*
11727 & COUP(3,3))**2)*PKK(1,4)*PKK(2,3)
11728 WTMAX=(COUP(1,3)**2+COUP(1,4)**2)*(COUP(3,3)**2+COUP(3,4)**2)*
11729 & (PKK(1,3)+PKK(1,4))*(PKK(2,3)+PKK(2,4))
11730
11731 ELSEIF(ISUB.EQ.25) THEN
11732
11733 D34=P(IREF(IP,IORD),5)**2
11734 D56=P(IREF(IP,3-IORD),5)**2
11735 DT=PKK(1,3)+PKK(1,4)+D34
11736 DU=PKK(1,5)+PKK(1,6)+D56
11737 FACBW=1D0/((SH-SQMZ)**2+SQMZ*PMAS(23,2)**2)
11738 CDWW=(COUP(1,3)*SQMZ*(SH-SQMZ)*FACBW+COUP(1,2))/SH
11739 CAWW=CDWW+0.5D0*(COUP(1,2)+1D0)/DT
11740 CBWW=CDWW+0.5D0*(COUP(1,2)-1D0)/DU
11741 CCWW=COUP(1,4)*SQMZ*(SH-SQMZ)*FACBW/SH
11742 FGK135=ABS(REAL(CAWW)*FGK(1,2,3,4,5,6)-
11743 & REAL(CBWW)*FGK(1,2,5,6,3,4))
11744 FGK253=ABS(FGK(2,1,5,6,3,4)-FGK(2,1,3,4,5,6))
11745 WT=FGK135**2+(CCWW*FGK253)**2
11746 WTMAX=4D0*D34*D56*(CAWW**2*DIGK(DT,DU)+CBWW**2*DIGK(DU,DT)-CAWW*
11747 & CBWW*DJGK(DT,DU)+CCWW**2*(DIGK(DT,DU)+DIGK(DU,DT)-DJGK(DT,DU)))
11748
11749 ELSEIF(ISUB.EQ.26.OR.ISUB.EQ.172.OR.ISUB.EQ.177) THEN
11750
11751
11752 WT=PKK(1,3)*PKK(2,4)
11753 WTMAX=(PKK(1,3)+PKK(1,4))*(PKK(2,3)+PKK(2,4))
11754
11755 ELSEIF(ISUB.EQ.30.OR.ISUB.EQ.35) THEN
11756
11757
11758 CLILF=COUP(1,1)**2*HGZ(JTZ,1)*COUP(3,1)**2/16D0+
11759 & COUP(1,1)*COUP(1,3)*HGZ(JTZ,2)*COUP(3,1)*COUP(3,3)/4D0+
11760 & COUP(1,3)**2*HGZ(JTZ,3)*COUP(3,3)**2
11761 CLIRF=COUP(1,1)**2*HGZ(JTZ,1)*COUP(3,1)**2/16D0+
11762 & COUP(1,1)*COUP(1,3)*HGZ(JTZ,2)*COUP(3,1)*COUP(3,4)/4D0+
11763 & COUP(1,3)**2*HGZ(JTZ,3)*COUP(3,4)**2
11764 CRILF=COUP(1,1)**2*HGZ(JTZ,1)*COUP(3,1)**2/16D0+
11765 & COUP(1,1)*COUP(1,4)*HGZ(JTZ,2)*COUP(3,1)*COUP(3,3)/4D0+
11766 & COUP(1,4)**2*HGZ(JTZ,3)*COUP(3,3)**2
11767 CRIRF=COUP(1,1)**2*HGZ(JTZ,1)*COUP(3,1)**2/16D0+
11768 & COUP(1,1)*COUP(1,4)*HGZ(JTZ,2)*COUP(3,1)*COUP(3,4)/4D0+
11769 & COUP(1,4)**2*HGZ(JTZ,3)*COUP(3,4)**2
11770 IF(K(ILIN(1),2).GT.0) WT=(CLILF+CRIRF)*(PKK(1,4)**2+
11771 & PKK(3,5)**2)+(CLIRF+CRILF)*(PKK(1,3)**2+PKK(4,5)**2)
11772 IF(K(ILIN(1),2).LT.0) WT=(CLILF+CRIRF)*(PKK(1,3)**2+
11773 & PKK(4,5)**2)+(CLIRF+CRILF)*(PKK(1,4)**2+PKK(3,5)**2)
11774 WTMAX=(CLILF+CLIRF+CRILF+CRIRF)*
11775 & ((PKK(1,3)+PKK(1,4))**2+(PKK(3,5)+PKK(4,5))**2)
11776
11777 ELSEIF(ISUB.EQ.31.OR.ISUB.EQ.36) THEN
11778
11779 IF(K(ILIN(1),2).GT.0) WT=PKK(1,4)**2+PKK(3,5)**2
11780 IF(K(ILIN(1),2).LT.0) WT=PKK(1,3)**2+PKK(4,5)**2
11781 WTMAX=(PKK(1,3)+PKK(1,4))**2+(PKK(3,5)+PKK(4,5))**2
11782
11783 ELSEIF(ISUB.EQ.71.OR.ISUB.EQ.72.OR.ISUB.EQ.73.OR.ISUB.EQ.76.OR.
11784 & ISUB.EQ.77) THEN
11785
11786 WT=16D0*PKK(3,5)*PKK(4,6)
11787 WTMAX=SH**2
11788
11789 ELSEIF(ISUB.EQ.110) THEN
11790
11791 WT=1D0
11792 WTMAX=1D0
11793
11794 ELSEIF(ISUB.EQ.141) THEN
11795 IF(IP.EQ.1.AND.IABS(KFL1(1)).LT.20) THEN
11796
11797
11798 KFAI=IABS(MINT(15))
11799 EI=KCHG(KFAI,1)/3D0
11800 AI=SIGN(1D0,EI+0.1D0)
11801 VI=AI-4D0*EI*XWV
11802 KFAIC=1
11803 IF(KFAI.LE.10.AND.MOD(KFAI,2).EQ.0) KFAIC=2
11804 IF(KFAI.GT.10.AND.MOD(KFAI,2).NE.0) KFAIC=3
11805 IF(KFAI.GT.10.AND.MOD(KFAI,2).EQ.0) KFAIC=4
11806 IF(KFAI.LE.2.OR.KFAI.EQ.11.OR.KFAI.EQ.12) THEN
11807 VPI=PARU(119+2*KFAIC)
11808 API=PARU(120+2*KFAIC)
11809 ELSEIF(KFAI.LE.4.OR.KFAI.EQ.13.OR.KFAI.EQ.14) THEN
11810 VPI=PARJ(178+2*KFAIC)
11811 API=PARJ(179+2*KFAIC)
11812 ELSE
11813 VPI=PARJ(186+2*KFAIC)
11814 API=PARJ(187+2*KFAIC)
11815 ENDIF
11816
11817 KFAF=IABS(KFL1(1))
11818 EF=KCHG(KFAF,1)/3D0
11819 AF=SIGN(1D0,EF+0.1D0)
11820 VF=AF-4D0*EF*XWV
11821 KFAFC=1
11822 IF(KFAF.LE.10.AND.MOD(KFAF,2).EQ.0) KFAFC=2
11823 IF(KFAF.GT.10.AND.MOD(KFAF,2).NE.0) KFAFC=3
11824 IF(KFAF.GT.10.AND.MOD(KFAF,2).EQ.0) KFAFC=4
11825 IF(KFAF.LE.2.OR.KFAF.EQ.11.OR.KFAF.EQ.12) THEN
11826 VPF=PARU(119+2*KFAFC)
11827 APF=PARU(120+2*KFAFC)
11828 ELSEIF(KFAF.LE.4.OR.KFAF.EQ.13.OR.KFAF.EQ.14) THEN
11829 VPF=PARJ(178+2*KFAFC)
11830 APF=PARJ(179+2*KFAFC)
11831 ELSE
11832 VPF=PARJ(186+2*KFAFC)
11833 APF=PARJ(187+2*KFAFC)
11834 ENDIF
11835
11836 ASYM=2D0*(EI*AI*VINT(112)*EF*AF+EI*API*VINT(113)*EF*APF+
11837 & 4D0*VI*AI*VINT(114)*VF*AF+(VI*API+VPI*AI)*VINT(115)*
11838 & (VF*APF+VPF*AF)+4D0*VPI*API*VINT(116)*VPF*APF)/
11839 & (EI**2*VINT(111)*EF**2+EI*VI*VINT(112)*EF*VF+
11840 & EI*VPI*VINT(113)*EF*VPF+(VI**2+AI**2)*VINT(114)*
11841 & (VF**2+AF**2)+(VI*VPI+AI*API)*VINT(115)*(VF*VPF+AF*APF)+
11842 & (VPI**2+API**2)*VINT(116)*(VPF**2+APF**2))
11843 WT=1D0+ASYM*CTHE(1)*ISIGN(1,MINT(15)*KFL1(1))+CTHE(1)**2
11844 WTMAX=2D0+ABS(ASYM)
11845 ELSEIF(IP.EQ.1.AND.IABS(KFL1(1)).EQ.24) THEN
11846
11847 RM1=P(NSD(1)+1,5)**2/SH
11848 RM2=P(NSD(1)+2,5)**2/SH
11849 CCOS2=-(1D0/16D0)*((1D0-RM1-RM2)**2-4D0*RM1*RM2)*
11850 & (1D0-2D0*RM1-2D0*RM2+RM1**2+RM2**2+10D0*RM1*RM2)
11851 CFLAT=-CCOS2+0.5D0*(RM1+RM2)*(1D0-2D0*RM1-2D0*RM2+
11852 & (RM2-RM1)**2)
11853 WT=CFLAT+CCOS2*CTHE(1)**2
11854 WTMAX=CFLAT+MAX(0D0,CCOS2)
11855 ELSEIF(IP.EQ.1.AND.(KFL1(1).EQ.25.OR.KFL1(1).EQ.35.OR.
11856 & IABS(KFL1(1)).EQ.37)) THEN
11857
11858 WT=1D0-CTHE(1)**2
11859 WTMAX=1D0
11860 ELSEIF(IP.EQ.1.AND.KFL2(1).EQ.25) THEN
11861
11862 RM1=P(NSD(1)+1,5)**2/SH
11863 RM2=P(NSD(1)+2,5)**2/SH
11864 FLAM2=MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2)
11865 WT=1D0+FLAM2*(1D0-CTHE(1)**2)/(8D0*RM1)
11866 WTMAX=1D0+FLAM2/(8D0*RM1)
11867 ELSEIF(MZPWP.EQ.0) THEN
11868
11869
11870 D34=P(IREF(IP,IORD),5)**2
11871 D56=P(IREF(IP,3-IORD),5)**2
11872 DT=PKK(1,3)+PKK(1,4)+D34
11873 DU=PKK(1,5)+PKK(1,6)+D56
11874 FGK135=ABS(FGK(1,2,3,4,5,6)-FGK(1,2,5,6,3,4))
11875 FGK253=ABS(FGK(2,1,5,6,3,4)-FGK(2,1,3,4,5,6))
11876 WT=(COUP(1,3)*FGK135)**2+(COUP(1,4)*FGK253)**2
11877 WTMAX=4D0*D34*D56*(COUP(1,3)**2+COUP(1,4)**2)*
11878 & (DIGK(DT,DU)+DIGK(DU,DT)-DJGK(DT,DU))
11879 ELSEIF(MZPWP.EQ.1) THEN
11880
11881
11882 WT=16D0*PKK(3,5)*PKK(4,6)
11883 WTMAX=SH**2
11884 ELSE
11885
11886
11887 WT=1D0
11888 WTMAX=1D0
11889 ENDIF
11890
11891 ELSEIF(ISUB.EQ.142) THEN
11892 IF(IP.EQ.1.AND.IABS(KFL1(1)).LT.20) THEN
11893
11894 KFAI=IABS(MINT(15))
11895 KFAIC=1
11896 IF(KFAI.GT.10) KFAIC=2
11897 VI=PARU(129+2*KFAIC)
11898 AI=PARU(130+2*KFAIC)
11899 KFAF=IABS(KFL1(1))
11900 KFAFC=1
11901 IF(KFAF.GT.10) KFAFC=2
11902 VF=PARU(129+2*KFAFC)
11903 AF=PARU(130+2*KFAFC)
11904 ASYM=8D0*VI*AI*VF*AF/((VI**2+AI**2)*(VF**2+AF**2))
11905 WT=1D0+ASYM*CTHE(1)*ISIGN(1,MINT(15)*KFL1(1))+CTHE(1)**2
11906 WTMAX=2D0+ABS(ASYM)
11907 ELSEIF(IP.EQ.1.AND.IABS(KFL2(1)).EQ.23) THEN
11908
11909 RM1=P(NSD(1)+1,5)**2/SH
11910 RM2=P(NSD(1)+2,5)**2/SH
11911 CCOS2=-(1D0/16D0)*((1D0-RM1-RM2)**2-4D0*RM1*RM2)*
11912 & (1D0-2D0*RM1-2D0*RM2+RM1**2+RM2**2+10D0*RM1*RM2)
11913 CFLAT=-CCOS2+0.5D0*(RM1+RM2)*(1D0-2D0*RM1-2D0*RM2+
11914 & (RM2-RM1)**2)
11915 WT=CFLAT+CCOS2*CTHE(1)**2
11916 WTMAX=CFLAT+MAX(0D0,CCOS2)
11917 ELSEIF(IP.EQ.1.AND.KFL2(1).EQ.25) THEN
11918
11919 RM1=P(NSD(1)+1,5)**2/SH
11920 RM2=P(NSD(1)+2,5)**2/SH
11921 FLAM2=MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2)
11922 WT=1D0+FLAM2*(1D0-CTHE(1)**2)/(8D0*RM1)
11923 WTMAX=1D0+FLAM2/(8D0*RM1)
11924 ELSEIF(MZPWP.EQ.0) THEN
11925
11926
11927 D34=P(IREF(IP,IORD),5)**2
11928 D56=P(IREF(IP,3-IORD),5)**2
11929 DT=PKK(1,3)+PKK(1,4)+D34
11930 DU=PKK(1,5)+PKK(1,6)+D56
11931 FGK135=ABS(FGK(1,2,3,4,5,6)-FGK(1,2,5,6,3,4))
11932 FGK136=ABS(FGK(1,2,3,4,6,5)-FGK(1,2,6,5,3,4))
11933 WT=(COUP(5,3)*FGK135)**2+(COUP(5,4)*FGK136)**2
11934 WTMAX=4D0*D34*D56*(COUP(5,3)**2+COUP(5,4)**2)*
11935 & (DIGK(DT,DU)+DIGK(DU,DT)-DJGK(DT,DU))
11936 ELSEIF(MZPWP.EQ.1) THEN
11937
11938
11939 WT=16D0*PKK(3,5)*PKK(4,6)
11940 WTMAX=SH**2
11941 ELSE
11942
11943
11944 WT=1D0
11945 WTMAX=1D0
11946 ENDIF
11947
11948 ELSEIF(ISUB.EQ.145.OR.ISUB.EQ.162.OR.ISUB.EQ.163.OR.ISUB.EQ.164)
11949 & THEN
11950
11951 WT=1D0
11952 WTMAX=1D0
11953
11954 ELSEIF(ISUB.GE.146.AND.ISUB.LE.148) THEN
11955
11956 SIDE=1D0
11957 IF(MINT(16).EQ.21.OR.MINT(16).EQ.22) SIDE=-1D0
11958 IF(IP.EQ.1.AND.(KFL1(1).EQ.21.OR.KFL1(1).EQ.22)) THEN
11959 WT=1D0+SIDE*CTHE(1)
11960 WTMAX=2D0
11961 ELSEIF(IP.EQ.1) THEN
11962 RM1=P(NSD(1)+1,5)**2/SH
11963 WT=1D0+SIDE*CTHE(1)*(1D0-0.5D0*RM1)/(1D0+0.5D0*RM1)
11964 WTMAX=1D0+(1D0-0.5D0*RM1)/(1D0+0.5D0*RM1)
11965 ELSE
11966
11967 WT=1D0
11968 WTMAX=1D0
11969 ENDIF
11970
11971 ELSEIF(ISUB.EQ.149) THEN
11972
11973 WT=1D0
11974 WTMAX=1D0
11975
11976 ELSEIF(ISUB.EQ.191) THEN
11977 IF(IP.EQ.1.AND.IABS(KFL1(1)).GT.21) THEN
11978
11979
11980 WT=1D0-CTHE(1)**2
11981 WTMAX=1D0
11982 ELSEIF(IP.EQ.1) THEN
11983
11984 CTHESG=CTHE(1)*ISIGN(1,MINT(15))
11985 XWRHT=(1D0-2D0*XW)/(4D0*XW*(1D0-XW))
11986 BWZR=XWRHT*SH*(SH-SQMZ)/((SH-SQMZ)**2+GMMZ**2)
11987 BWZI=XWRHT*SH*GMMZ/((SH-SQMZ)**2+GMMZ**2)
11988 KFAI=IABS(MINT(15))
11989 EI=KCHG(KFAI,1)/3D0
11990 AI=SIGN(1D0,EI+0.1D0)
11991 VI=AI-4D0*EI*XWV
11992 VALI=0.5D0*(VI+AI)
11993 VARI=0.5D0*(VI-AI)
11994 ALEFTI=(EI+VALI*BWZR)**2+(VALI*BWZI)**2
11995 ARIGHI=(EI+VARI*BWZR)**2+(VARI*BWZI)**2
11996 KFAF=IABS(KFL1(1))
11997 EF=KCHG(KFAF,1)/3D0
11998 AF=SIGN(1D0,EF+0.1D0)
11999 VF=AF-4D0*EF*XWV
12000 VALF=0.5D0*(VF+AF)
12001 VARF=0.5D0*(VF-AF)
12002 ALEFTF=(EF+VALF*BWZR)**2+(VALF*BWZI)**2
12003 ARIGHF=(EF+VARF*BWZR)**2+(VARF*BWZI)**2
12004 ASAME=ALEFTI*ALEFTF+ARIGHI*ARIGHF
12005 AFLIP=ALEFTI*ARIGHF+ARIGHI*ALEFTF
12006 WT=ASAME*(1D0+CTHESG)**2+AFLIP*(1D0-CTHESG)**2
12007 WTMAX=4D0*MAX(ASAME,AFLIP)
12008 ELSE
12009
12010 WT=1D0
12011 WTMAX=1D0
12012 ENDIF
12013
12014 ELSEIF(ISUB.EQ.192) THEN
12015 IF(IP.EQ.1.AND.IABS(KFL1(1)).GT.21) THEN
12016
12017
12018 WT=1D0-CTHE(1)**2
12019 WTMAX=1D0
12020 ELSEIF(IP.EQ.1) THEN
12021
12022 CTHESG=CTHE(1)*ISIGN(1,MINT(15))
12023 WT=(1D0+CTHESG)**2
12024 WTMAX=4D0
12025 ELSE
12026
12027 WT=1D0
12028 WTMAX=1D0
12029 ENDIF
12030
12031 ELSEIF(ISUB.EQ.193) THEN
12032 IF(IP.EQ.1.AND.IABS(KFL1(1)).GT.21) THEN
12033
12034
12035 WT=1D0+CTHE(1)**2
12036 WTMAX=2D0
12037 ELSEIF(IP.EQ.1) THEN
12038
12039 CTHESG=CTHE(1)*ISIGN(1,MINT(15))
12040 BWZR=(0.5D0/(1D0-XW))*SH*(SH-SQMZ)/((SH-SQMZ)**2+GMMZ**2)
12041 BWZI=(0.5D0/(1D0-XW))*SH*GMMZ/((SH-SQMZ)**2+GMMZ**2)
12042 KFAI=IABS(MINT(15))
12043 EI=KCHG(KFAI,1)/3D0
12044 AI=SIGN(1D0,EI+0.1D0)
12045 VI=AI-4D0*EI*XWV
12046 VALI=0.5D0*(VI+AI)
12047 VARI=0.5D0*(VI-AI)
12048 BLEFTI=(EI-VALI*BWZR)**2+(VALI*BWZI)**2
12049 BRIGHI=(EI-VARI*BWZR)**2+(VARI*BWZI)**2
12050 KFAF=IABS(KFL1(1))
12051 EF=KCHG(KFAF,1)/3D0
12052 AF=SIGN(1D0,EF+0.1D0)
12053 VF=AF-4D0*EF*XWV
12054 VALF=0.5D0*(VF+AF)
12055 VARF=0.5D0*(VF-AF)
12056 BLEFTF=(EF-VALF*BWZR)**2+(VALF*BWZI)**2
12057 BRIGHF=(EF-VARF*BWZR)**2+(VARF*BWZI)**2
12058 BSAME=BLEFTI*BLEFTF+BRIGHI*BRIGHF
12059 BFLIP=BLEFTI*BRIGHF+BRIGHI*BLEFTF
12060 WT=BSAME*(1D0+CTHESG)**2+BFLIP*(1D0-CTHESG)**2
12061 WTMAX=4D0*MAX(BSAME,BFLIP)
12062 ELSE
12063
12064 WT=1D0
12065 WTMAX=1D0
12066 ENDIF
12067
12068
12069 ELSE
12070 WT=1D0
12071 WTMAX=1D0
12072 ENDIF
12073 IF(WT.LT.PYR(0)*WTMAX) GOTO 340
12074
12075
12076 500 DO 600 JT=1,JTMAX
12077 IF(KDCY(JT).EQ.0) GOTO 600
12078 ID=IREF(IP,JT)
12079 DO 510 J=1,5
12080 DPMO(J)=P(ID,J)
12081 510 CONTINUE
12082 DPMO(4)=SQRT(DPMO(1)**2+DPMO(2)**2+DPMO(3)**2+DPMO(5)**2)
12083
12084 IF(KFL3(JT).EQ.0) THEN
12085 CALL PYROBO(NSD(JT)+1,NSD(JT)+2,ACOS(CTHE(JT)),PHI(JT),
12086 & DPMO(1)/DPMO(4),DPMO(2)/DPMO(4),DPMO(3)/DPMO(4))
12087 N0=NSD(JT)+2
12088 ELSE
12089 CALL PYROBO(NSD(JT)+1,NSD(JT)+3,ACOS(CTHE(JT)),PHI(JT),
12090 & DPMO(1)/DPMO(4),DPMO(2)/DPMO(4),DPMO(3)/DPMO(4))
12091 N0=NSD(JT)+3
12092 ENDIF
12093
12094 DO 520 J=1,4
12095 VDCY(J)=V(ID,J)+V(ID,5)*P(ID,J)/P(ID,5)
12096 520 CONTINUE
12097
12098 DO 540 I=NSD(JT)+1,N0
12099 DO 530 J=1,4
12100 V(I,J)=VDCY(J)
12101 530 CONTINUE
12102 V(I,5)=0D0
12103 540 CONTINUE
12104
12105
12106
12107 K(ID,1)=K(ID,1)+10
12108 KFA=IABS(K(ID,2))
12109 KCA=PYCOMP(KFA)
12110 IF(KCQM(JT).NE.0) THEN
12111
12112 ELSE
12113 K(ID,4)=NSD(JT)+1
12114 K(ID,5)=NSD(JT)+2
12115 IF(KFL3(JT).NE.0) K(ID,5)=NSD(JT)+3
12116 ENDIF
12117
12118
12119 IF(ISUB.NE.0) THEN
12120 IDOC=MINT(83)+MINT(4)
12121
12122 IHI=NSD(JT)+2
12123 IF(KFL3(JT).NE.0) IHI=IHI+1
12124 DO 560 I=NSD(JT)+1,IHI
12125
12126 I1=MINT(83)+MINT(4)+1
12127 K(I,3)=I1
12128 IF(MSTP(128).GE.1) K(I,3)=ID
12129 IF(MSTP(128).LE.1.AND.MINT(4).LT.MSTP(126)) THEN
12130 MINT(4)=MINT(4)+1
12131 K(I1,1)=21
12132 K(I1,2)=K(I,2)
12133 K(I1,3)=IREF(IP,JT+3)
12134 DO 550 J=1,5
12135 P(I1,J)=P(I,J)
12136 550 CONTINUE
12137 ENDIF
12138 560 CONTINUE
12139 ELSE
12140 K(NSD(JT)+1,3)=ID
12141 K(NSD(JT)+2,3)=ID
12142 IF(KFL3(JT).NE.0) K(NSD(JT)+3,3)=ID
12143 ENDIF
12144
12145
12146 NSHBEF=N
12147 IF(MSTP(71).GE.1) THEN
12148 ISHOW1=0
12149 KFL1A=IABS(KFL1(JT))
12150 IF(KFL1A.LE.22) ISHOW1=1
12151 ISHOW2=0
12152 KFL2A=IABS(KFL2(JT))
12153 IF(KFL2A.LE.22) ISHOW2=1
12154 ISHOW3=0
12155 IF(KFL3(JT).NE.0) THEN
12156 KFL3A=IABS(KFL3(JT))
12157 IF(KFL3A.LE.22) ISHOW3=1
12158 ENDIF
12159 IF(ISHOW1.EQ.0.AND.ISHOW2.EQ.0.AND.ISHOW3.EQ.0) THEN
12160 ELSEIF(KFL3(JT).EQ.0) THEN
12161 CALL PYSHOW(NSD(JT)+1,NSD(JT)+2,P(ID,5))
12162 ELSE
12163 NSD1=NSD(JT)+1
12164 NSD2=NSD(JT)+2
12165 IF(ISHOW1.EQ.0.AND.ISHOW3.NE.0) THEN
12166 NSD1=NSD(JT)+3
12167 ELSEIF(ISHOW2.EQ.0.AND.ISHOW3.NE.0) THEN
12168 NSD2=NSD(JT)+3
12169 ENDIF
12170 PMSHOW=SQRT(MAX(0D0,(P(NSD1,4)+P(NSD2,4))**2-
12171 & (P(NSD1,1)+P(NSD2,1))**2-(P(NSD1,2)+P(NSD2,2))**2-
12172 & (P(NSD1,3)+P(NSD2,3))**2))
12173 CALL PYSHOW(NSD1,NSD2,PMSHOW)
12174 ENDIF
12175 ENDIF
12176 NSHAFT=N
12177 IF(JT.EQ.1) NAFT1=N
12178
12179
12180 NSD1=NSD(JT)+1
12181 NSD2=NSD(JT)+2
12182 NSD3=NSD(JT)+3
12183 IF(NSHAFT.GT.NSHBEF) THEN
12184 IF(K(NSD1,1).GT.10) THEN
12185 DO 570 I=NSHBEF+1,NSHAFT
12186 IF(K(I,1).LT.10.AND.K(I,2).EQ.K(NSD1,2)) NSD1=I
12187 570 CONTINUE
12188 ENDIF
12189 IF(K(NSD2,1).GT.10) THEN
12190 DO 580 I=NSHBEF+1,NSHAFT
12191 IF(K(I,1).LT.10.AND.K(I,2).EQ.K(NSD2,2).AND.
12192 & I.NE.NSD1) NSD2=I
12193 580 CONTINUE
12194 ENDIF
12195 IF(KFL3(JT).NE.0.AND.K(NSD3,1).GT.10) THEN
12196 DO 590 I=NSHBEF+1,NSHAFT
12197 IF(K(I,1).LT.10.AND.K(I,2).EQ.K(NSD3,2).AND.
12198 & I.NE.NSD1.AND.I.NE.NSD2) NSD3=I
12199 590 CONTINUE
12200 ENDIF
12201 ENDIF
12202
12203
12204 NP=NP+1
12205 IREF(NP,1)=NSD1
12206 IREF(NP,2)=NSD2
12207 IREF(NP,3)=0
12208 IF(KFL3(JT).NE.0) IREF(NP,3)=NSD3
12209 IREF(NP,4)=IDOC+1
12210 IREF(NP,5)=IDOC+2
12211 IREF(NP,6)=0
12212 IF(KFL3(JT).NE.0) IREF(NP,6)=IDOC+3
12213 IREF(NP,7)=K(IREF(IP,JT),2)
12214 IREF(NP,8)=IREF(IP,JT)
12215 600 CONTINUE
12216
12217
12218 610 IF(JTMAX.EQ.1.AND.KDCY(1).NE.0.AND.ISUB.NE.0) THEN
12219 MINT(7)=MINT(83)+6+2*ISET(ISUB)
12220 MINT(8)=MINT(83)+7+2*ISET(ISUB)
12221 MINT(25)=KFL1(1)
12222 MINT(26)=KFL2(1)
12223 VINT(23)=CTHE(1)
12224 RM3=P(N-1,5)**2/SH
12225 RM4=P(N,5)**2/SH
12226 BE34=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4))
12227 VINT(45)=-0.5D0*SH*(1D0-RM3-RM4-BE34*CTHE(1))
12228 VINT(46)=-0.5D0*SH*(1D0-RM3-RM4+BE34*CTHE(1))
12229 VINT(48)=0.25D0*SH*BE34**2*MAX(0D0,1D0-CTHE(1)**2)
12230 VINT(47)=SQRT(VINT(48))
12231 ENDIF
12232
12233
12234 IF((ISUB.EQ.25.OR.ISUB.EQ.22).AND.MSTP(115).GE.1) THEN
12235 IAKF1=IABS(KFL1(1))
12236 IAKF2=IABS(KFL1(2))
12237 IAKF3=IABS(KFL2(1))
12238 IAKF4=IABS(KFL2(2))
12239 IF(MIN(IAKF1,IAKF2,IAKF3,IAKF4).GE.1.AND.
12240 & MAX(IAKF1,IAKF2,IAKF3,IAKF4).LE.5) CALL
12241 & PYRECO(IREF(1,1),IREF(1,2),NSD(1),NAFT1)
12242 ENDIF
12243
12244
12245 620 IF(IP.LT.NP) GOTO 150
12246
12247 RETURN
12248 END
12249
12250
12251
12252
12253
12254
12255
12256
12257 SUBROUTINE PYMULT(MMUL)
12258
12259
12260 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
12261 IMPLICIT INTEGER(I-N)
12262 INTEGER PYK,PYCHGE,PYCOMP
12263
12264 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
12265 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
12266 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
12267 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
12268 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
12269 COMMON/PYINT1/MINT(400),VINT(400)
12270 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
12271 COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
12272 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
12273 COMMON/PYINT7/SIGT(0:6,0:6,0:5)
12274 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYSUBS/,/PYPARS/,/PYINT1/,
12275 &/PYINT2/,/PYINT3/,/PYINT5/,/PYINT7/
12276
12277 DIMENSION NMUL(20),SIGM(20),KSTR(500,2),VINTSV(80)
12278 SAVE XT2,XT2FAC,XC2,XTS,IRBIN,RBIN,NMUL,SIGM
12279
12280
12281 IF(MMUL.EQ.1) THEN
12282 IF(MSTP(122).GE.1) WRITE(MSTU(11),5000) MSTP(82)
12283 ISUB=96
12284 MINT(1)=96
12285 VINT(63)=0D0
12286 VINT(64)=0D0
12287 VINT(143)=1D0
12288 VINT(144)=1D0
12289
12290
12291 100 SIGSUM=0D0
12292 DO 120 IXT2=1,20
12293 NMUL(IXT2)=MSTP(83)
12294 SIGM(IXT2)=0D0
12295 DO 110 ITRY=1,MSTP(83)
12296 RSCA=0.05D0*((21-IXT2)-PYR(0))
12297 XT2=VINT(149)*(1D0+VINT(149))/(VINT(149)+RSCA)-VINT(149)
12298 XT2=MAX(0.01D0*VINT(149),XT2)
12299 VINT(25)=XT2
12300
12301
12302 IF(PYR(0).LE.COEF(ISUB,1)) THEN
12303 TAUT=(2D0*(1D0+SQRT(1D0-XT2))/XT2-1D0)**PYR(0)
12304 TAU=XT2*(1D0+TAUT)**2/(4D0*TAUT)
12305 ELSE
12306 TAU=XT2*(1D0+TAN(PYR(0)*ATAN(SQRT(1D0/XT2-1D0)))**2)
12307 ENDIF
12308 VINT(21)=TAU
12309 CALL PYKLIM(2)
12310 RYST=PYR(0)
12311 MYST=1
12312 IF(RYST.GT.COEF(ISUB,8)) MYST=2
12313 IF(RYST.GT.COEF(ISUB,8)+COEF(ISUB,9)) MYST=3
12314 CALL PYKMAP(2,MYST,PYR(0))
12315 VINT(23)=SQRT(MAX(0D0,1D0-XT2/TAU))*(-1)**INT(1.5D0+PYR(0))
12316
12317
12318 VINT(71)=0.5D0*VINT(1)*SQRT(XT2)
12319 CALL PYSIGH(NCHN,SIGS)
12320 SIGM(IXT2)=SIGM(IXT2)+SIGS
12321 110 CONTINUE
12322 SIGSUM=SIGSUM+SIGM(IXT2)
12323 120 CONTINUE
12324 SIGSUM=SIGSUM/(20D0*MSTP(83))
12325
12326
12327 IF(SIGSUM.LT.1.1D0*SIGT(0,0,5)) THEN
12328 IF(MSTP(122).GE.1) WRITE(MSTU(11),5100)
12329 & PARP(82)*(VINT(1)/PARP(89))**PARP(90),SIGSUM
12330 PARP(82)=0.9D0*PARP(82)
12331 VINT(149)=4D0*(PARP(82)*(VINT(1)/PARP(89))**PARP(90))**2/
12332 & VINT(2)
12333 GOTO 100
12334 ENDIF
12335 IF(MSTP(122).GE.1) WRITE(MSTU(11),5200)
12336 & PARP(82)*(VINT(1)/PARP(89))**PARP(90), SIGSUM
12337
12338
12339 YKE=SIGSUM/MAX(1D-10,SIGT(0,0,5))
12340 SO=0.5D0
12341 XI=0D0
12342 YI=0D0
12343 XF=0D0
12344 YF=0D0
12345 XK=0.5D0
12346 IIT=0
12347 130 IF(IIT.EQ.0) THEN
12348 XK=2D0*XK
12349 ELSEIF(IIT.EQ.1) THEN
12350 XK=0.5D0*XK
12351 ELSE
12352 XK=XI+(YKE-YI)*(XF-XI)/(YF-YI)
12353 ENDIF
12354
12355
12356 IF(MSTP(82).EQ.2) THEN
12357 SP=0.5D0*PARU(1)*(1D0-EXP(-XK))
12358 SOP=SP/PARU(1)
12359 ELSE
12360 IF(MSTP(82).EQ.3) DELTAB=0.02D0
12361 IF(MSTP(82).EQ.4) DELTAB=MIN(0.01D0,0.05D0*PARP(84))
12362 SP=0D0
12363 SOP=0D0
12364 B=-0.5D0*DELTAB
12365 140 B=B+DELTAB
12366 IF(MSTP(82).EQ.3) THEN
12367 OV=EXP(-B**2)/PARU(2)
12368 ELSE
12369 CQ2=PARP(84)**2
12370 OV=((1D0-PARP(83))**2*EXP(-MIN(50D0,B**2))+
12371 & 2D0*PARP(83)*(1D0-PARP(83))*2D0/(1D0+CQ2)*
12372 & EXP(-MIN(50D0,B**2*2D0/(1D0+CQ2)))+
12373 & PARP(83)**2/CQ2*EXP(-MIN(50D0,B**2/CQ2)))/PARU(2)
12374 ENDIF
12375 PACC=1D0-EXP(-MIN(50D0,PARU(1)*XK*OV))
12376 SP=SP+PARU(2)*B*DELTAB*PACC
12377 SOP=SOP+PARU(2)*B*DELTAB*OV*PACC
12378 IF(B.LT.1D0.OR.B*PACC.GT.1D-6) GOTO 140
12379 ENDIF
12380 YK=PARU(1)*XK*SO/SP
12381
12382
12383 IF(YK.LT.YKE) THEN
12384 XI=XK
12385 YI=YK
12386 IF(IIT.EQ.1) IIT=2
12387 ELSE
12388 XF=XK
12389 YF=YK
12390 IF(IIT.EQ.0) IIT=1
12391 ENDIF
12392 IF(ABS(YK-YKE).GE.1D-5*YKE) GOTO 130
12393
12394
12395 VINT(145)=SIGSUM
12396 VINT(146)=SOP/SO
12397 VINT(147)=SOP/SP
12398
12399
12400 ELSEIF(MMUL.EQ.2) THEN
12401 IF(MSTP(82).LE.0) THEN
12402 ELSEIF(MSTP(82).EQ.1) THEN
12403 XT2=1D0
12404 SIGRAT=XSEC(96,1)/MAX(1D-10,VINT(315)*VINT(316)*SIGT(0,0,5))
12405 IF(MINT(141).NE.0.OR.MINT(142).NE.0) SIGRAT=SIGRAT*
12406 & VINT(317)/(VINT(318)*VINT(320))
12407 XT2FAC=SIGRAT*VINT(149)/(1D0-VINT(149))
12408 ELSEIF(MSTP(82).EQ.2) THEN
12409 XT2=1D0
12410 XT2FAC=VINT(146)*XSEC(96,1)/MAX(1D-10,SIGT(0,0,5))*
12411 & VINT(149)*(1D0+VINT(149))
12412 ELSE
12413 XC2=4D0*CKIN(3)**2/VINT(2)
12414 IF(CKIN(3).LE.CKIN(5).OR.MINT(82).GE.2) XC2=0D0
12415 ENDIF
12416
12417 ELSEIF(MMUL.EQ.3) THEN
12418
12419
12420
12421 ISUB=MINT(1)
12422 IF(MSTP(82).LE.0) THEN
12423 XT2=0D0
12424 ELSEIF(MSTP(82).EQ.1) THEN
12425 XT2=XT2FAC*XT2/(XT2FAC-XT2*LOG(PYR(0)))
12426 ELSEIF(MSTP(82).EQ.2) THEN
12427 IF(XT2.LT.1D0.AND.EXP(-XT2FAC*XT2/(VINT(149)*(XT2+
12428 & VINT(149)))).GT.PYR(0)) XT2=1D0
12429 IF(XT2.GE.1D0) THEN
12430 XT2=(1D0+VINT(149))*XT2FAC/(XT2FAC-(1D0+VINT(149))*LOG(1D0-
12431 & PYR(0)*(1D0-EXP(-XT2FAC/(VINT(149)*(1D0+VINT(149)))))))-
12432 & VINT(149)
12433 ELSE
12434 XT2=-XT2FAC/LOG(EXP(-XT2FAC/(XT2+VINT(149)))+PYR(0)*
12435 & (EXP(-XT2FAC/VINT(149))-EXP(-XT2FAC/(XT2+VINT(149)))))-
12436 & VINT(149)
12437 ENDIF
12438 XT2=MAX(0.01D0*VINT(149),XT2)
12439 ELSE
12440 XT2=(XC2+VINT(149))*(1D0+VINT(149))/(1D0+VINT(149)-
12441 & PYR(0)*(1D0-XC2))-VINT(149)
12442 XT2=MAX(0.01D0*VINT(149),XT2)
12443 ENDIF
12444 VINT(25)=XT2
12445
12446
12447 IF(MSTP(82).LE.1.AND.XT2.LT.VINT(149)) THEN
12448 IF(MINT(82).EQ.1) NGEN(0,1)=NGEN(0,1)-1
12449 IF(MINT(82).EQ.1) NGEN(ISUB,1)=NGEN(ISUB,1)-1
12450 ISUB=95
12451 MINT(1)=ISUB
12452 VINT(21)=0.01D0*VINT(149)
12453 VINT(22)=0D0
12454 VINT(23)=0D0
12455 VINT(25)=0.01D0*VINT(149)
12456
12457 ELSE
12458
12459
12460 IF(PYR(0).LE.COEF(ISUB,1)) THEN
12461 TAUT=(2D0*(1D0+SQRT(1D0-XT2))/XT2-1D0)**PYR(0)
12462 TAU=XT2*(1D0+TAUT)**2/(4D0*TAUT)
12463 ELSE
12464 TAU=XT2*(1D0+TAN(PYR(0)*ATAN(SQRT(1D0/XT2-1D0)))**2)
12465 ENDIF
12466 VINT(21)=TAU
12467 CALL PYKLIM(2)
12468 RYST=PYR(0)
12469 MYST=1
12470 IF(RYST.GT.COEF(ISUB,8)) MYST=2
12471 IF(RYST.GT.COEF(ISUB,8)+COEF(ISUB,9)) MYST=3
12472 CALL PYKMAP(2,MYST,PYR(0))
12473 VINT(23)=SQRT(MAX(0D0,1D0-XT2/TAU))*(-1)**INT(1.5D0+PYR(0))
12474 ENDIF
12475 VINT(71)=0.5D0*VINT(1)*SQRT(VINT(25))
12476
12477
12478 ELSEIF(MMUL.EQ.4) THEN
12479 ISUB=MINT(1)
12480 XTS=VINT(25)
12481 IF(ISET(ISUB).EQ.1) XTS=VINT(21)
12482 IF(ISET(ISUB).EQ.2)
12483 & XTS=(4D0*VINT(48)+2D0*VINT(63)+2D0*VINT(64))/VINT(2)
12484 IF(ISET(ISUB).GE.3.AND.ISET(ISUB).LE.5) XTS=VINT(26)
12485 RBIN=MAX(0.000001D0,MIN(0.999999D0,XTS*(1D0+VINT(149))/
12486 & (XTS+VINT(149))))
12487 IRBIN=INT(1D0+20D0*RBIN)
12488 IF(ISUB.EQ.96.AND.MSTP(171).EQ.0) THEN
12489 NMUL(IRBIN)=NMUL(IRBIN)+1
12490 SIGM(IRBIN)=SIGM(IRBIN)+VINT(153)
12491 ENDIF
12492
12493
12494 ELSEIF(MMUL.EQ.5) THEN
12495 ISUB=MINT(1)
12496 145 IF(MSTP(82).EQ.3) THEN
12497 VINT(148)=PYR(0)/(PARU(2)*VINT(147))
12498 ELSE
12499 RTYPE=PYR(0)
12500 CQ2=PARP(84)**2
12501 IF(RTYPE.LT.(1D0-PARP(83))**2) THEN
12502 B2=-LOG(PYR(0))
12503 ELSEIF(RTYPE.LT.1D0-PARP(83)**2) THEN
12504 B2=-0.5D0*(1D0+CQ2)*LOG(PYR(0))
12505 ELSE
12506 B2=-CQ2*LOG(PYR(0))
12507 ENDIF
12508 VINT(148)=((1D0-PARP(83))**2*EXP(-MIN(50D0,B2))+2D0*PARP(83)*
12509 & (1D0-PARP(83))*2D0/(1D0+CQ2)*EXP(-MIN(50D0,B2*2D0/(1D0+CQ2)))+
12510 & PARP(83)**2/CQ2*EXP(-MIN(50D0,B2/CQ2)))/(PARU(2)*VINT(147))
12511 ENDIF
12512
12513
12514
12515 RNCOR=(IRBIN-20D0*RBIN)*NMUL(IRBIN)
12516 SIGCOR=(IRBIN-20D0*RBIN)*SIGM(IRBIN)
12517 DO 150 IBIN=IRBIN+1,20
12518 RNCOR=RNCOR+NMUL(IBIN)
12519 SIGCOR=SIGCOR+SIGM(IBIN)
12520 150 CONTINUE
12521 SIGABV=(SIGCOR/RNCOR)*VINT(149)*(1D0-XTS)/(XTS+VINT(149))
12522 IF(MSTP(171).EQ.1) SIGABV=SIGABV*VINT(2)/VINT(289)
12523 VINT(150)=EXP(-MIN(50D0,VINT(146)*VINT(148)*
12524 & SIGABV/MAX(1D-10,SIGT(0,0,5))))
12525 IF(MSTP(86).EQ.3.OR.(MSTP(86).EQ.2.AND.ISUB.NE.11.AND.
12526 & ISUB.NE.12.AND.ISUB.NE.13.AND.ISUB.NE.28.AND.ISUB.NE.53
12527 & .AND.ISUB.NE.68.AND.ISUB.NE.95.AND.ISUB.NE.96)) THEN
12528 IF(VINT(150).LT.PYR(0)) GOTO 145
12529 VINT(150)=1D0
12530 ENDIF
12531
12532
12533 ELSEIF(MMUL.EQ.6) THEN
12534 ISUBSV=MINT(1)
12535 DO 160 J=11,80
12536 VINTSV(J)=VINT(J)
12537 160 CONTINUE
12538 ISUB=96
12539 MINT(1)=96
12540 VINT(151)=0D0
12541 VINT(152)=0D0
12542
12543
12544 NMAX=MINT(84)+4
12545 IF(ISET(ISUBSV).EQ.1) NMAX=MINT(84)+2
12546 IF(ISET(ISUBSV).EQ.11) NMAX=MINT(84)+2+MINT(3)
12547 NSTR=0
12548 DO 180 I=MINT(84)+1,NMAX
12549 KCS=KCHG(PYCOMP(K(I,2)),2)*ISIGN(1,K(I,2))
12550 IF(KCS.EQ.0) GOTO 180
12551 DO 170 J=1,4
12552 IF(KCS.EQ.1.AND.(J.EQ.2.OR.J.EQ.4)) GOTO 170
12553 IF(KCS.EQ.-1.AND.(J.EQ.1.OR.J.EQ.3)) GOTO 170
12554 IF(J.LE.2) THEN
12555 IST=MOD(K(I,J+3)/MSTU(5),MSTU(5))
12556 ELSE
12557 IST=MOD(K(I,J+1),MSTU(5))
12558 ENDIF
12559 IF(IST.LT.MINT(84).OR.IST.GT.I) GOTO 170
12560 IF(KCHG(PYCOMP(K(IST,2)),2).EQ.0) GOTO 170
12561 NSTR=NSTR+1
12562 IF(J.EQ.1.OR.J.EQ.4) THEN
12563 KSTR(NSTR,1)=I
12564 KSTR(NSTR,2)=IST
12565 ELSE
12566 KSTR(NSTR,1)=IST
12567 KSTR(NSTR,2)=I
12568 ENDIF
12569 170 CONTINUE
12570 180 CONTINUE
12571
12572
12573 IF(MSTP(86).EQ.3.OR.(MSTP(86).EQ.2.AND.ISUBSV.NE.11.AND.
12574 & ISUBSV.NE.12.AND.ISUBSV.NE.13.AND.ISUBSV.NE.28.AND.
12575 & ISUBSV.NE.53.AND.ISUBSV.NE.68.AND.ISUBSV.NE.95.AND.
12576 & ISUBSV.NE.96)) THEN
12577 XT2=(1D0-VINT(141))*(1D0-VINT(142))
12578 ELSE
12579 XT2=VINT(25)
12580 IF(ISET(ISUBSV).EQ.1) XT2=VINT(21)
12581 IF(ISET(ISUBSV).EQ.2)
12582 & XT2=(4D0*VINT(48)+2D0*VINT(63)+2D0*VINT(64))/VINT(2)
12583 IF(ISET(ISUBSV).GE.3.AND.ISET(ISUBSV).LE.5) XT2=VINT(26)
12584 ENDIF
12585 IF(MSTP(82).LE.1) THEN
12586 SIGRAT=XSEC(ISUB,1)/MAX(1D-10,VINT(315)*VINT(316)*SIGT(0,0,5))
12587 IF(MINT(141).NE.0.OR.MINT(142).NE.0) SIGRAT=SIGRAT*
12588 & VINT(317)/(VINT(318)*VINT(320))
12589 XT2FAC=SIGRAT*VINT(149)/(1D0-VINT(149))
12590 ELSE
12591 XT2FAC=VINT(146)*VINT(148)*XSEC(ISUB,1)/
12592 & MAX(1D-10,SIGT(0,0,5))*VINT(149)*(1D0+VINT(149))
12593 ENDIF
12594 VINT(63)=0D0
12595 VINT(64)=0D0
12596 VINT(143)=1D0-VINT(141)
12597 VINT(144)=1D0-VINT(142)
12598
12599
12600 190 IF(MSTP(82).LE.1) THEN
12601 XT2=XT2FAC*XT2/(XT2FAC-XT2*LOG(PYR(0)))
12602 IF(XT2.LT.VINT(149)) GOTO 240
12603 ELSE
12604 IF(XT2.LE.0.01001D0*VINT(149)) GOTO 240
12605 XT2=XT2FAC*(XT2+VINT(149))/(XT2FAC-(XT2+VINT(149))*
12606 & LOG(PYR(0)))-VINT(149)
12607 IF(XT2.LE.0D0) GOTO 240
12608 XT2=MAX(0.01D0*VINT(149),XT2)
12609 ENDIF
12610 VINT(25)=XT2
12611
12612
12613 IF(PYR(0).LE.COEF(ISUB,1)) THEN
12614 TAUT=(2D0*(1D0+SQRT(1D0-XT2))/XT2-1D0)**PYR(0)
12615 TAU=XT2*(1D0+TAUT)**2/(4D0*TAUT)
12616 ELSE
12617 TAU=XT2*(1D0+TAN(PYR(0)*ATAN(SQRT(1D0/XT2-1D0)))**2)
12618 ENDIF
12619 VINT(21)=TAU
12620 CALL PYKLIM(2)
12621 RYST=PYR(0)
12622 MYST=1
12623 IF(RYST.GT.COEF(ISUB,8)) MYST=2
12624 IF(RYST.GT.COEF(ISUB,8)+COEF(ISUB,9)) MYST=3
12625 CALL PYKMAP(2,MYST,PYR(0))
12626 VINT(23)=SQRT(MAX(0D0,1D0-XT2/TAU))*(-1)**INT(1.5D0+PYR(0))
12627
12628
12629 X1M=SQRT(TAU)*EXP(VINT(22))
12630 X2M=SQRT(TAU)*EXP(-VINT(22))
12631 IF(VINT(143)-X1M.LT.0.01D0.OR.VINT(144)-X2M.LT.0.01D0) GOTO 190
12632 VINT(71)=0.5D0*VINT(1)*SQRT(XT2)
12633 CALL PYSIGH(NCHN,SIGS)
12634 IF(MINT(141).NE.0.OR.MINT(142).NE.0) SIGS=SIGS*VINT(320)
12635 IF(SIGS.LT.XSEC(ISUB,1)*PYR(0)) GOTO 190
12636
12637
12638 DO 210 I=N+1,N+2
12639 DO 200 J=1,5
12640 K(I,J)=0
12641 P(I,J)=0D0
12642 V(I,J)=0D0
12643 200 CONTINUE
12644 210 CONTINUE
12645 RFLAV=PYR(0)
12646 PT=0.5D0*VINT(1)*SQRT(XT2)
12647 PHI=PARU(2)*PYR(0)
12648 CTH=VINT(23)
12649
12650
12651 K(N+1,1)=3
12652 K(N+1,2)=21
12653 IF(RFLAV.GE.MAX(PARP(85),PARP(86))) K(N+1,2)=
12654 & 1+INT((2D0+PARJ(2))*PYR(0))
12655 P(N+1,1)=PT*COS(PHI)
12656 P(N+1,2)=PT*SIN(PHI)
12657 P(N+1,3)=0.25D0*VINT(1)*(VINT(41)*(1D0+CTH)-VINT(42)*(1D0-CTH))
12658 P(N+1,4)=0.25D0*VINT(1)*(VINT(41)*(1D0+CTH)+VINT(42)*(1D0-CTH))
12659 P(N+1,5)=0D0
12660
12661
12662 K(N+2,1)=3
12663 K(N+2,2)=21
12664 IF(K(N+1,2).NE.21) K(N+2,2)=-K(N+1,2)
12665 P(N+2,1)=-P(N+1,1)
12666 P(N+2,2)=-P(N+1,2)
12667 P(N+2,3)=0.25D0*VINT(1)*(VINT(41)*(1D0-CTH)-VINT(42)*(1D0+CTH))
12668 P(N+2,4)=0.25D0*VINT(1)*(VINT(41)*(1D0-CTH)+VINT(42)*(1D0+CTH))
12669 P(N+2,5)=0D0
12670
12671 IF(RFLAV.LT.PARP(85).AND.NSTR.GE.1) THEN
12672
12673 DO 230 I=N+1,N+2
12674 DMIN=1D8
12675 DO 220 ISTR=1,NSTR
12676 I1=KSTR(ISTR,1)
12677 I2=KSTR(ISTR,2)
12678 DIST=(P(I,4)*P(I1,4)-P(I,1)*P(I1,1)-P(I,2)*P(I1,2)-
12679 & P(I,3)*P(I1,3))*(P(I,4)*P(I2,4)-P(I,1)*P(I2,1)-
12680 & P(I,2)*P(I2,2)-P(I,3)*P(I2,3))/MAX(1D0,P(I1,4)*P(I2,4)-
12681 & P(I1,1)*P(I2,1)-P(I1,2)*P(I2,2)-P(I1,3)*P(I2,3))
12682 IF(ISTR.EQ.1.OR.DIST.LT.DMIN) THEN
12683 DMIN=DIST
12684 IST1=I1
12685 IST2=I2
12686 ISTM=ISTR
12687 ENDIF
12688 220 CONTINUE
12689
12690
12691 IF(K(IST1,4)/MSTU(5).EQ.IST2) K(IST1,4)=MSTU(5)*I+
12692 & MOD(K(IST1,4),MSTU(5))
12693 IF(MOD(K(IST1,5),MSTU(5)).EQ.IST2) K(IST1,5)=
12694 & MSTU(5)*(K(IST1,5)/MSTU(5))+I
12695 K(I,5)=MSTU(5)*IST1
12696 K(I,4)=MSTU(5)*IST2
12697 IF(K(IST2,5)/MSTU(5).EQ.IST1) K(IST2,5)=MSTU(5)*I+
12698 & MOD(K(IST2,5),MSTU(5))
12699 IF(MOD(K(IST2,4),MSTU(5)).EQ.IST1) K(IST2,4)=
12700 & MSTU(5)*(K(IST2,4)/MSTU(5))+I
12701 KSTR(ISTM,2)=I
12702 KSTR(NSTR+1,1)=I
12703 KSTR(NSTR+1,2)=IST2
12704 NSTR=NSTR+1
12705 230 CONTINUE
12706
12707
12708 ELSEIF(K(N+1,2).EQ.21) THEN
12709 K(N+1,4)=MSTU(5)*(N+2)
12710 K(N+1,5)=MSTU(5)*(N+2)
12711 K(N+2,4)=MSTU(5)*(N+1)
12712 K(N+2,5)=MSTU(5)*(N+1)
12713 KSTR(NSTR+1,1)=N+1
12714 KSTR(NSTR+1,2)=N+2
12715 KSTR(NSTR+2,1)=N+2
12716 KSTR(NSTR+2,2)=N+1
12717 NSTR=NSTR+2
12718
12719
12720 ELSE
12721 K(N+1,4)=MSTU(5)*(N+2)
12722 K(N+2,5)=MSTU(5)*(N+1)
12723 KSTR(NSTR+1,1)=N+1
12724 KSTR(NSTR+1,2)=N+2
12725 NSTR=NSTR+1
12726 ENDIF
12727
12728
12729 N=N+2
12730 IF(N.GT.MSTU(4)-MSTU(32)-10) THEN
12731 CALL PYERRM(11,'(PYMULT:) no more memory left in PYJETS')
12732 IF(MSTU(21).GE.1) RETURN
12733 ENDIF
12734 MINT(31)=MINT(31)+1
12735 VINT(151)=VINT(151)+VINT(41)
12736 VINT(152)=VINT(152)+VINT(42)
12737 VINT(143)=VINT(143)-VINT(41)
12738 VINT(144)=VINT(144)-VINT(42)
12739 IF(MINT(31).LT.240) GOTO 190
12740 240 CONTINUE
12741 MINT(1)=ISUBSV
12742 DO 250 J=11,80
12743 VINT(J)=VINTSV(J)
12744 250 CONTINUE
12745 ENDIF
12746
12747
12748 5000 FORMAT(/1X,'****** PYMULT: initialization of multiple inter',
12749 &'actions for MSTP(82) =',I2,' ******')
12750 5100 FORMAT(8X,'pT0 =',F5.2,' GeV gives sigma(parton-parton) =',1P,
12751 &D9.2,' mb: rejected')
12752 5200 FORMAT(8X,'pT0 =',F5.2,' GeV gives sigma(parton-parton) =',1P,
12753 &D9.2,' mb: accepted')
12754
12755 RETURN
12756 END
12757
12758
12759
12760
12761
12762
12763
12764 SUBROUTINE PYREMN(IPU1,IPU2)
12765
12766
12767 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
12768 IMPLICIT INTEGER(I-N)
12769 INTEGER PYK,PYCHGE,PYCOMP
12770
12771 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
12772 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
12773 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
12774 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
12775 COMMON/PYINT1/MINT(400),VINT(400)
12776 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYPARS/,/PYINT1/
12777
12778 DIMENSION KFLCH(2),KFLSP(2),CHI(2),PMS(0:6),IS(2),ISN(2),ROBO(5),
12779 &PSYS(0:2,5),PMIN(0:2),QOLD(4),QNEW(4),DBE(3),PSUM(4)
12780
12781
12782 ISUB=MINT(1)
12783 NS=N
12784 IF(MINT(50).EQ.0.OR.MSTP(81).LE.0) THEN
12785 VINT(143)=1D0-VINT(141)
12786 VINT(144)=1D0-VINT(142)
12787 ENDIF
12788
12789
12790 NTRY=0
12791 100 NTRY=NTRY+1
12792 DO 130 JT=1,2
12793 I=MINT(83)+JT+2
12794 IF(JT.EQ.1) IPU=IPU1
12795 IF(JT.EQ.2) IPU=IPU2
12796 K(I,1)=21
12797 K(I,2)=K(IPU,2)
12798 K(I,3)=I-2
12799 PMS(JT)=0D0
12800 VINT(156+JT)=0D0
12801 VINT(158+JT)=0D0
12802 IF(MINT(47).EQ.1) THEN
12803 DO 110 J=1,5
12804 P(I,J)=P(I-2,J)
12805 110 CONTINUE
12806 ELSEIF(ISUB.EQ.95) THEN
12807 K(I,2)=21
12808 ELSE
12809 P(I,5)=P(IPU,5)
12810
12811
12812
12813 120 IF(MINT(40+JT).EQ.2.AND.MINT(10+JT).NE.22) THEN
12814 IF(MSTP(91).LE.0) THEN
12815 PT=0D0
12816 ELSEIF(MSTP(91).EQ.1) THEN
12817 PT=PARP(91)*SQRT(-LOG(PYR(0)))
12818 ELSE
12819 RPT1=PYR(0)
12820 RPT2=PYR(0)
12821 PT=-PARP(92)*LOG(RPT1*RPT2)
12822 ENDIF
12823 IF(PT.GT.PARP(93)) GOTO 120
12824 ELSEIF(MINT(106+JT).EQ.3) THEN
12825 PTA=SQRT(VINT(282+JT))
12826 PTB=0D0
12827 IF(MSTP(66).EQ.5.AND.MSTP(93).EQ.1) THEN
12828 PTB=PARP(99)*SQRT(-LOG(PYR(0)))
12829 ELSEIF(MSTP(66).EQ.5.AND.MSTP(93).EQ.2) THEN
12830 RPT1=PYR(0)
12831 RPT2=PYR(0)
12832 PTB=-PARP(99)*LOG(RPT1*RPT2)
12833 ENDIF
12834 IF(PTB.GT.PARP(100)) GOTO 120
12835 PT=SQRT(PTA**2+PTB**2+2D0*PTA*PTB*COS(PARU(2)*PYR(0)))
12836 PT=PT*0.8D0**MINT(57)
12837 IF(NTRY.GT.10) PT=PT*0.8D0**(NTRY-10)
12838 ELSEIF(IABS(MINT(14+JT)).LE.8.OR.MINT(14+JT).EQ.21) THEN
12839 IF(MSTP(93).LE.0) THEN
12840 PT=0D0
12841 ELSEIF(MSTP(93).EQ.1) THEN
12842 PT=PARP(99)*SQRT(-LOG(PYR(0)))
12843 ELSEIF(MSTP(93).EQ.2) THEN
12844 RPT1=PYR(0)
12845 RPT2=PYR(0)
12846 PT=-PARP(99)*LOG(RPT1*RPT2)
12847 ELSEIF(MSTP(93).EQ.3) THEN
12848 HA=PARP(99)**2
12849 HB=PARP(100)**2
12850 PT=SQRT(MAX(0D0,HA*(HA+HB)/(HA+HB-PYR(0)*HB)-HA))
12851 ELSE
12852 HA=PARP(99)**2
12853 HB=PARP(100)**2
12854 IF(MSTP(93).EQ.5) HB=MIN(VINT(48),PARP(100)**2)
12855 PT=SQRT(MAX(0D0,HA*((HA+HB)/HA)**PYR(0)-HA))
12856 ENDIF
12857 IF(PT.GT.PARP(100)) GOTO 120
12858 ELSE
12859 PT=0D0
12860 ENDIF
12861 VINT(156+JT)=PT
12862 PHI=PARU(2)*PYR(0)
12863 P(I,1)=PT*COS(PHI)
12864 P(I,2)=PT*SIN(PHI)
12865 PMS(JT)=P(I,5)**2+P(I,1)**2+P(I,2)**2
12866 ENDIF
12867 130 CONTINUE
12868 IF(MINT(47).EQ.1) RETURN
12869
12870
12871 I1=MINT(83)+3
12872 I2=MINT(83)+4
12873 IF(ISUB.EQ.95) THEN
12874 SHS=0D0
12875 SHR=0D0
12876 ELSE
12877 SHS=VINT(141)*VINT(142)*VINT(2)+(P(I1,1)+P(I2,1))**2+
12878 & (P(I1,2)+P(I2,2))**2
12879 SHR=SQRT(MAX(0D0,SHS))
12880 IF((SHS-PMS(1)-PMS(2))**2-4D0*PMS(1)*PMS(2).LE.0D0) GOTO 100
12881 P(I1,4)=0.5D0*(SHR+(PMS(1)-PMS(2))/SHR)
12882 P(I1,3)=SQRT(MAX(0D0,P(I1,4)**2-PMS(1)))
12883 P(I2,4)=SHR-P(I1,4)
12884 P(I2,3)=-P(I1,3)
12885
12886
12887 ROBO(3)=(P(I1,1)+P(I2,1))/SHR
12888 ROBO(4)=(P(I1,2)+P(I2,2))/SHR
12889 CALL PYROBO(I1,I2,0D0,0D0,-ROBO(3),-ROBO(4),0D0)
12890 ROBO(2)=PYANGL(P(I1,1),P(I1,2))
12891 CALL PYROBO(I1,I2,0D0,-ROBO(2),0D0,0D0,0D0)
12892 ROBO(1)=PYANGL(P(I1,3),P(I1,1))
12893 CALL PYROBO(I1,I2,-ROBO(1),0D0,0D0,0D0,0D0)
12894 CALL PYROBO(I1,MINT(52),ROBO(1),ROBO(2),ROBO(3),ROBO(4),0D0)
12895 ROBO(5)=(VINT(141)-VINT(142))/(VINT(141)+VINT(142))
12896 CALL PYROBO(I1,MINT(52),0D0,0D0,0D0,0D0,ROBO(5))
12897 ENDIF
12898
12899
12900 IDISXQ=0
12901 IF((MINT(43).EQ.2.OR.MINT(43).EQ.3).AND.((ISUB.EQ.10.AND.
12902 &MSTP(23).GE.1).OR.(ISUB.EQ.83.AND.MSTP(23).GE.2))) IDISXQ=1
12903 IF(IDISXQ.EQ.1) THEN
12904
12905
12906 LESD=1
12907 IF(MINT(42).EQ.1) LESD=2
12908 LPIN=MINT(83)+3-LESD
12909 LEIN=MINT(84)+LESD
12910 LQIN=MINT(84)+3-LESD
12911 LEOUT=MINT(84)+2+LESD
12912 LQOUT=MINT(84)+5-LESD
12913 IF(K(LEIN,3).GT.LEIN) LEIN=K(LEIN,3)
12914 IF(K(LQIN,3).GT.LQIN) LQIN=K(LQIN,3)
12915 LSCMS=0
12916 DO 140 I=MINT(84)+5,N
12917 IF(K(I,2).EQ.94) THEN
12918 LSCMS=I
12919 LEOUT=I+LESD
12920 LQOUT=I+3-LESD
12921 ENDIF
12922 140 CONTINUE
12923 LQBG=IPU1
12924 IF(LESD.EQ.1) LQBG=IPU2
12925
12926
12927 XNOM=VINT(43-LESD)
12928 Q2NOM=-VINT(45)
12929 HPK=2D0*(P(LPIN,4)*P(LEIN,4)-P(LPIN,1)*P(LEIN,1)-
12930 & P(LPIN,2)*P(LEIN,2)-P(LPIN,3)*P(LEIN,3))*
12931 & (P(MINT(83)+LESD,4)*VINT(40+LESD)/P(LEIN,4))
12932 HPT2=MAX(0D0,Q2NOM*(1D0-Q2NOM/(XNOM*HPK)))
12933 FAC=SQRT(HPT2/(P(LEOUT,1)**2+P(LEOUT,2)**2))
12934 P(N+1,1)=FAC*P(LEOUT,1)
12935 P(N+1,2)=FAC*P(LEOUT,2)
12936 P(N+1,3)=0.25D0*((HPK-Q2NOM/XNOM)/P(LPIN,4)-
12937 & Q2NOM/(P(MINT(83)+LESD,4)*VINT(40+LESD)))*(-1)**(LESD+1)
12938 P(N+1,4)=SQRT(P(LEOUT,5)**2+P(N+1,1)**2+P(N+1,2)**2+
12939 & P(N+1,3)**2)
12940 DO 150 J=1,4
12941 QOLD(J)=P(LEIN,J)-P(LEOUT,J)
12942 QNEW(J)=P(LEIN,J)-P(N+1,J)
12943 150 CONTINUE
12944
12945
12946 IF(LSCMS.EQ.0) THEN
12947 DO 160 J=1,4
12948 P(LEOUT,J)=P(N+1,J)
12949 160 CONTINUE
12950 ELSE
12951 DO 170 J=1,3
12952 P(N+2,J)=(P(N+1,J)-P(LEOUT,J))/(P(N+1,4)+P(LEOUT,4))
12953 170 CONTINUE
12954 PINV=2D0/(1D0+P(N+2,1)**2+P(N+2,2)**2+P(N+2,3)**2)
12955 DO 180 J=1,3
12956 DBE(J)=PINV*P(N+2,J)
12957 180 CONTINUE
12958 DO 200 I=LSCMS+1,N
12959 IORIG=I
12960 190 IORIG=K(IORIG,3)
12961 IF(IORIG.GT.LEOUT) GOTO 190
12962 IF(I.EQ.LEOUT.OR.IORIG.EQ.LEOUT)
12963 & CALL PYROBO(I,I,0D0,0D0,DBE(1),DBE(2),DBE(3))
12964 200 CONTINUE
12965 ENDIF
12966
12967
12968 NCOP=N+1
12969 K(NCOP,3)=LQBG
12970 DO 210 J=1,5
12971 P(NCOP,J)=P(LQBG,J)
12972 210 CONTINUE
12973 DO 240 I=MINT(84)+1,N
12974 ICOP=0
12975 IF(K(I,1).GT.10) GOTO 240
12976 IF(I.EQ.LQBG.OR.I.EQ.LQOUT) THEN
12977 ICOP=I
12978 ELSE
12979 IORIG=I
12980 220 IORIG=K(IORIG,3)
12981 IF(IORIG.EQ.LQBG.OR.IORIG.EQ.LQOUT) THEN
12982 ICOP=IORIG
12983 ELSEIF(IORIG.GT.MINT(84).AND.IORIG.LE.N) THEN
12984 GOTO 220
12985 ENDIF
12986 ENDIF
12987 IF(ICOP.NE.0) THEN
12988 NCOP=NCOP+1
12989 K(NCOP,3)=I
12990 DO 230 J=1,5
12991 P(NCOP,J)=P(I,J)
12992 230 CONTINUE
12993 ENDIF
12994 240 CONTINUE
12995
12996
12997 SLC=3-2*LESD
12998 PLCSUM=0D0
12999 DO 250 I=N+2,NCOP
13000 PLCSUM=PLCSUM+(P(I,4)+SLC*P(I,3))
13001 250 CONTINUE
13002 DO 260 I=N+2,NCOP
13003 V(I,1)=(P(I,4)+SLC*P(I,3))/PLCSUM
13004 260 CONTINUE
13005
13006
13007 DO 280 I=N+2,NCOP
13008 DO 270 J=1,3
13009 P(I,J)=P(I,J)+V(I,1)*(QNEW(J)-QOLD(J))
13010 270 CONTINUE
13011 P(I,4)=SQRT(P(I,5)**2+P(I,1)**2+P(I,2)**2+P(I,3)**2)
13012 280 CONTINUE
13013
13014
13015 ITER=0
13016 290 ITER=ITER+1
13017 PEEX=-P(N+1,4)-QNEW(4)
13018 PEMV=-P(N+1,3)/P(N+1,4)
13019 DO 300 I=N+2,NCOP
13020 PEEX=PEEX+P(I,4)
13021 PEMV=PEMV+V(I,1)*P(I,3)/P(I,4)
13022 300 CONTINUE
13023 IF(ABS(PEMV).LT.1D-10) THEN
13024 MINT(51)=1
13025 MINT(57)=MINT(57)+1
13026 RETURN
13027 ENDIF
13028 PZCH=-PEEX/PEMV
13029 P(N+1,3)=P(N+1,3)+PZCH
13030 P(N+1,4)=SQRT(P(N+1,5)**2+P(N+1,1)**2+P(N+1,2)**2+P(N+1,3)**2)
13031 DO 310 I=N+2,NCOP
13032 P(I,3)=P(I,3)+V(I,1)*PZCH
13033 P(I,4)=SQRT(P(I,5)**2+P(I,1)**2+P(I,2)**2+P(I,3)**2)
13034 310 CONTINUE
13035 IF(ITER.LT.10.AND.ABS(PEEX).GT.1D-6*P(N+1,4)) GOTO 290
13036
13037
13038 HBE=2D0*(P(N+1,4)+P(LQBG,4))*(P(N+1,3)-P(LQBG,3))/
13039 & ((P(N+1,4)+P(LQBG,4))**2+(P(N+1,3)-P(LQBG,3))**2)
13040 IF(ABS(HBE).GE.1D0) THEN
13041 MINT(51)=1
13042 MINT(57)=MINT(57)+1
13043 RETURN
13044 ENDIF
13045 I=MINT(83)+5-LESD
13046 CALL PYROBO(I,I,0D0,0D0,0D0,0D0,HBE)
13047 DO 330 I=N+1,NCOP
13048 ICOP=K(I,3)
13049 DO 320 J=1,4
13050 P(ICOP,J)=P(I,J)
13051 320 CONTINUE
13052 330 CONTINUE
13053 ENDIF
13054
13055
13056 PSYS(0,4)=P(I1,4)+P(I2,4)+0.5D0*VINT(1)*(VINT(151)+VINT(152))
13057 PSYS(0,3)=P(I1,3)+P(I2,3)+0.5D0*VINT(1)*(VINT(151)-VINT(152))
13058 PMS(0)=MAX(0D0,PSYS(0,4)**2-PSYS(0,3)**2)
13059 PMIN(0)=SQRT(PMS(0))
13060 DO 340 JT=1,2
13061 PSYS(JT,4)=0.5D0*VINT(1)*VINT(142+JT)
13062 PSYS(JT,3)=PSYS(JT,4)*(-1)**(JT-1)
13063 PMIN(JT)=0D0
13064 IF(MINT(44+JT).EQ.1) GOTO 340
13065 MINT(105)=MINT(102+JT)
13066 MINT(109)=MINT(106+JT)
13067 CALL PYSPLI(MINT(10+JT),MINT(12+JT),KFLCH(JT),KFLSP(JT))
13068 IF(MINT(51).NE.0) THEN
13069 MINT(57)=MINT(57)+1
13070 RETURN
13071 ENDIF
13072 IF(KFLCH(JT).NE.0) PMIN(JT)=PMIN(JT)+PYMASS(KFLCH(JT))
13073 IF(KFLSP(JT).NE.0) PMIN(JT)=PMIN(JT)+PYMASS(KFLSP(JT))
13074 IF(KFLCH(JT)*KFLSP(JT).NE.0) PMIN(JT)=PMIN(JT)+0.5D0*PARP(111)
13075 PMIN(JT)=SQRT(PMIN(JT)**2+P(MINT(83)+JT+2,1)**2+
13076 & P(MINT(83)+JT+2,2)**2)
13077 340 CONTINUE
13078 IF(PMIN(0)+PMIN(1)+PMIN(2).GT.VINT(1).OR.(MINT(45).GE.2.AND.
13079 &PMIN(1).GT.PSYS(1,4)).OR.(MINT(46).GE.2.AND.PMIN(2).GT.
13080 &PSYS(2,4))) THEN
13081 MINT(51)=1
13082 MINT(57)=MINT(57)+1
13083 RETURN
13084 ENDIF
13085
13086
13087 I=NS
13088 DO 410 JT=1,2
13089 ISN(JT)=0
13090 IF(MINT(44+JT).EQ.1) GOTO 410
13091 IF(JT.EQ.1) IPU=IPU1
13092 IF(JT.EQ.2) IPU=IPU2
13093
13094
13095 I=I+1
13096 IS(JT)=I
13097 ISN(JT)=1
13098 DO 350 J=1,5
13099 K(I,J)=0
13100 P(I,J)=0D0
13101 V(I,J)=0D0
13102 350 CONTINUE
13103 K(I,1)=1
13104 K(I,2)=KFLSP(JT)
13105 K(I,3)=MINT(83)+JT
13106 P(I,5)=PYMASS(K(I,2))
13107
13108
13109 KCOL=KCHG(PYCOMP(KFLSP(JT)),2)
13110 IF(KCOL.EQ.2) THEN
13111 K(I,1)=3
13112 K(I,4)=MSTU(5)*IPU+IPU
13113 K(I,5)=MSTU(5)*IPU+IPU
13114 K(IPU,4)=MOD(K(IPU,4),MSTU(5))+MSTU(5)*I
13115 K(IPU,5)=MOD(K(IPU,5),MSTU(5))+MSTU(5)*I
13116 ELSEIF(KCOL.NE.0) THEN
13117 K(I,1)=3
13118 KFLS=(3-KCOL*ISIGN(1,KFLSP(JT)))/2
13119 K(I,KFLS+3)=IPU
13120 K(IPU,6-KFLS)=MOD(K(IPU,6-KFLS),MSTU(5))+MSTU(5)*I
13121 ENDIF
13122 IF(KFLCH(JT).EQ.0) THEN
13123 P(I,1)=-P(MINT(83)+JT+2,1)
13124 P(I,2)=-P(MINT(83)+JT+2,2)
13125 PMS(JT)=P(I,5)**2+P(I,1)**2+P(I,2)**2
13126 PSYS(JT,3)=SQRT(MAX(0D0,PSYS(JT,4)**2-PMS(JT)))*(-1)**(JT-1)
13127 P(I,3)=PSYS(JT,3)
13128 P(I,4)=PSYS(JT,4)
13129
13130
13131 ELSE
13132 I=I+1
13133 ISN(JT)=2
13134 DO 360 J=1,5
13135 K(I,J)=0
13136 P(I,J)=0D0
13137 V(I,J)=0D0
13138 360 CONTINUE
13139 K(I,1)=1
13140 K(I,2)=KFLCH(JT)
13141 K(I,3)=MINT(83)+JT
13142 P(I,5)=PYMASS(K(I,2))
13143
13144
13145 KCOL=KCHG(PYCOMP(KFLCH(JT)),2)
13146 IF(KCOL.EQ.2) THEN
13147 K(I,1)=3
13148 K(I,4)=MSTU(5)*IPU+IPU
13149 K(I,5)=MSTU(5)*IPU+IPU
13150 K(IPU,4)=MOD(K(IPU,4),MSTU(5))+MSTU(5)*I
13151 K(IPU,5)=MOD(K(IPU,5),MSTU(5))+MSTU(5)*I
13152 ELSEIF(KCOL.NE.0) THEN
13153 K(I,1)=3
13154 KFLS=(3-KCOL*ISIGN(1,KFLCH(JT)))/2
13155 K(I,KFLS+3)=IPU
13156 K(IPU,6-KFLS)=MOD(K(IPU,6-KFLS),MSTU(5))+MSTU(5)*I
13157 ENDIF
13158
13159
13160 LOOP=0
13161 370 LOOP=LOOP+1
13162 CALL PYPTDI(1,P(I-1,1),P(I-1,2))
13163 IF(IABS(MINT(10+JT)).LT.20) THEN
13164 P(I-1,1)=0D0
13165 P(I-1,2)=0D0
13166 ELSE
13167 P(I-1,1)=P(I-1,1)-0.5D0*P(MINT(83)+JT+2,1)
13168 P(I-1,2)=P(I-1,2)-0.5D0*P(MINT(83)+JT+2,2)
13169 ENDIF
13170 PMS(JT+2)=P(I-1,5)**2+P(I-1,1)**2+P(I-1,2)**2
13171 P(I,1)=-P(MINT(83)+JT+2,1)-P(I-1,1)
13172 P(I,2)=-P(MINT(83)+JT+2,2)-P(I-1,2)
13173 PMS(JT+4)=P(I,5)**2+P(I,1)**2+P(I,2)**2
13174
13175
13176 IMB=1
13177 IF(MOD(MINT(10+JT)/1000,10).NE.0) IMB=2
13178
13179
13180 IF(IABS(MINT(10+JT)).LT.20.AND.MINT(14+JT).EQ.-MINT(10+JT))
13181 & THEN
13182 CHI(JT)=PYR(0)
13183
13184
13185 ELSEIF(IABS(MINT(10+JT)).LT.20) THEN
13186 XHRD=VINT(140+JT)
13187 XE=VINT(154+JT)
13188 CHI(JT)=(XE-XHRD)/(1D0-XHRD)
13189
13190
13191 ELSEIF(IABS(KFLCH(JT)).LE.10.OR.KFLCH(JT).EQ.21) THEN
13192 CHIK=PARP(92+2*IMB)
13193 IF(MSTP(92).LE.1) THEN
13194 IF(IMB.EQ.1) CHI(JT)=PYR(0)
13195 IF(IMB.EQ.2) CHI(JT)=1D0-SQRT(PYR(0))
13196 ELSEIF(MSTP(92).EQ.2) THEN
13197 CHI(JT)=1D0-PYR(0)**(1D0/(1D0+CHIK))
13198 ELSEIF(MSTP(92).EQ.3) THEN
13199 CUT=2D0*0.3D0/VINT(1)
13200 380 CHI(JT)=PYR(0)**2
13201 IF((CHI(JT)**2/(CHI(JT)**2+CUT**2))**0.25D0*
13202 & (1D0-CHI(JT))**CHIK.LT.PYR(0)) GOTO 380
13203 ELSEIF(MSTP(92).EQ.4) THEN
13204 CUT=2D0*0.3D0/VINT(1)
13205 CUTR=(1D0+SQRT(1D0+CUT**2))/CUT
13206 390 CHIR=CUT*CUTR**PYR(0)
13207 CHI(JT)=(CHIR**2-CUT**2)/(2D0*CHIR)
13208 IF((1D0-CHI(JT))**CHIK.LT.PYR(0)) GOTO 390
13209 ELSE
13210 CUT=2D0*0.3D0/VINT(1)
13211 CUTA=CUT**(1D0-PARP(98))
13212 CUTB=(1D0+CUT)**(1D0-PARP(98))
13213 400 CHI(JT)=(CUTA+PYR(0)*(CUTB-CUTA))**(1D0/(1D0-PARP(98)))
13214 IF(((CHI(JT)+CUT)**2/(2D0*(CHI(JT)**2+CUT**2)))**
13215 & (0.5D0*PARP(98))*(1D0-CHI(JT))**CHIK.LT.PYR(0)) GOTO 400
13216 ENDIF
13217
13218
13219 ELSE
13220 IF(MSTP(94).LE.1) THEN
13221 IF(IMB.EQ.1) CHI(JT)=PYR(0)
13222 IF(IMB.EQ.2) CHI(JT)=1D0-SQRT(PYR(0))
13223 IF(MOD(KFLCH(JT)/1000,10).NE.0) CHI(JT)=1D0-CHI(JT)
13224 ELSEIF(MSTP(94).EQ.2) THEN
13225 CHI(JT)=1D0-PYR(0)**(1D0/(1D0+PARP(93+2*IMB)))
13226 IF(MOD(KFLCH(JT)/1000,10).NE.0) CHI(JT)=1D0-CHI(JT)
13227 ELSEIF(MSTP(94).EQ.3) THEN
13228 CALL PYZDIS(1,0,PMS(JT+4),ZZ)
13229 CHI(JT)=ZZ
13230 ELSE
13231 CALL PYZDIS(1000,0,PMS(JT+4),ZZ)
13232 CHI(JT)=ZZ
13233 ENDIF
13234 ENDIF
13235
13236
13237 CHI(JT)=MAX(1D-8,MIN(1D0-1D-8,CHI(JT)))
13238 PMS(JT)=PMS(JT+4)/CHI(JT)+PMS(JT+2)/(1D0-CHI(JT))
13239 IF(PMS(JT).GT.PSYS(JT,4)**2) THEN
13240 IF(LOOP.LT.10) THEN
13241 GOTO 370
13242 ELSE
13243 MINT(51)=1
13244 MINT(57)=MINT(57)+1
13245 RETURN
13246 ENDIF
13247 ENDIF
13248 PSYS(JT,3)=SQRT(MAX(0D0,PSYS(JT,4)**2-PMS(JT)))*(-1)**(JT-1)
13249 VINT(158+JT)=CHI(JT)
13250
13251
13252 PW1=CHI(JT)*(PSYS(JT,4)+ABS(PSYS(JT,3)))
13253 P(IS(JT)+1,4)=0.5D0*(PW1+PMS(JT+4)/PW1)
13254 P(IS(JT)+1,3)=0.5D0*(PW1-PMS(JT+4)/PW1)*(-1)**(JT-1)
13255 P(IS(JT),4)=PSYS(JT,4)-P(IS(JT)+1,4)
13256 P(IS(JT),3)=PSYS(JT,3)-P(IS(JT)+1,3)
13257 ENDIF
13258 410 CONTINUE
13259 N=I
13260
13261
13262 PDEV=ABS(PSYS(0,4)+PSYS(1,4)+PSYS(2,4)-VINT(1))+
13263 &ABS(PSYS(0,3)+PSYS(1,3)+PSYS(2,3))
13264 IF(PDEV.LE.1D-6*VINT(1)) RETURN
13265 IF(ISN(1).EQ.0) THEN
13266 IR=0
13267 IL=2
13268 ELSEIF(ISN(2).EQ.0) THEN
13269 IR=1
13270 IL=0
13271 ELSEIF(VINT(143).GT.0.2D0.AND.VINT(144).GT.0.2D0) THEN
13272 IR=1
13273 IL=2
13274 ELSEIF(VINT(143).GT.0.2D0) THEN
13275 IR=1
13276 IL=0
13277 ELSEIF(VINT(144).GT.0.2D0) THEN
13278 IR=0
13279 IL=2
13280 ELSEIF(PMS(1)/PSYS(1,4)**2.GT.PMS(2)/PSYS(2,4)**2) THEN
13281 IR=1
13282 IL=0
13283 ELSE
13284 IR=0
13285 IL=2
13286 ENDIF
13287 IG=3-IR-IL
13288
13289
13290 IF((IG.EQ.1.AND.ISN(1).EQ.0).OR.(IG.EQ.2.AND.ISN(2).EQ.0)) THEN
13291 PPB=VINT(1)
13292 PNB=VINT(1)
13293 ELSE
13294 PPB=VINT(1)-(PSYS(IG,4)+PSYS(IG,3))
13295 PNB=VINT(1)-(PSYS(IG,4)-PSYS(IG,3))
13296 ENDIF
13297
13298
13299 IF(IDISXQ.EQ.1.AND.IG.NE.0) THEN
13300 PMTB=PPB*PNB
13301 PMTR=PMS(IR)
13302 PMTL=PMS(IL)
13303 SQLAM=SQRT(MAX(0D0,(PMTB-PMTR-PMTL)**2-4D0*PMTR*PMTL))
13304 SQSGN=SIGN(1D0,PSYS(IR,3)*PSYS(IL,4)-PSYS(IL,3)*PSYS(IR,4))
13305 RKR=(PMTB+PMTR-PMTL+SQLAM*SQSGN)/(2D0*(PSYS(IR,4)+PSYS(IR,3))
13306 & *PNB)
13307 RKL=(PMTB+PMTL-PMTR+SQLAM*SQSGN)/(2D0*(PSYS(IL,4)-PSYS(IL,3))
13308 & *PPB)
13309 BER=(RKR**2-1D0)/(RKR**2+1D0)
13310 BEL=-(RKL**2-1D0)/(RKL**2+1D0)
13311 PPB=PPB-(PSYS(0,4)+PSYS(0,3))
13312 PNB=PNB-(PSYS(0,4)-PSYS(0,3))
13313 DO 420 J=1,4
13314 PSYS(0,J)=0D0
13315 420 CONTINUE
13316 DO 450 I=MINT(84)+1,NS
13317 IF(K(I,1).GT.10) GOTO 450
13318 INCL=0
13319 IORIG=I
13320 430 IF(IORIG.EQ.LQOUT.OR.IORIG.EQ.LPIN+2) INCL=1
13321 IORIG=K(IORIG,3)
13322 IF(IORIG.GT.LPIN) GOTO 430
13323 IF(INCL.EQ.0) GOTO 450
13324 DO 440 J=1,4
13325 PSYS(0,J)=PSYS(0,J)+P(I,J)
13326 440 CONTINUE
13327 450 CONTINUE
13328 PMS(0)=MAX(0D0,PSYS(0,4)**2-PSYS(0,3)**2)
13329 PPB=PPB+(PSYS(0,4)+PSYS(0,3))
13330 PNB=PNB+(PSYS(0,4)-PSYS(0,3))
13331 ENDIF
13332
13333
13334 DPMTB=PPB*PNB
13335 DPMTR=PMS(IR)
13336 DPMTL=PMS(IL)
13337 DSQLAM=SQRT(MAX(0D0,(DPMTB-DPMTR-DPMTL)**2-4D0*DPMTR*DPMTL))
13338 IF(DSQLAM.LE.1D-6*DPMTB) THEN
13339 MINT(51)=1
13340 MINT(57)=MINT(57)+1
13341 RETURN
13342 ENDIF
13343 DSQSGN=SIGN(1D0,PSYS(IR,3)*PSYS(IL,4)-PSYS(IL,3)*PSYS(IR,4))
13344 DRKR=(DPMTB+DPMTR-DPMTL+DSQLAM*DSQSGN)/
13345 &(2D0*(PSYS(IR,4)+PSYS(IR,3))*PNB)
13346 DRKL=(DPMTB+DPMTL-DPMTR+DSQLAM*DSQSGN)/
13347 &(2D0*(PSYS(IL,4)-PSYS(IL,3))*PPB)
13348 DBER=(DRKR**2-1D0)/(DRKR**2+1D0)
13349 DBEL=-(DRKL**2-1D0)/(DRKL**2+1D0)
13350
13351
13352 IF(IR.EQ.1.AND.ISN(1).EQ.1.AND.DBER.LE.-0.99999999D0) THEN
13353 P(IS(1),3)=0D0
13354 P(IS(1),4)=SQRT(P(IS(1),5)**2+P(IS(1),1)**2+P(IS(1),2)**2)
13355 ELSEIF(IR.EQ.1) THEN
13356 CALL PYROBO(IS(1),IS(1)+ISN(1)-1,0D0,0D0,0D0,0D0,DBER)
13357 ELSEIF(IDISXQ.EQ.1) THEN
13358 DO 470 I=I1,NS
13359 INCL=0
13360 IORIG=I
13361 460 IF(IORIG.EQ.LQOUT.OR.IORIG.EQ.LPIN+2) INCL=1
13362 IORIG=K(IORIG,3)
13363 IF(IORIG.GT.LPIN) GOTO 460
13364 IF(INCL.EQ.1) CALL PYROBO(I,I,0D0,0D0,0D0,0D0,DBER)
13365 470 CONTINUE
13366 ELSE
13367 CALL PYROBO(I1,NS,0D0,0D0,0D0,0D0,DBER)
13368 ENDIF
13369 IF(IL.EQ.2.AND.ISN(2).EQ.1.AND.DBEL.GE.0.99999999D0) THEN
13370 P(IS(2),3)=0D0
13371 P(IS(2),4)=SQRT(P(IS(2),5)**2+P(IS(2),1)**2+P(IS(2),2)**2)
13372 ELSEIF(IL.EQ.2) THEN
13373 CALL PYROBO(IS(2),IS(2)+ISN(2)-1,0D0,0D0,0D0,0D0,DBEL)
13374 ELSEIF(IDISXQ.EQ.1) THEN
13375 DO 490 I=I1,NS
13376 INCL=0
13377 IORIG=I
13378 480 IF(IORIG.EQ.LQOUT.OR.IORIG.EQ.LPIN+2) INCL=1
13379 IORIG=K(IORIG,3)
13380 IF(IORIG.GT.LPIN) GOTO 480
13381 IF(INCL.EQ.1) CALL PYROBO(I,I,0D0,0D0,0D0,0D0,DBEL)
13382 490 CONTINUE
13383 ELSE
13384 CALL PYROBO(I1,NS,0D0,0D0,0D0,0D0,DBEL)
13385 ENDIF
13386
13387
13388 PESUM=0D0
13389 PZSUM=0D0
13390 DO 500 I=MINT(84)+1,N
13391 IF(K(I,1).GT.10) GOTO 500
13392 PESUM=PESUM+P(I,4)
13393 PZSUM=PZSUM+P(I,3)
13394 500 CONTINUE
13395 PDEV=ABS(PESUM-VINT(1))+ABS(PZSUM)
13396 IF(PDEV.GT.1D-4*VINT(1)) THEN
13397 MINT(51)=1
13398 MINT(57)=MINT(57)+1
13399 RETURN
13400 ENDIF
13401
13402
13403
13404 MINT(91)=0
13405 IF(MINT(82).EQ.1.AND.(MINT(43).EQ.2.OR.MINT(43).EQ.3)) THEN
13406 MINT(91)=1
13407 LESD=1
13408 IF(MINT(42).EQ.1) LESD=2
13409 LPIN=MINT(83)+3-LESD
13410
13411
13412 DO 510 J=1,4
13413 PSUM(J)=0D0
13414 510 CONTINUE
13415 DO 530 I=1,N
13416 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 530
13417 IF(IABS(K(I,2)).GE.11.AND.IABS(K(I,2)).LE.20) GOTO 530
13418 IF(K(I,2).EQ.22) GOTO 530
13419 DO 520 J=1,4
13420 PSUM(J)=PSUM(J)+P(I,J)
13421 520 CONTINUE
13422 530 CONTINUE
13423 VINT(223)=-PSUM(1)/PSUM(4)
13424 VINT(224)=-PSUM(2)/PSUM(4)
13425 VINT(225)=-PSUM(3)/PSUM(4)
13426
13427
13428 K(N+1,1)=1
13429 DO 540 J=1,5
13430 P(N+1,J)=P(LPIN,J)
13431 V(N+1,J)=V(LPIN,J)
13432 540 CONTINUE
13433 CALL PYROBO(N+1,N+1,0D0,0D0,VINT(223),VINT(224),VINT(225))
13434 VINT(222)=-PYANGL(P(N+1,1),P(N+1,2))
13435 CALL PYROBO(N+1,N+1,0D0,VINT(222),0D0,0D0,0D0)
13436 IF(LESD.EQ.2) THEN
13437 VINT(221)=-PYANGL(P(N+1,3),P(N+1,1))
13438 ELSE
13439 VINT(221)=PYANGL(-P(N+1,3),P(N+1,1))
13440 ENDIF
13441 ENDIF
13442
13443 RETURN
13444 END
13445
13446
13447
13448
13449
13450
13451 SUBROUTINE PYDIFF
13452
13453
13454 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
13455 IMPLICIT INTEGER(I-N)
13456 INTEGER PYK,PYCHGE,PYCOMP
13457
13458 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
13459 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
13460 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
13461 COMMON/PYINT1/MINT(400),VINT(400)
13462 SAVE /PYJETS/,/PYDAT1/,/PYPARS/,/PYINT1/
13463
13464
13465 DO 110 JT=1,MSTP(126)+10
13466 I=MINT(83)+JT
13467 DO 100 J=1,5
13468 K(I,J)=0
13469 P(I,J)=0D0
13470 V(I,J)=0D0
13471 100 CONTINUE
13472 110 CONTINUE
13473 N=MINT(84)
13474 MINT(3)=0
13475 MINT(21)=0
13476 MINT(22)=0
13477 MINT(23)=0
13478 MINT(24)=0
13479 MINT(4)=4
13480 DO 130 JT=1,2
13481 I=MINT(83)+JT
13482 K(I,1)=21
13483 K(I,2)=MINT(10+JT)
13484 DO 120 J=1,5
13485 P(I,J)=VINT(285+5*JT+J)
13486 120 CONTINUE
13487 130 CONTINUE
13488 MINT(6)=2
13489
13490
13491 SQLAM=(VINT(2)-VINT(63)-VINT(64))**2-4D0*VINT(63)*VINT(64)
13492 PZ=SQRT(SQLAM)/(2D0*VINT(1))
13493 DO 200 JT=1,2
13494 I=MINT(83)+JT
13495 PE=(VINT(2)+VINT(62+JT)-VINT(65-JT))/(2D0*VINT(1))
13496 KFH=MINT(102+JT)
13497
13498
13499 IF(MINT(16+JT).LE.0.AND.(MINT(10+JT).NE.22.OR.
13500 & MINT(106+JT).NE.3)) THEN
13501 N=N+1
13502 K(N,1)=1
13503 K(N,2)=KFH
13504 K(N,3)=I+2
13505 P(N,3)=PZ*(-1)**(JT+1)
13506 P(N,4)=PE
13507 P(N,5)=SQRT(VINT(62+JT))
13508
13509
13510
13511 IF(KFH.EQ.113.AND.MINT(10+JT).EQ.22.AND.MSTP(102).EQ.1) THEN
13512 NSAV=N
13513 DBETAZ=P(N,3)/SQRT(P(N,3)**2+P(N,5)**2)
13514 P(N,3)=0D0
13515 P(N,4)=P(N,5)
13516 CALL PYDECY(NSAV)
13517 IF(N.EQ.NSAV+2.AND.IABS(K(NSAV+1,2)).EQ.211) THEN
13518 PHI=PYANGL(P(NSAV+1,1),P(NSAV+1,2))
13519 CALL PYROBO(NSAV+1,NSAV+2,0D0,-PHI,0D0,0D0,0D0)
13520 THE=PYANGL(P(NSAV+1,3),P(NSAV+1,1))
13521 CALL PYROBO(NSAV+1,NSAV+2,-THE,0D0,0D0,0D0,0D0)
13522 140 CTHE=2D0*PYR(0)-1D0
13523 IF(1D0-CTHE**2.LT.PYR(0)) GOTO 140
13524 CALL PYROBO(NSAV+1,NSAV+2,ACOS(CTHE),PHI,0D0,0D0,0D0)
13525 ENDIF
13526 CALL PYROBO(NSAV,NSAV+2,0D0,0D0,0D0,0D0,DBETAZ)
13527 ENDIF
13528
13529
13530 ELSEIF(VINT(62+JT).LT.(VINT(66+JT)+PARP(103))**2) THEN
13531 N=N+2
13532 K(N-1,1)=1
13533 K(N,1)=1
13534 K(N-1,3)=I+2
13535 K(N,3)=I+2
13536 PMMAS=SQRT(VINT(62+JT))
13537 NTRY=0
13538 150 NTRY=NTRY+1
13539 IF(NTRY.LT.20) THEN
13540 MINT(105)=MINT(102+JT)
13541 MINT(109)=MINT(106+JT)
13542 CALL PYSPLI(KFH,21,KFL1,KFL2)
13543 CALL PYKFDI(KFL1,0,KFL3,KF1)
13544 IF(KF1.EQ.0) GOTO 150
13545 CALL PYKFDI(KFL2,-KFL3,KFLDUM,KF2)
13546 IF(KF2.EQ.0) GOTO 150
13547 ELSE
13548 KF1=KFH
13549 KF2=111
13550 ENDIF
13551 PM1=PYMASS(KF1)
13552 PM2=PYMASS(KF2)
13553 IF(PM1+PM2+PARJ(64).GT.PMMAS) GOTO 150
13554 K(N-1,2)=KF1
13555 K(N,2)=KF2
13556 P(N-1,5)=PM1
13557 P(N,5)=PM2
13558 PZP=SQRT(MAX(0D0,(PMMAS**2-PM1**2-PM2**2)**2-
13559 & 4D0*PM1**2*PM2**2))/(2D0*PMMAS)
13560 P(N-1,3)=PZP
13561 P(N,3)=-PZP
13562 P(N-1,4)=SQRT(PM1**2+PZP**2)
13563 P(N,4)=SQRT(PM2**2+PZP**2)
13564 CALL PYROBO(N-1,N,ACOS(2D0*PYR(0)-1D0),PARU(2)*PYR(0),
13565 & 0D0,0D0,0D0)
13566 DBETAZ=PZ*(-1)**(JT+1)/SQRT(PZ**2+PMMAS**2)
13567 CALL PYROBO(N-1,N,0D0,0D0,0D0,0D0,DBETAZ)
13568
13569
13570 ELSEIF(MSTP(101).EQ.1.OR.(MSTP(101).EQ.3.AND.PYR(0).LT.
13571 & PARP(101))) THEN
13572 N=N+2
13573 K(N-1,1)=2
13574 K(N,1)=1
13575 K(N-1,3)=I+2
13576 K(N,3)=I+2
13577 MINT(105)=MINT(102+JT)
13578 MINT(109)=MINT(106+JT)
13579 CALL PYSPLI(KFH,21,K(N,2),K(N-1,2))
13580 P(N-1,5)=PYMASS(K(N-1,2))
13581 P(N,5)=PYMASS(K(N,2))
13582 SQLAM=(VINT(62+JT)-P(N-1,5)**2-P(N,5)**2)**2-
13583 & 4D0*P(N-1,5)**2*P(N,5)**2
13584 P(N-1,3)=(PE*SQRT(SQLAM)+PZ*(VINT(62+JT)+P(N-1,5)**2-
13585 & P(N,5)**2))/(2D0*VINT(62+JT))*(-1)**(JT+1)
13586 P(N-1,4)=SQRT(P(N-1,3)**2+P(N-1,5)**2)
13587 P(N,3)=PZ*(-1)**(JT+1)-P(N-1,3)
13588 P(N,4)=SQRT(P(N,3)**2+P(N,5)**2)
13589
13590
13591 ELSE
13592 N=N+3
13593 K(N-2,1)=2
13594 K(N-1,1)=2
13595 K(N,1)=1
13596 K(N-2,3)=I+2
13597 K(N-1,3)=I+2
13598 K(N,3)=I+2
13599 MINT(105)=MINT(102+JT)
13600 MINT(109)=MINT(106+JT)
13601 CALL PYSPLI(KFH,21,K(N,2),K(N-2,2))
13602 K(N-1,2)=21
13603 P(N-2,5)=PYMASS(K(N-2,2))
13604 P(N-1,5)=0D0
13605 P(N,5)=PYMASS(K(N,2))
13606
13607 160 IMB=1
13608 IF(MOD(KFH/1000,10).NE.0) IMB=2
13609 CHIK=PARP(92+2*IMB)
13610 IF(MSTP(92).LE.1) THEN
13611 IF(IMB.EQ.1) CHI=PYR(0)
13612 IF(IMB.EQ.2) CHI=1D0-SQRT(PYR(0))
13613 ELSEIF(MSTP(92).EQ.2) THEN
13614 CHI=1D0-PYR(0)**(1D0/(1D0+CHIK))
13615 ELSEIF(MSTP(92).EQ.3) THEN
13616 CUT=2D0*0.3D0/VINT(1)
13617 170 CHI=PYR(0)**2
13618 IF((CHI**2/(CHI**2+CUT**2))**0.25D0*(1D0-CHI)**CHIK.LT.
13619 & PYR(0)) GOTO 170
13620 ELSEIF(MSTP(92).EQ.4) THEN
13621 CUT=2D0*0.3D0/VINT(1)
13622 CUTR=(1D0+SQRT(1D0+CUT**2))/CUT
13623 180 CHIR=CUT*CUTR**PYR(0)
13624 CHI=(CHIR**2-CUT**2)/(2D0*CHIR)
13625 IF((1D0-CHI)**CHIK.LT.PYR(0)) GOTO 180
13626 ELSE
13627 CUT=2D0*0.3D0/VINT(1)
13628 CUTA=CUT**(1D0-PARP(98))
13629 CUTB=(1D0+CUT)**(1D0-PARP(98))
13630 190 CHI=(CUTA+PYR(0)*(CUTB-CUTA))**(1D0/(1D0-PARP(98)))
13631 IF(((CHI+CUT)**2/(2D0*(CHI**2+CUT**2)))**
13632 & (0.5D0*PARP(98))*(1D0-CHI)**CHIK.LT.PYR(0)) GOTO 190
13633 ENDIF
13634 IF(CHI.LT.P(N,5)**2/VINT(62+JT).OR.CHI.GT.1D0-P(N-2,5)**2/
13635 & VINT(62+JT)) GOTO 160
13636 SQM=P(N-2,5)**2/(1D0-CHI)+P(N,5)**2/CHI
13637 PZI=(PE*(VINT(62+JT)-SQM)+PZ*(VINT(62+JT)+SQM))/
13638 & (2D0*VINT(62+JT))
13639 PEI=SQRT(PZI**2+SQM)
13640 PQQP=(1D0-CHI)*(PEI+PZI)
13641 P(N-2,3)=0.5D0*(PQQP-P(N-2,5)**2/PQQP)*(-1)**(JT+1)
13642 P(N-2,4)=SQRT(P(N-2,3)**2+P(N-2,5)**2)
13643 P(N-1,4)=0.5D0*(VINT(62+JT)-SQM)/(PEI+PZI)
13644 P(N-1,3)=P(N-1,4)*(-1)**JT
13645 P(N,3)=PZI*(-1)**(JT+1)-P(N-2,3)
13646 P(N,4)=SQRT(P(N,3)**2+P(N,5)**2)
13647 ENDIF
13648
13649
13650 K(I+2,1)=21
13651 IF(MINT(16+JT).EQ.0) K(I+2,2)=KFH
13652 IF(MINT(16+JT).NE.0.OR.(MINT(10+JT).EQ.22.AND.
13653 & MINT(106+JT).EQ.3)) K(I+2,2)=10*(KFH/10)
13654 K(I+2,3)=I
13655 P(I+2,3)=PZ*(-1)**(JT+1)
13656 P(I+2,4)=PE
13657 P(I+2,5)=SQRT(VINT(62+JT))
13658 200 CONTINUE
13659
13660
13661 IF(VINT(23).LT.0.9D0) THEN
13662 CALL PYROBO(MINT(83)+3,N,ACOS(VINT(23)),VINT(24),0D0,0D0,0D0)
13663 ELSE
13664 CALL PYROBO(MINT(83)+3,N,ASIN(VINT(59)),VINT(24),0D0,0D0,0D0)
13665 ENDIF
13666
13667 RETURN
13668 END
13669
13670
13671
13672
13673
13674
13675
13676
13677 SUBROUTINE PYDISG
13678
13679
13680 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
13681 IMPLICIT INTEGER(I-N)
13682 INTEGER PYK,PYCHGE,PYCOMP
13683
13684 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
13685
13686 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
13687 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
13688 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
13689 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
13690 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
13691 COMMON/PYINT1/MINT(400),VINT(400)
13692 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYSUBS/,/PYPARS/,/PYINT1/
13693
13694 DIMENSION PMS(4)
13695
13696
13697 IDOC=7
13698 MINT(3)=IDOC-6
13699 MINT(4)=IDOC
13700 IPU1=MINT(84)+1
13701 IPU2=MINT(84)+2
13702 IPU3=MINT(84)+3
13703 ISIDE=1
13704 IF(MINT(107).EQ.4) ISIDE=2
13705
13706
13707 DO 120 JT=1,MSTP(126)+20
13708 I=MINT(83)+JT
13709 DO 110 J=1,5
13710 K(I,J)=0
13711 P(I,J)=0D0
13712 V(I,J)=0D0
13713 110 CONTINUE
13714 120 CONTINUE
13715 DO 140 JT=1,2
13716 I=MINT(83)+JT
13717 K(I,1)=21
13718 K(I,2)=MINT(10+JT)
13719 DO 130 J=1,5
13720 P(I,J)=VINT(285+5*JT+J)
13721 130 CONTINUE
13722 140 CONTINUE
13723 MINT(6)=2
13724
13725
13726 DO 150 JT=1,2
13727 I=MINT(84)+JT
13728 K(I,1)=14
13729 K(I,2)=MINT(14+JT)
13730 K(I,3)=MINT(83)+2+JT
13731 150 CONTINUE
13732 IF(MINT(15).EQ.22) THEN
13733 P(MINT(84)+1,3)=0.5D0*(VINT(1)+VINT(307)/VINT(1))
13734 P(MINT(84)+1,4)=0.5D0*(VINT(1)-VINT(307)/VINT(1))
13735 P(MINT(84)+1,5)=-SQRT(VINT(307))
13736 P(MINT(84)+2,3)=-0.5D0*VINT(307)/VINT(1)
13737 P(MINT(84)+2,4)=0.5D0*VINT(307)/VINT(1)
13738 KFRES=MINT(16)
13739 ISIDE=2
13740 ELSE
13741 P(MINT(84)+1,3)=0.5D0*VINT(308)/VINT(1)
13742 P(MINT(84)+1,4)=0.5D0*VINT(308)/VINT(1)
13743 P(MINT(84)+2,3)=-0.5D0*(VINT(1)+VINT(308)/VINT(1))
13744 P(MINT(84)+2,4)=0.5D0*(VINT(1)-VINT(308)/VINT(1))
13745 P(MINT(84)+1,5)=-SQRT(VINT(308))
13746 KFRES=MINT(15)
13747 ISIDE=1
13748 ENDIF
13749 SIDESG=(-1D0)**(ISIDE-1)
13750
13751
13752 DO 170 JT=1,2
13753 I1=MINT(83)+4+JT
13754 I2=MINT(84)+JT
13755 K(I1,1)=21
13756 K(I1,2)=K(I2,2)
13757 K(I1,3)=I1-2
13758 DO 160 J=1,5
13759 P(I1,J)=P(I2,J)
13760 160 CONTINUE
13761
13762
13763 I1=MINT(83)+2+JT
13764 K(I1,1)=21
13765 K(I1,2)=K(I2,2)
13766 K(I1,3)=I1-2
13767 DO 165 J=1,5
13768 P(I1,J)=P(I2,J)
13769 165 CONTINUE
13770 170 CONTINUE
13771
13772
13773 NTRY=0
13774 200 NTRY=NTRY+1
13775 IF(NTRY.GT.100) THEN
13776 MINT(51)=1
13777 RETURN
13778 ENDIF
13779
13780
13781 I=MINT(83)+7
13782 K(IPU3,1)=3
13783 K(IPU3,2)=KFRES
13784 K(IPU3,3)=I
13785 P(IPU3,5)=PYMASS(KFRES)
13786 P(IPU3,3)=P(IPU1,3)+P(IPU2,3)
13787 P(IPU3,4)=P(IPU1,4)+P(IPU2,4)
13788 P(IPU3,5)=0D0
13789 K(I,1)=21
13790 K(I,2)=KFRES
13791 K(I,3)=MINT(83)+4+ISIDE
13792 P(I,3)=P(IPU3,3)
13793 P(I,4)=P(IPU3,4)
13794 P(I,5)=P(IPU3,5)
13795 N=IPU3
13796 MINT(21)=KFRES
13797 MINT(22)=0
13798
13799
13800
13801 220 IF(MINT(40+ISIDE).EQ.2.AND.MINT(10+ISIDE).NE.22) THEN
13802 IF(MSTP(91).LE.0) THEN
13803 PT=0D0
13804 ELSEIF(MSTP(91).EQ.1) THEN
13805 PT=PARP(91)*SQRT(-LOG(PYR(0)))
13806 ELSE
13807 RPT1=PYR(0)
13808 RPT2=PYR(0)
13809 PT=-PARP(92)*LOG(RPT1*RPT2)
13810 ENDIF
13811 IF(PT.GT.PARP(93)) GOTO 220
13812 ELSEIF(MINT(106+ISIDE).EQ.3) THEN
13813 PTA=SQRT(VINT(282+ISIDE))
13814 PTB=0D0
13815 IF(MSTP(66).EQ.5.AND.MSTP(93).EQ.1) THEN
13816 PTB=PARP(99)*SQRT(-LOG(PYR(0)))
13817 ELSEIF(MSTP(66).EQ.5.AND.MSTP(93).EQ.2) THEN
13818 RPT1=PYR(0)
13819 RPT2=PYR(0)
13820 PTB=-PARP(99)*LOG(RPT1*RPT2)
13821 ENDIF
13822 IF(PTB.GT.PARP(100)) GOTO 220
13823 PT=SQRT(PTA**2+PTB**2+2D0*PTA*PTB*COS(PARU(2)*PYR(0)))
13824 IF(NTRY.GT.10) PT=PT*0.8D0**(NTRY-10)
13825 ELSEIF(IABS(MINT(14+ISIDE)).LE.8.OR.MINT(14+ISIDE).EQ.21) THEN
13826 IF(MSTP(93).LE.0) THEN
13827 PT=0D0
13828 ELSEIF(MSTP(93).EQ.1) THEN
13829 PT=PARP(99)*SQRT(-LOG(PYR(0)))
13830 ELSEIF(MSTP(93).EQ.2) THEN
13831 RPT1=PYR(0)
13832 RPT2=PYR(0)
13833 PT=-PARP(99)*LOG(RPT1*RPT2)
13834 ELSEIF(MSTP(93).EQ.3) THEN
13835 HA=PARP(99)**2
13836 HB=PARP(100)**2
13837 PT=SQRT(MAX(0D0,HA*(HA+HB)/(HA+HB-PYR(0)*HB)-HA))
13838 ELSE
13839 HA=PARP(99)**2
13840 HB=PARP(100)**2
13841 IF(MSTP(93).EQ.5) HB=MIN(VINT(48),PARP(100)**2)
13842 PT=SQRT(MAX(0D0,HA*((HA+HB)/HA)**PYR(0)-HA))
13843 ENDIF
13844 IF(PT.GT.PARP(100)) GOTO 220
13845 ELSE
13846 PT=0D0
13847 ENDIF
13848 VINT(156+ISIDE)=PT
13849 PHI=PARU(2)*PYR(0)
13850 P(IPU3,1)=PT*COS(PHI)
13851 P(IPU3,2)=PT*SIN(PHI)
13852 P(IPU3,4)=SQRT(P(IPU3,5)**2+PT**2+P(IPU3,3)**2)
13853 PMS(3-ISIDE)=P(IPU3,5)**2+P(IPU3,1)**2+P(IPU3,2)**2
13854 PCP=P(IPU3,4)+ABS(P(IPU3,3))
13855
13856
13857 MINT(105)=MINT(102+ISIDE)
13858 MINT(109)=MINT(106+ISIDE)
13859 CALL PYSPLI(MINT(10+ISIDE),MINT(12+ISIDE),KFLCH,KFLSP)
13860 IF(MINT(51).NE.0) THEN
13861 MINT(51)=0
13862 GOTO 200
13863 ENDIF
13864
13865
13866 I=N+1
13867 K(I,1)=1
13868 K(I,2)=KFLSP
13869 K(I,3)=MINT(83)+ISIDE
13870 P(I,5)=PYMASS(K(I,2))
13871 KCOL=KCHG(PYCOMP(KFLSP),2)
13872 IF(KCOL.NE.0) THEN
13873 K(I,1)=3
13874 KFLS=(3-KCOL*ISIGN(1,KFLSP))/2
13875 K(I,KFLS+3)=MSTU(5)*IPU3
13876 K(IPU3,6-KFLS)=MSTU(5)*I
13877 ICOLR=I
13878 ENDIF
13879 IF(KFLCH.EQ.0) THEN
13880 P(I,1)=-P(IPU3,1)
13881 P(I,2)=-P(IPU3,2)
13882 PMS(ISIDE)=P(I,5)**2+P(I,1)**2+P(I,2)**2
13883 P(I,3)=-P(IPU3,3)
13884 P(I,4)=SQRT(PMS(ISIDE)+P(I,3)**2)
13885 PRP=P(I,4)+ABS(P(I,3))
13886
13887
13888 ELSE
13889 I=I+1
13890 K(I,1)=1
13891 K(I,2)=KFLCH
13892 K(I,3)=MINT(83)+ISIDE
13893 P(I,5)=PYMASS(K(I,2))
13894 KCOL=KCHG(PYCOMP(KFLCH),2)
13895 IF(KCOL.NE.0) THEN
13896 K(I,1)=3
13897 KFLS=(3-KCOL*ISIGN(1,KFLCH))/2
13898 K(I,KFLS+3)=MSTU(5)*IPU3
13899 K(IPU3,6-KFLS)=MSTU(5)*I
13900 ICOLR=I
13901 ENDIF
13902
13903
13904 LOOP=0
13905 370 LOOP=LOOP+1
13906 CALL PYPTDI(1,P(I-1,1),P(I-1,2))
13907 P(I-1,1)=P(I-1,1)-0.5D0*P(IPU3,1)
13908 P(I-1,2)=P(I-1,2)-0.5D0*P(IPU3,2)
13909 PMS(3)=P(I-1,5)**2+P(I-1,1)**2+P(I-1,2)**2
13910 P(I,1)=-P(IPU3,1)-P(I-1,1)
13911 P(I,2)=-P(IPU3,2)-P(I-1,2)
13912 PMS(4)=P(I,5)**2+P(I,1)**2+P(I,2)**2
13913
13914
13915 IMB=1
13916 IF(MOD(MINT(10+ISIDE)/1000,10).NE.0) IMB=2
13917 IF(MSTP(94).LE.1) THEN
13918 IF(IMB.EQ.1) CHI=PYR(0)
13919 IF(IMB.EQ.2) CHI=1D0-SQRT(PYR(0))
13920 IF(MOD(KFLCH/1000,10).NE.0) CHI=1D0-CHI
13921 ELSEIF(MSTP(94).EQ.2) THEN
13922 CHI=1D0-PYR(0)**(1D0/(1D0+PARP(93+2*IMB)))
13923 IF(MOD(KFLCH/1000,10).NE.0) CHI=1D0-CHI
13924 ELSEIF(MSTP(94).EQ.3) THEN
13925 CALL PYZDIS(1,0,PMS(4),ZZ)
13926 CHI=ZZ
13927 ELSE
13928 CALL PYZDIS(1000,0,PMS(4),ZZ)
13929 CHI=ZZ
13930 ENDIF
13931
13932
13933 CHI=MAX(1D-8,MIN(1D0-1D-8,CHI))
13934 PMS(ISIDE)=PMS(4)/CHI+PMS(3)/(1D0-CHI)
13935 IF(PMS(ISIDE).GT.P(IPU3,4)**2) THEN
13936 IF(LOOP.LT.10) GOTO 370
13937 GOTO 200
13938 ENDIF
13939 VINT(158+ISIDE)=CHI
13940
13941
13942 PRP=SQRT(PMS(ISIDE)+P(IPU3,3)**2)+ABS(P(IPU3,3))
13943 PW1=(1D0-CHI)*PRP
13944 P(I-1,4)=0.5D0*(PW1+PMS(3)/PW1)
13945 P(I-1,3)=0.5D0*(PW1-PMS(3)/PW1)*SIDESG
13946 PW2=CHI*PRP
13947 P(I,4)=0.5D0*(PW2+PMS(4)/PW2)
13948 P(I,3)=0.5D0*(PW2-PMS(4)/PW2)*SIDESG
13949 ENDIF
13950 N=I
13951
13952
13953 IF(SQRT(PMS(1))+SQRT(PMS(2)).GT.0.99D0*VINT(1)) GOTO 200
13954 DSQLAM=SQRT(MAX(0D0,(VINT(2)-PMS(1)-PMS(2))**2-4D0*PMS(1)*PMS(2)))
13955 DRKC=(VINT(2)+PMS(3-ISIDE)-PMS(ISIDE)+DSQLAM)/
13956 &(2D0*VINT(1)*PCP)
13957 DRKR=(VINT(2)+PMS(ISIDE)-PMS(3-ISIDE)+DSQLAM)/
13958 &(2D0*VINT(1)*PRP)
13959 DBEC=-SIDESG*(DRKC**2-1D0)/(DRKC**2+1D0)
13960 DBER=SIDESG*(DRKR**2-1D0)/(DRKR**2+1D0)
13961 CALL PYROBO(IPU3,IPU3,0D0,0D0,0D0,0D0,DBEC)
13962 CALL PYROBO(IPU3+1,N,0D0,0D0,0D0,0D0,DBER)
13963
13964
13965 QMAX=2D0*SQRT(VINT(309-ISIDE))
13966 MSTJ48=MSTJ(48)
13967 MSTJ(48)=1
13968 PARJ86=PARJ(86)
13969 PARJ(86)=0D0
13970 IF(MSTP(71).EQ.1) CALL PYSHOW(IPU3,ICOLR,QMAX)
13971 MSTJ(48)=MSTJ48
13972 PARJ(86)=PARJ86
13973
13974 RETURN
13975 END
13976
13977
13978
13979
13980
13981
13982
13983 SUBROUTINE PYDOCU
13984
13985
13986 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
13987 IMPLICIT INTEGER(I-N)
13988 INTEGER PYK,PYCHGE,PYCOMP
13989
13990 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
13991 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
13992 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
13993 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
13994 COMMON/PYINT1/MINT(400),VINT(400)
13995 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
13996 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
13997 SAVE /PYJETS/,/PYDAT1/,/PYSUBS/,/PYPARS/,/PYINT1/,/PYINT2/,
13998 &/PYINT5/
13999
14000
14001 ISUB=MINT(1)
14002 IF(MSTP(111).NE.-1) NGEN(ISUB,3)=NGEN(ISUB,3)+1
14003 NGEN(0,3)=NGEN(0,3)+1
14004 XSEC(0,3)=0D0
14005 DO 100 I=1,500
14006 IF(I.EQ.96.OR.I.EQ.97) THEN
14007 XSEC(I,3)=0D0
14008 ELSEIF(MSUB(95).EQ.1.AND.(I.EQ.11.OR.I.EQ.12.OR.I.EQ.13.OR.
14009 & I.EQ.28.OR.I.EQ.53.OR.I.EQ.68)) THEN
14010 XSEC(I,3)=XSEC(96,2)*NGEN(I,3)/MAX(1D0,DBLE(NGEN(96,1))*
14011 & DBLE(NGEN(96,2)))
14012 ELSEIF(MSUB(I).EQ.0.OR.NGEN(I,1).EQ.0) THEN
14013 XSEC(I,3)=0D0
14014 ELSEIF(NGEN(I,2).EQ.0) THEN
14015 XSEC(I,3)=XSEC(I,2)*NGEN(0,3)/(DBLE(NGEN(I,1))*
14016 & DBLE(NGEN(0,2)))
14017 ELSE
14018 XSEC(I,3)=XSEC(I,2)*NGEN(I,3)/(DBLE(NGEN(I,1))*
14019 & DBLE(NGEN(I,2)))
14020 ENDIF
14021 XSEC(0,3)=XSEC(0,3)+XSEC(I,3)
14022 100 CONTINUE
14023
14024
14025 IF(MSUB(95).EQ.1) THEN
14026 XSECH=XSEC(11,3)+XSEC(12,3)+XSEC(13,3)+XSEC(28,3)+XSEC(53,3)+
14027 & XSEC(68,3)+XSEC(95,3)
14028 XSECW=XSEC(97,2)/MAX(1D0,DBLE(NGEN(97,1)))
14029 IF(XSECH.GT.1D-20.AND.XSECW.GT.1D-20) THEN
14030 FAC=XSECW/XSECH
14031 XSEC(11,3)=FAC*XSEC(11,3)
14032 XSEC(12,3)=FAC*XSEC(12,3)
14033 XSEC(13,3)=FAC*XSEC(13,3)
14034 XSEC(28,3)=FAC*XSEC(28,3)
14035 XSEC(53,3)=FAC*XSEC(53,3)
14036 XSEC(68,3)=FAC*XSEC(68,3)
14037 XSEC(95,3)=FAC*XSEC(95,3)
14038 XSEC(0,3)=XSEC(0,3)-XSECH+XSECW
14039 ENDIF
14040 ENDIF
14041
14042
14043 IF(MINT(121).GT.1) THEN
14044 IGA=MINT(122)
14045 CALL PYSAVE(2,IGA)
14046 CALL PYSAVE(5,0)
14047 ENDIF
14048
14049
14050 DO 110 J=1,200
14051 MSTI(J)=0
14052 PARI(J)=0D0
14053 110 CONTINUE
14054
14055
14056 DO 120 J=1,32
14057 MSTI(J)=MINT(J)
14058 120 CONTINUE
14059 IF(MINT(121).GT.1) MSTI(9)=MINT(122)
14060
14061
14062 PARI(1)=XSEC(0,3)
14063 PARI(2)=XSEC(0,3)/MINT(5)
14064 PARI(9)=VINT(99)
14065 PARI(10)=VINT(100)
14066 VINT(98)=VINT(98)+VINT(100)
14067 IF(MSTP(142).EQ.1) PARI(2)=XSEC(0,3)/VINT(98)
14068
14069
14070 PARI(11)=VINT(1)
14071 PARI(12)=VINT(2)
14072 IF(ISUB.NE.95) THEN
14073 DO 130 J=13,26
14074 PARI(J)=VINT(30+J)
14075 130 CONTINUE
14076 PARI(31)=VINT(141)
14077 PARI(32)=VINT(142)
14078 PARI(33)=VINT(41)
14079 PARI(34)=VINT(42)
14080 PARI(35)=PARI(33)-PARI(34)
14081 PARI(36)=VINT(21)
14082 PARI(37)=VINT(22)
14083 PARI(38)=VINT(26)
14084 PARI(39)=VINT(157)
14085 PARI(40)=VINT(158)
14086 PARI(41)=VINT(23)
14087 PARI(42)=2D0*VINT(47)/VINT(1)
14088 ENDIF
14089
14090
14091 IF(ISUB.NE.95.AND.MINT(7)*MINT(8).NE.0) THEN
14092 DO 140 IS=7,8
14093 I=MINT(IS)
14094 PARI(36+IS)=P(I,3)/VINT(1)
14095 PARI(38+IS)=P(I,4)/VINT(1)
14096 PR=MAX(1D-20,P(I,5)**2+P(I,1)**2+P(I,2)**2)
14097 PARI(40+IS)=SIGN(LOG(MIN((SQRT(PR+P(I,3)**2)+ABS(P(I,3)))/
14098 & SQRT(PR),1D20)),P(I,3))
14099 PR=MAX(1D-20,P(I,1)**2+P(I,2)**2)
14100 PARI(42+IS)=SIGN(LOG(MIN((SQRT(PR+P(I,3)**2)+ABS(P(I,3)))/
14101 & SQRT(PR),1D20)),P(I,3))
14102 PARI(44+IS)=P(I,3)/SQRT(1D-20+P(I,1)**2+P(I,2)**2+P(I,3)**2)
14103 PARI(46+IS)=PYANGL(P(I,3),SQRT(P(I,1)**2+P(I,2)**2))
14104 PARI(48+IS)=PYANGL(P(I,1),P(I,2))
14105 140 CONTINUE
14106 ENDIF
14107
14108
14109 PARI(65)=2D0*PARI(17)
14110 IF(ISUB.LE.90.OR.ISUB.GE.95) THEN
14111 DO 150 I=MSTP(126)+1,N
14112 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 150
14113 PT=SQRT(P(I,1)**2+P(I,2)**2)
14114 PARI(69)=PARI(69)+PT
14115 IF(I.LE.MINT(52)) PARI(66)=PARI(66)+PT
14116 IF(I.GT.MINT(52).AND.I.LE.MINT(53)) PARI(68)=PARI(68)+PT
14117 150 CONTINUE
14118 PARI(67)=PARI(68)
14119 PARI(71)=VINT(151)
14120 PARI(72)=VINT(152)
14121 PARI(73)=VINT(151)
14122 PARI(74)=VINT(152)
14123 ELSE
14124 PARI(66)=PARI(65)
14125 PARI(69)=PARI(65)
14126 ENDIF
14127
14128
14129 PARI(61)=VINT(148)
14130 PARI(75)=VINT(155)
14131 PARI(76)=VINT(156)
14132 PARI(77)=VINT(159)
14133 PARI(78)=VINT(160)
14134 PARI(81)=VINT(138)
14135
14136
14137 MSTI(71)=MINT(141)
14138 MSTI(72)=MINT(142)
14139 PARI(101)=VINT(301)
14140 PARI(102)=VINT(302)
14141 DO 160 I=103,114
14142 PARI(I)=VINT(I+202)
14143 160 CONTINUE
14144
14145
14146 IF(ISET(ISUB).EQ.1.OR.ISET(ISUB).EQ.3) THEN
14147 MSTU(161)=MINT(21)
14148 MSTU(162)=0
14149 ELSEIF(ISET(ISUB).EQ.5) THEN
14150 MSTU(161)=MINT(23)
14151 MSTU(162)=0
14152 ELSE
14153 MSTU(161)=MINT(21)
14154 MSTU(162)=MINT(22)
14155 ENDIF
14156
14157 RETURN
14158 END
14159
14160
14161
14162
14163
14164
14165 SUBROUTINE PYFRAM(IFRAME)
14166
14167
14168 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
14169 IMPLICIT INTEGER(I-N)
14170 INTEGER PYK,PYCHGE,PYCOMP
14171
14172 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
14173 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
14174 COMMON/PYINT1/MINT(400),VINT(400)
14175 SAVE /PYDAT1/,/PYPARS/,/PYINT1/
14176
14177
14178 IF(IFRAME.EQ.1.OR.IFRAME.EQ.2.OR.(IFRAME.EQ.3.AND.
14179 &MINT(91).EQ.1)) THEN
14180 IF(IFRAME.EQ.MINT(6)) RETURN
14181 ELSE
14182 WRITE(MSTU(11),5000) IFRAME,MINT(6)
14183 RETURN
14184 ENDIF
14185
14186 IF(MINT(6).EQ.1) THEN
14187
14188
14189 CALL PYROBO(0,0,0D0,0D0,-VINT(8),-VINT(9),-VINT(10))
14190 CALL PYROBO(0,0,0D0,-VINT(7),0D0,0D0,0D0)
14191 CALL PYROBO(0,0,-VINT(6),0D0,0D0,0D0,0D0)
14192 ELSEIF(MINT(6).EQ.3) THEN
14193
14194 CALL PYROBO(0,0,-VINT(221),-VINT(222),-VINT(223),-VINT(224),
14195 & -VINT(225))
14196 ENDIF
14197
14198 IF(IFRAME.EQ.1) THEN
14199
14200
14201 CALL PYROBO(0,0,VINT(6),VINT(7),VINT(8),VINT(9),VINT(10))
14202 ELSEIF(IFRAME.EQ.3) THEN
14203
14204 CALL PYROBO(0,0,0D0,0D0,VINT(223),VINT(224),VINT(225))
14205 CALL PYROBO(0,0,0D0,VINT(222),0D0,0D0,0D0)
14206 CALL PYROBO(0,0,VINT(221),0D0,0D0,0D0,0D0)
14207 ENDIF
14208
14209
14210 MINT(6)=IFRAME
14211 MSTI(6)=IFRAME
14212
14213 5000 FORMAT(1X,'Error: illegal values in subroutine PYFRAM.',1X,
14214 &'No transformation performed.'/1X,'IFRAME =',1X,I5,'; MINT(6) =',
14215 &1X,I5)
14216
14217 RETURN
14218 END
14219
14220
14221
14222
14223
14224
14225 SUBROUTINE PYWIDT(KFLR,SH,WDTP,WDTE)
14226
14227
14228 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
14229 IMPLICIT INTEGER(I-N)
14230 INTEGER PYK,PYCHGE,PYCOMP
14231
14232 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
14233
14234 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
14235 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
14236 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
14237 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
14238 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
14239 COMMON/PYINT1/MINT(400),VINT(400)
14240 COMMON/PYINT4/MWID(500),WIDS(500,5)
14241 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
14242 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
14243 &SFMIX(16,4)
14244 SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYSUBS/,/PYPARS/,/PYINT1/,
14245 &/PYINT4/,/PYMSSM/,/PYSSMT/
14246
14247 DIMENSION WDTP(0:200),WDTE(0:200,0:5),MOFSV(3,2),WIDWSV(3,2),
14248 &WID2SV(3,2),WDTPP(0:200),WDTEP(0:200,0:5)
14249 SAVE MOFSV,WIDWSV,WID2SV
14250 DATA MOFSV/6*0/,WIDWSV/6*0D0/,WID2SV/6*0D0/
14251
14252
14253 KFLA=IABS(KFLR)
14254 KFLS=ISIGN(1,KFLR)
14255 KC=PYCOMP(KFLA)
14256 SHR=SQRT(SH)
14257 PMR=PMAS(KC,1)
14258
14259
14260 DO 110 I=0,200
14261 WDTP(I)=0D0
14262 DO 100 J=0,5
14263 WDTE(I,J)=0D0
14264 100 CONTINUE
14265 110 CONTINUE
14266
14267
14268 IF((MWID(KC).LE.0.OR.MWID(KC).GE.4).AND.KFLA.NE.21.AND.
14269 &KFLA.NE.22) THEN
14270 WDTP(0)=1D0
14271 WDTE(0,0)=1D0
14272 MINT(61)=0
14273 MINT(62)=0
14274 MINT(63)=0
14275 RETURN
14276
14277
14278 ELSEIF(MWID(KC).EQ.2.OR.(MWID(KC).EQ.3.AND.MINT(63).EQ.0)) THEN
14279
14280 DO 120 I=1,MDCY(KC,3)
14281 IDC=I+MDCY(KC,2)-1
14282 IF(MDME(IDC,1).LT.0) GOTO 120
14283
14284
14285 KFD1=KFDP(IDC,1)
14286 KFC1=PYCOMP(KFD1)
14287 IF(KCHG(KFC1,3).EQ.1) KFD1=KFLS*KFD1
14288 PM1=PMAS(KFC1,1)
14289 KFD2=KFDP(IDC,2)
14290 KFC2=PYCOMP(KFD2)
14291 IF(KCHG(KFC2,3).EQ.1) KFD2=KFLS*KFD2
14292 PM2=PMAS(KFC2,1)
14293 KFD3=KFDP(IDC,3)
14294 PM3=0D0
14295 IF(KFD3.NE.0) THEN
14296 KFC3=PYCOMP(KFD3)
14297 IF(KCHG(KFC3,3).EQ.1) KFD3=KFLS*KFD3
14298 PM3=PMAS(KFC3,1)
14299 ENDIF
14300
14301
14302 WDTP(I)=PMAS(KC,2)*BRAT(IDC)*(SHR/PMR)
14303 IF(MDME(IDC,2).GE.51.AND.MDME(IDC,2).LE.53.AND.
14304 & PM1+PM2+PM3.GE.SHR) THEN
14305 WDTP(I)=0D0
14306 ELSEIF(MDME(IDC,2).EQ.52.AND.KFD3.EQ.0) THEN
14307 WDTP(I)=WDTP(I)*SQRT(MAX(0D0,(SH-PM1**2-PM2**2)**2-
14308 & 4D0*PM1**2*PM2**2))/SH
14309 ELSEIF(MDME(IDC,2).EQ.52) THEN
14310 PMA=MAX(PM1,PM2,PM3)
14311 PMC=MIN(PM1,PM2,PM3)
14312 PMB=PM1+PM2+PM3-PMA-PMC
14313 PMBC=PMB+PMC+0.5D0*(SHR-PMA-PMC-PMC)
14314 PMAN=PMA**2/SH
14315 PMBN=PMB**2/SH
14316 PMCN=PMC**2/SH
14317 PMBCN=PMBC**2/SH
14318 WDTP(I)=WDTP(I)*SQRT(MAX(0D0,
14319 & ((1D0-PMAN-PMBCN)**2-4D0*PMAN*PMBCN)*
14320 & ((PMBCN-PMBN-PMCN)**2-4D0*PMBN*PMCN)))*
14321 & ((SHR-PMA)**2-(PMB+PMC)**2)*
14322 & (1D0+0.25D0*(PMA+PMB+PMC)/SHR)/
14323 & ((1D0-PMBCN)*PMBCN*SH)
14324 ELSEIF(MDME(IDC,2).EQ.53.AND.KFD3.EQ.0) THEN
14325 WDTP(I)=WDTP(I)*SQRT(
14326 & MAX(0D0,(SH-PM1**2-PM2**2)**2-4D0*PM1**2*PM2**2)/
14327 & MAX(1D-4,(PMR**2-PM1**2-PM2**2)**2-4D0*PM1**2*PM2**2))
14328 ELSEIF(MDME(IDC,2).EQ.53) THEN
14329 PMA=MAX(PM1,PM2,PM3)
14330 PMC=MIN(PM1,PM2,PM3)
14331 PMB=PM1+PM2+PM3-PMA-PMC
14332 PMBC=PMB+PMC+0.5D0*(SHR-PMA-PMB-PMC)
14333 PMAN=PMA**2/SH
14334 PMBN=PMB**2/SH
14335 PMCN=PMC**2/SH
14336 PMBCN=PMBC**2/SH
14337 FACACT=SQRT(MAX(0D0,
14338 & ((1D0-PMAN-PMBCN)**2-4D0*PMAN*PMBCN)*
14339 & ((PMBCN-PMBN-PMCN)**2-4D0*PMBN*PMCN)))*
14340 & ((SHR-PMA)**2-(PMB+PMC)**2)*
14341 & (1D0+0.25D0*(PMA+PMB+PMC)/SHR)/
14342 & ((1D0-PMBCN)*PMBCN*SH)
14343 PMBC=PMB+PMC+0.5D0*(PMR-PMA-PMB-PMC)
14344 PMAN=PMA**2/PMR**2
14345 PMBN=PMB**2/PMR**2
14346 PMCN=PMC**2/PMR**2
14347 PMBCN=PMBC**2/PMR**2
14348 FACNOM=SQRT(MAX(0D0,
14349 & ((1D0-PMAN-PMBCN)**2-4D0*PMAN*PMBCN)*
14350 & ((PMBCN-PMBN-PMCN)**2-4D0*PMBN*PMCN)))*
14351 & ((PMR-PMA)**2-(PMB+PMC)**2)*
14352 & (1D0+0.25D0*(PMA+PMB+PMC)/PMR)/
14353 & ((1D0-PMBCN)*PMBCN*PMR**2)
14354 WDTP(I)=WDTP(I)*FACACT/MAX(1D-6,FACNOM)
14355 ENDIF
14356 WDTP(0)=WDTP(0)+WDTP(I)
14357
14358
14359 WID2=1D0
14360 IF(MDME(IDC,1).GT.0) THEN
14361 IF(KFD2.EQ.KFD1) THEN
14362 IF(KCHG(KFC1,3).EQ.0) THEN
14363 WID2=WIDS(KFC1,1)
14364 ELSEIF(KFD1.GT.0) THEN
14365 WID2=WIDS(KFC1,4)
14366 ELSE
14367 WID2=WIDS(KFC1,5)
14368 ENDIF
14369 IF(KFD3.GT.0) THEN
14370 WID2=WID2*WIDS(KFC3,2)
14371 ELSEIF(KFD3.LT.0) THEN
14372 WID2=WID2*WIDS(KFC3,3)
14373 ENDIF
14374 ELSEIF(KFD2.EQ.-KFD1) THEN
14375 WID2=WIDS(KFC1,1)
14376 IF(KFD3.GT.0) THEN
14377 WID2=WID2*WIDS(KFC3,2)
14378 ELSEIF(KFD3.LT.0) THEN
14379 WID2=WID2*WIDS(KFC3,3)
14380 ENDIF
14381 ELSEIF(KFD3.EQ.KFD1) THEN
14382 IF(KCHG(KFC1,3).EQ.0) THEN
14383 WID2=WIDS(KFC1,1)
14384 ELSEIF(KFD1.GT.0) THEN
14385 WID2=WIDS(KFC1,4)
14386 ELSE
14387 WID2=WIDS(KFC1,5)
14388 ENDIF
14389 IF(KFD2.GT.0) THEN
14390 WID2=WID2*WIDS(KFC2,2)
14391 ELSEIF(KFD2.LT.0) THEN
14392 WID2=WID2*WIDS(KFC2,3)
14393 ENDIF
14394 ELSEIF(KFD3.EQ.-KFD1) THEN
14395 WID2=WIDS(KFC1,1)
14396 IF(KFD2.GT.0) THEN
14397 WID2=WID2*WIDS(KFC2,2)
14398 ELSEIF(KFD2.LT.0) THEN
14399 WID2=WID2*WIDS(KFC2,3)
14400 ENDIF
14401 ELSEIF(KFD3.EQ.KFD2) THEN
14402 IF(KCHG(KFC2,3).EQ.0) THEN
14403 WID2=WIDS(KFC2,1)
14404 ELSEIF(KFD2.GT.0) THEN
14405 WID2=WIDS(KFC2,4)
14406 ELSE
14407 WID2=WIDS(KFC2,5)
14408 ENDIF
14409 IF(KFD1.GT.0) THEN
14410 WID2=WID2*WIDS(KFC1,2)
14411 ELSEIF(KFD1.LT.0) THEN
14412 WID2=WID2*WIDS(KFC1,3)
14413 ENDIF
14414 ELSEIF(KFD3.EQ.-KFD2) THEN
14415 WID2=WIDS(KFC2,1)
14416 IF(KFD1.GT.0) THEN
14417 WID2=WID2*WIDS(KFC1,2)
14418 ELSEIF(KFD1.LT.0) THEN
14419 WID2=WID2*WIDS(KFC1,3)
14420 ENDIF
14421 ELSE
14422 IF(KFD1.GT.0) THEN
14423 WID2=WIDS(KFC1,2)
14424 ELSE
14425 WID2=WIDS(KFC1,3)
14426 ENDIF
14427 IF(KFD2.GT.0) THEN
14428 WID2=WID2*WIDS(KFC2,2)
14429 ELSE
14430 WID2=WID2*WIDS(KFC2,3)
14431 ENDIF
14432 IF(KFD3.GT.0) THEN
14433 WID2=WID2*WIDS(KFC3,2)
14434 ELSEIF(KFD3.LT.0) THEN
14435 WID2=WID2*WIDS(KFC3,3)
14436 ENDIF
14437 ENDIF
14438
14439
14440 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
14441 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
14442 WDTE(I,0)=WDTE(I,MDME(IDC,1))
14443 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
14444 ENDIF
14445 120 CONTINUE
14446
14447 MINT(61)=0
14448 MINT(62)=0
14449 MINT(63)=0
14450 RETURN
14451 ENDIF
14452
14453
14454
14455 KFHIGG=25
14456 IHIGG=1
14457 IF(KFLA.EQ.35.OR.KFLA.EQ.36) THEN
14458 KFHIGG=KFLA
14459 IHIGG=KFLA-33
14460 ENDIF
14461
14462
14463 XW=PARU(102)
14464 XWV=XW
14465 IF(MSTP(8).GE.2) XW=1D0-(PMAS(24,1)/PMAS(23,1))**2
14466 XW1=1D0-XW
14467 AEM=PYALEM(SH)
14468 IF(MSTP(8).GE.1) AEM=SQRT(2D0)*PARU(105)*PMAS(24,1)**2*XW/PARU(1)
14469 AS=PYALPS(SH)
14470 RADC=1D0+AS/PARU(1)
14471
14472 IF(KFLA.EQ.6) THEN
14473
14474 FAC=(AEM/(16D0*XW))*(SH/PMAS(24,1)**2)*SHR
14475 RADCT=1D0-2.5D0*AS/PARU(1)
14476 DO 130 I=1,MDCY(KC,3)
14477 IDC=I+MDCY(KC,2)-1
14478 IF(MDME(IDC,1).LT.0) GOTO 130
14479 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
14480 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
14481 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 130
14482 WID2=1D0
14483 IF(I.GE.4.AND.I.LE.7) THEN
14484
14485 WDTP(I)=FAC*VCKM(3,I-3)*RADCT*
14486 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))*
14487 & ((1D0-RM2)**2+(1D0+RM2)*RM1-2D0*RM1**2)
14488 IF(KFLR.GT.0) THEN
14489 WID2=WIDS(24,2)
14490 IF(I.EQ.7) WID2=WID2*WIDS(7,2)
14491 ELSE
14492 WID2=WIDS(24,3)
14493 IF(I.EQ.7) WID2=WID2*WIDS(7,3)
14494 ENDIF
14495 ELSEIF(I.EQ.9) THEN
14496
14497 WDTP(I)=FAC*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))*
14498 & ((1D0+RM2-RM1)*(RM2*PARU(141)**2+1D0/PARU(141)**2)+4D0*RM2)
14499 WID2=WIDS(37,2)
14500 IF(KFLR.LT.0) WID2=WIDS(37,3)
14501
14502 ELSEIF(I.GE.10.AND.I.LE.13.AND.IMSS(1).NE.0) THEN
14503
14504 BETA=ATAN(RMSS(5))
14505 SINB=SIN(BETA)
14506 TANW=SQRT(PARU(102)/(1D0-PARU(102)))
14507 ET=KCHG(6,1)/3D0
14508 T3L=SIGN(0.5D0,ET)
14509 KFC1=PYCOMP(KFDP(IDC,1))
14510 KFC2=PYCOMP(KFDP(IDC,2))
14511 PMNCHI=PMAS(KFC1,1)
14512 PMSTOP=PMAS(KFC2,1)
14513 IF(SHR.GT.PMNCHI+PMSTOP) THEN
14514 IZ=I-9
14515 AL=SHR*ZMIX(IZ,4)/(2.0D0*PMAS(24,1)*SINB)
14516 AR=-ET*ZMIX(IZ,1)*TANW
14517 BL=T3L*(ZMIX(IZ,2)-ZMIX(IZ,1)*TANW)-AR
14518 BR=AL
14519 FL=SFMIX(6,1)*AL+SFMIX(6,2)*AR
14520 FR=SFMIX(6,1)*BL+SFMIX(6,2)*BR
14521 PCM=SQRT((SH-(PMNCHI+PMSTOP)**2)*
14522 & (SH-(PMNCHI-PMSTOP)**2))/(2D0*SHR)
14523 WDTP(I)=(0.5D0*PYALEM(SH)/PARU(102))*PCM*((FL**2+FR**2)*
14524 & (SH+PMNCHI**2-PMSTOP**2)+SMZ(IZ)*4D0*SHR*FL*FR)/SH
14525 IF(KFLR.GT.0) THEN
14526 WID2=WIDS(KFC1,2)*WIDS(KFC2,2)
14527 ELSE
14528 WID2=WIDS(KFC1,2)*WIDS(KFC2,3)
14529 ENDIF
14530 ENDIF
14531 ELSEIF(I.EQ.14.AND.IMSS(1).NE.0) THEN
14532
14533 KFC1=PYCOMP(KFDP(IDC,1))
14534 KFC2=PYCOMP(KFDP(IDC,2))
14535 PMNCHI=PMAS(KFC1,1)
14536 PMSTOP=PMAS(KFC2,1)
14537 IF(SHR.GT.PMNCHI+PMSTOP) THEN
14538 FL=SFMIX(6,1)
14539 FR=-SFMIX(6,2)
14540 PCM=SQRT((SH-(PMNCHI+PMSTOP)**2)*
14541 & (SH-(PMNCHI-PMSTOP)**2))/(2D0*SHR)
14542 WDTP(I)=4D0/3D0*0.5D0*PYALPS(SH)*PCM*((FL**2+FR**2)*
14543 & (SH+PMNCHI**2-PMSTOP**2)+PMNCHI*4D0*SHR*FL*FR)/SH
14544 IF(KFLR.GT.0) THEN
14545 WID2=WIDS(KFC1,2)*WIDS(KFC2,2)
14546 ELSE
14547 WID2=WIDS(KFC1,2)*WIDS(KFC2,3)
14548 ENDIF
14549 ENDIF
14550 ELSEIF(I.EQ.15.AND.IMSS(1).NE.0) THEN
14551
14552 XMP2=RMSS(29)**2
14553 KFC1=PYCOMP(KFDP(IDC,1))
14554 XMGR2=PMAS(KFC1,1)**2
14555 WDTP(I)=SH**2*SHR/(96D0*PARU(1)*XMP2*XMGR2)*(1D0-RM2)**4
14556 KFC2=PYCOMP(KFDP(IDC,2))
14557 WID2=WIDS(KFC2,2)
14558 IF(KFLR.LT.0) WID2=WIDS(KFC2,3)
14559
14560 ENDIF
14561 WDTP(0)=WDTP(0)+WDTP(I)
14562 IF(MDME(IDC,1).GT.0) THEN
14563 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
14564 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
14565 WDTE(I,0)=WDTE(I,MDME(IDC,1))
14566 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
14567 ENDIF
14568 130 CONTINUE
14569
14570 ELSEIF(KFLA.EQ.7) THEN
14571
14572 FAC=(AEM/(16D0*XW))*(SH/PMAS(24,1)**2)*SHR
14573 DO 140 I=1,MDCY(KC,3)
14574 IDC=I+MDCY(KC,2)-1
14575 IF(MDME(IDC,1).LT.0) GOTO 140
14576 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
14577 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
14578 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 140
14579 WID2=1D0
14580 IF(I.GE.4.AND.I.LE.7) THEN
14581
14582 WDTP(I)=FAC*VCKM(I-3,4)*
14583 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))*
14584 & ((1D0-RM2)**2+(1D0+RM2)*RM1-2D0*RM1**2)
14585 IF(KFLR.GT.0) THEN
14586 WID2=WIDS(24,3)
14587 IF(I.EQ.6) WID2=WID2*WIDS(6,2)
14588 IF(I.EQ.7) WID2=WID2*WIDS(8,2)
14589 ELSE
14590 WID2=WIDS(24,2)
14591 IF(I.EQ.6) WID2=WID2*WIDS(6,3)
14592 IF(I.EQ.7) WID2=WID2*WIDS(8,3)
14593 ENDIF
14594 WID2=WIDS(24,3)
14595 IF(KFLR.LT.0) WID2=WIDS(24,2)
14596 ELSEIF(I.EQ.9.OR.I.EQ.10) THEN
14597
14598 WDTP(I)=FAC*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))*
14599 & ((1D0+RM2-RM1)*(PARU(141)**2+RM2/PARU(141)**2)+4D0*RM2)
14600 IF(KFLR.GT.0) THEN
14601 WID2=WIDS(37,3)
14602 IF(I.EQ.10) WID2=WID2*WIDS(6,2)
14603 ELSE
14604 WID2=WIDS(37,2)
14605 IF(I.EQ.10) WID2=WID2*WIDS(6,3)
14606 ENDIF
14607 ENDIF
14608 WDTP(0)=WDTP(0)+WDTP(I)
14609 IF(MDME(IDC,1).GT.0) THEN
14610 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
14611 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
14612 WDTE(I,0)=WDTE(I,MDME(IDC,1))
14613 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
14614 ENDIF
14615 140 CONTINUE
14616
14617 ELSEIF(KFLA.EQ.8) THEN
14618
14619 FAC=(AEM/(16D0*XW))*(SH/PMAS(24,1)**2)*SHR
14620 DO 150 I=1,MDCY(KC,3)
14621 IDC=I+MDCY(KC,2)-1
14622 IF(MDME(IDC,1).LT.0) GOTO 150
14623 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
14624 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
14625 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 150
14626 WID2=1D0
14627 IF(I.GE.4.AND.I.LE.7) THEN
14628
14629 WDTP(I)=FAC*VCKM(4,I-3)*
14630 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))*
14631 & ((1D0-RM2)**2+(1D0+RM2)*RM1-2D0*RM1**2)
14632 IF(KFLR.GT.0) THEN
14633 WID2=WIDS(24,2)
14634 IF(I.EQ.7) WID2=WID2*WIDS(7,2)
14635 ELSE
14636 WID2=WIDS(24,3)
14637 IF(I.EQ.7) WID2=WID2*WIDS(7,3)
14638 ENDIF
14639 ELSEIF(I.EQ.9.OR.I.EQ.10) THEN
14640
14641 WDTP(I)=FAC*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))*
14642 & ((1D0+RM2-RM1)*(RM2*PARU(141)**2+1D0/PARU(141)**2)+4D0*RM2)
14643 IF(KFLR.GT.0) THEN
14644 WID2=WIDS(37,2)
14645 IF(I.EQ.10) WID2=WID2*WIDS(7,2)
14646 ELSE
14647 WID2=WIDS(37,3)
14648 IF(I.EQ.10) WID2=WID2*WIDS(7,3)
14649 ENDIF
14650 ENDIF
14651 WDTP(0)=WDTP(0)+WDTP(I)
14652 IF(MDME(IDC,1).GT.0) THEN
14653 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
14654 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
14655 WDTE(I,0)=WDTE(I,MDME(IDC,1))
14656 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
14657 ENDIF
14658 150 CONTINUE
14659
14660 ELSEIF(KFLA.EQ.17) THEN
14661
14662 FAC=(AEM/(16D0*XW))*(SH/PMAS(24,1)**2)*SHR
14663 DO 160 I=1,MDCY(KC,3)
14664 IDC=I+MDCY(KC,2)-1
14665 IF(MDME(IDC,1).LT.0) GOTO 160
14666 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
14667 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
14668 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 160
14669 WID2=1D0
14670 IF(I.EQ.3) THEN
14671
14672 WDTP(I)=FAC*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))*
14673 & ((1D0-RM2)**2+(1D0+RM2)*RM1-2D0*RM1**2)
14674 IF(KFLR.GT.0) THEN
14675 WID2=WIDS(24,3)
14676 WID2=WID2*WIDS(18,2)
14677 ELSE
14678 WID2=WIDS(24,2)
14679 WID2=WID2*WIDS(18,3)
14680 ENDIF
14681 ELSEIF(I.EQ.5) THEN
14682
14683 WDTP(I)=FAC*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))*
14684 & ((1D0+RM2-RM1)*(PARU(141)**2+RM2/PARU(141)**2)+4D0*RM2)
14685 IF(KFLR.GT.0) THEN
14686 WID2=WIDS(37,3)
14687 WID2=WID2*WIDS(18,2)
14688 ELSE
14689 WID2=WIDS(37,2)
14690 WID2=WID2*WIDS(18,3)
14691 ENDIF
14692 ENDIF
14693 WDTP(0)=WDTP(0)+WDTP(I)
14694 IF(MDME(IDC,1).GT.0) THEN
14695 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
14696 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
14697 WDTE(I,0)=WDTE(I,MDME(IDC,1))
14698 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
14699 ENDIF
14700 160 CONTINUE
14701
14702 ELSEIF(KFLA.EQ.18) THEN
14703
14704 FAC=(AEM/(16D0*XW))*(SH/PMAS(24,1)**2)*SHR
14705 DO 170 I=1,MDCY(KC,3)
14706 IDC=I+MDCY(KC,2)-1
14707 IF(MDME(IDC,1).LT.0) GOTO 170
14708 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
14709 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
14710 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 170
14711 WID2=1D0
14712 IF(I.EQ.2) THEN
14713
14714 WDTP(I)=FAC*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))*
14715 & ((1D0-RM2)**2+(1D0+RM2)*RM1-2D0*RM1**2)
14716 IF(KFLR.GT.0) THEN
14717 WID2=WIDS(24,2)
14718 WID2=WID2*WIDS(17,2)
14719 ELSE
14720 WID2=WIDS(24,3)
14721 WID2=WID2*WIDS(17,3)
14722 ENDIF
14723 ELSEIF(I.EQ.3) THEN
14724
14725 WDTP(I)=FAC*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))*
14726 & ((1D0+RM2-RM1)*(RM2*PARU(141)**2+1D0/PARU(141)**2)+4D0*RM2)
14727 IF(KFLR.GT.0) THEN
14728 WID2=WIDS(37,2)
14729 WID2=WID2*WIDS(17,2)
14730 ELSE
14731 WID2=WIDS(37,3)
14732 WID2=WID2*WIDS(17,3)
14733 ENDIF
14734 ENDIF
14735 WDTP(0)=WDTP(0)+WDTP(I)
14736 IF(MDME(IDC,1).GT.0) THEN
14737 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
14738 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
14739 WDTE(I,0)=WDTE(I,MDME(IDC,1))
14740 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
14741 ENDIF
14742 170 CONTINUE
14743
14744 ELSEIF(KFLA.EQ.21) THEN
14745
14746
14747 DO 180 I=1,MDCY(KC,3)
14748 IDC=I+MDCY(KC,2)-1
14749 IF(MDME(IDC,1).LT.0) GOTO 180
14750 RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SH
14751 RM2=PMAS(IABS(KFDP(IDC,2)),1)**2/SH
14752 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 180
14753 WID2=1D0
14754 IF(I.LE.8) THEN
14755
14756 WDTP(I)=(1D0+2D0*RM1)*SQRT(MAX(0D0,1D0-4D0*RM1))
14757 IF(I.EQ.6) WID2=WIDS(6,1)
14758 IF((I.EQ.7.OR.I.EQ.8)) WID2=WIDS(I,1)
14759 ENDIF
14760 WDTP(0)=WDTP(0)+WDTP(I)
14761 IF(MDME(IDC,1).GT.0) THEN
14762 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
14763 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
14764 WDTE(I,0)=WDTE(I,MDME(IDC,1))
14765 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
14766 ENDIF
14767 180 CONTINUE
14768
14769 ELSEIF(KFLA.EQ.22) THEN
14770
14771
14772 DO 190 I=1,MDCY(KC,3)
14773 IDC=I+MDCY(KC,2)-1
14774 IF(MDME(IDC,1).LT.0) GOTO 190
14775 RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SH
14776 RM2=PMAS(IABS(KFDP(IDC,2)),1)**2/SH
14777 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 190
14778 WID2=1D0
14779 IF(I.LE.8) THEN
14780
14781 EF=KCHG(I,1)/3D0
14782 FCOF=3D0*RADC
14783 IF(I.GE.6.AND.MSTP(35).GE.1) FCOF=FCOF*PYHFTH(SH,SH*RM1,1D0)
14784 WDTP(I)=FCOF*EF**2*(1D0+2D0*RM1)*SQRT(MAX(0D0,1D0-4D0*RM1))
14785 IF(I.EQ.6) WID2=WIDS(6,1)
14786 IF((I.EQ.7.OR.I.EQ.8)) WID2=WIDS(I,1)
14787 ELSEIF(I.LE.12) THEN
14788
14789 EF=KCHG(9+2*(I-8),1)/3D0
14790 WDTP(I)=EF**2*(1D0+2D0*RM1)*SQRT(MAX(0D0,1D0-4D0*RM1))
14791 IF(I.EQ.12) WID2=WIDS(17,1)
14792 ENDIF
14793 WDTP(0)=WDTP(0)+WDTP(I)
14794 IF(MDME(IDC,1).GT.0) THEN
14795 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
14796 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
14797 WDTE(I,0)=WDTE(I,MDME(IDC,1))
14798 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
14799 ENDIF
14800 190 CONTINUE
14801
14802 ELSEIF(KFLA.EQ.23) THEN
14803
14804 ICASE=1
14805 XWC=1D0/(16D0*XW*XW1)
14806 FAC=(AEM*XWC/3D0)*SHR
14807 200 CONTINUE
14808 IF(MINT(61).GE.1.AND.ICASE.EQ.2) THEN
14809 VINT(111)=0D0
14810 VINT(112)=0D0
14811 VINT(114)=0D0
14812 ENDIF
14813 IF(MINT(61).EQ.1.AND.ICASE.EQ.2) THEN
14814 KFI=IABS(MINT(15))
14815 IF(KFI.GT.20) KFI=IABS(MINT(16))
14816 EI=KCHG(KFI,1)/3D0
14817 AI=SIGN(1D0,EI)
14818 VI=AI-4D0*EI*XWV
14819 SQMZ=PMAS(23,1)**2
14820 HZ=SHR*WDTP(0)
14821 IF(MSTP(43).EQ.1.OR.MSTP(43).EQ.3) VINT(111)=1D0
14822 IF(MSTP(43).EQ.3) VINT(112)=
14823 & 2D0*XWC*SH*(SH-SQMZ)/((SH-SQMZ)**2+HZ**2)
14824 IF(MSTP(43).EQ.2.OR.MSTP(43).EQ.3) VINT(114)=
14825 & XWC**2*SH**2/((SH-SQMZ)**2+HZ**2)
14826 ENDIF
14827 DO 210 I=1,MDCY(KC,3)
14828 IDC=I+MDCY(KC,2)-1
14829 IF(MDME(IDC,1).LT.0) GOTO 210
14830 RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SH
14831 RM2=PMAS(IABS(KFDP(IDC,2)),1)**2/SH
14832 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 210
14833 WID2=1D0
14834 IF(I.LE.8) THEN
14835
14836 EF=KCHG(I,1)/3D0
14837 AF=SIGN(1D0,EF+0.1D0)
14838 VF=AF-4D0*EF*XWV
14839 FCOF=3D0*RADC
14840 IF(I.GE.6.AND.MSTP(35).GE.1) FCOF=FCOF*PYHFTH(SH,SH*RM1,1D0)
14841 IF(I.EQ.6) WID2=WIDS(6,1)
14842 IF((I.EQ.7.OR.I.EQ.8)) WID2=WIDS(I,1)
14843 ELSEIF(I.LE.16) THEN
14844
14845 EF=KCHG(I+2,1)/3D0
14846 AF=SIGN(1D0,EF+0.1D0)
14847 VF=AF-4D0*EF*XWV
14848 FCOF=1D0
14849 IF((I.EQ.15.OR.I.EQ.16)) WID2=WIDS(2+I,1)
14850 ENDIF
14851 BE34=SQRT(MAX(0D0,1D0-4D0*RM1))
14852 IF(ICASE.EQ.1) THEN
14853 WDTP(I)=FAC*FCOF*(VF**2*(1D0+2D0*RM1)+AF**2*(1D0-4D0*RM1))*
14854 & BE34
14855 ELSEIF(MINT(61).EQ.1.AND.ICASE.EQ.2) THEN
14856 WDTP(I)=FAC*FCOF*((EI**2*VINT(111)*EF**2+EI*VI*VINT(112)*
14857 & EF*VF+(VI**2+AI**2)*VINT(114)*VF**2)*(1D0+2D0*RM1)+
14858 & (VI**2+AI**2)*VINT(114)*AF**2*(1D0-4D0*RM1))*BE34
14859 ELSEIF(MINT(61).EQ.2.AND.ICASE.EQ.2) THEN
14860 FGGF=FCOF*EF**2*(1D0+2D0*RM1)*BE34
14861 FGZF=FCOF*EF*VF*(1D0+2D0*RM1)*BE34
14862 FZZF=FCOF*(VF**2*(1D0+2D0*RM1)+AF**2*(1D0-4D0*RM1))*BE34
14863 ENDIF
14864 IF(ICASE.EQ.1) WDTP(0)=WDTP(0)+WDTP(I)
14865 IF(MDME(IDC,1).GT.0) THEN
14866 IF((ICASE.EQ.1.AND.MINT(61).NE.1).OR.
14867 & (ICASE.EQ.2.AND.MINT(61).EQ.1)) THEN
14868 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
14869 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+
14870 & WDTE(I,MDME(IDC,1))
14871 WDTE(I,0)=WDTE(I,MDME(IDC,1))
14872 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
14873 ENDIF
14874 IF(MINT(61).EQ.2.AND.ICASE.EQ.2) THEN
14875 IF(MSTP(43).EQ.1.OR.MSTP(43).EQ.3) VINT(111)=
14876 & VINT(111)+FGGF*WID2
14877 IF(MSTP(43).EQ.3) VINT(112)=VINT(112)+FGZF*WID2
14878 IF(MSTP(43).EQ.2.OR.MSTP(43).EQ.3) VINT(114)=
14879 & VINT(114)+FZZF*WID2
14880 ENDIF
14881 ENDIF
14882 210 CONTINUE
14883 IF(MINT(61).GE.1) ICASE=3-ICASE
14884 IF(ICASE.EQ.2) GOTO 200
14885
14886 ELSEIF(KFLA.EQ.24) THEN
14887
14888 FAC=(AEM/(24D0*XW))*SHR
14889 DO 220 I=1,MDCY(KC,3)
14890 IDC=I+MDCY(KC,2)-1
14891 IF(MDME(IDC,1).LT.0) GOTO 220
14892 RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SH
14893 RM2=PMAS(IABS(KFDP(IDC,2)),1)**2/SH
14894 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 220
14895 WID2=1D0
14896 IF(I.LE.16) THEN
14897
14898 FCOF=3D0*RADC*VCKM((I-1)/4+1,MOD(I-1,4)+1)
14899 IF(KFLR.GT.0) THEN
14900 IF(MOD(I,4).EQ.3) WID2=WIDS(6,2)
14901 IF(MOD(I,4).EQ.0) WID2=WIDS(8,2)
14902 IF(I.GE.13) WID2=WID2*WIDS(7,3)
14903 ELSE
14904 IF(MOD(I,4).EQ.3) WID2=WIDS(6,3)
14905 IF(MOD(I,4).EQ.0) WID2=WIDS(8,3)
14906 IF(I.GE.13) WID2=WID2*WIDS(7,2)
14907 ENDIF
14908 ELSEIF(I.LE.20) THEN
14909
14910 FCOF=1D0
14911 IF(KFLR.GT.0) THEN
14912 IF(I.EQ.20) WID2=WIDS(17,3)*WIDS(18,2)
14913 ELSE
14914 IF(I.EQ.20) WID2=WIDS(17,2)*WIDS(18,3)
14915 ENDIF
14916 ENDIF
14917 WDTP(I)=FAC*FCOF*(2D0-RM1-RM2-(RM1-RM2)**2)*
14918 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
14919 WDTP(0)=WDTP(0)+WDTP(I)
14920 IF(MDME(IDC,1).GT.0) THEN
14921 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
14922 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
14923 WDTE(I,0)=WDTE(I,MDME(IDC,1))
14924 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
14925 ENDIF
14926 220 CONTINUE
14927
14928 ELSEIF(KFLA.EQ.25.OR.KFLA.EQ.35.OR.KFLA.EQ.36) THEN
14929
14930 IF(MSTP(49).EQ.0) THEN
14931 FAC=(AEM/(8D0*XW))*(SH/PMAS(24,1)**2)*SHR
14932 ELSE
14933 FAC=(AEM/(8D0*XW))*(PMAS(KFHIGG,1)/PMAS(24,1))**2*SHR
14934 ENDIF
14935 DO 260 I=1,MDCY(KFHIGG,3)
14936 IDC=I+MDCY(KFHIGG,2)-1
14937 IF(MDME(IDC,1).LT.0) GOTO 260
14938 KFC1=PYCOMP(KFDP(IDC,1))
14939 KFC2=PYCOMP(KFDP(IDC,2))
14940 RM1=PMAS(KFC1,1)**2/SH
14941 RM2=PMAS(KFC2,1)**2/SH
14942 IF(I.NE.16.AND.I.NE.17.AND.SQRT(RM1)+SQRT(RM2).GT.1D0)
14943 & GOTO 260
14944 WID2=1D0
14945
14946 IF(I.LE.8) THEN
14947
14948 WDTP(I)=FAC*3D0*(PYMRUN(KFDP(IDC,1),SH)**2/SH)*
14949 & SQRT(MAX(0D0,1D0-4D0*RM1))*RADC
14950
14951 IF(IHIGG.NE.3) WDTP(I)=WDTP(I)*(1D0-4D0*RM1)
14952 IF(MSTP(4).GE.1.OR.IHIGG.GE.2) THEN
14953 IF(MOD(I,2).EQ.1) WDTP(I)=WDTP(I)*PARU(151+10*IHIGG)**2
14954 IF(MOD(I,2).EQ.0) WDTP(I)=WDTP(I)*PARU(152+10*IHIGG)**2
14955 ENDIF
14956 IF(I.EQ.6) WID2=WIDS(6,1)
14957 IF((I.EQ.7.OR.I.EQ.8)) WID2=WIDS(I,1)
14958
14959 ELSEIF(I.LE.12) THEN
14960
14961 WDTP(I)=FAC*RM1*SQRT(MAX(0D0,1D0-4D0*RM1))
14962
14963 IF(IHIGG.NE.3) WDTP(I)=WDTP(I)*(1D0-4D0*RM1)
14964 IF(MSTP(4).GE.1.OR.IHIGG.GE.2) WDTP(I)=WDTP(I)*
14965 & PARU(153+10*IHIGG)**2
14966 IF(I.EQ.12) WID2=WIDS(17,1)
14967
14968 ELSEIF(I.EQ.13) THEN
14969
14970 ETARE=0D0
14971 ETAIM=0D0
14972 DO 230 J=1,2*MSTP(1)
14973 EPS=(2D0*PMAS(J,1))**2/SH
14974
14975 IF(EPS.LE.1D0) THEN
14976 IF(EPS.GT.1D-4) THEN
14977 ROOT=SQRT(1D0-EPS)
14978 RLN=LOG((1D0+ROOT)/(1D0-ROOT))
14979 ELSE
14980 RLN=LOG(4D0/EPS-2D0)
14981 ENDIF
14982 PHIRE=-0.25D0*(RLN**2-PARU(1)**2)
14983 PHIIM=0.5D0*PARU(1)*RLN
14984 ELSE
14985 PHIRE=(ASIN(1D0/SQRT(EPS)))**2
14986 PHIIM=0D0
14987 ENDIF
14988 IF(IHIGG.LE.2) THEN
14989 ETAREJ=-0.5D0*EPS*(1D0+(1D0-EPS)*PHIRE)
14990 ETAIMJ=-0.5D0*EPS*(1D0-EPS)*PHIIM
14991 ELSE
14992 ETAREJ=-0.5D0*EPS*PHIRE
14993 ETAIMJ=-0.5D0*EPS*PHIIM
14994 ENDIF
14995
14996 IF(MSTP(4).GE.1.OR.IHIGG.GE.2) THEN
14997 IF(MOD(J,2).EQ.1) THEN
14998 ETAREJ=ETAREJ*PARU(151+10*IHIGG)
14999 ETAIMJ=ETAIMJ*PARU(151+10*IHIGG)
15000 ELSE
15001 ETAREJ=ETAREJ*PARU(152+10*IHIGG)
15002 ETAIMJ=ETAIMJ*PARU(152+10*IHIGG)
15003 ENDIF
15004 ENDIF
15005 ETARE=ETARE+ETAREJ
15006 ETAIM=ETAIM+ETAIMJ
15007 230 CONTINUE
15008 ETA2=ETARE**2+ETAIM**2
15009 WDTP(I)=FAC*(AS/PARU(1))**2*ETA2
15010
15011 ELSEIF(I.EQ.14) THEN
15012
15013 ETARE=0D0
15014 ETAIM=0D0
15015 JMAX=3*MSTP(1)+1
15016 IF(MSTP(4).GE.1.OR.IHIGG.GE.2) JMAX=JMAX+1
15017 DO 240 J=1,JMAX
15018 IF(J.LE.2*MSTP(1)) THEN
15019 EJ=KCHG(J,1)/3D0
15020 EPS=(2D0*PMAS(J,1))**2/SH
15021 ELSEIF(J.LE.3*MSTP(1)) THEN
15022 JL=2*(J-2*MSTP(1))-1
15023 EJ=KCHG(10+JL,1)/3D0
15024 EPS=(2D0*PMAS(10+JL,1))**2/SH
15025 ELSEIF(J.EQ.3*MSTP(1)+1) THEN
15026 EPS=(2D0*PMAS(24,1))**2/SH
15027 ELSE
15028 EPS=(2D0*PMAS(37,1))**2/SH
15029 ENDIF
15030
15031 IF(EPS.LE.1D0) THEN
15032 IF(EPS.GT.1D-4) THEN
15033 ROOT=SQRT(1D0-EPS)
15034 RLN=LOG((1D0+ROOT)/(1D0-ROOT))
15035 ELSE
15036 RLN=LOG(4D0/EPS-2D0)
15037 ENDIF
15038 PHIRE=-0.25D0*(RLN**2-PARU(1)**2)
15039 PHIIM=0.5D0*PARU(1)*RLN
15040 ELSE
15041 PHIRE=(ASIN(1D0/SQRT(EPS)))**2
15042 PHIIM=0D0
15043 ENDIF
15044 IF(J.LE.3*MSTP(1)) THEN
15045
15046 IF(IHIGG.LE.2) THEN
15047 PHIPRE=-0.5D0*EPS*(1D0+(1D0-EPS)*PHIRE)
15048 PHIPIM=-0.5D0*EPS*(1D0-EPS)*PHIIM
15049 ELSE
15050 PHIPRE=-0.5D0*EPS*PHIRE
15051 PHIPIM=-0.5D0*EPS*PHIIM
15052 ENDIF
15053 IF(J.LE.2*MSTP(1).AND.MOD(J,2).EQ.1) THEN
15054 EJC=3D0*EJ**2
15055 EJH=PARU(151+10*IHIGG)
15056 ELSEIF(J.LE.2*MSTP(1)) THEN
15057 EJC=3D0*EJ**2
15058 EJH=PARU(152+10*IHIGG)
15059 ELSE
15060 EJC=EJ**2
15061 EJH=PARU(153+10*IHIGG)
15062 ENDIF
15063 IF(MSTP(4).EQ.0.AND.IHIGG.EQ.1) EJH=1D0
15064 ETAREJ=EJC*EJH*PHIPRE
15065 ETAIMJ=EJC*EJH*PHIPIM
15066 ELSEIF(J.EQ.3*MSTP(1)+1) THEN
15067
15068 ETAREJ=0.5D0+0.75D0*EPS*(1D0+(2D0-EPS)*PHIRE)
15069 ETAIMJ=0.75D0*EPS*(2D0-EPS)*PHIIM
15070 IF(MSTP(4).GE.1.OR.IHIGG.GE.2) THEN
15071 ETAREJ=ETAREJ*PARU(155+10*IHIGG)
15072 ETAIMJ=ETAIMJ*PARU(155+10*IHIGG)
15073 ENDIF
15074 ELSE
15075
15076 FACHHH=(PMAS(24,1)/PMAS(37,1))**2*
15077 & PARU(158+10*IHIGG+2*(IHIGG/3))
15078 ETAREJ=EPS*(1D0-EPS*PHIRE)*FACHHH
15079 ETAIMJ=-EPS**2*PHIIM*FACHHH
15080 ENDIF
15081 ETARE=ETARE+ETAREJ
15082 ETAIM=ETAIM+ETAIMJ
15083 240 CONTINUE
15084 ETA2=ETARE**2+ETAIM**2
15085 WDTP(I)=FAC*(AEM/PARU(1))**2*0.5D0*ETA2
15086
15087 ELSEIF(I.EQ.15) THEN
15088
15089 ETARE=0D0
15090 ETAIM=0D0
15091 JMAX=3*MSTP(1)+1
15092 IF(MSTP(4).GE.1.OR.IHIGG.GE.2) JMAX=JMAX+1
15093 DO 250 J=1,JMAX
15094 IF(J.LE.2*MSTP(1)) THEN
15095 EJ=KCHG(J,1)/3D0
15096 AJ=SIGN(1D0,EJ+0.1D0)
15097 VJ=AJ-4D0*EJ*XWV
15098 EPS=(2D0*PMAS(J,1))**2/SH
15099 EPSP=(2D0*PMAS(J,1)/PMAS(23,1))**2
15100 ELSEIF(J.LE.3*MSTP(1)) THEN
15101 JL=2*(J-2*MSTP(1))-1
15102 EJ=KCHG(10+JL,1)/3D0
15103 AJ=SIGN(1D0,EJ+0.1D0)
15104 VJ=AJ-4D0*EJ*XWV
15105 EPS=(2D0*PMAS(10+JL,1))**2/SH
15106 EPSP=(2D0*PMAS(10+JL,1)/PMAS(23,1))**2
15107 ELSE
15108 EPS=(2D0*PMAS(24,1))**2/SH
15109 EPSP=(2D0*PMAS(24,1)/PMAS(23,1))**2
15110 ENDIF
15111
15112 IF(EPS.LE.1D0) THEN
15113 ROOT=SQRT(1D0-EPS)
15114 IF(EPS.GT.1D-4) THEN
15115 RLN=LOG((1D0+ROOT)/(1D0-ROOT))
15116 ELSE
15117 RLN=LOG(4D0/EPS-2D0)
15118 ENDIF
15119 PHIRE=-0.25D0*(RLN**2-PARU(1)**2)
15120 PHIIM=0.5D0*PARU(1)*RLN
15121 PSIRE=0.5D0*ROOT*RLN
15122 PSIIM=-0.5D0*ROOT*PARU(1)
15123 ELSE
15124 PHIRE=(ASIN(1D0/SQRT(EPS)))**2
15125 PHIIM=0D0
15126 PSIRE=SQRT(EPS-1D0)*ASIN(1D0/SQRT(EPS))
15127 PSIIM=0D0
15128 ENDIF
15129 IF(EPSP.LE.1D0) THEN
15130 ROOT=SQRT(1D0-EPSP)
15131 IF(EPSP.GT.1D-4) THEN
15132 RLN=LOG((1D0+ROOT)/(1D0-ROOT))
15133 ELSE
15134 RLN=LOG(4D0/EPSP-2D0)
15135 ENDIF
15136 PHIREP=-0.25D0*(RLN**2-PARU(1)**2)
15137 PHIIMP=0.5D0*PARU(1)*RLN
15138 PSIREP=0.5D0*ROOT*RLN
15139 PSIIMP=-0.5D0*ROOT*PARU(1)
15140 ELSE
15141 PHIREP=(ASIN(1D0/SQRT(EPSP)))**2
15142 PHIIMP=0D0
15143 PSIREP=SQRT(EPSP-1D0)*ASIN(1D0/SQRT(EPSP))
15144 PSIIMP=0D0
15145 ENDIF
15146 FXYRE=EPS*EPSP/(8D0*(EPS-EPSP))*(1D0+EPS*EPSP/(EPS-EPSP)*
15147 & (PHIRE-PHIREP)+2D0*EPS/(EPS-EPSP)*(PSIRE-PSIREP))
15148 FXYIM=EPS**2*EPSP/(8D0*(EPS-EPSP)**2)*
15149 & (EPSP*(PHIIM-PHIIMP)+2D0*(PSIIM-PSIIMP))
15150 F1RE=-EPS*EPSP/(2D0*(EPS-EPSP))*(PHIRE-PHIREP)
15151 F1IM=-EPS*EPSP/(2D0*(EPS-EPSP))*(PHIIM-PHIIMP)
15152 IF(J.LE.3*MSTP(1)) THEN
15153
15154 IF(IHIGG.EQ.3) FXYRE=0D0
15155 IF(IHIGG.EQ.3) FXYIM=0D0
15156 IF(J.LE.2*MSTP(1).AND.MOD(J,2).EQ.1) THEN
15157 EJC=-3D0*EJ*VJ
15158 EJH=PARU(151+10*IHIGG)
15159 ELSEIF(J.LE.2*MSTP(1)) THEN
15160 EJC=-3D0*EJ*VJ
15161 EJH=PARU(152+10*IHIGG)
15162 ELSE
15163 EJC=-EJ*VJ
15164 EJH=PARU(153+10*IHIGG)
15165 ENDIF
15166 IF(MSTP(4).EQ.0.AND.IHIGG.EQ.1) EJH=1D0
15167 ETAREJ=EJC*EJH*(FXYRE-0.25D0*F1RE)
15168 ETAIMJ=EJC*EJH*(FXYIM-0.25D0*F1IM)
15169 ELSEIF(J.EQ.3*MSTP(1)+1) THEN
15170
15171 HEPS=(1D0+2D0/EPS)*XW/XW1-(5D0+2D0/EPS)
15172 ETAREJ=-XW1*((3D0-XW/XW1)*F1RE+HEPS*FXYRE)
15173 ETAIMJ=-XW1*((3D0-XW/XW1)*F1IM+HEPS*FXYIM)
15174 IF(MSTP(4).GE.1.OR.IHIGG.GE.2) THEN
15175 ETAREJ=ETAREJ*PARU(155+10*IHIGG)
15176 ETAIMJ=ETAIMJ*PARU(155+10*IHIGG)
15177 ENDIF
15178 ELSE
15179
15180 FACHHH=(PMAS(24,1)/PMAS(37,1))**2*(1D0-2D0*XW)*
15181 & PARU(158+10*IHIGG+2*(IHIGG/3))
15182 ETAREJ=FACHHH*FXYRE
15183 ETAIMJ=FACHHH*FXYIM
15184 ENDIF
15185 ETARE=ETARE+ETAREJ
15186 ETAIM=ETAIM+ETAIMJ
15187 250 CONTINUE
15188 ETA2=(ETARE**2+ETAIM**2)/(XW*XW1)
15189 WDTP(I)=FAC*(AEM/PARU(1))**2*(1D0-PMAS(23,1)**2/SH)**3*ETA2
15190 WID2=WIDS(23,2)
15191
15192 ELSEIF(I.LE.17) THEN
15193
15194 PM1=PMAS(IABS(KFDP(IDC,1)),1)
15195 PG1=PMAS(IABS(KFDP(IDC,1)),2)
15196 IF(MINT(62).GE.1) THEN
15197 IF(MSTP(42).EQ.0.OR.(4D0*(PM1+10D0*PG1)**2.LT.SH.AND.
15198 & CKIN(46).LT.CKIN(45).AND.CKIN(48).LT.CKIN(47).AND.
15199 & MAX(CKIN(45),CKIN(47)).LT.PM1-10D0*PG1)) THEN
15200 MOFSV(IHIGG,I-15)=0
15201 WIDW=(1D0-4D0*RM1+12D0*RM1**2)*SQRT(MAX(0D0,
15202 & 1D0-4D0*RM1))
15203 WID2=1D0
15204 ELSE
15205 MOFSV(IHIGG,I-15)=1
15206 RMAS=SQRT(MAX(0D0,SH))
15207 CALL PYOFSH(1,KFLA,KFDP(IDC,1),KFDP(IDC,2),RMAS,WIDW,
15208 & WID2)
15209 WIDWSV(IHIGG,I-15)=WIDW
15210 WID2SV(IHIGG,I-15)=WID2
15211 ENDIF
15212 ELSE
15213 IF(MOFSV(IHIGG,I-15).EQ.0) THEN
15214 WIDW=(1D0-4D0*RM1+12D0*RM1**2)*SQRT(MAX(0D0,
15215 & 1D0-4D0*RM1))
15216 WID2=1D0
15217 ELSE
15218 WIDW=WIDWSV(IHIGG,I-15)
15219 WID2=WID2SV(IHIGG,I-15)
15220 ENDIF
15221 ENDIF
15222 WDTP(I)=FAC*WIDW/(2D0*(18-I))
15223 IF(MSTP(4).GE.1.OR.IHIGG.GE.2) WDTP(I)=WDTP(I)*
15224 & PARU(138+I+10*IHIGG)**2
15225 WID2=WID2*WIDS(7+I,1)
15226
15227 ELSEIF(I.EQ.18.AND.KFLA.EQ.35) THEN
15228
15229
15230 ELSEIF(I.EQ.19.AND.KFLA.EQ.35) THEN
15231
15232 WDTP(I)=FAC*PARU(176)**2*0.25D0*PMAS(23,1)**4/SH**2*
15233 & SQRT(MAX(0D0,1D0-4D0*RM1))
15234 WID2=WIDS(25,2)**2
15235
15236 ELSEIF(I.EQ.20.AND.KFLA.EQ.35) THEN
15237
15238 WDTP(I)=FAC*PARU(177)**2*0.25D0*PMAS(23,1)**4/SH**2*
15239 & SQRT(MAX(0D0,1D0-4D0*RM1))
15240 WID2=WIDS(36,2)**2
15241
15242 ELSEIF(I.EQ.18.AND.KFLA.EQ.36) THEN
15243
15244 WDTP(I)=FAC*PARU(186)**2*0.5D0*SQRT(MAX(0D0,
15245 & (1D0-RM1-RM2)**2-4D0*RM1*RM2))**3
15246 WID2=WIDS(23,2)*WIDS(25,2)
15247
15248
15249 ELSE
15250
15251 RM10=RM1*SH/PMR**2
15252 RM20=RM2*SH/PMR**2
15253 WFAC0=1D0+RM10**2+RM20**2-2D0*(RM10+RM20+RM10*RM20)
15254 WFAC=1D0+RM1**2+RM2**2-2D0*(RM1+RM2+RM1*RM2)
15255 IF(WFAC.LE.0D0 .OR. WFAC0.LE.0D0) THEN
15256 WFAC=0D0
15257 ELSE
15258 WFAC=WFAC/WFAC0
15259 ENDIF
15260 WDTP(I)=PMAS(KFLA,2)*BRAT(IDC)*(SHR/PMR)*SQRT(WFAC)
15261
15262 IF(KFC2.EQ.KFC1) THEN
15263 WID2=WIDS(KFC1,1)
15264 ELSE
15265 KSGN1=2
15266 IF(KFDP(IDC,1).LT.0) KSGN1=3
15267 KSGN2=2
15268 IF(KFDP(IDC,2).LT.0) KSGN2=3
15269 WID2=WIDS(KFC1,KSGN1)*WIDS(KFC2,KSGN2)
15270 ENDIF
15271 ENDIF
15272 WDTP(0)=WDTP(0)+WDTP(I)
15273 IF(MDME(IDC,1).GT.0) THEN
15274 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
15275 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
15276 WDTE(I,0)=WDTE(I,MDME(IDC,1))
15277 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
15278 ENDIF
15279 260 CONTINUE
15280
15281 ELSEIF(KFLA.EQ.32) THEN
15282
15283 ICASE=1
15284 XWC=1D0/(16D0*XW*XW1)
15285 FAC=(AEM*XWC/3D0)*SHR
15286 VINT(117)=0D0
15287 270 CONTINUE
15288 IF(MINT(61).GE.1.AND.ICASE.EQ.2) THEN
15289 VINT(111)=0D0
15290 VINT(112)=0D0
15291 VINT(113)=0D0
15292 VINT(114)=0D0
15293 VINT(115)=0D0
15294 VINT(116)=0D0
15295 ENDIF
15296 IF(MINT(61).EQ.1.AND.ICASE.EQ.2) THEN
15297 KFAI=IABS(MINT(15))
15298 EI=KCHG(KFAI,1)/3D0
15299 AI=SIGN(1D0,EI+0.1D0)
15300 VI=AI-4D0*EI*XWV
15301 KFAIC=1
15302 IF(KFAI.LE.10.AND.MOD(KFAI,2).EQ.0) KFAIC=2
15303 IF(KFAI.GT.10.AND.MOD(KFAI,2).NE.0) KFAIC=3
15304 IF(KFAI.GT.10.AND.MOD(KFAI,2).EQ.0) KFAIC=4
15305 IF(KFAI.LE.2.OR.KFAI.EQ.11.OR.KFAI.EQ.12) THEN
15306 VPI=PARU(119+2*KFAIC)
15307 API=PARU(120+2*KFAIC)
15308 ELSEIF(KFAI.LE.4.OR.KFAI.EQ.13.OR.KFAI.EQ.14) THEN
15309 VPI=PARJ(178+2*KFAIC)
15310 API=PARJ(179+2*KFAIC)
15311 ELSE
15312 VPI=PARJ(186+2*KFAIC)
15313 API=PARJ(187+2*KFAIC)
15314 ENDIF
15315 SQMZ=PMAS(23,1)**2
15316 HZ=SHR*VINT(117)
15317 SQMZP=PMAS(32,1)**2
15318 HZP=SHR*WDTP(0)
15319 IF(MSTP(44).EQ.1.OR.MSTP(44).EQ.4.OR.MSTP(44).EQ.5.OR.
15320 & MSTP(44).EQ.7) VINT(111)=1D0
15321 IF(MSTP(44).EQ.4.OR.MSTP(44).EQ.7) VINT(112)=
15322 & 2D0*XWC*SH*(SH-SQMZ)/((SH-SQMZ)**2+HZ**2)
15323 IF(MSTP(44).EQ.5.OR.MSTP(44).EQ.7) VINT(113)=
15324 & 2D0*XWC*SH*(SH-SQMZP)/((SH-SQMZP)**2+HZP**2)
15325 IF(MSTP(44).EQ.2.OR.MSTP(44).EQ.4.OR.MSTP(44).EQ.6.OR.
15326 & MSTP(44).EQ.7) VINT(114)=XWC**2*SH**2/((SH-SQMZ)**2+HZ**2)
15327 IF(MSTP(44).EQ.6.OR.MSTP(44).EQ.7) VINT(115)=
15328 & 2D0*XWC**2*SH**2*((SH-SQMZ)*(SH-SQMZP)+HZ*HZP)/
15329 & (((SH-SQMZ)**2+HZ**2)*((SH-SQMZP)**2+HZP**2))
15330 IF(MSTP(44).EQ.3.OR.MSTP(44).EQ.5.OR.MSTP(44).EQ.6.OR.
15331 & MSTP(44).EQ.7) VINT(116)=XWC**2*SH**2/((SH-SQMZP)**2+HZP**2)
15332 ENDIF
15333 DO 280 I=1,MDCY(KC,3)
15334 IDC=I+MDCY(KC,2)-1
15335 IF(MDME(IDC,1).LT.0) GOTO 280
15336 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
15337 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
15338 IF(SQRT(RM1)+SQRT(RM2).GT.1D0.OR.MDME(IDC,1).LT.0) GOTO 280
15339 WID2=1D0
15340 IF(I.LE.16) THEN
15341 IF(I.LE.8) THEN
15342
15343 EF=KCHG(I,1)/3D0
15344 AF=SIGN(1D0,EF+0.1D0)
15345 VF=AF-4D0*EF*XWV
15346 IF(I.LE.2) THEN
15347 VPF=PARU(123-2*MOD(I,2))
15348 APF=PARU(124-2*MOD(I,2))
15349 ELSEIF(I.LE.4) THEN
15350 VPF=PARJ(182-2*MOD(I,2))
15351 APF=PARJ(183-2*MOD(I,2))
15352 ELSE
15353 VPF=PARJ(190-2*MOD(I,2))
15354 APF=PARJ(191-2*MOD(I,2))
15355 ENDIF
15356 FCOF=3D0*RADC
15357 IF(I.GE.6.AND.MSTP(35).GE.1) FCOF=FCOF*
15358 & PYHFTH(SH,SH*RM1,1D0)
15359 IF(I.EQ.6) WID2=WIDS(6,1)
15360 IF((I.EQ.7.OR.I.EQ.8)) WID2=WIDS(I,1)
15361 ELSEIF(I.LE.16) THEN
15362
15363 EF=KCHG(I+2,1)/3D0
15364 AF=SIGN(1D0,EF+0.1D0)
15365 VF=AF-4D0*EF*XWV
15366 IF(I.LE.10) THEN
15367 VPF=PARU(127-2*MOD(I,2))
15368 APF=PARU(128-2*MOD(I,2))
15369 ELSEIF(I.LE.12) THEN
15370 VPF=PARJ(186-2*MOD(I,2))
15371 APF=PARJ(187-2*MOD(I,2))
15372 ELSE
15373 VPF=PARJ(194-2*MOD(I,2))
15374 APF=PARJ(195-2*MOD(I,2))
15375 ENDIF
15376 FCOF=1D0
15377 IF((I.EQ.15.OR.I.EQ.16)) WID2=WIDS(2+I,1)
15378 ENDIF
15379 BE34=SQRT(MAX(0D0,1D0-4D0*RM1))
15380 IF(ICASE.EQ.1) THEN
15381 WDTPZ=FCOF*(VF**2*(1D0+2D0*RM1)+AF**2*(1D0-4D0*RM1))*BE34
15382 WDTP(I)=FAC*FCOF*(VPF**2*(1D0+2D0*RM1)+
15383 & APF**2*(1D0-4D0*RM1))*BE34
15384 ELSEIF(MINT(61).EQ.1.AND.ICASE.EQ.2) THEN
15385 WDTP(I)=FAC*FCOF*((EI**2*VINT(111)*EF**2+EI*VI*VINT(112)*
15386 & EF*VF+EI*VPI*VINT(113)*EF*VPF+(VI**2+AI**2)*VINT(114)*
15387 & VF**2+(VI*VPI+AI*API)*VINT(115)*VF*VPF+(VPI**2+API**2)*
15388 & VINT(116)*VPF**2)*(1D0+2D0*RM1)+((VI**2+AI**2)*VINT(114)*
15389 & AF**2+(VI*VPI+AI*API)*VINT(115)*AF*APF+(VPI**2+API**2)*
15390 & VINT(116)*APF**2)*(1D0-4D0*RM1))*BE34
15391 ELSEIF(MINT(61).EQ.2) THEN
15392 FGGF=FCOF*EF**2*(1D0+2D0*RM1)*BE34
15393 FGZF=FCOF*EF*VF*(1D0+2D0*RM1)*BE34
15394 FGZPF=FCOF*EF*VPF*(1D0+2D0*RM1)*BE34
15395 FZZF=FCOF*(VF**2*(1D0+2D0*RM1)+AF**2*(1D0-4D0*RM1))*BE34
15396 FZZPF=FCOF*(VF*VPF*(1D0+2D0*RM1)+AF*APF*(1D0-4D0*RM1))*
15397 & BE34
15398 FZPZPF=FCOF*(VPF**2*(1D0+2D0*RM1)+APF**2*(1D0-4D0*RM1))*
15399 & BE34
15400 ENDIF
15401 ELSEIF(I.EQ.17) THEN
15402
15403 WDTPZP=PARU(129)**2*XW1**2*
15404 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3*
15405 & (1D0+10D0*RM1+10D0*RM2+RM1**2+RM2**2+10D0*RM1*RM2)
15406 IF(ICASE.EQ.1) THEN
15407 WDTPZ=0D0
15408 WDTP(I)=FAC*WDTPZP
15409 ELSEIF(MINT(61).EQ.1.AND.ICASE.EQ.2) THEN
15410 WDTP(I)=FAC*(VPI**2+API**2)*VINT(116)*WDTPZP
15411 ELSEIF(MINT(61).EQ.2) THEN
15412 FGGF=0D0
15413 FGZF=0D0
15414 FGZPF=0D0
15415 FZZF=0D0
15416 FZZPF=0D0
15417 FZPZPF=WDTPZP
15418 ENDIF
15419 WID2=WIDS(24,1)
15420 ELSEIF(I.EQ.18) THEN
15421
15422 CZC=2D0*(1D0-2D0*XW)
15423 BE34C=(1D0-4D0*RM1)*SQRT(MAX(0D0,1D0-4D0*RM1))
15424 IF(ICASE.EQ.1) THEN
15425 WDTPZ=0.25D0*PARU(142)**2*CZC**2*BE34C
15426 WDTP(I)=FAC*0.25D0*PARU(143)**2*CZC**2*BE34C
15427 ELSEIF(MINT(61).EQ.1.AND.ICASE.EQ.2) THEN
15428 WDTP(I)=FAC*0.25D0*(EI**2*VINT(111)+PARU(142)*EI*VI*
15429 & VINT(112)*CZC+PARU(143)*EI*VPI*VINT(113)*CZC+PARU(142)**2*
15430 & (VI**2+AI**2)*VINT(114)*CZC**2+PARU(142)*PARU(143)*
15431 & (VI*VPI+AI*API)*VINT(115)*CZC**2+PARU(143)**2*
15432 & (VPI**2+API**2)*VINT(116)*CZC**2)*BE34C
15433 ELSEIF(MINT(61).EQ.2) THEN
15434 FGGF=0.25D0*BE34C
15435 FGZF=0.25D0*PARU(142)*CZC*BE34C
15436 FGZPF=0.25D0*PARU(143)*CZC*BE34C
15437 FZZF=0.25D0*PARU(142)**2*CZC**2*BE34C
15438 FZZPF=0.25D0*PARU(142)*PARU(143)*CZC**2*BE34C
15439 FZPZPF=0.25D0*PARU(143)**2*CZC**2*BE34C
15440 ENDIF
15441 WID2=WIDS(37,1)
15442 ELSEIF(I.EQ.19) THEN
15443
15444 ELSEIF(I.EQ.20) THEN
15445
15446 FLAM=SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
15447 WDTPZP=PARU(145)**2*4D0*ABS(1D0-2D0*XW)*
15448 & (3D0*RM1+0.25D0*FLAM**2)*FLAM
15449 IF(ICASE.EQ.1) THEN
15450 WDTPZ=0D0
15451 WDTP(I)=FAC*WDTPZP
15452 ELSEIF(MINT(61).EQ.1.AND.ICASE.EQ.2) THEN
15453 WDTP(I)=FAC*(VPI**2+API**2)*VINT(116)*WDTPZP
15454 ELSEIF(MINT(61).EQ.2) THEN
15455 FGGF=0D0
15456 FGZF=0D0
15457 FGZPF=0D0
15458 FZZF=0D0
15459 FZZPF=0D0
15460 FZPZPF=WDTPZP
15461 ENDIF
15462 WID2=WIDS(23,2)*WIDS(25,2)
15463 ELSEIF(I.EQ.21.OR.I.EQ.22) THEN
15464
15465 BE34C=SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3
15466 IF(I.EQ.21) THEN
15467 CZAH=PARU(186)
15468 CZPAH=PARU(188)
15469 ELSE
15470 CZAH=PARU(187)
15471 CZPAH=PARU(189)
15472 ENDIF
15473 IF(ICASE.EQ.1) THEN
15474 WDTPZ=CZAH**2*BE34C
15475 WDTP(I)=FAC*CZPAH**2*BE34C
15476 ELSEIF(MINT(61).EQ.1.AND.ICASE.EQ.2) THEN
15477 WDTP(I)=FAC*(CZAH**2*(VI**2+AI**2)*VINT(114)+CZAH*CZPAH*
15478 & (VI*VPI+AI*API)*VINT(115)+CZPAH**2*(VPI**2+API**2)*
15479 & VINT(116))*BE34C
15480 ELSEIF(MINT(61).EQ.2) THEN
15481 FGGF=0D0
15482 FGZF=0D0
15483 FGZPF=0D0
15484 FZZF=CZAH**2*BE34C
15485 FZZPF=CZAH*CZPAH*BE34C
15486 FZPZPF=CZPAH**2*BE34C
15487 ENDIF
15488 IF(I.EQ.21) WID2=WIDS(25,2)*WIDS(36,2)
15489 IF(I.EQ.22) WID2=WIDS(35,2)*WIDS(36,2)
15490 ENDIF
15491 IF(ICASE.EQ.1) THEN
15492 VINT(117)=VINT(117)+FAC*WDTPZ
15493 WDTP(0)=WDTP(0)+WDTP(I)
15494 ENDIF
15495 IF(MDME(IDC,1).GT.0) THEN
15496 IF((ICASE.EQ.1.AND.MINT(61).NE.1).OR.
15497 & (ICASE.EQ.2.AND.MINT(61).EQ.1)) THEN
15498 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
15499 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+
15500 & WDTE(I,MDME(IDC,1))
15501 WDTE(I,0)=WDTE(I,MDME(IDC,1))
15502 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
15503 ENDIF
15504 IF(MINT(61).EQ.2.AND.ICASE.EQ.2) THEN
15505 IF(MSTP(44).EQ.1.OR.MSTP(44).EQ.4.OR.MSTP(44).EQ.5.OR.
15506 & MSTP(44).EQ.7) VINT(111)=VINT(111)+FGGF*WID2
15507 IF(MSTP(44).EQ.4.OR.MSTP(44).EQ.7) VINT(112)=VINT(112)+
15508 & FGZF*WID2
15509 IF(MSTP(44).EQ.5.OR.MSTP(44).EQ.7) VINT(113)=VINT(113)+
15510 & FGZPF*WID2
15511 IF(MSTP(44).EQ.2.OR.MSTP(44).EQ.4.OR.MSTP(44).EQ.6.OR.
15512 & MSTP(44).EQ.7) VINT(114)=VINT(114)+FZZF*WID2
15513 IF(MSTP(44).EQ.6.OR.MSTP(44).EQ.7) VINT(115)=VINT(115)+
15514 & FZZPF*WID2
15515 IF(MSTP(44).EQ.3.OR.MSTP(44).EQ.5.OR.MSTP(44).EQ.6.OR.
15516 & MSTP(44).EQ.7) VINT(116)=VINT(116)+FZPZPF*WID2
15517 ENDIF
15518 ENDIF
15519 280 CONTINUE
15520 IF(MINT(61).GE.1) ICASE=3-ICASE
15521 IF(ICASE.EQ.2) GOTO 270
15522
15523 ELSEIF(KFLA.EQ.34) THEN
15524
15525 FAC=(AEM/(24D0*XW))*SHR
15526 DO 290 I=1,MDCY(KC,3)
15527 IDC=I+MDCY(KC,2)-1
15528 IF(MDME(IDC,1).LT.0) GOTO 290
15529 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
15530 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
15531 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 290
15532 WID2=1D0
15533 IF(I.LE.20) THEN
15534 IF(I.LE.16) THEN
15535
15536 FCOF=3D0*RADC*(PARU(131)**2+PARU(132)**2)*
15537 & VCKM((I-1)/4+1,MOD(I-1,4)+1)
15538 IF(KFLR.GT.0) THEN
15539 IF(MOD(I,4).EQ.3) WID2=WIDS(6,2)
15540 IF(MOD(I,4).EQ.0) WID2=WIDS(8,2)
15541 IF(I.GE.13) WID2=WID2*WIDS(7,3)
15542 ELSE
15543 IF(MOD(I,4).EQ.3) WID2=WIDS(6,3)
15544 IF(MOD(I,4).EQ.0) WID2=WIDS(8,3)
15545 IF(I.GE.13) WID2=WID2*WIDS(7,2)
15546 ENDIF
15547 ELSEIF(I.LE.20) THEN
15548
15549 FCOF=PARU(133)**2+PARU(134)**2
15550 IF(KFLR.GT.0) THEN
15551 IF(I.EQ.20) WID2=WIDS(17,3)*WIDS(18,2)
15552 ELSE
15553 IF(I.EQ.20) WID2=WIDS(17,2)*WIDS(18,3)
15554 ENDIF
15555 ENDIF
15556 WDTP(I)=FAC*FCOF*0.5D0*(2D0-RM1-RM2-(RM1-RM2)**2)*
15557 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
15558 ELSEIF(I.EQ.21) THEN
15559
15560 WDTP(I)=FAC*PARU(135)**2*0.5D0*XW1*(RM1/RM2)*
15561 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3*
15562 & (1D0+10D0*RM1+10D0*RM2+RM1**2+RM2**2+10D0*RM1*RM2)
15563 IF(KFLR.GT.0) WID2=WIDS(24,2)*WIDS(23,2)
15564 IF(KFLR.LT.0) WID2=WIDS(24,3)*WIDS(23,2)
15565 ELSEIF(I.EQ.23) THEN
15566
15567 FLAM=SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
15568 WDTP(I)=FAC*PARU(146)**2*2D0*(3D0*RM1+0.25D0*FLAM**2)*FLAM
15569 IF(KFLR.GT.0) WID2=WIDS(24,2)*WIDS(25,2)
15570 IF(KFLR.LT.0) WID2=WIDS(24,3)*WIDS(25,2)
15571 ENDIF
15572 WDTP(0)=WDTP(0)+WDTP(I)
15573 IF(MDME(IDC,1).GT.0) THEN
15574 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
15575 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
15576 WDTE(I,0)=WDTE(I,MDME(IDC,1))
15577 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
15578 ENDIF
15579 290 CONTINUE
15580
15581 ELSEIF(KFLA.EQ.37) THEN
15582
15583 FAC=(AEM/(8D0*XW))*(SH/PMAS(24,1)**2)*SHR
15584 DO 300 I=1,MDCY(KC,3)
15585 IDC=I+MDCY(KC,2)-1
15586 IF(MDME(IDC,1).LT.0) GOTO 300
15587 KFC1=PYCOMP(KFDP(IDC,1))
15588 KFC2=PYCOMP(KFDP(IDC,2))
15589 RM1=PMAS(KFC1,1)**2/SH
15590 RM2=PMAS(KFC2,1)**2/SH
15591 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 300
15592 WID2=1D0
15593 IF(I.LE.4) THEN
15594
15595 RM1R=PYMRUN(KFDP(IDC,1),SH)**2/SH
15596 RM2R=PYMRUN(KFDP(IDC,2),SH)**2/SH
15597 WDTP(I)=FAC*3D0*RADC*MAX(0D0,(RM1R*PARU(141)**2+
15598 & RM2R/PARU(141)**2)*(1D0-RM1R-RM2R)-4D0*RM1R*RM2R)*
15599 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
15600 IF(KFLR.GT.0) THEN
15601 IF(I.EQ.3) WID2=WIDS(6,2)
15602 IF(I.EQ.4) WID2=WIDS(7,3)*WIDS(8,2)
15603 ELSE
15604 IF(I.EQ.3) WID2=WIDS(6,3)
15605 IF(I.EQ.4) WID2=WIDS(7,2)*WIDS(8,3)
15606 ENDIF
15607 ELSEIF(I.LE.8) THEN
15608
15609 WDTP(I)=FAC*((RM1*PARU(141)**2+RM2/PARU(141)**2)*
15610 & (1D0-RM1-RM2)-4D0*RM1*RM2)*
15611 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
15612 IF(KFLR.GT.0) THEN
15613 IF(I.EQ.8) WID2=WIDS(17,3)*WIDS(18,2)
15614 ELSE
15615 IF(I.EQ.8) WID2=WIDS(17,2)*WIDS(18,3)
15616 ENDIF
15617 ELSEIF(I.EQ.9) THEN
15618
15619 WDTP(I)=FAC*PARU(195)**2*0.5D0*SQRT(MAX(0D0,
15620 & (1D0-RM1-RM2)**2-4D0*RM1*RM2))**3
15621 IF(KFLR.GT.0) WID2=WIDS(24,2)*WIDS(25,2)
15622 IF(KFLR.LT.0) WID2=WIDS(24,3)*WIDS(25,2)
15623
15624
15625 ELSE
15626
15627 RM10=RM1*SH/PMR**2
15628 RM20=RM2*SH/PMR**2
15629 WFAC0=1D0+RM10**2+RM20**2-2D0*(RM10+RM20+RM10*RM20)
15630 WFAC=1D0+RM1**2+RM2**2-2D0*(RM1+RM2+RM1*RM2)
15631 IF(WFAC.LE.0D0 .OR. WFAC0.LE.0D0) THEN
15632 WFAC=0D0
15633 ELSE
15634 WFAC=WFAC/WFAC0
15635 ENDIF
15636 WDTP(I)=PMAS(KC,2)*BRAT(IDC)*(SHR/PMR)*SQRT(WFAC)
15637
15638 KSGN1=2
15639 IF(KFLS*KFDP(IDC,1).LT.0.AND.KCHG(KFC1,3).EQ.1) KSGN1=3
15640 KSGN2=2
15641 IF(KFLS*KFDP(IDC,2).LT.0.AND.KCHG(KFC2,3).EQ.1) KSGN2=3
15642 WID2=WIDS(KFC1,KSGN1)*WIDS(KFC2,KSGN2)
15643 ENDIF
15644 WDTP(0)=WDTP(0)+WDTP(I)
15645 IF(MDME(IDC,1).GT.0) THEN
15646 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
15647 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
15648 WDTE(I,0)=WDTE(I,MDME(IDC,1))
15649 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
15650 ENDIF
15651 300 CONTINUE
15652
15653 ELSEIF(KFLA.EQ.38) THEN
15654
15655 FAC=(SH/PARP(46)**2)*SHR
15656 DO 310 I=1,MDCY(KC,3)
15657 IDC=I+MDCY(KC,2)-1
15658 IF(MDME(IDC,1).LT.0) GOTO 310
15659 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
15660 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
15661 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 310
15662 WID2=1D0
15663 IF(I.LE.2) THEN
15664 WDTP(I)=FAC*RM1*SQRT(MAX(0D0,1D0-4D0*RM1))/(4D0*PARU(1))
15665 IF(I.EQ.2) WID2=WIDS(6,1)
15666 ELSE
15667 WDTP(I)=FAC*5D0*AS**2/(96D0*PARU(1)**3)
15668 ENDIF
15669 WDTP(0)=WDTP(0)+WDTP(I)
15670 IF(MDME(IDC,1).GT.0) THEN
15671 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
15672 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
15673 WDTE(I,0)=WDTE(I,MDME(IDC,1))
15674 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
15675 ENDIF
15676 310 CONTINUE
15677
15678 ELSEIF(KFLA.EQ.39) THEN
15679
15680 FAC=(AEM/4D0)*PARU(151)*SHR
15681 DO 320 I=1,MDCY(KC,3)
15682 IDC=I+MDCY(KC,2)-1
15683 IF(MDME(IDC,1).LT.0) GOTO 320
15684 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
15685 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
15686 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 320
15687 WDTP(I)=FAC*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3
15688 WID2=1D0
15689 ILQQ=KFDP(IDC,1)*ISIGN(1,KFLR)
15690 IF(ILQQ.GE.6) WID2=WIDS(ILQQ,2)
15691 IF(ILQQ.LE.-6) WID2=WIDS(-ILQQ,3)
15692 ILQL=KFDP(IDC,2)*ISIGN(1,KFLR)
15693 IF(ILQL.GE.17) WID2=WID2*WIDS(ILQL,2)
15694 IF(ILQL.LE.-17) WID2=WID2*WIDS(-ILQL,3)
15695 WDTP(0)=WDTP(0)+WDTP(I)
15696 IF(MDME(IDC,1).GT.0) THEN
15697 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
15698 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
15699 WDTE(I,0)=WDTE(I,MDME(IDC,1))
15700 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
15701 ENDIF
15702 320 CONTINUE
15703
15704 ELSEIF(KFLA.EQ.40) THEN
15705
15706 FAC=(AEM/(12D0*XW))*SHR
15707 DO 330 I=1,MDCY(KC,3)
15708 IDC=I+MDCY(KC,2)-1
15709 IF(MDME(IDC,1).LT.0) GOTO 330
15710 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
15711 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
15712 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 330
15713 WID2=1D0
15714 IF(I.LE.6) THEN
15715
15716 FCOF=3D0*RADC
15717 ELSEIF(I.LE.9) THEN
15718
15719 FCOF=1D0
15720 ENDIF
15721 WDTP(I)=FAC*FCOF*(2D0-RM1-RM2-(RM1-RM2)**2)*
15722 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
15723 IF(KFLR.GT.0) THEN
15724 IF(I.EQ.4) WID2=WIDS(6,3)
15725 IF(I.EQ.5) WID2=WIDS(7,3)
15726 IF(I.EQ.6) WID2=WIDS(6,2)*WIDS(8,3)
15727 IF(I.EQ.9) WID2=WIDS(17,3)
15728 ELSE
15729 IF(I.EQ.4) WID2=WIDS(6,2)
15730 IF(I.EQ.5) WID2=WIDS(7,2)
15731 IF(I.EQ.6) WID2=WIDS(6,3)*WIDS(8,2)
15732 IF(I.EQ.9) WID2=WIDS(17,2)
15733 ENDIF
15734 WDTP(0)=WDTP(0)+WDTP(I)
15735 IF(MDME(IDC,1).GT.0) THEN
15736 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
15737 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
15738 WDTE(I,0)=WDTE(I,MDME(IDC,1))
15739 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
15740 ENDIF
15741 330 CONTINUE
15742
15743 ELSEIF(KFLA.EQ.51.OR.KFLA.EQ.53) THEN
15744
15745 FAC=(1D0/(32D0*PARU(1)*PARP(142)**2))*SHR
15746 DO 340 I=1,MDCY(KC,3)
15747 IDC=I+MDCY(KC,2)-1
15748 IF(MDME(IDC,1).LT.0) GOTO 340
15749 PM1=PMAS(PYCOMP(KFDP(IDC,1)),1)
15750 PM2=PMAS(PYCOMP(KFDP(IDC,2)),1)
15751 RM1=PM1**2/SH
15752 RM2=PM2**2/SH
15753 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 340
15754 WID2=1D0
15755
15756 IF(I.EQ.8) THEN
15757 FACP=(AS/(4D0*PARU(1))*PARP(144)/PARP(142))**2
15758 & /(8D0*PARU(1))*SH*SHR
15759 IF(KFLA.EQ.51) THEN
15760 FACP=FACP*PARP(149)
15761 ELSE
15762 FACP=FACP*PARP(150)
15763 ENDIF
15764 WDTP(I)=FACP
15765 ELSE
15766
15767 FCOF=1D0
15768 IKA=IABS(KFDP(IDC,1))
15769 IF(IKA.LT.10) FCOF=3D0*RADC
15770 HM1=PM1
15771 HM2=PM2
15772 IF(IKA.GE.4.AND.IKA.LE.6) THEN
15773 FCOF=FCOF*PARP(141+IKA)**2
15774 HM1=PYMRUN(KFDP(IDC,1),SH)
15775 HM2=PYMRUN(KFDP(IDC,2),SH)
15776 ELSEIF(IKA.EQ.15) THEN
15777 FCOF=FCOF*PARP(148)**2
15778 ENDIF
15779 WDTP(I)=FAC*FCOF*(HM1+HM2)**2*
15780 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
15781 ENDIF
15782 WDTP(0)=WDTP(0)+WDTP(I)
15783 IF(MDME(IDC,1).GT.0) THEN
15784 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
15785 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
15786 WDTE(I,0)=WDTE(I,MDME(IDC,1))
15787 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
15788 ENDIF
15789 340 CONTINUE
15790
15791 ELSEIF(KFLA.EQ.52) THEN
15792
15793 FAC=(1D0/(32D0*PARU(1)*PARP(142)**2))*SHR
15794 DO 350 I=1,MDCY(KC,3)
15795 IDC=I+MDCY(KC,2)-1
15796 IF(MDME(IDC,1).LT.0) GOTO 350
15797 PM1=PMAS(PYCOMP(KFDP(IDC,1)),1)
15798 PM2=PMAS(PYCOMP(KFDP(IDC,2)),1)
15799 PM3=0D0
15800 IF(I.EQ.3) PM3=PMAS(PYCOMP(KFDP(IDC,3)),1)
15801 RM1=PM1**2/SH
15802 RM2=PM2**2/SH
15803 RM3=PM3**2/SH
15804 IF(SQRT(RM1)+SQRT(RM2)+SQRT(RM3).GT.1D0) GOTO 350
15805 WID2=1D0
15806
15807 FCOF=1D0
15808 IF(IABS(KFDP(IDC,1)).LT.10) FCOF=3D0*RADC
15809
15810 IF(I.EQ.3.AND.SHR.LT.PMAS(6,1)+PMAS(5,1)) THEN
15811 FCOF=3D0*RADC
15812 XMT2=PMAS(6,1)**2/SH
15813 FACP=FAC/(4D0*PARU(1))*FCOF*XMT2*PARP(147)**2
15814 KFC3=PYCOMP(KFDP(IDC,3))
15815 CHECK = SQRT(RM1)+SQRT(RM2)+SQRT(RM3)
15816 CHECK = SQRT(RM1)
15817 T0 = (1D0-CHECK**2)*
15818 & (XMT2*(6.*XMT2**2+3.*XMT2*RM1-4.*RM1**2)-
15819 & (5.*XMT2**2+2.*XMT2*RM1-8.*RM1**2))/(4.*XMT2**2)
15820 T1 = (1D0-XMT2)*(RM1-XMT2)*((XMT2**2+XMT2*RM1+4.*RM1**2)
15821 & -3.*XMT2**2*(XMT2+RM1))/(2.0*XMT2**3)
15822 T3 = RM1**2/XMT2**3*(3.0*XMT2-4.0*RM1+4.0*XMT2*RM1)
15823 WDTP(I)=FACP*(T0 + T1*LOG((XMT2-CHECK**2)/(XMT2-1D0))
15824 & +T3*LOG(CHECK))
15825 IF(KFLR.GT.0) THEN
15826 WID2=WIDS(24,2)
15827 ELSE
15828 WID2=WIDS(24,3)
15829 ENDIF
15830 ELSE
15831 FCOF=1D0
15832 IKA=IABS(KFDP(IDC,1))
15833 IF(IKA.LT.10) FCOF=3D0*RADC
15834 HM1=PM1
15835 HM2=PM2
15836 IF(I.GE.1.AND.I.LE.3) THEN
15837 FCOF=FCOF*PARP(144+I)**2
15838 HM1=PYMRUN(KFDP(IDC,1),SH)
15839 HM2=PYMRUN(KFDP(IDC,2),SH)
15840 ELSEIF(I.EQ.6) THEN
15841 FCOF=FCOF*PARP(148)**2
15842 ENDIF
15843 WDTP(I)=FAC*FCOF*(HM1+HM2)**2*
15844 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
15845 ENDIF
15846 WDTP(0)=WDTP(0)+WDTP(I)
15847 IF(MDME(IDC,1).GT.0) THEN
15848 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
15849 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
15850 WDTE(I,0)=WDTE(I,MDME(IDC,1))
15851 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
15852 ENDIF
15853 350 CONTINUE
15854
15855 ELSEIF(KFLA.EQ.54) THEN
15856
15857 ALPRHT=2.91D0*(3D0/PARP(144))
15858 FAC=(ALPRHT/12D0)*SHR
15859 FACF=(1D0/6D0)*(AEM**2/ALPRHT)*SHR
15860 SQMZ=PMAS(23,1)**2
15861 SQMW=PMAS(24,1)**2
15862 SHP=SH
15863 CALL PYWIDX(23,SHP,WDTPP,WDTEP)
15864 GMMZ=SHR*WDTPP(0)
15865 XWRHT=(1D0-2D0*XW)/(4D0*XW*(1D0-XW))
15866 BWZR=XWRHT*SH*(SH-SQMZ)/((SH-SQMZ)**2+GMMZ**2)
15867 BWZI=XWRHT*SH*GMMZ/((SH-SQMZ)**2+GMMZ**2)
15868 DO 360 I=1,MDCY(KC,3)
15869 IDC=I+MDCY(KC,2)-1
15870 IF(MDME(IDC,1).LT.0) GOTO 360
15871 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
15872 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
15873 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 360
15874 WID2=1D0
15875 IF(I.EQ.1) THEN
15876
15877 WDTP(I)=FAC*PARP(141)**4*
15878 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3
15879 WID2=WIDS(24,1)
15880 ELSEIF(I.EQ.2) THEN
15881
15882 WDTP(I)=FAC*PARP(141)**2*(1D0-PARP(141)**2)*
15883 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3+
15884 & AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))*
15885 & ((1D0-RM1-RM2)**2-4D0*RM1*RM2 + 6D0*SQMW/SH)*
15886 & (1D0-PARP(141)**2)/4D0/XW/24D0/PARJ(173)**2*SHR**3
15887 WID2=WIDS(24,2)*WIDS(52,3)
15888 ELSEIF(I.EQ.3) THEN
15889
15890 WDTP(I)=FAC*PARP(141)**2*(1D0-PARP(141)**2)*
15891 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3+
15892 & AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))*
15893 & ((1D0-RM1-RM2)**2-4D0*RM1*RM2 + 6D0*SQMW/SH)*
15894 & (1D0-PARP(141)**2)/4D0/XW/24D0/PARJ(173)**2*SHR**3
15895 WID2=WIDS(52,2)*WIDS(24,3)
15896 ELSEIF(I.EQ.4) THEN
15897
15898 WDTP(I)=FAC*(1D0-PARP(141)**2)**2*
15899 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3
15900 WID2=WIDS(52,1)
15901 ELSEIF(I.EQ.5) THEN
15902
15903 WDTP(I)=AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3*
15904 & (2D0*PARP(143)-1D0)**2*(1D0-PARP(141)**2)/24D0/PARJ(172)**2*
15905 & SHR**3
15906 WID2=WIDS(51,2)
15907 ELSEIF(I.EQ.6) THEN
15908
15909 WDTP(I)=AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3*
15910 & (1D0-PARJ(174)**2)/24D0/PARJ(172)**2*SHR**3
15911 WID2=WIDS(53,2)
15912 ELSEIF(I.EQ.7) THEN
15913
15914 WDTP(I)=AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3*
15915 & (2D0*PARP(143)-1D0)**2*(1D0-PARP(141)**2)/24D0/PARJ(172)**2*
15916 & XW/XW1*SHR**3
15917 WID2=WIDS(23,2)*WIDS(51,2)
15918 ELSEIF(I.EQ.8) THEN
15919
15920 WDTP(I)=AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3*
15921 & (1D0-PARJ(174)**2)/24D0/PARJ(172)**2*(1D0-2D0*XW)**2/4D0/
15922 & XW/XW1*SHR**3
15923 WID2=WIDS(23,2)*WIDS(53,2)
15924 ELSE
15925
15926 WID2=1D0
15927 IF(I.LE.16) THEN
15928 IA=I-8
15929 FCOF=3D0*RADC
15930 IF(IA.GE.6.AND.IA.LE.8) WID2=WIDS(IA,1)
15931 ELSE
15932 IA=I-6
15933 FCOF=1D0
15934 IF(IA.GE.17) WID2=WIDS(IA,1)
15935 ENDIF
15936 EI=KCHG(IA,1)/3D0
15937 AI=SIGN(1D0,EI+0.1D0)
15938 VI=AI-4D0*EI*XWV
15939 VALI=0.5D0*(VI+AI)
15940 VARI=0.5D0*(VI-AI)
15941 WDTP(I)=FACF*FCOF*SQRT(MAX(0D0,1D0-4D0*RM1))*((1D0-RM1)*
15942 & ((EI+VALI*BWZR)**2+(VALI*BWZI)**2+
15943 & (EI+VARI*BWZR)**2+(VARI*BWZI)**2)+6D0*RM1*(
15944 & (EI+VALI*BWZR)*(EI+VARI*BWZR)+VALI*VARI*BWZI**2))
15945 ENDIF
15946 WDTP(0)=WDTP(0)+WDTP(I)
15947 IF(MDME(IDC,1).GT.0) THEN
15948 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
15949 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
15950 WDTE(I,0)=WDTE(I,MDME(IDC,1))
15951 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
15952 ENDIF
15953 360 CONTINUE
15954
15955 ELSEIF(KFLA.EQ.55) THEN
15956
15957 ALPRHT=2.91D0*(3D0/PARP(144))
15958 FAC=(ALPRHT/12D0)*SHR
15959 SQMZ=PMAS(23,1)**2
15960 SQMW=PMAS(24,1)**2
15961 SHP=SH
15962 CALL PYWIDX(24,SHP,WDTPP,WDTEP)
15963 GMMW=SHR*WDTPP(0)
15964 FACF=(1D0/12D0)*(AEM**2/ALPRHT)*SHR*
15965 & (0.125D0/XW**2)*SH**2/((SH-SQMW)**2+GMMW**2)
15966 DO 370 I=1,MDCY(KC,3)
15967 IDC=I+MDCY(KC,2)-1
15968 IF(MDME(IDC,1).LT.0) GOTO 370
15969 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
15970 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
15971 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 370
15972 WID2=1D0
15973 IF(I.EQ.1) THEN
15974
15975 WDTP(I)=FAC*PARP(141)**4*
15976 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3
15977 IF(KFLR.GT.0) THEN
15978 WID2=WIDS(24,2)*WIDS(23,2)
15979 ELSE
15980 WID2=WIDS(24,3)*WIDS(23,2)
15981 ENDIF
15982 ELSEIF(I.EQ.2) THEN
15983
15984 WDTP(I)=FAC*PARP(141)**2*(1D0-PARP(141)**2)*
15985 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3+
15986 & AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))*
15987 & ((1D0-RM1-RM2)**2-4D0*RM1*RM2 + 6D0*SQMW/SH)*
15988 & (1D0-PARP(141)**2)/4D0/XW/24D0/PARJ(173)**2*SHR**3
15989 IF(KFLR.GT.0) THEN
15990 WID2=WIDS(24,2)*WIDS(51,2)
15991 ELSE
15992 WID2=WIDS(24,3)*WIDS(51,2)
15993 ENDIF
15994 ELSEIF(I.EQ.3) THEN
15995
15996 WDTP(I)=FAC*PARP(141)**2*(1D0-PARP(141)**2)*
15997 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3+
15998 & AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))*
15999 & ((1D0-RM1-RM2)**2-4D0*RM1*RM2 + 6D0*SQMZ/SH)*
16000 & (1D0-PARP(141)**2)/4D0/XW/XW1/24D0/PARJ(173)**2*SHR**3+
16001 & AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3*
16002 & (2D0*PARP(143)-1D0)**2*(1D0-PARP(141)**2)/24D0/PARJ(172)**2*
16003 & SHR**3*XW/XW1
16004 IF(KFLR.GT.0) THEN
16005 WID2=WIDS(52,2)*WIDS(23,2)
16006 ELSE
16007 WID2=WIDS(52,3)*WIDS(23,2)
16008 ENDIF
16009 ELSEIF(I.EQ.4) THEN
16010
16011 WDTP(I)=FAC*(1D0-PARP(141)**2)**2*
16012 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3
16013 IF(KFLR.GT.0) THEN
16014 WID2=WIDS(52,2)*WIDS(51,2)
16015 ELSE
16016 WID2=WIDS(52,3)*WIDS(51,2)
16017 ENDIF
16018 ELSEIF(I.EQ.5) THEN
16019
16020 WDTP(I)=AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3*
16021 & (2D0*PARP(143)-1D0)**2*(1D0-PARP(141)**2)/24D0/PARJ(172)**2*
16022 & SHR**3
16023 IF(KFLR.GT.0) THEN
16024 WID2=WIDS(52,2)
16025 ELSE
16026 WID2=WIDS(52,3)
16027 ENDIF
16028 ELSEIF(I.EQ.6) THEN
16029
16030 WDTP(I)=AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3*
16031 & (1D0-PARJ(174)**2)/4D0/XW/24D0/PARJ(172)**2*SHR**3
16032 IF(KFLR.GT.0) THEN
16033 WID2=WIDS(24,2)*WIDS(53,2)
16034 ELSE
16035 WID2=WIDS(24,3)*WIDS(53,2)
16036 ENDIF
16037 ELSE
16038
16039 IA=I-6
16040 WID2=1D0
16041 IF(IA.LE.16) THEN
16042 FCOF=3D0*RADC*VCKM((IA-1)/4+1,MOD(IA-1,4)+1)
16043 IF(KFLR.GT.0) THEN
16044 IF(MOD(IA,4).EQ.3) WID2=WIDS(6,2)
16045 IF(MOD(IA,4).EQ.0) WID2=WIDS(8,2)
16046 IF(IA.GE.13) WID2=WID2*WIDS(7,3)
16047 ELSE
16048 IF(MOD(IA,4).EQ.3) WID2=WIDS(6,3)
16049 IF(MOD(IA,4).EQ.0) WID2=WIDS(8,3)
16050 IF(IA.GE.13) WID2=WID2*WIDS(7,2)
16051 ENDIF
16052 ELSE
16053 FCOF=1D0
16054 IF(KFLR.GT.0) THEN
16055 IF(IA.EQ.20) WID2=WIDS(17,3)*WIDS(18,2)
16056 ELSE
16057 IF(IA.EQ.20) WID2=WIDS(17,2)*WIDS(18,3)
16058 ENDIF
16059 ENDIF
16060 WDTP(I)=FACF*FCOF*(2D0-RM1-RM2-(RM1-RM2)**2)*
16061 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
16062 ENDIF
16063 WDTP(0)=WDTP(0)+WDTP(I)
16064 IF(MDME(IDC,1).GT.0) THEN
16065 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
16066 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
16067 WDTE(I,0)=WDTE(I,MDME(IDC,1))
16068 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
16069 ENDIF
16070 370 CONTINUE
16071
16072 ELSEIF(KFLA.EQ.56) THEN
16073
16074 ALPRHT=2.91D0*(3D0/PARP(144))
16075 FAC=(ALPRHT/12D0)*SHR
16076 FACF=(1D0/6D0)*(AEM**2/ALPRHT)*SHR*(2D0*PARP(143)-1D0)**2
16077 SQMZ=PMAS(23,1)**2
16078 SHP=SH
16079 CALL PYWIDX(23,SHP,WDTPP,WDTEP)
16080 GMMZ=SHR*WDTPP(0)
16081 BWZR=(0.5D0/(1D0-XW))*SH*(SH-SQMZ)/((SH-SQMZ)**2+GMMZ**2)
16082 BWZI=(0.5D0/(1D0-XW))*SH*GMMZ/((SH-SQMZ)**2+GMMZ**2)
16083 DO 380 I=1,MDCY(KC,3)
16084 IDC=I+MDCY(KC,2)-1
16085 IF(MDME(IDC,1).LT.0) GOTO 380
16086 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
16087 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
16088 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 380
16089 WID2=1D0
16090 IF(I.EQ.1) THEN
16091
16092 WDTP(I)=AEM/24D0/PARJ(172)**2*(1D0-PARP(141)**2)*
16093 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3*SHR**3
16094 WID2=WIDS(51,2)
16095 ELSEIF(I.EQ.2) THEN
16096
16097 WDTP(I)=AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3*
16098 & (1D0-PARP(141)**2)/24D0/PARJ(172)**2*(1D0-2D0*XW)**2/4D0/
16099 & XW/XW1*SHR**3
16100 WID2=WIDS(23,2)*WIDS(51,2)
16101 ELSEIF(I.EQ.3) THEN
16102
16103 WDTP(I)=AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3*
16104 & (2D0*PARP(143)-1D0)**2*(1D0-PARJ(174)**2)/24D0/PARJ(172)**2*
16105 & SHR**3
16106 WID2=WIDS(53,2)
16107 ELSEIF(I.EQ.4) THEN
16108
16109 WDTP(I)=AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3*
16110 & (2D0*PARP(143)-1D0)**2*(1D0-PARJ(174)**2)/24D0/PARJ(172)**2*
16111 & XW/XW1*SHR**3
16112 WID2=WIDS(23,2)*WIDS(51,2)
16113 ELSEIF(I.EQ.5) THEN
16114
16115 WDTP(I)=AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3*
16116 & (1D0-PARP(141)**2)/4D0/XW/24D0/PARJ(172)**2*SHR**3+
16117 & FAC*PARP(141)**2*(1D0-PARP(141)**2)*PARJ(175)**2*
16118 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3
16119 WID2=WIDS(24,2)*WIDS(52,3)
16120 ELSEIF(I.EQ.6) THEN
16121
16122 WDTP(I)=AEM*SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3*
16123 & (1D0-PARP(141)**2)/4D0/XW/24D0/PARJ(172)**2*SHR**3+
16124 & FAC*PARP(141)**2*(1D0-PARP(141)**2)*PARJ(175)**2*
16125 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3
16126 WID2=WIDS(24,3)*WIDS(52,2)
16127 ELSEIF(I.EQ.7) THEN
16128
16129 WDTP(I)=FAC*PARP(141)**4*PARJ(175)**2*
16130 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3
16131 WID2=WIDS(24,1)
16132 ELSEIF(I.EQ.8) THEN
16133
16134 WDTP(I)=FAC*(1D0-PARP(141)**2)**2*PARJ(175)**2*
16135 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))**3
16136 WID2=WIDS(52,1)
16137 ELSE
16138
16139 WID2=1D0
16140 IF(I.LE.14) THEN
16141 IA=I-8
16142 FCOF=3D0*RADC
16143 IF(IA.GE.6.AND.IA.LE.8) WID2=WIDS(IA,1)
16144 ELSE
16145 IA=I-6
16146 FCOF=1D0
16147 IF(IA.GE.17) WID2=WIDS(IA,1)
16148 ENDIF
16149 EI=KCHG(IA,1)/3D0
16150 AI=SIGN(1D0,EI+0.1D0)
16151 VI=AI-4D0*EI*XWV
16152 VALI=0.5D0*(VI+AI)
16153 VARI=0.5D0*(VI-AI)
16154 WDTP(I)=FACF*FCOF*SQRT(MAX(0D0,1D0-4D0*RM1))*((1D0-RM1)*
16155 & ((EI+VALI*BWZR)**2+(VALI*BWZI)**2+
16156 & (EI+VARI*BWZR)**2+(VARI*BWZI)**2)+6D0*RM1*(
16157 & (EI+VALI*BWZR)*(EI+VARI*BWZR)+VALI*VARI*BWZI**2))
16158 ENDIF
16159 WDTP(0)=WDTP(0)+WDTP(I)
16160 IF(MDME(IDC,1).GT.0) THEN
16161 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
16162 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
16163 WDTE(I,0)=WDTE(I,MDME(IDC,1))
16164 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
16165 ENDIF
16166 380 CONTINUE
16167
16168 ELSEIF(KFLA.EQ.61) THEN
16169
16170 FAC=(1D0/(8D0*PARU(1)))*SHR
16171 DO 372 I=1,MDCY(KC,3)
16172 IDC=I+MDCY(KC,2)-1
16173 IF(MDME(IDC,1).LT.0) GOTO 372
16174 RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SH
16175 RM2=PMAS(IABS(KFDP(IDC,2)),1)**2/SH
16176 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 372
16177 WID2=1D0
16178 IF(I.LE.6) THEN
16179
16180 FCOF=PARP(180+3*((IABS(KFDP(IDC,1))-11)/2)+
16181 & (IABS(KFDP(IDC,2))-9)/2)**2
16182
16183 IF(KFDP(IDC,1).NE.KFDP(IDC,2)) FCOF=2D0*FCOF
16184 ELSEIF(I.EQ.7) THEN
16185
16186 FCOF=0.5D0*PARP(190)**4*PARP(192)**2/PMAS(24,1)**2*
16187 & (3D0*RM1+0.25D0/RM1-1D0)
16188 WID2=WIDS(24,4+(1-KFLS)/2)
16189 ENDIF
16190 WDTP(I)=FAC*FCOF*
16191 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
16192 WDTP(0)=WDTP(0)+WDTP(I)
16193 IF(MDME(IDC,1).GT.0) THEN
16194 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
16195 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
16196 WDTE(I,0)=WDTE(I,MDME(IDC,1))
16197 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
16198 ENDIF
16199 372 CONTINUE
16200
16201 ELSEIF(KFLA.EQ.62) THEN
16202
16203 FAC=(1D0/(8D0*PARU(1)))*SHR
16204 DO 373 I=1,MDCY(KC,3)
16205 IDC=I+MDCY(KC,2)-1
16206 IF(MDME(IDC,1).LT.0) GOTO 373
16207 RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SH
16208 RM2=PMAS(IABS(KFDP(IDC,2)),1)**2/SH
16209 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 373
16210 WID2=1D0
16211 IF(I.LE.6) THEN
16212
16213 FCOF=PARP(180+3*((IABS(KFDP(IDC,1))-11)/2)+
16214 & (IABS(KFDP(IDC,2))-9)/2)**2
16215 IF(KFDP(IDC,1).NE.KFDP(IDC,2)) FCOF=2D0*FCOF
16216 ELSEIF(I.EQ.7) THEN
16217
16218 FCOF=PARP(191)**2*(3D0*RM1+0.25D0/RM1-1D0)
16219 WID2=WIDS(63,4+(1-KFLS)/2)
16220 ENDIF
16221 WDTP(I)=FAC*FCOF*
16222 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
16223 WDTP(0)=WDTP(0)+WDTP(I)
16224 IF(MDME(IDC,1).GT.0) THEN
16225 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
16226 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
16227 WDTE(I,0)=WDTE(I,MDME(IDC,1))
16228 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
16229 ENDIF
16230 373 CONTINUE
16231
16232 ELSEIF(KFLA.EQ.63) THEN
16233
16234 FAC=(AEM/(24D0*XW))*SHR
16235 DO 374 I=1,MDCY(KC,3)
16236 IDC=I+MDCY(KC,2)-1
16237 IF(MDME(IDC,1).LT.0) GOTO 374
16238 RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SH
16239 RM2=PMAS(IABS(KFDP(IDC,2)),1)**2/SH
16240 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 374
16241 WID2=1D0
16242 IF(I.LE.9) THEN
16243
16244 FCOF=3D0*RADC*VCKM((I-1)/3+1,MOD(I-1,3)+1)
16245 IF(KFLR.GT.0) THEN
16246 IF(MOD(I,3).EQ.0) WID2=WIDS(6,2)
16247 ELSE
16248 IF(MOD(I,3).EQ.0) WID2=WIDS(6,3)
16249 ENDIF
16250 ELSEIF(I.LE.12) THEN
16251
16252 FCOF=1D0
16253 ENDIF
16254 WDTP(I)=FAC*FCOF*(2D0-RM1-RM2-(RM1-RM2)**2)*
16255 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
16256 WDTP(0)=WDTP(0)+WDTP(I)
16257 IF(MDME(IDC,1).GT.0) THEN
16258 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
16259 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
16260 WDTE(I,0)=WDTE(I,MDME(IDC,1))
16261 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
16262 ENDIF
16263 374 CONTINUE
16264
16265 ELSEIF(KFLA.EQ.KEXCIT+1) THEN
16266
16267 FAC=(SH/PARU(155)**2)*SHR
16268 DO 390 I=1,MDCY(KC,3)
16269 IDC=I+MDCY(KC,2)-1
16270 IF(MDME(IDC,1).LT.0) GOTO 390
16271 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
16272 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
16273 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 390
16274 WID2=1D0
16275 IF(I.EQ.1) THEN
16276
16277 WDTP(I)=FAC*AS*PARU(159)**2/3D0
16278 WID2=1D0
16279 ELSEIF(I.EQ.2) THEN
16280
16281 QF=-PARU(157)/2D0+PARU(158)/6D0
16282 WDTP(I)=FAC*AEM*QF**2/4D0
16283 WID2=1D0
16284 ELSEIF(I.EQ.3) THEN
16285
16286 QF=-PARU(157)*XW1/2D0-PARU(158)*XW/6D0
16287 WDTP(I)=FAC*AEM*QF**2/(8D0*XW*XW1)*
16288 & (1D0-RM1)**2*(2D0+RM1)
16289 WID2=WIDS(23,2)
16290 ELSEIF(I.EQ.4) THEN
16291
16292 WDTP(I)=FAC*AEM*PARU(157)**2/(16D0*XW)*
16293 & (1D0-RM1)**2*(2D0+RM1)
16294 IF(KFLR.GT.0) WID2=WIDS(24,3)
16295 IF(KFLR.LT.0) WID2=WIDS(24,2)
16296 ENDIF
16297 WDTP(0)=WDTP(0)+WDTP(I)
16298 IF(MDME(IDC,1).GT.0) THEN
16299 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
16300 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
16301 WDTE(I,0)=WDTE(I,MDME(IDC,1))
16302 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
16303 ENDIF
16304 390 CONTINUE
16305
16306 ELSEIF(KFLA.EQ.KEXCIT+2) THEN
16307
16308 FAC=(SH/PARU(155)**2)*SHR
16309 DO 400 I=1,MDCY(KC,3)
16310 IDC=I+MDCY(KC,2)-1
16311 IF(MDME(IDC,1).LT.0) GOTO 400
16312 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
16313 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
16314 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 400
16315 WID2=1D0
16316 IF(I.EQ.1) THEN
16317
16318 WDTP(I)=FAC*AS*PARU(159)**2/3D0
16319 WID2=1D0
16320 ELSEIF(I.EQ.2) THEN
16321
16322 QF=PARU(157)/2D0+PARU(158)/6D0
16323 WDTP(I)=FAC*AEM*QF**2/4D0
16324 WID2=1D0
16325 ELSEIF(I.EQ.3) THEN
16326
16327 QF=PARU(157)*XW1/2D0-PARU(158)*XW/6D0
16328 WDTP(I)=FAC*AEM*QF**2/(8D0*XW*XW1)*
16329 & (1D0-RM1)**2*(2D0+RM1)
16330 WID2=WIDS(23,2)
16331 ELSEIF(I.EQ.4) THEN
16332
16333 WDTP(I)=FAC*AEM*PARU(157)**2/(16D0*XW)*
16334 & (1D0-RM1)**2*(2D0+RM1)
16335 IF(KFLR.GT.0) WID2=WIDS(24,2)
16336 IF(KFLR.LT.0) WID2=WIDS(24,3)
16337 ENDIF
16338 WDTP(0)=WDTP(0)+WDTP(I)
16339 IF(MDME(IDC,1).GT.0) THEN
16340 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
16341 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
16342 WDTE(I,0)=WDTE(I,MDME(IDC,1))
16343 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
16344 ENDIF
16345 400 CONTINUE
16346
16347 ELSEIF(KFLA.EQ.KEXCIT+11) THEN
16348
16349 FAC=(SH/PARU(155)**2)*SHR
16350 DO 410 I=1,MDCY(KC,3)
16351 IDC=I+MDCY(KC,2)-1
16352 IF(MDME(IDC,1).LT.0) GOTO 410
16353 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
16354 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
16355 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 410
16356 WID2=1D0
16357 IF(I.EQ.1) THEN
16358
16359 QF=-PARU(157)/2D0-PARU(158)/2D0
16360 WDTP(I)=FAC*AEM*QF**2/4D0
16361 WID2=1D0
16362 ELSEIF(I.EQ.2) THEN
16363
16364 QF=-PARU(157)*XW1/2D0+PARU(158)*XW/2D0
16365 WDTP(I)=FAC*AEM*QF**2/(8D0*XW*XW1)*
16366 & (1D0-RM1)**2*(2D0+RM1)
16367 WID2=WIDS(23,2)
16368 ELSEIF(I.EQ.3) THEN
16369
16370 WDTP(I)=FAC*AEM*PARU(157)**2/(16D0*XW)*
16371 & (1D0-RM1)**2*(2D0+RM1)
16372 IF(KFLR.GT.0) WID2=WIDS(24,3)
16373 IF(KFLR.LT.0) WID2=WIDS(24,2)
16374 ENDIF
16375 WDTP(0)=WDTP(0)+WDTP(I)
16376 IF(MDME(IDC,1).GT.0) THEN
16377 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
16378 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
16379 WDTE(I,0)=WDTE(I,MDME(IDC,1))
16380 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
16381 ENDIF
16382 410 CONTINUE
16383
16384 ELSEIF(KFLA.EQ.KEXCIT+12) THEN
16385
16386 FAC=(SH/PARU(155)**2)*SHR
16387 DO 420 I=1,MDCY(KC,3)
16388 IDC=I+MDCY(KC,2)-1
16389 IF(MDME(IDC,1).LT.0) GOTO 420
16390 RM1=PMAS(PYCOMP(KFDP(IDC,1)),1)**2/SH
16391 RM2=PMAS(PYCOMP(KFDP(IDC,2)),1)**2/SH
16392 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 420
16393 WID2=1D0
16394 IF(I.EQ.1) THEN
16395
16396 QF=PARU(157)*XW1/2D0+PARU(158)*XW/2D0
16397 WDTP(I)=FAC*AEM*QF**2/(8D0*XW*XW1)*
16398 & (1D0-RM1)**2*(2D0+RM1)
16399 WID2=WIDS(23,2)
16400 ELSEIF(I.EQ.2) THEN
16401
16402 WDTP(I)=FAC*AEM*PARU(157)**2/(16D0*XW)*
16403 & (1D0-RM1)**2*(2D0+RM1)
16404 IF(KFLR.GT.0) WID2=WIDS(24,2)
16405 IF(KFLR.LT.0) WID2=WIDS(24,3)
16406 ENDIF
16407 WDTP(0)=WDTP(0)+WDTP(I)
16408 IF(MDME(IDC,1).GT.0) THEN
16409 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
16410 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
16411 WDTE(I,0)=WDTE(I,MDME(IDC,1))
16412 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
16413 ENDIF
16414 420 CONTINUE
16415
16416 ENDIF
16417 MINT(61)=0
16418 MINT(62)=0
16419 MINT(63)=0
16420
16421 RETURN
16422 END
16423
16424
16425
16426
16427
16428
16429
16430 SUBROUTINE PYWIDX(KFLR,SH,WDTP,WDTE)
16431
16432
16433 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
16434 IMPLICIT INTEGER(I-N)
16435 INTEGER PYK,PYCHGE,PYCOMP
16436
16437 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
16438
16439 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
16440 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
16441 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
16442 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
16443 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
16444 COMMON/PYINT1/MINT(400),VINT(400)
16445 COMMON/PYINT4/MWID(500),WIDS(500,5)
16446 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
16447 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
16448 &SFMIX(16,4)
16449 SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYSUBS/,/PYPARS/,/PYINT1/,
16450 &/PYINT4/,/PYMSSM/,/PYSSMT/
16451
16452 DIMENSION WDTP(0:200),WDTE(0:200,0:5),MOFSV(3,2),WIDWSV(3,2),
16453 &WID2SV(3,2)
16454 SAVE MOFSV,WIDWSV,WID2SV
16455 DATA MOFSV/6*0/,WIDWSV/6*0D0/,WID2SV/6*0D0/
16456
16457
16458 KFLA=IABS(KFLR)
16459 KFLS=ISIGN(1,KFLR)
16460 KC=PYCOMP(KFLA)
16461 SHR=SQRT(SH)
16462 PMR=PMAS(KC,1)
16463
16464
16465 DO 110 I=0,200
16466 WDTP(I)=0D0
16467 DO 100 J=0,5
16468 WDTE(I,J)=0D0
16469 100 CONTINUE
16470 110 CONTINUE
16471
16472
16473 XW=PARU(102)
16474 XWV=XW
16475 IF(MSTP(8).GE.2) XW=1D0-(PMAS(24,1)/PMAS(23,1))**2
16476 XW1=1D0-XW
16477 AEM=PYALEM(SH)
16478 IF(MSTP(8).GE.1) AEM=SQRT(2D0)*PARU(105)*PMAS(24,1)**2*XW/PARU(1)
16479 AS=PYALPS(SH)
16480 RADC=1D0+AS/PARU(1)
16481
16482 IF(KFLA.EQ.23) THEN
16483
16484 ICASE=1
16485 XWC=1D0/(16D0*XW*XW1)
16486 FAC=(AEM*XWC/3D0)*SHR
16487 200 CONTINUE
16488 DO 210 I=1,MDCY(KC,3)
16489 IDC=I+MDCY(KC,2)-1
16490 IF(MDME(IDC,1).LT.0) GOTO 210
16491 RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SH
16492 RM2=PMAS(IABS(KFDP(IDC,2)),1)**2/SH
16493 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 210
16494 WID2=1D0
16495 IF(I.LE.8) THEN
16496
16497 EF=KCHG(I,1)/3D0
16498 AF=SIGN(1D0,EF+0.1D0)
16499 VF=AF-4D0*EF*XWV
16500 FCOF=3D0*RADC
16501 IF(I.GE.6.AND.MSTP(35).GE.1) FCOF=FCOF*PYHFTH(SH,SH*RM1,1D0)
16502 IF(I.EQ.6) WID2=WIDS(6,1)
16503 IF((I.EQ.7.OR.I.EQ.8)) WID2=WIDS(I,1)
16504 ELSEIF(I.LE.16) THEN
16505
16506 EF=KCHG(I+2,1)/3D0
16507 AF=SIGN(1D0,EF+0.1D0)
16508 VF=AF-4D0*EF*XWV
16509 FCOF=1D0
16510 IF((I.EQ.15.OR.I.EQ.16)) WID2=WIDS(2+I,1)
16511 ENDIF
16512 BE34=SQRT(MAX(0D0,1D0-4D0*RM1))
16513 WDTP(I)=FAC*FCOF*(VF**2*(1D0+2D0*RM1)+AF**2*(1D0-4D0*RM1))*
16514 & BE34
16515 WDTP(0)=WDTP(0)+WDTP(I)
16516 IF(MDME(IDC,1).GT.0) THEN
16517 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
16518 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+
16519 & WDTE(I,MDME(IDC,1))
16520 WDTE(I,0)=WDTE(I,MDME(IDC,1))
16521 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
16522 ENDIF
16523 210 CONTINUE
16524
16525
16526 ELSEIF(KFLA.EQ.24) THEN
16527
16528 FAC=(AEM/(24D0*XW))*SHR
16529 DO 220 I=1,MDCY(KC,3)
16530 IDC=I+MDCY(KC,2)-1
16531 IF(MDME(IDC,1).LT.0) GOTO 220
16532 RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SH
16533 RM2=PMAS(IABS(KFDP(IDC,2)),1)**2/SH
16534 IF(SQRT(RM1)+SQRT(RM2).GT.1D0) GOTO 220
16535 WID2=1D0
16536 IF(I.LE.16) THEN
16537
16538 FCOF=3D0*RADC*VCKM((I-1)/4+1,MOD(I-1,4)+1)
16539 IF(KFLR.GT.0) THEN
16540 IF(MOD(I,4).EQ.3) WID2=WIDS(6,2)
16541 IF(MOD(I,4).EQ.0) WID2=WIDS(8,2)
16542 IF(I.GE.13) WID2=WID2*WIDS(7,3)
16543 ELSE
16544 IF(MOD(I,4).EQ.3) WID2=WIDS(6,3)
16545 IF(MOD(I,4).EQ.0) WID2=WIDS(8,3)
16546 IF(I.GE.13) WID2=WID2*WIDS(7,2)
16547 ENDIF
16548 ELSEIF(I.LE.20) THEN
16549
16550 FCOF=1D0
16551 IF(KFLR.GT.0) THEN
16552 IF(I.EQ.20) WID2=WIDS(17,3)*WIDS(18,2)
16553 ELSE
16554 IF(I.EQ.20) WID2=WIDS(17,2)*WIDS(18,3)
16555 ENDIF
16556 ENDIF
16557 WDTP(I)=FAC*FCOF*(2D0-RM1-RM2-(RM1-RM2)**2)*
16558 & SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
16559 WDTP(0)=WDTP(0)+WDTP(I)
16560 IF(MDME(IDC,1).GT.0) THEN
16561 WDTE(I,MDME(IDC,1))=WDTP(I)*WID2
16562 WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))
16563 WDTE(I,0)=WDTE(I,MDME(IDC,1))
16564 WDTE(0,0)=WDTE(0,0)+WDTE(I,0)
16565 ENDIF
16566 220 CONTINUE
16567 ENDIF
16568
16569 RETURN
16570 END
16571
16572
16573
16574
16575
16576
16577
16578
16579 SUBROUTINE PYOFSH(MOFSH,KFMO,KFD1,KFD2,PMMO,RET1,RET2)
16580
16581
16582 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
16583 IMPLICIT INTEGER(I-N)
16584 INTEGER PYK,PYCHGE,PYCOMP
16585
16586 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
16587 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
16588 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
16589 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
16590 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
16591 COMMON/PYINT1/MINT(400),VINT(400)
16592 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
16593 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
16594 SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYSUBS/,/PYPARS/,/PYINT1/,
16595 &/PYINT2/,/PYINT5/
16596
16597 DIMENSION KFD(2),MBW(2),PMD(2),PGD(2),PMG(2),PML(2),PMU(2),
16598 &PMH(2),ATL(2),ATU(2),ATH(2),RMG(2),INX1(100),XPT1(100),
16599 &FPT1(100),INX2(100),XPT2(100),FPT2(100),WDTP(0:200),
16600 &WDTE(0:200,0:5)
16601
16602
16603 MINT(51)=0
16604 ISUB=MINT(1)
16605 KFD(1)=IABS(KFD1)
16606 KFD(2)=IABS(KFD2)
16607 MEQL=0
16608 IF(KFD(1).EQ.KFD(2)) MEQL=1
16609 MLM=0
16610 IF(MOFSH.GE.2.AND.MEQL.EQ.1) MLM=INT(1.5D0+PYR(0))
16611 IF(MOFSH.LE.2.OR.MOFSH.EQ.5) THEN
16612 NOFF=44
16613 PMMX=PMMO
16614 ELSE
16615 NOFF=40
16616 PMMX=VINT(1)
16617 IF(CKIN(2).GT.CKIN(1)) PMMX=MIN(CKIN(2),VINT(1))
16618 ENDIF
16619 MMED=0
16620 IF((KFMO.EQ.25.OR.KFMO.EQ.35.OR.KFMO.EQ.36).AND.MEQL.EQ.1.AND.
16621 &(KFD(1).EQ.23.OR.KFD(1).EQ.24)) MMED=1
16622 IF((KFMO.EQ.32.OR.IABS(KFMO).EQ.34).AND.(KFD(1).EQ.23.OR.
16623 &KFD(1).EQ.24).AND.(KFD(2).EQ.23.OR.KFD(2).EQ.24)) MMED=2
16624 IF((KFMO.EQ.32.OR.IABS(KFMO).EQ.34).AND.(KFD(2).EQ.25.OR.
16625 &KFD(2).EQ.35.OR.KFD(2).EQ.36)) MMED=3
16626 LOOP=1
16627
16628
16629 100 DO 110 I=1,2
16630 KFCA=PYCOMP(KFD(I))
16631 IF(KFCA.GT.0) THEN
16632 PMD(I)=PMAS(KFCA,1)
16633 PGD(I)=PMAS(KFCA,2)
16634 ELSE
16635 PMD(I)=0D0
16636 PGD(I)=0D0
16637 ENDIF
16638 IF(MSTP(42).LE.0.OR.PGD(I).LT.PARP(41)) THEN
16639 MBW(I)=0
16640 PMG(I)=PMD(I)
16641 RMG(I)=(PMG(I)/PMMX)**2
16642 ELSE
16643 MBW(I)=1
16644 ENDIF
16645 110 CONTINUE
16646
16647
16648 DO 120 I=1,2
16649 IF(MOFSH.EQ.1.AND.LOOP.EQ.1.AND.MBW(I).EQ.1) THEN
16650 PML(I)=PARP(42)
16651 PMU(I)=PMMX-PARP(42)
16652 IF(MBW(3-I).EQ.0) PMU(I)=MIN(PMU(I),PMMX-PMD(3-I))
16653 IF(PMU(I).LT.PML(I)+PARJ(64)) MBW(I)=-1
16654 ELSEIF(MBW(I).EQ.1.AND.MOFSH.NE.5) THEN
16655 ILM=I
16656 IF(MLM.EQ.2) ILM=3-I
16657 PML(I)=MAX(CKIN(NOFF+2*ILM-1),PARP(42))
16658 IF(MBW(3-I).EQ.0) THEN
16659 PMU(I)=PMMX-PMD(3-I)
16660 ELSE
16661 PMU(I)=PMMX-MAX(CKIN(NOFF+5-2*ILM),PARP(42))
16662 ENDIF
16663 IF(CKIN(NOFF+2*ILM).GT.CKIN(NOFF+2*ILM-1)) PMU(I)=
16664 & MIN(PMU(I),CKIN(NOFF+2*ILM))
16665 IF(I.EQ.MLM) PMU(I)=MIN(PMU(I),0.5D0*PMMX)
16666 IF(MEQL.EQ.0) PMH(I)=MIN(PMU(I),0.5D0*PMMX)
16667 IF(PMU(I).LT.PML(I)+PARJ(64)) MBW(I)=-1
16668 IF(MBW(I).EQ.1) THEN
16669 ATL(I)=ATAN((PML(I)**2-PMD(I)**2)/(PMD(I)*PGD(I)))
16670 ATU(I)=ATAN((PMU(I)**2-PMD(I)**2)/(PMD(I)*PGD(I)))
16671 IF(MEQL.EQ.0) ATH(I)=ATAN((PMH(I)**2-PMD(I)**2)/(PMD(I)*
16672 & PGD(I)))
16673 ENDIF
16674 ELSEIF(MBW(I).EQ.1.AND.MOFSH.EQ.5) THEN
16675 ILM=I
16676 IF(MLM.EQ.2) ILM=3-I
16677 PML(I)=MAX(CKIN(48+I),PARP(42))
16678 PMU(I)=PMMX-MAX(CKIN(51-I),PARP(42))
16679 IF(MBW(3-I).EQ.0) PMU(I)=MIN(PMU(I),PMMX-PMD(3-I))
16680 IF(I.EQ.MLM) PMU(I)=MIN(PMU(I),0.5D0*PMMX)
16681 IF(MEQL.EQ.0) PMH(I)=MIN(PMU(I),0.5D0*PMMX)
16682 IF(PMU(I).LT.PML(I)+PARJ(64)) MBW(I)=-1
16683 IF(MBW(I).EQ.1) THEN
16684 ATL(I)=ATAN((PML(I)**2-PMD(I)**2)/(PMD(I)*PGD(I)))
16685 ATU(I)=ATAN((PMU(I)**2-PMD(I)**2)/(PMD(I)*PGD(I)))
16686 IF(MEQL.EQ.0) ATH(I)=ATAN((PMH(I)**2-PMD(I)**2)/(PMD(I)*
16687 & PGD(I)))
16688 ENDIF
16689 ENDIF
16690 120 CONTINUE
16691 IF(MBW(1).LT.0.OR.MBW(2).LT.0.OR.(MBW(1).EQ.0.AND.MBW(2).EQ.0))
16692 &THEN
16693 CALL PYERRM(3,'(PYOFSH:) no allowed decay product masses')
16694 MINT(51)=1
16695 RETURN
16696 ENDIF
16697
16698
16699 IF(MOFSH.EQ.1) THEN
16700
16701
16702 IF(MBW(1).EQ.0) THEN
16703 PM2=PMD(1)
16704 PMD(1)=PMD(2)
16705 PGD(1)=PGD(2)
16706 PML(1)=PML(2)
16707 PMU(1)=PMU(2)
16708 ELSEIF(MBW(2).EQ.0) THEN
16709 PM2=PMD(2)
16710 ENDIF
16711
16712
16713 IF(MBW(1).EQ.1.AND.MBW(2).EQ.1) THEN
16714 ATL2=ATAN((PML(2)**2-PMD(2)**2)/(PMD(2)*PGD(2)))
16715 ATU2=ATAN((PMU(2)**2-PMD(2)**2)/(PMD(2)*PGD(2)))
16716 NPT2=1
16717 XPT2(1)=1D0
16718 INX2(1)=0
16719 FMAX2=0D0
16720 ENDIF
16721 130 IF(MBW(1).EQ.1.AND.MBW(2).EQ.1) THEN
16722 PM2S=PMD(2)**2+PMD(2)*PGD(2)*TAN(ATL2+XPT2(NPT2)*(ATU2-ATL2))
16723 PM2=MIN(PMU(2),MAX(PML(2),SQRT(MAX(0D0,PM2S))))
16724 ENDIF
16725 RM2=(PM2/PMMX)**2
16726
16727
16728 PML1=PML(1)
16729 PMU1=MIN(PMU(1),PMMX-PM2)
16730 IF(MEQL.EQ.1) PMU1=MIN(PMU1,PM2)
16731 ATL1=ATAN((PML1**2-PMD(1)**2)/(PMD(1)*PGD(1)))
16732 ATU1=ATAN((PMU1**2-PMD(1)**2)/(PMD(1)*PGD(1)))
16733 IF(PML1+PARJ(64).GE.PMU1.OR.ATL1+1D-7.GE.ATU1) THEN
16734 FUNC2=0D0
16735 GOTO 180
16736 ENDIF
16737 NPT1=1
16738 XPT1(1)=1D0
16739 INX1(1)=0
16740 FMAX1=0D0
16741 140 PM1S=PMD(1)**2+PMD(1)*PGD(1)*TAN(ATL1+XPT1(NPT1)*(ATU1-ATL1))
16742 PM1=MIN(PMU1,MAX(PML1,SQRT(MAX(0D0,PM1S))))
16743 RM1=(PM1/PMMX)**2
16744
16745
16746 FUNC1=SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
16747 IF(MMED.EQ.1) FUNC1=FUNC1*((1D0-RM1-RM2)**2+8D0*RM1*RM2)
16748 IF(MMED.EQ.2) FUNC1=FUNC1**3*(1D0+10D0*RM1+10D0*RM2+RM1**2+
16749 & RM2**2+10D0*RM1*RM2)
16750 IF(FUNC1.GT.FMAX1) FMAX1=FUNC1
16751 FPT1(NPT1)=FUNC1
16752
16753
16754 IF(NPT1.EQ.1) THEN
16755 NPT1=NPT1+1
16756 XPT1(NPT1)=0D0
16757 INX1(NPT1)=1
16758 GOTO 140
16759 ELSEIF(NPT1.LE.8) THEN
16760 NPT1=NPT1+1
16761 IF(NPT1.LE.4.OR.NPT1.EQ.6) ISH1=1
16762 ISH1=ISH1+1
16763 XPT1(NPT1)=0.5D0*(XPT1(ISH1)+XPT1(INX1(ISH1)))
16764 INX1(NPT1)=INX1(ISH1)
16765 INX1(ISH1)=NPT1
16766 GOTO 140
16767 ELSEIF(NPT1.LT.100) THEN
16768 ISN1=ISH1
16769 150 ISH1=ISH1+1
16770 IF(ISH1.GT.NPT1) ISH1=2
16771 IF(ISH1.EQ.ISN1) GOTO 160
16772 DFPT1=ABS(FPT1(ISH1)-FPT1(INX1(ISH1)))
16773 IF(DFPT1.LT.PARP(43)*FMAX1) GOTO 150
16774 NPT1=NPT1+1
16775 XPT1(NPT1)=0.5D0*(XPT1(ISH1)+XPT1(INX1(ISH1)))
16776 INX1(NPT1)=INX1(ISH1)
16777 INX1(ISH1)=NPT1
16778 GOTO 140
16779 ENDIF
16780
16781
16782 160 FSUM1=0D0
16783 DO 170 IPT1=2,NPT1
16784 FSUM1=FSUM1+0.5D0*(FPT1(IPT1)+FPT1(INX1(IPT1)))*
16785 & (XPT1(INX1(IPT1))-XPT1(IPT1))
16786 170 CONTINUE
16787 FUNC2=FSUM1*(ATU1-ATL1)/PARU(1)
16788 180 IF(MBW(1).EQ.1.AND.MBW(2).EQ.1) THEN
16789 IF(FUNC2.GT.FMAX2) FMAX2=FUNC2
16790 FPT2(NPT2)=FUNC2
16791
16792
16793 IF(NPT2.EQ.1) THEN
16794 NPT2=NPT2+1
16795 XPT2(NPT2)=0D0
16796 INX2(NPT2)=1
16797 GOTO 130
16798 ELSEIF(NPT2.LE.8) THEN
16799 NPT2=NPT2+1
16800 IF(NPT2.LE.4.OR.NPT2.EQ.6) ISH2=1
16801 ISH2=ISH2+1
16802 XPT2(NPT2)=0.5D0*(XPT2(ISH2)+XPT2(INX2(ISH2)))
16803 INX2(NPT2)=INX2(ISH2)
16804 INX2(ISH2)=NPT2
16805 GOTO 130
16806 ELSEIF(NPT2.LT.100) THEN
16807 ISN2=ISH2
16808 190 ISH2=ISH2+1
16809 IF(ISH2.GT.NPT2) ISH2=2
16810 IF(ISH2.EQ.ISN2) GOTO 200
16811 DFPT2=ABS(FPT2(ISH2)-FPT2(INX2(ISH2)))
16812 IF(DFPT2.LT.PARP(43)*FMAX2) GOTO 190
16813 NPT2=NPT2+1
16814 XPT2(NPT2)=0.5D0*(XPT2(ISH2)+XPT2(INX2(ISH2)))
16815 INX2(NPT2)=INX2(ISH2)
16816 INX2(ISH2)=NPT2
16817 GOTO 130
16818 ENDIF
16819
16820
16821 200 FSUM2=0D0
16822 DO 210 IPT2=2,NPT2
16823 FSUM2=FSUM2+0.5D0*(FPT2(IPT2)+FPT2(INX2(IPT2)))*
16824 & (XPT2(INX2(IPT2))-XPT2(IPT2))
16825 210 CONTINUE
16826 FSUM2=FSUM2*(ATU2-ATL2)/PARU(1)
16827 IF(MEQL.EQ.1) FSUM2=2D0*FSUM2
16828 ELSE
16829 FSUM2=FUNC2
16830 ENDIF
16831
16832
16833 IF(LOOP.EQ.1) WIDW=FSUM2
16834 WID2=FSUM2
16835 IF(LOOP.EQ.1.AND.(CKIN(46).GE.CKIN(45).OR.CKIN(48).GE.CKIN(47)
16836 & .OR.MAX(CKIN(45),CKIN(47)).GE.1.01D0*PARP(42))) THEN
16837 LOOP=2
16838 GOTO 100
16839 ENDIF
16840 RET1=WIDW
16841 RET2=WID2/WIDW
16842
16843
16844 ELSEIF(MOFSH.EQ.2.OR.MOFSH.EQ.5) THEN
16845 220 DO 230 I=1,2
16846 IF(MBW(I).EQ.0) GOTO 230
16847 PMBW=PMD(I)**2+PMD(I)*PGD(I)*TAN(ATL(I)+PYR(0)*
16848 & (ATU(I)-ATL(I)))
16849 PMG(I)=MIN(PMU(I),MAX(PML(I),SQRT(MAX(0D0,PMBW))))
16850 RMG(I)=(PMG(I)/PMMX)**2
16851 230 CONTINUE
16852 IF((MEQL.EQ.1.AND.PMG(MAX(1,MLM)).GT.PMG(MIN(2,3-MLM))).OR.
16853 & PMG(1)+PMG(2)+PARJ(64).GT.PMMX) GOTO 220
16854
16855
16856 FLAM=SQRT(MAX(0D0,(1D0-RMG(1)-RMG(2))**2-4D0*RMG(1)*RMG(2)))
16857 IF(MMED.EQ.1) THEN
16858 WTBE=FLAM*((1D0-RMG(1)-RMG(2))**2+8D0*RMG(1)*RMG(2))
16859 ELSEIF(MMED.EQ.2) THEN
16860 WTBE=FLAM**3*(1D0+10D0*RMG(1)+10D0*RMG(2)+RMG(1)**2+
16861 & RMG(2)**2+10D0*RMG(1)*RMG(2))
16862 ELSEIF(MMED.EQ.3) THEN
16863 WTBE=FLAM*(RMG(1)+FLAM**2/12D0)
16864 ELSE
16865 WTBE=FLAM
16866 ENDIF
16867 IF(WTBE.LT.PYR(0)) GOTO 220
16868 RET1=PMG(1)
16869 RET2=PMG(2)
16870
16871
16872 ELSEIF(MOFSH.EQ.3) THEN
16873 IF(MBW(1).NE.0.AND.MBW(2).EQ.0) THEN
16874 PMG(1)=MIN(PMD(1),0.5D0*(PML(1)+PMU(1)))
16875 PMG(2)=PMD(2)
16876 ELSEIF(MBW(2).NE.0.AND.MBW(1).EQ.0) THEN
16877 PMG(1)=PMD(1)
16878 PMG(2)=MIN(PMD(2),0.5D0*(PML(2)+PMU(2)))
16879 ELSE
16880 IDIV=-1
16881 240 IDIV=IDIV+1
16882 PMG(1)=MIN(PMD(1),0.1D0*(IDIV*PML(1)+(10-IDIV)*PMU(1)))
16883 PMG(2)=MIN(PMD(2),0.1D0*(IDIV*PML(2)+(10-IDIV)*PMU(2)))
16884 IF(IDIV.LE.9.AND.PMG(1)+PMG(2).GT.0.9D0*PMMX) GOTO 240
16885 ENDIF
16886 RET1=PMG(1)
16887 RET2=PMG(2)
16888
16889
16890 IF(MEQL.EQ.0.AND.MBW(1).EQ.1.AND.MBW(2).EQ.1.AND.PMD(1)+PMD(2)
16891 & .GT.PMMX.AND.PMH(1).GT.PML(1).AND.PMH(2).GT.PML(2)) MEQL=2
16892 IF(MEQL.LE.1) THEN
16893 VINT(80)=1D0
16894 DO 250 I=1,2
16895 IF(MBW(I).NE.0) VINT(80)=VINT(80)*1.25D0*(ATU(I)-ATL(I))/
16896 & PARU(1)
16897 250 CONTINUE
16898 ELSE
16899 VINT(80)=(1.25D0/PARU(1))**2*MAX((ATU(1)-ATL(1))*
16900 & (ATH(2)-ATL(2)),(ATH(1)-ATL(1))*(ATU(2)-ATL(2)))
16901 ENDIF
16902 IF((ISUB.EQ.15.OR.ISUB.EQ.19.OR.ISUB.EQ.30.OR.ISUB.EQ.35).AND.
16903 & MSTP(43).NE.2) VINT(80)=2D0*VINT(80)
16904 IF(ISUB.EQ.22.AND.MSTP(43).NE.2) VINT(80)=4D0*VINT(80)
16905 IF(MEQL.GE.1) VINT(80)=2D0*VINT(80)
16906
16907
16908 ELSEIF(MOFSH.EQ.4) THEN
16909 IF(MEQL.EQ.0.AND.MBW(1).EQ.1.AND.MBW(2).EQ.1.AND.PMD(1)+PMD(2)
16910 & .GT.PMMX.AND.PMH(1).GT.PML(1).AND.PMH(2).GT.PML(2)) MEQL=2
16911 260 IF(MEQL.EQ.2) MLM=INT(1.5D0+PYR(0))
16912
16913
16914 DO 270 I=1,2
16915 IF(MBW(I).EQ.0) GOTO 270
16916 PMV=PMU(I)
16917 IF(MEQL.EQ.2.AND.I.EQ.MLM) PMV=PMH(I)
16918 ATV=ATU(I)
16919 IF(MEQL.EQ.2.AND.I.EQ.MLM) ATV=ATH(I)
16920 RBR=PYR(0)
16921 IF((ISUB.EQ.15.OR.ISUB.EQ.19.OR.ISUB.EQ.22.OR.ISUB.EQ.30.OR.
16922 & ISUB.EQ.35).AND.MSTP(43).NE.2) RBR=2D0*RBR
16923 IF(RBR.LT.0.8D0) THEN
16924 PMSR=PMD(I)**2+PMD(I)*PGD(I)*TAN(ATL(I)+PYR(0)*(ATV-ATL(I)))
16925 PMG(I)=MIN(PMV,MAX(PML(I),SQRT(MAX(0D0,PMSR))))
16926 ELSEIF(RBR.LT.0.9D0) THEN
16927 PMG(I)=SQRT(MAX(0D0,PML(I)**2+PYR(0)*(PMV**2-PML(I)**2)))
16928 ELSEIF(RBR.LT.1.5D0) THEN
16929 PMG(I)=PML(I)*(PMV/PML(I))**PYR(0)
16930 ELSE
16931 PMG(I)=SQRT(MAX(0D0,PML(I)**2*PMV**2/(PML(I)**2+PYR(0)*
16932 & (PMV**2-PML(I)**2))))
16933 ENDIF
16934 270 CONTINUE
16935 IF((MEQL.GE.1.AND.PMG(MAX(1,MLM)).GT.PMG(MIN(2,3-MLM))).OR.
16936 & PMG(1)+PMG(2)+PARJ(64).GT.PMMX) THEN
16937 IF(MINT(48).EQ.1) THEN
16938 NGEN(0,1)=NGEN(0,1)+1
16939 NGEN(MINT(1),1)=NGEN(MINT(1),1)+1
16940 GOTO 260
16941 ELSE
16942 MINT(51)=1
16943 RETURN
16944 ENDIF
16945 ENDIF
16946 RET1=PMG(1)
16947 RET2=PMG(2)
16948
16949
16950 VINT(80)=1D0
16951 DO 280 I=1,2
16952 IF(MBW(I).EQ.0) GOTO 280
16953 PMV=PMU(I)
16954 IF(MEQL.EQ.2.AND.I.EQ.MLM) PMV=PMH(I)
16955 ATV=ATU(I)
16956 IF(MEQL.EQ.2.AND.I.EQ.MLM) ATV=ATH(I)
16957 F0=PMD(I)*PGD(I)/((PMG(I)**2-PMD(I)**2)**2+
16958 & (PMD(I)*PGD(I))**2)/PARU(1)
16959 F1=1D0
16960 F2=1D0/PMG(I)**2
16961 F3=1D0/PMG(I)**4
16962 FI0=(ATV-ATL(I))/PARU(1)
16963 FI1=PMV**2-PML(I)**2
16964 FI2=2D0*LOG(PMV/PML(I))
16965 FI3=1D0/PML(I)**2-1D0/PMV**2
16966 IF((ISUB.EQ.15.OR.ISUB.EQ.19.OR.ISUB.EQ.22.OR.ISUB.EQ.30.OR.
16967 & ISUB.EQ.35).AND.MSTP(43).NE.2) THEN
16968 VINT(80)=VINT(80)*20D0/(8D0+(FI0/F0)*(F1/FI1+6D0*F2/FI2+
16969 & 5D0*F3/FI3))
16970 ELSE
16971 VINT(80)=VINT(80)*10D0/(8D0+(FI0/F0)*(F1/FI1+F2/FI2))
16972 ENDIF
16973 VINT(80)=VINT(80)*FI0
16974 280 CONTINUE
16975 IF(MEQL.GE.1) VINT(80)=2D0*VINT(80)
16976 ENDIF
16977
16978 RETURN
16979 END
16980
16981
16982
16983
16984
16985
16986
16987
16988
16989
16990
16991 SUBROUTINE PYRECO(IW1,IW2,NSD1,NAFT1)
16992
16993
16994 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
16995 IMPLICIT INTEGER(I-N)
16996 INTEGER PYK,PYCHGE,PYCOMP
16997
16998 PARAMETER (NPT=100)
16999
17000 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
17001 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
17002 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
17003 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
17004 COMMON/PYINT1/MINT(400),VINT(400)
17005 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYPARS/,/PYINT1/
17006
17007 DIMENSION NBEG(2),NEND(2),INP(50),INM(50),BEWW(3),XP(3),XM(3),
17008 &V1(3),V2(3),BETP(50,4),DIRP(50,3),BETM(50,4),DIRM(50,3),
17009 &XD(4),XB(4),IAP(NPT),IAM(NPT),WTA(NPT),V1P(3),V2P(3),V1M(3),
17010 &V2M(3),Q(4,3),XPP(3),XMM(3),IPC(20),IMC(20),TC(0:20),TPC(20),
17011 &TMC(20),IJOIN(100)
17012
17013
17014 FOUR(I,J)=P(I,4)*P(J,4)-P(I,1)*P(J,1)-P(I,2)*P(J,2)-P(I,3)*P(J,3)
17015 DETER(I,J,L)=Q(I,1)*Q(J,2)*Q(L,3)-Q(I,1)*Q(L,2)*Q(J,3)+
17016 &Q(J,1)*Q(L,2)*Q(I,3)-Q(J,1)*Q(I,2)*Q(L,3)+
17017 &Q(L,1)*Q(I,2)*Q(J,3)-Q(L,1)*Q(J,2)*Q(I,3)
17018
17019
17020
17021 IF(MSTP(115).EQ.5.OR.MSTP(115).EQ.11.OR.MSTP(115).EQ.12) THEN
17022 IF(PYR(0).GT.PARP(120)) RETURN
17023 ENDIF
17024 ISUB=MINT(1)
17025
17026
17027 IF(MSTP(115).EQ.1.OR.MSTP(115).EQ.2.OR.MSTP(115).EQ.3.OR.
17028 &MSTP(115).EQ.5) THEN
17029
17030
17031 PI=PARU(1)
17032 HBAR=PARU(3)
17033 PMW=PMAS(24,1)
17034 IF(ISUB.EQ.22) PMW=PMAS(23,1)
17035 PGW=PMAS(24,2)
17036 IF(ISUB.EQ.22) PGW=PMAS(23,2)
17037 TFRAG=PARP(115)
17038 RHAD=PARP(116)
17039 FACT=PARP(117)
17040 BLOWR=PARP(118)
17041 BLOWT=PARP(119)
17042
17043
17044
17045
17046
17047
17048 IF(NAFT1.GT.NSD1+4) THEN
17049 NBEG(1)=NSD1+5
17050 NEND(1)=NAFT1
17051 ELSE
17052 NBEG(1)=NSD1+1
17053 NEND(1)=NSD1+2
17054 ENDIF
17055 IF(N.GT.NAFT1) THEN
17056 NBEG(2)=NAFT1+1
17057 NEND(2)=N
17058 ELSE
17059 NBEG(2)=NSD1+3
17060 NEND(2)=NSD1+4
17061 ENDIF
17062
17063
17064 NOLD=N
17065 CALL PYPREP(NSD1+1)
17066
17067
17068
17069 NNP=0
17070 NNM=0
17071 ISGP=0
17072 ISGM=0
17073 DO 120 I=NOLD+1,N
17074 IF(K(I,1).NE.1.AND.K(I,1).NE.2) GOTO 120
17075 IF(IABS(K(I,2)).GE.22) GOTO 120
17076 IF(K(I,3).GE.NBEG(1).AND.K(I,3).LE.NEND(1)) THEN
17077 IF(ISGP.EQ.0) ISGP=ISIGN(1,K(I,2))
17078 NNP=NNP+1
17079 IF(ISGP.EQ.1) THEN
17080 INP(NNP)=I
17081 ELSE
17082 DO 100 I1=NNP,2,-1
17083 INP(I1)=INP(I1-1)
17084 100 CONTINUE
17085 INP(1)=I
17086 ENDIF
17087 IF(K(I,1).EQ.1) ISGP=0
17088 ELSEIF(K(I,3).GE.NBEG(2).AND.K(I,3).LE.NEND(2)) THEN
17089 IF(ISGM.EQ.0) ISGM=ISIGN(1,K(I,2))
17090 NNM=NNM+1
17091 IF(ISGM.EQ.1) THEN
17092 INM(NNM)=I
17093 ELSE
17094 DO 110 I1=NNM,2,-1
17095 INM(I1)=INM(I1-1)
17096 110 CONTINUE
17097 INM(1)=I
17098 ENDIF
17099 IF(K(I,1).EQ.1) ISGM=0
17100 ENDIF
17101 120 CONTINUE
17102
17103
17104 DO 130 J=1,3
17105 BEWW(J)=(P(IW1,J)+P(IW2,J))/(P(IW1,4)+P(IW2,4))
17106 130 CONTINUE
17107 CALL PYROBO(IW1,IW1,0D0,0D0,-BEWW(1),-BEWW(2),-BEWW(3))
17108 CALL PYROBO(IW2,IW2,0D0,0D0,-BEWW(1),-BEWW(2),-BEWW(3))
17109 CALL PYROBO(NOLD+1,N,0D0,0D0,-BEWW(1),-BEWW(2),-BEWW(3))
17110
17111
17112 TP=HBAR*(-LOG(PYR(0)))*P(IW1,4)/
17113 & SQRT((P(IW1,5)**2-PMW**2)**2+(P(IW1,5)**2*PGW/PMW)**2)
17114 TM=HBAR*(-LOG(PYR(0)))*P(IW2,4)/
17115 & SQRT((P(IW2,5)**2-PMW**2)**2+(P(IW2,5)**2*PGW/PMW)**2)
17116 GTMAX=MAX(TP,TM)
17117 DO 140 J=1,3
17118 XP(J)=TP*P(IW1,J)/P(IW1,4)
17119 XM(J)=TM*P(IW2,J)/P(IW2,4)
17120 140 CONTINUE
17121
17122
17123 IF(MSTP(115).EQ.1) THEN
17124
17125
17126 DO 170 IIP=1,NNP-1
17127 IF(K(INP(IIP),2).LT.0) GOTO 170
17128 I1=INP(IIP)
17129 I2=INP(IIP+1)
17130 P1A=SQRT(P(I1,1)**2+P(I1,2)**2+P(I1,3)**2)
17131 P2A=SQRT(P(I2,1)**2+P(I2,2)**2+P(I2,3)**2)
17132 DO 150 J=1,3
17133 V1(J)=P(I1,J)/P1A
17134 V2(J)=P(I2,J)/P2A
17135 BETP(IIP,J)=0.5D0*(V1(J)+V2(J))
17136 DIRP(IIP,J)=V1(J)-V2(J)
17137 150 CONTINUE
17138 BETP(IIP,4)=1D0/SQRT(1D0-BETP(IIP,1)**2-BETP(IIP,2)**2-
17139 & BETP(IIP,3)**2)
17140 DIRL=SQRT(DIRP(IIP,1)**2+DIRP(IIP,2)**2+DIRP(IIP,3)**2)
17141 DO 160 J=1,3
17142 DIRP(IIP,J)=DIRP(IIP,J)/DIRL
17143 160 CONTINUE
17144 170 CONTINUE
17145
17146
17147 DO 200 IIM=1,NNM-1
17148 IF(K(INM(IIM),2).LT.0) GOTO 200
17149 I1=INM(IIM)
17150 I2=INM(IIM+1)
17151 P1A=SQRT(P(I1,1)**2+P(I1,2)**2+P(I1,3)**2)
17152 P2A=SQRT(P(I2,1)**2+P(I2,2)**2+P(I2,3)**2)
17153 DO 180 J=1,3
17154 V1(J)=P(I1,J)/P1A
17155 V2(J)=P(I2,J)/P2A
17156 BETM(IIM,J)=0.5D0*(V1(J)+V2(J))
17157 DIRM(IIM,J)=V1(J)-V2(J)
17158 180 CONTINUE
17159 BETM(IIM,4)=1D0/SQRT(1D0-BETM(IIM,1)**2-BETM(IIM,2)**2-
17160 & BETM(IIM,3)**2)
17161 DIRL=SQRT(DIRM(IIM,1)**2+DIRM(IIM,2)**2+DIRM(IIM,3)**2)
17162 DO 190 J=1,3
17163 DIRM(IIM,J)=DIRM(IIM,J)/DIRL
17164 190 CONTINUE
17165 200 CONTINUE
17166
17167
17168 NACC=0
17169 SUM=0D0
17170 DO 250 IPT=1,NPT
17171
17172
17173 R=SQRT(-LOG(PYR(0)))
17174 PHI=2D0*PI*PYR(0)
17175 X=BLOWR*RHAD*R*COS(PHI)
17176 Y=BLOWR*RHAD*R*SIN(PHI)
17177 R=SQRT(-LOG(PYR(0)))
17178 PHI=2D0*PI*PYR(0)
17179 Z=BLOWR*RHAD*R*COS(PHI)
17180 T=GTMAX+BLOWT*SQRT(0.5D0)*TFRAG*R*ABS(SIN(PHI))
17181
17182
17183 IF(T**2-X**2-Y**2-Z**2.LT.0D0) GOTO 250
17184 WTSMP=EXP(-(X**2+Y**2+Z**2)/(BLOWR*RHAD)**2)*
17185 & EXP(-2D0*(T-GTMAX)**2/(BLOWT*TFRAG)**2)
17186
17187
17188 IMAXP=0
17189 WTMAXP=1D-10
17190 XD(1)=X-XP(1)
17191 XD(2)=Y-XP(2)
17192 XD(3)=Z-XP(3)
17193 XD(4)=T-TP
17194 DO 220 IIP=1,NNP-1
17195 IF(K(INP(IIP),2).LT.0) GOTO 220
17196 BED=BETP(IIP,1)*XD(1)+BETP(IIP,2)*XD(2)+BETP(IIP,3)*XD(3)
17197 BEDG=BETP(IIP,4)*(BETP(IIP,4)*BED/(1D0+BETP(IIP,4))-XD(4))
17198 DO 210 J=1,3
17199 XB(J)=XD(J)+BEDG*BETP(IIP,J)
17200 210 CONTINUE
17201 XB(4)=BETP(IIP,4)*(XD(4)-BED)
17202 SR2=XB(1)**2+XB(2)**2+XB(3)**2
17203 SZ2=(DIRP(IIP,1)*XB(1)+DIRP(IIP,2)*XB(2)+
17204 & DIRP(IIP,3)*XB(3))**2
17205 WTP=EXP(-(SR2-SZ2)/(2D0*RHAD**2))*EXP(-(XB(4)**2-SZ2)/
17206 & TFRAG**2)
17207 IF(XB(4)-SQRT(SR2).LT.0D0) WTP=0D0
17208 IF(WTP.GT.WTMAXP) THEN
17209 IMAXP=IIP
17210 WTMAXP=WTP
17211 ENDIF
17212 220 CONTINUE
17213
17214
17215 IMAXM=0
17216 WTMAXM=1D-10
17217 XD(1)=X-XM(1)
17218 XD(2)=Y-XM(2)
17219 XD(3)=Z-XM(3)
17220 XD(4)=T-TM
17221 DO 240 IIM=1,NNM-1
17222 IF(K(INM(IIM),2).LT.0) GOTO 240
17223 BED=BETM(IIM,1)*XD(1)+BETM(IIM,2)*XD(2)+BETM(IIM,3)*XD(3)
17224 BEDG=BETM(IIM,4)*(BETM(IIM,4)*BED/(1D0+BETM(IIM,4))-XD(4))
17225 DO 230 J=1,3
17226 XB(J)=XD(J)+BEDG*BETM(IIM,J)
17227 230 CONTINUE
17228 XB(4)=BETM(IIM,4)*(XD(4)-BED)
17229 SR2=XB(1)**2+XB(2)**2+XB(3)**2
17230 SZ2=(DIRM(IIM,1)*XB(1)+DIRM(IIM,2)*XB(2)+
17231 & DIRM(IIM,3)*XB(3))**2
17232 WTM=EXP(-(SR2-SZ2)/(2D0*RHAD**2))*EXP(-(XB(4)**2-SZ2)/
17233 & TFRAG**2)
17234 IF(XB(4)-SQRT(SR2).LT.0D0) WTM=0D0
17235 IF(WTM.GT.WTMAXM) THEN
17236 IMAXM=IIM
17237 WTMAXM=WTM
17238 ENDIF
17239 240 CONTINUE
17240
17241
17242 WT=0D0
17243 IF(IMAXP.NE.0.AND.IMAXM.NE.0) THEN
17244 WT=WTMAXP*WTMAXM/WTSMP
17245 SUM=SUM+WT
17246 NACC=NACC+1
17247 IAP(NACC)=IMAXP
17248 IAM(NACC)=IMAXM
17249 WTA(NACC)=WT
17250 ENDIF
17251 250 CONTINUE
17252 RES=BLOWR**3*BLOWT*SUM/NPT
17253
17254
17255 IACC=0
17256 PREC=1D0-EXP(-FACT*RES)
17257 IF(PREC.GT.PYR(0)) THEN
17258 RSUM=PYR(0)*SUM
17259 DO 260 IA=1,NACC
17260 IACC=IA
17261 RSUM=RSUM-WTA(IA)
17262 IF(RSUM.LE.0D0) GOTO 270
17263 260 CONTINUE
17264 270 IIP=IAP(IACC)
17265 IIM=IAM(IACC)
17266 ENDIF
17267
17268
17269 ELSEIF(MSTP(115).EQ.2.OR.MSTP(115).EQ.3) THEN
17270
17271
17272 NCROSS=0
17273 TC(0)=0D0
17274 DO 340 IIP=1,NNP-1
17275 IF(K(INP(IIP),2).LT.0) GOTO 340
17276 I1P=INP(IIP)
17277 I2P=INP(IIP+1)
17278 DO 330 IIM=1,NNM-1
17279 IF(K(INM(IIM),2).LT.0) GOTO 330
17280 I1M=INM(IIM)
17281 I2M=INM(IIM+1)
17282
17283
17284 DO 280 J=1,3
17285 V1P(J)=P(I1P,J)/P(I1P,4)
17286 V2P(J)=P(I2P,J)/P(I2P,4)
17287 V1M(J)=P(I1M,J)/P(I1M,4)
17288 V2M(J)=P(I2M,J)/P(I2M,4)
17289 280 CONTINUE
17290
17291
17292 DO 290 J=1,3
17293 Q(1,J)=V2P(J)-V1P(J)
17294 Q(2,J)=-(V2M(J)-V1M(J))
17295 Q(3,J)=XP(J)-XM(J)-TP*V1P(J)+TM*V1M(J)
17296 Q(4,J)=V1P(J)-V1M(J)
17297 290 CONTINUE
17298 T=-DETER(1,2,3)/DETER(1,2,4)
17299
17300
17301 S11=Q(1,1)*(T-TP)
17302 S12=Q(2,1)*(T-TM)
17303 S13=Q(3,1)+Q(4,1)*T
17304 S21=Q(1,2)*(T-TP)
17305 S22=Q(2,2)*(T-TM)
17306 S23=Q(3,2)+Q(4,2)*T
17307 DEN=S11*S22-S12*S21
17308 ALP=(S12*S23-S22*S13)/DEN
17309 BET=(S21*S13-S11*S23)/DEN
17310
17311
17312 IANSW=1
17313 IF(T.LT.GTMAX) IANSW=0
17314 IF(ALP.LT.0D0.OR.ALP.GT.1D0) IANSW=0
17315 IF(BET.LT.0D0.OR.BET.GT.1D0) IANSW=0
17316
17317
17318 DO 300 J=1,3
17319 XPP(J)=XP(J)+(V1P(J)+ALP*(V2P(J)-V1P(J)))*(T-TP)
17320 XMM(J)=XM(J)+(V1M(J)+BET*(V2M(J)-V1M(J)))*(T-TM)
17321 300 CONTINUE
17322 D2PM=(XPP(1)-XMM(1))**2+(XPP(2)-XMM(2))**2+
17323 & (XPP(3)-XMM(3))**2
17324 D2P=XPP(1)**2+XPP(2)**2+XPP(3)**2
17325 D2M=XMM(1)**2+XMM(2)**2+XMM(3)**2
17326 IF(D2PM.GT.1D-4*(D2P+D2M)) IANSW=-1
17327
17328
17329 IF(IANSW.EQ.1) THEN
17330 TAUP=SQRT(MAX(0D0,(T-TP)**2-(XPP(1)-XP(1))**2-
17331 & (XPP(2)-XP(2))**2-(XPP(3)-XP(3))**2))
17332 TAUM=SQRT(MAX(0D0,(T-TM)**2-(XMM(1)-XM(1))**2-
17333 & (XMM(2)-XM(2))**2-(XMM(3)-XM(3))**2))
17334 ELSE
17335 TAUP=0D0
17336 TAUM=0D0
17337 ENDIF
17338
17339
17340 IF(IANSW.EQ.1.AND.NCROSS.LT.20) THEN
17341 NCROSS=NCROSS+1
17342 DO 310 I1=NCROSS,1,-1
17343 IF(T.GT.TC(I1-1).OR.I1.EQ.1) THEN
17344 IPC(I1)=IIP
17345 IMC(I1)=IIM
17346 TC(I1)=T
17347 TPC(I1)=TAUP
17348 TMC(I1)=TAUM
17349 GOTO 320
17350 ELSE
17351 IPC(I1)=IPC(I1-1)
17352 IMC(I1)=IMC(I1-1)
17353 TC(I1)=TC(I1-1)
17354 TPC(I1)=TPC(I1-1)
17355 TMC(I1)=TMC(I1-1)
17356 ENDIF
17357 310 CONTINUE
17358 320 CONTINUE
17359 ENDIF
17360 330 CONTINUE
17361 340 CONTINUE
17362
17363
17364 IACC=0
17365 IF(NCROSS.GE.1) THEN
17366 DO 350 IC=1,NCROSS
17367 PNFRAG=EXP(-(TPC(IC)**2+TMC(IC)**2)/TFRAG**2)
17368 IF(PNFRAG.GT.PYR(0)) THEN
17369
17370 IF(MSTP(115).EQ.2) THEN
17371 IACC=IC
17372 IIP=IPC(IACC)
17373 IIM=IMC(IACC)
17374 GOTO 360
17375
17376 ELSE
17377 IIP=IPC(IC)
17378 IIM=IMC(IC)
17379 I1P=INP(IIP)
17380 I2P=INP(IIP+1)
17381 I1M=INM(IIM)
17382 I2M=INM(IIM+1)
17383 ELOLD=FOUR(I1P,I2P)*FOUR(I1M,I2M)
17384 ELNEW=FOUR(I1P,I2M)*FOUR(I1M,I2P)
17385 IF(ELNEW.LT.ELOLD) THEN
17386 IACC=IC
17387 IIP=IPC(IACC)
17388 IIM=IMC(IACC)
17389 GOTO 360
17390 ENDIF
17391 ENDIF
17392 ENDIF
17393 350 CONTINUE
17394 360 CONTINUE
17395 ENDIF
17396
17397
17398 ELSEIF(MSTP(115).EQ.5) THEN
17399
17400
17401 IACC=0
17402 ELMIN=1D0
17403 DO 380 IIP=1,NNP-1
17404 IF(K(INP(IIP),2).LT.0) GOTO 380
17405 I1P=INP(IIP)
17406 I2P=INP(IIP+1)
17407 DO 370 IIM=1,NNM-1
17408 IF(K(INM(IIM),2).LT.0) GOTO 370
17409 I1M=INM(IIM)
17410 I2M=INM(IIM+1)
17411
17412
17413 ELOLD=FOUR(I1P,I2P)*FOUR(I1M,I2M)
17414 ELNEW=FOUR(I1P,I2M)*FOUR(I1M,I2P)
17415 ELDIF=ELNEW/MAX(1D-10,ELOLD)
17416 IF(ELDIF.LT.ELMIN) THEN
17417 IACC=IIP+IIM
17418 ELMIN=ELDIF
17419 IPC(1)=IIP
17420 IMC(1)=IIM
17421 ENDIF
17422 370 CONTINUE
17423 380 CONTINUE
17424 IIP=IPC(1)
17425 IIM=IMC(1)
17426 ENDIF
17427
17428
17429 IF(IACC.NE.0) THEN
17430 MINT(32)=1
17431 NJOIN=0
17432 DO 390 IS=1,NNP+NNM
17433 NJOIN=NJOIN+1
17434 IF(IS.LE.IIP) THEN
17435 I=INP(IS)
17436 ELSEIF(IS.LE.IIP+NNM-IIM) THEN
17437 I=INM(IS-IIP+IIM)
17438 ELSEIF(IS.LE.IIP+NNM) THEN
17439 I=INM(IS-IIP-NNM+IIM)
17440 ELSE
17441 I=INP(IS-NNM)
17442 ENDIF
17443 IJOIN(NJOIN)=I
17444 IF(K(I,2).LT.0) THEN
17445 CALL PYJOIN(NJOIN,IJOIN)
17446 NJOIN=0
17447 ENDIF
17448 390 CONTINUE
17449
17450
17451 ELSE
17452 DO 400 I=NSD1+1,NOLD
17453 IF(K(I,1).EQ.13.OR.K(I,1).EQ.14) THEN
17454 K(I,4)=MOD(K(I,4),MSTU(5)**2)
17455 K(I,5)=MOD(K(I,5),MSTU(5)**2)
17456 ENDIF
17457 400 CONTINUE
17458 DO 410 I=NOLD+1,N
17459 K(K(I,3),1)=3
17460 410 CONTINUE
17461 N=NOLD
17462 ENDIF
17463
17464
17465 CALL PYROBO(IW1,IW1,0D0,0D0,BEWW(1),BEWW(2),BEWW(3))
17466 CALL PYROBO(IW2,IW2,0D0,0D0,BEWW(1),BEWW(2),BEWW(3))
17467 IF(N.GT.NOLD) CALL PYROBO(NOLD+1,N,0D0,0D0,
17468 & BEWW(1),BEWW(2),BEWW(3))
17469
17470
17471 ELSEIF(MSTP(115).EQ.11.OR.MSTP(115).EQ.12) THEN
17472 MINT(32)=1
17473
17474
17475 N=NSD1+4
17476 DO 420 I=NSD1+1,NSD1+4
17477 K(I,1)=3
17478 K(I,4)=MOD(K(I,4),MSTU(5)**2)
17479 K(I,5)=MOD(K(I,5),MSTU(5)**2)
17480 420 CONTINUE
17481
17482
17483 IQ1=NSD1+1
17484 IQ2=NSD1+2
17485 IQ3=NSD1+3
17486 IF(K(IQ1,2)*K(IQ3,2).LT.0) IQ3=NSD1+4
17487 IQ4=2*NSD1+7-IQ3
17488
17489
17490 IJOIN(1)=IQ1
17491 IJOIN(2)=IQ4
17492 CALL PYJOIN(2,IJOIN)
17493 IJOIN(1)=IQ3
17494 IJOIN(2)=IQ2
17495 CALL PYJOIN(2,IJOIN)
17496
17497
17498 IF(MSTP(71).GE.1.AND.MSTP(115).EQ.11) THEN
17499 MSTJ50=MSTJ(50)
17500 MSTJ(50)=0
17501 CALL PYSHOW(IQ1,IQ2,P(IW1,5))
17502 CALL PYSHOW(IQ3,IQ4,P(IW2,5))
17503 MSTJ(50)=MSTJ50
17504
17505
17506 ELSEIF(MSTP(71).GE.1.AND.MSTP(115).EQ.12) THEN
17507 PPM2=(P(IQ1,4)+P(IQ4,4))**2-(P(IQ1,1)+P(IQ4,1))**2-
17508 & (P(IQ1,2)+P(IQ4,2))**2-(P(IQ1,3)+P(IQ4,3))**2
17509 PPM=SQRT(MAX(0D0,PPM2))
17510 CALL PYSHOW(IQ1,IQ4,PPM)
17511 PPM2=(P(IQ3,4)+P(IQ2,4))**2-(P(IQ3,1)+P(IQ2,1))**2-
17512 & (P(IQ3,2)+P(IQ2,2))**2-(P(IQ3,3)+P(IQ2,3))**2
17513 PPM=SQRT(MAX(0D0,PPM2))
17514 CALL PYSHOW(IQ3,IQ2,PPM)
17515 ENDIF
17516 ENDIF
17517
17518 RETURN
17519 END
17520
17521
17522
17523
17524
17525
17526
17527 SUBROUTINE PYKLIM(ILIM)
17528
17529
17530 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
17531 IMPLICIT INTEGER(I-N)
17532 INTEGER PYK,PYCHGE,PYCOMP
17533
17534 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
17535 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
17536 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
17537 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
17538 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
17539 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
17540 COMMON/PYINT1/MINT(400),VINT(400)
17541 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
17542 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYSUBS/,/PYPARS/,
17543 &/PYINT1/,/PYINT2/
17544
17545
17546 MINT(51)=0
17547 ISUB=MINT(1)
17548 ISTSB=ISET(ISUB)
17549 IF(ISUB.EQ.96) GOTO 100
17550 SQM3=VINT(63)
17551 SQM4=VINT(64)
17552 IF(ILIM.NE.0) THEN
17553 IF(ABS(SQM3).LT.1D-4.AND.ABS(SQM4).LT.1D-4) THEN
17554 CKIN09=MAX(CKIN(9),CKIN(13))
17555 CKIN10=MIN(CKIN(10),CKIN(14))
17556 CKIN11=MAX(CKIN(11),CKIN(15))
17557 CKIN12=MIN(CKIN(12),CKIN(16))
17558 ELSE
17559 CKIN09=MAX(CKIN(9),MIN(0D0,CKIN(13)))
17560 CKIN10=MIN(CKIN(10),MAX(0D0,CKIN(14)))
17561 CKIN11=MAX(CKIN(11),MIN(0D0,CKIN(15)))
17562 CKIN12=MIN(CKIN(12),MAX(0D0,CKIN(16)))
17563 ENDIF
17564 ENDIF
17565 IF(ILIM.NE.1) THEN
17566 TAU=VINT(21)
17567 RM3=SQM3/(TAU*VINT(2))
17568 RM4=SQM4/(TAU*VINT(2))
17569 BE34=SQRT(MAX(1D-20,(1D0-RM3-RM4)**2-4D0*RM3*RM4))
17570 ENDIF
17571 PTHMIN=CKIN(3)
17572 IF(MIN(SQM3,SQM4).LT.CKIN(6)**2.AND.ISTSB.NE.1.AND.ISTSB.NE.3)
17573 &PTHMIN=MAX(CKIN(3),CKIN(5))
17574
17575 IF(ILIM.EQ.0) THEN
17576
17577
17578 YST=VINT(22)
17579 CTH=VINT(23)
17580 TAUP=VINT(26)
17581 TAUE=TAU
17582 IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUE=TAUP
17583 X1=SQRT(TAUE)*EXP(YST)
17584 X2=SQRT(TAUE)*EXP(-YST)
17585 XF=X1-X2
17586 IF(MINT(47).NE.1) THEN
17587 IF(TAU*VINT(2).LT.CKIN(1)**2) MINT(51)=1
17588 IF(CKIN(2).GE.0D0.AND.TAU*VINT(2).GT.CKIN(2)**2) MINT(51)=1
17589 IF(YST.LT.CKIN(7).OR.YST.GT.CKIN(8)) MINT(51)=1
17590 IF(XF.LT.CKIN(25).OR.XF.GT.CKIN(26)) MINT(51)=1
17591 ENDIF
17592 IF(MINT(45).NE.1) THEN
17593 IF(X1.LT.CKIN(21).OR.X1.GT.CKIN(22)) MINT(51)=1
17594 ENDIF
17595 IF(MINT(46).NE.1) THEN
17596 IF(X2.LT.CKIN(23).OR.X2.GT.CKIN(24)) MINT(51)=1
17597 ENDIF
17598 IF(MINT(45).EQ.2) THEN
17599 IF(X1.GT.1D0-2D0*PARP(111)/VINT(1)) MINT(51)=1
17600 ENDIF
17601 IF(MINT(46).EQ.2) THEN
17602 IF(X2.GT.1D0-2D0*PARP(111)/VINT(1)) MINT(51)=1
17603 ENDIF
17604 IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) THEN
17605 PTH=0.5D0*BE34*SQRT(TAU*VINT(2)*MAX(0D0,1D0-CTH**2))
17606 EXPY3=MAX(1D-20,(1D0+RM3-RM4+BE34*CTH)/
17607 & MAX(1D-20,(1D0+RM3-RM4-BE34*CTH)))
17608 EXPY4=MAX(1D-20,(1D0-RM3+RM4-BE34*CTH)/
17609 & MAX(1D-20,(1D0-RM3+RM4+BE34*CTH)))
17610 Y3=YST+0.5D0*LOG(EXPY3)
17611 Y4=YST+0.5D0*LOG(EXPY4)
17612 YLARGE=MAX(Y3,Y4)
17613 YSMALL=MIN(Y3,Y4)
17614 ETALAR=20D0
17615 ETASMA=-20D0
17616 STH=SQRT(MAX(0D0,1D0-CTH**2))
17617 EXSQ3=SQRT(MAX(1D-20,((1D0+RM3-RM4)*COSH(YST)+BE34*SINH(YST)*
17618 & CTH)**2-4D0*RM3))
17619 EXSQ4=SQRT(MAX(1D-20,((1D0-RM3+RM4)*COSH(YST)-BE34*SINH(YST)*
17620 & CTH)**2-4D0*RM4))
17621 IF(STH.GE.1D-10) THEN
17622 EXPET3=((1D0+RM3-RM4)*SINH(YST)+BE34*COSH(YST)*CTH+EXSQ3)/
17623 & (BE34*STH)
17624 EXPET4=((1D0-RM3+RM4)*SINH(YST)-BE34*COSH(YST)*CTH+EXSQ4)/
17625 & (BE34*STH)
17626 ETA3=LOG(MIN(1D10,MAX(1D-10,EXPET3)))
17627 ETA4=LOG(MIN(1D10,MAX(1D-10,EXPET4)))
17628 ETALAR=MAX(ETA3,ETA4)
17629 ETASMA=MIN(ETA3,ETA4)
17630 ENDIF
17631 CTS3=((1D0+RM3-RM4)*SINH(YST)+BE34*COSH(YST)*CTH)/EXSQ3
17632 CTS4=((1D0-RM3+RM4)*SINH(YST)-BE34*COSH(YST)*CTH)/EXSQ4
17633 CTSLAR=MIN(1D0,MAX(-1D0,CTS3,CTS4))
17634 CTSSMA=MAX(-1D0,MIN(1D0,CTS3,CTS4))
17635 SH=TAU*VINT(2)
17636 RPTS=4D0*VINT(71)**2/SH
17637 BE34L=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4-RPTS))
17638 RM34=MAX(1D-20,2D0*RM3*RM4)
17639 IF(2D0*VINT(71)**2/(VINT(21)*VINT(2)).LT.0.0001D0)
17640 & RM34=MAX(RM34,2D0*VINT(71)**2/(VINT(21)*VINT(2)))
17641 RTHM=(4D0*RM3*RM4+RPTS)/(1D0-RM3-RM4+BE34L)
17642 THA=0.5D0*SH*MAX(RTHM,1D0-RM3-RM4-BE34*CTH)
17643 UHA=0.5D0*SH*MAX(RTHM,1D0-RM3-RM4+BE34*CTH)
17644 IF(PTH.LT.PTHMIN) MINT(51)=1
17645 IF(CKIN(4).GE.0D0.AND.PTH.GT.CKIN(4)) MINT(51)=1
17646 IF(YLARGE.LT.CKIN(9).OR.YLARGE.GT.CKIN(10)) MINT(51)=1
17647 IF(YSMALL.LT.CKIN(11).OR.YSMALL.GT.CKIN(12)) MINT(51)=1
17648 IF(ETALAR.LT.CKIN(13).OR.ETALAR.GT.CKIN(14)) MINT(51)=1
17649 IF(ETASMA.LT.CKIN(15).OR.ETASMA.GT.CKIN(16)) MINT(51)=1
17650 IF(CTSLAR.LT.CKIN(17).OR.CTSLAR.GT.CKIN(18)) MINT(51)=1
17651 IF(CTSSMA.LT.CKIN(19).OR.CTSSMA.GT.CKIN(20)) MINT(51)=1
17652 IF(CTH.LT.CKIN(27).OR.CTH.GT.CKIN(28)) MINT(51)=1
17653 IF(THA.LT.CKIN(35)) MINT(51)=1
17654 IF(CKIN(36).GE.0D0.AND.THA.GT.CKIN(36)) MINT(51)=1
17655 IF(UHA.LT.CKIN(37)) MINT(51)=1
17656 IF(CKIN(38).GE.0D0.AND.UHA.GT.CKIN(38)) MINT(51)=1
17657 ENDIF
17658 IF(ISTSB.GE.3.AND.ISTSB.LE.5) THEN
17659 IF(TAUP*VINT(2).LT.CKIN(31)**2) MINT(51)=1
17660 IF(CKIN(32).GE.0D0.AND.TAUP*VINT(2).GT.CKIN(32)**2) MINT(51)=1
17661 ENDIF
17662
17663
17664 IF(ISUB.EQ.10.AND.MINT(43).GE.2) THEN
17665 XBJ=X2
17666 IF(IABS(MINT(12)).LT.20) XBJ=X1
17667 Q2BJ=THA
17668 W2BJ=Q2BJ*(1D0-XBJ)/XBJ
17669 IF(W2BJ.LT.CKIN(39)) MINT(51)=1
17670 IF(CKIN(40).GT.0D0.AND.W2BJ.GT.CKIN(40)) MINT(51)=1
17671 ENDIF
17672
17673 ELSEIF(ILIM.EQ.1) THEN
17674
17675
17676 TAUMN0=0D0
17677 TAUMX0=1D0
17678
17679 TAUMN1=CKIN(1)**2/VINT(2)
17680 TAUMX1=1D0
17681 IF(CKIN(2).GE.0D0) TAUMX1=CKIN(2)**2/VINT(2)
17682
17683 TM3=SQRT(SQM3+PTHMIN**2)
17684 TM4=SQRT(SQM4+PTHMIN**2)
17685 YDCOSH=1D0
17686 IF(CKIN09.GT.CKIN12) YDCOSH=COSH(CKIN09-CKIN12)
17687 TAUMN2=(TM3**2+2D0*TM3*TM4*YDCOSH+TM4**2)/VINT(2)
17688 TAUMX2=1D0
17689
17690 CTH2MN=MIN(CKIN(27)**2,CKIN(28)**2)
17691 CTH2MX=MAX(CKIN(27)**2,CKIN(28)**2)
17692 TAUMN3=0D0
17693 IF(CKIN(27)*CKIN(28).GT.0D0) TAUMN3=
17694 & (SQRT(SQM3+PTHMIN**2/(1D0-CTH2MN))+
17695 & SQRT(SQM4+PTHMIN**2/(1D0-CTH2MN)))**2/VINT(2)
17696 TAUMX3=1D0
17697 IF(CKIN(4).GE.0D0.AND.CTH2MX.LT.1D0) TAUMX3=
17698 & (SQRT(SQM3+CKIN(4)**2/(1D0-CTH2MX))+
17699 & SQRT(SQM4+CKIN(4)**2/(1D0-CTH2MX)))**2/VINT(2)
17700
17701 TAUMN4=CKIN(21)*CKIN(23)
17702 TAUMX4=CKIN(22)*CKIN(24)
17703
17704 TAUMN5=0D0
17705 TAUMX5=MAX(1D0-CKIN(25),1D0+CKIN(26))
17706
17707 TAUMN6=(SQM3+SQM4+CKIN(35)+CKIN(37))/VINT(2)
17708 TAUMX6=1D0
17709 IF(CKIN(36).GT.0D0.AND.CKIN(38).GT.0D0) TAUMX6=
17710 & (SQM3+SQM4+CKIN(36)+CKIN(38))/VINT(2)
17711
17712
17713 VINT(11)=MAX(TAUMN0,TAUMN1,TAUMN2,TAUMN3,TAUMN4,TAUMN5,TAUMN6)
17714 VINT(31)=MIN(TAUMX0,TAUMX1,TAUMX2,TAUMX3,TAUMX4,TAUMX5,TAUMX6)
17715 IF(MINT(47).EQ.1.AND.(ISTSB.EQ.1.OR.ISTSB.EQ.2)) THEN
17716 VINT(11)=1D0-1D-9
17717 VINT(31)=1D0+1D-9
17718 ELSEIF(MINT(47).EQ.5) THEN
17719 VINT(31)=MIN(VINT(31),1D0-2D-10)
17720 ELSEIF(MINT(47).GE.6) THEN
17721 VINT(31)=MIN(VINT(31),1D0-1D-10)
17722 ENDIF
17723 IF(VINT(31).LE.VINT(11)) MINT(51)=1
17724
17725 ELSEIF(ILIM.EQ.2) THEN
17726
17727 TAUE=TAU
17728 IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUE=VINT(26)
17729 TAURT=SQRT(TAUE)
17730
17731 YSTMN0=LOG(TAURT)
17732 YSTMX0=-YSTMN0
17733
17734 YSTMN1=CKIN(7)
17735 YSTMX1=CKIN(8)
17736
17737 YSTMN2=LOG(MAX(TAUE,CKIN(21))/TAURT)
17738 YSTMX2=LOG(MAX(TAUE,CKIN(22))/TAURT)
17739
17740 YSTMN3=-LOG(MAX(TAUE,CKIN(24))/TAURT)
17741 YSTMX3=-LOG(MAX(TAUE,CKIN(23))/TAURT)
17742
17743 YEPMN4=0.5D0*ABS(CKIN(25))/TAURT
17744 YSTMN4=SIGN(LOG(MAX(1D-20,SQRT(1D0+YEPMN4**2)+YEPMN4)),CKIN(25))
17745 YEPMX4=0.5D0*ABS(CKIN(26))/TAURT
17746 YSTMX4=SIGN(LOG(MAX(1D-20,SQRT(1D0+YEPMX4**2)+YEPMX4)),CKIN(26))
17747
17748 YEPSMN=(RM3-RM4)*SINH(CKIN09-CKIN11)
17749 YEPSMX=(RM3-RM4)*SINH(CKIN10-CKIN12)
17750 YDIFMN=ABS(LOG(MAX(1D-20,SQRT(1D0+YEPSMN**2)-YEPSMN)))
17751 YDIFMX=ABS(LOG(MAX(1D-20,SQRT(1D0+YEPSMX**2)-YEPSMX)))
17752 YSTMN5=0.5D0*(CKIN09+CKIN11-YDIFMN)
17753 YSTMX5=0.5D0*(CKIN10+CKIN12+YDIFMX)
17754
17755
17756 CTHLIM=SQRT(MAX(0D0,1D0-4D0*PTHMIN**2/(BE34**2*TAUE*VINT(2))))
17757 RZMN=BE34*MAX(CKIN(27),-CTHLIM)
17758 RZMX=BE34*MIN(CKIN(28),CTHLIM)
17759 YEX3MX=(1D0+RM3-RM4+RZMX)/MAX(1D-10,1D0+RM3-RM4-RZMX)
17760 YEX4MX=(1D0+RM4-RM3-RZMN)/MAX(1D-10,1D0+RM4-RM3+RZMN)
17761 YEX3MN=MAX(1D-10,1D0+RM3-RM4+RZMN)/(1D0+RM3-RM4-RZMN)
17762 YEX4MN=MAX(1D-10,1D0+RM4-RM3-RZMX)/(1D0+RM4-RM3+RZMX)
17763 YSTMN6=CKIN09-0.5D0*LOG(MAX(YEX3MX,YEX4MX))
17764 YSTMX6=CKIN12-0.5D0*LOG(MIN(YEX3MN,YEX4MN))
17765
17766
17767 VINT(12)=MAX(YSTMN0,YSTMN1,YSTMN2,YSTMN3,YSTMN4,YSTMN5,YSTMN6)
17768 VINT(32)=MIN(YSTMX0,YSTMX1,YSTMX2,YSTMX3,YSTMX4,YSTMX5,YSTMX6)
17769 IF(MINT(47).EQ.1) THEN
17770 VINT(12)=-1D-9
17771 VINT(32)=1D-9
17772 ELSEIF(MINT(47).EQ.2.OR.MINT(47).EQ.6) THEN
17773 VINT(12)=(1D0-1D-9)*YSTMX0
17774 VINT(32)=(1D0+1D-9)*YSTMX0
17775 ELSEIF(MINT(47).EQ.3.OR.MINT(47).EQ.7) THEN
17776 VINT(12)=-(1D0+1D-9)*YSTMX0
17777 VINT(32)=-(1D0-1D-9)*YSTMX0
17778 ELSEIF(MINT(47).EQ.5) THEN
17779 YSTEE=LOG((1D0-1D-10)/TAURT)
17780 VINT(12)=MAX(VINT(12),-YSTEE)
17781 VINT(32)=MIN(VINT(32),YSTEE)
17782 ENDIF
17783 IF(VINT(32).LE.VINT(12)) MINT(51)=1
17784
17785 ELSEIF(ILIM.EQ.3) THEN
17786
17787 YST=VINT(22)
17788
17789 CTNMN0=-1D0
17790 CTNMX0=0D0
17791 CTPMN0=0D0
17792 CTPMX0=1D0
17793
17794 CTNMN1=MIN(0D0,CKIN(27))
17795 CTNMX1=MIN(0D0,CKIN(28))
17796 CTPMN1=MAX(0D0,CKIN(27))
17797 CTPMX1=MAX(0D0,CKIN(28))
17798
17799 CTNMN2=-SQRT(MAX(0D0,1D0-4D0*PTHMIN**2/(BE34**2*TAU*VINT(2))))
17800 CTPMX2=-CTNMN2
17801 CTNMX2=0D0
17802 CTPMN2=0D0
17803 IF(CKIN(4).GE.0D0) THEN
17804 CTNMX2=-SQRT(MAX(0D0,1D0-4D0*CKIN(4)**2/
17805 & (BE34**2*TAU*VINT(2))))
17806 CTPMN2=-CTNMX2
17807 ENDIF
17808
17809 CTNMN3=MIN(0D0,MAX((1D0+RM3-RM4)/BE34*TANH(CKIN11-YST),
17810 & -(1D0-RM3+RM4)/BE34*TANH(CKIN10-YST)))
17811 CTNMX3=MIN(0D0,(1D0+RM3-RM4)/BE34*TANH(CKIN12-YST),
17812 & -(1D0-RM3+RM4)/BE34*TANH(CKIN09-YST))
17813 CTPMN3=MAX(0D0,(1D0+RM3-RM4)/BE34*TANH(CKIN09-YST),
17814 & -(1D0-RM3+RM4)/BE34*TANH(CKIN12-YST))
17815 CTPMX3=MAX(0D0,MIN((1D0+RM3-RM4)/BE34*TANH(CKIN10-YST),
17816 & -(1D0-RM3+RM4)/BE34*TANH(CKIN11-YST)))
17817
17818 CTNMN4=-1D0
17819 CTNMX4=0D0
17820 CTPMN4=0D0
17821 CTPMX4=1D0
17822 SH=TAU*VINT(2)
17823 IF(CKIN(35).GT.0D0) THEN
17824 CTLIM=(1D0-RM3-RM4-2D0*CKIN(35)/SH)/BE34
17825 IF(CTLIM.GT.0D0) THEN
17826 CTPMX4=CTLIM
17827 ELSE
17828 CTPMX4=0D0
17829 CTNMX4=CTLIM
17830 ENDIF
17831 ENDIF
17832 IF(CKIN(36).GT.0D0) THEN
17833 CTLIM=(1D0-RM3-RM4-2D0*CKIN(36)/SH)/BE34
17834 IF(CTLIM.LT.0D0) THEN
17835 CTNMN4=CTLIM
17836 ELSE
17837 CTNMN4=0D0
17838 CTPMN4=CTLIM
17839 ENDIF
17840 ENDIF
17841
17842 CTNMN5=-1D0
17843 CTNMX5=0D0
17844 CTPMN5=0D0
17845 CTPMX5=1D0
17846 IF(CKIN(37).GT.0D0) THEN
17847 CTLIM=(2D0*CKIN(37)/SH-(1D0-RM3-RM4))/BE34
17848 IF(CTLIM.LT.0D0) THEN
17849 CTNMN5=CTLIM
17850 ELSE
17851 CTNMN5=0D0
17852 CTPMN5=CTLIM
17853 ENDIF
17854 ENDIF
17855 IF(CKIN(38).GT.0D0) THEN
17856 CTLIM=(2D0*CKIN(38)/SH-(1D0-RM3-RM4))/BE34
17857 IF(CTLIM.GT.0D0) THEN
17858 CTPMX5=CTLIM
17859 ELSE
17860 CTPMX5=0D0
17861 CTNMX5=CTLIM
17862 ENDIF
17863 ENDIF
17864
17865
17866 VINT(13)=MAX(CTNMN0,CTNMN1,CTNMN2,CTNMN3,CTNMN4,CTNMN5)
17867 VINT(33)=MIN(CTNMX0,CTNMX1,CTNMX2,CTNMX3,CTNMX4,CTNMX5)
17868 VINT(14)=MAX(CTPMN0,CTPMN1,CTPMN2,CTPMN3,CTPMN4,CTPMN5)
17869 VINT(34)=MIN(CTPMX0,CTPMX1,CTPMX2,CTPMX3,CTPMX4,CTPMX5)
17870 IF(VINT(33).LE.VINT(13).AND.VINT(34).LE.VINT(14)) MINT(51)=1
17871
17872 ELSEIF(ILIM.EQ.4) THEN
17873
17874
17875 TAPMN0=TAU
17876 IF(ISTSB.EQ.5.AND.KFPR(ISUB,2).GT.0) THEN
17877 PQRAT=2D0*PMAS(PYCOMP(KFPR(ISUB,2)),1)/VINT(1)
17878 TAPMN0=(SQRT(TAU)+PQRAT)**2
17879 ENDIF
17880 TAPMX0=1D0
17881
17882 TAPMN1=CKIN(31)**2/VINT(2)
17883 TAPMX1=1D0
17884 IF(CKIN(32).GE.0D0) TAPMX1=CKIN(32)**2/VINT(2)
17885
17886
17887 VINT(16)=MAX(TAPMN0,TAPMN1)
17888 VINT(36)=MIN(TAPMX0,TAPMX1)
17889 IF(MINT(47).EQ.1) THEN
17890 VINT(16)=1D0-1D-9
17891 VINT(36)=1D0+1D-9
17892 ELSEIF(MINT(47).EQ.5) THEN
17893 VINT(36)=MIN(VINT(36),1D0-2D-10)
17894 ELSEIF(MINT(47).EQ.6.OR.MINT(47).EQ.7) THEN
17895 VINT(36)=MIN(VINT(36),1D0-1D-10)
17896 ENDIF
17897 IF(VINT(36).LE.VINT(16)) MINT(51)=1
17898
17899 ENDIF
17900 RETURN
17901
17902
17903
17904 100 IF(ILIM.EQ.0) THEN
17905 ELSEIF(ILIM.EQ.1) THEN
17906 IF(MSTP(82).LE.1) THEN
17907 VINT(11)=4D0*(PARP(81)*(VINT(1)/PARP(89))**PARP(90))**2/
17908 & VINT(2)
17909 ELSE
17910 VINT(11)=(PARP(82)*(VINT(1)/PARP(89))**PARP(90))**2/VINT(2)
17911 ENDIF
17912 VINT(31)=1D0
17913 ELSEIF(ILIM.EQ.2) THEN
17914 VINT(12)=0.5D0*LOG(VINT(21))
17915 VINT(32)=-VINT(12)
17916 ELSEIF(ILIM.EQ.3) THEN
17917 IF(MSTP(82).LE.1) THEN
17918 ST2EFF=4D0*(PARP(81)*(VINT(1)/PARP(89))**PARP(90))**2/
17919 & (VINT(21)*VINT(2))
17920 ELSE
17921 ST2EFF=0.01D0*(PARP(82)*(VINT(1)/PARP(89))**PARP(90))**2/
17922 & (VINT(21)*VINT(2))
17923 ENDIF
17924 VINT(13)=-SQRT(MAX(0D0,1D0-ST2EFF))
17925 VINT(33)=0D0
17926 VINT(14)=0D0
17927 VINT(34)=-VINT(13)
17928 ENDIF
17929
17930 RETURN
17931 END
17932
17933
17934
17935
17936
17937
17938
17939
17940 SUBROUTINE PYKMAP(IVAR,MVAR,VVAR)
17941
17942
17943 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
17944 IMPLICIT INTEGER(I-N)
17945 INTEGER PYK,PYCHGE,PYCOMP
17946
17947 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
17948 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
17949 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
17950 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
17951 COMMON/PYINT1/MINT(400),VINT(400)
17952 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
17953 SAVE /PYDAT1/,/PYDAT2/,/PYSUBS/,/PYPARS/,/PYINT1/,/PYINT2/
17954
17955
17956 ISUB=MINT(1)
17957 ISTSB=ISET(ISUB)
17958 IF(IVAR.EQ.1) THEN
17959 TAUMIN=VINT(11)
17960 TAUMAX=VINT(31)
17961 IF(MVAR.EQ.3.OR.MVAR.EQ.4) THEN
17962 TAURE=VINT(73)
17963 GAMRE=VINT(74)
17964 ELSEIF(MVAR.EQ.5.OR.MVAR.EQ.6) THEN
17965 TAURE=VINT(75)
17966 GAMRE=VINT(76)
17967 ENDIF
17968 IF(MINT(47).EQ.1.AND.(ISTSB.EQ.1.OR.ISTSB.EQ.2)) THEN
17969 TAU=1D0
17970 ELSEIF(MVAR.EQ.1) THEN
17971 TAU=TAUMIN*(TAUMAX/TAUMIN)**VVAR
17972 ELSEIF(MVAR.EQ.2) THEN
17973 TAU=TAUMAX*TAUMIN/(TAUMIN+(TAUMAX-TAUMIN)*VVAR)
17974 ELSEIF(MVAR.EQ.3.OR.MVAR.EQ.5) THEN
17975 RATGEN=(TAURE+TAUMAX)/(TAURE+TAUMIN)*TAUMIN/TAUMAX
17976 TAU=TAURE*TAUMIN/((TAURE+TAUMIN)*RATGEN**VVAR-TAUMIN)
17977 ELSEIF(MVAR.EQ.4.OR.MVAR.EQ.6) THEN
17978 AUPP=ATAN((TAUMAX-TAURE)/GAMRE)
17979 ALOW=ATAN((TAUMIN-TAURE)/GAMRE)
17980 TAU=TAURE+GAMRE*TAN(ALOW+(AUPP-ALOW)*VVAR)
17981 ELSEIF(MINT(47).EQ.5) THEN
17982 AUPP=LOG(MAX(2D-10,1D0-TAUMAX))
17983 ALOW=LOG(MAX(2D-10,1D0-TAUMIN))
17984 TAU=1D0-EXP(AUPP+VVAR*(ALOW-AUPP))
17985 ELSE
17986 AUPP=LOG(MAX(1D-10,1D0-TAUMAX))
17987 ALOW=LOG(MAX(1D-10,1D0-TAUMIN))
17988 TAU=1D0-EXP(AUPP+VVAR*(ALOW-AUPP))
17989 ENDIF
17990 VINT(21)=MIN(TAUMAX,MAX(TAUMIN,TAU))
17991
17992
17993 ELSEIF(IVAR.EQ.2) THEN
17994 YSTMIN=VINT(12)
17995 YSTMAX=VINT(32)
17996 TAUE=VINT(21)
17997 IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUE=VINT(26)
17998 IF(MINT(47).EQ.1) THEN
17999 YST=0D0
18000 ELSEIF(MINT(47).EQ.2.OR.MINT(47).EQ.6) THEN
18001 YST=-0.5D0*LOG(TAUE)
18002 ELSEIF(MINT(47).EQ.3.OR.MINT(47).EQ.7) THEN
18003 YST=0.5D0*LOG(TAUE)
18004 ELSEIF(MVAR.EQ.1) THEN
18005 YST=YSTMIN+(YSTMAX-YSTMIN)*SQRT(VVAR)
18006 ELSEIF(MVAR.EQ.2) THEN
18007 YST=YSTMAX-(YSTMAX-YSTMIN)*SQRT(1D0-VVAR)
18008 ELSEIF(MVAR.EQ.3) THEN
18009 AUPP=ATAN(EXP(YSTMAX))
18010 ALOW=ATAN(EXP(YSTMIN))
18011 YST=LOG(TAN(ALOW+(AUPP-ALOW)*VVAR))
18012 ELSEIF(MVAR.EQ.4) THEN
18013 YST0=-0.5D0*LOG(TAUE)
18014 AUPP=LOG(MAX(1D-10,EXP(YST0-YSTMIN)-1D0))
18015 ALOW=LOG(MAX(1D-10,EXP(YST0-YSTMAX)-1D0))
18016 YST=YST0-LOG(1D0+EXP(ALOW+VVAR*(AUPP-ALOW)))
18017 ELSE
18018 YST0=-0.5D0*LOG(TAUE)
18019 AUPP=LOG(MAX(1D-10,EXP(YST0+YSTMIN)-1D0))
18020 ALOW=LOG(MAX(1D-10,EXP(YST0+YSTMAX)-1D0))
18021 YST=LOG(1D0+EXP(AUPP+VVAR*(ALOW-AUPP)))-YST0
18022 ENDIF
18023 VINT(22)=MIN(YSTMAX,MAX(YSTMIN,YST))
18024
18025
18026 ELSEIF(IVAR.EQ.3) THEN
18027 RM34=MAX(1D-20,2D0*VINT(63)*VINT(64)/(VINT(21)*VINT(2))**2)
18028 RSQM=1D0+RM34
18029 IF(2D0*VINT(71)**2/(VINT(21)*VINT(2)).LT.0.0001D0)
18030 & RM34=MAX(RM34,2D0*VINT(71)**2/(VINT(21)*VINT(2)))
18031 CTNMIN=VINT(13)
18032 CTNMAX=VINT(33)
18033 CTPMIN=VINT(14)
18034 CTPMAX=VINT(34)
18035 IF(MVAR.EQ.1) THEN
18036 ANEG=CTNMAX-CTNMIN
18037 APOS=CTPMAX-CTPMIN
18038 IF(ANEG.GT.0D0.AND.VVAR*(ANEG+APOS).LE.ANEG) THEN
18039 VCTN=VVAR*(ANEG+APOS)/ANEG
18040 CTH=CTNMIN+(CTNMAX-CTNMIN)*VCTN
18041 ELSE
18042 VCTP=(VVAR*(ANEG+APOS)-ANEG)/APOS
18043 CTH=CTPMIN+(CTPMAX-CTPMIN)*VCTP
18044 ENDIF
18045 ELSEIF(MVAR.EQ.2) THEN
18046 RMNMIN=MAX(RM34,RSQM-CTNMIN)
18047 RMNMAX=MAX(RM34,RSQM-CTNMAX)
18048 RMPMIN=MAX(RM34,RSQM-CTPMIN)
18049 RMPMAX=MAX(RM34,RSQM-CTPMAX)
18050 ANEG=LOG(RMNMIN/RMNMAX)
18051 APOS=LOG(RMPMIN/RMPMAX)
18052 IF(ANEG.GT.0D0.AND.VVAR*(ANEG+APOS).LE.ANEG) THEN
18053 VCTN=VVAR*(ANEG+APOS)/ANEG
18054 CTH=RSQM-RMNMIN*(RMNMAX/RMNMIN)**VCTN
18055 ELSE
18056 VCTP=(VVAR*(ANEG+APOS)-ANEG)/APOS
18057 CTH=RSQM-RMPMIN*(RMPMAX/RMPMIN)**VCTP
18058 ENDIF
18059 ELSEIF(MVAR.EQ.3) THEN
18060 RMNMIN=MAX(RM34,RSQM+CTNMIN)
18061 RMNMAX=MAX(RM34,RSQM+CTNMAX)
18062 RMPMIN=MAX(RM34,RSQM+CTPMIN)
18063 RMPMAX=MAX(RM34,RSQM+CTPMAX)
18064 ANEG=LOG(RMNMAX/RMNMIN)
18065 APOS=LOG(RMPMAX/RMPMIN)
18066 IF(ANEG.GT.0D0.AND.VVAR*(ANEG+APOS).LE.ANEG) THEN
18067 VCTN=VVAR*(ANEG+APOS)/ANEG
18068 CTH=RMNMIN*(RMNMAX/RMNMIN)**VCTN-RSQM
18069 ELSE
18070 VCTP=(VVAR*(ANEG+APOS)-ANEG)/APOS
18071 CTH=RMPMIN*(RMPMAX/RMPMIN)**VCTP-RSQM
18072 ENDIF
18073 ELSEIF(MVAR.EQ.4) THEN
18074 RMNMIN=MAX(RM34,RSQM-CTNMIN)
18075 RMNMAX=MAX(RM34,RSQM-CTNMAX)
18076 RMPMIN=MAX(RM34,RSQM-CTPMIN)
18077 RMPMAX=MAX(RM34,RSQM-CTPMAX)
18078 ANEG=1D0/RMNMAX-1D0/RMNMIN
18079 APOS=1D0/RMPMAX-1D0/RMPMIN
18080 IF(ANEG.GT.0D0.AND.VVAR*(ANEG+APOS).LE.ANEG) THEN
18081 VCTN=VVAR*(ANEG+APOS)/ANEG
18082 CTH=RSQM-1D0/(1D0/RMNMIN+ANEG*VCTN)
18083 ELSE
18084 VCTP=(VVAR*(ANEG+APOS)-ANEG)/APOS
18085 CTH=RSQM-1D0/(1D0/RMPMIN+APOS*VCTP)
18086 ENDIF
18087 ELSEIF(MVAR.EQ.5) THEN
18088 RMNMIN=MAX(RM34,RSQM+CTNMIN)
18089 RMNMAX=MAX(RM34,RSQM+CTNMAX)
18090 RMPMIN=MAX(RM34,RSQM+CTPMIN)
18091 RMPMAX=MAX(RM34,RSQM+CTPMAX)
18092 ANEG=1D0/RMNMIN-1D0/RMNMAX
18093 APOS=1D0/RMPMIN-1D0/RMPMAX
18094 IF(ANEG.GT.0D0.AND.VVAR*(ANEG+APOS).LE.ANEG) THEN
18095 VCTN=VVAR*(ANEG+APOS)/ANEG
18096 CTH=1D0/(1D0/RMNMIN-ANEG*VCTN)-RSQM
18097 ELSE
18098 VCTP=(VVAR*(ANEG+APOS)-ANEG)/APOS
18099 CTH=1D0/(1D0/RMPMIN-APOS*VCTP)-RSQM
18100 ENDIF
18101 ENDIF
18102 IF(CTH.LT.0D0) CTH=MIN(CTNMAX,MAX(CTNMIN,CTH))
18103 IF(CTH.GT.0D0) CTH=MIN(CTPMAX,MAX(CTPMIN,CTH))
18104 VINT(23)=CTH
18105
18106
18107 ELSEIF(IVAR.EQ.4) THEN
18108 TAU=VINT(21)
18109 TAUPMN=VINT(16)
18110 TAUPMX=VINT(36)
18111 IF(MINT(47).EQ.1) THEN
18112 TAUP=1D0
18113 ELSEIF(MVAR.EQ.1) THEN
18114 TAUP=TAUPMN*(TAUPMX/TAUPMN)**VVAR
18115 ELSEIF(MVAR.EQ.2) THEN
18116 AUPP=(1D0-TAU/TAUPMX)**4
18117 ALOW=(1D0-TAU/TAUPMN)**4
18118 TAUP=TAU/MAX(1D-10,1D0-(ALOW+(AUPP-ALOW)*VVAR)**0.25D0)
18119 ELSEIF(MINT(47).EQ.5) THEN
18120 AUPP=LOG(MAX(2D-10,1D0-TAUPMX))
18121 ALOW=LOG(MAX(2D-10,1D0-TAUPMN))
18122 TAUP=1D0-EXP(AUPP+VVAR*(ALOW-AUPP))
18123 ELSE
18124 AUPP=LOG(MAX(1D-10,1D0-TAUPMX))
18125 ALOW=LOG(MAX(1D-10,1D0-TAUPMN))
18126 TAUP=1D0-EXP(AUPP+VVAR*(ALOW-AUPP))
18127 ENDIF
18128 VINT(26)=MIN(TAUPMX,MAX(TAUPMN,TAUP))
18129
18130
18131
18132
18133
18134 ELSEIF(IVAR.EQ.5) THEN
18135
18136
18137 MINT(51)=0
18138 MPTPK=1
18139 IF(ISUB.EQ.123.OR.ISUB.EQ.124.OR.ISUB.EQ.173.OR.ISUB.EQ.174
18140 & .OR.ISUB.EQ.178.OR.ISUB.EQ.179.OR.ISUB.EQ.351.OR.ISUB.EQ.352)
18141 & MPTPK=2
18142 SHP=VINT(26)*VINT(2)
18143 SHPR=SQRT(SHP)
18144 PM1=VINT(201)
18145 PM2=VINT(206)
18146 PM3=SQRT(VINT(21))*VINT(1)
18147 IF(PM1+PM2+PM3.GT.0.9999D0*SHPR) THEN
18148 MINT(51)=1
18149 RETURN
18150 ENDIF
18151 PMRS1=VINT(204)**2
18152 PMRS2=VINT(209)**2
18153
18154
18155 IF(MPTPK.EQ.1) THEN
18156 HWT1=0.4D0
18157 HWT2=0.4D0
18158 ELSE
18159 HWT1=0.05D0
18160 HWT2=0.05D0
18161 ENDIF
18162 HWT3=1D0-HWT1-HWT2
18163 PTSMX1=((SHP-PM1**2-(PM2+PM3)**2)**2-(2D0*PM1*(PM2+PM3))**2)/
18164 & (4D0*SHP)
18165 IF(CKIN(52).GT.0D0) PTSMX1=MIN(PTSMX1,CKIN(52)**2)
18166 PTSMN1=CKIN(51)**2
18167 PTSMX2=((SHP-PM2**2-(PM1+PM3)**2)**2-(2D0*PM2*(PM1+PM3))**2)/
18168 & (4D0*SHP)
18169 IF(CKIN(54).GT.0D0) PTSMX2=MIN(PTSMX2,CKIN(54)**2)
18170 PTSMN2=CKIN(53)**2
18171
18172
18173
18174 HMX=PMRS1+PTSMX1
18175 HMN=PMRS1+PTSMN1
18176 IF(HMX.LT.1.0001D0*HMN) THEN
18177 MINT(51)=1
18178 RETURN
18179 ENDIF
18180 HDE=PTSMX1-PTSMN1
18181 RPT=PYR(0)
18182 IF(RPT.LT.HWT1) THEN
18183 PTS1=PTSMN1+PYR(0)*HDE
18184 ELSEIF(RPT.LT.HWT1+HWT2) THEN
18185 PTS1=MAX(PTSMN1,HMN*(HMX/HMN)**PYR(0)-PMRS1)
18186 ELSE
18187 PTS1=MAX(PTSMN1,HMN*HMX/(HMN+PYR(0)*HDE)-PMRS1)
18188 ENDIF
18189 WTPTS1=HDE/(HWT1+HWT2*HDE/(LOG(HMX/HMN)*(PMRS1+PTS1))+
18190 & HWT3*HMN*HMX/(PMRS1+PTS1)**2)
18191 HMX=PMRS2+PTSMX2
18192 HMN=PMRS2+PTSMN2
18193 IF(HMX.LT.1.0001D0*HMN) THEN
18194 MINT(51)=1
18195 RETURN
18196 ENDIF
18197 HDE=PTSMX2-PTSMN2
18198 RPT=PYR(0)
18199 IF(RPT.LT.HWT1) THEN
18200 PTS2=PTSMN2+PYR(0)*HDE
18201 ELSEIF(RPT.LT.HWT1+HWT2) THEN
18202 PTS2=MAX(PTSMN2,HMN*(HMX/HMN)**PYR(0)-PMRS2)
18203 ELSE
18204 PTS2=MAX(PTSMN2,HMN*HMX/(HMN+PYR(0)*HDE)-PMRS2)
18205 ENDIF
18206 WTPTS2=HDE/(HWT1+HWT2*HDE/(LOG(HMX/HMN)*(PMRS2+PTS2))+
18207 & HWT3*HMN*HMX/(PMRS2+PTS2)**2)
18208
18209
18210 PHI1=PARU(2)*PYR(0)
18211 PHI2=PARU(2)*PYR(0)
18212 PHIR=PHI2-PHI1
18213 PTS3=MAX(0D0,PTS1+PTS2+2D0*SQRT(PTS1*PTS2)*COS(PHIR))
18214 IF(PTS3.LT.CKIN(55)**2.OR.(CKIN(56).GT.0D0.AND.PTS3.GT.
18215 & CKIN(56)**2)) THEN
18216 MINT(51)=1
18217 RETURN
18218 ENDIF
18219
18220
18221 PMS1=PM1**2+PTS1
18222 PMS2=PM2**2+PTS2
18223 PMS3=PM3**2+PTS3
18224 PMT1=SQRT(PMS1)
18225 PMT2=SQRT(PMS2)
18226 PMT3=SQRT(PMS3)
18227 PM12=(PMT1+PMT2)**2
18228 IF(PMT1+PMT2+PMT3.GT.0.9999D0*SHPR) THEN
18229 MINT(51)=1
18230 RETURN
18231 ENDIF
18232
18233
18234 Y3MAX=LOG((SHP+PMS3-PM12+SQRT(MAX(0D0,(SHP-PMS3-PM12)**2-
18235 & 4D0*PMS3*PM12)))/(2D0*SHPR*PMT3))
18236 IF(Y3MAX.LT.1D-6) THEN
18237 MINT(51)=1
18238 RETURN
18239 ENDIF
18240 Y3=(2D0*PYR(0)-1D0)*0.999999D0*Y3MAX
18241 PZ3=PMT3*SINH(Y3)
18242 PE3=PMT3*COSH(Y3)
18243
18244
18245 PZ12=-PZ3
18246 PE12=SHPR-PE3
18247 PMS12=PE12**2-PZ12**2
18248 SQL12=SQRT(MAX(0D0,(PMS12-PMS1-PMS2)**2-4D0*PMS1*PMS2))
18249 IF(SQL12.LT.1D-6*SHP) THEN
18250 MINT(51)=1
18251 RETURN
18252 ENDIF
18253 PMM1=PMS12+PMS1-PMS2
18254 PMM2=PMS12+PMS2-PMS1
18255 TFAC=-SHPR/(2D0*PMS12)
18256 T1P=TFAC*(PE12-PZ12)*(PMM1-SQL12)
18257 T1N=TFAC*(PE12-PZ12)*(PMM1+SQL12)
18258 T2P=TFAC*(PE12+PZ12)*(PMM2-SQL12)
18259 T2N=TFAC*(PE12+PZ12)*(PMM2+SQL12)
18260
18261
18262 IF(MPTPK.EQ.1.OR.ISUB.EQ.351.OR.ISUB.EQ.352) THEN
18263 WTPU=1D0
18264 WTNU=1D0
18265 ELSE
18266 WTPU=1D0/((T1P-PMRS1)*(T2P-PMRS2))**2
18267 WTNU=1D0/((T1N-PMRS1)*(T2N-PMRS2))**2
18268 ENDIF
18269 WTP=WTPU/(WTPU+WTNU)
18270 WTN=WTNU/(WTPU+WTNU)
18271 EPS=1D0
18272 IF(WTN.GT.PYR(0)) EPS=-1D0
18273
18274
18275 VINT(202)=PTS1
18276 VINT(207)=PTS2
18277 VINT(203)=PHI1
18278 VINT(208)=PHI2
18279 VINT(205)=WTPTS1
18280 VINT(210)=WTPTS2
18281 VINT(211)=Y3
18282 VINT(212)=Y3MAX
18283 VINT(213)=EPS
18284 IF(EPS.GT.0D0) THEN
18285 VINT(214)=1D0/WTP
18286 VINT(215)=T1P
18287 VINT(216)=T2P
18288 ELSE
18289 VINT(214)=1D0/WTN
18290 VINT(215)=T1N
18291 VINT(216)=T2N
18292 ENDIF
18293 VINT(217)=-0.5D0*TFAC*(PE12-PZ12)*(PMM2+EPS*SQL12)
18294 VINT(218)=-0.5D0*TFAC*(PE12+PZ12)*(PMM1+EPS*SQL12)
18295 VINT(219)=0.5D0*(PMS12-PTS3)
18296 VINT(220)=SQL12
18297 ENDIF
18298
18299 RETURN
18300 END
18301
18302
18303
18304
18305
18306
18307
18308
18309
18310
18311
18312
18313
18314
18315
18316
18317
18318
18319
18320 SUBROUTINE PYSIGH(NCHN,SIGS)
18321
18322
18323 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
18324 IMPLICIT INTEGER(I-N)
18325 INTEGER PYK,PYCHGE,PYCOMP
18326
18327 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
18328
18329 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
18330 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
18331 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
18332 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
18333 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
18334 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
18335 COMMON/PYINT1/MINT(400),VINT(400)
18336 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
18337 COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
18338 COMMON/PYINT4/MWID(500),WIDS(500,5)
18339 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
18340 COMMON/PYINT7/SIGT(0:6,0:6,0:5)
18341 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
18342 &SFMIX(16,4)
18343 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYSUBS/,/PYPARS/,
18344 &/PYINT1/,/PYINT2/,/PYINT3/,/PYINT4/,/PYINT5/,/PYINT7/,
18345 &/PYSSMT/
18346
18347 DIMENSION X(2),XPQ(-25:25),KFAC(2,-40:40),WDTP(0:200),
18348 &WDTE(0:200,0:5),HGZ(6,3),HL3(3),HR3(3),HL4(3),HR4(3)
18349 COMPLEX A004,A204,A114,A00U,A20U,A11U
18350 COMPLEX CIGTOT,CIZTOT,F0ALP,F1ALP,F2ALP,F0BET,F1BET,F2BET,FIF,
18351 &COULCK,COULCP,COULCD,COULCR,COULCS
18352 REAL A00L,A11L,A20L,COULXX
18353 COMPLEX*16 SSMZ,SSMR,SSMO,DETD,F2L,F2R,DARHO,DZRHO,DAOME,DZOME,
18354 &DAA,DZZ,DAZ
18355
18356
18357 NCHN=0
18358 SIGS=0D0
18359
18360
18361 ISUB=MINT(1)
18362 ISUBSV=ISUB
18363 IHIGG=1
18364 KFHIGG=25
18365 IF((ISUB.GE.151.AND.ISUB.LE.160).OR.(ISUB.GE.171.AND.
18366 &ISUB.LE.190)) THEN
18367 IHIGG=2
18368 IF(MOD(ISUB-1,10).GE.5) IHIGG=3
18369 KFHIGG=33+IHIGG
18370 IF(ISUB.EQ.151.OR.ISUB.EQ.156) ISUB=3
18371 IF(ISUB.EQ.152.OR.ISUB.EQ.157) ISUB=102
18372 IF(ISUB.EQ.153.OR.ISUB.EQ.158) ISUB=103
18373 IF(ISUB.EQ.171.OR.ISUB.EQ.176) ISUB=24
18374 IF(ISUB.EQ.172.OR.ISUB.EQ.177) ISUB=26
18375 IF(ISUB.EQ.173.OR.ISUB.EQ.178) ISUB=123
18376 IF(ISUB.EQ.174.OR.ISUB.EQ.179) ISUB=124
18377 IF(ISUB.EQ.181.OR.ISUB.EQ.186) ISUB=121
18378 IF(ISUB.EQ.182.OR.ISUB.EQ.187) ISUB=122
18379 ENDIF
18380
18381
18382
18383
18384 IF(ISUB.GE.200.AND.ISUB.LE.301) THEN
18385
18386
18387 IF(ISUB.EQ.201.OR.ISUB.EQ.204.OR.ISUB.EQ.207) THEN
18388 KFID=MOD(KFPR(ISUB,1),KSUSY1)
18389 ISUB=201
18390 ILR=0
18391 ELSEIF(ISUB.EQ.202.OR.ISUB.EQ.205.OR.ISUB.EQ.208) THEN
18392 KFID=MOD(KFPR(ISUB,1),KSUSY1)
18393 ISUB=201
18394 ILR=1
18395 ELSEIF(ISUB.EQ.203.OR.ISUB.EQ.206.OR.ISUB.EQ.209) THEN
18396 KFID=MOD(KFPR(ISUB,1),KSUSY1)
18397 ISUB=203
18398 ELSEIF(ISUB.GE.210.AND.ISUB.LE.212) THEN
18399 IF(ISUB.EQ.210) THEN
18400 RKF=2.0D0
18401 ELSEIF(ISUB.EQ.211) THEN
18402 RKF=SFMIX(15,1)**2
18403 ELSEIF(ISUB.EQ.212) THEN
18404 RKF=SFMIX(15,2)**2
18405 ENDIF
18406 ISUB=210
18407 ELSEIF(ISUB.EQ.213.OR.ISUB.EQ.214) THEN
18408 IF(ISUB.EQ.213) THEN
18409 KFID=MOD(KFPR(ISUB,1),KSUSY1)
18410 RKF=2.0D0
18411 ELSEIF(ISUB.EQ.214) THEN
18412 KFID=16
18413 RKF=1.0D0
18414 ENDIF
18415 ISUB=213
18416
18417
18418 ELSEIF(ISUB.GE.216.AND.ISUB.LE.225) THEN
18419 IF(ISUB.EQ.216) THEN
18420 IZID1=1
18421 IZID2=1
18422 ELSEIF(ISUB.EQ.217) THEN
18423 IZID1=2
18424 IZID2=2
18425 ELSEIF(ISUB.EQ.218) THEN
18426 IZID1=3
18427 IZID2=3
18428 ELSEIF(ISUB.EQ.219) THEN
18429 IZID1=4
18430 IZID2=4
18431 ELSEIF(ISUB.EQ.220) THEN
18432 IZID1=1
18433 IZID2=2
18434 ELSEIF(ISUB.EQ.221) THEN
18435 IZID1=1
18436 IZID2=3
18437 ELSEIF(ISUB.EQ.222) THEN
18438 IZID1=1
18439 IZID2=4
18440 ELSEIF(ISUB.EQ.223) THEN
18441 IZID1=2
18442 IZID2=3
18443 ELSEIF(ISUB.EQ.224) THEN
18444 IZID1=2
18445 IZID2=4
18446 ELSEIF(ISUB.EQ.225) THEN
18447 IZID1=3
18448 IZID2=4
18449 ENDIF
18450 ISUB=216
18451
18452
18453 ELSEIF(ISUB.GE.226.AND.ISUB.LE.228) THEN
18454 IF(ISUB.EQ.226) THEN
18455 IZID1=1
18456 IZID2=1
18457 ELSEIF(ISUB.EQ.227) THEN
18458 IZID1=2
18459 IZID2=2
18460 ELSEIF(ISUB.EQ.228) THEN
18461 IZID1=1
18462 IZID2=2
18463 ENDIF
18464 ISUB=226
18465
18466
18467 ELSEIF(ISUB.GE.229.AND.ISUB.LE.236) THEN
18468 IF(ISUB.EQ.229) THEN
18469 IZID1=1
18470 IZID2=1
18471 ELSEIF(ISUB.EQ.230) THEN
18472 IZID1=1
18473 IZID2=2
18474 ELSEIF(ISUB.EQ.231) THEN
18475 IZID1=1
18476 IZID2=3
18477 ELSEIF(ISUB.EQ.232) THEN
18478 IZID1=1
18479 IZID2=4
18480 ELSEIF(ISUB.EQ.233) THEN
18481 IZID1=2
18482 IZID2=1
18483 ELSEIF(ISUB.EQ.234) THEN
18484 IZID1=2
18485 IZID2=2
18486 ELSEIF(ISUB.EQ.235) THEN
18487 IZID1=2
18488 IZID2=3
18489 ELSEIF(ISUB.EQ.236) THEN
18490 IZID1=2
18491 IZID2=4
18492 ENDIF
18493 ISUB=229
18494
18495
18496 ELSEIF(ISUB.GE.237.AND.ISUB.LE.240) THEN
18497 IF(ISUB.EQ.237) THEN
18498 IZID=1
18499 ELSEIF(ISUB.EQ.238) THEN
18500 IZID=2
18501 ELSEIF(ISUB.EQ.239) THEN
18502 IZID=3
18503 ELSEIF(ISUB.EQ.240) THEN
18504 IZID=4
18505 ENDIF
18506 ISUB=237
18507
18508
18509 ELSEIF(ISUB.GE.241.AND.ISUB.LE.242) THEN
18510 IF(ISUB.EQ.241) THEN
18511 IZID=1
18512 ELSEIF(ISUB.EQ.242) THEN
18513 IZID=2
18514 ENDIF
18515 ISUB=241
18516
18517
18518 ELSEIF(ISUB.GE.246.AND.ISUB.LE.253) THEN
18519 ILR=0
18520 IF(MOD(ISUB,2).NE.0) ILR=1
18521 IF(ISUB.LE.247) THEN
18522 IZID=1
18523 ELSEIF(ISUB.LE.249) THEN
18524 IZID=2
18525 ELSEIF(ISUB.LE.251) THEN
18526 IZID=3
18527 ELSEIF(ISUB.LE.253) THEN
18528 IZID=4
18529 ENDIF
18530 ISUB=246
18531 RKF=5D0
18532
18533
18534 ELSEIF(ISUB.GE.254.AND.ISUB.LE.257) THEN
18535 IF(ISUB.LE.255) THEN
18536 IZID=1
18537 ELSEIF(ISUB.LE.257) THEN
18538 IZID=2
18539 ENDIF
18540 IF(MOD(ISUB,2).EQ.0) THEN
18541 ILR=0
18542 ELSE
18543 ILR=1
18544 ENDIF
18545 ISUB=254
18546 RKF=5D0
18547
18548
18549 ELSEIF(ISUB.EQ.258.OR.ISUB.EQ.259) THEN
18550 ISUB=258
18551 RKF=4D0
18552
18553
18554 ELSEIF(ISUB.EQ.261.OR.ISUB.EQ.262) THEN
18555 ILR=0
18556 IF(ISUB.EQ.262) ILR=1
18557 ISUB=261
18558 ELSEIF(ISUB.EQ.265) THEN
18559 ISUB=264
18560
18561
18562 ELSEIF(ISUB.GE.271.AND.ISUB.LE.280) THEN
18563 ILR=0
18564 IF(ISUB.LE.273) THEN
18565 IF(ISUB.EQ.273) ILR=1
18566 ISUB=271
18567 RKF=16D0
18568 ELSEIF(ISUB.LE.276) THEN
18569 IF(ISUB.EQ.276) ILR=1
18570 ISUB=274
18571 RKF=16D0
18572 ELSEIF(ISUB.LE.278) THEN
18573 IF(ISUB.EQ.278) ILR=1
18574 ISUB=277
18575 RKF=4D0
18576 ELSE
18577 IF(ISUB.EQ.280) ILR=1
18578 ISUB=279
18579 RKF=4D0
18580 ENDIF
18581
18582 ELSEIF(ISUB.GE.281.AND.ISUB.LE.296) THEN
18583 ILR=0
18584 IF(ISUB.LE.283) THEN
18585 IF(ISUB.EQ.283) ILR=1
18586 ISUB=271
18587 RKF=4D0
18588 ELSEIF(ISUB.LE.286) THEN
18589 IF(ISUB.EQ.286) ILR=1
18590 ISUB=274
18591 RKF=4D0
18592 ELSEIF(ISUB.LE.288) THEN
18593 IF(ISUB.EQ.288) ILR=1
18594 ISUB=277
18595 RKF=1D0
18596 ELSEIF(ISUB.LE.290) THEN
18597 IF(ISUB.EQ.290) ILR=1
18598 ISUB=279
18599 RKF=1D0
18600 ELSEIF(ISUB.LE.293) THEN
18601 IF(ISUB.EQ.293) ILR=1
18602 ISUB=271
18603 RKF=1D0
18604 ELSEIF(ISUB.EQ.296) THEN
18605 ILR=1
18606 ISUB=274
18607 RKF=1D0
18608
18609 ELSEIF(ISUB.EQ.294.OR.ISUB.EQ.295) THEN
18610 ISUB=258
18611 RKF=1D0
18612 ENDIF
18613
18614 ELSEIF(ISUB.EQ.297.OR.ISUB.EQ.298) THEN
18615 IF(ISUB.EQ.297) THEN
18616 RKF=.5D0*PARU(195)**2
18617 ELSEIF(ISUB.EQ.298) THEN
18618 RKF=.5D0*(1D0-PARU(195)**2)
18619 ENDIF
18620 ISUB=210
18621
18622 ELSEIF(ISUB.EQ.299.OR.ISUB.EQ.300) THEN
18623 IF(ISUB.EQ.299) THEN
18624 RKF=PARU(186)**2
18625 ELSEIF(ISUB.EQ.300) THEN
18626 RKF=PARU(187)**2
18627 ENDIF
18628 ISUB=213
18629
18630 ELSEIF(ISUB.EQ.301) THEN
18631 KFID=37
18632 RKF=1D0
18633 ISUB=201
18634 ENDIF
18635 ELSEIF(ISUB.GE.361.AND.ISUB.LE.379) THEN
18636 SQTV=PARJ(172)**2
18637 SQTA=PARJ(173)**2
18638 TANW=SQRT(PARU(102)/(1D0-PARU(102)))
18639 CT2W=(1D0-2D0*PARU(102))/(2D0*PARU(102)/TANW)
18640 CSXI=COS(ASIN(PARP(141)))
18641 CSXIP=COS(ASIN(PARJ(174)))
18642 QUPD=2D0*PARP(143)-1D0
18643
18644 IF(ISUB.EQ.361) THEN
18645 KFA=24
18646 KFB=24
18647 CAB2=PARP(141)**4
18648
18649 ELSEIF(ISUB.EQ.362) THEN
18650 KFA=24
18651 KFB=52
18652 ISUB=361
18653 CAB2=PARP(141)**2*(1D0-PARP(141)**2)
18654
18655 ELSEIF(ISUB.EQ.363) THEN
18656 KFA=52
18657 KFB=52
18658 ISUB=361
18659 CAB2=(1D0-PARP(141)**2)**2
18660
18661 ELSEIF(ISUB.EQ.364) THEN
18662 KFA=22
18663 KFB=51
18664 VOGP=CSXI
18665 VRGP=VOGP*QUPD
18666 AOGP=0D0
18667 ARGP=0D0
18668
18669 ELSEIF(ISUB.EQ.365) THEN
18670 KFA=22
18671 KFB=53
18672 ISUB=364
18673 VRGP=CSXIP
18674 VOGP=VRGP*QUPD
18675 AOGP=0D0
18676 ARGP=0D0
18677
18678 ELSEIF(ISUB.EQ.366) THEN
18679 KFA=23
18680 KFB=51
18681 ISUB=364
18682 VOGP=CSXI*CT2W
18683 VRGP=-QUPD*CSXI*TANW
18684 AOGP=0D0
18685 ARGP=0D0
18686
18687 ELSEIF(ISUB.EQ.367) THEN
18688 KFA=23
18689 KFB=53
18690 ISUB=364
18691 VRGP=CSXIP*CT2W
18692 VOGP=-QUPD*CSXIP*TANW
18693 AOGP=0D0
18694 ARGP=0D0
18695
18696 ELSEIF(ISUB.EQ.368) THEN
18697 KFA=24
18698 KFB=52
18699 ISUB=364
18700 VOGP=CSXI/(2D0*SQRT(PARU(102)))
18701 VRGP=0D0
18702 AOGP=0D0
18703 ARGP=-VOGP
18704
18705 ELSEIF(ISUB.EQ.370) THEN
18706 KFA=24
18707 KFB=23
18708 CAB2=PARP(141)**4
18709
18710 ELSEIF(ISUB.EQ.371) THEN
18711 KFA=24
18712 KFB=51
18713 ISUB=370
18714 CAB2=PARP(141)**2*(1D0-PARP(141)**2)
18715
18716 ELSEIF(ISUB.EQ.372) THEN
18717 KFA=52
18718 KFB=23
18719 ISUB=370
18720 CAB2=PARP(141)**2*(1D0-PARP(141)**2)
18721
18722 ELSEIF(ISUB.EQ.373) THEN
18723 KFA=52
18724 KFB=51
18725 ISUB=370
18726 CAB2=(1D0-PARP(141)**2)**2
18727
18728 ELSEIF(ISUB.EQ.374) THEN
18729 KFA=52
18730 KFB=22
18731 VRGP=QUPD*CSXI
18732 ARGP=0D0
18733
18734 ELSEIF(ISUB.EQ.375) THEN
18735 KFA=52
18736 KFB=23
18737 ISUB=374
18738 VRGP=-QUPD*CSXI*TANW
18739 ARGP=CSXI/(2D0*SQRT(PARU(102)*(1D0-PARU(102))))
18740
18741 ELSEIF(ISUB.EQ.376) THEN
18742 KFA=24
18743 KFB=51
18744 ISUB=374
18745 VRGP=0D0
18746 ARGP=-CSXI/(2D0*SQRT(PARU(102)))
18747
18748 ELSEIF(ISUB.EQ.377) THEN
18749 KFA=24
18750 KFB=53
18751 ISUB=374
18752 ARGP=0D0
18753 VRGP=CSXIP/(2D0*SQRT(PARU(102)))
18754 ENDIF
18755 ENDIF
18756
18757
18758
18759 ISTSB=ISET(ISUBSV)
18760 TAUMIN=VINT(11)
18761 YSTMIN=VINT(12)
18762 CTNMIN=VINT(13)
18763 CTPMIN=VINT(14)
18764 TAUPMN=VINT(16)
18765 TAU=VINT(21)
18766 YST=VINT(22)
18767 CTH=VINT(23)
18768 XT2=VINT(25)
18769 TAUP=VINT(26)
18770 TAUMAX=VINT(31)
18771 YSTMAX=VINT(32)
18772 CTNMAX=VINT(33)
18773 CTPMAX=VINT(34)
18774 TAUPMX=VINT(36)
18775
18776
18777 TAUE=TAU
18778 IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUE=TAUP
18779 X(1)=SQRT(TAUE)*EXP(YST)
18780 X(2)=SQRT(TAUE)*EXP(-YST)
18781 IF(MINT(45).EQ.2.AND.ISTSB.GE.1) THEN
18782 IF(X(1).GT.1D0-1D-7) RETURN
18783 ELSEIF(MINT(45).EQ.3) THEN
18784 X(1)=MIN(1D0-1.1D-10,X(1))
18785 ENDIF
18786 IF(MINT(46).EQ.2.AND.ISTSB.GE.1) THEN
18787 IF(X(2).GT.1D0-1D-7) RETURN
18788 ELSEIF(MINT(46).EQ.3) THEN
18789 X(2)=MIN(1D0-1.1D-10,X(2))
18790 ENDIF
18791 SH=MAX(1D0,TAU*VINT(2))
18792 SQM3=VINT(63)
18793 SQM4=VINT(64)
18794 RM3=SQM3/SH
18795 RM4=SQM4/SH
18796 BE34=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4))
18797 RPTS=4D0*VINT(71)**2/SH
18798 BE34L=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4-RPTS))
18799 RM34=MAX(1D-20,2D0*RM3*RM4)
18800 RSQM=1D0+RM34
18801 IF(2D0*VINT(71)**2/MAX(1D0,VINT(21)*VINT(2)).LT.0.0001D0)
18802 &RM34=MAX(RM34,2D0*VINT(71)**2/MAX(1D0,VINT(21)*VINT(2)))
18803 RTHM=(4D0*RM3*RM4+RPTS)/(1D0-RM3-RM4+BE34L)
18804 IF(ISTSB.EQ.0) THEN
18805 TH=VINT(45)
18806 UH=-0.5D0*SH*MAX(RTHM,1D0-RM3-RM4+BE34*CTH)
18807 SQPTH=MAX(VINT(71)**2,0.25D0*SH*BE34**2*VINT(59)**2)
18808 ELSE
18809
18810
18811 RM1=0D0
18812 IF(MINT(15).EQ.22.AND.VINT(3).LT.0D0) RM1=-VINT(3)**2/SH
18813 RM2=0D0
18814 IF(MINT(16).EQ.22.AND.VINT(4).LT.0D0) RM2=-VINT(4)**2/SH
18815 IF(ISUB.EQ.35) THEN
18816 RM2=MIN(RM1,RM2)
18817 RM1=0D0
18818 ENDIF
18819 BE12=SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
18820 TUCOM=(1D0-RM1-RM2)*(1D0-RM3-RM4)
18821 TH=-0.5D0*SH*MAX(RTHM,TUCOM-2D0*RM1*RM4-2D0*RM2*RM3-
18822 & BE12*BE34*CTH)
18823 UH=-0.5D0*SH*MAX(RTHM,TUCOM-2D0*RM1*RM3-2D0*RM2*RM4+
18824 & BE12*BE34*CTH)
18825 SQPTH=MAX(VINT(71)**2,0.25D0*SH*BE34**2*(1D0-CTH**2))
18826 ENDIF
18827 SHR=SQRT(SH)
18828 SH2=SH**2
18829 TH2=TH**2
18830 UH2=UH**2
18831
18832
18833 IF(ISTSB.EQ.1.OR.ISTSB.EQ.3.OR.ISTSB.EQ.5) THEN
18834 Q2=SH
18835 ELSEIF(ISTSB.EQ.8) THEN
18836 IF(MINT(107).EQ.4) Q2=VINT(307)
18837 IF(MINT(108).EQ.4) Q2=VINT(308)
18838 ELSEIF(MOD(ISTSB,2).EQ.0.OR.ISTSB.EQ.9) THEN
18839 Q2IN1=0D0
18840 IF(MINT(11).EQ.22.AND.VINT(3).LT.0D0) Q2IN1=VINT(3)**2
18841 Q2IN2=0D0
18842 IF(MINT(12).EQ.22.AND.VINT(4).LT.0D0) Q2IN2=VINT(4)**2
18843 IF(MSTP(32).EQ.1) THEN
18844 Q2=2D0*SH*TH*UH/(SH**2+TH**2+UH**2)
18845 ELSEIF(MSTP(32).EQ.2) THEN
18846 Q2=SQPTH+0.5D0*(SQM3+SQM4)
18847 ELSEIF(MSTP(32).EQ.3) THEN
18848 Q2=MIN(-TH,-UH)
18849 ELSEIF(MSTP(32).EQ.4) THEN
18850 Q2=SH
18851 ELSEIF(MSTP(32).EQ.5) THEN
18852 Q2=-TH
18853 ELSEIF(MSTP(32).EQ.6) THEN
18854 XSF1=X(1)
18855 IF(ISTSB.EQ.9) XSF1=X(1)/VINT(143)
18856 XSF2=X(2)
18857 IF(ISTSB.EQ.9) XSF2=X(2)/VINT(144)
18858 Q2=(1D0+XSF1*Q2IN1/SH+XSF2*Q2IN2/SH)*
18859 & (SQPTH+0.5D0*(SQM3+SQM4))
18860 ELSEIF(MSTP(32).EQ.7) THEN
18861 Q2=(1D0+Q2IN1/SH+Q2IN2/SH)*(SQPTH+0.5D0*(SQM3+SQM4))
18862 ELSEIF(MSTP(32).EQ.8) THEN
18863 Q2=SQPTH+0.5D0*(Q2IN1+Q2IN2+SQM3+SQM4)
18864 ELSEIF(MSTP(32).EQ.9) THEN
18865 Q2=SQPTH+Q2IN1+Q2IN2+SQM3+SQM4
18866 ELSEIF(MSTP(32).EQ.10) THEN
18867 Q2=VINT(2)
18868 ENDIF
18869 IF(ISTSB.EQ.9) Q2=SQPTH
18870 IF(ISTSB.EQ.9.AND.MSTP(82).GE.2) Q2=Q2+
18871 & (PARP(82)*(VINT(1)/PARP(89))**PARP(90))**2
18872 ENDIF
18873 Q2SF=Q2
18874 IF(ISTSB.GE.3.AND.ISTSB.LE.5) THEN
18875 Q2SF=PMAS(23,1)**2
18876 IF(ISUB.EQ.8.OR.ISUB.EQ.76.OR.ISUB.EQ.77.OR.ISUB.EQ.124.OR.
18877 & ISUB.EQ.351) Q2SF=PMAS(24,1)**2
18878 IF(ISUB.EQ.352) Q2SF=PMAS(63,1)**2
18879 IF(ISUB.EQ.121.OR.ISUB.EQ.122) THEN
18880 Q2SF=PMAS(PYCOMP(KFPR(ISUBSV,2)),1)**2
18881 IF(MSTP(39).EQ.2) Q2SF=Q2SF+MAX(VINT(202),VINT(207))
18882 IF(MSTP(39).EQ.3) Q2SF=SH
18883 IF(MSTP(39).EQ.4) Q2SF=VINT(26)*VINT(2)
18884 IF(MSTP(39).EQ.5) Q2SF=PMAS(KFHIGG,1)**2
18885 ENDIF
18886 ENDIF
18887 Q2PS=Q2SF
18888 Q2SF=Q2SF*PARP(34)
18889 IF(MSTP(69).GE.1.AND.MINT(47).EQ.5) Q2SF=VINT(2)
18890 IF(MSTP(69).GE.2) Q2SF=VINT(2)
18891 IF(MSTP(22).GE.1.AND.(ISUB.EQ.10.OR.ISUB.EQ.83).AND.
18892 &(MINT(43).EQ.2.OR.MINT(43).EQ.3)) THEN
18893 XBJ=X(2)
18894 IF(MINT(43).EQ.3) XBJ=X(1)
18895 IF(MSTP(22).EQ.1) THEN
18896 Q2PS=-TH
18897 ELSEIF(MSTP(22).EQ.2) THEN
18898 Q2PS=((1D0-XBJ)/XBJ)*(-TH)
18899 ELSEIF(MSTP(22).EQ.3) THEN
18900 Q2PS=SQRT((1D0-XBJ)/XBJ)*(-TH)
18901 ELSE
18902 Q2PS=(1D0-XBJ)*MAX(1D0,-LOG(XBJ))*(-TH)
18903 ENDIF
18904 ENDIF
18905 IF(MSTP(68).EQ.1.AND.(ISUBSV.EQ.1.OR.ISUBSV.EQ.2.OR.
18906 &ISUBSV.EQ.141.OR.ISUBSV.EQ.142.OR.ISUBSV.EQ.144)) THEN
18907 Q2PS=VINT(2)
18908 ELSEIF(MSTP(68).GE.2.AND.(ISUBSV.NE.11.AND.ISUBSV.NE.12.AND.
18909 &ISUBSV.NE.13.AND.ISUBSV.NE.28.AND.ISUBSV.NE.53.AND.
18910 &ISUBSV.NE.68)) THEN
18911 Q2PS=VINT(2)
18912 ENDIF
18913
18914
18915 VINT(41)=X(1)
18916 VINT(42)=X(2)
18917 VINT(44)=SH
18918 VINT(43)=SQRT(SH)
18919 VINT(45)=TH
18920 VINT(46)=UH
18921 IF(ISTSB.NE.8) VINT(48)=SQPTH
18922 IF(ISTSB.NE.8) VINT(47)=SQRT(SQPTH)
18923 VINT(50)=TAUP*VINT(2)
18924 VINT(49)=SQRT(MAX(0D0,VINT(50)))
18925 VINT(52)=Q2
18926 VINT(51)=SQRT(Q2)
18927 VINT(54)=Q2SF
18928 VINT(53)=SQRT(Q2SF)
18929 VINT(56)=Q2PS
18930 VINT(55)=SQRT(Q2PS)
18931
18932
18933 IF(ISTSB.LE.0) GOTO 152
18934 IF(MINT(47).GE.2) THEN
18935 DO 110 I=3-MIN(2,MINT(45)),MIN(2,MINT(46))
18936 XSF=X(I)
18937 IF(ISTSB.EQ.9) XSF=X(I)/VINT(142+I)
18938 IF(ISUB.EQ.99) THEN
18939 XSF=VINT(309-I)/(VINT(2)+VINT(307)+VINT(308))
18940 Q2SF=VINT(309-I)
18941 ENDIF
18942 MINT(105)=MINT(102+I)
18943 MINT(109)=MINT(106+I)
18944 VINT(120)=VINT(2+I)
18945 IF(MSTP(57).LE.1) THEN
18946 CALL PYPDFU(MINT(10+I),XSF,Q2SF,XPQ)
18947 ELSE
18948 CALL PYPDFL(MINT(10+I),XSF,Q2SF,XPQ)
18949 ENDIF
18950 DO 100 KFL=-25,25
18951 XSFX(I,KFL)=XPQ(KFL)
18952 100 CONTINUE
18953 110 CONTINUE
18954 ENDIF
18955
18956
18957 XW=PARU(102)
18958 XWV=XW
18959 IF(MSTP(8).GE.2.OR.(ISUB.GE.71.AND.ISUB.LE.77)) XW=
18960 &1D0-(PMAS(24,1)/PMAS(23,1))**2
18961 XW1=1D0-XW
18962 XWC=1D0/(16D0*XW*XW1)
18963 AEM=PYALEM(Q2)
18964 IF(MSTP(8).GE.1) AEM=SQRT(2D0)*PARU(105)*PMAS(24,1)**2*XW/PARU(1)
18965 IF(MSTP(33).NE.3) AS=PYALPS(PARP(34)*Q2)
18966 FACK=1D0
18967 FACA=1D0
18968 IF(MSTP(33).EQ.1) THEN
18969 FACK=PARP(31)
18970 ELSEIF(MSTP(33).EQ.2) THEN
18971 FACK=PARP(31)
18972 FACA=PARP(32)/PARP(31)
18973 ELSEIF(MSTP(33).EQ.3) THEN
18974 Q2AS=PARP(33)*Q2
18975 IF(ISTSB.EQ.9.AND.MSTP(82).GE.2) Q2AS=Q2AS+
18976 & PARU(112)*PARP(82)*(VINT(1)/PARP(89))**PARP(90)
18977 AS=PYALPS(Q2AS)
18978 ENDIF
18979 VINT(138)=1D0
18980 VINT(57)=AEM
18981 VINT(58)=AS
18982
18983
18984 DO 140 I=1,2
18985 DO 120 J=-25,25
18986 KFAC(I,J)=0
18987 120 CONTINUE
18988 IF(MINT(44+I).EQ.1) THEN
18989 KFAC(I,MINT(10+I))=1
18990 ELSEIF(MINT(40+I).EQ.1.AND.MSTP(12).EQ.0) THEN
18991 KFAC(I,MINT(10+I))=1
18992 KFAC(I,22)=1
18993 KFAC(I,24)=1
18994 KFAC(I,-24)=1
18995 ELSE
18996 DO 130 J=-25,25
18997 KFAC(I,J)=KFIN(I,J)
18998 IF(IABS(J).GT.MSTP(58).AND.IABS(J).LE.10) KFAC(I,J)=0
18999 IF(XSFX(I,J).LT.1D-10) KFAC(I,J)=0
19000 130 CONTINUE
19001 ENDIF
19002 140 CONTINUE
19003
19004
19005 MMIN1=0
19006 MMAX1=0
19007 MMIN2=0
19008 MMAX2=0
19009 DO 150 J=-20,20
19010 IF(KFAC(1,-J).EQ.1) MMIN1=-J
19011 IF(KFAC(1,J).EQ.1) MMAX1=J
19012 IF(KFAC(2,-J).EQ.1) MMIN2=-J
19013 IF(KFAC(2,J).EQ.1) MMAX2=J
19014 150 CONTINUE
19015 MMINA=MIN(MMIN1,MMIN2)
19016 MMAXA=MAX(MMAX1,MMAX2)
19017
19018
19019 SQMZ=PMAS(23,1)**2
19020 SQMW=PMAS(24,1)**2
19021 SQMH=PMAS(KFHIGG,1)**2
19022 GMMZ=PMAS(23,1)*PMAS(23,2)
19023 GMMW=PMAS(24,1)*PMAS(24,2)
19024 GMMH=PMAS(KFHIGG,1)*PMAS(KFHIGG,2)
19025
19026 ZWID=PMAS(23,2)
19027 WWID=PMAS(24,2)
19028 TANW=SQRT(XW/XW1)
19029 CT2W=(1D0-2D0*XW)/(2D0*XW/TANW)
19030
19031
19032
19033 COMFAC=PARU(1)*PARU(5)/VINT(2)
19034 IF(MINT(41).EQ.2.AND.MINT(42).EQ.2) COMFAC=COMFAC*FACK
19035 IF((MINT(47).GE.2.OR.(ISTSB.GE.3.AND.ISTSB.LE.5)).AND.
19036 &ISTSB.NE.8.AND.ISTSB.NE.9) THEN
19037 ATAU1=LOG(TAUMAX/TAUMIN)
19038 ATAU2=(TAUMAX-TAUMIN)/(TAUMAX*TAUMIN)
19039 H1=COEF(ISUBSV,1)+(ATAU1/ATAU2)*COEF(ISUBSV,2)/TAU
19040 IF(MINT(72).GE.1) THEN
19041 TAUR1=VINT(73)
19042 GAMR1=VINT(74)
19043 ATAUD=LOG(TAUMAX/TAUMIN*(TAUMIN+TAUR1)/(TAUMAX+TAUR1))
19044 ATAU3=ATAUD/TAUR1
19045 IF(ATAUD.GT.1D-10) H1=H1+
19046 & (ATAU1/ATAU3)*COEF(ISUBSV,3)/(TAU+TAUR1)
19047 ATAUD=ATAN((TAUMAX-TAUR1)/GAMR1)-ATAN((TAUMIN-TAUR1)/GAMR1)
19048 ATAU4=ATAUD/GAMR1
19049 IF(ATAUD.GT.1D-10) H1=H1+
19050 & (ATAU1/ATAU4)*COEF(ISUBSV,4)*TAU/((TAU-TAUR1)**2+GAMR1**2)
19051 ENDIF
19052 IF(MINT(72).EQ.2) THEN
19053 TAUR2=VINT(75)
19054 GAMR2=VINT(76)
19055 ATAUD=LOG(TAUMAX/TAUMIN*(TAUMIN+TAUR2)/(TAUMAX+TAUR2))
19056 ATAU5=ATAUD/TAUR2
19057 IF(ATAUD.GT.1D-10) H1=H1+
19058 & (ATAU1/ATAU5)*COEF(ISUBSV,5)/(TAU+TAUR2)
19059 ATAUD=ATAN((TAUMAX-TAUR2)/GAMR2)-ATAN((TAUMIN-TAUR2)/GAMR2)
19060 ATAU6=ATAUD/GAMR2
19061 IF(ATAUD.GT.1D-10) H1=H1+
19062 & (ATAU1/ATAU6)*COEF(ISUBSV,6)*TAU/((TAU-TAUR2)**2+GAMR2**2)
19063 ENDIF
19064 IF(MINT(47).EQ.5.AND.(ISTSB.LE.2.OR.ISTSB.GE.5)) THEN
19065 ATAU7=LOG(MAX(2D-10,1D0-TAUMIN)/MAX(2D-10,1D0-TAUMAX))
19066 IF(ATAU7.GT.1D-10) H1=H1+(ATAU1/ATAU7)*COEF(ISUBSV,7)*TAU/
19067 & MAX(2D-10,1D0-TAU)
19068 ELSEIF(MINT(47).GE.6.AND.(ISTSB.LE.2.OR.ISTSB.GE.5)) THEN
19069 ATAU7=LOG(MAX(1D-10,1D0-TAUMIN)/MAX(1D-10,1D0-TAUMAX))
19070 IF(ATAU7.GT.1D-10) H1=H1+(ATAU1/ATAU7)*COEF(ISUBSV,7)*TAU/
19071 & MAX(1D-10,1D0-TAU)
19072 ENDIF
19073 COMFAC=COMFAC*ATAU1/(TAU*H1)
19074 ENDIF
19075
19076
19077 IF((MINT(47).EQ.4.OR.MINT(47).EQ.5).AND.ISTSB.NE.8.AND.ISTSB.NE.9)
19078 &THEN
19079 AYST0=YSTMAX-YSTMIN
19080 IF(AYST0.LT.1D-10) THEN
19081 COMFAC=0D0
19082 ELSE
19083 AYST1=0.5D0*(YSTMAX-YSTMIN)**2
19084 AYST2=AYST1
19085 AYST3=2D0*(ATAN(EXP(YSTMAX))-ATAN(EXP(YSTMIN)))
19086 H2=(AYST0/AYST1)*COEF(ISUBSV,8)*(YST-YSTMIN)+
19087 & (AYST0/AYST2)*COEF(ISUBSV,9)*(YSTMAX-YST)+
19088 & (AYST0/AYST3)*COEF(ISUBSV,10)/COSH(YST)
19089 IF(MINT(45).EQ.3) THEN
19090 YST0=-0.5D0*LOG(TAUE)
19091 AYST4=LOG(MAX(1D-10,EXP(YST0-YSTMIN)-1D0)/
19092 & MAX(1D-10,EXP(YST0-YSTMAX)-1D0))
19093 IF(AYST4.GT.1D-10) H2=H2+(AYST0/AYST4)*COEF(ISUBSV,11)/
19094 & MAX(1D-10,1D0-EXP(YST-YST0))
19095 ENDIF
19096 IF(MINT(46).EQ.3) THEN
19097 YST0=-0.5D0*LOG(TAUE)
19098 AYST5=LOG(MAX(1D-10,EXP(YST0+YSTMAX)-1D0)/
19099 & MAX(1D-10,EXP(YST0+YSTMIN)-1D0))
19100 IF(AYST5.GT.1D-10) H2=H2+(AYST0/AYST5)*COEF(ISUBSV,12)/
19101 & MAX(1D-10,1D0-EXP(-YST-YST0))
19102 ENDIF
19103 COMFAC=COMFAC*AYST0/H2
19104 ENDIF
19105 ENDIF
19106
19107
19108
19109 ACTH0=CTNMAX-CTNMIN+CTPMAX-CTPMIN
19110 IF((ISTSB.EQ.1.OR.ISTSB.EQ.3.OR.ISTSB.EQ.5)) THEN
19111 IF(MDCY(PYCOMP(KFPR(ISUBSV,1)),1).EQ.1) THEN
19112 IF(KFPR(ISUB,1).EQ.25.OR.KFPR(ISUB,1).EQ.37.OR.
19113 & KFPR(ISUB,1).EQ.39) THEN
19114 COMFAC=COMFAC*0.5D0*ACTH0
19115 ELSE
19116 COMFAC=COMFAC*0.125D0*(3D0*ACTH0+CTNMAX**3-CTNMIN**3+
19117 & CTPMAX**3-CTPMIN**3)
19118 ENDIF
19119 ENDIF
19120
19121
19122 ELSEIF(ISTSB.EQ.2.OR.ISTSB.EQ.4) THEN
19123 ACTH1=LOG((MAX(RM34,RSQM-CTNMIN)*MAX(RM34,RSQM-CTPMIN))/
19124 & (MAX(RM34,RSQM-CTNMAX)*MAX(RM34,RSQM-CTPMAX)))
19125 ACTH2=LOG((MAX(RM34,RSQM+CTNMAX)*MAX(RM34,RSQM+CTPMAX))/
19126 & (MAX(RM34,RSQM+CTNMIN)*MAX(RM34,RSQM+CTPMIN)))
19127 ACTH3=1D0/MAX(RM34,RSQM-CTNMAX)-1D0/MAX(RM34,RSQM-CTNMIN)+
19128 & 1D0/MAX(RM34,RSQM-CTPMAX)-1D0/MAX(RM34,RSQM-CTPMIN)
19129 ACTH4=1D0/MAX(RM34,RSQM+CTNMIN)-1D0/MAX(RM34,RSQM+CTNMAX)+
19130 & 1D0/MAX(RM34,RSQM+CTPMIN)-1D0/MAX(RM34,RSQM+CTPMAX)
19131 H3=COEF(ISUBSV,13)+
19132 & (ACTH0/ACTH1)*COEF(ISUBSV,14)/MAX(RM34,RSQM-CTH)+
19133 & (ACTH0/ACTH2)*COEF(ISUBSV,15)/MAX(RM34,RSQM+CTH)+
19134 & (ACTH0/ACTH3)*COEF(ISUBSV,16)/MAX(RM34,RSQM-CTH)**2+
19135 & (ACTH0/ACTH4)*COEF(ISUBSV,17)/MAX(RM34,RSQM+CTH)**2
19136 COMFAC=COMFAC*ACTH0*0.5D0*BE34/H3
19137
19138
19139 COMFAC=COMFAC*VINT(80)
19140 ENDIF
19141
19142
19143 IF(MINT(47).GE.2.AND.ISTSB.GE.3.AND.ISTSB.LE.5) THEN
19144 ATAUP1=LOG(TAUPMX/TAUPMN)
19145 ATAUP2=((1D0-TAU/TAUPMX)**4-(1D0-TAU/TAUPMN)**4)/(4D0*TAU)
19146 H4=COEF(ISUBSV,18)+
19147 & (ATAUP1/ATAUP2)*COEF(ISUBSV,19)*(1D0-TAU/TAUP)**3/TAUP
19148 IF(MINT(47).EQ.5) THEN
19149 ATAUP3=LOG(MAX(2D-10,1D0-TAUPMN)/MAX(2D-10,1D0-TAUPMX))
19150 H4=H4+(ATAUP1/ATAUP3)*COEF(ISUBSV,20)*TAUP/MAX(2D-10,1D0-TAUP)
19151 ELSEIF(MINT(47).GE.6) THEN
19152 ATAUP3=LOG(MAX(1D-10,1D0-TAUPMN)/MAX(1D-10,1D0-TAUPMX))
19153 H4=H4+(ATAUP1/ATAUP3)*COEF(ISUBSV,20)*TAUP/MAX(1D-10,1D0-TAUP)
19154 ENDIF
19155 COMFAC=COMFAC*ATAUP1/H4
19156 ENDIF
19157
19158
19159 IF(ISTSB.EQ.3.OR.ISTSB.EQ.4) THEN
19160 IF(1D0-TAU/TAUP.GT.1D-4) THEN
19161 FZW=(1D0+TAU/TAUP)*LOG(TAUP/TAU)-2D0*(1D0-TAU/TAUP)
19162 ELSE
19163 FZW=1D0/6D0*(1D0-TAU/TAUP)**3*TAU/TAUP
19164 ENDIF
19165 COMFAC=COMFAC*FZW
19166 ENDIF
19167
19168
19169 IF(ISTSB.EQ.5) THEN
19170 COMFAC=COMFAC*VINT(205)*VINT(210)*VINT(212)*VINT(214)/
19171 & (128D0*PARU(1)**4*VINT(220))*(TAU**2/TAUP)
19172 ENDIF
19173
19174
19175 IF(ISTSB.EQ.9) THEN
19176 COMFAC=PARU(1)*PARU(5)*FACK*0.5D0*VINT(2)/SH2
19177 ATAU1=LOG(2D0*(1D0+SQRT(1D0-XT2))/XT2-1D0)
19178 ATAU2=2D0*ATAN(1D0/XT2-1D0)/SQRT(XT2)
19179 H1=COEF(ISUBSV,1)+(ATAU1/ATAU2)*COEF(ISUBSV,2)/SQRT(TAU)
19180 COMFAC=COMFAC*ATAU1/H1
19181 AYST0=YSTMAX-YSTMIN
19182 AYST1=0.5D0*(YSTMAX-YSTMIN)**2
19183 AYST3=2D0*(ATAN(EXP(YSTMAX))-ATAN(EXP(YSTMIN)))
19184 H2=(AYST0/AYST1)*COEF(ISUBSV,8)*(YST-YSTMIN)+
19185 & (AYST0/AYST1)*COEF(ISUBSV,9)*(YSTMAX-YST)+
19186 & (AYST0/AYST3)*COEF(ISUBSV,10)/COSH(YST)
19187 COMFAC=COMFAC*AYST0/H2
19188 IF(MSTP(82).LE.1) COMFAC=COMFAC*XT2**2*(1D0/VINT(149)-1D0)
19189
19190
19191 IF(MSTP(82).GE.2) COMFAC=COMFAC*XT2**2/(VINT(149)*
19192 & (1D0+VINT(149)))
19193 ENDIF
19194
19195
19196 152 IF(MINT(11).EQ.22.AND.MINT(12).EQ.22.AND.MINT(123).GE.4.AND.
19197 &MSTP(14).LE.10) COMFAC=2D0*COMFAC
19198
19199
19200
19201 DO 155 ISDE=1,2
19202 IF(MINT(10+ISDE).EQ.22.AND.MINT(106+ISDE).GE.1.AND.
19203 & MINT(106+ISDE).LE.3) THEN
19204 VINT(314+ISDE)=1D0
19205 XY=PARP(166+ISDE)
19206 IF(MSTP(16).EQ.0) THEN
19207 IF(VINT(304+ISDE).GT.0D0.AND.VINT(304+ISDE).LT.1D0)
19208 & XY=VINT(304+ISDE)
19209 ELSE
19210 IF(VINT(308+ISDE).GT.0D0.AND.VINT(308+ISDE).LT.1D0)
19211 & XY=VINT(308+ISDE)
19212 ENDIF
19213 Q2GA=VINT(306+ISDE)
19214 IF(MSTP(17).GT.0.AND.XY.GT.0D0.AND.XY.LT.1D0.AND.
19215 & Q2GA.GT.0D0) THEN
19216 REDUCE=0D0
19217 IF(MSTP(17).EQ.1) THEN
19218 REDUCE=4D0*Q2*Q2GA/(Q2+Q2GA)**2
19219 ELSEIF(MSTP(17).EQ.2) THEN
19220 REDUCE=4D0*Q2GA/(Q2+Q2GA)
19221 ELSEIF(MSTP(17).EQ.3) THEN
19222 PMVIRT=PMAS(PYCOMP(113),1)
19223 REDUCE=4D0*Q2GA/(PMVIRT**2+Q2GA)
19224 ELSEIF(MSTP(17).EQ.4.AND.MINT(106+ISDE).EQ.1) THEN
19225 PMVIRT=PMAS(PYCOMP(113),1)
19226 REDUCE=4D0*PMVIRT**2*Q2GA/(PMVIRT**2+Q2GA)**2
19227 ELSEIF(MSTP(17).EQ.4.AND.MINT(106+ISDE).EQ.2) THEN
19228 PMVIRT=PMAS(PYCOMP(113),1)
19229 REDUCE=4D0*PMVIRT**2*Q2GA/(PMVIRT**2+Q2GA)**2
19230 ELSEIF(MSTP(17).EQ.4.AND.MINT(106+ISDE).EQ.3) THEN
19231 PMVSMN=4D0*PARP(15)**2
19232 PMVSMX=4D0*VINT(154)**2
19233 REDTRA=1D0/(PMVSMN+Q2GA)-1D0/(PMVSMX+Q2GA)
19234 REDLON=(3D0*PMVSMN+Q2GA)/(PMVSMN+Q2GA)**3-
19235 & (3D0*PMVSMX+Q2GA)/(PMVSMX+Q2GA)**3
19236 REDUCE=4D0*(Q2GA/6D0)*REDLON/REDTRA
19237 ELSEIF(MSTP(17).EQ.5.AND.MINT(106+ISDE).EQ.1) THEN
19238 PMVIRT=PMAS(PYCOMP(113),1)
19239 REDUCE=4D0*Q2GA/(PMVIRT**2+Q2GA)
19240 ELSEIF(MSTP(17).EQ.5.AND.MINT(106+ISDE).EQ.2) THEN
19241 PMVIRT=PMAS(PYCOMP(113),1)
19242 REDUCE=4D0*Q2GA/(PMVIRT**2+Q2GA)
19243 ELSEIF(MSTP(17).EQ.5.AND.MINT(106+ISDE).EQ.3) THEN
19244 PMVSMN=4D0*PARP(15)**2
19245 PMVSMX=4D0*VINT(154)**2
19246 REDTRA=1D0/(PMVSMN+Q2GA)-1D0/(PMVSMX+Q2GA)
19247 REDLON=1D0/(PMVSMN+Q2GA)**2-1D0/(PMVSMX+Q2GA)**2
19248 REDUCE=4D0*(Q2GA/2D0)*REDLON/REDTRA
19249 ENDIF
19250 BEAMAS=PYMASS(11)
19251 IF(VINT(302+ISDE).GT.0D0) BEAMAS=VINT(302+ISDE)
19252 FRACLT=1D0/(1D0+XY**2/2D0/(1D0-XY)*
19253 & (1D0-2D0*BEAMAS**2/Q2GA))
19254 VINT(314+ISDE)=1D0+PARP(165)*REDUCE*FRACLT
19255 ENDIF
19256 ELSE
19257 VINT(314+ISDE)=1D0
19258 ENDIF
19259 COMFAC=COMFAC*VINT(314+ISDE)
19260 155 CONTINUE
19261
19262
19263 IF((MSTP(46).GE.3.AND.MSTP(46).LE.6).AND.(ISUB.EQ.71.OR.ISUB.EQ.
19264 &72.OR.ISUB.EQ.73.OR.ISUB.EQ.76.OR.ISUB.EQ.77)) THEN
19265
19266 IF(MSTP(46).LE.4) THEN
19267 HDTLH=LOG(PMAS(25,1)/PARP(44))
19268 HDTMR=(4.5D0*PARU(1)/SQRT(3D0)-74D0/9D0)/8D0+HDTLH/12D0
19269 HDTNR=-1D0/18D0+HDTLH/6D0
19270 ELSE
19271 HDTNM=0.125D0*(1D0/(288D0*PARU(1)**2)+(PARP(47)/PARP(45))**2)
19272 HDTLQ=LOG(PARP(45)/PARP(44))
19273 HDTMR=-(4D0*PARU(1))**2*0.5D0*HDTNM+HDTLQ/12D0
19274 HDTNR=(4D0*PARU(1))**2*HDTNM+HDTLQ/6D0
19275 ENDIF
19276
19277
19278 HDTV=1D0/(16D0*PARU(1)*PARP(47)**2)
19279 A00L=SNGL(HDTV*SH)
19280 A20L=-0.5*A00L
19281 A11L=A00L/6.
19282 HDTLS=LOG(SH/PARP(44)**2)
19283 A004=SNGL((HDTV*SH)**2/(4D0*PARU(1)))*
19284 & CMPLX(SNGL((176D0*HDTMR+112D0*HDTNR)/3D0+11D0/27D0-
19285 & (50D0/9D0)*HDTLS),SNGL(4D0*PARU(1)))
19286 A204=SNGL((HDTV*SH)**2/(4D0*PARU(1)))*
19287 & CMPLX(SNGL(32D0*(HDTMR+2D0*HDTNR)/3D0+25D0/54D0-
19288 & (20D0/9D0)*HDTLS),SNGL(PARU(1)))
19289 A114=SNGL((HDTV*SH)**2/(6D0*PARU(1)))*
19290 & CMPLX(SNGL(4D0*(-2D0*HDTMR+HDTNR)-1D0/18D0),SNGL(PARU(1)/6D0))
19291
19292
19293 IF(MSTP(46).EQ.3.OR.MSTP(46).EQ.5) THEN
19294 A00U=A00L/(1.-A004/A00L)
19295 A20U=A20L/(1.-A204/A20L)
19296 A11U=A11L/(1.-A114/A11L)
19297 ELSE
19298 A00U=(A00L+REAL(A004))/(1.-CMPLX(0.,A00L+REAL(A004)))
19299 A20U=(A20L+REAL(A204))/(1.-CMPLX(0.,A20L+REAL(A204)))
19300 A11U=(A11L+REAL(A114))/(1.-CMPLX(0.,A11L+REAL(A114)))
19301 ENDIF
19302 ENDIF
19303
19304
19305
19306 IF(ISUB.GE.200.AND.ISUB.LE.301.AND.MSTP(42).GT.0) THEN
19307 DO 160 I=1,2
19308 KFLW=KFPR(ISUBSV,I)
19309 KCW=PYCOMP(KFLW)
19310 IF(PMAS(KCW,2).LT.PARP(41)) GOTO 160
19311 IF(I.EQ.1) SQMI=SQM3
19312 IF(I.EQ.2) SQMI=SQM4
19313 SQMS=PMAS(KCW,1)**2
19314 GMMS=PMAS(KCW,1)*PMAS(KCW,2)
19315 HBWS=GMMS/((SQMI-SQMS)**2+GMMS**2)
19316 CALL PYWIDT(KFLW,SQMI,WDTP,WDTE)
19317 GMMI=SQRT(SQMI)*WDTP(0)
19318 HBWI=GMMI/((SQMI-SQMS)**2+GMMI**2)
19319 COMFAC=COMFAC*(HBWI/HBWS)
19320 160 CONTINUE
19321 ENDIF
19322
19323
19324
19325 IF(ISUB.LE.10) THEN
19326 IF(ISUB.EQ.1) THEN
19327
19328 MINT(61)=2
19329 CALL PYWIDT(23,SH,WDTP,WDTE)
19330 HS=SHR*WDTP(0)
19331 FACZ=4D0*COMFAC*3D0
19332 HP0=AEM/3D0*SH
19333 HP1=AEM/3D0*XWC*SH
19334 DO 180 I=MMINA,MMAXA
19335 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 180
19336 EI=KCHG(IABS(I),1)/3D0
19337 AI=SIGN(1D0,EI)
19338 VI=AI-4D0*EI*XWV
19339 HI0=HP0
19340 IF(IABS(I).LE.10) HI0=HI0*FACA/3D0
19341 HI1=HP1
19342 IF(IABS(I).LE.10) HI1=HI1*FACA/3D0
19343 NCHN=NCHN+1
19344 ISIG(NCHN,1)=I
19345 ISIG(NCHN,2)=-I
19346 ISIG(NCHN,3)=1
19347 SIGH(NCHN)=FACZ*(EI**2/SH2*HI0*HP0*VINT(111)+
19348 & EI*VI*(1D0-SQMZ/SH)/((SH-SQMZ)**2+HS**2)*
19349 & (HI0*HP1+HI1*HP0)*VINT(112)+(VI**2+AI**2)/
19350 & ((SH-SQMZ)**2+HS**2)*HI1*HP1*VINT(114))
19351 180 CONTINUE
19352
19353 ELSEIF(ISUB.EQ.2) THEN
19354
19355 CALL PYWIDT(24,SH,WDTP,WDTE)
19356 HS=SHR*WDTP(0)
19357 FACBW=4D0*COMFAC/((SH-SQMW)**2+HS**2)*3D0
19358 HP=AEM/(24D0*XW)*SH
19359 DO 200 I=MMIN1,MMAX1
19360 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 200
19361 IA=IABS(I)
19362 DO 190 J=MMIN2,MMAX2
19363 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 190
19364 JA=IABS(J)
19365 IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 190
19366 IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
19367 & GOTO 190
19368 KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
19369 HI=HP*2D0
19370 IF(IA.LE.10) HI=HI*VCKM((IA+1)/2,(JA+1)/2)*FACA/3D0
19371 NCHN=NCHN+1
19372 ISIG(NCHN,1)=I
19373 ISIG(NCHN,2)=J
19374 ISIG(NCHN,3)=1
19375 HF=SHR*(WDTE(0,1)+WDTE(0,(5-KCHW)/2)+WDTE(0,4))
19376 SIGH(NCHN)=HI*FACBW*HF
19377 190 CONTINUE
19378 200 CONTINUE
19379
19380 ELSEIF(ISUB.EQ.3) THEN
19381
19382 CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
19383 HS=SHR*WDTP(0)
19384 FACBW=4D0*COMFAC/((SH-SQMH)**2+HS**2)
19385 IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
19386 & FACBW=0D0
19387 HP=AEM/(8D0*XW)*SH/SQMW*SH
19388 HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
19389 DO 210 I=MMINA,MMAXA
19390 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 210
19391 IA=IABS(I)
19392 RMQ=PYMRUN(IA,SH)**2/SH
19393 HI=HP*RMQ
19394 IF(IA.LE.10) HI=HP*RMQ*FACA/3D0
19395 IF(MSTP(4).GE.1.OR.IHIGG.GE.2) THEN
19396 IKFI=1
19397 IF(IA.LE.10.AND.MOD(IA,2).EQ.0) IKFI=2
19398 IF(IA.GT.10) IKFI=3
19399 HI=HI*PARU(150+10*IHIGG+IKFI)**2
19400 ENDIF
19401 NCHN=NCHN+1
19402 ISIG(NCHN,1)=I
19403 ISIG(NCHN,2)=-I
19404 ISIG(NCHN,3)=1
19405 SIGH(NCHN)=HI*FACBW*HF
19406 210 CONTINUE
19407
19408 ELSEIF(ISUB.EQ.4) THEN
19409
19410
19411 ELSEIF(ISUB.EQ.5) THEN
19412
19413 CALL PYWIDT(25,SH,WDTP,WDTE)
19414 HS=SHR*WDTP(0)
19415 FACBW=4D0*COMFAC/((SH-SQMH)**2+HS**2)
19416 IF(ABS(SHR-PMAS(25,1)).GT.PARP(48)*PMAS(25,2)) FACBW=0D0
19417 HP=AEM/(8D0*XW)*SH/SQMW*SH
19418 HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
19419 HI=HP/4D0
19420 FACI=8D0/(PARU(1)**2*XW1)*(AEM*XWC)**2
19421 DO 230 I=MMIN1,MMAX1
19422 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 230
19423 DO 220 J=MMIN2,MMAX2
19424 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 220
19425 EI=KCHG(IABS(I),1)/3D0
19426 AI=SIGN(1D0,EI)
19427 VI=AI-4D0*EI*XWV
19428 EJ=KCHG(IABS(J),1)/3D0
19429 AJ=SIGN(1D0,EJ)
19430 VJ=AJ-4D0*EJ*XWV
19431 NCHN=NCHN+1
19432 ISIG(NCHN,1)=I
19433 ISIG(NCHN,2)=J
19434 ISIG(NCHN,3)=1
19435 SIGH(NCHN)=FACI*(VI**2+AI**2)*(VJ**2+AJ**2)*HI*FACBW*HF
19436 220 CONTINUE
19437 230 CONTINUE
19438
19439 ELSEIF(ISUB.EQ.6) THEN
19440
19441
19442 ELSEIF(ISUB.EQ.7) THEN
19443
19444
19445 ELSEIF(ISUB.EQ.8) THEN
19446
19447 CALL PYWIDT(25,SH,WDTP,WDTE)
19448 HS=SHR*WDTP(0)
19449 FACBW=4D0*COMFAC/((SH-SQMH)**2+HS**2)
19450 IF(ABS(SHR-PMAS(25,1)).GT.PARP(48)*PMAS(25,2)) FACBW=0D0
19451 HP=AEM/(8D0*XW)*SH/SQMW*SH
19452 HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
19453 HI=HP/2D0
19454 FACI=1D0/(4D0*PARU(1)**2)*(AEM/XW)**2
19455 DO 250 I=MMIN1,MMAX1
19456 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 250
19457 EI=SIGN(1D0,DBLE(I))*KCHG(IABS(I),1)
19458 DO 240 J=MMIN2,MMAX2
19459 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 240
19460 EJ=SIGN(1D0,DBLE(J))*KCHG(IABS(J),1)
19461 IF(EI*EJ.GT.0D0) GOTO 240
19462 NCHN=NCHN+1
19463 ISIG(NCHN,1)=I
19464 ISIG(NCHN,2)=J
19465 ISIG(NCHN,3)=1
19466 SIGH(NCHN)=FACI*VINT(180+I)*VINT(180+J)*HI*FACBW*HF
19467 240 CONTINUE
19468 250 CONTINUE
19469
19470
19471
19472 ELSEIF(ISUB.EQ.10) THEN
19473
19474 FACGGF=COMFAC*AEM**2*2D0*(SH2+UH2)/TH2
19475 FACGZF=COMFAC*AEM**2*XWC*4D0*SH2/(TH*(TH-SQMZ))
19476 FACZZF=COMFAC*(AEM*XWC)**2*2D0*SH2/(TH-SQMZ)**2
19477 FACWWF=COMFAC*(0.5D0*AEM/XW)**2*SH2/(TH-SQMW)**2
19478 DO 270 I=MMIN1,MMAX1
19479 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 270
19480 IA=IABS(I)
19481 DO 260 J=MMIN2,MMAX2
19482 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 260
19483 JA=IABS(J)
19484
19485 EI=KCHG(IA,1)*ISIGN(1,I)/3D0
19486 AI=SIGN(1D0,KCHG(IA,1)+0.5D0)*ISIGN(1,I)
19487 VI=AI-4D0*EI*XWV
19488 EJ=KCHG(JA,1)*ISIGN(1,J)/3D0
19489 AJ=SIGN(1D0,KCHG(JA,1)+0.5D0)*ISIGN(1,J)
19490 VJ=AJ-4D0*EJ*XWV
19491 EPSIJ=ISIGN(1,I*J)
19492
19493 IF(MSTP(21).GE.1.AND.MSTP(21).LE.4) THEN
19494 IF(MSTP(21).EQ.1.OR.MSTP(21).EQ.4) THEN
19495 FACNCF=FACGGF*EI**2*EJ**2+FACGZF*EI*EJ*
19496 & (VI*VJ*(1D0+UH2/SH2)+AI*AJ*EPSIJ*(1D0-UH2/SH2))+
19497 & FACZZF*((VI**2+AI**2)*(VJ**2+AJ**2)*(1D0+UH2/SH2)+
19498 & 4D0*VI*VJ*AI*AJ*EPSIJ*(1D0-UH2/SH2))
19499 ELSEIF(MSTP(21).EQ.2) THEN
19500 FACNCF=FACGGF*EI**2*EJ**2
19501 ELSE
19502 FACNCF=FACZZF*((VI**2+AI**2)*(VJ**2+AJ**2)*
19503 & (1D0+UH2/SH2)+4D0*VI*VJ*AI*AJ*EPSIJ*(1D0-UH2/SH2))
19504 ENDIF
19505 NCHN=NCHN+1
19506 ISIG(NCHN,1)=I
19507 ISIG(NCHN,2)=J
19508 ISIG(NCHN,3)=1
19509 SIGH(NCHN)=FACNCF
19510 ENDIF
19511
19512 IF((MSTP(21).EQ.1.OR.MSTP(21).EQ.5).AND.AI*AJ.LT.0D0) THEN
19513 FACCCF=FACWWF*VINT(180+I)*VINT(180+J)
19514 IF(EPSIJ.LT.0D0) FACCCF=FACCCF*UH2/SH2
19515 IF(IA.GT.10.AND.MOD(IA,2).EQ.0) FACCCF=2D0*FACCCF
19516 IF(JA.GT.10.AND.MOD(JA,2).EQ.0) FACCCF=2D0*FACCCF
19517 NCHN=NCHN+1
19518 ISIG(NCHN,1)=I
19519 ISIG(NCHN,2)=J
19520 ISIG(NCHN,3)=2
19521 SIGH(NCHN)=FACCCF
19522 ENDIF
19523 260 CONTINUE
19524 270 CONTINUE
19525 ENDIF
19526
19527 ELSEIF(ISUB.LE.20) THEN
19528 IF(ISUB.EQ.11) THEN
19529
19530 FACQQ1=COMFAC*AS**2*4D0/9D0*(SH2+UH2)/TH2
19531 FACQQB=COMFAC*AS**2*4D0/9D0*((SH2+UH2)/TH2*FACA-
19532 & MSTP(34)*2D0/3D0*UH2/(SH*TH))
19533 FACQQ2=COMFAC*AS**2*4D0/9D0*(SH2+TH2)/UH2
19534 FACQQI=-COMFAC*AS**2*4D0/9D0*MSTP(34)*2D0/3D0*SH2/(TH*UH)
19535 RATQQI=(FACQQ1+FACQQ2+FACQQI)/(FACQQ1+FACQQ2)
19536 IF(MSTP(5).GE.1) THEN
19537
19538 FACCI1=FACQQ1+COMFAC*(SH2/PARU(155)**4)
19539 FACCIB=FACQQB+COMFAC*(8D0/9D0)*(AS*PARU(156)/PARU(155)**2)*
19540 & (UH2/TH+UH2/SH)+COMFAC*(5D0/3D0)*(UH2/PARU(155)**4)
19541 FACCI2=FACQQ2+COMFAC*(8D0/9D0)*(AS*PARU(156)/PARU(155)**2)*
19542 & (SH2/TH+SH2/UH)+COMFAC*(5D0/3D0)*(SH2/PARU(155)**4)
19543 FACCI3=FACQQ1+COMFAC*(UH2/PARU(155)**4)
19544 RATCII=(FACCI1*FACCI2+FACQQI)/(FACCI1+FACCI2)
19545 ENDIF
19546 DO 290 I=MMIN1,MMAX1
19547 IA=IABS(I)
19548 IF(I.EQ.0.OR.IA.GT.MSTP(58).OR.KFAC(1,I).EQ.0) GOTO 290
19549 DO 280 J=MMIN2,MMAX2
19550 JA=IABS(J)
19551 IF(J.EQ.0.OR.JA.GT.MSTP(58).OR.KFAC(2,J).EQ.0) GOTO 280
19552 NCHN=NCHN+1
19553 ISIG(NCHN,1)=I
19554 ISIG(NCHN,2)=J
19555 ISIG(NCHN,3)=1
19556 IF(MSTP(5).LE.0.OR.(MSTP(5).EQ.1.AND.(IA.GE.3.OR.
19557 & JA.GE.3))) THEN
19558 SIGH(NCHN)=FACQQ1
19559 IF(I.EQ.-J) SIGH(NCHN)=FACQQB
19560 ELSE
19561 SIGH(NCHN)=FACCI1
19562 IF(I*J.LT.0) SIGH(NCHN)=FACCI3
19563 IF(I.EQ.-J) SIGH(NCHN)=FACCIB
19564 ENDIF
19565 IF(I.EQ.J) THEN
19566 NCHN=NCHN+1
19567 ISIG(NCHN,1)=I
19568 ISIG(NCHN,2)=J
19569 ISIG(NCHN,3)=2
19570 IF(MSTP(5).LE.0.OR.(MSTP(5).EQ.1.AND.IA.GE.3)) THEN
19571 SIGH(NCHN-1)=0.5D0*FACQQ1*RATQQI
19572 SIGH(NCHN)=0.5D0*FACQQ2*RATQQI
19573 ELSE
19574 SIGH(NCHN-1)=0.5D0*FACCI1*RATCII
19575 SIGH(NCHN)=0.5D0*FACCI2*RATCII
19576 ENDIF
19577 ENDIF
19578 280 CONTINUE
19579 290 CONTINUE
19580
19581 ELSEIF(ISUB.EQ.12) THEN
19582
19583 CALL PYWIDT(21,SH,WDTP,WDTE)
19584 FACQQB=COMFAC*AS**2*4D0/9D0*(TH2+UH2)/SH2*
19585 & (WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
19586 IF(MSTP(5).EQ.1) THEN
19587
19588 FACCIB=FACQQB
19589 DO 300 I=1,2
19590 FACCIB=FACCIB+COMFAC*(UH2/PARU(155)**4)*(WDTE(I,1)+
19591 & WDTE(I,2)+WDTE(I,4))
19592 300 CONTINUE
19593 ELSEIF(MSTP(5).GE.2) THEN
19594 FACCIB=FACQQB+COMFAC*(UH2/PARU(155)**4)*
19595 & (WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
19596 ENDIF
19597 DO 310 I=MMINA,MMAXA
19598 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
19599 & KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 310
19600 NCHN=NCHN+1
19601 ISIG(NCHN,1)=I
19602 ISIG(NCHN,2)=-I
19603 ISIG(NCHN,3)=1
19604 IF(MSTP(5).LE.0.OR.(MSTP(5).EQ.1.AND.IABS(I).GE.3)) THEN
19605 SIGH(NCHN)=FACQQB
19606 ELSE
19607 SIGH(NCHN)=FACCIB
19608 ENDIF
19609 310 CONTINUE
19610
19611 ELSEIF(ISUB.EQ.13) THEN
19612
19613 FACGG1=COMFAC*AS**2*32D0/27D0*(UH/TH-(2D0+MSTP(34)*1D0/4D0)*
19614 & UH2/SH2)
19615 FACGG2=COMFAC*AS**2*32D0/27D0*(TH/UH-(2D0+MSTP(34)*1D0/4D0)*
19616 & TH2/SH2)
19617 DO 320 I=MMINA,MMAXA
19618 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
19619 & KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 320
19620 NCHN=NCHN+1
19621 ISIG(NCHN,1)=I
19622 ISIG(NCHN,2)=-I
19623 ISIG(NCHN,3)=1
19624 SIGH(NCHN)=0.5D0*FACGG1
19625 NCHN=NCHN+1
19626 ISIG(NCHN,1)=I
19627 ISIG(NCHN,2)=-I
19628 ISIG(NCHN,3)=2
19629 SIGH(NCHN)=0.5D0*FACGG2
19630 320 CONTINUE
19631
19632 ELSEIF(ISUB.EQ.14) THEN
19633
19634 FACGG=COMFAC*AS*AEM*8D0/9D0*(TH2+UH2)/(TH*UH)
19635 DO 330 I=MMINA,MMAXA
19636 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
19637 & KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 330
19638 EI=KCHG(IABS(I),1)/3D0
19639 NCHN=NCHN+1
19640 ISIG(NCHN,1)=I
19641 ISIG(NCHN,2)=-I
19642 ISIG(NCHN,3)=1
19643 SIGH(NCHN)=FACGG*EI**2
19644 330 CONTINUE
19645
19646 ELSEIF(ISUB.EQ.15) THEN
19647
19648 FACZG=COMFAC*AS*AEM*(8D0/9D0)*(TH2+UH2+2D0*SQM4*SH)/(TH*UH)
19649
19650 HFGG=0D0
19651 HFGZ=0D0
19652 HFZZ=0D0
19653 RADC4=1D0+PYALPS(SQM4)/PARU(1)
19654 DO 340 I=1,MIN(16,MDCY(23,3))
19655 IDC=I+MDCY(23,2)-1
19656 IF(MDME(IDC,1).LT.0) GOTO 340
19657 IMDM=0
19658 IF(MDME(IDC,1).EQ.1.OR.MDME(IDC,1).EQ.2.OR.MDME(IDC,1).EQ.4)
19659 & IMDM=1
19660 IF(I.LE.8) THEN
19661 EF=KCHG(I,1)/3D0
19662 AF=SIGN(1D0,EF+0.1D0)
19663 VF=AF-4D0*EF*XWV
19664 ELSEIF(I.LE.16) THEN
19665 EF=KCHG(I+2,1)/3D0
19666 AF=SIGN(1D0,EF+0.1D0)
19667 VF=AF-4D0*EF*XWV
19668 ENDIF
19669 RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SQM4
19670 IF(4D0*RM1.LT.1D0) THEN
19671 FCOF=1D0
19672 IF(I.LE.8) FCOF=3D0*RADC4
19673 BE34=SQRT(MAX(0D0,1D0-4D0*RM1))
19674 IF(IMDM.EQ.1) THEN
19675 HFGG=HFGG+FCOF*EF**2*(1D0+2D0*RM1)*BE34
19676 HFGZ=HFGZ+FCOF*EF*VF*(1D0+2D0*RM1)*BE34
19677 HFZZ=HFZZ+FCOF*(VF**2*(1D0+2D0*RM1)+
19678 & AF**2*(1D0-4D0*RM1))*BE34
19679 ENDIF
19680 ENDIF
19681 340 CONTINUE
19682
19683 HBW4=(1D0/PARU(1))*GMMZ/((SQM4-SQMZ)**2+GMMZ**2)
19684 MINT15=MINT(15)
19685 MINT(15)=1
19686 MINT(61)=1
19687 CALL PYWIDT(23,SQM4,WDTP,WDTE)
19688 MINT(15)=MINT15
19689 HFAEM=(PARU(108)/PARU(2))*(2D0/3D0)
19690 HFGG=HFGG*HFAEM*VINT(111)/SQM4
19691 HFGZ=HFGZ*HFAEM*VINT(112)/SQM4
19692 HFZZ=HFZZ*HFAEM*VINT(114)/SQM4
19693
19694 DO 350 I=MMINA,MMAXA
19695 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
19696 & KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 350
19697 EI=KCHG(IABS(I),1)/3D0
19698 AI=SIGN(1D0,EI)
19699 VI=AI-4D0*EI*XWV
19700 NCHN=NCHN+1
19701 ISIG(NCHN,1)=I
19702 ISIG(NCHN,2)=-I
19703 ISIG(NCHN,3)=1
19704 SIGH(NCHN)=FACZG*(EI**2*HFGG+EI*VI*HFGZ+
19705 & (VI**2+AI**2)*HFZZ)/HBW4
19706 350 CONTINUE
19707
19708 ELSEIF(ISUB.EQ.16) THEN
19709
19710 FACWG=COMFAC*AS*AEM/XW*2D0/9D0*(TH2+UH2+2D0*SQM4*SH)/(TH*UH)
19711
19712 HBW4=GMMW/((SQM4-SQMW)**2+GMMW**2)
19713 CALL PYWIDT(24,SQM4,WDTP,WDTE)
19714 GMMWC=SQRT(SQM4)*WDTP(0)
19715 HBW4C=GMMWC/((SQM4-SQMW)**2+GMMWC**2)
19716 FACWG=FACWG*HBW4C/HBW4
19717 DO 370 I=MMIN1,MMAX1
19718 IA=IABS(I)
19719 IF(I.EQ.0.OR.IA.GT.10.OR.KFAC(1,I).EQ.0) GOTO 370
19720 DO 360 J=MMIN2,MMAX2
19721 JA=IABS(J)
19722 IF(J.EQ.0.OR.JA.GT.10.OR.KFAC(2,J).EQ.0) GOTO 360
19723 IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 360
19724 KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
19725 WIDSC=(WDTE(0,1)+WDTE(0,(5-KCHW)/2)+WDTE(0,4))/WDTP(0)
19726 FCKM=VCKM((IA+1)/2,(JA+1)/2)
19727 NCHN=NCHN+1
19728 ISIG(NCHN,1)=I
19729 ISIG(NCHN,2)=J
19730 ISIG(NCHN,3)=1
19731 SIGH(NCHN)=FACWG*FCKM*WIDSC
19732 360 CONTINUE
19733 370 CONTINUE
19734
19735 ELSEIF(ISUB.EQ.17) THEN
19736
19737
19738 ELSEIF(ISUB.EQ.18) THEN
19739
19740 FACGG=COMFAC*AEM**2*2D0*(TH2+UH2)/(TH*UH)
19741 DO 380 I=MMINA,MMAXA
19742 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 380
19743 EI=KCHG(IABS(I),1)/3D0
19744 FCOI=1D0
19745 IF(IABS(I).LE.10) FCOI=FACA/3D0
19746 NCHN=NCHN+1
19747 ISIG(NCHN,1)=I
19748 ISIG(NCHN,2)=-I
19749 ISIG(NCHN,3)=1
19750 SIGH(NCHN)=0.5D0*FACGG*FCOI*EI**4
19751 380 CONTINUE
19752
19753 ELSEIF(ISUB.EQ.19) THEN
19754
19755 FACGZ=COMFAC*2D0*AEM**2*(TH2+UH2+2D0*SQM4*SH)/(TH*UH)
19756
19757 HFGG=0D0
19758 HFGZ=0D0
19759 HFZZ=0D0
19760 RADC4=1D0+PYALPS(SQM4)/PARU(1)
19761 DO 390 I=1,MIN(16,MDCY(23,3))
19762 IDC=I+MDCY(23,2)-1
19763 IF(MDME(IDC,1).LT.0) GOTO 390
19764 IMDM=0
19765 IF(MDME(IDC,1).EQ.1.OR.MDME(IDC,1).EQ.2.OR.MDME(IDC,1).EQ.4)
19766 & IMDM=1
19767 IF(I.LE.8) THEN
19768 EF=KCHG(I,1)/3D0
19769 AF=SIGN(1D0,EF+0.1D0)
19770 VF=AF-4D0*EF*XWV
19771 ELSEIF(I.LE.16) THEN
19772 EF=KCHG(I+2,1)/3D0
19773 AF=SIGN(1D0,EF+0.1D0)
19774 VF=AF-4D0*EF*XWV
19775 ENDIF
19776 RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SQM4
19777 IF(4D0*RM1.LT.1D0) THEN
19778 FCOF=1D0
19779 IF(I.LE.8) FCOF=3D0*RADC4
19780 BE34=SQRT(MAX(0D0,1D0-4D0*RM1))
19781 IF(IMDM.EQ.1) THEN
19782 HFGG=HFGG+FCOF*EF**2*(1D0+2D0*RM1)*BE34
19783 HFGZ=HFGZ+FCOF*EF*VF*(1D0+2D0*RM1)*BE34
19784 HFZZ=HFZZ+FCOF*(VF**2*(1D0+2D0*RM1)+
19785 & AF**2*(1D0-4D0*RM1))*BE34
19786 ENDIF
19787 ENDIF
19788 390 CONTINUE
19789
19790 HBW4=(1D0/PARU(1))*GMMZ/((SQM4-SQMZ)**2+GMMZ**2)
19791 MINT15=MINT(15)
19792 MINT(15)=1
19793 MINT(61)=1
19794 CALL PYWIDT(23,SQM4,WDTP,WDTE)
19795 MINT(15)=MINT15
19796 HFAEM=(PARU(108)/PARU(2))*(2D0/3D0)
19797 HFGG=HFGG*HFAEM*VINT(111)/SQM4
19798 HFGZ=HFGZ*HFAEM*VINT(112)/SQM4
19799 HFZZ=HFZZ*HFAEM*VINT(114)/SQM4
19800
19801 DO 400 I=MMINA,MMAXA
19802 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 400
19803 EI=KCHG(IABS(I),1)/3D0
19804 AI=SIGN(1D0,EI)
19805 VI=AI-4D0*EI*XWV
19806 FCOI=1D0
19807 IF(IABS(I).LE.10) FCOI=FACA/3D0
19808 NCHN=NCHN+1
19809 ISIG(NCHN,1)=I
19810 ISIG(NCHN,2)=-I
19811 ISIG(NCHN,3)=1
19812 SIGH(NCHN)=FACGZ*FCOI*EI**2*(EI**2*HFGG+EI*VI*HFGZ+
19813 & (VI**2+AI**2)*HFZZ)/HBW4
19814 400 CONTINUE
19815
19816 ELSEIF(ISUB.EQ.20) THEN
19817
19818 FACGW=COMFAC*0.5D0*AEM**2/XW
19819
19820 HBW4=GMMW/((SQM4-SQMW)**2+GMMW**2)
19821 CALL PYWIDT(24,SQM4,WDTP,WDTE)
19822 GMMWC=SQRT(SQM4)*WDTP(0)
19823 HBW4C=GMMWC/((SQM4-SQMW)**2+GMMWC**2)
19824 FACGW=FACGW*HBW4C/HBW4
19825
19826 TERM1=(TH2+UH2+2D0*SQM4*SH)/(TH*UH)
19827 TERM2=0D0
19828 TERM3=0D0
19829 IF(MSTP(5).GE.1) THEN
19830 TERM2=PARU(153)*(TH-UH)/(TH+UH)
19831 TERM3=0.5D0*PARU(153)**2*(TH*UH+(TH2+UH2)*SH/
19832 & (4D0*SQMW))/(TH+UH)**2
19833 ENDIF
19834 DO 420 I=MMIN1,MMAX1
19835 IA=IABS(I)
19836 IF(I.EQ.0.OR.IA.GT.20.OR.KFAC(1,I).EQ.0) GOTO 420
19837 DO 410 J=MMIN2,MMAX2
19838 JA=IABS(J)
19839 IF(J.EQ.0.OR.JA.GT.20.OR.KFAC(2,J).EQ.0) GOTO 410
19840 IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 410
19841 IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
19842 & GOTO 410
19843 KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
19844 WIDSC=(WDTE(0,1)+WDTE(0,(5-KCHW)/2)+WDTE(0,4))/WDTP(0)
19845 IF(IA.LE.10) THEN
19846 FACWR=UH/(TH+UH)-1D0/3D0
19847 FCKM=VCKM((IA+1)/2,(JA+1)/2)
19848 FCOI=FACA/3D0
19849 ELSE
19850 FACWR=-TH/(TH+UH)
19851 FCKM=1D0
19852 FCOI=1D0
19853 ENDIF
19854 FACWK=TERM1*FACWR**2+TERM2*FACWR+TERM3
19855 NCHN=NCHN+1
19856 ISIG(NCHN,1)=I
19857 ISIG(NCHN,2)=J
19858 ISIG(NCHN,3)=1
19859 SIGH(NCHN)=FACGW*FACWK*FCOI*FCKM*WIDSC
19860 410 CONTINUE
19861 420 CONTINUE
19862 ENDIF
19863
19864 ELSEIF(ISUB.LE.30) THEN
19865 IF(ISUB.EQ.21) THEN
19866
19867
19868 ELSEIF(ISUB.EQ.22) THEN
19869
19870
19871 FACZZ=COMFAC*AEM**2*((TH2+UH2+2D0*(SQM3+SQM4)*SH)/(TH*UH)-
19872 & SQM3*SQM4*(1D0/TH2+1D0/UH2))
19873
19874 DO 440 I=1,6
19875 DO 430 J=1,3
19876 HGZ(I,J)=0D0
19877 430 CONTINUE
19878 440 CONTINUE
19879 RADC3=1D0+PYALPS(SQM3)/PARU(1)
19880 RADC4=1D0+PYALPS(SQM4)/PARU(1)
19881 DO 450 I=1,MIN(16,MDCY(23,3))
19882 IDC=I+MDCY(23,2)-1
19883 IF(MDME(IDC,1).LT.0) GOTO 450
19884 IMDM=0
19885 IF(MDME(IDC,1).EQ.1.OR.MDME(IDC,1).EQ.2) IMDM=1
19886 IF(MDME(IDC,1).EQ.4.OR.MDME(IDC,1).EQ.5) IMDM=MDME(IDC,1)-2
19887 IF(I.LE.8) THEN
19888 EF=KCHG(I,1)/3D0
19889 AF=SIGN(1D0,EF+0.1D0)
19890 VF=AF-4D0*EF*XWV
19891 ELSEIF(I.LE.16) THEN
19892 EF=KCHG(I+2,1)/3D0
19893 AF=SIGN(1D0,EF+0.1D0)
19894 VF=AF-4D0*EF*XWV
19895 ENDIF
19896 RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SQM3
19897 IF(4D0*RM1.LT.1D0) THEN
19898 FCOF=1D0
19899 IF(I.LE.8) FCOF=3D0*RADC3
19900 BE34=SQRT(MAX(0D0,1D0-4D0*RM1))
19901 IF(IMDM.GE.1) THEN
19902 HGZ(1,IMDM)=HGZ(1,IMDM)+FCOF*EF**2*(1D0+2D0*RM1)*BE34
19903 HGZ(2,IMDM)=HGZ(2,IMDM)+FCOF*EF*VF*(1D0+2D0*RM1)*BE34
19904 HGZ(3,IMDM)=HGZ(3,IMDM)+FCOF*(VF**2*(1D0+2D0*RM1)+
19905 & AF**2*(1D0-4D0*RM1))*BE34
19906 ENDIF
19907 ENDIF
19908 RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SQM4
19909 IF(4D0*RM1.LT.1D0) THEN
19910 FCOF=1D0
19911 IF(I.LE.8) FCOF=3D0*RADC4
19912 BE34=SQRT(MAX(0D0,1D0-4D0*RM1))
19913 IF(IMDM.GE.1) THEN
19914 HGZ(4,IMDM)=HGZ(4,IMDM)+FCOF*EF**2*(1D0+2D0*RM1)*BE34
19915 HGZ(5,IMDM)=HGZ(5,IMDM)+FCOF*EF*VF*(1D0+2D0*RM1)*BE34
19916 HGZ(6,IMDM)=HGZ(6,IMDM)+FCOF*(VF**2*(1D0+2D0*RM1)+
19917 & AF**2*(1D0-4D0*RM1))*BE34
19918 ENDIF
19919 ENDIF
19920 450 CONTINUE
19921
19922 HBW3=(1D0/PARU(1))*GMMZ/((SQM3-SQMZ)**2+GMMZ**2)
19923 HBW4=(1D0/PARU(1))*GMMZ/((SQM4-SQMZ)**2+GMMZ**2)
19924 MINT15=MINT(15)
19925 MINT(15)=1
19926 MINT(61)=1
19927 CALL PYWIDT(23,SQM3,WDTP,WDTE)
19928 MINT(15)=MINT15
19929 HFAEM=(PARU(108)/PARU(2))*(2D0/3D0)
19930 DO 460 J=1,3
19931 HGZ(1,J)=HGZ(1,J)*HFAEM*VINT(111)/SQM3
19932 HGZ(2,J)=HGZ(2,J)*HFAEM*VINT(112)/SQM3
19933 HGZ(3,J)=HGZ(3,J)*HFAEM*VINT(114)/SQM3
19934 460 CONTINUE
19935 MINT15=MINT(15)
19936 MINT(15)=1
19937 MINT(61)=1
19938 CALL PYWIDT(23,SQM4,WDTP,WDTE)
19939 MINT(15)=MINT15
19940 HFAEM=(PARU(108)/PARU(2))*(2D0/3D0)
19941 DO 470 J=1,3
19942 HGZ(4,J)=HGZ(4,J)*HFAEM*VINT(111)/SQM4
19943 HGZ(5,J)=HGZ(5,J)*HFAEM*VINT(112)/SQM4
19944 HGZ(6,J)=HGZ(6,J)*HFAEM*VINT(114)/SQM4
19945 470 CONTINUE
19946
19947 DO 490 I=MMINA,MMAXA
19948 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 490
19949 EI=KCHG(IABS(I),1)/3D0
19950 AI=SIGN(1D0,EI)
19951 VI=AI-4D0*EI*XWV
19952 VALI=VI-AI
19953 VARI=VI+AI
19954 FCOI=1D0
19955 IF(IABS(I).LE.10) FCOI=FACA/3D0
19956 DO 480 J=1,3
19957 HL3(J)=EI**2*HGZ(1,J)+EI*VALI*HGZ(2,J)+VALI**2*HGZ(3,J)
19958 HR3(J)=EI**2*HGZ(1,J)+EI*VARI*HGZ(2,J)+VARI**2*HGZ(3,J)
19959 HL4(J)=EI**2*HGZ(4,J)+EI*VALI*HGZ(5,J)+VALI**2*HGZ(6,J)
19960 HR4(J)=EI**2*HGZ(4,J)+EI*VARI*HGZ(5,J)+VARI**2*HGZ(6,J)
19961 480 CONTINUE
19962 FACLR=HL3(1)*HL4(1)+HL3(1)*(HL4(2)+HL4(3))+
19963 & HL4(1)*(HL3(2)+HL3(3))+HL3(2)*HL4(3)+HL4(2)*HL3(3)+
19964 & HR3(1)*HR4(1)+HR3(1)*(HR4(2)+HR4(3))+
19965 & HR4(1)*(HR3(2)+HR3(3))+HR3(2)*HR4(3)+HR4(2)*HR3(3)
19966 NCHN=NCHN+1
19967 ISIG(NCHN,1)=I
19968 ISIG(NCHN,2)=-I
19969 ISIG(NCHN,3)=1
19970 SIGH(NCHN)=0.5D0*FACZZ*FCOI*FACLR/(HBW3*HBW4)
19971 490 CONTINUE
19972
19973 ELSEIF(ISUB.EQ.23) THEN
19974
19975 FACZW=COMFAC*0.5D0*(AEM/XW)**2
19976 FACZW=FACZW*WIDS(23,2)
19977 THUH=MAX(TH*UH-SQM3*SQM4,SH*CKIN(3)**2)
19978 FACBW=1D0/((SH-SQMW)**2+GMMW**2)
19979 DO 510 I=MMIN1,MMAX1
19980 IA=IABS(I)
19981 IF(I.EQ.0.OR.IA.GT.20.OR.KFAC(1,I).EQ.0) GOTO 510
19982 DO 500 J=MMIN2,MMAX2
19983 JA=IABS(J)
19984 IF(J.EQ.0.OR.JA.GT.20.OR.KFAC(2,J).EQ.0) GOTO 500
19985 IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 500
19986 IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
19987 & GOTO 500
19988 KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
19989 EI=KCHG(IA,1)/3D0
19990 AI=SIGN(1D0,EI+0.1D0)
19991 VI=AI-4D0*EI*XWV
19992 EJ=KCHG(JA,1)/3D0
19993 AJ=SIGN(1D0,EJ+0.1D0)
19994 VJ=AJ-4D0*EJ*XWV
19995 IF(VI+AI.GT.0) THEN
19996 VISAV=VI
19997 AISAV=AI
19998 VI=VJ
19999 AI=AJ
20000 VJ=VISAV
20001 AJ=AISAV
20002 ENDIF
20003 FCKM=1D0
20004 IF(IA.LE.10) FCKM=VCKM((IA+1)/2,(JA+1)/2)
20005 FCOI=1D0
20006 IF(IA.LE.10) FCOI=FACA/3D0
20007 NCHN=NCHN+1
20008 ISIG(NCHN,1)=I
20009 ISIG(NCHN,2)=J
20010 ISIG(NCHN,3)=1
20011 SIGH(NCHN)=FACZW*FCOI*FCKM*(FACBW*((9D0-8D0*XW)/4D0*THUH+
20012 & (8D0*XW-6D0)/4D0*SH*(SQM3+SQM4))+(THUH-SH*(SQM3+SQM4))*
20013 & (SH-SQMW)*FACBW*0.5D0*((VJ+AJ)/TH-(VI+AI)/UH)+
20014 & THUH/(16D0*XW1)*((VJ+AJ)**2/TH2+(VI+AI)**2/UH2)+
20015 & SH*(SQM3+SQM4)/(8D0*XW1)*(VI+AI)*(VJ+AJ)/(TH*UH))*
20016 & WIDS(24,(5-KCHW)/2)
20017
20018
20019 SIGH(NCHN)=MAX(0D0,SIGH(NCHN))
20020 500 CONTINUE
20021 510 CONTINUE
20022
20023 ELSEIF(ISUB.EQ.24) THEN
20024
20025 THUH=MAX(TH*UH-SQM3*SQM4,SH*CKIN(3)**2)
20026 FACHZ=COMFAC*8D0*(AEM*XWC)**2*
20027 & (THUH+2D0*SH*SQM3)/((SH-SQMZ)**2+GMMZ**2)
20028 FACHZ=FACHZ*WIDS(23,2)*WIDS(KFHIGG,2)
20029 IF(MSTP(4).GE.1.OR.IHIGG.GE.2) FACHZ=FACHZ*
20030 & PARU(154+10*IHIGG)**2
20031 DO 520 I=MMINA,MMAXA
20032 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 520
20033 EI=KCHG(IABS(I),1)/3D0
20034 AI=SIGN(1D0,EI)
20035 VI=AI-4D0*EI*XWV
20036 FCOI=1D0
20037 IF(IABS(I).LE.10) FCOI=FACA/3D0
20038 NCHN=NCHN+1
20039 ISIG(NCHN,1)=I
20040 ISIG(NCHN,2)=-I
20041 ISIG(NCHN,3)=1
20042 SIGH(NCHN)=FACHZ*FCOI*(VI**2+AI**2)
20043 520 CONTINUE
20044
20045 ELSEIF(ISUB.EQ.25) THEN
20046
20047
20048 GMMZC=GMMZ
20049 HBWZC=SH**2/((SH-SQMZ)**2+GMMZC**2)
20050 HBW3=GMMW/((SQM3-SQMW)**2+GMMW**2)
20051 CALL PYWIDT(24,SQM3,WDTP,WDTE)
20052 GMMW3=SQRT(SQM3)*WDTP(0)
20053 HBW3C=GMMW3/((SQM3-SQMW)**2+GMMW3**2)
20054 HBW4=GMMW/((SQM4-SQMW)**2+GMMW**2)
20055 CALL PYWIDT(24,SQM4,WDTP,WDTE)
20056 GMMW4=SQRT(SQM4)*WDTP(0)
20057 HBW4C=GMMW4/((SQM4-SQMW)**2+GMMW4**2)
20058
20059 THUH=MAX(TH*UH-SQM3*SQM4,SH*CKIN(3)**2)
20060 THUH34=(2D0*SH*(SQM3+SQM4)+THUH)/(SQM3*SQM4)
20061 GS=(((SH-SQM3-SQM4)**2-4D0*SQM3*SQM4)*THUH34+12D0*THUH)/SH2
20062 GT=THUH34+4D0*THUH/TH2
20063 GST=((SH-SQM3-SQM4)*THUH34+4D0*(SH*(SQM3+SQM4)-THUH)/TH)/SH
20064 GU=THUH34+4D0*THUH/UH2
20065 GSU=((SH-SQM3-SQM4)*THUH34+4D0*(SH*(SQM3+SQM4)-THUH)/UH)/SH
20066
20067 FACWW=COMFAC*(HBW3C/HBW3)*(HBW4C/HBW4)
20068 FACWW=FACWW*WIDS(24,1)
20069 CGG=AEM**2/2D0
20070 CGZ=AEM**2/(4D0*XW)*HBWZC*(1D0-SQMZ/SH)
20071 CZZ=AEM**2/(32D0*XW**2)*HBWZC
20072 CNG=AEM**2/(4D0*XW)
20073 CNZ=AEM**2/(16D0*XW**2)*HBWZC*(1D0-SQMZ/SH)
20074 CNN=AEM**2/(16D0*XW**2)
20075
20076 IF(MSTP(40).GE.1.AND.MSTP(40).LE.3) THEN
20077 COULE=(SH-4D0*SQMW)/(4D0*PMAS(24,1))
20078 COULP=MAX(1D-10,0.5D0*BE34*SQRT(SH))
20079 IF(COULE.LT.100D0*PMAS(24,2)) THEN
20080 COULP1=SQRT(0.5D0*PMAS(24,1)*(SQRT(COULE**2+
20081 & PMAS(24,2)**2)-COULE))
20082 ELSE
20083 COULP1=SQRT(0.5D0*PMAS(24,1)*(0.5D0*PMAS(24,2)**2/COULE))
20084 ENDIF
20085 IF(COULE.GT.-100D0*PMAS(24,2)) THEN
20086 COULP2=SQRT(0.5D0*PMAS(24,1)*(SQRT(COULE**2+
20087 & PMAS(24,2)**2)+COULE))
20088 ELSE
20089 COULP2=SQRT(0.5D0*PMAS(24,1)*(0.5D0*PMAS(24,2)**2/
20090 & ABS(COULE)))
20091 ENDIF
20092 IF(MSTP(40).EQ.1) THEN
20093 COULDC=PARU(1)-2D0*ATAN((COULP1**2+COULP2**2-COULP**2)/
20094 & MAX(1D-10,2D0*COULP*COULP1))
20095 FACCOU=1D0+0.5D0*PARU(101)*COULDC/MAX(1D-5,BE34)
20096 ELSEIF(MSTP(40).EQ.2) THEN
20097 COULCK=CMPLX(SNGL(COULP1),SNGL(COULP2))
20098 COULCP=CMPLX(0.,SNGL(COULP))
20099 COULCD=(COULCK+COULCP)/(COULCK-COULCP)
20100 COULCR=1.+SNGL(PARU(101)*SQRT(SH))/(4.*COULCP)*LOG(COULCD)
20101 COULCS=CMPLX(0.,0.)
20102 NSTP=100
20103 DO 530 ISTP=1,NSTP
20104 COULXX=(ISTP-0.5)/NSTP
20105 COULCS=COULCS+(1./COULXX)*LOG((1.+COULXX*COULCD)/
20106 & (1.+COULXX/COULCD))
20107 530 CONTINUE
20108 COULCR=COULCR+SNGL(PARU(101)**2*SH)/(16.*COULCP*COULCK)*
20109 & (COULCS/NSTP)
20110 FACCOU=ABS(COULCR)**2
20111 ELSEIF(MSTP(40).EQ.3) THEN
20112 COULDC=PARU(1)-2D0*(1D0-BE34)**2*ATAN((COULP1**2+
20113 & COULP2**2-COULP**2)/MAX(1D-10,2D0*COULP*COULP1))
20114 FACCOU=1D0+0.5D0*PARU(101)*COULDC/MAX(1D-5,BE34)
20115 ENDIF
20116 ELSEIF(MSTP(40).EQ.4) THEN
20117 FACCOU=1D0+0.5D0*PARU(101)*PARU(1)/MAX(1D-5,BE34)
20118 ELSE
20119 FACCOU=1D0
20120 ENDIF
20121 VINT(95)=FACCOU
20122 FACWW=FACWW*FACCOU
20123
20124 DO 540 I=MMINA,MMAXA
20125 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 540
20126 EI=KCHG(IABS(I),1)/3D0
20127 AI=SIGN(1D0,EI+0.1D0)
20128 VI=AI-4D0*EI*XWV
20129 FCOI=1D0
20130 IF(IABS(I).LE.10) FCOI=FACA/3D0
20131 IF(AI.LT.0D0) THEN
20132 DSIGWW=(CGG*EI**2+CGZ*VI*EI+CZZ*(VI**2+AI**2))*GS+
20133 & (CNG*EI+CNZ*(VI+AI))*GST+CNN*GT
20134 ELSE
20135 DSIGWW=(CGG*EI**2+CGZ*VI*EI+CZZ*(VI**2+AI**2))*GS-
20136 & (CNG*EI+CNZ*(VI+AI))*GSU+CNN*GU
20137 ENDIF
20138 NCHN=NCHN+1
20139 ISIG(NCHN,1)=I
20140 ISIG(NCHN,2)=-I
20141 ISIG(NCHN,3)=1
20142 SIGH(NCHN)=FACWW*FCOI*DSIGWW
20143 540 CONTINUE
20144
20145 ELSEIF(ISUB.EQ.26) THEN
20146
20147 THUH=MAX(TH*UH-SQM3*SQM4,SH*CKIN(3)**2)
20148 FACHW=COMFAC*0.125D0*(AEM/XW)**2*(THUH+2D0*SH*SQM3)/
20149 & ((SH-SQMW)**2+GMMW**2)
20150 FACHW=FACHW*WIDS(KFHIGG,2)
20151 IF(MSTP(4).GE.1.OR.IHIGG.GE.2) FACHW=FACHW*
20152 & PARU(155+10*IHIGG)**2
20153 DO 560 I=MMIN1,MMAX1
20154 IA=IABS(I)
20155 IF(I.EQ.0.OR.IA.GT.20.OR.KFAC(1,I).EQ.0) GOTO 560
20156 DO 550 J=MMIN2,MMAX2
20157 JA=IABS(J)
20158 IF(J.EQ.0.OR.JA.GT.20.OR.KFAC(1,J).EQ.0) GOTO 550
20159 IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 550
20160 IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
20161 & GOTO 550
20162 KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
20163 FCKM=1D0
20164 IF(IA.LE.10) FCKM=VCKM((IA+1)/2,(JA+1)/2)
20165 FCOI=1D0
20166 IF(IA.LE.10) FCOI=FACA/3D0
20167 NCHN=NCHN+1
20168 ISIG(NCHN,1)=I
20169 ISIG(NCHN,2)=J
20170 ISIG(NCHN,3)=1
20171 SIGH(NCHN)=FACHW*FCOI*FCKM*WIDS(24,(5-KCHW)/2)
20172 550 CONTINUE
20173 560 CONTINUE
20174
20175 ELSEIF(ISUB.EQ.27) THEN
20176
20177
20178 ELSEIF(ISUB.EQ.28) THEN
20179
20180 FACQG1=COMFAC*AS**2*4D0/9D0*((2D0+MSTP(34)*1D0/4D0)*UH2/TH2-
20181 & UH/SH)*FACA
20182 FACQG2=COMFAC*AS**2*4D0/9D0*((2D0+MSTP(34)*1D0/4D0)*SH2/TH2-
20183 & SH/UH)
20184 DO 580 I=MMINA,MMAXA
20185 IF(I.EQ.0.OR.IABS(I).GT.10) GOTO 580
20186 DO 570 ISDE=1,2
20187 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 570
20188 IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 570
20189 NCHN=NCHN+1
20190 ISIG(NCHN,ISDE)=I
20191 ISIG(NCHN,3-ISDE)=21
20192 ISIG(NCHN,3)=1
20193 SIGH(NCHN)=FACQG1
20194 NCHN=NCHN+1
20195 ISIG(NCHN,ISDE)=I
20196 ISIG(NCHN,3-ISDE)=21
20197 ISIG(NCHN,3)=2
20198 SIGH(NCHN)=FACQG2
20199 570 CONTINUE
20200 580 CONTINUE
20201
20202 ELSEIF(ISUB.EQ.29) THEN
20203
20204 FGQ=COMFAC*FACA*AS*AEM*1D0/3D0*(SH2+UH2)/(-SH*UH)
20205 DO 600 I=MMINA,MMAXA
20206 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58)) GOTO 600
20207 EI=KCHG(IABS(I),1)/3D0
20208 FACGQ=FGQ*EI**2
20209 DO 590 ISDE=1,2
20210 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 590
20211 IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 590
20212 NCHN=NCHN+1
20213 ISIG(NCHN,ISDE)=I
20214 ISIG(NCHN,3-ISDE)=21
20215 ISIG(NCHN,3)=1
20216 SIGH(NCHN)=FACGQ
20217 590 CONTINUE
20218 600 CONTINUE
20219
20220 ELSEIF(ISUB.EQ.30) THEN
20221
20222 FZQ=COMFAC*FACA*AS*AEM*(1D0/3D0)*(SH2+UH2+2D0*SQM4*TH)/
20223 & (-SH*UH)
20224
20225 HFGG=0D0
20226 HFGZ=0D0
20227 HFZZ=0D0
20228 RADC4=1D0+PYALPS(SQM4)/PARU(1)
20229 DO 610 I=1,MIN(16,MDCY(23,3))
20230 IDC=I+MDCY(23,2)-1
20231 IF(MDME(IDC,1).LT.0) GOTO 610
20232 IMDM=0
20233 IF(MDME(IDC,1).EQ.1.OR.MDME(IDC,1).EQ.2.OR.MDME(IDC,1).EQ.4)
20234 & IMDM=1
20235 IF(I.LE.8) THEN
20236 EF=KCHG(I,1)/3D0
20237 AF=SIGN(1D0,EF+0.1D0)
20238 VF=AF-4D0*EF*XWV
20239 ELSEIF(I.LE.16) THEN
20240 EF=KCHG(I+2,1)/3D0
20241 AF=SIGN(1D0,EF+0.1D0)
20242 VF=AF-4D0*EF*XWV
20243 ENDIF
20244 RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SQM4
20245 IF(4D0*RM1.LT.1D0) THEN
20246 FCOF=1D0
20247 IF(I.LE.8) FCOF=3D0*RADC4
20248 BE34=SQRT(MAX(0D0,1D0-4D0*RM1))
20249 IF(IMDM.EQ.1) THEN
20250 HFGG=HFGG+FCOF*EF**2*(1D0+2D0*RM1)*BE34
20251 HFGZ=HFGZ+FCOF*EF*VF*(1D0+2D0*RM1)*BE34
20252 HFZZ=HFZZ+FCOF*(VF**2*(1D0+2D0*RM1)+
20253 & AF**2*(1D0-4D0*RM1))*BE34
20254 ENDIF
20255 ENDIF
20256 610 CONTINUE
20257
20258 HBW4=(1D0/PARU(1))*GMMZ/((SQM4-SQMZ)**2+GMMZ**2)
20259 MINT15=MINT(15)
20260 MINT(15)=1
20261 MINT(61)=1
20262 CALL PYWIDT(23,SQM4,WDTP,WDTE)
20263 MINT(15)=MINT15
20264 HFAEM=(PARU(108)/PARU(2))*(2D0/3D0)
20265 HFGG=HFGG*HFAEM*VINT(111)/SQM4
20266 HFGZ=HFGZ*HFAEM*VINT(112)/SQM4
20267 HFZZ=HFZZ*HFAEM*VINT(114)/SQM4
20268
20269 DO 630 I=MMINA,MMAXA
20270 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58)) GOTO 630
20271 EI=KCHG(IABS(I),1)/3D0
20272 AI=SIGN(1D0,EI)
20273 VI=AI-4D0*EI*XWV
20274 FACZQ=FZQ*(EI**2*HFGG+EI*VI*HFGZ+
20275 & (VI**2+AI**2)*HFZZ)/HBW4
20276 DO 620 ISDE=1,2
20277 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 620
20278 IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 620
20279 NCHN=NCHN+1
20280 ISIG(NCHN,ISDE)=I
20281 ISIG(NCHN,3-ISDE)=21
20282 ISIG(NCHN,3)=1
20283 SIGH(NCHN)=FACZQ
20284 620 CONTINUE
20285 630 CONTINUE
20286 ENDIF
20287
20288 ELSEIF(ISUB.LE.40) THEN
20289 IF(ISUB.EQ.31) THEN
20290
20291 FACWQ=COMFAC*FACA*AS*AEM/XW*1D0/12D0*
20292 & (SH2+UH2+2D0*SQM4*TH)/(-SH*UH)
20293
20294 HBW4=GMMW/((SQM4-SQMW)**2+GMMW**2)
20295 CALL PYWIDT(24,SQM4,WDTP,WDTE)
20296 GMMWC=SQRT(SQM4)*WDTP(0)
20297 HBW4C=GMMWC/((SQM4-SQMW)**2+GMMWC**2)
20298 FACWQ=FACWQ*HBW4C/HBW4
20299 DO 650 I=MMINA,MMAXA
20300 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58)) GOTO 650
20301 IA=IABS(I)
20302 KCHW=ISIGN(1,KCHG(IA,1)*ISIGN(1,I))
20303 WIDSC=(WDTE(0,1)+WDTE(0,(5-KCHW)/2)+WDTE(0,4))/WDTP(0)
20304 DO 640 ISDE=1,2
20305 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 640
20306 IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 640
20307 NCHN=NCHN+1
20308 ISIG(NCHN,ISDE)=I
20309 ISIG(NCHN,3-ISDE)=21
20310 ISIG(NCHN,3)=1
20311 SIGH(NCHN)=FACWQ*VINT(180+I)*WIDSC
20312 640 CONTINUE
20313 650 CONTINUE
20314
20315 ELSEIF(ISUB.EQ.32) THEN
20316
20317 SQMHC=PMAS(25,1)**2
20318 FHCQ=COMFAC*FACA*AS*AEM/XW*1D0/24D0
20319 DO 651 I=MMINA,MMAXA
20320 IA=IABS(I)
20321 IF(IA.NE.5) GOTO 651
20322 SQML=PMAS(IA,1)**2
20323 IF(IA.LE.10.AND.MSTP(37).EQ.1.AND.MSTP(2).GE.1) SQML=SQML*
20324 & (LOG(MAX(4D0,PARP(37)**2*SQML/PARU(117)**2))/
20325 & LOG(MAX(4D0,SH/PARU(117)**2)))**(24D0/(33D0-2D0*MSTU(118)))
20326 IUA=IA+MOD(IA,2)
20327 SQMQ=SQML
20328 FACHCQ=FHCQ*SQML/SQMW*
20329 & (SH/(SQMQ-UH)+2D0*SQMQ*(SQMHC-UH)/(SQMQ-UH)**2+(SQMQ-UH)/SH+
20330 & 2D0*SQMQ/(SQMQ-UH)+2D0*(SQMHC-UH)/(SQMQ-UH)*
20331 & (SQMHC-SQMQ-SH)/SH)
20332 KCHHC=ISIGN(1,KCHG(IA,1)*ISIGN(1,I))
20333 DO 641 ISDE=1,2
20334 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 641
20335 IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,1).EQ.0) GOTO 641
20336 NCHN=NCHN+1
20337 ISIG(NCHN,ISDE)=I
20338 ISIG(NCHN,3-ISDE)=21
20339 ISIG(NCHN,3)=1
20340 SIGH(NCHN)=FACHCQ*WIDS(37,(5-KCHHC)/2)
20341 641 CONTINUE
20342 651 CONTINUE
20343
20344 ELSEIF(ISUB.EQ.33) THEN
20345
20346 FGQ=COMFAC*AS*AEM*8D0/3D0*(SH2+UH2)/(-SH*UH)
20347 DO 670 I=MMINA,MMAXA
20348 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58)) GOTO 670
20349 EI=KCHG(IABS(I),1)/3D0
20350 FACGQ=FGQ*EI**2
20351 DO 660 ISDE=1,2
20352 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,22).EQ.0) GOTO 660
20353 IF(ISDE.EQ.2.AND.KFAC(1,22)*KFAC(2,I).EQ.0) GOTO 660
20354 NCHN=NCHN+1
20355 ISIG(NCHN,ISDE)=I
20356 ISIG(NCHN,3-ISDE)=22
20357 ISIG(NCHN,3)=1
20358 SIGH(NCHN)=FACGQ
20359 660 CONTINUE
20360 670 CONTINUE
20361
20362 ELSEIF(ISUB.EQ.34) THEN
20363
20364 FGQ=COMFAC*AEM**2*2D0*(SH2+UH2)/(-SH*UH)
20365 DO 690 I=MMINA,MMAXA
20366 IF(I.EQ.0) GOTO 690
20367 EI=KCHG(IABS(I),1)/3D0
20368 FACGQ=FGQ*EI**4
20369 DO 680 ISDE=1,2
20370 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,22).EQ.0) GOTO 680
20371 IF(ISDE.EQ.2.AND.KFAC(1,22)*KFAC(2,I).EQ.0) GOTO 680
20372 NCHN=NCHN+1
20373 ISIG(NCHN,ISDE)=I
20374 ISIG(NCHN,3-ISDE)=22
20375 ISIG(NCHN,3)=1
20376 SIGH(NCHN)=FACGQ
20377 680 CONTINUE
20378 690 CONTINUE
20379
20380 ELSEIF(ISUB.EQ.35) THEN
20381
20382 IF(MINT(15).EQ.22.AND.VINT(3).LT.0D0) THEN
20383 FZQN=SH2+UH2+2D0*(SQM4-VINT(3)**2)*TH
20384 FZQDTM=VINT(3)**2*SQM4-SH*(UH-VINT(4)**2)
20385 ELSEIF(MINT(16).EQ.22.AND.VINT(4).LT.0D0) THEN
20386 FZQN=SH2+UH2+2D0*(SQM4-VINT(4)**2)*TH
20387 FZQDTM=VINT(4)**2*SQM4-SH*(UH-VINT(3)**2)
20388 ELSE
20389 FZQN=SH2+UH2+2D0*SQM4*TH
20390 FZQDTM=-SH*UH
20391 ENDIF
20392 FZQN=COMFAC*2D0*AEM**2*MAX(0D0,FZQN)
20393
20394 HFGG=0D0
20395 HFGZ=0D0
20396 HFZZ=0D0
20397 RADC4=1D0+PYALPS(SQM4)/PARU(1)
20398 DO 700 I=1,MIN(16,MDCY(23,3))
20399 IDC=I+MDCY(23,2)-1
20400 IF(MDME(IDC,1).LT.0) GOTO 700
20401 IMDM=0
20402 IF(MDME(IDC,1).EQ.1.OR.MDME(IDC,1).EQ.2.OR.MDME(IDC,1).EQ.4)
20403 & IMDM=1
20404 IF(I.LE.8) THEN
20405 EF=KCHG(I,1)/3D0
20406 AF=SIGN(1D0,EF+0.1D0)
20407 VF=AF-4D0*EF*XWV
20408 ELSEIF(I.LE.16) THEN
20409 EF=KCHG(I+2,1)/3D0
20410 AF=SIGN(1D0,EF+0.1D0)
20411 VF=AF-4D0*EF*XWV
20412 ENDIF
20413 RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SQM4
20414 IF(4D0*RM1.LT.1D0) THEN
20415 FCOF=1D0
20416 IF(I.LE.8) FCOF=3D0*RADC4
20417 BE34=SQRT(MAX(0D0,1D0-4D0*RM1))
20418 IF(IMDM.EQ.1) THEN
20419 HFGG=HFGG+FCOF*EF**2*(1D0+2D0*RM1)*BE34
20420 HFGZ=HFGZ+FCOF*EF*VF*(1D0+2D0*RM1)*BE34
20421 HFZZ=HFZZ+FCOF*(VF**2*(1D0+2D0*RM1)+
20422 & AF**2*(1D0-4D0*RM1))*BE34
20423 ENDIF
20424 ENDIF
20425 700 CONTINUE
20426
20427 HBW4=(1D0/PARU(1))*GMMZ/((SQM4-SQMZ)**2+GMMZ**2)
20428 MINT15=MINT(15)
20429 MINT(15)=1
20430 MINT(61)=1
20431 CALL PYWIDT(23,SQM4,WDTP,WDTE)
20432 MINT(15)=MINT15
20433 HFAEM=(PARU(108)/PARU(2))*(2D0/3D0)
20434 HFGG=HFGG*HFAEM*VINT(111)/SQM4
20435 HFGZ=HFGZ*HFAEM*VINT(112)/SQM4
20436 HFZZ=HFZZ*HFAEM*VINT(114)/SQM4
20437
20438 DO 720 I=MMINA,MMAXA
20439 IF(I.EQ.0) GOTO 720
20440 EI=KCHG(IABS(I),1)/3D0
20441 AI=SIGN(1D0,EI)
20442 VI=AI-4D0*EI*XWV
20443 FACZQ=EI**2*(EI**2*HFGG+EI*VI*HFGZ+
20444 & (VI**2+AI**2)*HFZZ)/HBW4
20445 FZQD=MAX(PMAS(IABS(I),1)**2*SQM4,FZQDTM)
20446 DO 710 ISDE=1,2
20447 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,22).EQ.0) GOTO 710
20448 IF(ISDE.EQ.2.AND.KFAC(1,22)*KFAC(2,I).EQ.0) GOTO 710
20449 NCHN=NCHN+1
20450 ISIG(NCHN,ISDE)=I
20451 ISIG(NCHN,3-ISDE)=22
20452 ISIG(NCHN,3)=1
20453 SIGH(NCHN)=FACZQ*FZQN/FZQD
20454 710 CONTINUE
20455 720 CONTINUE
20456
20457 ELSEIF(ISUB.EQ.36) THEN
20458
20459 FWQ=COMFAC*AEM**2/(2D0*XW)*
20460 & (SH2+UH2+2D0*SQM4*TH)/(SQPTH*SQM4-SH*UH)
20461
20462 HBW4=GMMW/((SQM4-SQMW)**2+GMMW**2)
20463 CALL PYWIDT(24,SQM4,WDTP,WDTE)
20464 GMMWC=SQRT(SQM4)*WDTP(0)
20465 HBW4C=GMMWC/((SQM4-SQMW)**2+GMMWC**2)
20466 FWQ=FWQ*HBW4C/HBW4
20467 DO 740 I=MMINA,MMAXA
20468 IF(I.EQ.0) GOTO 740
20469 IA=IABS(I)
20470 EIA=ABS(KCHG(IABS(I),1)/3D0)
20471 FACWQ=FWQ*(EIA-SH/(SH+UH))**2
20472 KCHW=ISIGN(1,KCHG(IA,1)*ISIGN(1,I))
20473 WIDSC=(WDTE(0,1)+WDTE(0,(5-KCHW)/2)+WDTE(0,4))/WDTP(0)
20474 DO 730 ISDE=1,2
20475 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,22).EQ.0) GOTO 730
20476 IF(ISDE.EQ.2.AND.KFAC(1,22)*KFAC(2,I).EQ.0) GOTO 730
20477 NCHN=NCHN+1
20478 ISIG(NCHN,ISDE)=I
20479 ISIG(NCHN,3-ISDE)=22
20480 ISIG(NCHN,3)=1
20481 SIGH(NCHN)=FACWQ*VINT(180+I)*WIDSC
20482 730 CONTINUE
20483 740 CONTINUE
20484
20485 ELSEIF(ISUB.EQ.37) THEN
20486
20487
20488 ELSEIF(ISUB.EQ.38) THEN
20489
20490
20491 ELSEIF(ISUB.EQ.39) THEN
20492
20493
20494 ELSEIF(ISUB.EQ.40) THEN
20495
20496 ENDIF
20497
20498 ELSEIF(ISUB.LE.50) THEN
20499 IF(ISUB.EQ.41) THEN
20500
20501
20502 ELSEIF(ISUB.EQ.42) THEN
20503
20504
20505 ELSEIF(ISUB.EQ.43) THEN
20506
20507
20508 ELSEIF(ISUB.EQ.44) THEN
20509
20510
20511 ELSEIF(ISUB.EQ.45) THEN
20512
20513
20514 ELSEIF(ISUB.EQ.46) THEN
20515
20516
20517 ELSEIF(ISUB.EQ.47) THEN
20518
20519
20520 ELSEIF(ISUB.EQ.48) THEN
20521
20522
20523 ELSEIF(ISUB.EQ.49) THEN
20524
20525
20526 ELSEIF(ISUB.EQ.50) THEN
20527
20528 ENDIF
20529
20530 ELSEIF(ISUB.LE.60) THEN
20531 IF(ISUB.EQ.51) THEN
20532
20533
20534 ELSEIF(ISUB.EQ.52) THEN
20535
20536
20537 ELSEIF(ISUB.EQ.53) THEN
20538
20539 CALL PYWIDT(21,SH,WDTP,WDTE)
20540 FACQQ1=COMFAC*AS**2*1D0/6D0*(UH/TH-(2D0+MSTP(34)*1D0/4D0)*
20541 & UH2/SH2)*(WDTE(0,1)+WDTE(0,2)+WDTE(0,3)+WDTE(0,4))*FACA
20542 FACQQ2=COMFAC*AS**2*1D0/6D0*(TH/UH-(2D0+MSTP(34)*1D0/4D0)*
20543 & TH2/SH2)*(WDTE(0,1)+WDTE(0,2)+WDTE(0,3)+WDTE(0,4))*FACA
20544 IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 750
20545 NCHN=NCHN+1
20546 ISIG(NCHN,1)=21
20547 ISIG(NCHN,2)=21
20548 ISIG(NCHN,3)=1
20549 SIGH(NCHN)=FACQQ1
20550 NCHN=NCHN+1
20551 ISIG(NCHN,1)=21
20552 ISIG(NCHN,2)=21
20553 ISIG(NCHN,3)=2
20554 SIGH(NCHN)=FACQQ2
20555 750 CONTINUE
20556
20557 ELSEIF(ISUB.EQ.54) THEN
20558
20559 CALL PYWIDT(21,SH,WDTP,WDTE)
20560 WDTESU=0D0
20561 DO 760 I=1,MIN(8,MDCY(21,3))
20562 EF=KCHG(I,1)/3D0
20563 WDTESU=WDTESU+EF**2*(WDTE(I,1)+WDTE(I,2)+WDTE(I,3)+
20564 & WDTE(I,4))
20565 760 CONTINUE
20566 FACQQ=COMFAC*AEM*AS*WDTESU*(TH2+UH2)/(TH*UH)
20567 IF(KFAC(1,21)*KFAC(2,22).NE.0) THEN
20568 NCHN=NCHN+1
20569 ISIG(NCHN,1)=21
20570 ISIG(NCHN,2)=22
20571 ISIG(NCHN,3)=1
20572 SIGH(NCHN)=FACQQ
20573 ENDIF
20574 IF(KFAC(1,22)*KFAC(2,21).NE.0) THEN
20575 NCHN=NCHN+1
20576 ISIG(NCHN,1)=22
20577 ISIG(NCHN,2)=21
20578 ISIG(NCHN,3)=1
20579 SIGH(NCHN)=FACQQ
20580 ENDIF
20581
20582 ELSEIF(ISUB.EQ.55) THEN
20583
20584
20585 ELSEIF(ISUB.EQ.56) THEN
20586
20587
20588 ELSEIF(ISUB.EQ.57) THEN
20589
20590
20591 ELSEIF(ISUB.EQ.58) THEN
20592
20593 CALL PYWIDT(22,SH,WDTP,WDTE)
20594 WDTESU=0D0
20595 DO 770 I=1,MIN(12,MDCY(22,3))
20596 IF(I.LE.8) EF= KCHG(I,1)/3D0
20597 IF(I.GE.9) EF= KCHG(9+2*(I-8),1)/3D0
20598 WDTESU=WDTESU+EF**2*(WDTE(I,1)+WDTE(I,2)+WDTE(I,3)+
20599 & WDTE(I,4))
20600 770 CONTINUE
20601 FACFF=COMFAC*AEM**2*WDTESU*2D0*(TH2+UH2)/(TH*UH)
20602 IF(KFAC(1,22)*KFAC(2,22).NE.0) THEN
20603 NCHN=NCHN+1
20604 ISIG(NCHN,1)=22
20605 ISIG(NCHN,2)=22
20606 ISIG(NCHN,3)=1
20607 SIGH(NCHN)=FACFF
20608 ENDIF
20609
20610 ELSEIF(ISUB.EQ.59) THEN
20611
20612
20613 ELSEIF(ISUB.EQ.60) THEN
20614
20615 ENDIF
20616
20617 ELSEIF(ISUB.LE.70) THEN
20618 IF(ISUB.EQ.61) THEN
20619
20620
20621 ELSEIF(ISUB.EQ.62) THEN
20622
20623
20624 ELSEIF(ISUB.EQ.63) THEN
20625
20626
20627 ELSEIF(ISUB.EQ.64) THEN
20628
20629
20630 ELSEIF(ISUB.EQ.65) THEN
20631
20632
20633 ELSEIF(ISUB.EQ.66) THEN
20634
20635
20636 ELSEIF(ISUB.EQ.67) THEN
20637
20638
20639 ELSEIF(ISUB.EQ.68) THEN
20640
20641 FACGG1=COMFAC*AS**2*9D0/4D0*(SH2/TH2+2D0*SH/TH+3D0+2D0*TH/SH+
20642 & TH2/SH2)*FACA
20643 FACGG2=COMFAC*AS**2*9D0/4D0*(UH2/SH2+2D0*UH/SH+3D0+2D0*SH/UH+
20644 & SH2/UH2)*FACA
20645 FACGG3=COMFAC*AS**2*9D0/4D0*(TH2/UH2+2D0*TH/UH+3D0+2D0*UH/TH+
20646 & UH2/TH2)
20647 IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 780
20648 NCHN=NCHN+1
20649 ISIG(NCHN,1)=21
20650 ISIG(NCHN,2)=21
20651 ISIG(NCHN,3)=1
20652 SIGH(NCHN)=0.5D0*FACGG1
20653 NCHN=NCHN+1
20654 ISIG(NCHN,1)=21
20655 ISIG(NCHN,2)=21
20656 ISIG(NCHN,3)=2
20657 SIGH(NCHN)=0.5D0*FACGG2
20658 NCHN=NCHN+1
20659 ISIG(NCHN,1)=21
20660 ISIG(NCHN,2)=21
20661 ISIG(NCHN,3)=3
20662 SIGH(NCHN)=0.5D0*FACGG3
20663 780 CONTINUE
20664
20665 ELSEIF(ISUB.EQ.69) THEN
20666
20667 SQMWE=MAX(0.5D0*SQMW,SQRT(SQM3*SQM4))
20668 FPROP=SH2/((SQMWE-TH)*(SQMWE-UH))
20669 FACWW=COMFAC*6D0*AEM**2*(1D0-FPROP*(4D0/3D0+2D0*SQMWE/SH)+
20670 & FPROP**2*(2D0/3D0+2D0*(SQMWE/SH)**2))*WIDS(24,1)
20671 IF(KFAC(1,22)*KFAC(2,22).EQ.0) GOTO 790
20672 NCHN=NCHN+1
20673 ISIG(NCHN,1)=22
20674 ISIG(NCHN,2)=22
20675 ISIG(NCHN,3)=1
20676 SIGH(NCHN)=FACWW
20677 790 CONTINUE
20678
20679 ELSEIF(ISUB.EQ.70) THEN
20680
20681 SQMWE=MAX(0.5D0*SQMW,SQRT(SQM3*SQM4))
20682 FPROP=(TH-SQMWE)**2/(-SH*(SQMWE-UH))
20683 FACZW=COMFAC*6D0*AEM**2*(XW1/XW)*
20684 & (1D0-FPROP*(4D0/3D0+2D0*SQMWE/(TH-SQMWE))+
20685 & FPROP**2*(2D0/3D0+2D0*(SQMWE/(TH-SQMWE))**2))*WIDS(23,2)
20686 DO 810 KCHW=1,-1,-2
20687 DO 800 ISDE=1,2
20688 IF(KFAC(ISDE,22)*KFAC(3-ISDE,24*KCHW).EQ.0) GOTO 800
20689 NCHN=NCHN+1
20690 ISIG(NCHN,ISDE)=22
20691 ISIG(NCHN,3-ISDE)=24*KCHW
20692 ISIG(NCHN,3)=1
20693 SIGH(NCHN)=FACZW*WIDS(24,(5-KCHW)/2)
20694 800 CONTINUE
20695 810 CONTINUE
20696 ENDIF
20697
20698 ELSEIF(ISUB.LE.80) THEN
20699 IF(ISUB.EQ.71) THEN
20700
20701 IF(SH.LE.4.01D0*SQMZ) GOTO 840
20702
20703 IF(MSTP(46).LE.2) THEN
20704
20705 BE2=1D0-4D0*SQMZ/SH
20706 TH=-0.5D0*SH*BE2*(1D0-CTH)
20707 UH=-0.5D0*SH*BE2*(1D0+CTH)
20708 IF(MAX(TH,UH).GT.-1D0) GOTO 840
20709 SHANG=1D0/XW1*SQMW/SQMZ*(1D0+BE2)**2
20710 ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG
20711 ASHIM=-GMMH/((SH-SQMH)**2+GMMH**2)*SHANG
20712 THANG=1D0/XW1*SQMW/SQMZ*(BE2-CTH)**2
20713 ATHRE=(TH-SQMH)/((TH-SQMH)**2+GMMH**2)*THANG
20714 ATHIM=-GMMH/((TH-SQMH)**2+GMMH**2)*THANG
20715 UHANG=1D0/XW1*SQMW/SQMZ*(BE2+CTH)**2
20716 AUHRE=(UH-SQMH)/((UH-SQMH)**2+GMMH**2)*UHANG
20717 AUHIM=-GMMH/((UH-SQMH)**2+GMMH**2)*UHANG
20718 FACZZ=COMFAC*1D0/(4096D0*PARU(1)**2*16D0*XW1**2)*
20719 & (AEM/XW)**4*(SH/SQMW)**2*(SQMZ/SQMW)*SH2
20720 IF(MSTP(46).LE.0) FACZZ=FACZZ*(ASHRE**2+ASHIM**2)
20721 IF(MSTP(46).EQ.1) FACZZ=FACZZ*((ASHRE+ATHRE+AUHRE)**2+
20722 & (ASHIM+ATHIM+AUHIM)**2)
20723 IF(MSTP(46).EQ.2) FACZZ=0D0
20724
20725 ELSE
20726
20727 FACZZ=COMFAC*(AEM/(16D0*PARU(1)*XW*XW1))**2*(64D0/9D0)*
20728 & ABS(A00U+2.*A20U)**2
20729 ENDIF
20730 FACZZ=FACZZ*WIDS(23,1)
20731
20732 DO 830 I=MMIN1,MMAX1
20733 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 830
20734 EI=KCHG(IABS(I),1)/3D0
20735 AI=SIGN(1D0,EI)
20736 VI=AI-4D0*EI*XWV
20737 AVI=AI**2+VI**2
20738 DO 820 J=MMIN2,MMAX2
20739 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 820
20740 EJ=KCHG(IABS(J),1)/3D0
20741 AJ=SIGN(1D0,EJ)
20742 VJ=AJ-4D0*EJ*XWV
20743 AVJ=AJ**2+VJ**2
20744 NCHN=NCHN+1
20745 ISIG(NCHN,1)=I
20746 ISIG(NCHN,2)=J
20747 ISIG(NCHN,3)=1
20748 SIGH(NCHN)=0.5D0*FACZZ*AVI*AVJ
20749 820 CONTINUE
20750 830 CONTINUE
20751 840 CONTINUE
20752
20753 ELSEIF(ISUB.EQ.72) THEN
20754
20755 IF(SH.LE.4.01D0*SQMZ) GOTO 870
20756
20757 IF(MSTP(46).LE.2) THEN
20758
20759 BE2=SQRT((1D0-4D0*SQMW/SH)*(1D0-4D0*SQMZ/SH))
20760 CTH2=CTH**2
20761 TH=-0.5D0*SH*(1D0-2D0*(SQMW+SQMZ)/SH-BE2*CTH)
20762 UH=-0.5D0*SH*(1D0-2D0*(SQMW+SQMZ)/SH+BE2*CTH)
20763 IF(MAX(TH,UH).GT.-1D0) GOTO 870
20764 SHANG=4D0*SQRT(SQMW/(SQMZ*XW1))*(1D0-2D0*SQMW/SH)*
20765 & (1D0-2D0*SQMZ/SH)
20766 ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG
20767 ASHIM=-GMMH/((SH-SQMH)**2+GMMH**2)*SHANG
20768 ATWRE=XW1/SQMZ*SH/(TH-SQMW)*((CTH-BE2)**2*(3D0/2D0+BE2/2D0*
20769 & CTH-(SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4D0*
20770 & ((SQMW+SQMZ)/SH*(1D0-3D0*CTH2)+8D0*SQMW*SQMZ/SH2*
20771 & (2D0*CTH2-1D0)+4D0*(SQMW**2+SQMZ**2)/SH2*CTH2+
20772 & 2D0*(SQMW+SQMZ)/SH*BE2*CTH))
20773 ATWIM=0D0
20774 AUWRE=XW1/SQMZ*SH/(UH-SQMW)*((CTH+BE2)**2*(3D0/2D0-BE2/2D0*
20775 & CTH-(SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4D0*
20776 & ((SQMW+SQMZ)/SH*(1D0-3D0*CTH2)+8D0*SQMW*SQMZ/SH2*
20777 & (2D0*CTH2-1D0)+4D0*(SQMW**2+SQMZ**2)/SH2*CTH2-
20778 & 2D0*(SQMW+SQMZ)/SH*BE2*CTH))
20779 AUWIM=0D0
20780 A4RE=2D0*XW1/SQMZ*(3D0-CTH2-4D0*(SQMW+SQMZ)/SH)
20781 A4IM=0D0
20782 FACWW=COMFAC*1D0/(4096D0*PARU(1)**2*16D0*XW1**2)*
20783 & (AEM/XW)**4*(SH/SQMW)**2*(SQMZ/SQMW)*SH2
20784 IF(MSTP(46).LE.0) FACWW=FACWW*(ASHRE**2+ASHIM**2)
20785 IF(MSTP(46).EQ.1) FACWW=FACWW*((ASHRE+ATWRE+AUWRE+A4RE)**2+
20786 & (ASHIM+ATWIM+AUWIM+A4IM)**2)
20787 IF(MSTP(46).EQ.2) FACWW=FACWW*((ATWRE+AUWRE+A4RE)**2+
20788 & (ATWIM+AUWIM+A4IM)**2)
20789
20790 ELSE
20791
20792 FACWW=COMFAC*(AEM/(16D0*PARU(1)*XW*XW1))**2*(64D0/9D0)*
20793 & ABS(A00U-A20U)**2
20794 ENDIF
20795 FACWW=FACWW*WIDS(24,1)
20796
20797 DO 860 I=MMIN1,MMAX1
20798 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 860
20799 EI=KCHG(IABS(I),1)/3D0
20800 AI=SIGN(1D0,EI)
20801 VI=AI-4D0*EI*XWV
20802 AVI=AI**2+VI**2
20803 DO 850 J=MMIN2,MMAX2
20804 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 850
20805 EJ=KCHG(IABS(J),1)/3D0
20806 AJ=SIGN(1D0,EJ)
20807 VJ=AJ-4D0*EJ*XWV
20808 AVJ=AJ**2+VJ**2
20809 NCHN=NCHN+1
20810 ISIG(NCHN,1)=I
20811 ISIG(NCHN,2)=J
20812 ISIG(NCHN,3)=1
20813 SIGH(NCHN)=FACWW*AVI*AVJ
20814 850 CONTINUE
20815 860 CONTINUE
20816 870 CONTINUE
20817
20818 ELSEIF(ISUB.EQ.73) THEN
20819
20820 IF(SH.LE.2D0*SQMZ+2D0*SQMW) GOTO 900
20821
20822 IF(MSTP(46).LE.2) THEN
20823
20824 BE2=1D0-2D0*(SQMZ+SQMW)/SH+((SQMZ-SQMW)/SH)**2
20825 EP1=1D0-(SQMZ-SQMW)/SH
20826 EP2=1D0+(SQMZ-SQMW)/SH
20827 TH=-0.5D0*SH*BE2*(1D0-CTH)
20828 UH=(SQMZ-SQMW)**2/SH-0.5D0*SH*BE2*(1D0+CTH)
20829 IF(MAX(TH,UH).GT.-1D0) GOTO 900
20830 THANG=(BE2-EP1*CTH)*(BE2-EP2*CTH)
20831 ATHRE=(TH-SQMH)/((TH-SQMH)**2+GMMH**2)*THANG
20832 ATHIM=-GMMH/((TH-SQMH)**2+GMMH**2)*THANG
20833 ASWRE=-XW1/SQMZ*SH/(SH-SQMW)*(-BE2*(EP1+EP2)**4*CTH+
20834 & 1D0/4D0*(BE2+EP1*EP2)**2*((EP1-EP2)**2-4D0*BE2*CTH)+
20835 & 2D0*BE2*(BE2+EP1*EP2)*(EP1+EP2)**2*CTH-
20836 & 1D0/16D0*SH/SQMW*(EP1**2-EP2**2)**2*(BE2+EP1*EP2)**2)
20837 ASWIM=0D0
20838 AUWRE=XW1/SQMZ*SH/(UH-SQMW)*(-BE2*(EP2+EP1*CTH)*
20839 & (EP1+EP2*CTH)*(BE2+EP1*EP2)+BE2*(EP2+EP1*CTH)*
20840 & (BE2+EP1*EP2*CTH)*(2D0*EP2-EP2*CTH+EP1)-
20841 & BE2*(EP2+EP1*CTH)**2*(BE2-EP2**2*CTH)-1D0/8D0*
20842 & (BE2+EP1*EP2*CTH)**2*((EP1+EP2)**2+2D0*BE2*(1D0-CTH))+
20843 & 1D0/32D0*SH/SQMW*(BE2+EP1*EP2*CTH)**2*
20844 & (EP1**2-EP2**2)**2-BE2*(EP1+EP2*CTH)*(EP2+EP1*CTH)*
20845 & (BE2+EP1*EP2)+BE2*(EP1+EP2*CTH)*(BE2+EP1*EP2*CTH)*
20846 & (2D0*EP1-EP1*CTH+EP2)-BE2*(EP1+EP2*CTH)**2*
20847 & (BE2-EP1**2*CTH)-1D0/8D0*(BE2+EP1*EP2*CTH)**2*
20848 & ((EP1+EP2)**2+2D0*BE2*(1D0-CTH))+1D0/32D0*SH/SQMW*
20849 & (BE2+EP1*EP2*CTH)**2*(EP1**2-EP2**2)**2)
20850 AUWIM=0D0
20851 A4RE=XW1/SQMZ*(EP1**2*EP2**2*(CTH**2-1D0)-
20852 & 2D0*BE2*(EP1**2+EP2**2+EP1*EP2)*CTH-2D0*BE2*EP1*EP2)
20853 A4IM=0D0
20854 FACZW=COMFAC*1D0/(4096D0*PARU(1)**2*4D0*XW1)*(AEM/XW)**4*
20855 & (SH/SQMW)**2*SQRT(SQMZ/SQMW)*SH2
20856 IF(MSTP(46).LE.0) FACZW=0D0
20857 IF(MSTP(46).EQ.1) FACZW=FACZW*((ATHRE+ASWRE+AUWRE+A4RE)**2+
20858 & (ATHIM+ASWIM+AUWIM+A4IM)**2)
20859 IF(MSTP(46).EQ.2) FACZW=FACZW*((ASWRE+AUWRE+A4RE)**2+
20860 & (ASWIM+AUWIM+A4IM)**2)
20861
20862 ELSE
20863
20864 FACZW=COMFAC*AEM**2/(64D0*PARU(1)**2*XW**2*XW1)*16D0*
20865 & ABS(A20U+3.*A11U*SNGL(CTH))**2
20866 ENDIF
20867 FACZW=FACZW*WIDS(23,2)
20868
20869 DO 890 I=MMIN1,MMAX1
20870 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 890
20871 EI=KCHG(IABS(I),1)/3D0
20872 AI=SIGN(1D0,EI)
20873 VI=AI-4D0*EI*XWV
20874 AVI=AI**2+VI**2
20875 KCHWI=ISIGN(1,KCHG(IABS(I),1)*ISIGN(1,I))
20876 DO 880 J=MMIN2,MMAX2
20877 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 880
20878 EJ=KCHG(IABS(J),1)/3D0
20879 AJ=SIGN(1D0,EJ)
20880 VJ=AI-4D0*EJ*XWV
20881 AVJ=AJ**2+VJ**2
20882 KCHWJ=ISIGN(1,KCHG(IABS(J),1)*ISIGN(1,J))
20883 NCHN=NCHN+1
20884 ISIG(NCHN,1)=I
20885 ISIG(NCHN,2)=J
20886 ISIG(NCHN,3)=1
20887 SIGH(NCHN)=FACZW*AVI*VINT(180+J)*WIDS(24,(5-KCHWJ)/2)
20888 NCHN=NCHN+1
20889 ISIG(NCHN,1)=I
20890 ISIG(NCHN,2)=J
20891 ISIG(NCHN,3)=2
20892 SIGH(NCHN)=FACZW*VINT(180+I)*WIDS(24,(5-KCHWI)/2)*AVJ
20893 880 CONTINUE
20894 890 CONTINUE
20895 900 CONTINUE
20896
20897 ELSEIF(ISUB.EQ.75) THEN
20898
20899
20900 ELSEIF(ISUB.EQ.76) THEN
20901
20902 IF(SH.LE.4.01D0*SQMZ) GOTO 930
20903
20904 IF(MSTP(46).LE.2) THEN
20905
20906 BE2=SQRT((1D0-4D0*SQMW/SH)*(1D0-4D0*SQMZ/SH))
20907 CTH2=CTH**2
20908 TH=-0.5D0*SH*(1D0-2D0*(SQMW+SQMZ)/SH-BE2*CTH)
20909 UH=-0.5D0*SH*(1D0-2D0*(SQMW+SQMZ)/SH+BE2*CTH)
20910 IF(MAX(TH,UH).GT.-1D0) GOTO 930
20911 SHANG=4D0*SQRT(SQMW/(SQMZ*XW1))*(1D0-2D0*SQMW/SH)*
20912 & (1D0-2D0*SQMZ/SH)
20913 ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG
20914 ASHIM=-GMMH/((SH-SQMH)**2+GMMH**2)*SHANG
20915 ATWRE=XW1/SQMZ*SH/(TH-SQMW)*((CTH-BE2)**2*(3D0/2D0+BE2/2D0*
20916 & CTH-(SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4D0*
20917 & ((SQMW+SQMZ)/SH*(1D0-3D0*CTH2)+8D0*SQMW*SQMZ/SH2*
20918 & (2D0*CTH2-1D0)+4D0*(SQMW**2+SQMZ**2)/SH2*CTH2+
20919 & 2D0*(SQMW+SQMZ)/SH*BE2*CTH))
20920 ATWIM=0D0
20921 AUWRE=XW1/SQMZ*SH/(UH-SQMW)*((CTH+BE2)**2*(3D0/2D0-BE2/2D0*
20922 & CTH-(SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4D0*
20923 & ((SQMW+SQMZ)/SH*(1D0-3D0*CTH2)+8D0*SQMW*SQMZ/SH2*
20924 & (2D0*CTH2-1D0)+4D0*(SQMW**2+SQMZ**2)/SH2*CTH2-
20925 & 2D0*(SQMW+SQMZ)/SH*BE2*CTH))
20926 AUWIM=0D0
20927 A4RE=2D0*XW1/SQMZ*(3D0-CTH2-4D0*(SQMW+SQMZ)/SH)
20928 A4IM=0D0
20929 FACZZ=COMFAC*1D0/(4096D0*PARU(1)**2)*(AEM/XW)**4*
20930 & (SH/SQMW)**2*SH2
20931 IF(MSTP(46).LE.0) FACZZ=FACZZ*(ASHRE**2+ASHIM**2)
20932 IF(MSTP(46).EQ.1) FACZZ=FACZZ*((ASHRE+ATWRE+AUWRE+A4RE)**2+
20933 & (ASHIM+ATWIM+AUWIM+A4IM)**2)
20934 IF(MSTP(46).EQ.2) FACZZ=FACZZ*((ATWRE+AUWRE+A4RE)**2+
20935 & (ATWIM+AUWIM+A4IM)**2)
20936
20937 ELSE
20938
20939 FACZZ=COMFAC*(AEM/(4D0*PARU(1)*XW))**2*(64D0/9D0)*
20940 & ABS(A00U-A20U)**2
20941 ENDIF
20942 FACZZ=FACZZ*WIDS(23,1)
20943
20944 DO 920 I=MMIN1,MMAX1
20945 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 920
20946 EI=SIGN(1D0,DBLE(I))*KCHG(IABS(I),1)
20947 DO 910 J=MMIN2,MMAX2
20948 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 910
20949 EJ=SIGN(1D0,DBLE(J))*KCHG(IABS(J),1)
20950 IF(EI*EJ.GT.0D0) GOTO 910
20951 NCHN=NCHN+1
20952 ISIG(NCHN,1)=I
20953 ISIG(NCHN,2)=J
20954 ISIG(NCHN,3)=1
20955 SIGH(NCHN)=0.5D0*FACZZ*VINT(180+I)*VINT(180+J)
20956 910 CONTINUE
20957 920 CONTINUE
20958 930 CONTINUE
20959
20960 ELSEIF(ISUB.EQ.77) THEN
20961
20962 IF(SH.LE.4.01D0*SQMW) GOTO 960
20963
20964 IF(MSTP(46).LE.2) THEN
20965
20966 BE2=1D0-4D0*SQMW/SH
20967 BE4=BE2**2
20968 CTH2=CTH**2
20969 CTH3=CTH**3
20970 TH=-0.5D0*SH*BE2*(1D0-CTH)
20971 UH=-0.5D0*SH*BE2*(1D0+CTH)
20972 IF(MAX(TH,UH).GT.-1D0) GOTO 960
20973 SHANG=(1D0+BE2)**2
20974 ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG
20975 ASHIM=-GMMH/((SH-SQMH)**2+GMMH**2)*SHANG
20976 THANG=(BE2-CTH)**2
20977 ATHRE=(TH-SQMH)/((TH-SQMH)**2+GMMH**2)*THANG
20978 ATHIM=-GMMH/((TH-SQMH)**2+GMMH**2)*THANG
20979 UHANG=(BE2+CTH)**2
20980 AUHRE=(UH-SQMH)/((UH-SQMH)**2+GMMH**2)*UHANG
20981 AUHIM=-GMMH/((UH-SQMH)**2+GMMH**2)*UHANG
20982 SGZANG=1D0/SQMW*BE2*(3D0-BE2)**2*CTH
20983 ASGRE=XW*SGZANG
20984 ASGIM=0D0
20985 ASZRE=XW1*SH/(SH-SQMZ)*SGZANG
20986 ASZIM=0D0
20987 TGZANG=1D0/SQMW*(BE2*(4D0-2D0*BE2+BE4)+BE2*(4D0-10D0*BE2+
20988 & BE4)*CTH+(2D0-11D0*BE2+10D0*BE4)*CTH2+BE2*CTH3)
20989 ATGRE=0.5D0*XW*SH/TH*TGZANG
20990 ATGIM=0D0
20991 ATZRE=0.5D0*XW1*SH/(TH-SQMZ)*TGZANG
20992 ATZIM=0D0
20993 UGZANG=1D0/SQMW*(BE2*(4D0-2D0*BE2+BE4)-BE2*(4D0-10D0*BE2+
20994 & BE4)*CTH+(2D0-11D0*BE2+10D0*BE4)*CTH2-BE2*CTH3)
20995 AUGRE=0.5D0*XW*SH/UH*UGZANG
20996 AUGIM=0D0
20997 AUZRE=0.5D0*XW1*SH/(UH-SQMZ)*UGZANG
20998 AUZIM=0D0
20999 A4ARE=1D0/SQMW*(1D0+2D0*BE2-6D0*BE2*CTH-CTH2)
21000 A4AIM=0D0
21001 A4SRE=2D0/SQMW*(1D0+2D0*BE2-CTH2)
21002 A4SIM=0D0
21003 FWW=COMFAC*1D0/(4096D0*PARU(1)**2)*(AEM/XW)**4*
21004 & (SH/SQMW)**2*SH2
21005 IF(MSTP(46).LE.0) THEN
21006 AWWARE=ASHRE
21007 AWWAIM=ASHIM
21008 AWWSRE=0D0
21009 AWWSIM=0D0
21010 ELSEIF(MSTP(46).EQ.1) THEN
21011 AWWARE=ASHRE+ATHRE+ASGRE+ASZRE+ATGRE+ATZRE+A4ARE
21012 AWWAIM=ASHIM+ATHIM+ASGIM+ASZIM+ATGIM+ATZIM+A4AIM
21013 AWWSRE=-ATHRE-AUHRE+ATGRE+ATZRE+AUGRE+AUZRE+A4SRE
21014 AWWSIM=-ATHIM-AUHIM+ATGIM+ATZIM+AUGIM+AUZIM+A4SIM
21015 ELSE
21016 AWWARE=ASGRE+ASZRE+ATGRE+ATZRE+A4ARE
21017 AWWAIM=ASGIM+ASZIM+ATGIM+ATZIM+A4AIM
21018 AWWSRE=ATGRE+ATZRE+AUGRE+AUZRE+A4SRE
21019 AWWSIM=ATGIM+ATZIM+AUGIM+AUZIM+A4SIM
21020 ENDIF
21021 AWWA2=AWWARE**2+AWWAIM**2
21022 AWWS2=AWWSRE**2+AWWSIM**2
21023
21024 ELSE
21025
21026 FWWA=COMFAC*(AEM/(4D0*PARU(1)*XW))**2*(64D0/9D0)*
21027 & ABS(A00U+0.5*A20U+4.5*A11U*SNGL(CTH))**2
21028 FWWS=COMFAC*(AEM/(4D0*PARU(1)*XW))**2*64D0*ABS(A20U)**2
21029 ENDIF
21030
21031 DO 950 I=MMIN1,MMAX1
21032 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 950
21033 EI=SIGN(1D0,DBLE(I))*KCHG(IABS(I),1)
21034 DO 940 J=MMIN2,MMAX2
21035 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 940
21036 EJ=SIGN(1D0,DBLE(J))*KCHG(IABS(J),1)
21037 IF(EI*EJ.LT.0D0) THEN
21038
21039 IF(MSTP(45).EQ.1) GOTO 940
21040 IF(MSTP(46).LE.2) FACWW=FWW*AWWA2*WIDS(24,1)
21041 IF(MSTP(46).GE.3) FACWW=FWWA*WIDS(24,1)
21042 ELSE
21043
21044 IF(MSTP(45).EQ.2) GOTO 940
21045 IF(MSTP(46).LE.2) FACWW=FWW*AWWS2
21046 IF(MSTP(46).GE.3) FACWW=FWWS
21047 IF(EI.GT.0D0) FACWW=FACWW*WIDS(24,4)
21048 IF(EI.LT.0D0) FACWW=FACWW*WIDS(24,5)
21049 ENDIF
21050 NCHN=NCHN+1
21051 ISIG(NCHN,1)=I
21052 ISIG(NCHN,2)=J
21053 ISIG(NCHN,3)=1
21054 SIGH(NCHN)=FACWW*VINT(180+I)*VINT(180+J)
21055 IF(EI*EJ.GT.0D0) SIGH(NCHN)=0.5D0*SIGH(NCHN)
21056 940 CONTINUE
21057 950 CONTINUE
21058 960 CONTINUE
21059
21060 ELSEIF(ISUB.EQ.78) THEN
21061
21062
21063 ELSEIF(ISUB.EQ.79) THEN
21064
21065
21066 ELSEIF(ISUB.EQ.80) THEN
21067
21068 FQPI=COMFAC*(2D0*AEM/9D0)*(-SH/TH)*(1D0/SH2+1D0/TH2)
21069 ASSH=PYALPS(MAX(0.5D0,0.5D0*SH))
21070 Q2FPSH=0.55D0/LOG(MAX(2D0,2D0*SH))
21071 DELSH=UH*SQRT(ASSH*Q2FPSH)
21072 ASUH=PYALPS(MAX(0.5D0,-0.5D0*UH))
21073 Q2FPUH=0.55D0/LOG(MAX(2D0,-2D0*UH))
21074 DELUH=SH*SQRT(ASUH*Q2FPUH)
21075 DO 980 I=MAX(-2,MMINA),MIN(2,MMAXA)
21076 IF(I.EQ.0) GOTO 980
21077 EI=KCHG(IABS(I),1)/3D0
21078 EJ=SIGN(1D0-ABS(EI),EI)
21079 DO 970 ISDE=1,2
21080 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,22).EQ.0) GOTO 970
21081 IF(ISDE.EQ.2.AND.KFAC(1,22)*KFAC(2,I).EQ.0) GOTO 970
21082 NCHN=NCHN+1
21083 ISIG(NCHN,ISDE)=I
21084 ISIG(NCHN,3-ISDE)=22
21085 ISIG(NCHN,3)=1
21086 SIGH(NCHN)=FQPI*(EI*DELSH+EJ*DELUH)**2
21087 970 CONTINUE
21088 980 CONTINUE
21089
21090 ENDIF
21091
21092
21093
21094 ELSEIF(ISUB.LE.90) THEN
21095 IF(ISUB.EQ.81) THEN
21096
21097 SQMA=0.5D0*(SQM3+SQM4)-0.25D0*(SQM3-SQM4)**2/SH
21098 FACQQB=COMFAC*AS**2*4D0/9D0*(((TH-SQMA)**2+
21099 & (UH-SQMA)**2)/SH2+2D0*SQMA/SH)
21100 IF(MSTP(35).GE.1) FACQQB=FACQQB*PYHFTH(SH,SQMA,0D0)
21101 WID2=1D0
21102 IF(MINT(55).EQ.6) WID2=WIDS(6,1)
21103 IF(MINT(55).EQ.7.OR.MINT(55).EQ.8) WID2=WIDS(MINT(55),1)
21104 FACQQB=FACQQB*WID2
21105 DO 990 I=MMINA,MMAXA
21106 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
21107 & KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 990
21108 NCHN=NCHN+1
21109 ISIG(NCHN,1)=I
21110 ISIG(NCHN,2)=-I
21111 ISIG(NCHN,3)=1
21112 SIGH(NCHN)=FACQQB
21113 990 CONTINUE
21114
21115 ELSEIF(ISUB.EQ.82) THEN
21116
21117 SQMA=0.5D0*(SQM3+SQM4)-0.25D0*(SQM3-SQM4)**2/SH
21118 IF(MSTP(34).EQ.0) THEN
21119 FACQQ1=COMFAC*FACA*AS**2*(1D0/6D0)*((UH-SQMA)/(TH-SQMA)-
21120 & 2D0*(UH-SQMA)**2/SH2+4D0*(SQMA/SH)*(TH*UH-SQMA**2)/
21121 & (TH-SQMA)**2)
21122 FACQQ2=COMFAC*FACA*AS**2*(1D0/6D0)*((TH-SQMA)/(UH-SQMA)-
21123 & 2D0*(TH-SQMA)**2/SH2+4D0*(SQMA/SH)*(TH*UH-SQMA**2)/
21124 & (UH-SQMA)**2)
21125 ELSE
21126 FACQQ1=COMFAC*FACA*AS**2*(1D0/6D0)*((UH-SQMA)/(TH-SQMA)-
21127 & 2.25D0*(UH-SQMA)**2/SH2+4.5D0*(SQMA/SH)*(TH*UH-SQMA**2)/
21128 & (TH-SQMA)**2+0.5D0*SQMA*TH/(TH-SQMA)**2-SQMA**2/
21129 & (SH*(TH-SQMA)))
21130 FACQQ2=COMFAC*FACA*AS**2*(1D0/6D0)*((TH-SQMA)/(UH-SQMA)-
21131 & 2.25D0*(TH-SQMA)**2/SH2+4.5D0*(SQMA/SH)*(TH*UH-SQMA**2)/
21132 & (UH-SQMA)**2+0.5D0*SQMA*UH/(UH-SQMA)**2-SQMA**2/
21133 & (SH*(UH-SQMA)))
21134 ENDIF
21135 IF(MSTP(35).GE.1) THEN
21136 FATRE=PYHFTH(SH,SQMA,2D0/7D0)
21137 FACQQ1=FACQQ1*FATRE
21138 FACQQ2=FACQQ2*FATRE
21139 ENDIF
21140 WID2=1D0
21141 IF(MINT(55).EQ.6) WID2=WIDS(6,1)
21142 IF(MINT(55).EQ.7.OR.MINT(55).EQ.8) WID2=WIDS(MINT(55),1)
21143 FACQQ1=FACQQ1*WID2
21144 FACQQ2=FACQQ2*WID2
21145 IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 1000
21146 NCHN=NCHN+1
21147 ISIG(NCHN,1)=21
21148 ISIG(NCHN,2)=21
21149 ISIG(NCHN,3)=1
21150 SIGH(NCHN)=FACQQ1
21151 NCHN=NCHN+1
21152 ISIG(NCHN,1)=21
21153 ISIG(NCHN,2)=21
21154 ISIG(NCHN,3)=2
21155 SIGH(NCHN)=FACQQ2
21156 1000 CONTINUE
21157
21158 ELSEIF(ISUB.EQ.83) THEN
21159
21160 FACQQS=COMFAC*(0.5D0*AEM/XW)**2*SH*(SH-SQM3)/(SQMW-TH)**2
21161 FACQQU=COMFAC*(0.5D0*AEM/XW)**2*UH*(UH-SQM3)/(SQMW-TH)**2
21162 DO 1020 I=MMIN1,MMAX1
21163 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 1020
21164 DO 1010 J=MMIN2,MMAX2
21165 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 1010
21166 IF(I*J.GT.0.AND.MOD(IABS(I+J),2).EQ.0) GOTO 1010
21167 IF(I*J.LT.0.AND.MOD(IABS(I+J),2).EQ.1) GOTO 1010
21168 IF(IABS(I).LT.MINT(55).AND.MOD(IABS(I+MINT(55)),2).EQ.1)
21169 & THEN
21170 NCHN=NCHN+1
21171 ISIG(NCHN,1)=I
21172 ISIG(NCHN,2)=J
21173 ISIG(NCHN,3)=1
21174 IF(MOD(MINT(55),2).EQ.0) FACCKM=VCKM(MINT(55)/2,
21175 & (IABS(I)+1)/2)*VINT(180+J)
21176 IF(MOD(MINT(55),2).EQ.1) FACCKM=VCKM(IABS(I)/2,
21177 & (MINT(55)+1)/2)*VINT(180+J)
21178 WID2=1D0
21179 IF(I.GT.0) THEN
21180 IF(MINT(55).EQ.6) WID2=WIDS(6,2)
21181 IF(MINT(55).EQ.7.OR.MINT(55).EQ.8) WID2=
21182 & WIDS(MINT(55),2)
21183 ELSE
21184 IF(MINT(55).EQ.6) WID2=WIDS(6,3)
21185 IF(MINT(55).EQ.7.OR.MINT(55).EQ.8) WID2=
21186 & WIDS(MINT(55),3)
21187 ENDIF
21188 IF(I*J.GT.0) SIGH(NCHN)=FACQQS*FACCKM*WID2
21189 IF(I*J.LT.0) SIGH(NCHN)=FACQQU*FACCKM*WID2
21190 ENDIF
21191 IF(IABS(J).LT.MINT(55).AND.MOD(IABS(J+MINT(55)),2).EQ.1)
21192 & THEN
21193 NCHN=NCHN+1
21194 ISIG(NCHN,1)=I
21195 ISIG(NCHN,2)=J
21196 ISIG(NCHN,3)=2
21197 IF(MOD(MINT(55),2).EQ.0) FACCKM=VCKM(MINT(55)/2,
21198 & (IABS(J)+1)/2)*VINT(180+I)
21199 IF(MOD(MINT(55),2).EQ.1) FACCKM=VCKM(IABS(J)/2,
21200 & (MINT(55)+1)/2)*VINT(180+I)
21201 IF(J.GT.0) THEN
21202 IF(MINT(55).EQ.6) WID2=WIDS(6,2)
21203 IF(MINT(55).EQ.7.OR.MINT(55).EQ.8) WID2=
21204 & WIDS(MINT(55),2)
21205 ELSE
21206 IF(MINT(55).EQ.6) WID2=WIDS(6,3)
21207 IF(MINT(55).EQ.7.OR.MINT(55).EQ.8) WID2=
21208 & WIDS(MINT(55),3)
21209 ENDIF
21210 IF(I*J.GT.0) SIGH(NCHN)=FACQQS*FACCKM*WID2
21211 IF(I*J.LT.0) SIGH(NCHN)=FACQQU*FACCKM*WID2
21212 ENDIF
21213 1010 CONTINUE
21214 1020 CONTINUE
21215
21216 ELSEIF(ISUB.EQ.84) THEN
21217
21218 SQMA=0.5D0*(SQM3+SQM4)-0.25D0*(SQM3-SQM4)**2/SH
21219 FMTU=SQMA/(SQMA-TH)+SQMA/(SQMA-UH)
21220 FACQQ=COMFAC*AS*AEM*(KCHG(IABS(MINT(55)),1)/3D0)**2*
21221 & ((SQMA-TH)/(SQMA-UH)+(SQMA-UH)/(SQMA-TH)+4D0*FMTU*(1D0-FMTU))
21222 IF(MSTP(35).GE.1) FACQQ=FACQQ*PYHFTH(SH,SQMA,0D0)
21223 WID2=1D0
21224 IF(MINT(55).EQ.6) WID2=WIDS(6,1)
21225 IF(MINT(55).EQ.7.OR.MINT(55).EQ.8) WID2=WIDS(MINT(55),1)
21226 FACQQ=FACQQ*WID2
21227 IF(KFAC(1,21)*KFAC(2,22).NE.0) THEN
21228 NCHN=NCHN+1
21229 ISIG(NCHN,1)=21
21230 ISIG(NCHN,2)=22
21231 ISIG(NCHN,3)=1
21232 SIGH(NCHN)=FACQQ
21233 ENDIF
21234 IF(KFAC(1,22)*KFAC(2,21).NE.0) THEN
21235 NCHN=NCHN+1
21236 ISIG(NCHN,1)=22
21237 ISIG(NCHN,2)=21
21238 ISIG(NCHN,3)=1
21239 SIGH(NCHN)=FACQQ
21240 ENDIF
21241
21242 ELSEIF(ISUB.EQ.85) THEN
21243
21244 SQMA=0.5D0*(SQM3+SQM4)-0.25D0*(SQM3-SQM4)**2/SH
21245 FMTU=SQMA/(SQMA-TH)+SQMA/(SQMA-UH)
21246 FACFF=COMFAC*AEM**2*(KCHG(IABS(MINT(56)),1)/3D0)**4*2D0*
21247 & ((SQMA-TH)/(SQMA-UH)+(SQMA-UH)/(SQMA-TH)+4D0*FMTU*(1D0-FMTU))
21248 IF(IABS(MINT(56)).LT.10) FACFF=3D0*FACFF
21249 IF(IABS(MINT(56)).LT.10.AND.MSTP(35).GE.1)
21250 & FACFF=FACFF*PYHFTH(SH,SQMA,1D0)
21251 WID2=1D0
21252 IF(MINT(56).EQ.6) WID2=WIDS(6,1)
21253 IF(MINT(56).EQ.7.OR.MINT(56).EQ.8) WID2=WIDS(MINT(56),1)
21254 IF(MINT(56).EQ.17) WID2=WIDS(17,1)
21255 FACFF=FACFF*WID2
21256 IF(KFAC(1,22)*KFAC(2,22).NE.0) THEN
21257 NCHN=NCHN+1
21258 ISIG(NCHN,1)=22
21259 ISIG(NCHN,2)=22
21260 ISIG(NCHN,3)=1
21261 SIGH(NCHN)=FACFF
21262 ENDIF
21263
21264 ELSEIF(ISUB.EQ.86) THEN
21265
21266 FACQQG=COMFAC*AS**3*(5D0/9D0)*PARP(38)*SQRT(SQM3)*
21267 & (((SH*(SH-SQM3))**2+(TH*(TH-SQM3))**2+(UH*(UH-SQM3))**2)/
21268 & ((TH-SQM3)*(UH-SQM3))**2)/(SH-SQM3)**2
21269 IF(KFAC(1,21)*KFAC(2,21).NE.0) THEN
21270 NCHN=NCHN+1
21271 ISIG(NCHN,1)=21
21272 ISIG(NCHN,2)=21
21273 ISIG(NCHN,3)=1
21274 SIGH(NCHN)=FACQQG
21275 ENDIF
21276
21277 ELSEIF(ISUB.EQ.87) THEN
21278
21279 PGTW=(SH*TH+TH*UH+UH*SH)/SH2
21280 QGTW=(SH*TH*UH)/SH**3
21281 RGTW=SQM3/SH
21282 FACQQG=COMFAC*AS**3*4D0*(PARP(39)/SQRT(SQM3))*(1D0/SH)*
21283 & (9D0*RGTW**2*PGTW**4*(RGTW**4-2D0*RGTW**2*PGTW+PGTW**2)-
21284 & 6D0*RGTW*PGTW**3*QGTW*(2D0*RGTW**4-5D0*RGTW**2*PGTW+PGTW**2)-
21285 & PGTW**2*QGTW**2*(RGTW**4+2D0*RGTW**2*PGTW-PGTW**2)+
21286 & 2D0*RGTW*PGTW*QGTW**3*(RGTW**2-PGTW)+6D0*RGTW**2*QGTW**4)/
21287 & (QGTW*(QGTW-RGTW*PGTW)**4)
21288 IF(KFAC(1,21)*KFAC(2,21).NE.0) THEN
21289 NCHN=NCHN+1
21290 ISIG(NCHN,1)=21
21291 ISIG(NCHN,2)=21
21292 ISIG(NCHN,3)=1
21293 SIGH(NCHN)=FACQQG
21294 ENDIF
21295
21296 ELSEIF(ISUB.EQ.88) THEN
21297
21298 PGTW=(SH*TH+TH*UH+UH*SH)/SH2
21299 QGTW=(SH*TH*UH)/SH**3
21300 RGTW=SQM3/SH
21301 FACQQG=COMFAC*AS**3*12D0*(PARP(39)/SQRT(SQM3))*(1D0/SH)*
21302 & PGTW**2*(RGTW*PGTW**2*(RGTW**2-4D0*PGTW)+2D0*QGTW*(-RGTW**4+
21303 & 5D0*RGTW**2*PGTW+PGTW**2)-15D0*RGTW*QGTW**2)/
21304 & (QGTW-RGTW*PGTW)**4
21305 IF(KFAC(1,21)*KFAC(2,21).NE.0) THEN
21306 NCHN=NCHN+1
21307 ISIG(NCHN,1)=21
21308 ISIG(NCHN,2)=21
21309 ISIG(NCHN,3)=1
21310 SIGH(NCHN)=FACQQG
21311 ENDIF
21312
21313 ELSEIF(ISUB.EQ.89) THEN
21314
21315 PGTW=(SH*TH+TH*UH+UH*SH)/SH2
21316 QGTW=(SH*TH*UH)/SH**3
21317 RGTW=SQM3/SH
21318 FACQQG=COMFAC*AS**3*4D0*(PARP(39)/SQRT(SQM3))*(1D0/SH)*
21319 & (12D0*RGTW**2*PGTW**4*(RGTW**4-2D0*RGTW**2*PGTW+PGTW**2)-
21320 & 3D0*RGTW*PGTW**3*QGTW*(8D0*RGTW**4-RGTW**2*PGTW+4D0*PGTW**2)+
21321 & 2D0*PGTW**2*QGTW**2*(-7D0*RGTW**4+43D0*RGTW**2*PGTW+PGTW**2)+
21322 & RGTW*PGTW*QGTW**3*(16D0*RGTW**2-61D0*PGTW)+12D0*RGTW**2*
21323 & QGTW**4)/(QGTW*(QGTW-RGTW*PGTW)**4)
21324 IF(KFAC(1,21)*KFAC(2,21).NE.0) THEN
21325 NCHN=NCHN+1
21326 ISIG(NCHN,1)=21
21327 ISIG(NCHN,2)=21
21328 ISIG(NCHN,3)=1
21329 SIGH(NCHN)=FACQQG
21330 ENDIF
21331 ENDIF
21332
21333
21334
21335 ELSEIF(ISUB.LE.100) THEN
21336 IF(ISUB.EQ.91) THEN
21337
21338 SIGS=VINT(315)*VINT(316)*SIGT(0,0,1)
21339
21340 ELSEIF(ISUB.EQ.92) THEN
21341
21342 SIGS=VINT(315)*VINT(316)*SIGT(0,0,2)
21343
21344 ELSEIF(ISUB.EQ.93) THEN
21345
21346 SIGS=VINT(315)*VINT(316)*SIGT(0,0,3)
21347
21348 ELSEIF(ISUB.EQ.94) THEN
21349
21350 SIGS=VINT(315)*VINT(316)*SIGT(0,0,4)
21351
21352 ELSEIF(ISUB.EQ.95) THEN
21353
21354 SIGS=VINT(315)*VINT(316)*SIGT(0,0,5)
21355
21356 ELSEIF(ISUB.EQ.96) THEN
21357
21358 CALL PYWIDT(21,SH,WDTP,WDTE)
21359
21360
21361 FACQQ1=COMFAC*AS**2*4D0/9D0*(SH2+UH2)/TH2
21362 FACQQB=COMFAC*AS**2*4D0/9D0*((SH2+UH2)/TH2*FACA-
21363 & MSTP(34)*2D0/3D0*UH2/(SH*TH))
21364 FACQQ2=COMFAC*AS**2*4D0/9D0*(SH2+TH2)/UH2
21365 FACQQI=-COMFAC*AS**2*4D0/9D0*MSTP(34)*2D0/3D0*SH2/(TH*UH)
21366 RATQQI=(FACQQ1+FACQQ2+FACQQI)/(FACQQ1+FACQQ2)
21367 DO 1040 I=-5,5
21368 IF(I.EQ.0) GOTO 1040
21369 DO 1030 J=-5,5
21370 IF(J.EQ.0) GOTO 1030
21371 NCHN=NCHN+1
21372 ISIG(NCHN,1)=I
21373 ISIG(NCHN,2)=J
21374 ISIG(NCHN,3)=111
21375 SIGH(NCHN)=FACQQ1
21376 IF(I.EQ.-J) SIGH(NCHN)=FACQQB
21377 IF(I.EQ.J) THEN
21378 SIGH(NCHN)=0.5D0*FACQQ1*RATQQI
21379 NCHN=NCHN+1
21380 ISIG(NCHN,1)=I
21381 ISIG(NCHN,2)=J
21382 ISIG(NCHN,3)=112
21383 SIGH(NCHN)=0.5D0*FACQQ2*RATQQI
21384 ENDIF
21385 1030 CONTINUE
21386 1040 CONTINUE
21387
21388
21389 FACQQB=COMFAC*AS**2*4D0/9D0*(TH2+UH2)/SH2*
21390 & (WDTE(0,1)+WDTE(0,2)+WDTE(0,3)+WDTE(0,4))
21391 FACGG1=COMFAC*AS**2*32D0/27D0*(UH/TH-(2D0+MSTP(34)*1D0/4D0)*
21392 & UH2/SH2)
21393 FACGG2=COMFAC*AS**2*32D0/27D0*(TH/UH-(2D0+MSTP(34)*1D0/4D0)*
21394 & TH2/SH2)
21395 DO 1050 I=-5,5
21396 IF(I.EQ.0) GOTO 1050
21397 NCHN=NCHN+1
21398 ISIG(NCHN,1)=I
21399 ISIG(NCHN,2)=-I
21400 ISIG(NCHN,3)=121
21401 SIGH(NCHN)=FACQQB
21402 NCHN=NCHN+1
21403 ISIG(NCHN,1)=I
21404 ISIG(NCHN,2)=-I
21405 ISIG(NCHN,3)=131
21406 SIGH(NCHN)=0.5D0*FACGG1
21407 NCHN=NCHN+1
21408 ISIG(NCHN,1)=I
21409 ISIG(NCHN,2)=-I
21410 ISIG(NCHN,3)=132
21411 SIGH(NCHN)=0.5D0*FACGG2
21412 1050 CONTINUE
21413
21414
21415 FACQG1=COMFAC*AS**2*4D0/9D0*((2D0+MSTP(34)*1D0/4D0)*UH2/TH2-
21416 & UH/SH)*FACA
21417 FACQG2=COMFAC*AS**2*4D0/9D0*((2D0+MSTP(34)*1D0/4D0)*SH2/TH2-
21418 & SH/UH)
21419 DO 1070 I=-5,5
21420 IF(I.EQ.0) GOTO 1070
21421 DO 1060 ISDE=1,2
21422 NCHN=NCHN+1
21423 ISIG(NCHN,ISDE)=I
21424 ISIG(NCHN,3-ISDE)=21
21425 ISIG(NCHN,3)=281
21426 SIGH(NCHN)=FACQG1
21427 NCHN=NCHN+1
21428 ISIG(NCHN,ISDE)=I
21429 ISIG(NCHN,3-ISDE)=21
21430 ISIG(NCHN,3)=282
21431 SIGH(NCHN)=FACQG2
21432 1060 CONTINUE
21433 1070 CONTINUE
21434
21435
21436 FACQQ1=COMFAC*AS**2*1D0/6D0*(UH/TH-(2D0+MSTP(34)*1D0/4D0)*
21437 & UH2/SH2)*(WDTE(0,1)+WDTE(0,2)+WDTE(0,3)+WDTE(0,4))*FACA
21438 FACQQ2=COMFAC*AS**2*1D0/6D0*(TH/UH-(2D0+MSTP(34)*1D0/4D0)*
21439 & TH2/SH2)*(WDTE(0,1)+WDTE(0,2)+WDTE(0,3)+WDTE(0,4))*FACA
21440 FACGG1=COMFAC*AS**2*9D0/4D0*(SH2/TH2+2D0*SH/TH+3D0+
21441 & 2D0*TH/SH+TH2/SH2)*FACA
21442 FACGG2=COMFAC*AS**2*9D0/4D0*(UH2/SH2+2D0*UH/SH+3D0+
21443 & 2D0*SH/UH+SH2/UH2)*FACA
21444 FACGG3=COMFAC*AS**2*9D0/4D0*(TH2/UH2+2D0*TH/UH+3+
21445 & 2D0*UH/TH+UH2/TH2)
21446 NCHN=NCHN+1
21447 ISIG(NCHN,1)=21
21448 ISIG(NCHN,2)=21
21449 ISIG(NCHN,3)=531
21450 SIGH(NCHN)=FACQQ1
21451 NCHN=NCHN+1
21452 ISIG(NCHN,1)=21
21453 ISIG(NCHN,2)=21
21454 ISIG(NCHN,3)=532
21455 SIGH(NCHN)=FACQQ2
21456 NCHN=NCHN+1
21457 ISIG(NCHN,1)=21
21458 ISIG(NCHN,2)=21
21459 ISIG(NCHN,3)=681
21460 SIGH(NCHN)=0.5D0*FACGG1
21461 NCHN=NCHN+1
21462 ISIG(NCHN,1)=21
21463 ISIG(NCHN,2)=21
21464 ISIG(NCHN,3)=682
21465 SIGH(NCHN)=0.5D0*FACGG2
21466 NCHN=NCHN+1
21467 ISIG(NCHN,1)=21
21468 ISIG(NCHN,2)=21
21469 ISIG(NCHN,3)=683
21470 SIGH(NCHN)=0.5D0*FACGG3
21471
21472 ELSEIF(ISUB.EQ.99) THEN
21473
21474 IF(MINT(107).EQ.4) THEN
21475 Q2GA=VINT(307)
21476 P2GA=VINT(308)
21477 ISDE=2
21478 ELSE
21479 Q2GA=VINT(308)
21480 P2GA=VINT(307)
21481 ISDE=1
21482 ENDIF
21483 COMFAC=PARU(5)*4D0*PARU(1)**2*PARU(101)*VINT(315)*VINT(316)
21484 PM2RHO=PMAS(PYCOMP(113),1)**2
21485 IF(MSTP(19).EQ.0) THEN
21486 COMFAC=COMFAC/Q2GA
21487 ELSEIF(MSTP(19).EQ.1) THEN
21488 COMFAC=COMFAC/(Q2GA+PM2RHO)
21489 ELSEIF(MSTP(19).EQ.2) THEN
21490 COMFAC=COMFAC*Q2GA/(Q2GA+PM2RHO)**2
21491 ELSE
21492 COMFAC=COMFAC*Q2GA/(Q2GA+PM2RHO)**2
21493 W2GA=VINT(2)
21494 IF(MINT(11).EQ.22.AND.MINT(12).EQ.22) THEN
21495 RDRDS=4.1D-3*W2GA**2.167D0/((Q2GA+0.15D0*W2GA)**2*
21496 & Q2GA**0.75D0)*(1D0+0.11D0*Q2GA*P2GA/(1D0+0.02D0*P2GA**2))
21497 XGA=Q2GA/(W2GA+VINT(307)+VINT(308))
21498 ELSE
21499 RDRDS=1.5D-4*W2GA**2.167D0/((Q2GA+0.041D0*W2GA)**2*
21500 & Q2GA**0.57D0)
21501 XGA=Q2GA/(W2GA+Q2GA-PMAS(PYCOMP(MINT(10+ISDE)),1)**2)
21502 ENDIF
21503 COMFAC=COMFAC*EXP(-MAX(1D-10,RDRDS))
21504 IF(MSTP(19).EQ.4) COMFAC=COMFAC/MAX(1D-2,1D0-XGA)
21505 ENDIF
21506 DO 1075 I=MMINA,MMAXA
21507 IF(I.EQ.0.OR.KFAC(ISDE,I).EQ.0) GOTO 1075
21508 IF(IABS(I).LT.10.AND.IABS(I).GT.MSTP(58)) GOTO 1075
21509 EI=KCHG(IABS(I),1)/3D0
21510 NCHN=NCHN+1
21511 ISIG(NCHN,ISDE)=I
21512 ISIG(NCHN,3-ISDE)=22
21513 ISIG(NCHN,3)=1
21514 SIGH(NCHN)=COMFAC*EI**2
21515 1075 CONTINUE
21516 ENDIF
21517
21518
21519
21520 ELSEIF(ISUB.LE.110) THEN
21521 IF(ISUB.EQ.101) THEN
21522
21523
21524 ELSEIF(ISUB.EQ.102) THEN
21525
21526 CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
21527 HS=SHR*WDTP(0)
21528 HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
21529 FACBW=4D0*COMFAC/((SH-SQMH)**2+HS**2)
21530 IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
21531 & FACBW=0D0
21532 HI=SHR*WDTP(13)/32D0
21533 IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 1080
21534 NCHN=NCHN+1
21535 ISIG(NCHN,1)=21
21536 ISIG(NCHN,2)=21
21537 ISIG(NCHN,3)=1
21538 SIGH(NCHN)=HI*FACBW*HF
21539 1080 CONTINUE
21540
21541 ELSEIF(ISUB.EQ.103) THEN
21542
21543 CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
21544 HS=SHR*WDTP(0)
21545 HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
21546 FACBW=4D0*COMFAC/((SH-SQMH)**2+HS**2)
21547 IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
21548 & FACBW=0D0
21549 HI=SHR*WDTP(14)*2D0
21550 IF(KFAC(1,22)*KFAC(2,22).EQ.0) GOTO 1090
21551 NCHN=NCHN+1
21552 ISIG(NCHN,1)=22
21553 ISIG(NCHN,2)=22
21554 ISIG(NCHN,3)=1
21555 SIGH(NCHN)=HI*FACBW*HF
21556 1090 CONTINUE
21557
21558 ELSEIF(ISUB.EQ.104) THEN
21559
21560 KC=PYCOMP(10441)
21561 FACBW=COMFAC*12D0*AS**2*PARP(39)*PMAS(KC,2)/
21562 & ((SH-PMAS(KC,1)**2)**2+(PMAS(KC,1)*PMAS(KC,2))**2)
21563 IF(ABS(SQRT(SH)-PMAS(KC,1)).GT.50D0*PMAS(KC,2)) FACBW=0D0
21564 IF(KFAC(1,21)*KFAC(2,21).NE.0) THEN
21565 NCHN=NCHN+1
21566 ISIG(NCHN,1)=21
21567 ISIG(NCHN,2)=21
21568 ISIG(NCHN,3)=1
21569 SIGH(NCHN)=FACBW
21570 ENDIF
21571
21572 ELSEIF(ISUB.EQ.105) THEN
21573
21574 KC=PYCOMP(445)
21575 FACBW=COMFAC*16D0*AS**2*PARP(39)*PMAS(KC,2)/
21576 & ((SH-PMAS(KC,1)**2)**2+(PMAS(KC,1)*PMAS(KC,2))**2)
21577 IF(ABS(SQRT(SH)-PMAS(KC,1)).GT.50D0*PMAS(KC,2)) FACBW=0D0
21578 IF(KFAC(1,21)*KFAC(2,21).NE.0) THEN
21579 NCHN=NCHN+1
21580 ISIG(NCHN,1)=21
21581 ISIG(NCHN,2)=21
21582 ISIG(NCHN,3)=1
21583 SIGH(NCHN)=FACBW
21584 ENDIF
21585
21586
21587
21588 ELSEIF(ISUB.EQ.106) THEN
21589
21590 EQ=2D0/3D0
21591 FACQQG=COMFAC*AEM*EQ**2*AS**2*(4D0/3D0)*PARP(38)*SQRT(SQM3)*
21592 & (((SH*(SH-SQM3))**2+(TH*(TH-SQM3))**2+(UH*(UH-SQM3))**2)/
21593 & ((TH-SQM3)*(UH-SQM3))**2)/(SH-SQM3)**2
21594 IF(KFAC(1,21)*KFAC(2,21).NE.0) THEN
21595 NCHN=NCHN+1
21596 ISIG(NCHN,1)=21
21597 ISIG(NCHN,2)=21
21598 ISIG(NCHN,3)=1
21599 SIGH(NCHN)=FACQQG
21600 ENDIF
21601
21602 ELSEIF(ISUB.EQ.107) THEN
21603
21604 EQ=2D0/3D0
21605 FACQQG=COMFAC*AEM*EQ**2*AS**2*(32D0/3D0)*PARP(38)*SQRT(SQM3)*
21606 & (((SH*(SH-SQM3))**2+(TH*(TH-SQM3))**2+(UH*(UH-SQM3))**2)/
21607 & ((TH-SQM3)*(UH-SQM3))**2)/(SH-SQM3)**2
21608 IF(KFAC(1,21)*KFAC(2,22).NE.0) THEN
21609 NCHN=NCHN+1
21610 ISIG(NCHN,1)=21
21611 ISIG(NCHN,2)=22
21612 ISIG(NCHN,3)=1
21613 SIGH(NCHN)=FACQQG
21614 ENDIF
21615 IF(KFAC(1,22)*KFAC(2,21).NE.0) THEN
21616 NCHN=NCHN+1
21617 ISIG(NCHN,1)=22
21618 ISIG(NCHN,2)=21
21619 ISIG(NCHN,3)=1
21620 SIGH(NCHN)=FACQQG
21621 ENDIF
21622
21623 ELSEIF(ISUB.EQ.108) THEN
21624
21625 EQ=2D0/3D0
21626 FACQQG=COMFAC*AEM**3*EQ**6*384D0*PARP(38)*SQRT(SQM3)*
21627 & (((SH*(SH-SQM3))**2+(TH*(TH-SQM3))**2+(UH*(UH-SQM3))**2)/
21628 & ((TH-SQM3)*(UH-SQM3))**2)/(SH-SQM3)**2
21629 IF(KFAC(1,22)*KFAC(2,22).NE.0) THEN
21630 NCHN=NCHN+1
21631 ISIG(NCHN,1)=22
21632 ISIG(NCHN,2)=22
21633 ISIG(NCHN,3)=1
21634 SIGH(NCHN)=FACQQG
21635 ENDIF
21636
21637
21638
21639 ELSEIF(ISUB.EQ.110) THEN
21640
21641 THUH=MAX(TH*UH,SH*CKIN(3)**2)
21642 FACHG=COMFAC*(3D0*AEM**4)/(2D0*PARU(1)**2*XW*SQMW)*SH*THUH
21643 FACHG=FACHG*WIDS(KFHIGG,2)
21644
21645 CIGTOT=CMPLX(0.,0.)
21646 CIZTOT=CMPLX(0.,0.)
21647 JMAX=3*MSTP(1)+1
21648 DO 1100 J=1,JMAX
21649 IF(J.LE.2*MSTP(1)) THEN
21650 FNC=1D0
21651 EJ=KCHG(J,1)/3D0
21652 AJ=SIGN(1D0,EJ+0.1D0)
21653 VJ=AJ-4D0*EJ*XWV
21654 BALP=SQM4/(2D0*PMAS(J,1))**2
21655 BBET=SH/(2D0*PMAS(J,1))**2
21656 ELSEIF(J.LE.3*MSTP(1)) THEN
21657 FNC=3D0
21658 JL=2*(J-2*MSTP(1))-1
21659 EJ=KCHG(10+JL,1)/3D0
21660 AJ=SIGN(1D0,EJ+0.1D0)
21661 VJ=AJ-4D0*EJ*XWV
21662 BALP=SQM4/(2D0*PMAS(10+JL,1))**2
21663 BBET=SH/(2D0*PMAS(10+JL,1))**2
21664 ELSE
21665 BALP=SQM4/(2D0*PMAS(24,1))**2
21666 BBET=SH/(2D0*PMAS(24,1))**2
21667 ENDIF
21668 BABI=1D0/(BALP-BBET)
21669 IF(BALP.LT.1D0) THEN
21670 F0ALP=CMPLX(SNGL(ASIN(SQRT(BALP))),0.)
21671 F1ALP=F0ALP**2
21672 ELSE
21673 F0ALP=CMPLX(SNGL(LOG(SQRT(BALP)+SQRT(BALP-1D0))),
21674 & -SNGL(0.5D0*PARU(1)))
21675 F1ALP=-F0ALP**2
21676 ENDIF
21677 F2ALP=SNGL(SQRT(ABS(BALP-1D0)/BALP))*F0ALP
21678 IF(BBET.LT.1D0) THEN
21679 F0BET=CMPLX(SNGL(ASIN(SQRT(BBET))),0.)
21680 F1BET=F0BET**2
21681 ELSE
21682 F0BET=CMPLX(SNGL(LOG(SQRT(BBET)+SQRT(BBET-1D0))),
21683 & -SNGL(0.5D0*PARU(1)))
21684 F1BET=-F0BET**2
21685 ENDIF
21686 F2BET=SNGL(SQRT(ABS(BBET-1D0)/BBET))*F0BET
21687 IF(J.LE.3*MSTP(1)) THEN
21688 FIF=SNGL(0.5D0*BABI)+SNGL(BABI**2)*(SNGL(0.5D0*(1D0-BALP+
21689 & BBET))*(F1BET-F1ALP)+SNGL(BBET)*(F2BET-F2ALP))
21690 CIGTOT=CIGTOT+SNGL(FNC*EJ**2)*FIF
21691 CIZTOT=CIZTOT+SNGL(FNC*EJ*VJ)*FIF
21692 ELSE
21693 TXW=XW/XW1
21694 CIGTOT=CIGTOT-0.5*(SNGL(BABI*(1.5D0+BALP))+SNGL(BABI**2)*
21695 & (SNGL(1.5D0-3D0*BALP+4D0*BBET)*(F1BET-F1ALP)+
21696 & SNGL(BBET*(2D0*BALP+3D0))*(F2BET-F2ALP)))
21697 CIZTOT=CIZTOT-SNGL(0.5D0*BABI*XW1)*(SNGL(5D0-TXW+2D0*BALP*
21698 & (1D0-TXW))*(1.+SNGL(2D0*BABI*BBET)*(F2BET-F2ALP))+
21699 & SNGL(BABI*(4D0*BBET*(3D0-TXW)-(2D0*BALP-1D0)*(5D0-TXW)))*
21700 & (F1BET-F1ALP))
21701 ENDIF
21702 1100 CONTINUE
21703 CIGTOT=CIGTOT/SNGL(SH)
21704 CIZTOT=CIZTOT*SNGL(XWC)/CMPLX(SNGL(SH-SQMZ),SNGL(GMMZ))
21705
21706 DO 1110 I=MMINA,MMAXA
21707 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1110
21708 EI=KCHG(IABS(I),1)/3D0
21709 AI=SIGN(1D0,EI)
21710 VI=AI-4D0*EI*XWV
21711 FCOI=1D0
21712 IF(IABS(I).LE.10) FCOI=FACA/3D0
21713 NCHN=NCHN+1
21714 ISIG(NCHN,1)=I
21715 ISIG(NCHN,2)=-I
21716 ISIG(NCHN,3)=1
21717 SIGH(NCHN)=FACHG*FCOI*(ABS(SNGL(EI)*CIGTOT+SNGL(VI)*
21718 & CIZTOT)**2+AI**2*ABS(CIZTOT)**2)
21719 1110 CONTINUE
21720
21721 ENDIF
21722
21723 ELSEIF(ISUB.LE.120) THEN
21724 IF(ISUB.EQ.111) THEN
21725
21726 A5STUR=0D0
21727 A5STUI=0D0
21728 DO 1120 I=1,2*MSTP(1)
21729 SQMQ=PMAS(I,1)**2
21730 EPSS=4D0*SQMQ/SH
21731 EPSH=4D0*SQMQ/SQMH
21732 CALL PYWAUX(1,EPSS,W1SR,W1SI)
21733 CALL PYWAUX(1,EPSH,W1HR,W1HI)
21734 CALL PYWAUX(2,EPSS,W2SR,W2SI)
21735 CALL PYWAUX(2,EPSH,W2HR,W2HI)
21736 A5STUR=A5STUR+EPSH*(1D0+SH/(TH+UH)*(W1SR-W1HR)+
21737 & (0.25D0-SQMQ/(TH+UH))*(W2SR-W2HR))
21738 A5STUI=A5STUI+EPSH*(SH/(TH+UH)*(W1SI-W1HI)+
21739 & (0.25D0-SQMQ/(TH+UH))*(W2SI-W2HI))
21740 1120 CONTINUE
21741 FACGH=COMFAC*FACA/(144D0*PARU(1)**2)*AEM/XW*AS**3*SQMH/SQMW*
21742 & SQMH/SH*(UH**2+TH**2)/(UH+TH)**2*(A5STUR**2+A5STUI**2)
21743 FACGH=FACGH*WIDS(25,2)
21744 DO 1130 I=MMINA,MMAXA
21745 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
21746 & KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1130
21747 NCHN=NCHN+1
21748 ISIG(NCHN,1)=I
21749 ISIG(NCHN,2)=-I
21750 ISIG(NCHN,3)=1
21751 SIGH(NCHN)=FACGH
21752 1130 CONTINUE
21753
21754 ELSEIF(ISUB.EQ.112) THEN
21755
21756 A5TSUR=0D0
21757 A5TSUI=0D0
21758 DO 1140 I=1,2*MSTP(1)
21759 SQMQ=PMAS(I,1)**2
21760 EPST=4D0*SQMQ/TH
21761 EPSH=4D0*SQMQ/SQMH
21762 CALL PYWAUX(1,EPST,W1TR,W1TI)
21763 CALL PYWAUX(1,EPSH,W1HR,W1HI)
21764 CALL PYWAUX(2,EPST,W2TR,W2TI)
21765 CALL PYWAUX(2,EPSH,W2HR,W2HI)
21766 A5TSUR=A5TSUR+EPSH*(1D0+TH/(SH+UH)*(W1TR-W1HR)+
21767 & (0.25D0-SQMQ/(SH+UH))*(W2TR-W2HR))
21768 A5TSUI=A5TSUI+EPSH*(TH/(SH+UH)*(W1TI-W1HI)+
21769 & (0.25D0-SQMQ/(SH+UH))*(W2TI-W2HI))
21770 1140 CONTINUE
21771 FACQH=COMFAC*FACA/(384D0*PARU(1)**2)*AEM/XW*AS**3*SQMH/SQMW*
21772 & SQMH/(-TH)*(UH**2+SH**2)/(UH+SH)**2*(A5TSUR**2+A5TSUI**2)
21773 FACQH=FACQH*WIDS(25,2)
21774 DO 1160 I=MMINA,MMAXA
21775 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58)) GOTO 1160
21776 DO 1150 ISDE=1,2
21777 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 1150
21778 IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 1150
21779 NCHN=NCHN+1
21780 ISIG(NCHN,ISDE)=I
21781 ISIG(NCHN,3-ISDE)=21
21782 ISIG(NCHN,3)=1
21783 SIGH(NCHN)=FACQH
21784 1150 CONTINUE
21785 1160 CONTINUE
21786
21787 ELSEIF(ISUB.EQ.113) THEN
21788
21789 A2STUR=0D0
21790 A2STUI=0D0
21791 A2USTR=0D0
21792 A2USTI=0D0
21793 A2TUSR=0D0
21794 A2TUSI=0D0
21795 A4STUR=0D0
21796 A4STUI=0D0
21797 DO 1170 I=1,2*MSTP(1)
21798 SQMQ=PMAS(I,1)**2
21799 EPSS=4D0*SQMQ/SH
21800 EPST=4D0*SQMQ/TH
21801 EPSU=4D0*SQMQ/UH
21802 EPSH=4D0*SQMQ/SQMH
21803 IF(EPSH.LT.1D-6) GOTO 1170
21804 CALL PYWAUX(1,EPSS,W1SR,W1SI)
21805 CALL PYWAUX(1,EPST,W1TR,W1TI)
21806 CALL PYWAUX(1,EPSU,W1UR,W1UI)
21807 CALL PYWAUX(1,EPSH,W1HR,W1HI)
21808 CALL PYWAUX(2,EPSS,W2SR,W2SI)
21809 CALL PYWAUX(2,EPST,W2TR,W2TI)
21810 CALL PYWAUX(2,EPSU,W2UR,W2UI)
21811 CALL PYWAUX(2,EPSH,W2HR,W2HI)
21812 CALL PYI3AU(EPSS,TH/UH,Y3STUR,Y3STUI)
21813 CALL PYI3AU(EPSS,UH/TH,Y3SUTR,Y3SUTI)
21814 CALL PYI3AU(EPST,SH/UH,Y3TSUR,Y3TSUI)
21815 CALL PYI3AU(EPST,UH/SH,Y3TUSR,Y3TUSI)
21816 CALL PYI3AU(EPSU,SH/TH,Y3USTR,Y3USTI)
21817 CALL PYI3AU(EPSU,TH/SH,Y3UTSR,Y3UTSI)
21818 CALL PYI3AU(EPSH,SQMH/SH*TH/UH,YHSTUR,YHSTUI)
21819 CALL PYI3AU(EPSH,SQMH/SH*UH/TH,YHSUTR,YHSUTI)
21820 CALL PYI3AU(EPSH,SQMH/TH*SH/UH,YHTSUR,YHTSUI)
21821 CALL PYI3AU(EPSH,SQMH/TH*UH/SH,YHTUSR,YHTUSI)
21822 CALL PYI3AU(EPSH,SQMH/UH*SH/TH,YHUSTR,YHUSTI)
21823 CALL PYI3AU(EPSH,SQMH/UH*TH/SH,YHUTSR,YHUTSI)
21824 W3STUR=YHSTUR-Y3STUR-Y3UTSR
21825 W3STUI=YHSTUI-Y3STUI-Y3UTSI
21826 W3SUTR=YHSUTR-Y3SUTR-Y3TUSR
21827 W3SUTI=YHSUTI-Y3SUTI-Y3TUSI
21828 W3TSUR=YHTSUR-Y3TSUR-Y3USTR
21829 W3TSUI=YHTSUI-Y3TSUI-Y3USTI
21830 W3TUSR=YHTUSR-Y3TUSR-Y3SUTR
21831 W3TUSI=YHTUSI-Y3TUSI-Y3SUTI
21832 W3USTR=YHUSTR-Y3USTR-Y3TSUR
21833 W3USTI=YHUSTI-Y3USTI-Y3TSUI
21834 W3UTSR=YHUTSR-Y3UTSR-Y3STUR
21835 W3UTSI=YHUTSI-Y3UTSI-Y3STUI
21836 B2STUR=SQMQ/SQMH**2*(SH*(UH-SH)/(SH+UH)+2D0*TH*UH*
21837 & (UH+2D0*SH)/(SH+UH)**2*(W1TR-W1HR)+(SQMQ-SH/4D0)*
21838 & (0.5D0*W2SR+0.5D0*W2HR-W2TR+W3STUR)+SH2*(2D0*SQMQ/
21839 & (SH+UH)**2-0.5D0/(SH+UH))*(W2TR-W2HR)+0.5D0*TH*UH/SH*
21840 & (W2HR-2D0*W2TR)+0.125D0*(SH-12D0*SQMQ-4D0*TH*UH/SH)*W3TSUR)
21841 B2STUI=SQMQ/SQMH**2*(2D0*TH*UH*(UH+2D0*SH)/(SH+UH)**2*
21842 & (W1TI-W1HI)+(SQMQ-SH/4D0)*(0.5D0*W2SI+0.5D0*W2HI-W2TI+
21843 & W3STUI)+SH2*(2D0*SQMQ/(SH+UH)**2-0.5D0/(SH+UH))*
21844 & (W2TI-W2HI)+0.5D0*TH*UH/SH*(W2HI-2D0*W2TI)+0.125D0*
21845 & (SH-12D0*SQMQ-4D0*TH*UH/SH)*W3TSUI)
21846 B2SUTR=SQMQ/SQMH**2*(SH*(TH-SH)/(SH+TH)+2D0*UH*TH*
21847 & (TH+2D0*SH)/(SH+TH)**2*(W1UR-W1HR)+(SQMQ-SH/4D0)*
21848 & (0.5D0*W2SR+0.5D0*W2HR-W2UR+W3SUTR)+SH2*(2D0*SQMQ/
21849 & (SH+TH)**2-0.5D0/(SH+TH))*(W2UR-W2HR)+0.5D0*UH*TH/SH*
21850 & (W2HR-2D0*W2UR)+0.125D0*(SH-12D0*SQMQ-4D0*UH*TH/SH)*W3USTR)
21851 B2SUTI=SQMQ/SQMH**2*(2D0*UH*TH*(TH+2D0*SH)/(SH+TH)**2*
21852 & (W1UI-W1HI)+(SQMQ-SH/4D0)*(0.5D0*W2SI+0.5D0*W2HI-W2UI+
21853 & W3SUTI)+SH2*(2D0*SQMQ/(SH+TH)**2-0.5D0/(SH+TH))*
21854 & (W2UI-W2HI)+0.5D0*UH*TH/SH*(W2HI-2D0*W2UI)+0.125D0*
21855 & (SH-12D0*SQMQ-4D0*UH*TH/SH)*W3USTI)
21856 B2TSUR=SQMQ/SQMH**2*(TH*(UH-TH)/(TH+UH)+2D0*SH*UH*
21857 & (UH+2D0*TH)/(TH+UH)**2*(W1SR-W1HR)+(SQMQ-TH/4D0)*
21858 & (0.5D0*W2TR+0.5D0*W2HR-W2SR+W3TSUR)+TH2*(2D0*SQMQ/
21859 & (TH+UH)**2-0.5D0/(TH+UH))*(W2SR-W2HR)+0.5D0*SH*UH/TH*
21860 & (W2HR-2D0*W2SR)+0.125D0*(TH-12D0*SQMQ-4D0*SH*UH/TH)*W3STUR)
21861 B2TSUI=SQMQ/SQMH**2*(2D0*SH*UH*(UH+2D0*TH)/(TH+UH)**2*
21862 & (W1SI-W1HI)+(SQMQ-TH/4D0)*(0.5D0*W2TI+0.5D0*W2HI-W2SI+
21863 & W3TSUI)+TH2*(2D0*SQMQ/(TH+UH)**2-0.5D0/(TH+UH))*
21864 & (W2SI-W2HI)+0.5D0*SH*UH/TH*(W2HI-2D0*W2SI)+0.125D0*
21865 & (TH-12D0*SQMQ-4D0*SH*UH/TH)*W3STUI)
21866 B2TUSR=SQMQ/SQMH**2*(TH*(SH-TH)/(TH+SH)+2D0*UH*SH*
21867 & (SH+2D0*TH)/(TH+SH)**2*(W1UR-W1HR)+(SQMQ-TH/4D0)*
21868 & (0.5D0*W2TR+0.5D0*W2HR-W2UR+W3TUSR)+TH2*(2D0*SQMQ/
21869 & (TH+SH)**2-0.5D0/(TH+SH))*(W2UR-W2HR)+0.5D0*UH*SH/TH*
21870 & (W2HR-2D0*W2UR)+0.125D0*(TH-12D0*SQMQ-4D0*UH*SH/TH)*W3UTSR)
21871 B2TUSI=SQMQ/SQMH**2*(2D0*UH*SH*(SH+2D0*TH)/(TH+SH)**2*
21872 & (W1UI-W1HI)+(SQMQ-TH/4D0)*(0.5D0*W2TI+0.5D0*W2HI-W2UI+
21873 & W3TUSI)+TH2*(2D0*SQMQ/(TH+SH)**2-0.5D0/(TH+SH))*
21874 & (W2UI-W2HI)+0.5D0*UH*SH/TH*(W2HI-2D0*W2UI)+0.125D0*
21875 & (TH-12D0*SQMQ-4D0*UH*SH/TH)*W3UTSI)
21876 B2USTR=SQMQ/SQMH**2*(UH*(TH-UH)/(UH+TH)+2D0*SH*TH*
21877 & (TH+2D0*UH)/(UH+TH)**2*(W1SR-W1HR)+(SQMQ-UH/4D0)*
21878 & (0.5D0*W2UR+0.5D0*W2HR-W2SR+W3USTR)+UH2*(2D0*SQMQ/
21879 & (UH+TH)**2-0.5D0/(UH+TH))*(W2SR-W2HR)+0.5D0*SH*TH/UH*
21880 & (W2HR-2D0*W2SR)+0.125D0*(UH-12D0*SQMQ-4D0*SH*TH/UH)*W3SUTR)
21881 B2USTI=SQMQ/SQMH**2*(2D0*SH*TH*(TH+2D0*UH)/(UH+TH)**2*
21882 & (W1SI-W1HI)+(SQMQ-UH/4D0)*(0.5D0*W2UI+0.5D0*W2HI-W2SI+
21883 & W3USTI)+UH2*(2D0*SQMQ/(UH+TH)**2-0.5D0/(UH+TH))*
21884 & (W2SI-W2HI)+0.5D0*SH*TH/UH*(W2HI-2D0*W2SI)+0.125D0*
21885 & (UH-12D0*SQMQ-4D0*SH*TH/UH)*W3SUTI)
21886 B2UTSR=SQMQ/SQMH**2*(UH*(SH-UH)/(UH+SH)+2D0*TH*SH*
21887 & (SH+2D0*UH)/(UH+SH)**2*(W1TR-W1HR)+(SQMQ-UH/4D0)*
21888 & (0.5D0*W2UR+0.5D0*W2HR-W2TR+W3UTSR)+UH2*(2D0*SQMQ/
21889 & (UH+SH)**2-0.5D0/(UH+SH))*(W2TR-W2HR)+0.5D0*TH*SH/UH*
21890 & (W2HR-2D0*W2TR)+0.125D0*(UH-12D0*SQMQ-4D0*TH*SH/UH)*W3TUSR)
21891 B2UTSI=SQMQ/SQMH**2*(2D0*TH*SH*(SH+2D0*UH)/(UH+SH)**2*
21892 & (W1TI-W1HI)+(SQMQ-UH/4D0)*(0.5D0*W2UI+0.5D0*W2HI-W2TI+
21893 & W3UTSI)+UH2*(2D0*SQMQ/(UH+SH)**2-0.5D0/(UH+SH))*
21894 & (W2TI-W2HI)+0.5D0*TH*SH/UH*(W2HI-2D0*W2TI)+0.125D0*
21895 & (UH-12D0*SQMQ-4D0*TH*SH/UH)*W3TUSI)
21896 B4STUR=0.25D0*EPSH*(-2D0/3D0+0.25D0*(EPSH-1D0)*
21897 & (W2SR-W2HR+W3STUR))
21898 B4STUI=0.25D0*EPSH*0.25D0*(EPSH-1D0)*(W2SI-W2HI+W3STUI)
21899 B4TUSR=0.25D0*EPSH*(-2D0/3D0+0.25D0*(EPSH-1D0)*
21900 & (W2TR-W2HR+W3TUSR))
21901 B4TUSI=0.25D0*EPSH*0.25D0*(EPSH-1D0)*(W2TI-W2HI+W3TUSI)
21902 B4USTR=0.25D0*EPSH*(-2D0/3D0+0.25D0*(EPSH-1D0)*
21903 & (W2UR-W2HR+W3USTR))
21904 B4USTI=0.25D0*EPSH*0.25D0*(EPSH-1D0)*(W2UI-W2HI+W3USTI)
21905 A2STUR=A2STUR+B2STUR+B2SUTR
21906 A2STUI=A2STUI+B2STUI+B2SUTI
21907 A2USTR=A2USTR+B2USTR+B2UTSR
21908 A2USTI=A2USTI+B2USTI+B2UTSI
21909 A2TUSR=A2TUSR+B2TUSR+B2TSUR
21910 A2TUSI=A2TUSI+B2TUSI+B2TSUI
21911 A4STUR=A4STUR+B4STUR+B4USTR+B4TUSR
21912 A4STUI=A4STUI+B4STUI+B4USTI+B4TUSI
21913 1170 CONTINUE
21914 FACGH=COMFAC*FACA*3D0/(128D0*PARU(1)**2)*AEM/XW*AS**3*
21915 & SQMH/SQMW*SQMH**3/(SH*TH*UH)*(A2STUR**2+A2STUI**2+A2USTR**2+
21916 & A2USTI**2+A2TUSR**2+A2TUSI**2+A4STUR**2+A4STUI**2)
21917 FACGH=FACGH*WIDS(25,2)
21918 IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 1180
21919 NCHN=NCHN+1
21920 ISIG(NCHN,1)=21
21921 ISIG(NCHN,2)=21
21922 ISIG(NCHN,3)=1
21923 SIGH(NCHN)=FACGH
21924 1180 CONTINUE
21925
21926 ELSEIF(ISUB.EQ.114.OR.ISUB.EQ.115) THEN
21927
21928 A0STUR=0D0
21929 A0STUI=0D0
21930 A0TSUR=0D0
21931 A0TSUI=0D0
21932 A0UTSR=0D0
21933 A0UTSI=0D0
21934 A1STUR=0D0
21935 A1STUI=0D0
21936 A2STUR=0D0
21937 A2STUI=0D0
21938 ALST=LOG(-SH/TH)
21939 ALSU=LOG(-SH/UH)
21940 ALTU=LOG(TH/UH)
21941 IMAX=2*MSTP(1)
21942 IF(MSTP(38).GE.1.AND.MSTP(38).LE.8) IMAX=MSTP(38)
21943 DO 1190 I=1,IMAX
21944 EI=KCHG(IABS(I),1)/3D0
21945 EIWT=EI**2
21946 IF(ISUB.EQ.115) EIWT=EI
21947 SQMQ=PMAS(I,1)**2
21948 EPSS=4D0*SQMQ/SH
21949 EPST=4D0*SQMQ/TH
21950 EPSU=4D0*SQMQ/UH
21951 IF((MSTP(38).GE.1.AND.MSTP(38).LE.8).OR.EPSS.LT.1D-4) THEN
21952 B0STUR=1D0+(TH-UH)/SH*ALTU+0.5D0*(TH2+UH2)/SH2*(ALTU**2+
21953 & PARU(1)**2)
21954 B0STUI=0D0
21955 B0TSUR=1D0+(SH-UH)/TH*ALSU+0.5D0*(SH2+UH2)/TH2*ALSU**2
21956 B0TSUI=-PARU(1)*((SH-UH)/TH+(SH2+UH2)/TH2*ALSU)
21957 B0UTSR=1D0+(SH-TH)/UH*ALST+0.5D0*(SH2+TH2)/UH2*ALST**2
21958 B0UTSI=-PARU(1)*((SH-TH)/UH+(SH2+TH2)/UH2*ALST)
21959 B1STUR=-1D0
21960 B1STUI=0D0
21961 B2STUR=-1D0
21962 B2STUI=0D0
21963 ELSE
21964 CALL PYWAUX(1,EPSS,W1SR,W1SI)
21965 CALL PYWAUX(1,EPST,W1TR,W1TI)
21966 CALL PYWAUX(1,EPSU,W1UR,W1UI)
21967 CALL PYWAUX(2,EPSS,W2SR,W2SI)
21968 CALL PYWAUX(2,EPST,W2TR,W2TI)
21969 CALL PYWAUX(2,EPSU,W2UR,W2UI)
21970 CALL PYI3AU(EPSS,TH/UH,Y3STUR,Y3STUI)
21971 CALL PYI3AU(EPSS,UH/TH,Y3SUTR,Y3SUTI)
21972 CALL PYI3AU(EPST,SH/UH,Y3TSUR,Y3TSUI)
21973 CALL PYI3AU(EPST,UH/SH,Y3TUSR,Y3TUSI)
21974 CALL PYI3AU(EPSU,SH/TH,Y3USTR,Y3USTI)
21975 CALL PYI3AU(EPSU,TH/SH,Y3UTSR,Y3UTSI)
21976 B0STUR=1D0+(1D0+2D0*TH/SH)*W1TR+(1D0+2D0*UH/SH)*W1UR+
21977 & 0.5D0*((TH2+UH2)/SH2-EPSS)*(W2TR+W2UR)-
21978 & 0.25D0*EPST*(1D0-0.5D0*EPSS)*(Y3SUTR+Y3TUSR)-
21979 & 0.25D0*EPSU*(1D0-0.5D0*EPSS)*(Y3STUR+Y3UTSR)+
21980 & 0.25D0*(-2D0*(TH2+UH2)/SH2+4D0*EPSS+EPST+EPSU+
21981 & 0.5D0*EPST*EPSU)*(Y3TSUR+Y3USTR)
21982 B0STUI=(1D0+2D0*TH/SH)*W1TI+(1D0+2D0*UH/SH)*W1UI+
21983 & 0.5D0*((TH2+UH2)/SH2-EPSS)*(W2TI+W2UI)-
21984 & 0.25D0*EPST*(1D0-0.5D0*EPSS)*(Y3SUTI+Y3TUSI)-
21985 & 0.25D0*EPSU*(1D0-0.5D0*EPSS)*(Y3STUI+Y3UTSI)+
21986 & 0.25D0*(-2D0*(TH2+UH2)/SH2+4D0*EPSS+EPST+EPSU+
21987 & 0.5D0*EPST*EPSU)*(Y3TSUI+Y3USTI)
21988 B0TSUR=1D0+(1D0+2D0*SH/TH)*W1SR+(1D0+2D0*UH/TH)*W1UR+
21989 & 0.5D0*((SH2+UH2)/TH2-EPST)*(W2SR+W2UR)-
21990 & 0.25D0*EPSS*(1D0-0.5D0*EPST)*(Y3TUSR+Y3SUTR)-
21991 & 0.25D0*EPSU*(1D0-0.5D0*EPST)*(Y3TSUR+Y3USTR)+
21992 & 0.25D0*(-2D0*(SH2+UH2)/TH2+4D0*EPST+EPSS+EPSU+
21993 & 0.5D0*EPSS*EPSU)*(Y3STUR+Y3UTSR)
21994 B0TSUI=(1D0+2D0*SH/TH)*W1SI+(1D0+2D0*UH/TH)*W1UI+
21995 & 0.5D0*((SH2+UH2)/TH2-EPST)*(W2SI+W2UI)-
21996 & 0.25D0*EPSS*(1D0-0.5D0*EPST)*(Y3TUSI+Y3SUTI)-
21997 & 0.25D0*EPSU*(1D0-0.5D0*EPST)*(Y3TSUI+Y3USTI)+
21998 & 0.25D0*(-2D0*(SH2+UH2)/TH2+4D0*EPST+EPSS+EPSU+
21999 & 0.5D0*EPSS*EPSU)*(Y3STUI+Y3UTSI)
22000 B0UTSR=1D0+(1D0+2D0*TH/UH)*W1TR+(1D0+2D0*SH/UH)*W1SR+
22001 & 0.5D0*((TH2+SH2)/UH2-EPSU)*(W2TR+W2SR)-
22002 & 0.25D0*EPST*(1D0-0.5D0*EPSU)*(Y3USTR+Y3TSUR)-
22003 & 0.25D0*EPSS*(1D0-0.5D0*EPSU)*(Y3UTSR+Y3STUR)+
22004 & 0.25D0*(-2D0*(TH2+SH2)/UH2+4D0*EPSU+EPST+EPSS+
22005 & 0.5D0*EPST*EPSS)*(Y3TUSR+Y3SUTR)
22006 B0UTSI=(1D0+2D0*TH/UH)*W1TI+(1D0+2D0*SH/UH)*W1SI+
22007 & 0.5D0*((TH2+SH2)/UH2-EPSU)*(W2TI+W2SI)-
22008 & 0.25D0*EPST*(1D0-0.5D0*EPSU)*(Y3USTI+Y3TSUI)-
22009 & 0.25D0*EPSS*(1D0-0.5D0*EPSU)*(Y3UTSI+Y3STUI)+
22010 & 0.25D0*(-2D0*(TH2+SH2)/UH2+4D0*EPSU+EPST+EPSS+
22011 & 0.5D0*EPST*EPSS)*(Y3TUSI+Y3SUTI)
22012 B1STUR=-1D0-0.25D0*(EPSS+EPST+EPSU)*(W2SR+W2TR+W2UR)+
22013 & 0.25D0*(EPSU+0.5D0*EPSS*EPST)*(Y3SUTR+Y3TUSR)+
22014 & 0.25D0*(EPST+0.5D0*EPSS*EPSU)*(Y3STUR+Y3UTSR)+
22015 & 0.25D0*(EPSS+0.5D0*EPST*EPSU)*(Y3TSUR+Y3USTR)
22016 B1STUI=-0.25D0*(EPSS+EPST+EPSU)*(W2SI+W2TI+W2UI)+
22017 & 0.25D0*(EPSU+0.5D0*EPSS*EPST)*(Y3SUTI+Y3TUSI)+
22018 & 0.25D0*(EPST+0.5D0*EPSS*EPSU)*(Y3STUI+Y3UTSI)+
22019 & 0.25D0*(EPSS+0.5D0*EPST*EPSU)*(Y3TSUI+Y3USTI)
22020 B2STUR=-1D0+0.125D0*EPSS*EPST*(Y3SUTR+Y3TUSR)+
22021 & 0.125D0*EPSS*EPSU*(Y3STUR+Y3UTSR)+
22022 & 0.125D0*EPST*EPSU*(Y3TSUR+Y3USTR)
22023 B2STUI=0.125D0*EPSS*EPST*(Y3SUTI+Y3TUSI)+
22024 & 0.125D0*EPSS*EPSU*(Y3STUI+Y3UTSI)+
22025 & 0.125D0*EPST*EPSU*(Y3TSUI+Y3USTI)
22026 ENDIF
22027 A0STUR=A0STUR+EIWT*B0STUR
22028 A0STUI=A0STUI+EIWT*B0STUI
22029 A0TSUR=A0TSUR+EIWT*B0TSUR
22030 A0TSUI=A0TSUI+EIWT*B0TSUI
22031 A0UTSR=A0UTSR+EIWT*B0UTSR
22032 A0UTSI=A0UTSI+EIWT*B0UTSI
22033 A1STUR=A1STUR+EIWT*B1STUR
22034 A1STUI=A1STUI+EIWT*B1STUI
22035 A2STUR=A2STUR+EIWT*B2STUR
22036 A2STUI=A2STUI+EIWT*B2STUI
22037 1190 CONTINUE
22038 ASQSUM=A0STUR**2+A0STUI**2+A0TSUR**2+A0TSUI**2+A0UTSR**2+
22039 & A0UTSI**2+4D0*A1STUR**2+4D0*A1STUI**2+A2STUR**2+A2STUI**2
22040 FACGG=COMFAC*FACA/(16D0*PARU(1)**2)*AS**2*AEM**2*ASQSUM
22041 FACGP=COMFAC*FACA*5D0/(192D0*PARU(1)**2)*AS**3*AEM*ASQSUM
22042 IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 1200
22043 NCHN=NCHN+1
22044 ISIG(NCHN,1)=21
22045 ISIG(NCHN,2)=21
22046 ISIG(NCHN,3)=1
22047 IF(ISUB.EQ.114) SIGH(NCHN)=0.5D0*FACGG
22048 IF(ISUB.EQ.115) SIGH(NCHN)=FACGP
22049 1200 CONTINUE
22050
22051 ELSEIF(ISUB.EQ.116) THEN
22052
22053
22054 ELSEIF(ISUB.EQ.117) THEN
22055
22056
22057 ELSEIF(ISUB.EQ.118) THEN
22058
22059
22060 ENDIF
22061
22062
22063
22064 ELSEIF(ISUB.LE.140) THEN
22065 IF(ISUB.EQ.121) THEN
22066
22067 IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 1210
22068 IA=KFPR(ISUBSV,2)
22069 PMF=PYMRUN(IA,SH)
22070 FACQQH=COMFAC*(4D0*PARU(1)*AEM/XW)*(4D0*PARU(1)*AS)**2*
22071 & (0.5D0*PMF/PMAS(24,1))**2
22072 WID2=1D0
22073 IF(IA.EQ.6.OR.IA.EQ.7.OR.IA.EQ.8) WID2=WIDS(IA,1)
22074 FACQQH=FACQQH*WID2
22075 IF(MSTP(4).GE.1.OR.IHIGG.GE.2) THEN
22076 IKFI=1
22077 IF(IA.LE.10.AND.MOD(IA,2).EQ.0) IKFI=2
22078 IF(IA.GT.10) IKFI=3
22079 FACQQH=FACQQH*PARU(150+10*IHIGG+IKFI)**2
22080 ENDIF
22081 CALL PYQQBH(WTQQBH)
22082 CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
22083 HS=SHR*WDTP(0)
22084 HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
22085 FACBW=(1D0/PARU(1))*VINT(2)*HF/((SH-SQMH)**2+HS**2)
22086 IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
22087 & FACBW=0D0
22088 NCHN=NCHN+1
22089 ISIG(NCHN,1)=21
22090 ISIG(NCHN,2)=21
22091 ISIG(NCHN,3)=1
22092 SIGH(NCHN)=FACQQH*WTQQBH*FACBW
22093 1210 CONTINUE
22094
22095 ELSEIF(ISUB.EQ.122) THEN
22096
22097 IA=KFPR(ISUBSV,2)
22098 PMF=PYMRUN(IA,SH)
22099 FACQQH=COMFAC*(4D0*PARU(1)*AEM/XW)*(4D0*PARU(1)*AS)**2*
22100 & (0.5D0*PMF/PMAS(24,1))**2
22101 WID2=1D0
22102 IF(IA.EQ.6.OR.IA.EQ.7.OR.IA.EQ.8) WID2=WIDS(IA,1)
22103 FACQQH=FACQQH*WID2
22104 IF(MSTP(4).GE.1.OR.IHIGG.GE.2) THEN
22105 IKFI=1
22106 IF(IA.LE.10.AND.MOD(IA,2).EQ.0) IKFI=2
22107 IF(IA.GT.10) IKFI=3
22108 FACQQH=FACQQH*PARU(150+10*IHIGG+IKFI)**2
22109 ENDIF
22110 CALL PYQQBH(WTQQBH)
22111 CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
22112 HS=SHR*WDTP(0)
22113 HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
22114 FACBW=(1D0/PARU(1))*VINT(2)*HF/((SH-SQMH)**2+HS**2)
22115 IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
22116 & FACBW=0D0
22117 DO 1220 I=MMINA,MMAXA
22118 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
22119 & KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1220
22120 NCHN=NCHN+1
22121 ISIG(NCHN,1)=I
22122 ISIG(NCHN,2)=-I
22123 ISIG(NCHN,3)=1
22124 SIGH(NCHN)=FACQQH*WTQQBH*FACBW
22125 1220 CONTINUE
22126
22127 ELSEIF(ISUB.EQ.123) THEN
22128
22129
22130 FACNOR=COMFAC*(4D0*PARU(1)*AEM/(XW*XW1))**3*SQMZ/32D0
22131 IF(MSTP(4).GE.1.OR.IHIGG.GE.2) FACNOR=FACNOR*
22132 & PARU(154+10*IHIGG)**2
22133 FACPRP=1D0/((VINT(215)-VINT(204)**2)*
22134 & (VINT(216)-VINT(209)**2))**2
22135 FACZZ1=FACNOR*FACPRP*(0.5D0*TAUP*VINT(2))*VINT(219)
22136 FACZZ2=FACNOR*FACPRP*VINT(217)*VINT(218)
22137 CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
22138 HS=SHR*WDTP(0)
22139 HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
22140 FACBW=(1D0/PARU(1))*VINT(2)*HF/((SH-SQMH)**2+HS**2)
22141 IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
22142 & FACBW=0D0
22143 DO 1240 I=MMIN1,MMAX1
22144 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 1240
22145 IA=IABS(I)
22146 DO 1230 J=MMIN2,MMAX2
22147 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 1230
22148 JA=IABS(J)
22149 EI=KCHG(IA,1)*ISIGN(1,I)/3D0
22150 AI=SIGN(1D0,KCHG(IA,1)+0.5D0)*ISIGN(1,I)
22151 VI=AI-4D0*EI*XWV
22152 EJ=KCHG(JA,1)*ISIGN(1,J)/3D0
22153 AJ=SIGN(1D0,KCHG(JA,1)+0.5D0)*ISIGN(1,J)
22154 VJ=AJ-4D0*EJ*XWV
22155 FACLR1=(VI**2+AI**2)*(VJ**2+AJ**2)+4D0*VI*AI*VJ*AJ
22156 FACLR2=(VI**2+AI**2)*(VJ**2+AJ**2)-4D0*VI*AI*VJ*AJ
22157 NCHN=NCHN+1
22158 ISIG(NCHN,1)=I
22159 ISIG(NCHN,2)=J
22160 ISIG(NCHN,3)=1
22161 SIGH(NCHN)=(FACLR1*FACZZ1+FACLR2*FACZZ2)*FACBW
22162 1230 CONTINUE
22163 1240 CONTINUE
22164
22165 ELSEIF(ISUB.EQ.124) THEN
22166
22167
22168 FACNOR=COMFAC*(4D0*PARU(1)*AEM/XW)**3*SQMW
22169 IF(MSTP(4).GE.1.OR.IHIGG.GE.2) FACNOR=FACNOR*
22170 & PARU(155+10*IHIGG)**2
22171 FACPRP=1D0/((VINT(215)-VINT(204)**2)*
22172 & (VINT(216)-VINT(209)**2))**2
22173 FACWW=FACNOR*FACPRP*(0.5D0*TAUP*VINT(2))*VINT(219)
22174 CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
22175 HS=SHR*WDTP(0)
22176 HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
22177 FACBW=(1D0/PARU(1))*VINT(2)*HF/((SH-SQMH)**2+HS**2)
22178 IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
22179 & FACBW=0D0
22180 DO 1260 I=MMIN1,MMAX1
22181 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 1260
22182 EI=SIGN(1D0,DBLE(I))*KCHG(IABS(I),1)
22183 DO 1250 J=MMIN2,MMAX2
22184 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 1250
22185 EJ=SIGN(1D0,DBLE(J))*KCHG(IABS(J),1)
22186 IF(EI*EJ.GT.0D0) GOTO 1250
22187 FACLR=VINT(180+I)*VINT(180+J)
22188 NCHN=NCHN+1
22189 ISIG(NCHN,1)=I
22190 ISIG(NCHN,2)=J
22191 ISIG(NCHN,3)=1
22192 SIGH(NCHN)=FACLR*FACWW*FACBW
22193 1250 CONTINUE
22194 1260 CONTINUE
22195
22196 ELSEIF(ISUB.EQ.131.OR.ISUB.EQ.132) THEN
22197
22198 PH=0D0
22199 IF(MINT(15).EQ.22.AND.MINT(107).EQ.0.AND.VINT(3).LT.0D0)
22200 & PH=VINT(3)**2
22201 IF(MINT(16).EQ.22.AND.MINT(108).EQ.0.AND.VINT(4).LT.0D0)
22202 & PH=VINT(4)**2
22203 IF(ISUB.EQ.131) THEN
22204 FGQ=COMFAC*AS*AEM*8D0/3D0*SH**2/(SH+PH)**2*
22205 & ((SH2+UH2-2D0*PH*TH)/(-SH*UH)-2D0*PH*TH/(SH+PH)**2)
22206 ELSE
22207 FGQ=COMFAC*AS*AEM*8D0/3D0*SH**2/(SH+PH)**4*(-4D0*PH*TH)
22208 ENDIF
22209 DO 1280 I=MMINA,MMAXA
22210 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58)) GOTO 1280
22211 EI=KCHG(IABS(I),1)/3D0
22212 FACGQ=FGQ*EI**2
22213 DO 1270 ISDE=1,2
22214 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,22).EQ.0) GOTO 1270
22215 IF(ISDE.EQ.2.AND.KFAC(1,22)*KFAC(2,I).EQ.0) GOTO 1270
22216 NCHN=NCHN+1
22217 ISIG(NCHN,ISDE)=I
22218 ISIG(NCHN,3-ISDE)=22
22219 ISIG(NCHN,3)=1
22220 SIGH(NCHN)=FACGQ
22221 1270 CONTINUE
22222 1280 CONTINUE
22223
22224 ELSEIF(ISUB.EQ.133.OR.ISUB.EQ.134) THEN
22225
22226 PH=0D0
22227 IF(MINT(15).EQ.22.AND.MINT(107).EQ.0.AND.VINT(3).LT.0D0)
22228 & PH=VINT(3)**2
22229 IF(MINT(16).EQ.22.AND.MINT(108).EQ.0.AND.VINT(4).LT.0D0)
22230 & PH=VINT(4)**2
22231 IF(ISUB.EQ.133) THEN
22232 FGQ=COMFAC*AEM**2*2D0*SH**2/(SH+PH)**2*
22233 & ((SH2+UH2-2D0*PH*TH)/(-SH*UH)-2D0*PH*TH/(SH+PH)**2)
22234 ELSE
22235 FGQ=COMFAC*AEM**2*2D0*SH**2/(SH+PH)**4*(-4D0*PH*TH)
22236 ENDIF
22237 DO 1300 I=MMINA,MMAXA
22238 IF(I.EQ.0) GOTO 1300
22239 EI=KCHG(IABS(I),1)/3D0
22240 FACGQ=FGQ*EI**4
22241 DO 1290 ISDE=1,2
22242 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,22).EQ.0) GOTO 1290
22243 IF(ISDE.EQ.2.AND.KFAC(1,22)*KFAC(2,I).EQ.0) GOTO 1290
22244 NCHN=NCHN+1
22245 ISIG(NCHN,ISDE)=I
22246 ISIG(NCHN,3-ISDE)=22
22247 ISIG(NCHN,3)=1
22248 SIGH(NCHN)=FACGQ
22249 1290 CONTINUE
22250 1300 CONTINUE
22251
22252 ELSEIF(ISUB.EQ.135.OR.ISUB.EQ.136) THEN
22253
22254 PH=0D0
22255 IF(MINT(15).EQ.22.AND.MINT(107).EQ.0.AND.VINT(3).LT.0D0)
22256 & PH=VINT(3)**2
22257 IF(MINT(16).EQ.22.AND.MINT(108).EQ.0.AND.VINT(4).LT.0D0)
22258 & PH=VINT(4)**2
22259 CALL PYWIDT(21,SH,WDTP,WDTE)
22260 WDTESU=0D0
22261 DO 1310 I=1,MIN(8,MDCY(21,3))
22262 EF=KCHG(I,1)/3D0
22263 WDTESU=WDTESU+EF**2*(WDTE(I,1)+WDTE(I,2)+WDTE(I,3)+
22264 & WDTE(I,4))
22265 1310 CONTINUE
22266 IF(ISUB.EQ.135) THEN
22267 FACQQ=COMFAC*AEM*AS*WDTESU*SH**2/(SH+PH)**2*
22268 & ((TH2+UH2-2D0*PH*SH)/(TH*UH)+4D0*PH*SH/(SH+PH)**2)
22269 ELSE
22270 FACQQ=COMFAC*AEM*AS*WDTESU*SH**2/(SH+PH)**4*8D0*PH*SH
22271 ENDIF
22272 IF(KFAC(1,21)*KFAC(2,22).NE.0) THEN
22273 NCHN=NCHN+1
22274 ISIG(NCHN,1)=21
22275 ISIG(NCHN,2)=22
22276 ISIG(NCHN,3)=1
22277 SIGH(NCHN)=FACQQ
22278 ENDIF
22279 IF(KFAC(1,22)*KFAC(2,21).NE.0) THEN
22280 NCHN=NCHN+1
22281 ISIG(NCHN,1)=22
22282 ISIG(NCHN,2)=21
22283 ISIG(NCHN,3)=1
22284 SIGH(NCHN)=FACQQ
22285 ENDIF
22286
22287 ELSEIF(ISUB.GE.137.AND.ISUB.LE.140) THEN
22288
22289 PH1=0D0
22290 IF(VINT(3).LT.0D0) PH1=VINT(3)**2
22291 PH2=0D0
22292 IF(VINT(4).LT.0D0) PH2=VINT(4)**2
22293 CALL PYWIDT(22,SH,WDTP,WDTE)
22294 WDTESU=0D0
22295 DO 1320 I=1,MIN(12,MDCY(22,3))
22296 IF(I.LE.8) EF= KCHG(I,1)/3D0
22297 IF(I.GE.9) EF= KCHG(9+2*(I-8),1)/3D0
22298 WDTESU=WDTESU+EF**2*(WDTE(I,1)+WDTE(I,2)+WDTE(I,3)+
22299 & WDTE(I,4))
22300 1320 CONTINUE
22301 DLAMB2=(TH+UH)**2-4D0*PH1*PH2
22302 IF(ISUB.EQ.137) THEN
22303 FPARAM=-SH*(TH+UH)/DLAMB2
22304 FACFF=COMFAC*AEM**2*WDTESU*2D0*SH2/(DLAMB2*TH2*UH2)*
22305 & (TH*UH-PH1*PH2)*((TH2+UH2)*(1D0-2D0*FPARAM*(1D0-FPARAM))-
22306 & 2D0*PH1*PH2*FPARAM**2)
22307 ELSEIF(ISUB.EQ.138) THEN
22308 FACFF=COMFAC*AEM**2*WDTESU*4D0*SH2*SH/(DLAMB2**2*TH2*UH2)*
22309 & PH2*(4D0*(TH*UH-PH1*PH2)*(TH*UH+PH1*SH*(TH-UH)**2/DLAMB2)+
22310 & 2D0*PH1**2*(TH-UH)**2)
22311 ELSEIF(ISUB.EQ.139) THEN
22312 FACFF=COMFAC*AEM**2*WDTESU*4D0*SH2*SH/(DLAMB2**2*TH2*UH2)*
22313 & PH1*(4D0*(TH*UH-PH1*PH2)*(TH*UH+PH2*SH*(TH-UH)**2/DLAMB2)+
22314 & 2D0*PH2**2*(TH-UH)**2)
22315 ELSE
22316 FACFF=COMFAC*AEM**2*WDTESU*32D0*SH2**2/(DLAMB2**3*TH2*UH2)*
22317 & PH1*PH2*(TH*UH-PH1*PH2)*(TH-UH)**2
22318 ENDIF
22319 IF(KFAC(1,22)*KFAC(2,22).NE.0) THEN
22320 NCHN=NCHN+1
22321 ISIG(NCHN,1)=22
22322 ISIG(NCHN,2)=22
22323 ISIG(NCHN,3)=1
22324 SIGH(NCHN)=FACFF
22325 ENDIF
22326
22327 ENDIF
22328
22329
22330
22331 ELSEIF(ISUB.LE.160) THEN
22332 IF(ISUB.EQ.141) THEN
22333
22334 SQMZP=PMAS(32,1)**2
22335 MINT(61)=2
22336 CALL PYWIDT(32,SH,WDTP,WDTE)
22337 HP0=AEM/3D0*SH
22338 HP1=AEM/3D0*XWC*SH
22339 HP2=HP1
22340 HS=SHR*VINT(117)
22341 HSP=SHR*WDTP(0)
22342 FACZP=4D0*COMFAC*3D0
22343 DO 1330 I=MMINA,MMAXA
22344 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1330
22345 EI=KCHG(IABS(I),1)/3D0
22346 AI=SIGN(1D0,EI)
22347 VI=AI-4D0*EI*XWV
22348 IA=IABS(I)
22349 IF(IA.LT.10) THEN
22350 IF(IA.LE.2) THEN
22351 VPI=PARU(123-2*MOD(IABS(I),2))
22352 API=PARU(124-2*MOD(IABS(I),2))
22353 ELSEIF(IA.LE.4) THEN
22354 VPI=PARJ(182-2*MOD(IABS(I),2))
22355 API=PARJ(183-2*MOD(IABS(I),2))
22356 ELSE
22357 VPI=PARJ(190-2*MOD(IABS(I),2))
22358 API=PARJ(191-2*MOD(IABS(I),2))
22359 ENDIF
22360 ELSE
22361 IF(IA.LE.12) THEN
22362 VPI=PARU(127-2*MOD(IABS(I),2))
22363 API=PARU(128-2*MOD(IABS(I),2))
22364 ELSEIF(IA.LE.14) THEN
22365 VPI=PARJ(186-2*MOD(IABS(I),2))
22366 API=PARJ(187-2*MOD(IABS(I),2))
22367 ELSE
22368 VPI=PARJ(194-2*MOD(IABS(I),2))
22369 API=PARJ(195-2*MOD(IABS(I),2))
22370 ENDIF
22371 ENDIF
22372 HI0=HP0
22373 IF(IABS(I).LE.10) HI0=HI0*FACA/3D0
22374 HI1=HP1
22375 IF(IABS(I).LE.10) HI1=HI1*FACA/3D0
22376 HI2=HP2
22377 IF(IABS(I).LE.10) HI2=HI2*FACA/3D0
22378 NCHN=NCHN+1
22379 ISIG(NCHN,1)=I
22380 ISIG(NCHN,2)=-I
22381 ISIG(NCHN,3)=1
22382 SIGH(NCHN)=FACZP*(EI**2/SH2*HI0*HP0*VINT(111)+EI*VI*
22383 & (1D0-SQMZ/SH)/((SH-SQMZ)**2+HS**2)*(HI0*HP1+HI1*HP0)*
22384 & VINT(112)+EI*VPI*(1D0-SQMZP/SH)/((SH-SQMZP)**2+HSP**2)*
22385 & (HI0*HP2+HI2*HP0)*VINT(113)+(VI**2+AI**2)/
22386 & ((SH-SQMZ)**2+HS**2)*HI1*HP1*VINT(114)+(VI*VPI+AI*API)*
22387 & ((SH-SQMZ)*(SH-SQMZP)+HS*HSP)/(((SH-SQMZ)**2+HS**2)*
22388 & ((SH-SQMZP)**2+HSP**2))*(HI1*HP2+HI2*HP1)*VINT(115)+
22389 & (VPI**2+API**2)/((SH-SQMZP)**2+HSP**2)*HI2*HP2*VINT(116))
22390 1330 CONTINUE
22391
22392 ELSEIF(ISUB.EQ.142) THEN
22393
22394 SQMWP=PMAS(34,1)**2
22395 CALL PYWIDT(34,SH,WDTP,WDTE)
22396 HS=SHR*WDTP(0)
22397 FACBW=4D0*COMFAC/((SH-SQMWP)**2+HS**2)*3D0
22398 HP=AEM/(24D0*XW)*SH
22399 DO 1350 I=MMIN1,MMAX1
22400 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 1350
22401 IA=IABS(I)
22402 DO 1340 J=MMIN2,MMAX2
22403 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 1340
22404 JA=IABS(J)
22405 IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 1340
22406 IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
22407 & GOTO 1340
22408 KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
22409 HI=HP*(PARU(133)**2+PARU(134)**2)
22410 IF(IA.LE.10) HI=HP*(PARU(131)**2+PARU(132)**2)*
22411 & VCKM((IA+1)/2,(JA+1)/2)*FACA/3D0
22412 NCHN=NCHN+1
22413 ISIG(NCHN,1)=I
22414 ISIG(NCHN,2)=J
22415 ISIG(NCHN,3)=1
22416 HF=SHR*(WDTE(0,1)+WDTE(0,(5-KCHW)/2)+WDTE(0,4))
22417 SIGH(NCHN)=HI*FACBW*HF
22418 1340 CONTINUE
22419 1350 CONTINUE
22420
22421 ELSEIF(ISUB.EQ.143) THEN
22422
22423 SQMHC=PMAS(37,1)**2
22424 CALL PYWIDT(37,SH,WDTP,WDTE)
22425 HS=SHR*WDTP(0)
22426 FACBW=4D0*COMFAC/((SH-SQMHC)**2+HS**2)
22427 HP=AEM/(8D0*XW)*SH/SQMW*SH
22428 DO 1370 I=MMIN1,MMAX1
22429 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 1370
22430 IA=IABS(I)
22431 IM=(MOD(IA,10)+1)/2
22432 DO 1360 J=MMIN2,MMAX2
22433 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 1360
22434 JA=IABS(J)
22435 JM=(MOD(JA,10)+1)/2
22436 IF(I*J.GT.0.OR.IA.EQ.JA.OR.IM.NE.JM) GOTO 1360
22437 IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
22438 & GOTO 1360
22439 IF(MOD(IA,2).EQ.0) THEN
22440 IU=IA
22441 IL=JA
22442 ELSE
22443 IU=JA
22444 IL=IA
22445 ENDIF
22446 RML=PYMRUN(IL,SH)**2/SH
22447 RMU=PYMRUN(IU,SH)**2/SH
22448 HI=HP*(RML*PARU(141)**2+RMU/PARU(141)**2)
22449 IF(IA.LE.10) HI=HI*FACA/3D0
22450 KCHHC=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
22451 HF=SHR*(WDTE(0,1)+WDTE(0,(5-KCHHC)/2)+WDTE(0,4))
22452 NCHN=NCHN+1
22453 ISIG(NCHN,1)=I
22454 ISIG(NCHN,2)=J
22455 ISIG(NCHN,3)=1
22456 SIGH(NCHN)=HI*FACBW*HF
22457 1360 CONTINUE
22458 1370 CONTINUE
22459
22460 ELSEIF(ISUB.EQ.144) THEN
22461
22462 SQMR=PMAS(40,1)**2
22463 CALL PYWIDT(40,SH,WDTP,WDTE)
22464 HS=SHR*WDTP(0)
22465 FACBW=4D0*COMFAC/((SH-SQMR)**2+HS**2)*3D0
22466 HP=AEM/(12D0*XW)*SH
22467 DO 1390 I=MMIN1,MMAX1
22468 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 1390
22469 IA=IABS(I)
22470 DO 1380 J=MMIN2,MMAX2
22471 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 1380
22472 JA=IABS(J)
22473 IF(I*J.GT.0.OR.IABS(IA-JA).NE.2) GOTO 1380
22474 HI=HP
22475 IF(IA.LE.10) HI=HI*FACA/3D0
22476 HF=SHR*(WDTE(0,1)+WDTE(0,(10-(I+J))/4)+WDTE(0,4))
22477 NCHN=NCHN+1
22478 ISIG(NCHN,1)=I
22479 ISIG(NCHN,2)=J
22480 ISIG(NCHN,3)=1
22481 SIGH(NCHN)=HI*FACBW*HF
22482 1380 CONTINUE
22483 1390 CONTINUE
22484
22485 ELSEIF(ISUB.EQ.145) THEN
22486
22487 SQMLQ=PMAS(39,1)**2
22488 CALL PYWIDT(39,SH,WDTP,WDTE)
22489 HS=SHR*WDTP(0)
22490 FACBW=4D0*COMFAC/((SH-SQMLQ)**2+HS**2)
22491 IF(ABS(SHR-PMAS(39,1)).GT.PARP(48)*PMAS(39,2)) FACBW=0D0
22492 HP=AEM/4D0*SH
22493 KFLQQ=KFDP(MDCY(39,2),1)
22494 KFLQL=KFDP(MDCY(39,2),2)
22495 DO 1410 I=MMIN1,MMAX1
22496 IF(KFAC(1,I).EQ.0) GOTO 1410
22497 IA=IABS(I)
22498 IF(IA.NE.KFLQQ.AND.IA.NE.IABS(KFLQL)) GOTO 1410
22499 DO 1400 J=MMIN2,MMAX2
22500 IF(KFAC(2,J).EQ.0) GOTO 1400
22501 JA=IABS(J)
22502 IF(JA.NE.KFLQQ.AND.JA.NE.IABS(KFLQL)) GOTO 1400
22503 IF(I*J.NE.KFLQQ*KFLQL) GOTO 1400
22504 IF(JA.EQ.IA) GOTO 1400
22505 IF(IA.EQ.KFLQQ) KCHLQ=ISIGN(1,I)
22506 IF(JA.EQ.KFLQQ) KCHLQ=ISIGN(1,J)
22507 HI=HP*PARU(151)
22508 HF=SHR*(WDTE(0,1)+WDTE(0,(5-KCHLQ)/2)+WDTE(0,4))
22509 NCHN=NCHN+1
22510 ISIG(NCHN,1)=I
22511 ISIG(NCHN,2)=J
22512 ISIG(NCHN,3)=1
22513 SIGH(NCHN)=HI*FACBW*HF
22514 1400 CONTINUE
22515 1410 CONTINUE
22516
22517 ELSEIF(ISUB.EQ.146) THEN
22518
22519 KFQSTR=KFPR(ISUB,1)
22520 KCQSTR=PYCOMP(KFQSTR)
22521 KFQEXC=MOD(KFQSTR,KEXCIT)
22522 CALL PYWIDT(KFQSTR,SH,WDTP,WDTE)
22523 HS=SHR*WDTP(0)
22524 FACBW=COMFAC/((SH-PMAS(KCQSTR,1)**2)**2+HS**2)
22525 QF=-PARU(157)/2D0-PARU(158)/2D0
22526 FACBW=FACBW*AEM*QF**2*SH/PARU(155)**2
22527 IF(ABS(SHR-PMAS(KCQSTR,1)).GT.PARP(48)*PMAS(KCQSTR,2))
22528 & FACBW=0D0
22529 HP=SH
22530 DO 1416 I=-KFQEXC,KFQEXC,2*KFQEXC
22531 DO 1413 ISDE=1,2
22532 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,22).EQ.0) GOTO 1413
22533 IF(ISDE.EQ.2.AND.KFAC(1,22)*KFAC(2,I).EQ.0) GOTO 1413
22534 HI=HP
22535 IF(I.GT.0) HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
22536 IF(I.LT.0) HF=SHR*(WDTE(0,1)+WDTE(0,3)+WDTE(0,4))
22537 NCHN=NCHN+1
22538 ISIG(NCHN,ISDE)=I
22539 ISIG(NCHN,3-ISDE)=22
22540 ISIG(NCHN,3)=1
22541 SIGH(NCHN)=HI*FACBW*HF
22542 1413 CONTINUE
22543 1416 CONTINUE
22544
22545 ELSEIF(ISUB.EQ.147.OR.ISUB.EQ.148) THEN
22546
22547 KFQSTR=KFPR(ISUB,1)
22548 KCQSTR=PYCOMP(KFQSTR)
22549 KFQEXC=MOD(KFQSTR,KEXCIT)
22550 CALL PYWIDT(KFQSTR,SH,WDTP,WDTE)
22551 HS=SHR*WDTP(0)
22552 FACBW=COMFAC/((SH-PMAS(KCQSTR,1)**2)**2+HS**2)
22553 FACBW=FACBW*AS*PARU(159)**2*SH/(3D0*PARU(155)**2)
22554 IF(ABS(SHR-PMAS(KCQSTR,1)).GT.PARP(48)*PMAS(KCQSTR,2))
22555 & FACBW=0D0
22556 HP=SH
22557 DO 1430 I=-KFQEXC,KFQEXC,2*KFQEXC
22558 DO 1420 ISDE=1,2
22559 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 1420
22560 IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 1420
22561 HI=HP
22562 IF(I.GT.0) HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
22563 IF(I.LT.0) HF=SHR*(WDTE(0,1)+WDTE(0,3)+WDTE(0,4))
22564 NCHN=NCHN+1
22565 ISIG(NCHN,ISDE)=I
22566 ISIG(NCHN,3-ISDE)=21
22567 ISIG(NCHN,3)=1
22568 SIGH(NCHN)=HI*FACBW*HF
22569 1420 CONTINUE
22570 1430 CONTINUE
22571
22572 ELSEIF(ISUB.EQ.149) THEN
22573
22574 CALL PYWIDT(38,SH,WDTP,WDTE)
22575 HS=SHR*WDTP(0)
22576 FACBW=COMFAC*0.5D0/((SH-PMAS(38,1)**2)**2+HS**2)
22577 IF(ABS(SHR-PMAS(38,1)).GT.PARP(48)*PMAS(38,2)) FACBW=0D0
22578 HP=SH
22579 IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 1440
22580 HI=HP*WDTP(3)
22581 HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
22582 NCHN=NCHN+1
22583 ISIG(NCHN,1)=21
22584 ISIG(NCHN,2)=21
22585 ISIG(NCHN,3)=1
22586 SIGH(NCHN)=HI*FACBW*HF
22587 1440 CONTINUE
22588
22589 ENDIF
22590
22591
22592
22593 ELSEIF(ISUB.LE.200) THEN
22594 IF(ISUB.EQ.161) THEN
22595
22596
22597 FHCQ=COMFAC*FACA*AS*AEM/XW*1D0/24
22598
22599 SQMHC=PMAS(37,1)**2
22600 GMMHC=PMAS(37,1)*PMAS(37,2)
22601 HBW4=GMMHC/((SQM4-SQMHC)**2+GMMHC**2)
22602 CALL PYWIDT(37,SQM4,WDTP,WDTE)
22603 GMMHCC=SQRT(SQM4)*WDTP(0)
22604 HBW4C=GMMHCC/((SQM4-SQMHC)**2+GMMHCC**2)
22605 FHCQ=FHCQ*HBW4C/HBW4
22606 DO 1460 I=MMINA,MMAXA
22607 IA=IABS(I)
22608 IF(IA.NE.5) GOTO 1460
22609 SQML=PYMRUN(IA,SH)**2
22610 IUA=IA+MOD(IA,2)
22611 SQMQ=PYMRUN(IUA,SH)**2
22612 FACHCQ=FHCQ*(SQML*PARU(141)**2+SQMQ/PARU(141)**2)/SQMW*
22613 & (SH/(SQMQ-UH)+2D0*SQMQ*(SQMHC-UH)/(SQMQ-UH)**2+(SQMQ-UH)/SH+
22614 & 2D0*SQMQ/(SQMQ-UH)+2D0*(SQMHC-UH)/(SQMQ-UH)*
22615 & (SQMHC-SQMQ-SH)/SH)
22616 KCHHC=ISIGN(1,KCHG(IA,1)*ISIGN(1,I))
22617 DO 1450 ISDE=1,2
22618 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 1450
22619 IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,1).EQ.0) GOTO 1450
22620 NCHN=NCHN+1
22621 ISIG(NCHN,ISDE)=I
22622 ISIG(NCHN,3-ISDE)=21
22623 ISIG(NCHN,3)=1
22624 SIGH(NCHN)=FACHCQ*WIDS(37,(5-KCHHC)/2)
22625 1450 CONTINUE
22626 1460 CONTINUE
22627
22628 ELSEIF(ISUB.EQ.162) THEN
22629
22630 SQMLQ=PMAS(39,1)**2
22631 FACLQ=COMFAC*FACA*PARU(151)*(AS*AEM/6D0)*(-TH/SH)*
22632 & (UH2+SQMLQ**2)/(UH-SQMLQ)**2
22633 KFLQQ=KFDP(MDCY(39,2),1)
22634 DO 1480 I=MMINA,MMAXA
22635 IF(IABS(I).NE.KFLQQ) GOTO 1480
22636 KCHLQ=ISIGN(1,I)
22637 DO 1470 ISDE=1,2
22638 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 1470
22639 IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 1470
22640 NCHN=NCHN+1
22641 ISIG(NCHN,ISDE)=I
22642 ISIG(NCHN,3-ISDE)=21
22643 ISIG(NCHN,3)=1
22644 SIGH(NCHN)=FACLQ*WIDS(39,(5-KCHLQ)/2)
22645 1470 CONTINUE
22646 1480 CONTINUE
22647
22648 ELSEIF(ISUB.EQ.163) THEN
22649
22650 SQMLQ=PMAS(39,1)**2
22651 FACLQ=COMFAC*FACA*WIDS(39,1)*(AS**2/2D0)*
22652 & (7D0/48D0+3D0*(UH-TH)**2/(16D0*SH2))*(1D0+2D0*SQMLQ*TH/
22653 & (TH-SQMLQ)**2+2D0*SQMLQ*UH/(UH-SQMLQ)**2+4D0*SQMLQ**2/
22654 & ((TH-SQMLQ)*(UH-SQMLQ)))
22655 IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 1490
22656 NCHN=NCHN+1
22657 ISIG(NCHN,1)=21
22658 ISIG(NCHN,2)=21
22659
22660 ISIG(NCHN,3)=INT(1.5D0+PYR(0))
22661 SIGH(NCHN)=FACLQ
22662 1490 CONTINUE
22663
22664 ELSEIF(ISUB.EQ.164) THEN
22665
22666 SQMLQ=PMAS(39,1)**2
22667 FACLQA=COMFAC*WIDS(39,1)*(AS**2/9D0)*
22668 & (SH*(SH-4D0*SQMLQ)-(UH-TH)**2)/SH2
22669 FACLQS=COMFAC*WIDS(39,1)*((PARU(151)**2*AEM**2/8D0)*
22670 & (-SH*TH-(SQMLQ-TH)**2)/TH2+(PARU(151)*AEM*AS/18D0)*
22671 & ((SQMLQ-TH)*(UH-TH)+SH*(SQMLQ+TH))/(SH*TH))
22672 KFLQQ=KFDP(MDCY(39,2),1)
22673 DO 1500 I=MMINA,MMAXA
22674 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
22675 & KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1500
22676 NCHN=NCHN+1
22677 ISIG(NCHN,1)=I
22678 ISIG(NCHN,2)=-I
22679 ISIG(NCHN,3)=1
22680 SIGH(NCHN)=FACLQA
22681 IF(IABS(I).EQ.KFLQQ) SIGH(NCHN)=FACLQA+FACLQS
22682 1500 CONTINUE
22683
22684 ELSEIF(ISUB.EQ.165) THEN
22685
22686 ZRATR=XWC*SH*(SH-SQMZ)/((SH-SQMZ)**2+GMMZ**2)
22687 ZRATI=XWC*SH*GMMZ/((SH-SQMZ)**2+GMMZ**2)
22688 KFF=IABS(KFPR(ISUB,1))
22689 EF=KCHG(KFF,1)/3D0
22690 AF=SIGN(1D0,EF+0.1D0)
22691 VF=AF-4D0*EF*XWV
22692 VALF=VF+AF
22693 VARF=VF-AF
22694 FCOF=1D0
22695 IF(KFF.LE.10) FCOF=3D0
22696 WID2=1D0
22697 IF(KFF.EQ.6) WID2=WIDS(6,1)
22698 IF(KFF.EQ.7.OR.KFF.EQ.8) WID2=WIDS(KFF,1)
22699 IF(KFF.EQ.17.OR.KFF.EQ.18) WID2=WIDS(KFF,1)
22700 DO 1510 I=MMINA,MMAXA
22701 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1510
22702 EI=KCHG(IABS(I),1)/3D0
22703 AI=SIGN(1D0,EI+0.1D0)
22704 VI=AI-4D0*EI*XWV
22705 VALI=VI+AI
22706 VARI=VI-AI
22707 FCOI=1D0
22708 IF(IABS(I).LE.10) FCOI=FACA/3D0
22709 IF((MSTP(5).EQ.1.AND.IABS(I).LE.2).OR.MSTP(5).EQ.2) THEN
22710 FGZA=(EI*EF+VALI*VALF*ZRATR+PARU(156)*SH/
22711 & (AEM*PARU(155)**2))**2+(VALI*VALF*ZRATI)**2+
22712 & (EI*EF+VARI*VARF*ZRATR)**2+(VARI*VARF*ZRATI)**2
22713 ELSE
22714 FGZA=(EI*EF+VALI*VALF*ZRATR)**2+(VALI*VALF*ZRATI)**2+
22715 & (EI*EF+VARI*VARF*ZRATR)**2+(VARI*VARF*ZRATI)**2
22716 ENDIF
22717 FGZB=(EI*EF+VALI*VARF*ZRATR)**2+(VALI*VARF*ZRATI)**2+
22718 & (EI*EF+VARI*VALF*ZRATR)**2+(VARI*VALF*ZRATI)**2
22719 FGZAB=AEM**2*(FGZA*UH2/SH2+FGZB*TH2/SH2)
22720 IF((MSTP(5).EQ.3.AND.IABS(I).EQ.2).OR.(MSTP(5).EQ.4.AND.
22721 & MOD(IABS(I),2).EQ.0)) FGZAB=FGZAB+SH2/(2D0*PARU(155)**4)
22722 NCHN=NCHN+1
22723 ISIG(NCHN,1)=I
22724 ISIG(NCHN,2)=-I
22725 ISIG(NCHN,3)=1
22726 SIGH(NCHN)=COMFAC*FCOI*FCOF*FGZAB*WID2
22727 1510 CONTINUE
22728
22729 ELSEIF(ISUB.EQ.166) THEN
22730
22731 WFAC=(1D0/4D0)*(AEM/XW)**2*UH2/((SH-SQMW)**2+GMMW**2)
22732 WCIFAC=WFAC+SH2/(4D0*PARU(155)**4)
22733 KFF=IABS(KFPR(ISUB,1))
22734 FCOF=1D0
22735 IF(KFF.LE.10) FCOF=3D0
22736 DO 1530 I=MMIN1,MMAX1
22737 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 1530
22738 IA=IABS(I)
22739 DO 1520 J=MMIN2,MMAX2
22740 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 1520
22741 JA=IABS(J)
22742 IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 1520
22743 IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
22744 & GOTO 1520
22745 FCOI=1D0
22746 IF(IA.LE.10) FCOI=VCKM((IA+1)/2,(JA+1)/2)*FACA/3D0
22747 WID2=1D0
22748 IF((I.GT.0.AND.MOD(I,2).EQ.0).OR.(J.GT.0.AND.
22749 & MOD(J,2).EQ.0)) THEN
22750 IF(KFF.EQ.5) WID2=WIDS(6,2)
22751 IF(KFF.EQ.7) WID2=WIDS(8,2)*WIDS(7,3)
22752 IF(KFF.EQ.17) WID2=WIDS(18,2)*WIDS(17,3)
22753 ELSE
22754 IF(KFF.EQ.5) WID2=WIDS(6,3)
22755 IF(KFF.EQ.7) WID2=WIDS(8,3)*WIDS(7,2)
22756 IF(KFF.EQ.17) WID2=WIDS(18,3)*WIDS(17,2)
22757 ENDIF
22758 NCHN=NCHN+1
22759 ISIG(NCHN,1)=I
22760 ISIG(NCHN,2)=J
22761 ISIG(NCHN,3)=1
22762 SIGH(NCHN)=COMFAC*FCOI*FCOF*WFAC*WID2
22763 IF((MSTP(5).EQ.3.AND.IA.LE.2.AND.JA.LE.2).OR.MSTP(5).EQ.4)
22764 & SIGH(NCHN)=COMFAC*FCOI*FCOF*WCIFAC*WID2
22765 1520 CONTINUE
22766 1530 CONTINUE
22767
22768 ELSEIF(ISUB.EQ.167.OR.ISUB.EQ.168) THEN
22769
22770 KFQSTR=KFPR(ISUB,2)
22771 KCQSTR=PYCOMP(KFQSTR)
22772 KFQEXC=MOD(KFQSTR,KEXCIT)
22773 FACQSA=COMFAC*(SH/PARU(155)**2)**2*(1D0-SQM4/SH)
22774 FACQSB=COMFAC*0.25D0*(SH/PARU(155)**2)**2*(1D0-SQM4/SH)*
22775 & (1D0+SQM4/SH)*(1D0+CTH)*(1D0+((SH-SQM4)/(SH+SQM4))*CTH)
22776
22777 GMMQ=PMAS(KCQSTR,1)*PMAS(KCQSTR,2)
22778 HBW4=GMMQ/((SQM4-PMAS(KCQSTR,1)**2)**2+GMMQ**2)
22779 CALL PYWIDT(KFQSTR,SQM4,WDTP,WDTE)
22780 GMMQC=SQRT(SQM4)*WDTP(0)
22781 HBW4C=GMMQC/((SQM4-PMAS(KCQSTR,1)**2)**2+GMMQC**2)
22782 FACQSA=FACQSA*HBW4C/HBW4
22783 FACQSB=FACQSB*HBW4C/HBW4
22784 DO 1550 I=MMIN1,MMAX1
22785 IA=IABS(I)
22786 IF(I.EQ.0.OR.IA.GT.6.OR.KFAC(1,I).EQ.0) GOTO 1550
22787 DO 1540 J=MMIN2,MMAX2
22788 JA=IABS(J)
22789 IF(J.EQ.0.OR.JA.GT.6.OR.KFAC(2,J).EQ.0) GOTO 1540
22790 IF(IA.EQ.KFQEXC.AND.I.EQ.J) THEN
22791 NCHN=NCHN+1
22792 ISIG(NCHN,1)=I
22793 ISIG(NCHN,2)=J
22794 ISIG(NCHN,3)=1
22795 SIGH(NCHN)=(4D0/3D0)*FACQSA
22796 NCHN=NCHN+1
22797 ISIG(NCHN,1)=I
22798 ISIG(NCHN,2)=J
22799 ISIG(NCHN,3)=2
22800 SIGH(NCHN)=(4D0/3D0)*FACQSA
22801 ELSEIF((IA.EQ.KFQEXC.OR.JA.EQ.KFQEXC).AND.I*J.GT.0) THEN
22802 NCHN=NCHN+1
22803 ISIG(NCHN,1)=I
22804 ISIG(NCHN,2)=J
22805 ISIG(NCHN,3)=1
22806 IF(JA.EQ.KFQEXC) ISIG(NCHN,3)=2
22807 SIGH(NCHN)=FACQSA
22808 ELSEIF(IA.EQ.KFQEXC.AND.I.EQ.-J) THEN
22809 NCHN=NCHN+1
22810 ISIG(NCHN,1)=I
22811 ISIG(NCHN,2)=J
22812 ISIG(NCHN,3)=1
22813 SIGH(NCHN)=(8D0/3D0)*FACQSB
22814 NCHN=NCHN+1
22815 ISIG(NCHN,1)=I
22816 ISIG(NCHN,2)=J
22817 ISIG(NCHN,3)=2
22818 SIGH(NCHN)=(8D0/3D0)*FACQSB
22819 ELSEIF(I.EQ.-J) THEN
22820 NCHN=NCHN+1
22821 ISIG(NCHN,1)=I
22822 ISIG(NCHN,2)=J
22823 ISIG(NCHN,3)=1
22824 SIGH(NCHN)=FACQSB
22825 NCHN=NCHN+1
22826 ISIG(NCHN,1)=I
22827 ISIG(NCHN,2)=J
22828 ISIG(NCHN,3)=2
22829 SIGH(NCHN)=FACQSB
22830 ELSEIF(IA.EQ.KFQEXC.OR.JA.EQ.KFQEXC) THEN
22831 NCHN=NCHN+1
22832 ISIG(NCHN,1)=I
22833 ISIG(NCHN,2)=J
22834 ISIG(NCHN,3)=1
22835 IF(JA.EQ.KFQEXC) ISIG(NCHN,3)=2
22836 SIGH(NCHN)=FACQSB
22837 ENDIF
22838 1540 CONTINUE
22839 1550 CONTINUE
22840
22841 ELSEIF(ISUB.EQ.169) THEN
22842
22843 KFQSTR=KFPR(ISUB,2)
22844 KCQSTR=PYCOMP(KFQSTR)
22845 KFQEXC=MOD(KFQSTR,KEXCIT)
22846 FACQSB=(COMFAC/6D0)*(SH/PARU(155)**2)**2*(1D0-SQM4/SH)*
22847 & (1D0+SQM4/SH)*(1D0+CTH)*(1D0+((SH-SQM4)/(SH+SQM4))*CTH)
22848
22849 GMMQ=PMAS(KCQSTR,1)*PMAS(KCQSTR,2)
22850 HBW4=GMMQ/((SQM4-PMAS(KCQSTR,1)**2)**2+GMMQ**2)
22851 CALL PYWIDT(KFQSTR,SQM4,WDTP,WDTE)
22852 GMMQC=SQRT(SQM4)*WDTP(0)
22853 HBW4C=GMMQC/((SQM4-PMAS(KCQSTR,1)**2)**2+GMMQC**2)
22854 FACQSB=FACQSB*HBW4C/HBW4
22855 DO 1555 I=MMIN1,MMAX1
22856 IA=IABS(I)
22857 IF(I.EQ.0.OR.IA.GT.6.OR.KFAC(1,I).EQ.0) GOTO 1555
22858 J=-I
22859 JA=IABS(J)
22860 IF(J.EQ.0.OR.JA.GT.6.OR.KFAC(2,J).EQ.0) GOTO 1555
22861 NCHN=NCHN+1
22862 ISIG(NCHN,1)=I
22863 ISIG(NCHN,2)=J
22864 ISIG(NCHN,3)=1
22865 SIGH(NCHN)=FACQSB
22866 NCHN=NCHN+1
22867 ISIG(NCHN,1)=I
22868 ISIG(NCHN,2)=J
22869 ISIG(NCHN,3)=2
22870 SIGH(NCHN)=FACQSB
22871 1555 CONTINUE
22872
22873 ELSEIF(ISUB.EQ.191) THEN
22874
22875 SQMRHT=PMAS(54,1)**2
22876 CALL PYWIDT(54,SH,WDTP,WDTE)
22877 HS=SHR*WDTP(0)
22878 FACBW=12D0*COMFAC/((SH-SQMRHT)**2+HS**2)
22879 IF(ABS(SHR-PMAS(54,1)).GT.PARP(48)*PMAS(54,2)) FACBW=0D0
22880 HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
22881 ALPRHT=2.91D0*(3D0/PARP(144))
22882 HP=(1D0/6D0)*(AEM**2/ALPRHT)*(SQMRHT**2/SH)
22883 XWRHT=(1D0-2D0*XW)/(4D0*XW*(1D0-XW))
22884 BWZR=XWRHT*SH*(SH-SQMZ)/((SH-SQMZ)**2+GMMZ**2)
22885 BWZI=XWRHT*SH*GMMZ/((SH-SQMZ)**2+GMMZ**2)
22886 DO 1560 I=MMINA,MMAXA
22887 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1560
22888 IA=IABS(I)
22889 EI=KCHG(IABS(I),1)/3D0
22890 AI=SIGN(1D0,EI+0.1D0)
22891 VI=AI-4D0*EI*XWV
22892 VALI=0.5D0*(VI+AI)
22893 VARI=0.5D0*(VI-AI)
22894 HI=HP*((EI+VALI*BWZR)**2+(VALI*BWZI)**2+
22895 & (EI+VARI*BWZR)**2+(VARI*BWZI)**2)
22896 IF(IA.LE.10) HI=HI*FACA/3D0
22897 NCHN=NCHN+1
22898 ISIG(NCHN,1)=I
22899 ISIG(NCHN,2)=-I
22900 ISIG(NCHN,3)=1
22901 SIGH(NCHN)=HI*FACBW*HF
22902 1560 CONTINUE
22903
22904 ELSEIF(ISUB.EQ.192) THEN
22905
22906 SQMRHT=PMAS(55,1)**2
22907 CALL PYWIDT(55,SH,WDTP,WDTE)
22908 HS=SHR*WDTP(0)
22909 FACBW=12D0*COMFAC/((SH-SQMRHT)**2+HS**2)
22910 IF(ABS(SHR-PMAS(55,1)).GT.PARP(48)*PMAS(55,2)) FACBW=0D0
22911 ALPRHT=2.91D0*(3D0/PARP(144))
22912 HP=(1D0/6D0)*(AEM**2/ALPRHT)*(SQMRHT**2/SH)*
22913 & (0.25D0/XW**2)*SH**2/((SH-SQMW)**2+GMMW**2)
22914 DO 1580 I=MMIN1,MMAX1
22915 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 1580
22916 IA=IABS(I)
22917 DO 1570 J=MMIN2,MMAX2
22918 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 1570
22919 JA=IABS(J)
22920 IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 1570
22921 IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
22922 & GOTO 1570
22923 KCHR=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
22924 HF=SHR*(WDTE(0,1)+WDTE(0,(5-KCHR)/2)+WDTE(0,4))
22925 HI=HP
22926 IF(IA.LE.10) HI=HI*VCKM((IA+1)/2,(JA+1)/2)*FACA/3D0
22927 NCHN=NCHN+1
22928 ISIG(NCHN,1)=I
22929 ISIG(NCHN,2)=J
22930 ISIG(NCHN,3)=1
22931 SIGH(NCHN)=HI*FACBW*HF
22932 1570 CONTINUE
22933 1580 CONTINUE
22934
22935 ELSEIF(ISUB.EQ.193) THEN
22936
22937 SQMOMT=PMAS(56,1)**2
22938 CALL PYWIDT(56,SH,WDTP,WDTE)
22939 HS=SHR*WDTP(0)
22940 FACBW=12D0*COMFAC/((SH-SQMOMT)**2+HS**2)
22941 IF(ABS(SHR-PMAS(56,1)).GT.PARP(48)*PMAS(56,2)) FACBW=0D0
22942 HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
22943 ALPRHT=2.91D0*(3D0/PARP(144))
22944 HP=(1D0/6D0)*(AEM**2/ALPRHT)*(SQMOMT**2/SH)*
22945 & (2D0*PARP(143)-1D0)**2
22946 BWZR=(0.5D0/(1D0-XW))*SH*(SH-SQMZ)/((SH-SQMZ)**2+GMMZ**2)
22947 BWZI=(0.5D0/(1D0-XW))*SH*GMMZ/((SH-SQMZ)**2+GMMZ**2)
22948 DO 1590 I=MMINA,MMAXA
22949 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1590
22950 IA=IABS(I)
22951 EI=KCHG(IABS(I),1)/3D0
22952 AI=SIGN(1D0,EI+0.1D0)
22953 VI=AI-4D0*EI*XWV
22954 VALI=0.5D0*(VI+AI)
22955 VARI=0.5D0*(VI-AI)
22956 HI=HP*((EI-VALI*BWZR)**2+(VALI*BWZI)**2+
22957 & (EI-VARI*BWZR)**2+(VARI*BWZI)**2)
22958 IF(IA.LE.10) HI=HI*FACA/3D0
22959 NCHN=NCHN+1
22960 ISIG(NCHN,1)=I
22961 ISIG(NCHN,2)=-I
22962 ISIG(NCHN,3)=1
22963 SIGH(NCHN)=HI*FACBW*HF
22964 1590 CONTINUE
22965
22966 ELSEIF(ISUB.EQ.194) THEN
22967
22968 KFA=KFPR(ISUBSV,1)
22969 ALPRHT=2.91D0*(3D0/PARP(144))
22970 HP=AEM**2*COMFAC
22971 TANW=SQRT(PARU(102)/(1D0-PARU(102)))
22972 CT2W=(1D0-2D0*PARU(102))/(2D0*PARU(102)/TANW)
22973
22974 QUPD=2D0*PARP(143)-1D0
22975 FAR=SQRT(AEM/ALPRHT)
22976 FAO=FAR*QUPD
22977 FZR=FAR*CT2W
22978 FZO=-FAO*TANW
22979 SFAR=FAR**2
22980 SFAO=FAO**2
22981 SFZR=FZR**2
22982 SFZO=FZO**2
22983 CALL PYWIDT(23,SH,WDTP,WDTE)
22984 SSMZ=CMPLX(1D0-PMAS(23,1)**2/SH,WDTP(0)/SHR)
22985 CALL PYWIDT(54,SH,WDTP,WDTE)
22986 SSMR=CMPLX(1D0-PMAS(54,1)**2/SH,WDTP(0)/SHR)
22987 CALL PYWIDT(56,SH,WDTP,WDTE)
22988 SSMO=CMPLX(1D0-PMAS(56,1)**2/SH,WDTP(0)/SHR)
22989 DETD=(FAR*FZO-FAO*FZR)**2+SSMZ*SSMR*SSMO-SFZR*SSMO-
22990 $ SFZO*SSMR-SFAR*SSMO*SSMZ-SFAO*SSMR*SSMZ
22991 DAA=(-Sfzr*SSMO - Sfzo*SSMR + SSMO*SSMR*SSMZ)/DETD/SH
22992 DZZ=(-Sfar*SSMO - Sfao*SSMR + SSMO*SSMR)/DETD/SH
22993 DAZ=(far*fzr*SSMO + fao*fzo*SSMR)/DETD/SH
22994
22995 XWRHT=1D0/(4D0*XW*(1D0-XW))
22996 KFF=IABS(KFPR(ISUB,1))
22997 EF=KCHG(KFF,1)/3D0
22998 AF=SIGN(1D0,EF+0.1D0)
22999 VF=AF-4D0*EF*XWV
23000 VALF=0.5D0*(VF+AF)
23001 VARF=0.5D0*(VF-AF)
23002 FCOF=1D0
23003 IF(KFF.LE.10) FCOF=3D0
23004
23005 WID2=1D0
23006 IF(KFF.GE.6.AND.KFF.LE.8) WID2=WIDS(KFF,1)
23007 IF(KFF.EQ.17.OR.KFF.EQ.18) WID2=WIDS(KFF,1)
23008 DZZ=DZZ*CMPLX(XWRHT,0D0)
23009 DAZ=DAZ*CMPLX(SQRT(XWRHT),0D0)
23010
23011 DO 1600 I=MMINA,MMAXA
23012 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1600
23013 EI=KCHG(IABS(I),1)/3D0
23014 AI=SIGN(1D0,EI+0.1D0)
23015 VI=AI-4D0*EI*XWV
23016 VALI=0.5D0*(VI+AI)
23017 VARI=0.5D0*(VI-AI)
23018 FCOI=FCOF
23019 IF(IABS(I).LE.10) FCOI=FCOI/3D0
23020 DIFLL=ABS(EI*EF*DAA+VALI*VALF*DZZ+DAZ*(EI*VALF+EF*VALI))**2
23021 DIFRR=ABS(EI*EF*DAA+VARI*VARF*DZZ+DAZ*(EI*VARF+EF*VARI))**2
23022 DIFLR=ABS(EI*EF*DAA+VALI*VARF*DZZ+DAZ*(EI*VARF+EF*VALI))**2
23023 DIFRL=ABS(EI*EF*DAA+VARI*VALF*DZZ+DAZ*(EI*VALF+EF*VARI))**2
23024 FACSIG=(DIFLL+DIFRR)*((UH-SQM4)**2+SH*SQM4)+
23025 & (DIFLR+DIFRL)*((TH-SQM3)**2+SH*SQM3)
23026 NCHN=NCHN+1
23027 ISIG(NCHN,1)=I
23028 ISIG(NCHN,2)=-I
23029 ISIG(NCHN,3)=1
23030 SIGH(NCHN)=HP*FCOI*FACSIG*WID2
23031 1600 CONTINUE
23032
23033 ELSEIF(ISUB.EQ.195) THEN
23034
23035 KFA=KFPR(ISUBSV,1)
23036 KFB=KFA+1
23037 ALPRHT=2.91D0*(3D0/PARP(144))
23038 FACTC=COMFAC*(AEM**2/12D0/XW**2)*(UH-SQM3)*(UH-SQM4)*3D0
23039
23040 FWR=SQRT(AEM/ALPRHT)/(2D0*SQRT(XW))
23041 CALL PYWIDT(24,SH,WDTP,WDTE)
23042 SSMZ=CMPLX(1D0-PMAS(24,1)**2/SH,WDTP(0)/SHR)
23043 CALL PYWIDT(55,SH,WDTP,WDTE)
23044 SSMR=CMPLX(1D0-PMAS(54,1)**2/SH,WDTP(0)/SHR)
23045
23046 FCOF=1D0
23047 IF(KFA.LE.8) FCOF=3D0
23048 DETD=SSMZ*SSMR-CMPLX(FWR**2,0D0)
23049 HP=FACTC*ABS(SSMR/DETD)**2/SH**2*FCOF
23050
23051 DO 1605 I=MMIN1,MMAX1
23052 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 1605
23053 IA=IABS(I)
23054 DO 1604 J=MMIN2,MMAX2
23055 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 1604
23056 JA=IABS(J)
23057 IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 1604
23058 IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
23059 & GOTO 1604
23060 KCHR=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
23061 HI=HP
23062 IF(IA.LE.10) HI=HI*VCKM((IA+1)/2,(JA+1)/2)/3D0
23063 NCHN=NCHN+1
23064 ISIG(NCHN,1)=I
23065 ISIG(NCHN,2)=J
23066 ISIG(NCHN,3)=1
23067 SIGH(NCHN)=HI*WIDS(KFA,(5-KCHR)/2)*WIDS(KFB,(5+KCHR)/2)
23068 1604 CONTINUE
23069 1605 CONTINUE
23070
23071 ENDIF
23072
23073
23074
23075
23076 ELSEIF(ISUB.LE.210) THEN
23077 IF(ISUB.EQ.201) THEN
23078
23079 COMFAC=COMFAC*WIDS(PYCOMP(KFPR(ISUBSV,1)),1)
23080 DO 1630 I=MMIN1,MMAX1
23081 IA=IABS(I)
23082 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1630
23083 EI=KCHG(IA,1)/3D0
23084 TT3I=SIGN(1D0,EI+1D-6)/2D0
23085 EJ=-1D0
23086 TT3J=-1D0/2D0
23087 FCOL=1D0
23088
23089 IF(IA.GE.11) FCOL=3D0
23090 IF(ISUBSV.EQ.301) THEN
23091 A1=1D0
23092 A2=0D0
23093 ELSEIF(ILR.EQ.1) THEN
23094 A1=SFMIX(KFID,3)**2
23095 A2=SFMIX(KFID,4)**2
23096 ELSEIF(ILR.EQ.0) THEN
23097 A1=SFMIX(KFID,1)**2
23098 A2=SFMIX(KFID,2)**2
23099 ENDIF
23100 XLQ=(TT3J-EJ*XW)*A1
23101 XRQ=(-EJ*XW)*A2
23102 XLF=(TT3I-EI*XW)
23103 XRF=(-EI*XW)
23104 TAA=2D0*(EI*EJ)**2
23105 TZZ=(XLF**2+XRF**2)*(XLQ+XRQ)**2/XW**2/XW1**2
23106 TZZ=TZZ/((1D0-SQMZ/SH)**2+SQMZ*ZWID/SH**2)
23107 TAZ=2D0*EI*EJ*(XLQ+XRQ)*(XLF+XRF)/XW/XW1
23108 TAZ=TAZ/((1D0-SQMZ/SH)**2+SQMZ*(ZWID/SH)**2)*(1D0-SQMZ/SH)
23109 TNN=0.0D0
23110 TAN=0.0D0
23111 TZN=0.0D0
23112 IF(IA.GE.11.AND.IA.LE.18.AND.KFID.EQ.IA) THEN
23113 FAC2=SQRT(2D0)
23114 TNN1=0D0
23115 TNN2=0D0
23116 TNN3=0D0
23117 DO 1620 II=1,4
23118 DK=1D0/(TH-SMZ(II)**2)
23119 FLEK=-FAC2*(TT3I*ZMIX(II,2)-TANW*(TT3I-EI)*
23120 & ZMIX(II,1))
23121 FREK=FAC2*TANW*EI*ZMIX(II,1)
23122 TNN1=TNN1+FLEK**2*DK
23123 TNN2=TNN2+FREK**2*DK
23124 DO 1610 JJ=1,4
23125 DL=1D0/(TH-SMZ(JJ)**2)
23126 FLEL=-FAC2*(TT3J*ZMIX(JJ,2)-TANW*(TT3J-EJ)*
23127 & ZMIX(JJ,1))
23128 FREL=FAC2*TANW*EJ*ZMIX(JJ,1)
23129 TNN3=TNN3+FLEK*FREK*FLEL*FREL*DK*DL*SMZ(II)*SMZ(JJ)
23130 1610 CONTINUE
23131 1620 CONTINUE
23132 TNN=(UH*TH-SQM3*SQM4)*(A1**2*TNN1**2+A2**2*TNN2**2)
23133 TNN=(TNN+2D0*SH*A1*A2*TNN3)/4D0/XW**2
23134 TZN=(UH*TH-SQM3*SQM4)*(XLQ+XRQ)*
23135 & (TNN1*XLF*A1+TNN2*XRF*A2)
23136 TZN=TZN/((1D0-SQMZ/SH)**2+SQMZ*(ZWID/SH)**2)*
23137 & (1D0-SQMZ/SH)/SH
23138 TZN=TZN/XW**2/XW1
23139 TAN=EI*EJ*(UH*TH-SQM3*SQM4)/SH*(A1*TNN1+A2*TNN2)/XW
23140 ENDIF
23141 FACQQ1=COMFAC*AEM**2*(TAA+TZZ+TAZ)*FCOL/3D0
23142 FACQQ1=FACQQ1*( UH*TH-SQM3*SQM4 )/SH**2
23143 FACQQ2=COMFAC*AEM**2*(TNN+TZN+TAN)*FCOL/3D0
23144 NCHN=NCHN+1
23145 ISIG(NCHN,1)=I
23146 ISIG(NCHN,2)=-I
23147 ISIG(NCHN,3)=1
23148 SIGH(NCHN)=FACQQ1+FACQQ2
23149 1630 CONTINUE
23150
23151 ELSEIF(ISUB.EQ.203) THEN
23152
23153 DO 1660 I=MMIN1,MMAX1
23154 IA=IABS(I)
23155 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1660
23156 EI=KCHG(IABS(I),1)/3D0
23157 TT3I=SIGN(1D0,EI)/2D0
23158 EJ=-1
23159 TT3J=-1D0/2D0
23160 FCOL=1D0
23161
23162 IF(IA.GE.11) FCOL=3D0
23163 A1=SFMIX(KFID,1)**2
23164 A2=SFMIX(KFID,2)**2
23165 XLQ=(TT3J-EJ*XW)
23166 XRQ=(-EJ*XW)
23167 XLF=(TT3I-EI*XW)
23168 XRF=(-EI*XW)
23169 TZZ=(XLF**2+XRF**2)*(XLQ-XRQ)**2/XW**2/XW1**2*A1*A2
23170 TZZ=TZZ/((1D0-SQMZ/SH)**2+SQMZ*(ZWID/SH)**2)
23171 TNN=0.0D0
23172 TZN=0.0D0
23173 IF(IA.GE.11.AND.IA.LE.18.AND.KFID.EQ.IA) THEN
23174 FAC2=SQRT(2D0)
23175 TNN1=0D0
23176 TNN2=0D0
23177 TNN3=0D0
23178 DO 1650 II=1,4
23179 DK=1D0/(TH-SMZ(II)**2)
23180 FLEK=-FAC2*(TT3I*ZMIX(II,2)-TANW*(TT3I-EI)*
23181 & ZMIX(II,1))
23182 FREK=FAC2*TANW*EI*ZMIX(II,1)
23183 TNN1=TNN1+FLEK**2*DK
23184 TNN2=TNN2+FREK**2*DK
23185 DO 1640 JJ=1,4
23186 DL=1D0/(TH-SMZ(JJ)**2)
23187 FLEL=-FAC2*(TT3J*ZMIX(JJ,2)-TANW*(TT3J-EJ)*
23188 & ZMIX(JJ,1))
23189 FREL=FAC2*TANW*EJ*ZMIX(JJ,1)
23190 TNN3=TNN3+FLEK*FREK*FLEL*FREL*DK*DL*SMZ(II)*SMZ(JJ)
23191 1640 CONTINUE
23192 1650 CONTINUE
23193 TNN=(UH*TH-SQM3*SQM4)*A1*A2*(TNN2**2+TNN1**2)
23194 TNN=(TNN+SH*(A2**2+A1**2)*TNN3)/4D0
23195 TZN=(UH*TH-SQM3*SQM4)*A1*A2
23196 TZN=TZN*(XLQ-XRQ)*(XLF*TNN1-XRF*TNN2)/XW1
23197 TZN=TZN/((1D0-SQMZ/SH)**2+SQMZ*(ZWID/SH)**2)*
23198 & (1D0-SQMZ/SH)/SH
23199 ENDIF
23200 FACQQ1=COMFAC*AEM**2*TZZ*FCOL/3D0*(UH*TH-SQM3*SQM4)/SH2
23201 FACQQ2=COMFAC*AEM**2/XW**2*(TNN+TZN)*FCOL/3D0
23202 FACQQ=(FACQQ1+FACQQ2)
23203 NCHN=NCHN+1
23204 ISIG(NCHN,1)=I
23205 ISIG(NCHN,2)=-I
23206 ISIG(NCHN,3)=1
23207 SIGH(NCHN)=FACQQ*WIDS(PYCOMP(KFPR(ISUBSV,1)),2)*
23208 & WIDS(PYCOMP(KFPR(ISUBSV,2)),3)
23209 NCHN=NCHN+1
23210 ISIG(NCHN,1)=I
23211 ISIG(NCHN,2)=-I
23212 ISIG(NCHN,3)=2
23213 SIGH(NCHN)=FACQQ*WIDS(PYCOMP(KFPR(ISUBSV,1)),3)*
23214 & WIDS(PYCOMP(KFPR(ISUBSV,2)),2)
23215 1660 CONTINUE
23216
23217 ELSEIF(ISUB.EQ.210) THEN
23218
23219 FAC0=RKF*COMFAC*AEM**2/XW**2/12D0
23220 FAC1=(TH*UH-SQM3*SQM4)/((SH-SQMW)**2+WWID**2*SQMW)
23221 DO 1680 I=MMIN1,MMAX1
23222 IA=IABS(I)
23223 IF(I.EQ.0.OR.IA.GT.10.OR.KFAC(1,I).EQ.0) GOTO 1680
23224 DO 1670 J=MMIN2,MMAX2
23225 JA=IABS(J)
23226 IF(J.EQ.0.OR.JA.GT.10.OR.KFAC(2,J).EQ.0) GOTO 1670
23227 IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 1670
23228 FCKM=3D0
23229 IF(IA.LE.10) FCKM=VCKM((IA+1)/2,(JA+1)/2)
23230 KCHSUM=KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J)
23231 KCHW=2
23232 IF(KCHSUM.LT.0) KCHW=3
23233 NCHN=NCHN+1
23234 ISIG(NCHN,1)=I
23235 ISIG(NCHN,2)=J
23236 ISIG(NCHN,3)=1
23237 IF(ISUBSV.EQ.297.OR.ISUBSV.EQ.298) THEN
23238 FACR=WIDS(PYCOMP(KFPR(ISUBSV,1)),5-KCHW)*
23239 & WIDS(PYCOMP(KFPR(ISUBSV,2)),2)
23240 ELSE
23241 FACR=WIDS(PYCOMP(KFPR(ISUBSV,1)),5-KCHW)*
23242 & WIDS(PYCOMP(KFPR(ISUBSV,2)),KCHW)
23243 ENDIF
23244 SIGH(NCHN)=FAC0*FAC1*FCKM*FACR
23245 1670 CONTINUE
23246 1680 CONTINUE
23247 ENDIF
23248
23249 ELSEIF(ISUB.LE.220) THEN
23250 IF(ISUB.EQ.213) THEN
23251
23252 IF(ISUBSV.EQ.299.OR.ISUBSV.EQ.300) THEN
23253 FACR=WIDS(PYCOMP(KFPR(ISUBSV,1)),2)*
23254 & WIDS(PYCOMP(KFPR(ISUBSV,2)),2)
23255 ELSE
23256 FACR=WIDS(PYCOMP(KFPR(ISUBSV,1)),1)
23257 ENDIF
23258 COMFAC=COMFAC*FACR
23259 PROPZ=(SH-SQMZ)**2+ZWID**2*SQMZ
23260 XLL=0.5D0
23261 XLR=0.0D0
23262 DO 1690 I=MMIN1,MMAX1
23263 IA=IABS(I)
23264 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1690
23265 EI=KCHG(IA,1)/3D0
23266 FCOL=1D0
23267
23268 IF(IA.GE.11) FCOL=3D0
23269 XLQ=(SIGN(1D0,EI)-2D0*EI*XW)/2D0
23270 XRQ=-EI*XW
23271 TZC=0.0D0
23272 TCC=0.0D0
23273 IF(IA.GE.11.AND.KFID.EQ.IA+1) THEN
23274 TZC=VMIX(1,1)**2/(TH-SMW(1)**2)+VMIX(2,1)**2/
23275 & (TH-SMW(2)**2)
23276 TCC=TZC**2
23277 TZC=TZC/XW1*(SH-SQMZ)/PROPZ*XLQ*XLL
23278 ENDIF
23279 FACQQ1=(XLQ**2+XRQ**2)*(XLL+XLR)**2/XW1**2/PROPZ
23280 FACQQ2=TZC+TCC/4D0
23281 NCHN=NCHN+1
23282 ISIG(NCHN,1)=I
23283 ISIG(NCHN,2)=-I
23284 ISIG(NCHN,3)=1
23285 SIGH(NCHN)=(FACQQ1+FACQQ2)*RKF*(UH*TH-SQM3*SQM4)*COMFAC
23286 & *AEM**2*FCOL/3D0/XW**2
23287 1690 CONTINUE
23288
23289 ELSEIF(ISUB.EQ.216) THEN
23290
23291 IF(IZID1.EQ.IZID2) THEN
23292 COMFAC=COMFAC*WIDS(PYCOMP(KFPR(ISUBSV,1)),1)
23293 ELSE
23294 COMFAC=COMFAC*WIDS(PYCOMP(KFPR(ISUBSV,1)),2)*
23295 & WIDS(PYCOMP(KFPR(ISUBSV,2)),2)
23296 ENDIF
23297 FACGG1=COMFAC*AEM**2/3D0/XW**2
23298 IF(IZID1.EQ.IZID2) FACGG1=FACGG1/2D0
23299 ZM12=SQM3
23300 ZM22=SQM4
23301 WU2 = (UH-ZM12)*(UH-ZM22)/SH2
23302 WT2 = (TH-ZM12)*(TH-ZM22)/SH2
23303 XS2 = SMZ(IZID1)*SMZ(IZID2)/SH
23304 PROPZ2 = (SH-SQMZ)**2 + SQMZ*ZWID**2
23305 REPRPZ = (SH-SQMZ)/PROPZ2
23306 OLPP=(-ZMIX(IZID1,3)*ZMIX(IZID2,3)+
23307 & ZMIX(IZID1,4)*ZMIX(IZID2,4))/2D0
23308 DO 1700 I=MMINA,MMAXA
23309 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1700
23310 EI=KCHG(IABS(I),1)/3D0
23311 FCOL=1D0
23312 IF(ABS(I).GE.11) FCOL=3D0
23313 XLQ=(SIGN(1D0,EI)-2D0*EI*XW)/2D0
23314 XRQ=-EI*XW
23315 XLQ=XLQ/XW1
23316 XRQ=XRQ/XW1
23317
23318 FR1=TANW*EI*ZMIX(IZID1,1)
23319 FR2=TANW*EI*ZMIX(IZID2,1)
23320 FL1=-(SIGN(1D0,EI)*ZMIX(IZID1,2)-TANW*
23321 & (SIGN(1D0,EI)-2D0*EI)*ZMIX(IZID1,1))/2D0
23322 FL2=-(SIGN(1D0,EI)*ZMIX(IZID2,2)-TANW*
23323 & (SIGN(1D0,EI)-2D0*EI)*ZMIX(IZID2,1))/2D0
23324 FR12=FR1**2
23325 FR22=FR2**2
23326 FL12=FL1**2
23327 FL22=FL2**2
23328 XML2=PMAS(PYCOMP(KSUSY1+IABS(I)),1)**2
23329 XMR2=PMAS(PYCOMP(KSUSY2+IABS(I)),1)**2
23330 FACS=OLPP**2*(XLQ**2+XRQ**2)*(WU2+WT2-2D0*XS2)*(SH2/PROPZ2)
23331 FACT=FL12*FL22*(WT2*SH2/(TH-XML2)**2+WU2*SH2/(UH-XML2)**2-
23332 & 2D0*XS2*SH2/(TH-XML2)/(UH-XML2))
23333 FACU=FR12*FR22*(WT2*SH2/(TH-XMR2)**2+WU2*SH2/(UH-XMR2)**2-
23334 & 2D0*XS2*SH2/(TH-XMR2)/(UH-XMR2))
23335 FACST=2D0*REPRPZ*OLPP*XLQ*FL1*FL2*( (WT2-XS2)*SH2/
23336 & (TH-XML2) + (WU2-XS2)*SH2/(UH-XML2) )
23337 FACSU=-2D0*REPRPZ*OLPP*XRQ*FR1*FR2*( (WT2-XS2)*SH2/
23338 & (TH-XMR2) + (WU2-XS2)*SH2/(UH-XMR2) )
23339 NCHN=NCHN+1
23340 ISIG(NCHN,1)=I
23341 ISIG(NCHN,2)=-I
23342 ISIG(NCHN,3)=1
23343 SIGH(NCHN)=FACGG1*FCOL*(FACS+FACT+FACU+FACST+FACSU)
23344 1700 CONTINUE
23345 ENDIF
23346
23347 ELSEIF(ISUB.LE.230) THEN
23348 IF(ISUB.EQ.226) THEN
23349
23350 FACGG1=COMFAC*AEM**2/3D0/XW**2
23351 ZM12=SQM3
23352 ZM22=SQM4
23353 WU2 = (UH-ZM12)*(UH-ZM22)/SH2
23354 WT2 = (TH-ZM12)*(TH-ZM22)/SH2
23355 WS2 = SMW(IZID1)*SMW(IZID2)/SH
23356 PROPZ2 = (SH-SQMZ)**2 + SQMZ*ZWID**2
23357 REPRPZ = (SH-SQMZ)/PROPZ2
23358 DIFF=0D0
23359 IF(IZID1.EQ.IZID2) DIFF=1D0
23360 DO 1710 I=MMINA,MMAXA
23361 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1710
23362 EI=KCHG(IABS(I),1)/3D0
23363 FCOL=1D0
23364 IF(IABS(I).GE.11) FCOL=3D0
23365 XLQ=(SIGN(1D0,EI)-2D0*EI*XW)/2D0
23366 XRQ=-EI*XW
23367 XLQ=XLQ/XW1
23368 XRQ=XRQ/XW1
23369 XLQ2=XLQ**2
23370 XRQ2=XRQ**2
23371 OLP=-VMIX(IZID1,1)*VMIX(IZID2,1)-
23372 & VMIX(IZID1,2)*VMIX(IZID2,2)/2D0+XW*DIFF
23373 ORP=-UMIX(IZID1,1)*UMIX(IZID2,1)-
23374 & UMIX(IZID1,2)*UMIX(IZID2,2)/2D0+XW*DIFF
23375 ORP2=ORP**2
23376 OLP2=OLP**2
23377
23378 IF(MOD(I,2).EQ.0) THEN
23379 FACT0 = -UMIX(IZID1,1)*UMIX(IZID2,1)
23380 XML2=PMAS(PYCOMP(KSUSY1+IABS(I)-1),1)**2
23381
23382 ELSE
23383 FACT0 = VMIX(IZID1,1)*VMIX(IZID2,1)
23384 XML2=PMAS(PYCOMP(KSUSY1+IABS(I)+1),1)**2
23385 ENDIF
23386 FACA=2D0*XW**2*DIFF*(WT2+WU2+2D0*ABS(WS2))*EI**2
23387 FACZ=0.5D0*((XLQ2+XRQ2)*(OLP2+ORP2)*(WT2+WU2)+
23388 & 4D0*(XLQ2+XRQ2)*OLP*ORP*WS2-(XLQ2-XRQ2)*(OLP2-ORP2)*
23389 & (WU2-WT2))*SH2/PROPZ2
23390 FACT=FACT0**2/4D0*WT2*SH2/(TH-XML2)**2
23391 FACAZ=XW*REPRPZ*DIFF*( (XLQ+XRQ)*(OLP+ORP)*(WU2+
23392 & WT2+2D0*ABS(WS2))-(XLQ-XRQ)*(OLP-ORP)*(WU2-WT2) )*SH*(-EI)
23393 FACTA=XW*DIFF/(TH-XML2)*(WT2+ABS(WS2))*SH*FACT0*(-EI)
23394 FACTZ=REPRPZ/(TH-XML2)*XLQ*FACT0*(OLP*WT2+ORP*WS2)*SH2
23395 FACSUM=FACGG1*(FACA+FACAZ+FACZ+FACT+FACTA+FACTZ)*FCOL
23396 NCHN=NCHN+1
23397 ISIG(NCHN,1)=I
23398 ISIG(NCHN,2)=-I
23399 ISIG(NCHN,3)=1
23400 IF(IZID1.EQ.IZID2) THEN
23401 SIGH(NCHN)=FACSUM*WIDS(PYCOMP(KFPR(ISUBSV,1)),1)
23402 ELSE
23403 SIGH(NCHN)=FACSUM*WIDS(PYCOMP(KFPR(ISUBSV,1)),3)*
23404 & WIDS(PYCOMP(KFPR(ISUBSV,2)),2)
23405 NCHN=NCHN+1
23406 ISIG(NCHN,1)=I
23407 ISIG(NCHN,2)=-I
23408 ISIG(NCHN,3)=2
23409 SIGH(NCHN)=FACSUM*WIDS(PYCOMP(KFPR(ISUBSV,1)),2)*
23410 & WIDS(PYCOMP(KFPR(ISUBSV,2)),3)
23411 ENDIF
23412 1710 CONTINUE
23413
23414 ELSEIF(ISUB.EQ.229) THEN
23415
23416 FACGG1=COMFAC*AEM**2/6D0/XW**2
23417 ZM12=SQM3
23418 ZM22=SQM4
23419 ZMU2 = PMAS(PYCOMP(KSUSY1+2),1)**2
23420 ZMD2 = PMAS(PYCOMP(KSUSY1+1),1)**2
23421 WU2 = (UH-ZM12)*(UH-ZM22)/SH2
23422 WT2 = (TH-ZM12)*(TH-ZM22)/SH2
23423 WS2 = SMW(IZID1)*SMZ(IZID2)/SH
23424 RT2I = 1D0/SQRT(2D0)
23425 PROPW = ((SH-SQMW)**2+WWID**2*SQMW)
23426 OL=-RT2I*ZMIX(IZID2,4)*VMIX(IZID1,2)+
23427 & ZMIX(IZID2,2)*VMIX(IZID1,1)
23428 OR= RT2I*ZMIX(IZID2,3)*UMIX(IZID1,2)+
23429 & ZMIX(IZID2,2)*UMIX(IZID1,1)
23430 OL2=OL**2
23431 OR2=OR**2
23432 CROSS=2D0*OL*OR
23433 FACST0=UMIX(IZID1,1)
23434 FACSU0=VMIX(IZID1,1)
23435 FACSU0=FACSU0*(0.5D0*ZMIX(IZID2,2)+TANW*ZMIX(IZID2,1)/6D0)
23436 FACST0=FACST0*(-0.5D0*ZMIX(IZID2,2)+TANW*ZMIX(IZID2,1)/6D0)
23437 FACT0=FACST0**2
23438 FACU0=FACSU0**2
23439 FACTU0=FACSU0*FACST0
23440 FACST = -2D0*(SH-SQMW)/PROPW/(TH-ZMD2)*(WT2*SH2*OR
23441 & + SH2*WS2*OL)*FACST0
23442 FACSU = 2D0*(SH-SQMW)/PROPW/(UH-ZMU2)*(WU2*SH2*OL
23443 & + SH2*WS2*OR)*FACSU0
23444 FACT = WT2*SH2/(TH-ZMD2)**2*FACT0
23445 FACU = WU2*SH2/(UH-ZMU2)**2*FACU0
23446 FACTU = -2D0*WS2*SH2/(TH-ZMD2)/(UH-ZMU2)*FACTU0
23447 FACW = (OR2*WT2+OL2*WU2+CROSS*WS2)/PROPW*SH2
23448 FACGG1=FACGG1*(FACW+FACT+FACTU+FACU+FACSU+FACST)
23449 DO 1730 I=MMIN1,MMAX1
23450 IA=IABS(I)
23451 IF(I.EQ.0.OR.IA.GT.20.OR.KFAC(1,I).EQ.0) GOTO 1730
23452 DO 1720 J=MMIN2,MMAX2
23453 JA=IABS(J)
23454 IF(J.EQ.0.OR.JA.GT.20.OR.KFAC(2,J).EQ.0) GOTO 1720
23455 IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 1720
23456 FCKM=3D0
23457 IF(IA.LE.10) FCKM=VCKM((IA+1)/2,(JA+1)/2)
23458 KCHSUM=KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J)
23459 KCHW=2
23460 IF(KCHSUM.LT.0) KCHW=3
23461 NCHN=NCHN+1
23462 ISIG(NCHN,1)=I
23463 ISIG(NCHN,2)=J
23464 ISIG(NCHN,3)=1
23465 SIGH(NCHN)=FACGG1*FCKM*WIDS(PYCOMP(KFPR(ISUBSV,1)),2)*
23466 & WIDS(PYCOMP(KFPR(ISUBSV,2)),KCHW)
23467 1720 CONTINUE
23468 1730 CONTINUE
23469 ENDIF
23470
23471 ELSEIF(ISUB.LE.240) THEN
23472 IF(ISUB.EQ.237) THEN
23473
23474 COMFAC=COMFAC*WIDS(PYCOMP(KFPR(ISUBSV,1)),2)*
23475 & WIDS(PYCOMP(KFPR(ISUBSV,2)),2)
23476 FAC0=COMFAC*AS*AEM*4D0/9D0/XW
23477 GM2=SQM3
23478 ZM2=SQM4
23479 DO 1740 I=MMINA,MMAXA
23480 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58)) GOTO 1740
23481 EI=KCHG(IABS(I),1)/3D0
23482 IA=IABS(I)
23483 XLQC = -TANW*EI*ZMIX(IZID,1)
23484 XRQC =(SIGN(1D0,EI)*ZMIX(IZID,2)-TANW*
23485 & (SIGN(1D0,EI)-2D0*EI)*ZMIX(IZID,1))/2D0
23486 XLQ2=XLQC**2
23487 XRQ2=XRQC**2
23488 XML2=PMAS(PYCOMP(KSUSY1+IA),1)**2
23489 XMR2=PMAS(PYCOMP(KSUSY2+IA),1)**2
23490 ATKIN=(TH-GM2)*(TH-ZM2)/(TH-XML2)**2
23491 AUKIN=(UH-GM2)*(UH-ZM2)/(UH-XML2)**2
23492 ATUKIN=SMZ(IZID)*SQRT(GM2)*SH/(TH-XML2)/(UH-XML2)
23493 SGCHIL=XLQ2*(ATKIN+AUKIN-2D0*ATUKIN)
23494 ATKIN=(TH-GM2)*(TH-ZM2)/(TH-XMR2)**2
23495 AUKIN=(UH-GM2)*(UH-ZM2)/(UH-XMR2)**2
23496 ATUKIN=SMZ(IZID)*SQRT(GM2)*SH/(TH-XMR2)/(UH-XMR2)
23497 SGCHIR=XRQ2*(ATKIN+AUKIN-2D0*ATUKIN)
23498 NCHN=NCHN+1
23499 ISIG(NCHN,1)=I
23500 ISIG(NCHN,2)=-I
23501 ISIG(NCHN,3)=1
23502 SIGH(NCHN)=FAC0*(SGCHIL+SGCHIR)
23503 1740 CONTINUE
23504 ENDIF
23505
23506 ELSEIF(ISUB.LE.250) THEN
23507 IF(ISUB.EQ.241) THEN
23508
23509 FACWG=COMFAC*AS*AEM/XW*2D0/9D0
23510 GM2=SQM3
23511 ZM2=SQM4
23512 FAC01=2D0*UMIX(IZID,1)*VMIX(IZID,1)
23513 FAC0=UMIX(IZID,1)**2
23514 FAC1=VMIX(IZID,1)**2
23515 DO 1760 I=MMIN1,MMAX1
23516 IA=IABS(I)
23517 IF(I.EQ.0.OR.IA.GT.10.OR.KFAC(1,I).EQ.0) GOTO 1760
23518 DO 1750 J=MMIN2,MMAX2
23519 JA=IABS(J)
23520 IF(J.EQ.0.OR.JA.GT.10.OR.KFAC(2,J).EQ.0) GOTO 1750
23521 IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 1750
23522 FCKM=1D0
23523 IF(IA.LE.10) FCKM=VCKM((IA+1)/2,(JA+1)/2)
23524 KCHSUM=KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J)
23525 KCHW=2
23526 IF(KCHSUM.LT.0) KCHW=3
23527 XMU2=PMAS(PYCOMP(KSUSY1+2),1)**2
23528 XMD2=PMAS(PYCOMP(KSUSY1+1),1)**2
23529 ATKIN=(TH-GM2)*(TH-ZM2)/(TH-XMU2)**2
23530 AUKIN=(UH-GM2)*(UH-ZM2)/(UH-XMD2)**2
23531 ATUKIN=SMW(IZID)*SQRT(GM2)*SH/(TH-XMU2)/(UH-XMD2)
23532 XMU2=PMAS(PYCOMP(KSUSY2+2),1)**2
23533 XMD2=PMAS(PYCOMP(KSUSY2+1),1)**2
23534 ATKIN=(ATKIN+(TH-GM2)*(TH-ZM2)/(TH-XMU2)**2)/2D0
23535 AUKIN=(AUKIN+(UH-GM2)*(UH-ZM2)/(UH-XMD2)**2)/2D0
23536 ATUKIN=(ATUKIN+SMW(IZID)*SQRT(GM2)*
23537 & SH/(TH-XMU2)/(UH-XMD2))/2D0
23538 NCHN=NCHN+1
23539 ISIG(NCHN,1)=I
23540 ISIG(NCHN,2)=J
23541 ISIG(NCHN,3)=1
23542 SIGH(NCHN)=FACWG*FCKM*(FAC0*ATKIN+FAC1*AUKIN-
23543 & FAC01*ATUKIN)*WIDS(PYCOMP(KFPR(ISUBSV,1)),2)*
23544 & WIDS(PYCOMP(KFPR(ISUBSV,2)),KCHW)
23545 1750 CONTINUE
23546 1760 CONTINUE
23547
23548 ELSEIF(ISUB.EQ.243) THEN
23549
23550 COMFAC=COMFAC*WIDS(PYCOMP(KFPR(ISUBSV,1)),1)
23551 XMT=SQM3-TH
23552 XMU=SQM3-UH
23553 DO 1770 I=MMINA,MMAXA
23554 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
23555 & KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1770
23556 NCHN=NCHN+1
23557 XSU=PMAS(PYCOMP(KSUSY1+IABS(I)),1)**2-UH
23558 XST=PMAS(PYCOMP(KSUSY1+IABS(I)),1)**2-TH
23559 FACGG1=COMFAC*AS**2*8D0/3D0*( (XMT**2+XMU**2+
23560 & 2D0*SQM3*SH)/SH2 +4D0/9D0*(XMT**2/XST**2+
23561 & XMU**2/XSU**2) - (XMT**2+SH*SQM3)/SH/XST +
23562 & SQM3*SH/XST/XSU/9D0- (XMU**2+SH*SQM3)/SH/XSU )
23563 XSU=PMAS(PYCOMP(KSUSY2+IABS(I)),1)**2-UH
23564 XST=PMAS(PYCOMP(KSUSY2+IABS(I)),1)**2-TH
23565 FACGG2=COMFAC*AS**2*8D0/3D0*( (XMT**2+XMU**2+
23566 & 2D0*SQM3*SH)/SH2 +4D0/9D0*(XMT**2/XST**2+
23567 & XMU**2/XSU**2) - (XMT**2+SH*SQM3)/SH/XST +
23568 & SQM3*SH/XST/XSU/9D0- (XMU**2+SH*SQM3)/SH/XSU )
23569 ISIG(NCHN,1)=I
23570 ISIG(NCHN,2)=-I
23571 ISIG(NCHN,3)=1
23572
23573 SIGH(NCHN)=0.25D0*(FACGG1+FACGG2)
23574 1770 CONTINUE
23575
23576 ELSEIF(ISUB.EQ.244) THEN
23577
23578 COMFAC=COMFAC*WIDS(PYCOMP(KFPR(ISUBSV,1)),1)
23579 XMT=SQM3-TH
23580 XMU=SQM3-UH
23581 FACQQ1=COMFAC*AS**2*9D0/4D0*(
23582 & (XMT*XMU-2D0*SQM3*(TH+SQM3))/XMT**2 -
23583 & (XMT*XMU+SQM3*(UH-TH))/SH/XMT )
23584 FACQQ2=COMFAC*AS**2*9D0/4D0*(
23585 & (XMU*XMT-2D0*SQM3*(UH+SQM3))/XMU**2 -
23586 & (XMU*XMT+SQM3*(TH-UH))/SH/XMU )
23587 FACQQ3=COMFAC*AS**2*9D0/4D0*(2D0*XMT*XMU/SH2 +
23588 & SQM3*(SH-4D0*SQM3)/XMT/XMU)
23589 IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 1780
23590 NCHN=NCHN+1
23591 ISIG(NCHN,1)=21
23592 ISIG(NCHN,2)=21
23593 ISIG(NCHN,3)=1
23594 SIGH(NCHN)=FACQQ1/2D0
23595 NCHN=NCHN+1
23596 ISIG(NCHN,1)=21
23597 ISIG(NCHN,2)=21
23598 ISIG(NCHN,3)=2
23599 SIGH(NCHN)=FACQQ2/2D0
23600 NCHN=NCHN+1
23601 ISIG(NCHN,1)=21
23602 ISIG(NCHN,2)=21
23603 ISIG(NCHN,3)=3
23604 SIGH(NCHN)=FACQQ3/2D0
23605 1780 CONTINUE
23606
23607 ELSEIF(ISUB.EQ.246) THEN
23608
23609 FAC0=COMFAC*AS*AEM/6D0/XW
23610 ZM2=SQM4
23611 QM2=SQM3
23612 FACZQ0=FAC0*( (ZM2-TH)/SH +
23613 & (UH-ZM2)*(UH+QM2)/(UH-QM2)**2 -
23614 & (SH*(UH+ZM2)+2D0*(QM2-ZM2)*(ZM2-UH))/SH/(UH-QM2) )
23615 KFNSQ=MOD(KFPR(ISUBSV,1),KSUSY1)
23616 DO 1800 I=-KFNSQ,KFNSQ,2*KFNSQ
23617 IF(I.LT.MMINA.OR.I.GT.MMAXA) GOTO 1800
23618 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58)) GOTO 1800
23619 EI=KCHG(IABS(I),1)/3D0
23620 IA=IABS(I)
23621 XRQZ = -TANW*EI*ZMIX(IZID,1)
23622 XLQZ =(SIGN(1D0,EI)*ZMIX(IZID,2)-TANW*
23623 & (SIGN(1D0,EI)-2D0*EI)*ZMIX(IZID,1))/2D0
23624 IF(ILR.EQ.0) THEN
23625 BS=XLQZ**2*SFMIX(IA,1)**2+XRQZ**2*SFMIX(IA,2)**2
23626 ELSE
23627 BS=XLQZ**2*SFMIX(IA,3)**2+XRQZ**2*SFMIX(IA,4)**2
23628 ENDIF
23629 FACZQ=FACZQ0*BS
23630 KCHQ=2
23631 IF(I.LT.0) KCHQ=3
23632 DO 1790 ISDE=1,2
23633 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 1790
23634 IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 1790
23635 NCHN=NCHN+1
23636 ISIG(NCHN,ISDE)=I
23637 ISIG(NCHN,3-ISDE)=21
23638 ISIG(NCHN,3)=1
23639 SIGH(NCHN)=FACZQ*RKF*WIDS(PYCOMP(KFPR(ISUBSV,1)),KCHQ)*
23640 & WIDS(PYCOMP(KFPR(ISUBSV,2)),2)
23641 1790 CONTINUE
23642 1800 CONTINUE
23643 ENDIF
23644
23645 ELSEIF(ISUB.LE.260) THEN
23646 IF(ISUB.EQ.254) THEN
23647
23648 FAC0=COMFAC*AS*AEM/12D0/XW
23649 ZM2=SQM4
23650 QM2=SQM3
23651 AU=UMIX(IZID,1)**2
23652 AD=VMIX(IZID,1)**2
23653 FACZQ0=FAC0*( (ZM2-TH)/SH +
23654 & (UH-ZM2)*(UH+QM2)/(UH-QM2)**2 -
23655 & (SH*(UH+ZM2)+2D0*(QM2-ZM2)*(ZM2-UH))/SH/(UH-QM2) )
23656 KFNSQ1=MOD(KFPR(ISUBSV,1),KSUSY1)
23657 IF(MOD(KFNSQ1,2).EQ.0) THEN
23658 KFNSQ=KFNSQ1-1
23659 KCHW=2
23660 ELSE
23661 KFNSQ=KFNSQ1+1
23662 KCHW=3
23663 ENDIF
23664 DO 1820 I=-KFNSQ,KFNSQ,2*KFNSQ
23665 IF(I.LT.MMINA.OR.I.GT.MMAXA) GOTO 1820
23666 IF(I.EQ.0.OR.IABS(I).GT.MSTP(58)) GOTO 1820
23667 IA=IABS(I)
23668 IF(MOD(IA,2).EQ.0) THEN
23669 FACZQ=FACZQ0*AU
23670 ELSE
23671 FACZQ=FACZQ0*AD
23672 ENDIF
23673 FACZQ=FACZQ*SFMIX(KFNSQ1,1+2*ILR)**2
23674 KCHQ=2
23675 IF(I.LT.0) KCHQ=3
23676 KCHWQ=KCHW
23677 IF(I.LT.0) KCHWQ=5-KCHW
23678 DO 1810 ISDE=1,2
23679 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 1810
23680 IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 1810
23681 NCHN=NCHN+1
23682 ISIG(NCHN,ISDE)=I
23683 ISIG(NCHN,3-ISDE)=21
23684 ISIG(NCHN,3)=1
23685 SIGH(NCHN)=FACZQ*RKF*WIDS(PYCOMP(KFPR(ISUBSV,1)),KCHQ)*
23686 & WIDS(PYCOMP(KFPR(ISUBSV,2)),KCHWQ)
23687 1810 CONTINUE
23688 1820 CONTINUE
23689
23690 ELSEIF(ISUB.EQ.258) THEN
23691
23692 XG2=SQM4
23693 XQ2=SQM3
23694 XMT=XG2-TH
23695 XMU=XG2-UH
23696 XST=XQ2-TH
23697 XSU=XQ2-UH
23698 FACQG1=0.5D0*4D0/9D0*XMT/SH + (XMT*SH+2D0*XG2*XST)/XMT**2 -
23699 & ( (SH-XQ2+XG2)*(-XST)-SH*XG2 )/SH/(-XMT) +
23700 & 0.5D0*1D0/2D0*( XST*(TH+2D0*UH+XG2)-XMT*(SH-2D0*XST) +
23701 & (-XMU)*(TH+XG2+2D0*XQ2) )/2D0/XMT/XSU
23702 FACQG2= 4D0/9D0*(-XMU)*(UH+XQ2)/XSU**2 + 1D0/18D0*
23703 & (SH*(UH+XG2)
23704 & +2D0*(XQ2-XG2)*XMU)/SH/(-XSU) + 0.5D0*4D0/9D0*XMT/SH +
23705 & 0.5D0*1D0/2D0*(XST*(TH+2D0*UH+XG2)-XMT*(SH-2D0*XST)+
23706 & (-XMU)*(TH+XG2+2D0*XQ2))/2D0/XMT/XSU
23707 FACQG1=COMFAC*AS**2*FACQG1/2D0
23708 FACQG2=COMFAC*AS**2*FACQG2/2D0
23709 KFNSQ=MOD(KFPR(ISUBSV,1),KSUSY1)
23710 DO 1840 I=-KFNSQ,KFNSQ,2*KFNSQ
23711 IF(I.LT.MMINA.OR.I.GT.MMAXA) GOTO 1840
23712 IF(I.EQ.0.OR.IABS(I).GT.10) GOTO 1840
23713 KCHQ=2
23714 IF(I.LT.0) KCHQ=3
23715 FACSEL=RKF*WIDS(PYCOMP(KFPR(ISUBSV,1)),KCHQ)*
23716 & WIDS(PYCOMP(KFPR(ISUBSV,2)),2)
23717 DO 1830 ISDE=1,2
23718 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 1830
23719 IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 1830
23720 NCHN=NCHN+1
23721 ISIG(NCHN,ISDE)=I
23722 ISIG(NCHN,3-ISDE)=21
23723 ISIG(NCHN,3)=1
23724 SIGH(NCHN)=FACQG1*FACSEL
23725 NCHN=NCHN+1
23726 ISIG(NCHN,ISDE)=I
23727 ISIG(NCHN,3-ISDE)=21
23728 ISIG(NCHN,3)=2
23729 SIGH(NCHN)=FACQG2*FACSEL
23730 1830 CONTINUE
23731 1840 CONTINUE
23732 ENDIF
23733
23734 ELSEIF(ISUB.LE.270) THEN
23735 IF(ISUB.EQ.261) THEN
23736
23737 FACQQ1=COMFAC*( (UH*TH-SQM3*SQM4)/ SH**2 )*
23738 & WIDS(PYCOMP(KFPR(ISUBSV,1)),1)
23739 KFNSQ=MOD(KFPR(ISUBSV,1),KSUSY1)
23740 FAC0=AS**2*4D0/9D0
23741 DO 1850 I=MMIN1,MMAX1
23742 IA=IABS(I)
23743 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1850
23744 IF(IA.GE.11.AND.IA.LE.18) THEN
23745 EI=KCHG(IA,1)/3D0
23746 EJ=KCHG(KFNSQ,1)/3D0
23747 T3I=SIGN(1D0,EI)/2D0
23748 T3J=SIGN(1D0,EJ)/2D0
23749 XLQ=2D0*(T3J-EJ*XW)*SFMIX(KFNSQ,2*ILR+1)**2
23750 XRQ=2D0*(-EJ*XW)*SFMIX(KFNSQ,2*ILR+2)**2
23751 XLF=2D0*(T3I-EI*XW)
23752 XRF=2D0*(-EI*XW)
23753 TAA=0.5D0*(EI*EJ)**2
23754 TZZ=(XLF**2+XRF**2)*(XLQ+XRQ)**2/64D0/XW**2/XW1**2
23755 TZZ=TZZ/((1D0-SQMZ/SH)**2+SQMZ*(ZWID/SH)**2)
23756 TAZ=EI*EJ*(XLQ+XRQ)*(XLF+XRF)/8D0/XW/XW1
23757 TAZ=TAZ/((1D0-SQMZ/SH)**2+SQMZ*(ZWID/SH)**2)*(1D0-SQMZ/SH)
23758 FAC0=AEM**2*12D0*(TAA+TZZ+TAZ)
23759 ENDIF
23760 NCHN=NCHN+1
23761 ISIG(NCHN,1)=I
23762 ISIG(NCHN,2)=-I
23763 ISIG(NCHN,3)=1
23764 SIGH(NCHN)=FACQQ1*FAC0
23765 1850 CONTINUE
23766
23767 ELSEIF(ISUB.EQ.263) THEN
23768
23769 DO 1860 I=MMIN1,MMAX1
23770 IA=IABS(I)
23771 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1860
23772 EI=KCHG(IABS(I),1)/3D0
23773 TT3I=SIGN(1D0,EI)/2D0
23774 EJ=2D0/3D0
23775 TT3J=1D0/2D0
23776 FCOL=1D0
23777
23778 IF(IA.GE.11) FCOL=3D0
23779 XLQ=2D0*(TT3J-EJ*XW)
23780 XRQ=2D0*(-EJ*XW)
23781 XLF=2D0*(TT3I-EI*XW)
23782 XRF=2D0*(-EI*XW)
23783 TZZ=(XLF**2+XRF**2)*(XLQ-XRQ)**2/64D0/XW**2/XW1**2
23784 TZZ=TZZ*(SFMIX(6,1)*SFMIX(6,2))**2
23785 TZZ=TZZ/((1D0-SQMZ/SH)**2+SQMZ*(ZWID/SH)**2)
23786
23787 FACQQ1=2D0*COMFAC*AEM**2*TZZ*FCOL*4D0
23788 FACQQ1=FACQQ1*( UH*TH-SQM3*SQM4 )/SH2
23789 NCHN=NCHN+1
23790 ISIG(NCHN,1)=I
23791 ISIG(NCHN,2)=-I
23792 ISIG(NCHN,3)=1
23793 SIGH(NCHN)=FACQQ1*WIDS(PYCOMP(KFPR(ISUBSV,1)),2)*
23794 & WIDS(PYCOMP(KFPR(ISUBSV,2)),3)
23795 NCHN=NCHN+1
23796 ISIG(NCHN,1)=I
23797 ISIG(NCHN,2)=-I
23798 ISIG(NCHN,3)=2
23799 SIGH(NCHN)=FACQQ1*WIDS(PYCOMP(KFPR(ISUBSV,1)),3)*
23800 & WIDS(PYCOMP(KFPR(ISUBSV,2)),2)
23801 1860 CONTINUE
23802
23803 ELSEIF(ISUB.EQ.264) THEN
23804
23805 XSU=SQM3-UH
23806 XST=SQM3-TH
23807 FAC0=COMFAC*AS**2*(7D0/48D0+3D0*(UH-TH)**2/16D0/SH2 )*0.5D0*
23808 & WIDS(PYCOMP(KFPR(ISUBSV,1)),1)
23809 FACQQ1=FAC0*(0.5D0+2D0*SQM3*TH/XST**2 + 2D0*SQM3**2/XSU/XST)
23810 FACQQ2=FAC0*(0.5D0+2D0*SQM3*UH/XSU**2 + 2D0*SQM3**2/XSU/XST)
23811 IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 1870
23812 NCHN=NCHN+1
23813 ISIG(NCHN,1)=21
23814 ISIG(NCHN,2)=21
23815 ISIG(NCHN,3)=1
23816 SIGH(NCHN)=FACQQ1
23817 NCHN=NCHN+1
23818 ISIG(NCHN,1)=21
23819 ISIG(NCHN,2)=21
23820 ISIG(NCHN,3)=2
23821 SIGH(NCHN)=FACQQ2
23822 1870 CONTINUE
23823 ENDIF
23824
23825 ELSEIF(ISUB.LE.280) THEN
23826 IF(ISUB.EQ.271) THEN
23827
23828 XMG2=PMAS(PYCOMP(KSUSY1+21),1)**2
23829 XMT=XMG2-TH
23830 XMU=XMG2-UH
23831 XSU1=SQM3-UH
23832 XSU2=SQM4-UH
23833 XST1=SQM3-TH
23834 XST2=SQM4-TH
23835 IF(ILR.EQ.1) THEN
23836 FACQQ1=COMFAC*AS**2*4D0/9D0*( -(XST1*XST2+SH*TH)/XMT**2 )
23837 FACQQ2=COMFAC*AS**2*4D0/9D0*( -(XSU1*XSU2+SH*UH)/XMU**2 )
23838 FACQQB=0.0D0
23839 ELSE
23840 FACQQ1=0.5D0*COMFAC*AS**2*4D0/9D0*( SH*XMG2/XMT**2 )
23841 FACQQ2=0.5D0*COMFAC*AS**2*4D0/9D0*( SH*XMG2/XMU**2 )
23842 FACQQB=0.5D0*COMFAC*AS**2*4D0/9D0*( -2D0*SH*XMG2/3D0/
23843 & XMT/XMU )
23844 ENDIF
23845 KFNSQI=MOD(KFPR(ISUBSV,1),KSUSY1)
23846 KFNSQJ=MOD(KFPR(ISUBSV,2),KSUSY1)
23847 DO 1890 I=-KFNSQI,KFNSQI,2*KFNSQI
23848 IF(I.LT.MMIN1.OR.I.GT.MMAX1) GOTO 1890
23849 IA=IABS(I)
23850 IF(I.EQ.0.OR.IA.GT.MSTP(58).OR.KFAC(1,I).EQ.0) GOTO 1890
23851 KCHQ=2
23852 IF(I.LT.0) KCHQ=3
23853 DO 1880 J=-KFNSQJ,KFNSQJ,2*KFNSQJ
23854 IF(J.LT.MMIN2.OR.J.GT.MMAX2) GOTO 1880
23855 JA=IABS(J)
23856 IF(J.EQ.0.OR.JA.GT.MSTP(58).OR.KFAC(2,J).EQ.0) GOTO 1880
23857 IF(I*J.LT.0) GOTO 1880
23858 NCHN=NCHN+1
23859 ISIG(NCHN,1)=I
23860 ISIG(NCHN,2)=J
23861 ISIG(NCHN,3)=1
23862 SIGH(NCHN)=FACQQ1*RKF*WIDS(PYCOMP(KFPR(ISUBSV,1)),KCHQ)*
23863 & WIDS(PYCOMP(KFPR(ISUBSV,2)),KCHQ)
23864 IF(I.EQ.J) THEN
23865 IF(ILR.EQ.0) THEN
23866 SIGH(NCHN)=0.5D0*(FACQQ1+0.5D0*FACQQB)*RKF*
23867 & WIDS(PYCOMP(KFPR(ISUBSV,1)),KCHQ+2)
23868 ELSE
23869 SIGH(NCHN)=0.5D0*FACQQ1*RKF*
23870 & WIDS(PYCOMP(KFPR(ISUBSV,1)),KCHQ)*
23871 & WIDS(PYCOMP(KFPR(ISUBSV,2)),KCHQ)
23872 ENDIF
23873 NCHN=NCHN+1
23874 ISIG(NCHN,1)=I
23875 ISIG(NCHN,2)=J
23876 ISIG(NCHN,3)=2
23877 IF(ILR.EQ.0) THEN
23878 SIGH(NCHN)=0.5D0*(FACQQ2+0.5D0*FACQQB)*RKF*
23879 & WIDS(PYCOMP(KFPR(ISUBSV,1)),KCHQ+2)
23880 ELSE
23881 SIGH(NCHN)=0.5D0*FACQQ2*RKF*
23882 & WIDS(PYCOMP(KFPR(ISUBSV,1)),KCHQ)*
23883 & WIDS(PYCOMP(KFPR(ISUBSV,2)),KCHQ)
23884 ENDIF
23885 ENDIF
23886 1880 CONTINUE
23887 1890 CONTINUE
23888
23889 ELSEIF(ISUB.EQ.274) THEN
23890
23891 XMG2=PMAS(PYCOMP(KSUSY1+21),1)**2
23892 XMT=XMG2-TH
23893 XMU=XMG2-UH
23894 IF(ILR.EQ.0) THEN
23895
23896 FACQQ1=COMFAC*AS**2*2D0/9D0*(
23897 & (UH*TH-SQM3*SQM4)/XMT**2 )
23898 FACQQB=COMFAC*AS**2*2D0/9D0*(
23899 & (UH*TH-SQM3*SQM4)/SH2*(2D0-2D0/3D0*SH/XMT))
23900 FACQQB=FACQQB+FACQQ1
23901 ELSE
23902 FACQQ1=COMFAC*AS**2*4D0/9D0*( XMG2*SH/XMT**2 )
23903 FACQQB=FACQQ1
23904 ENDIF
23905 KFNSQI=MOD(KFPR(ISUBSV,1),KSUSY1)
23906 KFNSQJ=MOD(KFPR(ISUBSV,2),KSUSY1)
23907 DO 1910 I=-KFNSQI,KFNSQI,2*KFNSQI
23908 IF(I.LT.MMIN1.OR.I.GT.MMAX1) GOTO 1910
23909 IA=IABS(I)
23910 IF(I.EQ.0.OR.IA.GT.MSTP(58).OR.KFAC(1,I).EQ.0) GOTO 1910
23911 KCHQ=2
23912 IF(I.LT.0) KCHQ=3
23913 DO 1900 J=-KFNSQJ,KFNSQJ,2*KFNSQJ
23914 IF(J.LT.MMIN2.OR.J.GT.MMAX2) GOTO 1900
23915 JA=IABS(J)
23916 IF(J.EQ.0.OR.JA.GT.MSTP(58).OR.KFAC(2,J).EQ.0) GOTO 1900
23917 IF(I*J.GT.0) GOTO 1900
23918 NCHN=NCHN+1
23919 ISIG(NCHN,1)=I
23920 ISIG(NCHN,2)=J
23921 ISIG(NCHN,3)=1
23922 SIGH(NCHN)=FACQQ1*RKF*WIDS(PYCOMP(KFPR(ISUBSV,1)),KCHQ)*
23923 & WIDS(PYCOMP(KFPR(ISUBSV,2)),5-KCHQ)
23924 IF(I.EQ.-J) SIGH(NCHN)=FACQQB*RKF*
23925 & WIDS(PYCOMP(KFPR(ISUBSV,1)),1)
23926 1900 CONTINUE
23927 1910 CONTINUE
23928
23929 ELSEIF(ISUB.EQ.277) THEN
23930
23931
23932 FACQQ1=COMFAC*( (UH*TH-SQM3*SQM4)/ SH**2 )
23933 KFNSQ=MOD(KFPR(ISUBSV,1),KSUSY1)
23934 FAC0=0D0
23935 DO 1920 I=MMIN1,MMAX1
23936 IA=IABS(I)
23937 IF(I.EQ.0.OR.IA.GT.MSTP(58).OR.
23938 & KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 1920
23939 IF(IA.EQ.KFNSQ) GOTO 1920
23940 IF(IA.EQ.11.OR.IA.EQ.13.OR.IA.EQ.15) THEN
23941 EI=KCHG(IA,1)/3D0
23942 EJ=KCHG(KFNSQ,1)/3D0
23943 T3J=SIGN(0.5D0,EJ)
23944 T3I=SIGN(1D0,EI)/2D0
23945 IF(ILR.EQ.0) THEN
23946 XLQ=2D0*(T3J-EJ*XW)*SFMIX(KFNSQ,1)
23947 XRQ=2D0*(-EJ*XW)*SFMIX(KFNSQ,2)
23948 ELSE
23949 XLQ=2D0*(T3J-EJ*XW)*SFMIX(KFNSQ,3)
23950 XRQ=2D0*(-EJ*XW)*SFMIX(KFNSQ,4)
23951 ENDIF
23952 XLF=2D0*(T3I-EI*XW)
23953 XRF=2D0*(-EI*XW)
23954 IF(ILR.EQ.0) THEN
23955 XRQ=0D0
23956 ELSE
23957 XLQ=0D0
23958 ENDIF
23959 TAA=0.5D0*(EI*EJ)**2
23960 TZZ=(XLF**2+XRF**2)*(XLQ+XRQ)**2/64D0/XW**2/XW1**2
23961 TZZ=TZZ/((1D0-SQMZ/SH)**2+SQMZ*(ZWID/SH)**2)
23962 TAZ=EI*EJ*(XLQ+XRQ)*(XLF+XRF)/8D0/XW/XW1
23963 TAZ=TAZ/((1D0-SQMZ/SH)**2+SQMZ*(ZWID/SH)**2)*(1D0-SQMZ/SH)
23964 FAC0=AEM**2*12D0*(TAA+TZZ+TAZ)
23965 ELSEIF(IA.LE.6) THEN
23966 FAC0=AS**2*8D0/9D0/2D0
23967 ENDIF
23968 NCHN=NCHN+1
23969 ISIG(NCHN,1)=I
23970 ISIG(NCHN,2)=-I
23971 ISIG(NCHN,3)=1
23972 SIGH(NCHN)=FACQQ1*FAC0*RKF*WIDS(PYCOMP(KFPR(ISUBSV,1)),1)
23973 1920 CONTINUE
23974
23975 ELSEIF(ISUB.EQ.279) THEN
23976
23977 XSU=SQM3-UH
23978 XST=SQM3-TH
23979
23980 FAC0=RKF*COMFAC*AS**2*( 7D0/48D0+3D0*(UH-TH)**2/16D0/SH2 )
23981 FACQQ1=FAC0*(0.5D0+2D0*SQM3*TH/XST**2 + 2D0*SQM3**2/XSU/XST)
23982 FACQQ2=FAC0*(0.5D0+2D0*SQM3*UH/XSU**2 + 2D0*SQM3**2/XSU/XST)
23983 IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 1930
23984 NCHN=NCHN+1
23985 ISIG(NCHN,1)=21
23986 ISIG(NCHN,2)=21
23987 ISIG(NCHN,3)=1
23988 SIGH(NCHN)=FACQQ1/2D0*WIDS(PYCOMP(KFPR(ISUBSV,1)),1)
23989 NCHN=NCHN+1
23990 ISIG(NCHN,1)=21
23991 ISIG(NCHN,2)=21
23992 ISIG(NCHN,3)=2
23993 SIGH(NCHN)=FACQQ2/2D0*WIDS(PYCOMP(KFPR(ISUBSV,1)),1)
23994 1930 CONTINUE
23995
23996 ENDIF
23997
23998
23999 ELSEIF(ISUB.LE.340) THEN
24000
24001 ELSEIF(ISUB.LE.360) THEN
24002
24003 IF(ISUB.EQ.341.OR.ISUB.EQ.342) THEN
24004
24005 KFRES=KFPR(ISUB,1)
24006 CALL PYWIDT(KFRES,SH,WDTP,WDTE)
24007 HS=SHR*WDTP(0)
24008 FACBW=8D0*COMFAC/((SH-PMAS(KFRES,1)**2)**2+HS**2)
24009 DO 1950 I=MMIN1,MMAX1
24010 IA=IABS(I)
24011 IF((IA.NE.11.AND.IA.NE.13.AND.IA.NE.15).OR.KFAC(1,I).EQ.0)
24012 & GOTO 1950
24013 DO 1940 J=MMIN2,MMAX2
24014 JA=IABS(J)
24015 IF((JA.NE.11.AND.JA.NE.13.AND.JA.NE.15).OR.KFAC(2,J).EQ.0)
24016 & GOTO 1940
24017 IF(I*J.LT.0) GOTO 1940
24018 KCHH=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
24019 NCHN=NCHN+1
24020 ISIG(NCHN,1)=I
24021 ISIG(NCHN,2)=J
24022 ISIG(NCHN,3)=1
24023 HI=SH*PARP(181+3*((IA-11)/2)+(JA-11)/2)**2/(8D0*PARU(1))
24024 HF=SHR*(WDTE(0,1)+WDTE(0,(5-KCHH/2)/2)+WDTE(0,4))
24025 SIGH(NCHN)=HI*FACBW*HF
24026 1940 CONTINUE
24027 1950 CONTINUE
24028
24029 ELSEIF(ISUB.GE.343.AND.ISUB.LE.348) THEN
24030
24031 KFRES=KFPR(ISUB,1)
24032
24033 HBW3=PMAS(KFRES,1)*PMAS(KFRES,2)/((SQM3-PMAS(KFRES,1)**2)**2+
24034 & (PMAS(KFRES,1)*PMAS(KFRES,2))**2)
24035 CALL PYWIDT(KFRES,SQM3,WDTP,WDTE)
24036 GMMC=SQRT(SQM3)*WDTP(0)
24037 HBW3C=GMMC/((SQM3-PMAS(KFRES,1)**2)**2+GMMC**2)
24038 FHCC=COMFAC*AEM*HBW3C/HBW3
24039 DO 1980 I=MMINA,MMAXA
24040 IA=IABS(I)
24041 IF(IA.NE.11.AND.IA.NE.13.AND.IA.NE.15) GOTO 1980
24042 SQML=PMAS(IA,1)**2
24043 J=ISIGN(KFPR(ISUB,2),-I)
24044 KCHH=ISIGN(2,KCHG(IA,1)*ISIGN(1,I))
24045 WIDSC=(WDTE(0,1)+WDTE(0,(5-KCHH/2)/2)+WDTE(0,4))/WDTP(0)
24046 SMM1=8D0*(SH+TH-SQM3)*(SH+TH-2D0*SQM3-SQML-SQM4)/
24047 & (UH-SQM3)**2
24048 SMM2=2D0*((2D0*SQM3-3D0*SQML)*SQM4+(SQML-2D0*SQM4)*TH-
24049 & (TH-SQM4)*SH)/(TH-SQM4)**2
24050 SMM3=2D0*((2D0*SQM3-3D0*SQM4+TH)*SQML-(2D0*SQML-SQM4+TH)*
24051 & SH)/(SH-SQML)**2
24052 SMM12=4D0*((2D0*SQML-SQM4-2D0*SQM3+TH)*SH+(TH-3D0*SQM3-
24053 & 3D0*SQM4)*TH+(2D0*SQM3-2D0*SQML+3D0*SQM4)*SQM3)/
24054 & ((UH-SQM3)*(TH-SQM4))
24055 SMM13=-4D0*((TH+SQML-2D0*SQM4)*TH-(SQM3+3D0*SQML-2D0*SQM4)*
24056 & SQM3+(SQM3+3D0*SQML+TH)*SH-(TH-SQM3+SH)**2)/
24057 & ((UH-SQM3)*(SH-SQML))
24058 SMM23=-4D0*((SQML-SQM4+SQM3)*TH-SQM3**2+SQM3*(SQML+SQM4)-
24059 & 3D0*SQML*SQM4-(SQML-SQM4-SQM3+TH)*SH)/
24060 & ((SH-SQML)*(TH-SQM4))
24061 SMM=(SH/(SH-SQML))**2*(SMM1+SMM2+SMM3+SMM12+SMM13+SMM23)*
24062 & PARP(181+3*((IA-11)/2)+(IABS(J)-11)/2)**2/(4D0*PARU(1))
24063 DO 1960 ISDE=1,2
24064 IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,22).EQ.0) GOTO 1960
24065 IF(ISDE.EQ.2.AND.KFAC(1,22)*KFAC(2,I).EQ.0) GOTO 1960
24066 NCHN=NCHN+1
24067 ISIG(NCHN,ISDE)=I
24068 ISIG(NCHN,3-ISDE)=22
24069 ISIG(NCHN,3)=0
24070 SIGH(NCHN)=FHCC*SMM*WIDSC
24071 1960 CONTINUE
24072 1980 CONTINUE
24073
24074 ELSEIF(ISUB.EQ.349.OR.ISUB.EQ.350) THEN
24075
24076 KFRES=KFPR(ISUB,1)
24077 SQMH=PMAS(KFRES,1)**2
24078 GMMH=PMAS(KFRES,1)*PMAS(KFRES,2)
24079
24080 HBW3=GMMH/((SQM3-SQMH)**2+GMMH**2)
24081 CALL PYWIDT(KFRES,SQM3,WDTP,WDTE)
24082 GMMH3=SQRT(SQM3)*WDTP(0)
24083 HBW3C=GMMH3/((SQM3-SQMH)**2+GMMH3**2)
24084 HBW4=GMMH/((SQM4-SQMH)**2+GMMH**2)
24085 CALL PYWIDT(KFRES,SQM4,WDTP,WDTE)
24086 GMMH4=SQRT(SQM4)*WDTP(0)
24087 HBW4C=GMMH4/((SQM4-SQMH)**2+GMMH4**2)
24088
24089 FACHH=COMFAC*(HBW3C/HBW3)*(HBW4C/HBW4)*(TH*UH-SQM3*SQM4)
24090 XWHH=(1D0-2D0*XWV)/(8D0*XWV*(1D0-XWV))
24091
24092 DO 2000 I=MMINA,MMAXA
24093 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 2000
24094 EI=KCHG(IABS(I),1)/3D0
24095 AI=SIGN(1D0,EI+0.1D0)
24096 VI=AI-4D0*EI*XWV
24097 FCOI=1D0
24098 IF(IABS(I).LE.10) FCOI=FACA/3D0
24099 IF(ISUB.EQ.349) THEN
24100 HBWZ=1D0/((SH-SQMZ)**2+GMMZ**2)
24101 IF(IABS(I).LT.10) THEN
24102 DSIGHH=8D0*AEM**2*(EI**2/SH2+
24103 & 2D0*EI*VI*XWHH*(SH-SQMZ)*HBWZ/SH+
24104 & (VI**2+AI**2)*XWHH**2*HBWZ)
24105 ELSE
24106 IAOFF=181+3*((IABS(I)-11)/2)
24107 HSUM=(PARP(IAOFF)**2+PARP(IAOFF+1)**2+PARP(IAOFF+2)**2)/
24108 & (4D0*PARU(1))
24109 DSIGHH=8D0*AEM**2*(EI**2/SH2+
24110 & 2D0*EI*VI*XWHH*(SH-SQMZ)*HBWZ/SH+
24111 & (VI**2+AI**2)*XWHH**2*HBWZ)+
24112 & 8D0*AEM*(EI*HSUM/(SH*TH)+
24113 & (VI+AI)*XWHH*HSUM*(SH-SQMZ)*HBWZ/TH)+
24114 & 4D0*HSUM**2/TH2
24115 ENDIF
24116 ELSE
24117 IF(IABS(I).LT.10) THEN
24118 DSIGHH=8D0*AEM**2*EI**2/SH2
24119 ELSE
24120 IAOFF=181+3*((IABS(I)-11)/2)
24121 HSUM=(PARP(IAOFF)**2+PARP(IAOFF+1)**2+PARP(IAOFF+2)**2)/
24122 & (4D0*PARU(1))
24123 DSIGHH=8D0*AEM**2*EI**2/SH2+8D0*AEM*EI*HSUM/(SH*TH)+
24124 & 4D0*HSUM**2/TH2
24125 ENDIF
24126 ENDIF
24127 NCHN=NCHN+1
24128 ISIG(NCHN,1)=I
24129 ISIG(NCHN,2)=-I
24130 ISIG(NCHN,3)=1
24131 SIGH(NCHN)=FACHH*FCOI*DSIGHH
24132 2000 CONTINUE
24133
24134 ELSEIF(ISUB.EQ.351.OR.ISUB.EQ.352) THEN
24135
24136 KFRES=KFPR(ISUB,1)
24137 SQMH=PMAS(KFRES,1)**2
24138 IF(ISUB.EQ.351) FACNOR=PARP(190)**8*PARP(192)**2
24139 IF(ISUB.EQ.352) FACNOR=PARP(191)**6*2D0*PMAS(63,1)**2
24140 FACWW=COMFAC*FACNOR*TAUP*VINT(2)*VINT(219)
24141 FACPRT=1D0/((VINT(204)**2-VINT(215))*
24142 & (VINT(209)**2-VINT(216)))
24143 FACPRU=1D0/((VINT(204)**2+2D0*VINT(217))*
24144 & (VINT(209)**2+2D0*VINT(218)))
24145 CALL PYWIDT(KFRES,SH,WDTP,WDTE)
24146 HS=SHR*WDTP(0)
24147 FACBW=(1D0/PARU(1))*VINT(2)/((SH-SQMH)**2+HS**2)
24148 IF(ABS(SHR-PMAS(KFRES,1)).GT.PARP(48)*PMAS(KFRES,2))
24149 & FACBW=0D0
24150 DO 2020 I=MMIN1,MMAX1
24151 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 2020
24152 IF(ISUB.EQ.352.AND.IABS(I).GT.10) GOTO 2020
24153 KCHWI=(1-2*MOD(IABS(I),2))*ISIGN(1,I)
24154 DO 2010 J=MMIN2,MMAX2
24155 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 2010
24156 IF(ISUB.EQ.352.AND.IABS(J).GT.10) GOTO 2010
24157 KCHWJ=(1-2*MOD(IABS(J),2))*ISIGN(1,J)
24158 KCHH=KCHWI+KCHWJ
24159 IF(IABS(KCHH).NE.2) GOTO 2010
24160 FACLR=VINT(180+I)*VINT(180+J)
24161 HF=SHR*(WDTE(0,1)+WDTE(0,(5-KCHH/2)/2)+WDTE(0,4))
24162 IF(I.EQ.J.AND.IABS(I).GT.10) THEN
24163 FACPRP=0.5D0*(FACPRT+FACPRU)**2
24164 ELSE
24165 FACPRP=FACPRT**2
24166 ENDIF
24167 NCHN=NCHN+1
24168 ISIG(NCHN,1)=I
24169 ISIG(NCHN,2)=J
24170 ISIG(NCHN,3)=1
24171 SIGH(NCHN)=FACLR*FACWW*FACPRP*FACBW*HF
24172 2010 CONTINUE
24173 2020 CONTINUE
24174 ENDIF
24175
24176 ELSEIF(ISUB.LE.380) THEN
24177
24178 IF(ISUB.EQ.361) THEN
24179
24180 FACA=(SH**2*BE34**2-(TH-UH)**2)
24181 ALPRHT=2.91D0*(3D0/PARP(144))
24182 HP=(1D0/12D0)*AEM*ALPRHT*CAB2*COMFAC*FACA*3D0
24183 FAR=SQRT(AEM/ALPRHT)
24184 FAO=FAR*QUPD
24185 FZR=FAR*CT2W
24186 FZO=-FAO*TANW
24187 SFAR=FAR**2
24188 SFAO=FAO**2
24189 SFZR=FZR**2
24190 SFZO=FZO**2
24191 CALL PYWIDT(23,SH,WDTP,WDTE)
24192 SSMZ=CMPLX(1D0-PMAS(23,1)**2/SH,WDTP(0)/SHR)
24193 CALL PYWIDT(54,SH,WDTP,WDTE)
24194 SSMR=CMPLX(1D0-PMAS(54,1)**2/SH,WDTP(0)/SHR)
24195 CALL PYWIDT(56,SH,WDTP,WDTE)
24196 SSMO=CMPLX(1D0-PMAS(56,1)**2/SH,WDTP(0)/SHR)
24197 DETD=(FAR*FZO-FAO*FZR)**2+SSMZ*SSMR*SSMO-SFZR*SSMO-
24198 $ SFZO*SSMR-SFAR*SSMO*SSMZ-SFAO*SSMR*SSMZ
24199 DARHO=(-FAR*SFZO+FAO*FZO*FZR+FAR*SSMO*SSMZ)/DETD/SH
24200 DZRHO=(-FZR*SFAO+FAO*FZO*FAR+FZR*SSMO)/DETD/SH
24201
24202 DO 2040 I=MMINA,MMAXA
24203 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 2040
24204 IA=IABS(I)
24205 EI=KCHG(IABS(I),1)/3D0
24206 AI=SIGN(1D0,EI+0.1D0)
24207 VI=AI-4D0*EI*XWV
24208 VALI=0.25D0*(VI+AI)
24209 VARI=0.25D0*(VI-AI)
24210 F2L=EI*DARHO+VALI*DZRHO/SQRT(XW*XW1)
24211 F2R=EI*DARHO+VARI*DZRHO/SQRT(XW*XW1)
24212 HI=ABS(F2L)**2+ABS(F2R)**2
24213 IF(IA.LE.10) HI=HI/3D0
24214 NCHN=NCHN+1
24215 ISIG(NCHN,1)=I
24216 ISIG(NCHN,2)=-I
24217 ISIG(NCHN,3)=1
24218 IF(KFA.EQ.KFB) THEN
24219 SIGH(NCHN)=HI*HP*WIDS(KFA,1)
24220 ELSE
24221 SIGH(NCHN)=HI*HP*WIDS(KFA,2)*WIDS(KFB,3)
24222 NCHN=NCHN+1
24223 ISIG(NCHN,1)=I
24224 ISIG(NCHN,2)=-I
24225 ISIG(NCHN,3)=2
24226 SIGH(NCHN)=HI*HP*WIDS(KFA,3)*WIDS(KFB,2)
24227 ENDIF
24228 2040 CONTINUE
24229
24230 ELSEIF(ISUB.EQ.364) THEN
24231
24232
24233 VFAC=(TH**2+UH**2-2D0*SQM3*SQM4)/SQTV*SH
24234 AFAC=(TH**2+UH**2-2D0*SQM3*SQM4+4D0*SH*SQM3)/SQTA*SH
24235
24236 ALPRHT=2.91D0*(3D0/PARP(144))
24237 HP=(1D0/24D0)*AEM**2*COMFAC*3D0
24238 FAR=SQRT(AEM/ALPRHT)
24239 FAO=FAR*QUPD
24240 FZR=FAR*CT2W
24241 FZO=-FAO*TANW
24242 SFAR=FAR**2
24243 SFAO=FAO**2
24244 SFZR=FZR**2
24245 SFZO=FZO**2
24246 CALL PYWIDT(23,SH,WDTP,WDTE)
24247 SSMZ=CMPLX(1D0-PMAS(23,1)**2/SH,WDTP(0)/SHR)
24248 CALL PYWIDT(54,SH,WDTP,WDTE)
24249 SSMR=CMPLX(1D0-PMAS(54,1)**2/SH,WDTP(0)/SHR)
24250 CALL PYWIDT(56,SH,WDTP,WDTE)
24251 SSMO=CMPLX(1D0-PMAS(56,1)**2/SH,WDTP(0)/SHR)
24252 DETD=(FAR*FZO-FAO*FZR)**2+SSMZ*SSMR*SSMO-SFZR*SSMO-
24253 $ SFZO*SSMR-SFAR*SSMO*SSMZ-SFAO*SSMR*SSMZ
24254 DARHO=(-FAR*SFZO+FAO*FZO*FZR+FAR*SSMO*SSMZ)/DETD/SH
24255 DZRHO=(-FZR*SFAO+FAO*FZO*FAR+FZR*SSMO)/DETD/SH
24256 DAOME=(-FAO*SFZR+FAR*FZO*FZR+FAO*SSMR*SSMZ)/DETD/SH
24257 DZOME=(-FZO*SFAR+FAR*FAO*FZR+FZO*SSMR)/DETD/SH
24258
24259 DO 2060 I=MMINA,MMAXA
24260 IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 2060
24261 IA=IABS(I)
24262 EI=KCHG(IABS(I),1)/3D0
24263 AI=SIGN(1D0,EI+0.1D0)
24264 VI=AI-4D0*EI*XWV
24265 VALI=0.25D0*(VI+AI)
24266 VARI=0.25D0*(VI-AI)
24267 F2L=(EI*DARHO+VALI*DZRHO/SQRT(XW*XW1))*VRGP
24268 F2L=F2L+(EI*DAOME+VALI*DZOME/SQRT(XW*XW1))*VOGP
24269 F2R=(EI*DARHO+VARI*DZRHO/SQRT(XW*XW1))*VRGP
24270 F2R=F2R+(EI*DAOME+VARI*DZOME/SQRT(XW*XW1))*VOGP
24271 HI=(ABS(F2L)**2+ABS(F2R)**2)*VFAC
24272 F2L=(EI*DARHO+VALI*DZRHO/SQRT(XW*XW1))*ARGP
24273 F2L=F2L+(EI*DAOME+VALI*DZOME/SQRT(XW*XW1))*AOGP
24274 F2R=(EI*DARHO+VARI*DZRHO/SQRT(XW*XW1))*ARGP
24275 F2R=F2R+(EI*DAOME+VARI*DZOME/SQRT(XW*XW1))*AOGP
24276 HJ=(ABS(F2L)**2+ABS(F2R)**2)*AFAC
24277 HI=HI+HJ
24278 IF(IA.LE.10) HI=HI/3D0
24279 NCHN=NCHN+1
24280 ISIG(NCHN,1)=I
24281 ISIG(NCHN,2)=-I
24282 ISIG(NCHN,3)=1
24283 IF(ISUBSV.NE.368) THEN
24284 SIGH(NCHN)=HI*HP*WIDS(KFA,2)*WIDS(KFB,2)
24285 ELSE
24286 SIGH(NCHN)=HI*HP*WIDS(KFA,2)*WIDS(KFB,3)
24287 NCHN=NCHN+1
24288 ISIG(NCHN,1)=I
24289 ISIG(NCHN,2)=-I
24290 ISIG(NCHN,3)=2
24291 SIGH(NCHN)=HI*HP*WIDS(KFA,3)*WIDS(KFB,2)
24292 ENDIF
24293 2060 CONTINUE
24294
24295 ELSEIF(ISUB.EQ.370) THEN
24296
24297
24298 FACA=(SH**2*BE34**2-(TH-UH)**2)
24299 ALPRHT=2.91D0*(3D0/PARP(144))
24300 HP=(1D0/24D0)*AEM*ALPRHT*CAB2*COMFAC*FACA*3D0/XW
24301
24302 FWR=SQRT(AEM/ALPRHT)/(2D0*SQRT(XW))
24303 CALL PYWIDT(24,SH,WDTP,WDTE)
24304 SSMZ=CMPLX(1D0-PMAS(24,1)**2/SH,WDTP(0)/SHR)
24305 CALL PYWIDT(55,SH,WDTP,WDTE)
24306 SSMR=CMPLX(1D0-PMAS(55,1)**2/SH,WDTP(0)/SHR)
24307
24308 DETD=SSMZ*SSMR-CMPLX(FWR**2,0D0)
24309 HP=HP*FWR**2/ABS(DETD)**2/SH**2
24310
24311 DO 2080 I=MMIN1,MMAX1
24312 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 2080
24313 IA=IABS(I)
24314 DO 2070 J=MMIN2,MMAX2
24315 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 2070
24316 JA=IABS(J)
24317 IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 2070
24318 IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
24319 & GOTO 2070
24320 KCHR=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
24321 HI=HP
24322 IF(IA.LE.10) HI=HI*VCKM((IA+1)/2,(JA+1)/2)/3D0
24323 NCHN=NCHN+1
24324 ISIG(NCHN,1)=I
24325 ISIG(NCHN,2)=J
24326 ISIG(NCHN,3)=1
24327 SIGH(NCHN)=HI*WIDS(KFA,(5-KCHR)/2)*WIDS(KFB,2)
24328 2070 CONTINUE
24329 2080 CONTINUE
24330
24331 ELSEIF(ISUB.EQ.374) THEN
24332
24333 VFAC=(TH**2+UH**2-2D0*SQM3*SQM4)/SQTV*VRGP**2
24334 AFAC=(TH**2+UH**2-2D0*SQM3*SQM4+4D0*SH*SQM3)/SQTA*ARGP**2
24335
24336 ALPRHT=2.91D0*(3D0/PARP(144))
24337 HP=(1D0/48D0)*AEM**2/XW*COMFAC*3D0*(VFAC+AFAC)*SH
24338
24339 FWR=SQRT(AEM/ALPRHT)/(2D0*SQRT(XW))
24340 CALL PYWIDT(24,SH,WDTP,WDTE)
24341 SSMZ=CMPLX(1D0-PMAS(24,1)**2/SH,WDTP(0)/SHR)
24342 CALL PYWIDT(55,SH,WDTP,WDTE)
24343 SSMR=CMPLX(1D0-PMAS(55,1)**2/SH,WDTP(0)/SHR)
24344
24345 DETD=SSMZ*SSMR-CMPLX(FWR**2,0D0)
24346 HP=HP*FWR**2/ABS(DETD)**2/SH**2
24347
24348 DO 2100 I=MMIN1,MMAX1
24349 IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 2100
24350 IA=IABS(I)
24351 DO 2090 J=MMIN2,MMAX2
24352 IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 2090
24353 JA=IABS(J)
24354 IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 2090
24355 IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
24356 & GOTO 2090
24357 KCHR=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
24358 HI=HP
24359 IF(IA.LE.10) HI=HI*VCKM((IA+1)/2,(JA+1)/2)/3D0
24360 NCHN=NCHN+1
24361 ISIG(NCHN,1)=I
24362 ISIG(NCHN,2)=J
24363 ISIG(NCHN,3)=1
24364 SIGH(NCHN)=HI*WIDS(KFA,(5-KCHR)/2)*WIDS(KFB,2)
24365 2090 CONTINUE
24366 2100 CONTINUE
24367
24368 ENDIF
24369 ENDIF
24370
24371
24372 IF(ISUB.LE.90.OR.ISUB.GE.96) THEN
24373 DO 2200 ICHN=1,NCHN
24374 IF(MINT(45).GE.2) THEN
24375 KFL1=ISIG(ICHN,1)
24376 SIGH(ICHN)=SIGH(ICHN)*XSFX(1,KFL1)
24377 ENDIF
24378 IF(MINT(46).GE.2) THEN
24379 KFL2=ISIG(ICHN,2)
24380 SIGH(ICHN)=SIGH(ICHN)*XSFX(2,KFL2)
24381 ENDIF
24382 SIGS=SIGS+SIGH(ICHN)
24383 2200 CONTINUE
24384 ENDIF
24385
24386 RETURN
24387 END
24388
24389
24390
24391
24392
24393
24394
24395
24396
24397 SUBROUTINE PYPDFU(KF,X,Q2,XPQ)
24398
24399
24400 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
24401 IMPLICIT INTEGER(I-N)
24402 INTEGER PYK,PYCHGE,PYCOMP
24403
24404 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
24405 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
24406 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
24407 COMMON/PYINT1/MINT(400),VINT(400)
24408 COMMON/PYINT8/XPVMD(-6:6),XPANL(-6:6),XPANH(-6:6),XPBEH(-6:6),
24409 &XPDIR(-6:6)
24410 SAVE /PYDAT1/,/PYDAT2/,/PYPARS/,/PYINT1/,/PYINT8/
24411
24412 DIMENSION XPQ(-25:25),XPEL(-25:25),XPGA(-6:6),VXPGA(-6:6),
24413 &XPPI(-6:6),XPPR(-6:6)
24414
24415
24416 COMMON/W50513/XMIN,XMAX,Q2MIN,Q2MAX
24417 SAVE /W50513/
24418 DOUBLE PRECISION XX,QQ,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GLU,
24419 &VALUE(20),XMIN,XMAX,Q2MIN,Q2MAX
24420 CHARACTER*20 PARM(20)
24421 DATA VALUE/20*0D0/,PARM/20*' '/
24422
24423
24424 DATA ALAMGA/0.2D0/, PMCGA/1.3D0/, PMBGA/4.6D0/
24425
24426
24427 MINT(92)=0
24428 DO 100 KFL=-25,25
24429 XPQ(KFL)=0D0
24430 100 CONTINUE
24431
24432
24433 IF(X.LE.0D0.OR.X.GE.1D0) THEN
24434 WRITE(MSTU(11),5000) X
24435 RETURN
24436 ENDIF
24437 KFA=IABS(KF)
24438 IF(KFA.NE.11.AND.KFA.NE.13.AND.KFA.NE.15.AND.KFA.NE.22.AND.
24439 &KFA.NE.211.AND.KFA.NE.2112.AND.KFA.NE.2212.AND.KFA.NE.3122.AND.
24440 &KFA.NE.3112.AND.KFA.NE.3212.AND.KFA.NE.3222.AND.KFA.NE.3312.AND.
24441 &KFA.NE.3322.AND.KFA.NE.3334.AND.KFA.NE.111) THEN
24442 WRITE(MSTU(11),5100) KF
24443 RETURN
24444 ENDIF
24445
24446
24447 IF(KFA.EQ.11.OR.KFA.EQ.13.OR.KFA.EQ.15) THEN
24448 CALL PYPDEL(KFA,X,Q2,XPEL)
24449 DO 110 KFL=-25,25
24450 XPQ(KFL)=XPEL(KFL)
24451 110 CONTINUE
24452
24453
24454 ELSEIF(KFA.EQ.22.AND.MINT(109).LE.1) THEN
24455 IF(MSTP(56).EQ.1.AND.MSTP(55).EQ.1) THEN
24456 CALL PYPDGA(X,Q2,XPGA)
24457 DO 120 KFL=-6,6
24458 XPQ(KFL)=XPGA(KFL)
24459 120 CONTINUE
24460 ELSEIF(MSTP(56).EQ.1.AND.MSTP(55).GE.5.AND.MSTP(55).LE.8) THEN
24461 Q2MX=Q2
24462 P2MX=0.36D0
24463 IF(MSTP(55).GE.7) P2MX=4.0D0
24464 IF(MSTP(57).EQ.0) Q2MX=P2MX
24465 P2=0D0
24466 IF(VINT(120).LT.0D0) P2=VINT(120)**2
24467 CALL PYGGAM(MSTP(55)-4,X,Q2MX,P2,MSTP(60),F2GAM,XPGA)
24468 DO 130 KFL=-6,6
24469 XPQ(KFL)=XPGA(KFL)
24470 130 CONTINUE
24471 VINT(231)=P2MX
24472 ELSEIF(MSTP(56).EQ.1.AND.MSTP(55).GE.9.AND.MSTP(55).LE.12) THEN
24473 Q2MX=Q2
24474 P2MX=0.36D0
24475 IF(MSTP(55).GE.11) P2MX=4.0D0
24476 IF(MSTP(57).EQ.0) Q2MX=P2MX
24477 P2=0D0
24478 IF(VINT(120).LT.0D0) P2=VINT(120)**2
24479 CALL PYGGAM(MSTP(55)-8,X,Q2MX,P2,MSTP(60),F2GAM,XPGA)
24480 DO 140 KFL=-6,6
24481 XPQ(KFL)=XPVMD(KFL)+XPANL(KFL)+XPBEH(KFL)+XPDIR(KFL)
24482 140 CONTINUE
24483 VINT(231)=P2MX
24484 ELSEIF(MSTP(56).EQ.2) THEN
24485
24486 PARM(1)='NPTYPE'
24487 VALUE(1)=3
24488 PARM(2)='NGROUP'
24489 VALUE(2)=MSTP(55)/1000
24490 PARM(3)='NSET'
24491 VALUE(3)=MOD(MSTP(55),1000)
24492 IF(MINT(93).NE.3000000+MSTP(55)) THEN
24493 CALL PDFSET(PARM,VALUE)
24494 MINT(93)=3000000+MSTP(55)
24495 ENDIF
24496 XX=X
24497 QQ2=MAX(0D0,Q2MIN,Q2)
24498 IF(MSTP(57).EQ.0) QQ2=Q2MIN
24499 P2=0D0
24500 IF(VINT(120).LT.0D0) P2=VINT(120)**2
24501 IP2=MSTP(60)
24502 IF(MSTP(55).EQ.5004) THEN
24503 IF(5D0*P2.LT.QQ2.AND.
24504 & QQ2.GT.0.6D0.AND.QQ2.LT.5D4.AND.
24505 & P2.GE.0D0.AND.P2.LT.10D0.AND.
24506 & XX.GT.1D-4.AND.XX.LT.1D0) THEN
24507 CALL STRUCTP(XX,QQ2,P2,IP2,UPV,DNV,USEA,DSEA,STR,CHM,
24508 & BOT,TOP,GLU)
24509 ELSE
24510 UPV=0D0
24511 DNV=0D0
24512 USEA=0D0
24513 DSEA=0D0
24514 STR=0D0
24515 CHM=0D0
24516 BOT=0D0
24517 TOP=0D0
24518 GLU=0D0
24519 ENDIF
24520 ELSE
24521 IF(P2.LT.QQ2) THEN
24522 CALL STRUCTP(XX,QQ2,P2,IP2,UPV,DNV,USEA,DSEA,STR,CHM,
24523 & BOT,TOP,GLU)
24524 ELSE
24525 UPV=0D0
24526 DNV=0D0
24527 USEA=0D0
24528 DSEA=0D0
24529 STR=0D0
24530 CHM=0D0
24531 BOT=0D0
24532 TOP=0D0
24533 GLU=0D0
24534 ENDIF
24535 ENDIF
24536 VINT(231)=Q2MIN
24537 XPQ(0)=GLU
24538 XPQ(1)=DNV
24539 XPQ(-1)=DNV
24540 XPQ(2)=UPV
24541 XPQ(-2)=UPV
24542 XPQ(3)=STR
24543 XPQ(-3)=STR
24544 XPQ(4)=CHM
24545 XPQ(-4)=CHM
24546 XPQ(5)=BOT
24547 XPQ(-5)=BOT
24548 XPQ(6)=TOP
24549 XPQ(-6)=TOP
24550 ELSE
24551 WRITE(MSTU(11),5200) KF,MSTP(56),MSTP(55)
24552 ENDIF
24553
24554
24555 ELSEIF(KFA.EQ.211.OR.KFA.EQ.111.OR.(KFA.EQ.22.AND.
24556 & MINT(109).EQ.2)) THEN
24557 IF(KFA.EQ.22.AND.MSTP(56).EQ.1.AND.MSTP(55).GE.5.AND.
24558 & MSTP(55).LE.12) THEN
24559 ISET=1+MOD(MSTP(55)-1,4)
24560 Q2MX=Q2
24561 P2MX=0.36D0
24562 IF(ISET.GE.3) P2MX=4.0D0
24563 IF(MSTP(57).EQ.0) Q2MX=P2MX
24564 P2=0D0
24565 IF(VINT(120).LT.0D0) P2=VINT(120)**2
24566 CALL PYGGAM(ISET,X,Q2MX,P2,MSTP(60),F2GAM,XPGA)
24567 DO 150 KFL=-6,6
24568 XPQ(KFL)=XPVMD(KFL)
24569 150 CONTINUE
24570 VINT(231)=P2MX
24571 ELSEIF(MSTP(54).EQ.1.AND.MSTP(53).GE.1.AND.MSTP(53).LE.3) THEN
24572 CALL PYPDPI(X,Q2,XPPI)
24573 DO 160 KFL=-6,6
24574 XPQ(KFL)=XPPI(KFL)
24575 160 CONTINUE
24576 ELSEIF(MSTP(54).EQ.2) THEN
24577
24578 PARM(1)='NPTYPE'
24579 VALUE(1)=2
24580 PARM(2)='NGROUP'
24581 VALUE(2)=MSTP(53)/1000
24582 PARM(3)='NSET'
24583 VALUE(3)=MOD(MSTP(53),1000)
24584 IF(MINT(93).NE.2000000+MSTP(53)) THEN
24585 CALL PDFSET(PARM,VALUE)
24586 MINT(93)=2000000+MSTP(53)
24587 ENDIF
24588 XX=X
24589 QQ=SQRT(MAX(0D0,Q2MIN,Q2))
24590 IF(MSTP(57).EQ.0) QQ=SQRT(Q2MIN)
24591 CALL STRUCTM(XX,QQ,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GLU)
24592 VINT(231)=Q2MIN
24593 XPQ(0)=GLU
24594 XPQ(1)=DSEA
24595 XPQ(-1)=UPV+DSEA
24596 XPQ(2)=UPV+USEA
24597 XPQ(-2)=USEA
24598 XPQ(3)=STR
24599 XPQ(-3)=STR
24600 XPQ(4)=CHM
24601 XPQ(-4)=CHM
24602 XPQ(5)=BOT
24603 XPQ(-5)=BOT
24604 XPQ(6)=TOP
24605 XPQ(-6)=TOP
24606 ELSE
24607 WRITE(MSTU(11),5200) KF,MSTP(54),MSTP(53)
24608 ENDIF
24609
24610
24611 ELSEIF(KFA.EQ.22.AND.MINT(109).EQ.3) THEN
24612 Q2MX=Q2
24613 P2MX=PARP(15)**2
24614 IF(MSTP(56).EQ.1.AND.MSTP(55).LE.8) THEN
24615 IF(MSTP(55).EQ.5.OR.MSTP(55).EQ.6) P2MX=0.36D0
24616 IF(MSTP(55).EQ.7.OR.MSTP(55).EQ.8) P2MX=4.0D0
24617 IF(MSTP(57).EQ.0) Q2MX=P2MX
24618 P2=0D0
24619 IF(VINT(120).LT.0D0) P2=VINT(120)**2
24620 CALL PYGGAM(MSTP(55)-4,X,Q2MX,P2,MSTP(60),F2GM,XPGA)
24621 DO 170 KFL=-6,6
24622 XPQ(KFL)=XPANL(KFL)+XPANH(KFL)
24623 170 CONTINUE
24624 VINT(231)=P2MX
24625 ELSEIF(MSTP(56).EQ.1) THEN
24626 IF(MSTP(55).EQ.9.OR.MSTP(55).EQ.10) P2MX=0.36D0
24627 IF(MSTP(55).EQ.11.OR.MSTP(55).EQ.12) P2MX=4.0D0
24628 IF(MSTP(57).EQ.0) Q2MX=P2MX
24629 P2=0D0
24630 IF(VINT(120).LT.0D0) P2=VINT(120)**2
24631 CALL PYGGAM(MSTP(55)-8,X,Q2MX,P2,MSTP(60),F2GM,XPGA)
24632 DO 180 KFL=-6,6
24633 XPQ(KFL)=MAX(0D0,XPANL(KFL)+XPBEH(KFL)+XPDIR(KFL))
24634 180 CONTINUE
24635 VINT(231)=P2MX
24636 ELSEIF(MSTP(56).EQ.2) THEN
24637 IF(MSTP(57).EQ.0) Q2MX=P2MX
24638 CALL PYGANO(0,X,Q2MX,P2MX,ALAMGA,XPGA,VXPGA)
24639 DO 190 KFL=-6,6
24640 XPQ(KFL)=XPGA(KFL)
24641 190 CONTINUE
24642 VINT(231)=P2MX
24643 ELSEIF(MSTP(55).GE.1.AND.MSTP(55).LE.5) THEN
24644 IF(MSTP(57).EQ.0) Q2MX=P2MX
24645 CALL PYGVMD(0,MSTP(55),X,Q2MX,P2MX,PARP(1),XPGA,VXPGA)
24646 DO 200 KFL=-6,6
24647 XPQ(KFL)=XPGA(KFL)
24648 200 CONTINUE
24649 VINT(231)=P2MX
24650 ELSE
24651 210 RKF=11D0*PYR(0)
24652 KFR=1
24653 IF(RKF.GT.1D0) KFR=2
24654 IF(RKF.GT.5D0) KFR=3
24655 IF(RKF.GT.6D0) KFR=4
24656 IF(RKF.GT.10D0) KFR=5
24657 IF(KFR.EQ.4.AND.Q2.LT.PMCGA**2) GOTO 210
24658 IF(KFR.EQ.5.AND.Q2.LT.PMBGA**2) GOTO 210
24659 IF(MSTP(57).EQ.0) Q2MX=P2MX
24660 CALL PYGVMD(0,KFR,X,Q2MX,P2MX,PARP(1),XPGA,VXPGA)
24661 DO 220 KFL=-6,6
24662 XPQ(KFL)=XPGA(KFL)
24663 220 CONTINUE
24664 VINT(231)=P2MX
24665 ENDIF
24666
24667
24668 ELSE
24669 IF(MSTP(52).EQ.1.AND.MSTP(51).GE.1.AND.MSTP(51).LE.20) THEN
24670 CALL PYPDPR(X,Q2,XPPR)
24671 DO 230 KFL=-6,6
24672 XPQ(KFL)=XPPR(KFL)
24673 230 CONTINUE
24674 ELSEIF(MSTP(52).EQ.2) THEN
24675
24676 PARM(1)='NPTYPE'
24677 VALUE(1)=1
24678 PARM(2)='NGROUP'
24679 VALUE(2)=MSTP(51)/1000
24680 PARM(3)='NSET'
24681 VALUE(3)=MOD(MSTP(51),1000)
24682 IF(MINT(93).NE.1000000+MSTP(51)) THEN
24683 CALL PDFSET(PARM,VALUE)
24684 MINT(93)=1000000+MSTP(51)
24685 ENDIF
24686 XX=X
24687 QQ=SQRT(MAX(0D0,Q2MIN,Q2))
24688 IF(MSTP(57).EQ.0) QQ=SQRT(Q2MIN)
24689 CALL STRUCTM(XX,QQ,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GLU)
24690 VINT(231)=Q2MIN
24691 XPQ(0)=GLU
24692 XPQ(1)=DNV+DSEA
24693 XPQ(-1)=DSEA
24694 XPQ(2)=UPV+USEA
24695 XPQ(-2)=USEA
24696 XPQ(3)=STR
24697 XPQ(-3)=STR
24698 XPQ(4)=CHM
24699 XPQ(-4)=CHM
24700 XPQ(5)=BOT
24701 XPQ(-5)=BOT
24702 XPQ(6)=TOP
24703 XPQ(-6)=TOP
24704 ELSE
24705 WRITE(MSTU(11),5200) KF,MSTP(52),MSTP(51)
24706 ENDIF
24707 ENDIF
24708
24709
24710 IF(KFA.EQ.111.OR.(KFA.EQ.22.AND.MINT(109).EQ.2)) THEN
24711 IF(KFA.EQ.22.AND.MSTP(55).GE.5.AND.MSTP(55).LE.12) THEN
24712 XPV=XPQ(2)-XPQ(1)
24713 XPQ(2)=XPQ(1)
24714 XPQ(-2)=XPQ(-1)
24715 ELSE
24716 XPS=0.5D0*(XPQ(1)+XPQ(-2))
24717 XPV=0.5D0*(XPQ(2)+XPQ(-1))-XPS
24718 XPQ(2)=XPS
24719 XPQ(-1)=XPS
24720 ENDIF
24721 IF(KFA.EQ.22.AND.MINT(105).LE.223) THEN
24722 XPQ(1)=XPQ(1)+0.2D0*XPV
24723 XPQ(-1)=XPQ(-1)+0.2D0*XPV
24724 XPQ(2)=XPQ(2)+0.8D0*XPV
24725 XPQ(-2)=XPQ(-2)+0.8D0*XPV
24726 ELSEIF(KFA.EQ.22.AND.MINT(105).EQ.333) THEN
24727 XPQ(3)=XPQ(3)+XPV
24728 XPQ(-3)=XPQ(-3)+XPV
24729 ELSEIF(KFA.EQ.22.AND.MINT(105).EQ.443) THEN
24730 XPQ(4)=XPQ(4)+XPV
24731 XPQ(-4)=XPQ(-4)+XPV
24732 IF(MSTP(55).GE.9) THEN
24733 DO 240 KFL=-6,6
24734 XPQ(KFL)=0D0
24735 240 CONTINUE
24736 ENDIF
24737 ELSE
24738 XPQ(1)=XPQ(1)+0.5D0*XPV
24739 XPQ(-1)=XPQ(-1)+0.5D0*XPV
24740 XPQ(2)=XPQ(2)+0.5D0*XPV
24741 XPQ(-2)=XPQ(-2)+0.5D0*XPV
24742 ENDIF
24743
24744
24745
24746 IF(KFA.EQ.22.AND.MINT(109).EQ.2.AND..NOT.(MSTP(56).EQ.1
24747 & .AND.MSTP(55).GE.5.AND.MSTP(55).LE.12)) THEN
24748 DO 250 KFL=-6,6
24749 XPQ(KFL)=VINT(281)*XPQ(KFL)
24750 250 CONTINUE
24751 VINT(232)=VINT(281)*XPV
24752 ENDIF
24753
24754
24755 ELSEIF(KFA.EQ.2112) THEN
24756 XPS=XPQ(1)
24757 XPQ(1)=XPQ(2)
24758 XPQ(2)=XPS
24759 XPS=XPQ(-1)
24760 XPQ(-1)=XPQ(-2)
24761 XPQ(-2)=XPS
24762
24763
24764 ELSEIF(KFA.EQ.3122.OR.KFA.EQ.3112.OR.KFA.EQ.3212.OR.KFA.EQ.3222
24765 & .OR.KFA.EQ.3312.OR.KFA.EQ.3322.OR.KFA.EQ.3334) THEN
24766 XPVAL=(XPQ(1)+XPQ(2)-XPQ(-1)-XPQ(-2))/3D0
24767 XPSEA=0.5D0*(XPQ(-1)+XPQ(-2))
24768 XPQ(1)=XPSEA
24769 XPQ(2)=XPSEA
24770 XPQ(-1)=XPSEA
24771 XPQ(-2)=XPSEA
24772 XPQ(KFA/1000)=XPQ(KFA/1000)+XPVAL
24773 XPQ(MOD(KFA/100,10))=XPQ(MOD(KFA/100,10))+XPVAL
24774 XPQ(MOD(KFA/10,10))=XPQ(MOD(KFA/10,10))+XPVAL
24775 ENDIF
24776
24777
24778 IF(KF.LT.0) THEN
24779 DO 260 KFL=1,25
24780 IF(KFL.EQ.21.OR.KFL.EQ.22.OR.KFL.EQ.23.OR.KFL.EQ.25) GOTO 260
24781 XPS=XPQ(KFL)
24782 XPQ(KFL)=XPQ(-KFL)
24783 XPQ(-KFL)=XPS
24784 260 CONTINUE
24785 ENDIF
24786
24787
24788 XPQ(21)=XPQ(0)
24789
24790
24791 DO 270 KFL=-25,25
24792 XPQ(KFL)=MAX(0D0,XPQ(KFL))
24793 IF(IABS(KFL).GT.MSTP(58).AND.IABS(KFL).LE.8) XPQ(KFL)=0D0
24794 270 CONTINUE
24795
24796
24797 5000 FORMAT(' Error: x value outside physical range; x =',1P,D12.3)
24798 5100 FORMAT(' Error: illegal particle code for parton distribution;',
24799 &' KF =',I5)
24800 5200 FORMAT(' Error: unknown parton distribution; KF, library, set =',
24801 &3I5)
24802
24803 RETURN
24804 END
24805
24806
24807
24808
24809
24810
24811
24812 SUBROUTINE PYPDFL(KF,X,Q2,XPQ)
24813
24814
24815 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
24816 IMPLICIT INTEGER(I-N)
24817 INTEGER PYK,PYCHGE,PYCOMP
24818
24819 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
24820 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
24821 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
24822 COMMON/PYINT1/MINT(400),VINT(400)
24823 SAVE /PYDAT1/,/PYDAT2/,/PYPARS/,/PYINT1/
24824
24825 DIMENSION XPQ(-25:25),XPA(-25:25),XPB(-25:25),WTSB(-3:3)
24826 DATA RMR/0.92D0/,RMP/0.38D0/,WTSB/0.5D0,1D0,1D0,5D0,1D0,1D0,0.5D0/
24827
24828
24829 MINT(92)=0
24830 KFA=IABS(KF)
24831 IACC=0
24832 IF((KFA.EQ.2212.OR.KFA.EQ.2112).AND.MSTP(57).GE.2) IACC=1
24833 IF(KFA.EQ.211.AND.MSTP(57).GE.3) IACC=1
24834 IF(KFA.EQ.22.AND.MINT(109).EQ.2.AND.MSTP(57).GE.3) IACC=1
24835 IF(IACC.EQ.0) THEN
24836 CALL PYPDFU(KF,X,Q2,XPQ)
24837 RETURN
24838 ENDIF
24839
24840
24841 DO 100 KFL=-25,25
24842 XPQ(KFL)=0D0
24843 100 CONTINUE
24844 IF(X.LE.0D0.OR.X.GE.1D0) THEN
24845 WRITE(MSTU(11),5000) X
24846 RETURN
24847 ENDIF
24848
24849
24850 KFC=KF
24851 NV1=2
24852 NV2=1
24853 IF(KF.EQ.2212) THEN
24854 KFV1=2
24855 KFV2=1
24856 ELSEIF(KF.EQ.-2212) THEN
24857 KFV1=-2
24858 KFV2=-1
24859 ELSEIF(KF.EQ.2112) THEN
24860 KFV1=1
24861 KFV2=2
24862 ELSEIF(KF.EQ.-2112) THEN
24863 KFV1=-1
24864 KFV2=-2
24865 ELSEIF(KF.EQ.211) THEN
24866 NV1=1
24867 KFV1=2
24868 KFV2=-1
24869 ELSEIF(KF.EQ.-211) THEN
24870 NV1=1
24871 KFV1=-2
24872 KFV2=1
24873 ELSEIF(MINT(105).LE.223) THEN
24874 KFV1=1
24875 WTV1=0.2D0
24876 KFV2=2
24877 WTV2=0.8D0
24878 ELSEIF(MINT(105).EQ.333) THEN
24879 KFV1=3
24880 WTV1=1.0D0
24881 KFV2=1
24882 WTV2=0.0D0
24883 ELSEIF(MINT(105).EQ.443) THEN
24884 KFV1=4
24885 WTV1=1.0D0
24886 KFV2=1
24887 WTV2=0.0D0
24888 ENDIF
24889
24890
24891 CALL PYPDFU(KFC,X,Q2,XPA)
24892 Q2MN=MAX(3D0,VINT(231))
24893 Q2B=2D0+0.052D0**2*EXP(3.56D0*SQRT(MAX(0D0,-LOG(3D0*X))))
24894 XMN=EXP(-(LOG((Q2MN-2D0)/0.052D0**2)/3.56D0)**2)/3D0
24895
24896
24897 IF(Q2.GT.Q2MN.AND.Q2.GT.Q2B) THEN
24898 DO 110 KFL=-25,25
24899 XPQ(KFL)=XPA(KFL)
24900 110 CONTINUE
24901 MINT(92)=1
24902
24903
24904 ELSEIF(X.GT.XMN) THEN
24905
24906
24907 CALL PYPDFU(KFC,X,Q2MN,XPA)
24908 FV=(Q2*(Q2MN+RMR)/(Q2MN*(Q2+RMR)))**(0.55D0*(1D0-X)/(1D0-XMN))
24909 FS=(Q2*(Q2MN+RMP)/(Q2MN*(Q2+RMP)))**1.08D0
24910
24911
24912 IF(KFA.NE.22) THEN
24913 XFV1=XPA(KFV1)-XPA(-KFV1)
24914 XPA(KFV1)=XPA(-KFV1)
24915 XFV2=XPA(KFV2)-XPA(-KFV2)
24916 XPA(KFV2)=XPA(-KFV2)
24917 ELSE
24918 XPA(KFV1)=XPA(KFV1)-WTV1*VINT(232)
24919 XPA(-KFV1)=XPA(-KFV1)-WTV1*VINT(232)
24920 XPA(KFV2)=XPA(KFV2)-WTV2*VINT(232)
24921 XPA(-KFV2)=XPA(-KFV2)-WTV2*VINT(232)
24922 ENDIF
24923
24924
24925 DO 120 KFL=-25,25
24926 XPQ(KFL)=FS*XPA(KFL)
24927 120 CONTINUE
24928 IF(KFA.NE.22) THEN
24929 XPQ(KFV1)=XPQ(KFV1)+FV*XFV1
24930 XPQ(KFV2)=XPQ(KFV2)+FV*XFV2
24931 ELSE
24932 XPQ(KFV1)=XPQ(KFV1)+FV*WTV1*VINT(232)
24933 XPQ(-KFV1)=XPQ(-KFV1)+FV*WTV1*VINT(232)
24934 XPQ(KFV2)=XPQ(KFV2)+FV*WTV2*VINT(232)
24935 XPQ(-KFV2)=XPQ(-KFV2)+FV*WTV2*VINT(232)
24936 ENDIF
24937 MINT(92)=2
24938
24939
24940 ELSEIF(Q2.GT.Q2MN) THEN
24941
24942
24943 CALL PYPDFU(KFC,XMN,Q2MN,XPA)
24944 VI232A=VINT(232)
24945 CALL PYPDFU(KFC,X,Q2B,XPB)
24946 VI232B=VINT(232)
24947 FLA=LOG(Q2B/Q2)/LOG(Q2B/Q2MN)
24948 FVA=(X/XMN)**0.45D0*FLA
24949 FSA=(X/XMN)**(-0.08D0)*FLA
24950 FB=1D0-FLA
24951
24952
24953 IF(KFA.NE.22) THEN
24954 XFVA1=XPA(KFV1)-XPA(-KFV1)
24955 XPA(KFV1)=XPA(-KFV1)
24956 XFVA2=XPA(KFV2)-XPA(-KFV2)
24957 XPA(KFV2)=XPA(-KFV2)
24958 XFVB1=XPB(KFV1)-XPB(-KFV1)
24959 XPB(KFV1)=XPB(-KFV1)
24960 XFVB2=XPB(KFV2)-XPB(-KFV2)
24961 XPB(KFV2)=XPB(-KFV2)
24962 ELSE
24963 XPA(KFV1)=XPA(KFV1)-WTV1*VI232A
24964 XPA(-KFV1)=XPA(-KFV1)-WTV1*VI232A
24965 XPA(KFV2)=XPA(KFV2)-WTV2*VI232A
24966 XPA(-KFV2)=XPA(-KFV2)-WTV2*VI232A
24967 XPB(KFV1)=XPB(KFV1)-WTV1*VI232B
24968 XPB(-KFV1)=XPB(-KFV1)-WTV1*VI232B
24969 XPB(KFV2)=XPB(KFV2)-WTV2*VI232B
24970 XPB(-KFV2)=XPB(-KFV2)-WTV2*VI232B
24971 ENDIF
24972
24973
24974 DO 130 KFL=-25,25
24975 XPQ(KFL)=FSA*XPA(KFL)+FB*XPB(KFL)
24976 130 CONTINUE
24977 IF(KFA.NE.22) THEN
24978 XPQ(KFV1)=XPQ(KFV1)+(FVA*XFVA1+FB*XFVB1)
24979 XPQ(KFV2)=XPQ(KFV2)+(FVA*XFVA2+FB*XFVB2)
24980 ELSE
24981 XPQ(KFV1)=XPQ(KFV1)+WTV1*(FVA*VI232A+FB*VI232B)
24982 XPQ(-KFV1)=XPQ(-KFV1)+WTV1*(FVA*VI232A+FB*VI232B)
24983 XPQ(KFV2)=XPQ(KFV2)+WTV2*(FVA*VI232A+FB*VI232B)
24984 XPQ(-KFV2)=XPQ(-KFV2)+WTV2*(FVA*VI232A+FB*VI232B)
24985 ENDIF
24986 MINT(92)=3
24987
24988
24989 ELSE
24990
24991
24992 CALL PYPDFU(KFC,XMN,Q2MN,XPA)
24993 FB=(XMN-X)*(Q2MN-Q2)/(XMN*Q2MN)
24994 FA=1D0-FB
24995 FVC=(X/XMN)**0.45D0*(Q2/(Q2+RMR))**0.55D0
24996 FVA=FVC*FA*((Q2MN+RMR)/Q2MN)**0.55D0
24997 FVB=FVC*FB*1.10D0*XMN**0.45D0*0.11D0
24998 FSC=(X/XMN)**(-0.08D0)*(Q2/(Q2+RMP))**1.08D0
24999 FSA=FSC*FA*((Q2MN+RMP)/Q2MN)**1.08D0
25000 FSB=FSC*FB*0.21D0*XMN**(-0.08D0)*0.21D0
25001
25002
25003 IF(KFA.NE.22) THEN
25004 XFV1=XPA(KFV1)-XPA(-KFV1)
25005 XPA(KFV1)=XPA(-KFV1)
25006 XFV2=XPA(KFV2)-XPA(-KFV2)
25007 XPA(KFV2)=XPA(-KFV2)
25008 ELSE
25009 XPA(KFV1)=XPA(KFV1)-WTV1*VINT(232)
25010 XPA(-KFV1)=XPA(-KFV1)-WTV1*VINT(232)
25011 XPA(KFV2)=XPA(KFV2)-WTV2*VINT(232)
25012 XPA(-KFV2)=XPA(-KFV2)-WTV2*VINT(232)
25013 ENDIF
25014
25015
25016
25017 DO 140 KFL=-25,25
25018 XPQ(KFL)=FSA*XPA(KFL)
25019 140 CONTINUE
25020 IF(KFA.NE.22) THEN
25021 DO 150 KFL=-3,3
25022 XPQ(KFL)=XPQ(KFL)+FSB*WTSB(KFL)
25023 150 CONTINUE
25024 XPQ(KFV1)=XPQ(KFV1)+(FVA*XFV1+FVB*NV1)
25025 XPQ(KFV2)=XPQ(KFV2)+(FVA*XFV2+FVB*NV2)
25026 ELSE
25027 DO 160 KFL=-3,3
25028 XPQ(KFL)=XPQ(KFL)+VINT(281)*FSB*WTSB(KFL)
25029 160 CONTINUE
25030 XPQ(KFV1)=XPQ(KFV1)+WTV1*(FVA*VINT(232)+FVB*VINT(281))
25031 XPQ(-KFV1)=XPQ(-KFV1)+WTV1*(FVA*VINT(232)+FVB*VINT(281))
25032 XPQ(KFV2)=XPQ(KFV2)+WTV2*(FVA*VINT(232)+FVB*VINT(281))
25033 XPQ(-KFV2)=XPQ(-KFV2)+WTV2*(FVA*VINT(232)+FVB*VINT(281))
25034 ENDIF
25035 XPQ(21)=XPQ(0)
25036 MINT(92)=4
25037 ENDIF
25038
25039
25040 5000 FORMAT(' Error: x value outside physical range; x =',1P,D12.3)
25041
25042 RETURN
25043 END
25044
25045
25046
25047
25048
25049
25050 SUBROUTINE PYPDEL(KFA,X,Q2,XPEL)
25051
25052
25053 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
25054 IMPLICIT INTEGER(I-N)
25055 INTEGER PYK,PYCHGE,PYCOMP
25056
25057 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
25058 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
25059 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
25060 COMMON/PYINT1/MINT(400),VINT(400)
25061 SAVE /PYDAT1/,/PYDAT2/,/PYPARS/,/PYINT1/
25062
25063 DIMENSION XPEL(-25:25),XPGA(-6:6),SXP(0:6)
25064
25065
25066 COMMON/W50513/XMIN,XMAX,Q2MIN,Q2MAX
25067 SAVE /W50513/
25068 DOUBLE PRECISION XX,QQ,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GLU,
25069 &VALUE(20),XMIN,XMAX,Q2MIN,Q2MAX
25070 CHARACTER*20 PARM(20)
25071 DATA VALUE/20*0D0/,PARM/20*' '/
25072
25073
25074 DO 100 KFL=-25,25
25075 XPEL(KFL)=0D0
25076 100 CONTINUE
25077 AEM=PARU(101)
25078 PME=PMAS(11,1)
25079 IF(KFA.EQ.13) PME=PMAS(13,1)
25080 IF(KFA.EQ.15) PME=PMAS(15,1)
25081 XL=LOG(MAX(1D-10,X))
25082 X1L=LOG(MAX(1D-10,1D0-X))
25083 HLE=LOG(MAX(3D0,Q2/PME**2))
25084 HBE2=(AEM/PARU(1))*(HLE-1D0)
25085
25086
25087
25088 IF(MSTP(59).LE.1) THEN
25089 HDE=1D0+(AEM/PARU(1))*(1.5D0*HLE+1.289868D0)+(AEM/PARU(1))**2*
25090 & (-2.164868D0*HLE**2+9.840808D0*HLE-10.130464D0)
25091 HEE=HBE2*(1D0-X)**(HBE2-1D0)*SQRT(MAX(0D0,HDE))-
25092 & 0.5D0*HBE2*(1D0+X)+HBE2**2/8D0*((1D0+X)*(-4D0*X1L+3D0*XL)-
25093 & 4D0*XL/(1D0-X)-5D0-X)
25094 ELSE
25095 HEE=HBE2*(1D0-X)**(HBE2-1D0)*EXP(0.172784D0*HBE2)/
25096 & PYGAMM(1D0+HBE2)-0.5D0*HBE2*(1D0+X)+HBE2**2/8D0*((1D0+X)*
25097 & (-4D0*X1L+3D0*XL)-4D0*XL/(1D0-X)-5D0-X)
25098 ENDIF
25099
25100 IF(X.GT.1D0-1D-10) THEN
25101 HEE=0D0
25102 ELSEIF(X.GT.1D0-1D-7) THEN
25103 HEE=HEE*1000D0**HBE2/(1000D0**HBE2-1D0)
25104 ENDIF
25105 XPEL(KFA)=X*HEE
25106
25107
25108 AEMP=PYALEM(PME*SQRT(MAX(0D0,Q2)))/PARU(2)
25109 IF(MSTP(13).LE.1) THEN
25110 HLG=HLE
25111 ELSE
25112 HLG=LOG(MAX(1D0,(PARP(13)/PME**2)*(1D0-X)/X**2))
25113 ENDIF
25114 XPEL(22)=AEMP*HLG*(1D0+(1D0-X)**2)
25115 HLW=LOG(1D0+Q2/PMAS(24,1)**2)/(4D0*PARU(102))
25116 XPEL(-24)=AEMP*HLW*(1D0+(1D0-X)**2)
25117
25118
25119 IF(KFA.EQ.11.AND.MSTP(12).EQ.1) THEN
25120 XFSEA=0.5D0*(AEMP*(HLE-1D0))**2*(4D0/3D0+X-X**2-4D0*X**3/3D0+
25121 & 2D0*X*(1D0+X)*XL)
25122 XPEL(11)=XPEL(11)+XFSEA
25123 XPEL(-11)=XFSEA
25124
25125
25126 IF(MSTP(56).EQ.2) THEN
25127 PARM(1)='NPTYPE'
25128 VALUE(1)=3
25129 PARM(2)='NGROUP'
25130 VALUE(2)=MSTP(55)/1000
25131 PARM(3)='NSET'
25132 VALUE(3)=MOD(MSTP(55),1000)
25133 IF(MINT(93).NE.3000000+MSTP(55)) THEN
25134 CALL PDFSET(PARM,VALUE)
25135 MINT(93)=3000000+MSTP(55)
25136 ENDIF
25137 ENDIF
25138
25139
25140
25141 DO 110 KFL=0,6
25142 SXP(KFL)=0D0
25143 110 CONTINUE
25144 SUMXPP=0D0
25145 ITER=-1
25146 120 ITER=ITER+1
25147 SUMXP=SUMXPP
25148 NSTP=2**(ITER-1)
25149 IF(ITER.EQ.0) NSTP=2
25150 DO 130 KFL=0,6
25151 SXP(KFL)=0.5D0*SXP(KFL)
25152 130 CONTINUE
25153 WTSTP=0.5D0/NSTP
25154 IF(ITER.EQ.0) WTSTP=0.5D0
25155
25156 DO 150 ISTP=1,NSTP
25157 IF(ITER.EQ.0) THEN
25158 XLE=XL*(ISTP-1)
25159 ELSE
25160 XLE=XL*(ISTP-0.5D0)/NSTP
25161 ENDIF
25162 XE=MIN(1D0-1D-10,EXP(XLE))
25163 XG=MIN(1D0-1D-10,X/XE)
25164
25165 XPGP=1D0+(1D0-XE)**2
25166 IF(MSTP(13).LE.1) THEN
25167 XPGP=XPGP*HLE
25168 ELSE
25169 XPGP=XPGP*LOG(MAX(1D0,(PARP(13)/PME**2)*(1D0-XE)/XE**2))
25170 ENDIF
25171
25172 IF(MSTP(56).EQ.1) THEN
25173 CALL PYPDGA(XG,Q2,XPGA)
25174 DO 140 KFL=0,5
25175 SXP(KFL)=SXP(KFL)+WTSTP*XPGP*XPGA(KFL)
25176 140 CONTINUE
25177 ELSEIF(MSTP(56).EQ.2) THEN
25178
25179 XX=XG
25180 QQ=SQRT(MAX(0D0,Q2MIN,Q2))
25181 IF(MSTP(57).EQ.0) QQ=SQRT(Q2MIN)
25182 CALL STRUCTM(XX,QQ,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GLU)
25183 SXP(0)=SXP(0)+WTSTP*XPGP*GLU
25184 SXP(1)=SXP(1)+WTSTP*XPGP*DNV
25185 SXP(2)=SXP(2)+WTSTP*XPGP*UPV
25186 SXP(3)=SXP(3)+WTSTP*XPGP*STR
25187 SXP(4)=SXP(4)+WTSTP*XPGP*CHM
25188 SXP(5)=SXP(5)+WTSTP*XPGP*BOT
25189 SXP(6)=SXP(6)+WTSTP*XPGP*TOP
25190 ENDIF
25191 150 CONTINUE
25192 SUMXPP=SXP(0)+2D0*SXP(1)+2D0*SXP(2)
25193 IF(ITER.LE.2.OR.(ITER.LE.7.AND.ABS(SUMXPP-SUMXP).GT.
25194 & PARP(14)*(SUMXPP+SUMXP))) GOTO 120
25195
25196
25197 FCONV=AEMP*(-XL)
25198 XPEL(0)=FCONV*SXP(0)
25199 DO 160 KFL=1,6
25200 XPEL(KFL)=FCONV*SXP(KFL)
25201 XPEL(-KFL)=XPEL(KFL)
25202 160 CONTINUE
25203 ENDIF
25204
25205 RETURN
25206 END
25207
25208
25209
25210
25211
25212
25213 SUBROUTINE PYPDGA(X,Q2,XPGA)
25214
25215
25216 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
25217 IMPLICIT INTEGER(I-N)
25218 INTEGER PYK,PYCHGE,PYCOMP
25219
25220 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
25221 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
25222 COMMON/PYINT1/MINT(400),VINT(400)
25223 SAVE /PYDAT1/,/PYPARS/,/PYINT1/
25224
25225 DIMENSION XPGA(-6:6),DGAG(4,3),DGBG(4,3),DGCG(4,3),DGAN(4,3),
25226 &DGBN(4,3),DGCN(4,3),DGDN(4,3),DGEN(4,3),DGAS(4,3),DGBS(4,3),
25227 &DGCS(4,3),DGDS(4,3),DGES(4,3)
25228
25229
25230
25231 DATA DGAG/-.207D0,.6158D0,1.074D0,0.D0,.8926D-2,.6594D0,
25232 &.4766D0,.1975D-1,.03197D0,1.018D0,.2461D0,.2707D-1/
25233 DATA DGBG/-.1987D0,.6257D0,8.352D0,5.024D0,.5085D-1,.2774D0,
25234 &-.3906D0,-.3212D0,-.618D-2,.9476D0,-.6094D0,-.1067D-1/
25235 DATA DGCG/5.119D0,-.2752D0,-6.993D0,2.298D0,-.2313D0,.1382D0,
25236 &6.542D0,.5162D0,-.1216D0,.9047D0,2.653D0,.2003D-2/
25237 DATA DGAN/2.285D0,-.1526D-1,1330.D0,4.219D0,-.3711D0,1.061D0,
25238 &4.758D0,-.1503D-1,15.8D0,-.9464D0,-.5D0,-.2118D0/
25239 DATA DGBN/6.073D0,-.8132D0,-41.31D0,3.165D0,-.1717D0,.7815D0,
25240 &1.535D0,.7067D-2,2.742D0,-.7332D0,.7148D0,3.287D0/
25241 DATA DGCN/-.4202D0,.1778D-1,.9216D0,.18D0,.8766D-1,.2197D-1,
25242 &.1096D0,.204D0,.2917D-1,.4657D-1,.1785D0,.4811D-1/
25243 DATA DGDN/-.8083D-1,.6346D0,1.208D0,.203D0,-.8915D0,.2857D0,
25244 &2.973D0,.1185D0,-.342D-1,.7196D0,.7338D0,.8139D-1/
25245 DATA DGEN/.5526D-1,1.136D0,.9512D0,.1163D-1,-.1816D0,.5866D0,
25246 &2.421D0,.4059D0,-.2302D-1,.9229D0,.5873D0,-.79D-4/
25247 DATA DGAS/16.69D0,-.7916D0,1099.D0,4.428D0,-.1207D0,1.071D0,
25248 &1.977D0,-.8625D-2,6.734D0,-1.008D0,-.8594D-1,.7625D-1/
25249 DATA DGBS/.176D0,.4794D-1,1.047D0,.25D-1,25.D0,-1.648D0,
25250 &-.1563D-1,6.438D0,59.88D0,-2.983D0,4.48D0,.9686D0/
25251 DATA DGCS/-.208D-1,.3386D-2,4.853D0,.8404D0,-.123D-1,1.162D0,
25252 &.4824D0,-.11D-1,-.3226D-2,.8432D0,.3616D0,.1383D-2/
25253 DATA DGDS/-.1685D-1,1.353D0,1.426D0,1.239D0,-.9194D-1,.7912D0,
25254 &.6397D0,2.327D0,-.3321D-1,.9475D0,-.3198D0,.2132D-1/
25255 DATA DGES/-.1986D0,1.1D0,1.136D0,-.2779D0,.2015D-1,.9869D0,
25256 &-.7036D-1,.1694D-1,.1059D0,.6954D0,-.6663D0,.3683D0/
25257
25258
25259
25260 DO 100 KFL=-6,6
25261 XPGA(KFL)=0D0
25262 100 CONTINUE
25263 VINT(231)=1D0
25264 IF(MSTP(57).LE.0) THEN
25265 T=LOG(1D0/0.16D0)
25266 ELSE
25267 T=LOG(MIN(1D4,MAX(1D0,Q2))/0.16D0)
25268 ENDIF
25269 X1=1D0-X
25270 NF=3
25271 IF(Q2.GT.25D0) NF=4
25272 IF(Q2.GT.300D0) NF=5
25273 NFE=NF-2
25274 AEM=PARU(101)
25275
25276
25277 DGA=DGAG(1,NFE)*T**DGAG(2,NFE)+DGAG(3,NFE)*T**(-DGAG(4,NFE))
25278 DGB=DGBG(1,NFE)*T**DGBG(2,NFE)+DGBG(3,NFE)*T**(-DGBG(4,NFE))
25279 DGC=DGCG(1,NFE)*T**DGCG(2,NFE)+DGCG(3,NFE)*T**(-DGCG(4,NFE))
25280 XPGL=DGA*X**DGB*X1**DGC
25281
25282
25283 DGA=DGAN(1,NFE)*T**DGAN(2,NFE)+DGAN(3,NFE)*T**(-DGAN(4,NFE))
25284 DGB=DGBN(1,NFE)*T**DGBN(2,NFE)+DGBN(3,NFE)*T**(-DGBN(4,NFE))
25285 DGC=DGCN(1,NFE)*T**DGCN(2,NFE)+DGCN(3,NFE)*T**(-DGCN(4,NFE))
25286 DGD=DGDN(1,NFE)*T**DGDN(2,NFE)+DGDN(3,NFE)*T**(-DGDN(4,NFE))
25287 DGE=DGEN(1,NFE)*T**DGEN(2,NFE)+DGEN(3,NFE)*T**(-DGEN(4,NFE))
25288 XPQN=X*(X**2+X1**2)/(DGA-DGB*LOG(X1))+DGC*X**DGD*X1**DGE
25289 DGA=DGAS(1,NFE)*T**DGAS(2,NFE)+DGAS(3,NFE)*T**(-DGAS(4,NFE))
25290 DGB=DGBS(1,NFE)*T**DGBS(2,NFE)+DGBS(3,NFE)*T**(-DGBS(4,NFE))
25291 DGC=DGCS(1,NFE)*T**DGCS(2,NFE)+DGCS(3,NFE)*T**(-DGCS(4,NFE))
25292 DGD=DGDS(1,NFE)*T**DGDS(2,NFE)+DGDS(3,NFE)*T**(-DGDS(4,NFE))
25293 DGE=DGES(1,NFE)*T**DGES(2,NFE)+DGES(3,NFE)*T**(-DGES(4,NFE))
25294 DGF=9D0
25295 IF(NF.EQ.4) DGF=10D0
25296 IF(NF.EQ.5) DGF=55D0/6D0
25297 XPQS=DGF*X*(X**2+X1**2)/(DGA-DGB*LOG(X1))+DGC*X**DGD*X1**DGE
25298 IF(NF.LE.3) THEN
25299 XPQU=(XPQS+9D0*XPQN)/6D0
25300 XPQD=(XPQS-4.5D0*XPQN)/6D0
25301 ELSEIF(NF.EQ.4) THEN
25302 XPQU=(XPQS+6D0*XPQN)/8D0
25303 XPQD=(XPQS-6D0*XPQN)/8D0
25304 ELSE
25305 XPQU=(XPQS+7.5D0*XPQN)/10D0
25306 XPQD=(XPQS-5D0*XPQN)/10D0
25307 ENDIF
25308
25309
25310 XPGA(0)=AEM*XPGL
25311 XPGA(1)=AEM*XPQD
25312 XPGA(2)=AEM*XPQU
25313 XPGA(3)=AEM*XPQD
25314 IF(NF.GE.4) XPGA(4)=AEM*XPQU
25315 IF(NF.GE.5) XPGA(5)=AEM*XPQD
25316 DO 110 KFL=1,6
25317 XPGA(-KFL)=XPGA(KFL)
25318 110 CONTINUE
25319
25320 RETURN
25321 END
25322
25323
25324
25325
25326
25327
25328
25329
25330
25331
25332
25333 SUBROUTINE PYGGAM(ISET,X,Q2,P2,IP2,F2GM,XPDFGM)
25334
25335
25336 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
25337 IMPLICIT INTEGER(I-N)
25338 INTEGER PYK,PYCHGE,PYCOMP
25339
25340 COMMON/PYINT8/XPVMD(-6:6),XPANL(-6:6),XPANH(-6:6),XPBEH(-6:6),
25341 &XPDIR(-6:6)
25342 COMMON/PYINT9/VXPVMD(-6:6),VXPANL(-6:6),VXPANH(-6:6),VXPDGM(-6:6)
25343 SAVE /PYINT8/,/PYINT9/
25344
25345 DIMENSION XPDFGM(-6:6),XPGA(-6:6), VXPGA(-6:6)
25346
25347 DATA PMC/1.3D0/, PMB/4.6D0/
25348
25349 DATA AEM/0.007297D0/, AEM2PI/0.0011614D0/
25350
25351 DATA ALAM/0.20D0/
25352
25353 DATA FRACU/0.8D0/
25354
25355 DATA FRHO/2.20D0/, FOMEGA/23.6D0/, FPHI/18.4D0/
25356
25357 DATA PMRHO/0.770D0/, PMPHI/1.020D0/
25358
25359 DATA NSTEP/100/
25360
25361
25362 F2GM=0D0
25363 DO 100 KFL=-6,6
25364 XPDFGM(KFL)=0D0
25365 XPVMD(KFL)=0D0
25366 XPANL(KFL)=0D0
25367 XPANH(KFL)=0D0
25368 XPBEH(KFL)=0D0
25369 XPDIR(KFL)=0D0
25370 VXPVMD(KFL)=0D0
25371 VXPANL(KFL)=0D0
25372 VXPANH(KFL)=0D0
25373 VXPDGM(KFL)=0D0
25374 100 CONTINUE
25375
25376
25377 IF(ISET.LE.2) THEN
25378 Q0=0.6D0
25379 ELSE
25380 Q0=2D0
25381 ENDIF
25382 Q02=Q0**2
25383
25384
25385 Q2A=Q2
25386 FACNOR=1D0
25387 IF(IP2.EQ.1) THEN
25388 P2MX=P2+Q02
25389 Q2A=Q2+P2*Q02/MAX(Q02,Q2)
25390 FACNOR=LOG(Q2/Q02)/NSTEP
25391 ELSEIF(IP2.EQ.2) THEN
25392 P2MX=MAX(P2,Q02)
25393 ELSEIF(IP2.EQ.3) THEN
25394 P2MX=P2+Q02
25395 Q2A=Q2+P2*Q02/MAX(Q02,Q2)
25396 ELSEIF(IP2.EQ.4) THEN
25397 P2MX=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
25398 & ((Q2+P2)*(Q02+P2)))
25399 ELSEIF(IP2.EQ.5) THEN
25400 P2MXA=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
25401 & ((Q2+P2)*(Q02+P2)))
25402 P2MX=Q0*SQRT(P2MXA)
25403 FACNOR=LOG(Q2/P2MXA)/LOG(Q2/P2MX)
25404 ELSEIF(IP2.EQ.6) THEN
25405 P2MX=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
25406 & ((Q2+P2)*(Q02+P2)))
25407 P2MX=MAX(0D0,1D0-P2/Q2)*P2MX+MIN(1D0,P2/Q2)*MAX(P2,Q02)
25408 ELSE
25409 P2MXA=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
25410 & ((Q2+P2)*(Q02+P2)))
25411 P2MX=Q0*SQRT(P2MXA)
25412 P2MXB=P2MX
25413 P2MX=MAX(0D0,1D0-P2/Q2)*P2MX+MIN(1D0,P2/Q2)*MAX(P2,Q02)
25414 P2MXB=MAX(0D0,1D0-P2/Q2)*P2MXB+MIN(1D0,P2/Q2)*P2MXA
25415 IF(ABS(Q2-Q02).GT.1D-6) THEN
25416 FACNOR=LOG(Q2/P2MXA)/LOG(Q2/P2MXB)
25417 ELSEIF(P2.LT.Q02) THEN
25418 FACNOR=Q02**3/(Q02+P2)/(Q02**2-P2**2/2D0)
25419 ELSE
25420 FACNOR=1D0
25421 ENDIF
25422 ENDIF
25423
25424
25425
25426 CALL PYGVMD(ISET,1,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
25427 XFVAL=VXPGA(1)
25428 XPGA(1)=XPGA(2)
25429 XPGA(-1)=XPGA(-2)
25430 FACUD=AEM*(1D0/FRHO+1D0/FOMEGA)*(PMRHO**2/(PMRHO**2+P2))**2
25431 FACS=AEM*(1D0/FPHI)*(PMPHI**2/(PMPHI**2+P2))**2
25432 DO 110 KFL=-5,5
25433 XPVMD(KFL)=(FACUD+FACS)*XPGA(KFL)
25434 110 CONTINUE
25435 XPVMD(1)=XPVMD(1)+(1D0-FRACU)*FACUD*XFVAL
25436 XPVMD(2)=XPVMD(2)+FRACU*FACUD*XFVAL
25437 XPVMD(3)=XPVMD(3)+FACS*XFVAL
25438 XPVMD(-1)=XPVMD(-1)+(1D0-FRACU)*FACUD*XFVAL
25439 XPVMD(-2)=XPVMD(-2)+FRACU*FACUD*XFVAL
25440 XPVMD(-3)=XPVMD(-3)+FACS*XFVAL
25441 VXPVMD(1)=(1D0-FRACU)*FACUD*XFVAL
25442 VXPVMD(2)=FRACU*FACUD*XFVAL
25443 VXPVMD(3)=FACS*XFVAL
25444 VXPVMD(-1)=(1D0-FRACU)*FACUD*XFVAL
25445 VXPVMD(-2)=FRACU*FACUD*XFVAL
25446 VXPVMD(-3)=FACS*XFVAL
25447
25448 IF(IP2.NE.1) THEN
25449
25450
25451
25452
25453 CALL PYGANO(-3,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
25454 DO 120 KFL=-5,5
25455 XPANL(KFL)=FACNOR*XPGA(KFL)
25456 VXPANL(KFL)=FACNOR*VXPGA(KFL)
25457 120 CONTINUE
25458
25459
25460 CALL PYGANO(4,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
25461 DO 130 KFL=-5,5
25462 XPANH(KFL)=FACNOR*XPGA(KFL)
25463 VXPANH(KFL)=FACNOR*VXPGA(KFL)
25464 130 CONTINUE
25465 CALL PYGANO(5,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
25466 DO 140 KFL=-5,5
25467 XPANH(KFL)=XPANH(KFL)+FACNOR*XPGA(KFL)
25468 VXPANH(KFL)=VXPANH(KFL)+FACNOR*VXPGA(KFL)
25469 140 CONTINUE
25470
25471 ELSE
25472
25473 DO 170 KF=1,5
25474 DO 160 ISTEP=1,NSTEP
25475 Q2STEP=Q02*(Q2/Q02)**((ISTEP-0.5D0)/NSTEP)
25476 IF((KF.EQ.4.AND.Q2STEP.LT.PMC**2).OR.
25477 & (KF.EQ.5.AND.Q2STEP.LT.PMB**2)) GOTO 160
25478 CALL PYGVMD(0,KF,X,Q2,Q2STEP,ALAM,XPGA,VXPGA)
25479 FACQ=AEM2PI*(Q2STEP/(Q2STEP+P2))**2*FACNOR
25480 IF(MOD(KF,2).EQ.0) FACQ=FACQ*(8D0/9D0)
25481 IF(MOD(KF,2).EQ.1) FACQ=FACQ*(2D0/9D0)
25482 DO 150 KFL=-5,5
25483 IF(KF.LE.3) XPANL(KFL)=XPANL(KFL)+FACQ*XPGA(KFL)
25484 IF(KF.GE.4) XPANH(KFL)=XPANH(KFL)+FACQ*XPGA(KFL)
25485 IF(KF.LE.3) VXPANL(KFL)=VXPANL(KFL)+FACQ*VXPGA(KFL)
25486 IF(KF.GE.4) VXPANH(KFL)=VXPANH(KFL)+FACQ*VXPGA(KFL)
25487 150 CONTINUE
25488 160 CONTINUE
25489 170 CONTINUE
25490 ENDIF
25491
25492
25493 CALL PYGBEH(4,X,Q2,P2,PMC**2,XPBH)
25494 XPBEH(4)=XPBH
25495 XPBEH(-4)=XPBH
25496 CALL PYGBEH(5,X,Q2,P2,PMB**2,XPBH)
25497 XPBEH(5)=XPBH
25498 XPBEH(-5)=XPBH
25499
25500
25501 IF(ISET.EQ.2.OR.ISET.EQ.4) THEN
25502 CALL PYGDIR(X,Q2,P2,Q02,XPGA)
25503 DO 180 KFL=-5,5
25504 XPDIR(KFL)=XPGA(KFL)
25505 180 CONTINUE
25506 ENDIF
25507
25508
25509 DO 190 KFL=-5,5
25510 CHSQ=1D0/9D0
25511 IF(IABS(KFL).EQ.2.OR.IABS(KFL).EQ.4) CHSQ=4D0/9D0
25512 XPF2=XPVMD(KFL)+XPANL(KFL)+XPBEH(KFL)+XPDIR(KFL)
25513 IF(KFL.NE.0) F2GM=F2GM+CHSQ*XPF2
25514 XPDFGM(KFL)=XPVMD(KFL)+XPANL(KFL)+XPANH(KFL)
25515 VXPDGM(KFL)=VXPVMD(KFL)+VXPANL(KFL)+VXPANH(KFL)
25516 190 CONTINUE
25517
25518 RETURN
25519 END
25520
25521
25522
25523
25524
25525
25526
25527
25528
25529
25530
25531
25532
25533
25534 SUBROUTINE PYGVMD(ISET,KF,X,Q2,P2,ALAM,XPGA,VXPGA)
25535
25536
25537 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
25538 IMPLICIT INTEGER(I-N)
25539 INTEGER PYK,PYCHGE,PYCOMP
25540
25541 DIMENSION XPGA(-6:6), VXPGA(-6:6)
25542 DATA PMC/1.3D0/, PMB/4.6D0/, AEM/0.007297D0/, AEM2PI/0.0011614D0/
25543
25544
25545 DO 100 KFL=-6,6
25546 XPGA(KFL)=0D0
25547 VXPGA(KFL)=0D0
25548 100 CONTINUE
25549 KFA=IABS(KF)
25550
25551
25552 ALAM3=ALAM*(PMC/ALAM)**(2D0/27D0)
25553 ALAM5=ALAM*(ALAM/PMB)**(2D0/23D0)
25554 P2EFF=MAX(P2,1.2D0*ALAM3**2)
25555 IF(KFA.EQ.4) P2EFF=MAX(P2EFF,PMC**2)
25556 IF(KFA.EQ.5) P2EFF=MAX(P2EFF,PMB**2)
25557 Q2EFF=MAX(Q2,P2EFF)
25558
25559
25560 NFP=4
25561 IF(P2EFF.LT.PMC**2) NFP=3
25562 IF(P2EFF.GT.PMB**2) NFP=5
25563 NFQ=4
25564 IF(Q2EFF.LT.PMC**2) NFQ=3
25565 IF(Q2EFF.GT.PMB**2) NFQ=5
25566
25567
25568 S=0D0
25569 IF(NFP.EQ.3) THEN
25570 Q2DIV=PMC**2
25571 IF(NFQ.EQ.3) Q2DIV=Q2EFF
25572 S=S+(6D0/27D0)*LOG(LOG(Q2DIV/ALAM3**2)/LOG(P2EFF/ALAM3**2))
25573 ENDIF
25574 IF(NFP.LE.4.AND.NFQ.GE.4) THEN
25575 P2DIV=P2EFF
25576 IF(NFP.EQ.3) P2DIV=PMC**2
25577 Q2DIV=Q2EFF
25578 IF(NFQ.EQ.5) Q2DIV=PMB**2
25579 S=S+(6D0/25D0)*LOG(LOG(Q2DIV/ALAM**2)/LOG(P2DIV/ALAM**2))
25580 ENDIF
25581 IF(NFQ.EQ.5) THEN
25582 P2DIV=PMB**2
25583 IF(NFP.EQ.5) P2DIV=P2EFF
25584 S=S+(6D0/23D0)*LOG(LOG(Q2EFF/ALAM5**2)/LOG(P2DIV/ALAM5**2))
25585 ENDIF
25586
25587
25588 X1=1D0-X
25589 XL=-LOG(X)
25590 S2=S**2
25591 S3=S**3
25592 S4=S**4
25593
25594
25595
25596 IF(ISET.EQ.0) THEN
25597 IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
25598 & (KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
25599 XVAL = X * 1.5D0 * (X**2+X1**2)
25600 XGLU = 0D0
25601 XSEA = 0D0
25602 ELSE
25603 XVAL = (1.5D0/(1D0-0.197D0*S+4.33D0*S2)*X**2 +
25604 & (1.5D0+2.10D0*S)/(1D0+3.29D0*S)*X1**2 +
25605 & 5.23D0*S/(1D0+1.17D0*S+19.9D0*S3)*X*X1) *
25606 & X**(1D0/(1D0+1.5D0*S)) * (1D0-X**2)**(2.667D0*S)
25607 XGLU = 4D0*S/(1D0+4.76D0*S+15.2D0*S2+29.3D0*S4) *
25608 & X**(-2.03D0*S/(1D0+2.44D0*S)) * (X1*XL)**(1.333D0*S) *
25609 & ((4D0*X**2+7D0*X+4D0)*X1/3D0 - 2D0*X*(1D0+X)*XL)
25610 XSEA = S2/(1D0+4.54D0*S+8.19D0*S2+8.05D0*S3) *
25611 & X**(-1.54D0*S/(1D0+1.29D0*S)) * X1**(2.667D0*S) *
25612 & ((8D0-73D0*X+62D0*X**2)*X1/9D0 + (3D0-8D0*X**2/3D0)*X*XL +
25613 & (2D0*X-1D0)*X*XL**2)
25614 ENDIF
25615
25616
25617 ELSEIF(ISET.EQ.1) THEN
25618 IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
25619 & (KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
25620 XVAL = 1.294D0 * X**0.80D0 * X1**0.76D0
25621 XGLU = 1.273D0 * X**0.40D0 * X1**1.76D0
25622 XSEA = 0.100D0 * X1**3.76D0
25623 ELSE
25624 XVAL = 1.294D0/(1D0+0.252D0*S+3.079D0*S2) *
25625 & X**(0.80D0-0.13D0*S) * X1**(0.76D0+0.667D0*S) * XL**(2D0*S)
25626 XGLU = 7.90D0*S/(1D0+5.50D0*S) * EXP(-5.16D0*S) *
25627 & X**(-1.90D0*S/(1D0+3.60D0*S)) * X1**1.30D0 *
25628 & XL**(0.50D0+3D0*S) + 1.273D0 * EXP(-10D0*S) *
25629 & X**0.40D0 * X1**(1.76D0+3D0*S)
25630 XSEA = (0.1D0-0.397D0*S2+1.121D0*S3)/
25631 & (1D0+5.61D0*S2+5.26D0*S3) * X**(-7.32D0*S2/(1D0+10.3D0*S2)) *
25632 & X1**((3.76D0+15D0*S+12D0*S2)/(1D0+4D0*S))
25633 XSEA0 = 0.100D0 * X1**3.76D0
25634 ENDIF
25635
25636
25637 ELSEIF(ISET.EQ.2) THEN
25638 IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
25639 & (KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
25640 XVAL = 0.8477D0 * X**0.51D0 * X1**1.37D0
25641 XGLU = 3.42D0 * X**0.255D0 * X1**2.37D0
25642 XSEA = 0D0
25643 ELSE
25644 XVAL = 0.8477D0/(1D0+1.37D0*S+2.18D0*S2+3.73D0*S3) *
25645 & X**(0.51D0+0.21D0*S) * X1**1.37D0 * XL**(2.667D0*S)
25646 XGLU = 24D0*S/(1D0+9.6D0*S+0.92D0*S2+14.34D0*S3) *
25647 & EXP(-5.94D0*S) * X**((-0.013D0-1.80D0*S)/(1D0+3.14D0*S)) *
25648 & X1**(2.37D0+0.4D0*S) * XL**(0.32D0+3.6D0*S) + 3.42D0 *
25649 & EXP(-12D0*S) * X**0.255D0 * X1**(2.37D0+3D0*S)
25650 XSEA = 0.842D0*S/(1D0+21.3D0*S-33.2D0*S2+229D0*S3) *
25651 & X**((0.13D0-2.90D0*S)/(1D0+5.44D0*S)) * X1**(3.45D0+0.5D0*S) *
25652 & XL**(2.8D0*S)
25653 XSEA0 = 0D0
25654 ENDIF
25655
25656
25657 ELSEIF(ISET.EQ.3) THEN
25658 IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
25659 & (KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
25660 XVAL = X**0.46D0 * X1**0.64D0 + 0.76D0 * X
25661 XGLU = 1.925D0 * X1**2
25662 XSEA = 0.242D0 * X1**4
25663 ELSE
25664 XVAL = (1D0+0.186D0*S)/(1D0-0.209D0*S+1.495D0*S2) *
25665 & X**(0.46D0+0.25D0*S) *
25666 & X1**((0.64D0+0.14D0*S+5D0*S2)/(1D0+S)) * XL**(1.9D0*S) +
25667 & (0.76D0+0.4D0*S) * X * X1**(2.667D0*S)
25668 XGLU = (1.925D0+5.55D0*S+147D0*S2)/(1D0-3.59D0*S+3.32D0*S2) *
25669 & EXP(-18.67D0*S) *
25670 & X**((-5.81D0*S-5.34D0*S2)/(1D0+29D0*S-4.26D0*S2))
25671 & * X1**((2D0-5.9D0*S)/(1D0+1.7D0*S)) *
25672 & XL**(9.3D0*S/(1D0+1.7D0*S))
25673 XSEA = (0.242D0-0.252D0*S+1.19D0*S2)/
25674 & (1D0-0.607D0*S+21.95D0*S2) *
25675 & X**(-12.1D0*S2/(1D0+2.62D0*S+16.7D0*S2)) * X1**4 * XL**S
25676 XSEA0 = 0.242D0 * X1**4
25677 ENDIF
25678
25679
25680 ELSEIF(ISET.EQ.4) THEN
25681 IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
25682 & (KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
25683 XVAL = 1.168D0 * X**0.50D0 * X1**2.60D0 + 0.965D0 * X
25684 XGLU = 1.808D0 * X1**2
25685 XSEA = 0.209D0 * X1**4
25686 ELSE
25687 XVAL = (1.168D0+1.771D0*S+29.35D0*S2) * EXP(-5.776D0*S) *
25688 & X**((0.5D0+0.208D0*S)/(1D0-0.794D0*S+1.516D0*S2)) *
25689 & X1**((2.6D0+7.6D0*S)/(1D0+5D0*S)) *
25690 & XL**(5.15D0*S/(1D0+2D0*S)) +
25691 & (0.965D0+22.35D0*S)/(1D0+18.4D0*S) * X * X1**(2.667D0*S)
25692 XGLU = (1.808D0+29.9D0*S)/(1D0+26.4D0*S) * EXP(-5.28D0*S) *
25693 & X**((-5.35D0*S-10.11D0*S2)/(1D0+31.71D0*S)) *
25694 & X1**((2D0-7.3D0*S+4D0*S2)/(1D0+2.5D0*S)) *
25695 & XL**(10.9D0*S/(1D0+2.5D0*S))
25696 XSEA = (0.209D0+0.644D0*S2)/(1D0+0.319D0*S+17.6D0*S2) *
25697 & X**((-0.373D0*S-7.71D0*S2)/(1D0+0.815D0*S+11.0D0*S2)) *
25698 & X1**(4D0+S) * XL**(0.45D0*S)
25699 XSEA0 = 0.209D0 * X1**4
25700 ENDIF
25701 ENDIF
25702
25703
25704 SLL=LOG(LOG(Q2EFF/ALAM**2)/LOG(P2EFF/ALAM**2))
25705 XCHM=0D0
25706 IF(Q2.GT.PMC**2.AND.Q2.GT.1.001D0*P2EFF) THEN
25707 SCH=MAX(0D0,LOG(LOG(PMC**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
25708 IF(ISET.EQ.0) THEN
25709 XCHM=XSEA*(1D0-(SCH/SLL)**2)
25710 ELSE
25711 XCHM=MAX(0D0,XSEA-XSEA0*X1**(2.667D0*S))*(1D0-SCH/SLL)
25712 ENDIF
25713 ENDIF
25714 XBOT=0D0
25715 IF(Q2.GT.PMB**2.AND.Q2.GT.1.001D0*P2EFF) THEN
25716 SBT=MAX(0D0,LOG(LOG(PMB**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
25717 IF(ISET.EQ.0) THEN
25718 XBOT=XSEA*(1D0-(SBT/SLL)**2)
25719 ELSE
25720 XBOT=MAX(0D0,XSEA-XSEA0*X1**(2.667D0*S))*(1D0-SBT/SLL)
25721 ENDIF
25722 ENDIF
25723
25724
25725 XPGA(0)=XGLU
25726 XPGA(1)=XSEA
25727 XPGA(2)=XSEA
25728 XPGA(3)=XSEA
25729 XPGA(4)=XCHM
25730 XPGA(5)=XBOT
25731 XPGA(KFA)=XPGA(KFA)+XVAL
25732 DO 110 KFL=1,5
25733 XPGA(-KFL)=XPGA(KFL)
25734 110 CONTINUE
25735 VXPGA(KFA)=XVAL
25736 VXPGA(-KFA)=XVAL
25737
25738 RETURN
25739 END
25740
25741
25742
25743
25744
25745
25746
25747
25748
25749
25750
25751
25752
25753 SUBROUTINE PYGANO(KF,X,Q2,P2,ALAM,XPGA,VXPGA)
25754
25755
25756 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
25757 IMPLICIT INTEGER(I-N)
25758 INTEGER PYK,PYCHGE,PYCOMP
25759
25760 DIMENSION XPGA(-6:6), VXPGA(-6:6), ALAMSQ(3:5)
25761 DATA PMC/1.3D0/, PMB/4.6D0/, AEM/0.007297D0/, AEM2PI/0.0011614D0/
25762
25763
25764 DO 100 KFL=-6,6
25765 XPGA(KFL)=0D0
25766 VXPGA(KFL)=0D0
25767 100 CONTINUE
25768 IF(Q2.LE.P2) RETURN
25769 KFA=IABS(KF)
25770
25771
25772 ALAMSQ(3)=(ALAM*(PMC/ALAM)**(2D0/27D0))**2
25773 ALAMSQ(4)=ALAM**2
25774 ALAMSQ(5)=(ALAM*(ALAM/PMB)**(2D0/23D0))**2
25775 P2EFF=MAX(P2,1.2D0*ALAMSQ(3))
25776 IF(KF.EQ.4) P2EFF=MAX(P2EFF,PMC**2)
25777 IF(KF.EQ.5) P2EFF=MAX(P2EFF,PMB**2)
25778 Q2EFF=MAX(Q2,P2EFF)
25779 XL=-LOG(X)
25780
25781
25782 NFP=4
25783 IF(P2EFF.LT.PMC**2) NFP=3
25784 IF(P2EFF.GT.PMB**2) NFP=5
25785 NFQ=4
25786 IF(Q2EFF.LT.PMC**2) NFQ=3
25787 IF(Q2EFF.GT.PMB**2) NFQ=5
25788
25789
25790 IF(KF.EQ.0) THEN
25791 KFLMN=1
25792 KFLMX=5
25793 ELSEIF(KF.LT.0) THEN
25794 KFLMN=1
25795 KFLMX=KFA
25796 ELSE
25797 KFLMN=KFA
25798 KFLMX=KFA
25799 ENDIF
25800
25801
25802 DO 110 KFL=KFLMN,KFLMX
25803
25804
25805 IF(KFL.LE.3.AND.(KFL.EQ.1.OR.KFL.EQ.KF)) THEN
25806 TDIFF=LOG(Q2EFF/P2EFF)
25807 S=(6D0/(33D0-2D0*NFQ))*LOG(LOG(Q2EFF/ALAMSQ(NFQ))/
25808 & LOG(P2EFF/ALAMSQ(NFQ)))
25809 IF(NFQ.GT.NFP) THEN
25810 Q2DIV=PMB**2
25811 IF(NFQ.EQ.4) Q2DIV=PMC**2
25812 SNFQ=(6D0/(33D0-2D0*NFQ))*LOG(LOG(Q2DIV/ALAMSQ(NFQ))/
25813 & LOG(P2EFF/ALAMSQ(NFQ)))
25814 SNFP=(6D0/(33D0-2D0*(NFQ-1)))*LOG(LOG(Q2DIV/ALAMSQ(NFQ-1))/
25815 & LOG(P2EFF/ALAMSQ(NFQ-1)))
25816 S=S+(LOG(Q2DIV/P2EFF)/LOG(Q2EFF/P2EFF))*(SNFP-SNFQ)
25817 ENDIF
25818 IF(NFQ.EQ.5.AND.NFP.EQ.3) THEN
25819 Q2DIV=PMC**2
25820 SNF4=(6D0/(33D0-2D0*4))*LOG(LOG(Q2DIV/ALAMSQ(4))/
25821 & LOG(P2EFF/ALAMSQ(4)))
25822 SNF3=(6D0/(33D0-2D0*3))*LOG(LOG(Q2DIV/ALAMSQ(3))/
25823 & LOG(P2EFF/ALAMSQ(3)))
25824 S=S+(LOG(Q2DIV/P2EFF)/LOG(Q2EFF/P2EFF))*(SNF3-SNF4)
25825 ENDIF
25826
25827
25828 ELSEIF(KFL.EQ.2.OR.KFL.EQ.3) THEN
25829
25830
25831 ELSEIF(KFL.EQ.4) THEN
25832 IF(Q2.LE.PMC**2) GOTO 110
25833 P2EFF=MAX(P2EFF,PMC**2)
25834 Q2EFF=MAX(Q2EFF,P2EFF)
25835 TDIFF=LOG(Q2EFF/P2EFF)
25836 S=(6D0/(33D0-2D0*NFQ))*LOG(LOG(Q2EFF/ALAMSQ(NFQ))/
25837 & LOG(P2EFF/ALAMSQ(NFQ)))
25838 IF(NFQ.EQ.5.AND.NFP.EQ.4) THEN
25839 Q2DIV=PMB**2
25840 SNFQ=(6D0/(33D0-2D0*NFQ))*LOG(LOG(Q2DIV/ALAMSQ(NFQ))/
25841 & LOG(P2EFF/ALAMSQ(NFQ)))
25842 SNFP=(6D0/(33D0-2D0*(NFQ-1)))*LOG(LOG(Q2DIV/ALAMSQ(NFQ-1))/
25843 & LOG(P2EFF/ALAMSQ(NFQ-1)))
25844 S=S+(LOG(Q2DIV/P2EFF)/LOG(Q2EFF/P2EFF))*(SNFP-SNFQ)
25845 ENDIF
25846
25847
25848 ELSEIF(KFL.EQ.5) THEN
25849 IF(Q2.LE.PMB**2) GOTO 110
25850 P2EFF=MAX(P2EFF,PMB**2)
25851 Q2EFF=MAX(Q2,P2EFF)
25852 TDIFF=LOG(Q2EFF/P2EFF)
25853 S=(6D0/(33D0-2D0*NFQ))*LOG(LOG(Q2EFF/ALAMSQ(NFQ))/
25854 & LOG(P2EFF/ALAMSQ(NFQ)))
25855 ENDIF
25856
25857
25858 CHSQ=1D0/9D0
25859 IF(KFL.EQ.2.OR.KFL.EQ.4) CHSQ=4D0/9D0
25860 FAC=AEM2PI*2D0*CHSQ*TDIFF
25861
25862
25863 IF(KFL.EQ.1.OR.KFL.EQ.4.OR.KFL.EQ.5.OR.KFL.EQ.KF) THEN
25864 XVAL= ((1.5D0+2.49D0*S+26.9D0*S**2)/(1D0+32.3D0*S**2)*X**2 +
25865 & (1.5D0-0.49D0*S+7.83D0*S**2)/(1D0+7.68D0*S**2)*(1D0-X)**2 +
25866 & 1.5D0*S/(1D0-3.2D0*S+7D0*S**2)*X*(1D0-X)) *
25867 & X**(1D0/(1D0+0.58D0*S)) * (1D0-X**2)**(2.5D0*S/(1D0+10D0*S))
25868 XGLU= 2D0*S/(1D0+4D0*S+7D0*S**2) *
25869 & X**(-1.67D0*S/(1D0+2D0*S)) * (1D0-X**2)**(1.2D0*S) *
25870 & ((4D0*X**2+7D0*X+4D0)*(1D0-X)/3D0 - 2D0*X*(1D0+X)*XL)
25871 XSEA= 0.333D0*S**2/(1D0+4.90D0*S+4.69D0*S**2+21.4D0*S**3) *
25872 & X**(-1.18D0*S/(1D0+1.22D0*S)) * (1D0-X)**(1.2D0*S) *
25873 & ((8D0-73D0*X+62D0*X**2)*(1D0-X)/9D0 +
25874 & (3D0-8D0*X**2/3D0)*X*XL + (2D0*X-1D0)*X*XL**2)
25875
25876
25877 SLL=LOG(LOG(Q2EFF/ALAM**2)/LOG(P2EFF/ALAM**2))
25878 XCHM=0D0
25879 IF(Q2.GT.PMC**2.AND.Q2.GT.1.001D0*P2EFF) THEN
25880 SCH=MAX(0D0,LOG(LOG(PMC**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
25881 XCHM=XSEA*(1D0-(SCH/SLL)**3)
25882 ENDIF
25883 XBOT=0D0
25884 IF(Q2.GT.PMB**2.AND.Q2.GT.1.001D0*P2EFF) THEN
25885 SBT=MAX(0D0,LOG(LOG(PMB**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
25886 XBOT=XSEA*(1D0-(SBT/SLL)**3)
25887 ENDIF
25888 ENDIF
25889
25890
25891 XPGA(0)=XPGA(0)+FAC*XGLU
25892 XPGA(1)=XPGA(1)+FAC*XSEA
25893 XPGA(2)=XPGA(2)+FAC*XSEA
25894 XPGA(3)=XPGA(3)+FAC*XSEA
25895 XPGA(4)=XPGA(4)+FAC*XCHM
25896 XPGA(5)=XPGA(5)+FAC*XBOT
25897 XPGA(KFL)=XPGA(KFL)+FAC*XVAL
25898 VXPGA(KFL)=VXPGA(KFL)+FAC*XVAL
25899 110 CONTINUE
25900 DO 120 KFL=1,5
25901 XPGA(-KFL)=XPGA(KFL)
25902 VXPGA(-KFL)=VXPGA(KFL)
25903 120 CONTINUE
25904
25905 RETURN
25906 END
25907
25908
25909
25910
25911
25912
25913
25914
25915 SUBROUTINE PYGBEH(KF,X,Q2,P2,PM2,XPBH)
25916
25917
25918 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
25919 IMPLICIT INTEGER(I-N)
25920 INTEGER PYK,PYCHGE,PYCOMP
25921
25922
25923 DATA AEM2PI/0.0011614D0/
25924
25925
25926 XPBH=0D0
25927 SIGBH=0D0
25928
25929
25930 IF(X.GE.Q2/(4D0*PM2+Q2+P2)) RETURN
25931 W2=Q2*(1D0-X)/X-P2
25932 BETA2=1D0-4D0*PM2/W2
25933 IF(BETA2.LT.1D-10) RETURN
25934 BETA=SQRT(BETA2)
25935 RMQ=4D0*PM2/Q2
25936
25937
25938 IF(P2.LT.1D-4) THEN
25939 IF(BETA.LT.0.99D0) THEN
25940 XBL=LOG((1D0+BETA)/(1D0-BETA))
25941 ELSE
25942 XBL=LOG((1D0+BETA)**2*W2/(4D0*PM2))
25943 ENDIF
25944 SIGBH=BETA*(8D0*X*(1D0-X)-1D0-RMQ*X*(1D0-X))+
25945 & XBL*(X**2+(1D0-X)**2+RMQ*X*(1D0-3D0*X)-0.5D0*RMQ**2*X**2)
25946
25947
25948
25949 ELSE
25950 RPQ=1D0-4D0*X**2*P2/Q2
25951 IF(RPQ.GT.1D-10) THEN
25952 RPBE=SQRT(RPQ*BETA2)
25953 IF(RPBE.LT.0.99D0) THEN
25954 XBL=LOG((1D0+RPBE)/(1D0-RPBE))
25955 XBI=2D0*RPBE/(1D0-RPBE**2)
25956 ELSE
25957 RPBESN=4D0*PM2/W2+(4D0*X**2*P2/Q2)*BETA2
25958 XBL=LOG((1D0+RPBE)**2/RPBESN)
25959 XBI=2D0*RPBE/RPBESN
25960 ENDIF
25961 SIGBH=BETA*(6D0*X*(1D0-X)-1D0)+
25962 & XBL*(X**2+(1D0-X)**2+RMQ*X*(1D0-3D0*X)-0.5D0*RMQ**2*X**2)+
25963 & XBI*(2D0*X/Q2)*(PM2*X*(2D0-RMQ)-P2*X)
25964 ENDIF
25965 ENDIF
25966
25967
25968 CHSQ=1D0/9D0
25969 IF(IABS(KF).EQ.2.OR.IABS(KF).EQ.4) CHSQ=4D0/9D0
25970 XPBH=3D0*CHSQ*AEM2PI*X*SIGBH
25971
25972 RETURN
25973 END
25974
25975
25976
25977
25978
25979
25980
25981
25982 SUBROUTINE PYGDIR(X,Q2,P2,Q02,XPGA)
25983
25984
25985 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
25986 IMPLICIT INTEGER(I-N)
25987 INTEGER PYK,PYCHGE,PYCOMP
25988
25989 DIMENSION XPGA(-6:6)
25990 DATA PMC/1.3D0/, PMB/4.6D0/, AEM2PI/0.0011614D0/
25991
25992
25993 DO 100 KFL=-6,6
25994 XPGA(KFL)=0D0
25995 100 CONTINUE
25996
25997
25998 XTMP = (X**2+(1D0-X)**2) * (-LOG(X)) - 1D0
25999 CGAM = 3D0*AEM2PI*X * (XTMP*(1D0+P2/(P2+Q02)) + 6D0*X*(1D0-X))
26000
26001
26002 XPGA(1)=(1D0/9D0)*CGAM
26003 XPGA(2)=(4D0/9D0)*CGAM
26004 XPGA(3)=(1D0/9D0)*CGAM
26005
26006
26007 DO 110 KF=1,5
26008 XPGA(-KF)=XPGA(KF)
26009 110 CONTINUE
26010
26011 RETURN
26012 END
26013
26014
26015
26016
26017
26018
26019
26020 SUBROUTINE PYPDPI(X,Q2,XPPI)
26021
26022
26023 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
26024 IMPLICIT INTEGER(I-N)
26025 INTEGER PYK,PYCHGE,PYCOMP
26026
26027 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
26028 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
26029 COMMON/PYINT1/MINT(400),VINT(400)
26030 SAVE /PYDAT1/,/PYPARS/,/PYINT1/
26031
26032 DIMENSION XPPI(-6:6),COW(3,5,4,2),XQ(9),TS(6)
26033
26034
26035
26036
26037 DATA ((COW(IP,IS,1,1),IS=1,5),IP=1,3)/
26038 &4.0000D-01, 7.0000D-01, 0.0000D+00, 0.0000D+00, 0.0000D+00,
26039 &-6.2120D-02, 6.4780D-01, 0.0000D+00, 0.0000D+00, 0.0000D+00,
26040 &-7.1090D-03, 1.3350D-02, 0.0000D+00, 0.0000D+00, 0.0000D+00/
26041 DATA ((COW(IP,IS,1,2),IS=1,5),IP=1,3)/
26042 &4.0000D-01, 6.2800D-01, 0.0000D+00, 0.0000D+00, 0.0000D+00,
26043 &-5.9090D-02, 6.4360D-01, 0.0000D+00, 0.0000D+00, 0.0000D+00,
26044 &-6.5240D-03, 1.4510D-02, 0.0000D+00, 0.0000D+00, 0.0000D+00/
26045
26046 DATA ((COW(IP,IS,2,1),IS=1,5),IP=1,3)/
26047 &8.8800D-01, 0.0000D+00, 3.1100D+00, 6.0000D+00, 0.0000D+00,
26048 &-1.8020D+00, -1.5760D+00, -1.3170D-01, 2.8010D+00, -1.7280D+01,
26049 &1.8120D+00, 1.2000D+00, 5.0680D-01, -1.2160D+01, 2.0490D+01/
26050 DATA ((COW(IP,IS,2,2),IS=1,5),IP=1,3)/
26051 &7.9400D-01, 0.0000D+00, 2.8900D+00, 6.0000D+00, 0.0000D+00,
26052 &-9.1440D-01, -1.2370D+00, 5.9660D-01, -3.6710D+00, -8.1910D+00,
26053 &5.9660D-01, 6.5820D-01, -2.5500D-01, -2.3040D+00, 7.7580D+00/
26054
26055 DATA ((COW(IP,IS,3,1),IS=1,5),IP=1,3)/
26056 &9.0000D-01, 0.0000D+00, 5.0000D+00, 0.0000D+00, 0.0000D+00,
26057 &-2.4280D-01, -2.1200D-01, 8.6730D-01, 1.2660D+00, 2.3820D+00,
26058 &1.3860D-01, 3.6710D-03, 4.7470D-02, -2.2150D+00, 3.4820D-01/
26059 DATA ((COW(IP,IS,3,2),IS=1,5),IP=1,3)/
26060 &9.0000D-01, 0.0000D+00, 5.0000D+00, 0.0000D+00, 0.0000D+00,
26061 &-1.4170D-01, -1.6970D-01, -2.4740D+00, -2.5340D+00, 5.6210D-01,
26062 &-1.7400D-01, -9.6230D-02, 1.5750D+00, 1.3780D+00, -2.7010D-01/
26063
26064 DATA ((COW(IP,IS,4,1),IS=1,5),IP=1,3)/
26065 &0.0000D+00, -2.2120D-02, 2.8940D+00, 0.0000D+00, 0.0000D+00,
26066 &7.9280D-02, -3.7850D-01, 9.4330D+00, 5.2480D+00, 8.3880D+00,
26067 &-6.1340D-02, -1.0880D-01, -1.0852D+01, -7.1870D+00, -1.1610D+01/
26068 DATA ((COW(IP,IS,4,2),IS=1,5),IP=1,3)/
26069 &0.0000D+00, -8.8200D-02, 1.9240D+00, 0.0000D+00, 0.0000D+00,
26070 &6.2290D-02, -2.8920D-01, 2.4240D-01, -4.4630D+00, -8.3670D-01,
26071 &-4.0990D-02, -1.0820D-01, 2.0360D+00, 5.2090D+00, -4.8400D-02/
26072
26073
26074 EULBET(X,Y)=PYGAMM(X)*PYGAMM(Y)/PYGAMM(X+Y)
26075
26076
26077 DO 100 KFL=-6,6
26078 XPPI(KFL)=0D0
26079 100 CONTINUE
26080
26081 IF(MSTP(53).LE.2) THEN
26082
26083
26084
26085
26086 NSET=MSTP(53)
26087 IF(NSET.EQ.1) ALAM=0.2D0
26088 IF(NSET.EQ.2) ALAM=0.4D0
26089 VINT(231)=4D0
26090 IF(MSTP(57).LE.0) THEN
26091 SD=0D0
26092 ELSE
26093 Q2IN=MIN(2D3,MAX(4D0,Q2))
26094 SD=LOG(LOG(Q2IN/ALAM**2)/LOG(4D0/ALAM**2))
26095 ENDIF
26096
26097
26098 DO 120 KFL=1,4
26099 DO 110 IS=1,5
26100 TS(IS)=COW(1,IS,KFL,NSET)+COW(2,IS,KFL,NSET)*SD+
26101 & COW(3,IS,KFL,NSET)*SD**2
26102 110 CONTINUE
26103 IF(KFL.EQ.1) THEN
26104 XQ(KFL)=X**TS(1)*(1D0-X)**TS(2)/EULBET(TS(1),TS(2)+1D0)
26105 ELSE
26106 XQ(KFL)=TS(1)*X**TS(2)*(1D0-X)**TS(3)*(1D0+TS(4)*X+
26107 & TS(5)*X**2)
26108 ENDIF
26109 120 CONTINUE
26110
26111
26112 XPPI(0)=XQ(2)
26113 XPPI(1)=XQ(3)/6D0
26114 XPPI(2)=XQ(1)+XQ(3)/6D0
26115 XPPI(3)=XQ(3)/6D0
26116 XPPI(4)=XQ(4)
26117 XPPI(-1)=XQ(1)+XQ(3)/6D0
26118 XPPI(-2)=XQ(3)/6D0
26119 XPPI(-3)=XQ(3)/6D0
26120 XPPI(-4)=XQ(4)
26121
26122
26123
26124
26125 ELSE
26126
26127
26128 VINT(231)=0.25D0
26129 IF(MSTP(57).LE.0) THEN
26130 SD=0D0
26131 ELSE
26132 Q2IN=MIN(1D8,MAX(0.25D0,Q2))
26133 SD=LOG(LOG(Q2IN/0.232D0**2)/LOG(0.25D0/0.232D0**2))
26134 ENDIF
26135 SD2=SD**2
26136 XL=-LOG(X)
26137 XS=SQRT(X)
26138
26139
26140 XFVAL=(0.519D0+0.180D0*SD-0.011D0*SD2)*X**(0.499D0-0.027D0*SD)*
26141 & (1D0+(0.381D0-0.419D0*SD)*XS)*(1D0-X)**(0.367D0+0.563D0*SD)
26142 XFGLU=(X**(0.482D0+0.341D0*SQRT(SD))*((0.678D0+0.877D0*
26143 & SD-0.175D0*SD2)+
26144 & (0.338D0-1.597D0*SD)*XS+(-0.233D0*SD+0.406D0*SD2)*X)+
26145 & SD**0.599D0*EXP(-(0.618D0+2.070D0*SD)+SQRT(3.676D0*SD**1.263D0*
26146 & XL)))*
26147 & (1D0-X)**(0.390D0+1.053D0*SD)
26148 XFSEA=SD**0.55D0*(1D0-0.748D0*XS+(0.313D0+0.935D0*SD)*X)*(1D0-
26149 & X)**3.359D0*
26150 & EXP(-(4.433D0+1.301D0*SD)+SQRT((9.30D0-0.887D0*SD)*SD**0.56D0*
26151 & XL))/
26152 & XL**(2.538D0-0.763D0*SD)
26153 IF(SD.LE.0.888D0) THEN
26154 XFCHM=0D0
26155 ELSE
26156 XFCHM=(SD-0.888D0)**1.02D0*(1D0+1.008D0*X)*(1D0-X)**(1.208D0+
26157 & 0.771D0*SD)*
26158 & EXP(-(4.40D0+1.493D0*SD)+SQRT((2.032D0+1.901D0*SD)*SD**0.39D0*
26159 & XL))
26160 ENDIF
26161 IF(SD.LE.1.351D0) THEN
26162 XFBOT=0D0
26163 ELSE
26164 XFBOT=(SD-1.351D0)**1.03D0*(1D0-X)**(0.697D0+0.855D0*SD)*
26165 & EXP(-(4.51D0+1.490D0*SD)+SQRT((3.056D0+1.694D0*SD)*SD**0.39D0*
26166 & XL))
26167 ENDIF
26168
26169
26170 XPPI(0)=XFGLU
26171 XPPI(1)=XFSEA
26172 XPPI(2)=XFSEA
26173 XPPI(3)=XFSEA
26174 XPPI(4)=XFCHM
26175 XPPI(5)=XFBOT
26176 DO 130 KFL=1,5
26177 XPPI(-KFL)=XPPI(KFL)
26178 130 CONTINUE
26179 XPPI(2)=XPPI(2)+XFVAL
26180 XPPI(-1)=XPPI(-1)+XFVAL
26181 ENDIF
26182
26183 RETURN
26184 END
26185
26186
26187
26188
26189
26190
26191
26192 SUBROUTINE PYPDPR(X,Q2,XPPR)
26193
26194
26195 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
26196 IMPLICIT INTEGER(I-N)
26197 INTEGER PYK,PYCHGE,PYCOMP
26198
26199 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
26200 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
26201 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
26202 COMMON/PYINT1/MINT(400),VINT(400)
26203 SAVE /PYDAT1/,/PYDAT2/,/PYPARS/,/PYINT1/
26204
26205 DIMENSION XPPR(-6:6),Q2MIN(16)
26206 DATA Q2MIN/ 2.56D0, 2.56D0, 2.56D0, 0.4D0, 0.4D0, 0.4D0,
26207 &1.0D0, 1.0D0, 2*0D0, 0.25D0, 5D0, 5D0, 4D0, 4D0, 0D0/
26208
26209
26210 DO 100 KFL=-6,6
26211 XPPR(KFL)=0D0
26212 100 CONTINUE
26213
26214
26215 NSET=MAX(1,MIN(16,MSTP(51)))
26216 IF(NSET.EQ.9.OR.NSET.EQ.10) NSET=6
26217 VINT(231)=Q2MIN(NSET)
26218 IF(MSTP(57).EQ.0) THEN
26219 Q2L=Q2MIN(NSET)
26220 ELSE
26221 Q2L=MAX(Q2MIN(NSET),Q2)
26222 ENDIF
26223
26224 IF(NSET.GE.1.AND.NSET.LE.3) THEN
26225
26226 QRT=SQRT(MAX(1D0,Q2L))
26227
26228
26229 DO 110 I=-6,6
26230 IF(I.LE.0) THEN
26231 XPPR(I)=PYCTEQ(NSET,I,X,QRT)
26232 ELSEIF(I.LE.2) THEN
26233 XPPR(I)=PYCTEQ(NSET,I,X,QRT)+XPPR(-I)
26234 ELSE
26235 XPPR(I)=XPPR(-I)
26236 ENDIF
26237 110 CONTINUE
26238
26239 ELSEIF(NSET.GE.4.AND.NSET.LE.6) THEN
26240
26241 IF(NSET.EQ.4) THEN
26242 CALL PYGRVL (X, Q2L, UV, DV, DEL, UDB, SB, CHM, BOT, GL)
26243 ELSEIF(NSET.EQ.5) THEN
26244 CALL PYGRVM (X, Q2L, UV, DV, DEL, UDB, SB, CHM, BOT, GL)
26245 ELSE
26246 CALL PYGRVD (X, Q2L, UV, DV, DEL, UDB, SB, CHM, BOT, GL)
26247 ENDIF
26248
26249
26250 XPPR(0)=GL
26251 XPPR(-1)=0.5D0*(UDB+DEL)
26252 XPPR(-2)=0.5D0*(UDB-DEL)
26253 XPPR(-3)=SB
26254 XPPR(-4)=CHM
26255 XPPR(-5)=BOT
26256 XPPR(1)=DV+XPPR(-1)
26257 XPPR(2)=UV+XPPR(-2)
26258 XPPR(3)=SB
26259 XPPR(4)=CHM
26260 XPPR(5)=BOT
26261
26262 ELSEIF(NSET.EQ.7) THEN
26263
26264
26265
26266 QRT=SQRT(MAX(1D0,MIN(1D4,Q2L)))
26267 XIN=MAX(1D-6,MIN(1D0,X))
26268
26269
26270 SUMUDB=PYCT5L(-1,XIN,QRT)
26271 RATUDB=PYCT5L(-2,XIN,QRT)
26272 DO 120 I=-5,2
26273 IF(I.EQ.1) THEN
26274 XPPR(I)=XIN*PYCT5L(2,XIN,QRT)
26275 ELSEIF(I.EQ.2) THEN
26276 XPPR(I)=XIN*PYCT5L(1,XIN,QRT)
26277 ELSEIF(I.EQ.-1) THEN
26278 XPPR(I)=XIN*SUMUDB*RATUDB/(1D0+RATUDB)
26279 ELSEIF(I.EQ.-2) THEN
26280 XPPR(I)=XIN*SUMUDB/(1D0+RATUDB)
26281 ELSE
26282 XPPR(I)=XIN*PYCT5L(I,XIN,QRT)
26283 IF(I.LT.0) XPPR(-I)=XPPR(I)
26284 ENDIF
26285 120 CONTINUE
26286
26287 ELSEIF(NSET.EQ.8) THEN
26288
26289 QRT=SQRT(MAX(1D0,MIN(1D4,Q2L)))
26290 XIN=MAX(1D-6,MIN(1D0,X))
26291
26292
26293 SUMUDB=PYCT5M(-1,XIN,QRT)
26294 RATUDB=PYCT5M(-2,XIN,QRT)
26295 DO 130 I=-5,2
26296 IF(I.EQ.1) THEN
26297 XPPR(I)=XIN*PYCT5M(2,XIN,QRT)
26298 ELSEIF(I.EQ.2) THEN
26299 XPPR(I)=XIN*PYCT5M(1,XIN,QRT)
26300 ELSEIF(I.EQ.-1) THEN
26301 XPPR(I)=XIN*SUMUDB*RATUDB/(1D0+RATUDB)
26302 ELSEIF(I.EQ.-2) THEN
26303 XPPR(I)=XIN*SUMUDB/(1D0+RATUDB)
26304 ELSE
26305 XPPR(I)=XIN*PYCT5M(I,XIN,QRT)
26306 IF(I.LT.0) XPPR(-I)=XPPR(I)
26307 ENDIF
26308 130 CONTINUE
26309
26310 ELSEIF(NSET.GE.11.AND.NSET.LE.15) THEN
26311
26312
26313 CALL PYPDPO(X,Q2L,XPPR)
26314
26315
26316 ELSEIF(NSET.EQ.16) THEN
26317 XPPR(0)=.5D0/X
26318 XPPR(1)=.05D0/X
26319 XPPR(2)=.05D0/X
26320 XPPR(3)=.05D0/X
26321 XPPR(4)=.05D0/X
26322 XPPR(5)=.05D0/X
26323 XPPR(-1)=.05D0/X
26324 XPPR(-2)=.05D0/X
26325 XPPR(-3)=.05D0/X
26326 XPPR(-4)=.05D0/X
26327 XPPR(-5)=.05D0/X
26328
26329 ENDIF
26330
26331 RETURN
26332 END
26333
26334
26335
26336
26337
26338
26339
26340
26341
26342 FUNCTION PYCTEQ (ISET, IPRT, X, Q)
26343
26344
26345 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
26346 IMPLICIT INTEGER(I-N)
26347
26348
26349 DIMENSION ALM(3), QMS(4:6)
26350 DATA ALM / 0.177D0, 0.239D0, 0.247D0 /
26351 DATA QMN / 1.60D0 /, (QMS(I), I=4,6) / 1.60D0, 5.00D0, 180.0D0 /
26352
26353
26354 IP = IABS(IPRT)
26355 IF(IP .GE. 4) THEN
26356 IF(Q .LE. QMS(IP)) THEN
26357 PYCTEQ = 0D0
26358 RETURN
26359 ENDIF
26360 QI = QMS(IP)
26361 ELSE
26362 QI = QMN
26363 ENDIF
26364
26365
26366 ALAM = ALM (ISET)
26367 SBL = LOG(Q/ALAM) / LOG(QI/ALAM)
26368 SB = LOG (SBL)
26369 SB2 = SB*SB
26370 SB3 = SB2*SB
26371
26372
26373 IF(ISET .EQ. 1) THEN
26374 IF(IPRT .EQ. 2) THEN
26375 A0=Exp( 0.1907D+00+0.4205D-01*SB +0.2752D+00*SB2-
26376 & 0.3171D+00*SB3)
26377 A1= 0.4611D+00+0.2331D-01*SB -0.3403D-01*SB2+0.3174D-01*SB3
26378 A2= 0.3504D+01+0.5739D+00*SB +0.2676D+00*SB2-0.1553D+00*SB3
26379 A3= 0.7452D+01-0.6742D+01*SB +0.2849D+01*SB2-0.1964D+00*SB3
26380 A4= 0.1116D+01-0.3435D+00*SB +0.2865D+00*SB2-0.1288D+00*SB3
26381 A5= 0.6659D-01+0.2714D+00*SB -0.2688D+00*SB2+0.2763D+00*SB3
26382 ELSEIF(IPRT .EQ. 1) THEN
26383 A0=Exp( 0.1141D+00+0.4764D+00*SB -0.1745D+01*SB2+
26384 & 0.7728D+00*SB3)
26385 A1= 0.4275D+00-0.1290D+00*SB +0.3609D+00*SB2-0.1689D+00*SB3
26386 A2= 0.3000D+01+0.2946D+01*SB -0.4117D+01*SB2+0.1989D+01*SB3
26387 A3=-0.1302D+01+0.2322D+01*SB -0.4258D+01*SB2+0.2109D+01*SB3
26388 A4= 0.2586D+01-0.1920D+00*SB -0.3754D+00*SB2+0.2731D+00*SB3
26389 A5=-0.2251D+00-0.5374D+00*SB +0.2245D+01*SB2-0.1034D+01*SB3
26390 ELSEIF(IPRT .EQ. 0) THEN
26391 A0=Exp(-0.7631D+00-0.7241D+00*SB -0.1170D+01*SB2+
26392 & 0.5343D+00*SB3)
26393 A1=-0.3573D+00+0.3469D+00*SB -0.3396D+00*SB2+0.9188D-01*SB3
26394 A2= 0.5604D+01+0.7458D+00*SB -0.5082D+00*SB2+0.1844D+00*SB3
26395 A3= 0.1549D+02-0.1809D+02*SB +0.1162D+02*SB2-0.3483D+01*SB3
26396 A4= 0.9881D+00+0.1364D+00*SB -0.4421D+00*SB2+0.2051D+00*SB3
26397 A5=-0.9505D-01+0.3259D+01*SB -0.1547D+01*SB2+0.2918D+00*SB3
26398 ELSEIF(IPRT .EQ. -1) THEN
26399 A0=Exp(-0.2449D+01-0.3513D+01*SB +0.4529D+01*SB2-
26400 & 0.2031D+01*SB3)
26401 A1=-0.4050D+00+0.3411D+00*SB -0.3669D+00*SB2+0.1109D+00*SB3
26402 A2= 0.7470D+01-0.2982D+01*SB +0.5503D+01*SB2-0.2419D+01*SB3
26403 A3= 0.1503D+02+0.1638D+01*SB -0.8772D+01*SB2+0.3852D+01*SB3
26404 A4= 0.1137D+01-0.1006D+01*SB +0.1485D+01*SB2-0.6389D+00*SB3
26405 A5=-0.5299D+00+0.3160D+01*SB -0.3104D+01*SB2+0.1219D+01*SB3
26406 ELSEIF(IPRT .EQ. -2) THEN
26407 A0=Exp(-0.2740D+01-0.7987D-01*SB -0.9015D+00*SB2-
26408 & 0.9872D-01*SB3)
26409 A1=-0.3909D+00+0.1244D+00*SB -0.4487D-01*SB2+0.1277D-01*SB3
26410 A2= 0.9163D+01+0.2823D+00*SB -0.7720D+00*SB2-0.9360D-02*SB3
26411 A3= 0.1080D+02-0.3915D+01*SB -0.1153D+01*SB2+0.2649D+01*SB3
26412 A4= 0.9894D+00-0.1647D+00*SB -0.9426D-02*SB2+0.2945D-02*SB3
26413 A5=-0.3395D+00+0.6998D+00*SB +0.7000D+00*SB2-0.6730D-01*SB3
26414 ELSEIF(IPRT .EQ. -3) THEN
26415 A0=Exp(-0.3640D+01+0.1250D+01*SB -0.2914D+01*SB2+
26416 & 0.8390D+00*SB3)
26417 A1=-0.3595D+00-0.5259D-01*SB +0.3122D+00*SB2-0.1642D+00*SB3
26418 A2= 0.7305D+01+0.9727D+00*SB -0.9788D+00*SB2-0.5193D-01*SB3
26419 A3= 0.1198D+02-0.1799D+02*SB +0.2614D+02*SB2-0.1091D+02*SB3
26420 A4= 0.9882D+00-0.6101D+00*SB +0.9737D+00*SB2-0.4935D+00*SB3
26421 A5=-0.1186D+00-0.3231D+00*SB +0.3074D+01*SB2-0.1274D+01*SB3
26422 ELSEIF(IPRT .EQ. -4) THEN
26423 A0=SB** 0.1122D+01*Exp(-0.3718D+01-0.1335D+01*SB +
26424 & 0.1651D-01*SB2)
26425 A1=-0.4719D+00+0.7509D+00*SB -0.8420D+00*SB2+0.2901D+00*SB3
26426 A2= 0.6194D+01-0.1641D+01*SB +0.4907D+01*SB2-0.2523D+01*SB3
26427 A3= 0.4426D+01-0.4270D+01*SB +0.6581D+01*SB2-0.3474D+01*SB3
26428 A4= 0.2683D+00+0.9876D+00*SB -0.7612D+00*SB2+0.1780D+00*SB3
26429 A5=-0.4547D+00+0.4410D+01*SB -0.3712D+01*SB2+0.1245D+01*SB3
26430 ELSEIF(IPRT .EQ. -5) THEN
26431 A0=SB** 0.9838D+00*Exp(-0.2548D+01-0.7660D+01*SB +
26432 & 0.3702D+01*SB2)
26433 A1=-0.3122D+00-0.2120D+00*SB +0.5716D+00*SB2-0.3773D+00*SB3
26434 A2= 0.6257D+01-0.8214D-01*SB -0.2537D+01*SB2+0.2981D+01*SB3
26435 A3=-0.6723D+00+0.2131D+01*SB +0.9599D+01*SB2-0.7910D+01*SB3
26436 A4= 0.9169D-01+0.4295D-01*SB -0.5017D+00*SB2+0.3811D+00*SB3
26437 A5= 0.2402D+00+0.2656D+01*SB -0.1586D+01*SB2+0.2880D+00*SB3
26438 ELSEIF(IPRT .EQ. -6) THEN
26439 A0=SB** 0.1001D+01*Exp(-0.6934D+01+0.3050D+01*SB -
26440 & 0.6943D+00*SB2)
26441 A1=-0.1713D+00-0.5167D+00*SB +0.1241D+01*SB2-0.1703D+01*SB3
26442 A2= 0.6169D+01+0.3023D+01*SB -0.1972D+02*SB2+0.1069D+02*SB3
26443 A3= 0.4439D+01-0.1746D+02*SB +0.1225D+02*SB2+0.8350D+00*SB3
26444 A4= 0.5458D+00-0.4586D+00*SB +0.9089D+00*SB2-0.4049D+00*SB3
26445 A5= 0.3207D+01-0.3362D+01*SB +0.5877D+01*SB2-0.7659D+01*SB3
26446 ENDIF
26447
26448
26449 ELSEIF(ISET .EQ. 2) THEN
26450 IF(IPRT .EQ. 2) THEN
26451 A0=Exp( 0.2259D+00+0.1237D+00*SB +0.3035D+00*SB2-
26452 & 0.2935D+00*SB3)
26453 A1= 0.5085D+00+0.1651D-01*SB -0.3592D-01*SB2+0.2782D-01*SB3
26454 A2= 0.3732D+01+0.4901D+00*SB +0.2218D+00*SB2-0.1116D+00*SB3
26455 A3= 0.7011D+01-0.6620D+01*SB +0.2557D+01*SB2-0.1360D+00*SB3
26456 A4= 0.8969D+00-0.2429D+00*SB +0.1811D+00*SB2-0.6888D-01*SB3
26457 A5= 0.8636D-01+0.2558D+00*SB -0.3082D+00*SB2+0.2535D+00*SB3
26458 ELSEIF(IPRT .EQ. 1) THEN
26459 A0=Exp(-0.7266D+00-0.1584D+01*SB +0.1259D+01*SB2-
26460 & 0.4305D-01*SB3)
26461 A1= 0.5285D+00-0.3721D+00*SB +0.5150D+00*SB2-0.1697D+00*SB3
26462 A2= 0.4075D+01+0.8282D+00*SB -0.4496D+00*SB2+0.2107D+00*SB3
26463 A3= 0.3279D+01+0.5066D+01*SB -0.9134D+01*SB2+0.2897D+01*SB3
26464 A4= 0.4399D+00-0.5888D+00*SB +0.4802D+00*SB2-0.1664D+00*SB3
26465 A5= 0.3678D+00-0.8929D+00*SB +0.1592D+01*SB2-0.5713D+00*SB3
26466 ELSEIF(IPRT .EQ. 0) THEN
26467 A0=Exp(-0.2318D+00-0.9779D+00*SB -0.3783D+00*SB2+
26468 & 0.1037D-01*SB3)
26469 A1=-0.2916D+00+0.1754D+00*SB -0.1884D+00*SB2+0.6116D-01*SB3
26470 A2= 0.5349D+01+0.7460D+00*SB +0.2319D+00*SB2-0.2622D+00*SB3
26471 A3= 0.6920D+01-0.3454D+01*SB +0.2027D+01*SB2-0.7626D+00*SB3
26472 A4= 0.1013D+01+0.1423D+00*SB -0.1798D+00*SB2+0.1872D-01*SB3
26473 A5=-0.5465D-01+0.2303D+01*SB -0.9584D+00*SB2+0.3098D+00*SB3
26474 ELSEIF(IPRT .EQ. -1) THEN
26475 A0=Exp(-0.2328D+01-0.3061D+01*SB +0.3620D+01*SB2-
26476 & 0.1602D+01*SB3)
26477 A1=-0.3358D+00+0.3198D+00*SB -0.4210D+00*SB2+0.1571D+00*SB3
26478 A2= 0.8478D+01-0.3112D+01*SB +0.5243D+01*SB2-0.2255D+01*SB3
26479 A3= 0.1971D+02+0.3389D+00*SB -0.5268D+01*SB2+0.2099D+01*SB3
26480 A4= 0.1128D+01-0.4701D+00*SB +0.7779D+00*SB2-0.3506D+00*SB3
26481 A5=-0.4708D+00+0.3341D+01*SB -0.3375D+01*SB2+0.1353D+01*SB3
26482 ELSEIF(IPRT .EQ. -2) THEN
26483 A0=Exp(-0.2906D+01-0.1069D+00*SB -0.1055D+01*SB2+
26484 & 0.2496D+00*SB3)
26485 A1=-0.2875D+00+0.6571D-01*SB -0.1987D-01*SB2-0.1800D-02*SB3
26486 A2= 0.9854D+01-0.2715D+00*SB -0.7407D+00*SB2+0.2888D+00*SB3
26487 A3= 0.1583D+02-0.7687D+01*SB +0.3428D+01*SB2-0.3327D+00*SB3
26488 A4= 0.9763D+00+0.7599D-01*SB -0.2128D+00*SB2+0.6852D-01*SB3
26489 A5=-0.8444D-02+0.9434D+00*SB +0.4152D+00*SB2-0.1481D+00*SB3
26490 ELSEIF(IPRT .EQ. -3) THEN
26491 A0=Exp(-0.3780D+01+0.2499D+01*SB -0.4962D+01*SB2+
26492 & 0.1936D+01*SB3)
26493 A1=-0.2639D+00-0.1575D+00*SB +0.3584D+00*SB2-0.1646D+00*SB3
26494 A2= 0.8082D+01+0.2794D+01*SB -0.5438D+01*SB2+0.2321D+01*SB3
26495 A3= 0.1811D+02-0.2000D+02*SB +0.1951D+02*SB2-0.6904D+01*SB3
26496 A4= 0.9822D+00+0.4972D+00*SB -0.8690D+00*SB2+0.3415D+00*SB3
26497 A5= 0.1772D+00-0.6078D+00*SB +0.3341D+01*SB2-0.1473D+01*SB3
26498 ELSEIF(IPRT .EQ. -4) THEN
26499 A0=SB** 0.1122D+01*Exp(-0.4232D+01-0.1808D+01*SB +
26500 & 0.5348D+00*SB2)
26501 A1=-0.2824D+00+0.5846D+00*SB -0.7230D+00*SB2+0.2419D+00*SB3
26502 A2= 0.5683D+01-0.2948D+01*SB +0.5916D+01*SB2-0.2560D+01*SB3
26503 A3= 0.2051D+01+0.4795D+01*SB -0.4271D+01*SB2+0.4174D+00*SB3
26504 A4= 0.1737D+00+0.1717D+01*SB -0.1978D+01*SB2+0.6643D+00*SB3
26505 A5= 0.8689D+00+0.3500D+01*SB -0.3283D+01*SB2+0.1026D+01*SB3
26506 ELSEIF(IPRT .EQ. -5) THEN
26507 A0=SB** 0.9906D+00*Exp(-0.1496D+01-0.6576D+01*SB +
26508 & 0.1569D+01*SB2)
26509 A1=-0.2140D+00-0.6419D-01*SB -0.2741D-02*SB2+0.3185D-02*SB3
26510 A2= 0.5781D+01+0.1049D+00*SB -0.3930D+00*SB2+0.5174D+00*SB3
26511 A3=-0.9420D+00+0.5511D+00*SB +0.8817D+00*SB2+0.1903D+01*SB3
26512 A4= 0.2418D-01+0.4232D-01*SB -0.1244D-01*SB2-0.2365D-01*SB3
26513 A5= 0.7664D+00+0.1794D+01*SB -0.4917D+00*SB2-0.1284D+00*SB3
26514 ELSEIF(IPRT .EQ. -6) THEN
26515 A0=SB** 0.1000D+01*Exp(-0.8460D+01+0.1154D+01*SB +
26516 & 0.8838D+01*SB2)
26517 A1=-0.4316D-01-0.2976D+00*SB +0.3174D+00*SB2-0.1429D+01*SB3
26518 A2= 0.4910D+01+0.2273D+01*SB +0.5631D+01*SB2-0.1994D+02*SB3
26519 A3= 0.1190D+02-0.2000D+02*SB -0.2000D+02*SB2+0.1292D+02*SB3
26520 A4= 0.5771D+00-0.2552D+00*SB +0.7510D+00*SB2+0.6923D+00*SB3
26521 A5= 0.4402D+01-0.1627D+01*SB -0.2085D+01*SB2-0.6737D+01*SB3
26522 ENDIF
26523
26524
26525 ELSEIF(ISET .EQ. 3) THEN
26526 IF(IPRT .EQ. 2) THEN
26527 A0=Exp( 0.2148D+00+0.5814D-01*SB +0.2734D+00*SB2-
26528 & 0.2902D+00*SB3)
26529 A1= 0.4810D+00+0.1657D-01*SB -0.3800D-01*SB2+0.3125D-01*SB3
26530 A2= 0.3509D+01+0.3923D+00*SB +0.4010D+00*SB2-0.1932D+00*SB3
26531 A3= 0.7055D+01-0.6552D+01*SB +0.3466D+01*SB2-0.5657D+00*SB3
26532 A4= 0.1061D+01-0.3453D+00*SB +0.4089D+00*SB2-0.1817D+00*SB3
26533 A5= 0.8687D-01+0.2548D+00*SB -0.2967D+00*SB2+0.2647D+00*SB3
26534 ELSEIF(IPRT .EQ. 1) THEN
26535 A0=Exp( 0.3961D+00+0.4914D+00*SB -0.1728D+01*SB2+
26536 & 0.7257D+00*SB3)
26537 A1= 0.4162D+00-0.1419D+00*SB +0.3680D+00*SB2-0.1618D+00*SB3
26538 A2= 0.3248D+01+0.3028D+01*SB -0.4307D+01*SB2+0.1920D+01*SB3
26539 A3=-0.1100D+01+0.2184D+01*SB -0.3820D+01*SB2+0.1717D+01*SB3
26540 A4= 0.2082D+01-0.2756D+00*SB +0.3043D+00*SB2-0.1260D+00*SB3
26541 A5=-0.4822D+00-0.5706D+00*SB +0.2243D+01*SB2-0.9760D+00*SB3
26542 ELSEIF(IPRT .EQ. 0) THEN
26543 A0=Exp(-0.4665D+00-0.7554D+00*SB -0.3323D+00*SB2-
26544 & 0.2734D-04*SB3)
26545 A1=-0.3359D+00+0.2395D+00*SB -0.2377D+00*SB2+0.7059D-01*SB3
26546 A2= 0.5451D+01+0.6086D+00*SB +0.8606D-01*SB2-0.1425D+00*SB3
26547 A3= 0.1026D+02-0.9352D+01*SB +0.4879D+01*SB2-0.1150D+01*SB3
26548 A4= 0.9935D+00-0.5017D-01*SB -0.1707D-01*SB2-0.1464D-02*SB3
26549 A5=-0.4160D-01+0.2305D+01*SB -0.1063D+01*SB2+0.3211D+00*SB3
26550 ELSEIF(IPRT .EQ. -1) THEN
26551 A0=Exp(-0.2714D+01-0.2868D+01*SB +0.3700D+01*SB2-
26552 & 0.1671D+01*SB3)
26553 A1=-0.3893D+00+0.3341D+00*SB -0.3897D+00*SB2+0.1420D+00*SB3
26554 A2= 0.8359D+01-0.3267D+01*SB +0.5327D+01*SB2-0.2245D+01*SB3
26555 A3= 0.2359D+02-0.5669D+01*SB -0.4602D+01*SB2+0.3153D+01*SB3
26556 A4= 0.1106D+01-0.4745D+00*SB +0.7739D+00*SB2-0.3417D+00*SB3
26557 A5=-0.5557D+00+0.3433D+01*SB -0.3390D+01*SB2+0.1354D+01*SB3
26558 ELSEIF(IPRT .EQ. -2) THEN
26559 A0=Exp(-0.3323D+01+0.2296D+00*SB -0.1109D+01*SB2+
26560 & 0.2223D+00*SB3)
26561 A1=-0.3410D+00+0.8847D-01*SB -0.1111D-01*SB2-0.5927D-02*SB3
26562 A2= 0.9753D+01-0.5182D+00*SB -0.4670D+00*SB2+0.1921D+00*SB3
26563 A3= 0.1977D+02-0.1600D+02*SB +0.9481D+01*SB2-0.1864D+01*SB3
26564 A4= 0.9818D+00+0.2839D-02*SB -0.1188D+00*SB2+0.3584D-01*SB3
26565 A5=-0.7934D-01+0.1004D+01*SB +0.3704D+00*SB2-0.1220D+00*SB3
26566 ELSEIF(IPRT .EQ. -3) THEN
26567 A0=Exp(-0.3985D+01+0.2855D+01*SB -0.5208D+01*SB2+
26568 & 0.1937D+01*SB3)
26569 A1=-0.3337D+00-0.1150D+00*SB +0.3691D+00*SB2-0.1709D+00*SB3
26570 A2= 0.7968D+01+0.3641D+01*SB -0.6599D+01*SB2+0.2642D+01*SB3
26571 A3= 0.1873D+02-0.1999D+02*SB +0.1734D+02*SB2-0.5813D+01*SB3
26572 A4= 0.9731D+00+0.5082D+00*SB -0.8780D+00*SB2+0.3231D+00*SB3
26573 A5=-0.5542D-01-0.4189D+00*SB +0.3309D+01*SB2-0.1439D+01*SB3
26574 ELSEIF(IPRT .EQ. -4) THEN
26575 A0=SB** 0.1105D+01*Exp(-0.3952D+01-0.1901D+01*SB +
26576 & 0.5137D+00*SB2)
26577 A1=-0.3543D+00+0.6055D+00*SB -0.6941D+00*SB2+0.2278D+00*SB3
26578 A2= 0.5955D+01-0.2629D+01*SB +0.5337D+01*SB2-0.2300D+01*SB3
26579 A3= 0.1933D+01+0.4882D+01*SB -0.3810D+01*SB2+0.2290D+00*SB3
26580 A4= 0.1806D+00+0.1655D+01*SB -0.1893D+01*SB2+0.6395D+00*SB3
26581 A5= 0.4790D+00+0.3612D+01*SB -0.3152D+01*SB2+0.9684D+00*SB3
26582 ELSEIF(IPRT .EQ. -5) THEN
26583 A0=SB** 0.9818D+00*Exp(-0.1825D+01-0.7464D+01*SB +
26584 & 0.2143D+01*SB2)
26585 A1=-0.2604D+00-0.1400D+00*SB +0.1702D+00*SB2-0.8476D-01*SB3
26586 A2= 0.6005D+01+0.6275D+00*SB -0.2535D+01*SB2+0.2219D+01*SB3
26587 A3=-0.9067D+00+0.1149D+01*SB +0.1974D+01*SB2+0.4716D+01*SB3
26588 A4= 0.3915D-01+0.5945D-01*SB -0.9844D-01*SB2+0.2783D-01*SB3
26589 A5= 0.5500D+00+0.1994D+01*SB -0.6727D+00*SB2-0.1510D+00*SB3
26590 ELSEIF(IPRT .EQ. -6) THEN
26591 A0=SB** 0.1002D+01*Exp(-0.8553D+01+0.3793D+00*SB +
26592 & 0.9998D+01*SB2)
26593 A1=-0.5870D-01-0.2792D+00*SB +0.6526D+00*SB2-0.1984D+01*SB3
26594 A2= 0.4716D+01+0.4473D+00*SB +0.1128D+02*SB2-0.1937D+02*SB3
26595 A3= 0.1289D+02-0.1742D+02*SB -0.1983D+02*SB2-0.9274D+00*SB3
26596 A4= 0.5647D+00-0.2732D+00*SB +0.1074D+01*SB2+0.5981D+00*SB3
26597 A5= 0.4390D+01-0.1262D+01*SB -0.9026D+00*SB2-0.9394D+01*SB3
26598 ENDIF
26599 ENDIF
26600
26601
26602 PYCTEQ = MAX(0D0, A0 *(X**A1) *((1D0-X)**A2) *(1D0+A3*(X**A4))
26603 & *(LOG(1D0+1D0/X))**A5 )
26604
26605 RETURN
26606 END
26607
26608
26609
26610
26611
26612
26613
26614
26615 SUBROUTINE PYGRVL (X, Q2, UV, DV, DEL, UDB, SB, CHM, BOT, GL)
26616
26617
26618 IMPLICIT DOUBLE PRECISION (A - Z)
26619
26620
26621 MU2 = 0.23D0
26622 LAM2 = 0.2322D0 * 0.2322D0
26623 S = LOG (LOG(Q2/LAM2) / LOG(MU2/LAM2))
26624 DS = SQRT (S)
26625 S2 = S * S
26626 S3 = S2 * S
26627
26628
26629 NU = 2.284D0 + 0.802D0 * S + 0.055D0 * S2
26630 AKU = 0.590D0 - 0.024D0 * S
26631 BKU = 0.131D0 + 0.063D0 * S
26632 AU = -0.449D0 - 0.138D0 * S - 0.076D0 * S2
26633 BU = 0.213D0 + 2.669D0 * S - 0.728D0 * S2
26634 CU = 8.854D0 - 9.135D0 * S + 1.979D0 * S2
26635 DU = 2.997D0 + 0.753D0 * S - 0.076D0 * S2
26636 UV = PYGRVV (X, NU, AKU, BKU, AU, BU, CU, DU)
26637
26638
26639 ND = 0.371D0 + 0.083D0 * S + 0.039D0 * S2
26640 AKD = 0.376D0
26641 BKD = 0.486D0 + 0.062D0 * S
26642 AD = -0.509D0 + 3.310D0 * S - 1.248D0 * S2
26643 BD = 12.41D0 - 10.52D0 * S + 2.267D0 * S2
26644 CD = 6.373D0 - 6.208D0 * S + 1.418D0 * S2
26645 DD = 3.691D0 + 0.799D0 * S - 0.071D0 * S2
26646 DV = PYGRVV (X, ND, AKD, BKD, AD, BD, CD, DD)
26647
26648
26649 NE = 0.082D0 + 0.014D0 * S + 0.008D0 * S2
26650 AKE = 0.409D0 - 0.005D0 * S
26651 BKE = 0.799D0 + 0.071D0 * S
26652 AE = -38.07D0 + 36.13D0 * S - 0.656D0 * S2
26653 BE = 90.31D0 - 74.15D0 * S + 7.645D0 * S2
26654 CE = 0.0D0
26655 DE = 7.486D0 + 1.217D0 * S - 0.159D0 * S2
26656 DEL = PYGRVV (X, NE, AKE, BKE, AE, BE, CE, DE)
26657
26658
26659 ALX = 1.451D0
26660 BEX = 0.271D0
26661 AKX = 0.410D0 - 0.232D0 * S
26662 BKX = 0.534D0 - 0.457D0 * S
26663 AGX = 0.890D0 - 0.140D0 * S
26664 BGX = -0.981D0
26665 CX = 0.320D0 + 0.683D0 * S
26666 DX = 4.752D0 + 1.164D0 * S + 0.286D0 * S2
26667 EX = 4.119D0 + 1.713D0 * S
26668 ESX = 0.682D0 + 2.978D0 * S
26669 UDB = PYGRVW (X, S, ALX, BEX, AKX, BKX, AGX, BGX, CX,
26670 & DX, EX, ESX)
26671
26672
26673 STS = 0D0
26674 ALS = 0.914D0
26675 BES = 0.577D0
26676 AKS = 1.798D0 - 0.596D0 * S
26677 AS = -5.548D0 + 3.669D0 * DS - 0.616D0 * S
26678 BS = 18.92D0 - 16.73D0 * DS + 5.168D0 * S
26679 DST = 6.379D0 - 0.350D0 * S + 0.142D0 * S2
26680 EST = 3.981D0 + 1.638D0 * S
26681 ESS = 6.402D0
26682 SB = PYGRVS (X, S, STS, ALS, BES, AKS, AS, BS, DST, EST, ESS)
26683
26684
26685 STC = 0.888D0
26686 ALC = 1.01D0
26687 BEC = 0.37D0
26688 AKC = 0D0
26689 AC = 0D0
26690 BC = 4.24D0 - 0.804D0 * S
26691 DCT = 3.46D0 - 1.076D0 * S
26692 ECT = 4.61D0 + 1.49D0 * S
26693 ESC = 2.555D0 + 1.961D0 * S
26694 CHM = PYGRVS (X, S, STC, ALC, BEC, AKC, AC, BC, DCT, ECT, ESC)
26695
26696
26697 STB = 1.351D0
26698 ALB = 1.00D0
26699 BEB = 0.51D0
26700 AKB = 0D0
26701 AB = 0D0
26702 BB = 1.848D0
26703 DBT = 2.929D0 + 1.396D0 * S
26704 EBT = 4.71D0 + 1.514D0 * S
26705 ESB = 4.02D0 + 1.239D0 * S
26706 BOT = PYGRVS (X, S, STB, ALB, BEB, AKB, AB, BB, DBT, EBT, ESB)
26707
26708
26709 ALG = 0.524D0
26710 BEG = 1.088D0
26711 AKG = 1.742D0 - 0.930D0 * S
26712 BKG = - 0.399D0 * S2
26713 AG = 7.486D0 - 2.185D0 * S
26714 BG = 16.69D0 - 22.74D0 * S + 5.779D0 * S2
26715 CG = -25.59D0 + 29.71D0 * S - 7.296D0 * S2
26716 DG = 2.792D0 + 2.215D0 * S + 0.422D0 * S2 - 0.104D0 * S3
26717 EG = 0.807D0 + 2.005D0 * S
26718 ESG = 3.841D0 + 0.316D0 * S
26719 GL = PYGRVW (X, S, ALG, BEG, AKG, BKG, AG, BG, CG,
26720 & DG, EG, ESG)
26721
26722 RETURN
26723 END
26724
26725
26726
26727
26728
26729
26730
26731
26732 SUBROUTINE PYGRVM (X, Q2, UV, DV, DEL, UDB, SB, CHM, BOT, GL)
26733
26734
26735 IMPLICIT DOUBLE PRECISION (A - Z)
26736
26737
26738 MU2 = 0.34D0
26739 LAM2 = 0.248D0 * 0.248D0
26740 S = LOG (LOG(Q2/LAM2) / LOG(MU2/LAM2))
26741 DS = SQRT (S)
26742 S2 = S * S
26743 S3 = S2 * S
26744
26745
26746 NU = 1.304D0 + 0.863D0 * S
26747 AKU = 0.558D0 - 0.020D0 * S
26748 BKU = 0.183D0 * S
26749 AU = -0.113D0 + 0.283D0 * S - 0.321D0 * S2
26750 BU = 6.843D0 - 5.089D0 * S + 2.647D0 * S2 - 0.527D0 * S3
26751 CU = 7.771D0 - 10.09D0 * S + 2.630D0 * S2
26752 DU = 3.315D0 + 1.145D0 * S - 0.583D0 * S2 + 0.154D0 * S3
26753 UV = PYGRVV (X, NU, AKU, BKU, AU, BU, CU, DU)
26754
26755
26756 ND = 0.102D0 - 0.017D0 * S + 0.005D0 * S2
26757 AKD = 0.270D0 - 0.019D0 * S
26758 BKD = 0.260D0
26759 AD = 2.393D0 + 6.228D0 * S - 0.881D0 * S2
26760 BD = 46.06D0 + 4.673D0 * S - 14.98D0 * S2 + 1.331D0 * S3
26761 CD = 17.83D0 - 53.47D0 * S + 21.24D0 * S2
26762 DD = 4.081D0 + 0.976D0 * S - 0.485D0 * S2 + 0.152D0 * S3
26763 DV = PYGRVV (X, ND, AKD, BKD, AD, BD, CD, DD)
26764
26765
26766 NE = 0.070D0 + 0.042D0 * S - 0.011D0 * S2 + 0.004D0 * S3
26767 AKE = 0.409D0 - 0.007D0 * S
26768 BKE = 0.782D0 + 0.082D0 * S
26769 AE = -29.65D0 + 26.49D0 * S + 5.429D0 * S2
26770 BE = 90.20D0 - 74.97D0 * S + 4.526D0 * S2
26771 CE = 0.0D0
26772 DE = 8.122D0 + 2.120D0 * S - 1.088D0 * S2 + 0.231D0 * S3
26773 DEL = PYGRVV (X, NE, AKE, BKE, AE, BE, CE, DE)
26774
26775
26776 ALX = 0.877D0
26777 BEX = 0.561D0
26778 AKX = 0.275D0
26779 BKX = 0.0D0
26780 AGX = 0.997D0
26781 BGX = 3.210D0 - 1.866D0 * S
26782 CX = 7.300D0
26783 DX = 9.010D0 + 0.896D0 * DS + 0.222D0 * S2
26784 EX = 3.077D0 + 1.446D0 * S
26785 ESX = 3.173D0 - 2.445D0 * DS + 2.207D0 * S
26786 UDB = PYGRVW (X, S, ALX, BEX, AKX, BKX, AGX, BGX, CX,
26787 & DX, EX, ESX)
26788
26789
26790 STS = 0D0
26791 ALS = 0.756D0
26792 BES = 0.216D0
26793 AKS = 1.690D0 + 0.650D0 * DS - 0.922D0 * S
26794 AS = -4.329D0 + 1.131D0 * S
26795 BS = 9.568D0 - 1.744D0 * S
26796 DST = 9.377D0 + 1.088D0 * DS - 1.320D0 * S + 0.130D0 * S2
26797 EST = 3.031D0 + 1.639D0 * S
26798 ESS = 5.837D0 + 0.815D0 * S
26799 SB = PYGRVS (X, S, STS, ALS, BES, AKS, AS, BS, DST, EST, ESS)
26800
26801
26802 STC = 0.820D0
26803 ALC = 0.98D0
26804 BEC = 0D0
26805 AKC = -0.625D0 - 0.523D0 * S
26806 AC = 0D0
26807 BC = 1.896D0 + 1.616D0 * S
26808 DCT = 4.12D0 + 0.683D0 * S
26809 ECT = 4.36D0 + 1.328D0 * S
26810 ESC = 0.677D0 + 0.679D0 * S
26811 CHM = PYGRVS (X, S, STC, ALC, BEC, AKC, AC, BC, DCT, ECT, ESC)
26812
26813
26814 STB = 1.297D0
26815 ALB = 0.99D0
26816 BEB = 0D0
26817 AKB = - 0.193D0 * S
26818 AB = 0D0
26819 BB = 0D0
26820 DBT = 3.447D0 + 0.927D0 * S
26821 EBT = 4.68D0 + 1.259D0 * S
26822 ESB = 1.892D0 + 2.199D0 * S
26823 BOT = PYGRVS (X, S, STB, ALB, BEB, AKB, AB, BB, DBT, EBT, ESB)
26824
26825
26826 ALG = 1.014D0
26827 BEG = 1.738D0
26828 AKG = 1.724D0 + 0.157D0 * S
26829 BKG = 0.800D0 + 1.016D0 * S
26830 AG = 7.517D0 - 2.547D0 * S
26831 BG = 34.09D0 - 52.21D0 * DS + 17.47D0 * S
26832 CG = 4.039D0 + 1.491D0 * S
26833 DG = 3.404D0 + 0.830D0 * S
26834 EG = -1.112D0 + 3.438D0 * S - 0.302D0 * S2
26835 ESG = 3.256D0 - 0.436D0 * S
26836 GL = PYGRVW (X, S, ALG, BEG, AKG, BKG, AG, BG, CG, DG, EG, ESG)
26837
26838 RETURN
26839 END
26840
26841
26842
26843
26844
26845
26846
26847
26848 SUBROUTINE PYGRVD (X, Q2, UV, DV, DEL, UDB, SB, CHM, BOT, GL)
26849
26850
26851 IMPLICIT DOUBLE PRECISION (A - Z)
26852
26853
26854 MU2 = 0.34D0
26855 LAM2 = 0.248D0 * 0.248D0
26856 S = LOG (LOG(Q2/LAM2) / LOG(MU2/LAM2))
26857 DS = SQRT (S)
26858 S2 = S * S
26859 S3 = S2 * S
26860
26861
26862 NU = 2.484D0 + 0.116D0 * S + 0.093D0 * S2
26863 AKU = 0.563D0 - 0.025D0 * S
26864 BKU = 0.054D0 + 0.154D0 * S
26865 AU = -0.326D0 - 0.058D0 * S - 0.135D0 * S2
26866 BU = -3.322D0 + 8.259D0 * S - 3.119D0 * S2 + 0.291D0 * S3
26867 CU = 11.52D0 - 12.99D0 * S + 3.161D0 * S2
26868 DU = 2.808D0 + 1.400D0 * S - 0.557D0 * S2 + 0.119D0 * S3
26869 UV = PYGRVV (X, NU, AKU, BKU, AU, BU, CU, DU)
26870
26871
26872 ND = 0.156D0 - 0.017D0 * S
26873 AKD = 0.299D0 - 0.022D0 * S
26874 BKD = 0.259D0 - 0.015D0 * S
26875 AD = 3.445D0 + 1.278D0 * S + 0.326D0 * S2
26876 BD = -6.934D0 + 37.45D0 * S - 18.95D0 * S2 + 1.463D0 * S3
26877 CD = 55.45D0 - 69.92D0 * S + 20.78D0 * S2
26878 DD = 3.577D0 + 1.441D0 * S - 0.683D0 * S2 + 0.179D0 * S3
26879 DV = PYGRVV (X, ND, AKD, BKD, AD, BD, CD, DD)
26880
26881
26882 NE = 0.099D0 + 0.019D0 * S + 0.002D0 * S2
26883 AKE = 0.419D0 - 0.013D0 * S
26884 BKE = 1.064D0 - 0.038D0 * S
26885 AE = -44.00D0 + 98.70D0 * S - 14.79D0 * S2
26886 BE = 28.59D0 - 40.94D0 * S - 13.66D0 * S2 + 2.523D0 * S3
26887 CE = 84.57D0 - 108.8D0 * S + 31.52D0 * S2
26888 DE = 7.469D0 + 2.480D0 * S - 0.866D0 * S2
26889 DEL = PYGRVV (X, NE, AKE, BKE, AE, BE, CE, DE)
26890
26891
26892 ALX = 1.215D0
26893 BEX = 0.466D0
26894 AKX = 0.326D0 + 0.150D0 * S
26895 BKX = 0.956D0 + 0.405D0 * S
26896 AGX = 0.272D0
26897 BGX = 3.794D0 - 2.359D0 * DS
26898 CX = 2.014D0
26899 DX = 7.941D0 + 0.534D0 * DS - 0.940D0 * S + 0.410D0 * S2
26900 EX = 3.049D0 + 1.597D0 * S
26901 ESX = 4.396D0 - 4.594D0 * DS + 3.268D0 * S
26902 UDB = PYGRVW (X, S, ALX, BEX, AKX, BKX, AGX, BGX, CX,
26903 & DX, EX, ESX)
26904
26905
26906 STS = 0D0
26907 ALS = 0.175D0
26908 BES = 0.344D0
26909 AKS = 1.415D0 - 0.641D0 * DS
26910 AS = 0.580D0 - 9.763D0 * DS + 6.795D0 * S - 0.558D0 * S2
26911 BS = 5.617D0 + 5.709D0 * DS - 3.972D0 * S
26912 DST = 13.78D0 - 9.581D0 * S + 5.370D0 * S2 - 0.996D0 * S3
26913 EST = 4.546D0 + 0.372D0 * S2
26914 ESS = 5.053D0 - 1.070D0 * S + 0.805D0 * S2
26915 SB = PYGRVS (X, S, STS, ALS, BES, AKS, AS, BS, DST, EST, ESS)
26916
26917
26918 STC = 0.820D0
26919 ALC = 0.98D0
26920 BEC = 0D0
26921 AKC = -0.625D0 - 0.523D0 * S
26922 AC = 0D0
26923 BC = 1.896D0 + 1.616D0 * S
26924 DCT = 4.12D0 + 0.683D0 * S
26925 ECT = 4.36D0 + 1.328D0 * S
26926 ESC = 0.677D0 + 0.679D0 * S
26927 CHM = PYGRVS (X, S, STC, ALC, BEC, AKC, AC, BC, DCT, ECT, ESC)
26928
26929
26930 STB = 1.297D0
26931 ALB = 0.99D0
26932 BEB = 0D0
26933 AKB = - 0.193D0 * S
26934 AB = 0D0
26935 BB = 0D0
26936 DBT = 3.447D0 + 0.927D0 * S
26937 EBT = 4.68D0 + 1.259D0 * S
26938 ESB = 1.892D0 + 2.199D0 * S
26939 BOT = PYGRVS (X, S, STB, ALB, BEB, AKB, AB, BB, DBT, EBT, ESB)
26940
26941
26942 ALG = 1.258D0
26943 BEG = 1.846D0
26944 AKG = 2.423D0
26945 BKG = 2.427D0 + 1.311D0 * S - 0.153D0 * S2
26946 AG = 25.09D0 - 7.935D0 * S
26947 BG = -14.84D0 - 124.3D0 * DS + 72.18D0 * S
26948 CG = 590.3D0 - 173.8D0 * S
26949 DG = 5.196D0 + 1.857D0 * S
26950 EG = -1.648D0 + 3.988D0 * S - 0.432D0 * S2
26951 ESG = 3.232D0 - 0.542D0 * S
26952 GL = PYGRVW (X, S, ALG, BEG, AKG, BKG, AG, BG, CG, DG, EG, ESG)
26953
26954 RETURN
26955 END
26956
26957
26958
26959
26960
26961
26962
26963
26964 FUNCTION PYGRVV (X, N, AK, BK, A, B, C, D)
26965
26966
26967 IMPLICIT DOUBLE PRECISION (A - Z)
26968
26969
26970 DX = SQRT (X)
26971 PYGRVV = N * X**AK * (1D0+ A*X**BK + X * (B + C*DX)) *
26972 & (1D0- X)**D
26973
26974 RETURN
26975 END
26976
26977
26978
26979
26980
26981
26982
26983
26984 FUNCTION PYGRVW (X, S, AL, BE, AK, BK, A, B, C, D, E, ES)
26985
26986
26987 IMPLICIT DOUBLE PRECISION (A - Z)
26988
26989
26990 LX = LOG (1D0/X)
26991 PYGRVW = (X**AK * (A + X * (B + X*C)) * LX**BK + S**AL
26992 & * EXP (-E + SQRT (ES * S**BE * LX))) * (1D0- X)**D
26993
26994 RETURN
26995 END
26996
26997
26998
26999
27000
27001
27002
27003
27004 FUNCTION PYGRVS (X, S, STH, AL, BE, AK, AG, B, D, E, ES)
27005
27006
27007 IMPLICIT DOUBLE PRECISION (A - Z)
27008
27009
27010 IF(S.LE.STH) THEN
27011 PYGRVS = 0D0
27012 ELSE
27013 DX = SQRT (X)
27014 LX = LOG (1D0/X)
27015 PYGRVS = (S - STH)**AL / LX**AK * (1D0+ AG*DX + B*X) *
27016 & (1D0- X)**D * EXP (-E + SQRT (ES * S**BE * LX))
27017 ENDIF
27018
27019 RETURN
27020 END
27021
27022
27023
27024
27025
27026
27027
27028
27029
27030
27031
27032
27033
27034
27035
27036
27037
27038
27039
27040
27041
27042
27043
27044
27045
27046
27047
27048
27049
27050
27051
27052
27053
27054
27055
27056
27057
27058
27059
27060
27061
27062
27063
27064
27065
27066
27067
27068
27069
27070
27071
27072
27073
27074
27075
27076
27077
27078
27079 FUNCTION PYCT5L(IFL,X,Q)
27080
27081
27082 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
27083 IMPLICIT INTEGER(I-N)
27084
27085 PARAMETER (NEX=8, NLF=2)
27086 DIMENSION AM(0:NEX,0:NLF,-5:2)
27087 DIMENSION ALFVEC(-5:2), QMAVEC(-5:2)
27088 DIMENSION MEXVEC(-5:2), MLFVEC(-5:2)
27089 DIMENSION UT1VEC(-5:2), UT2VEC(-5:2)
27090 DIMENSION AF(0:NEX)
27091
27092 DATA MEXVEC( 2) / 8 /
27093 DATA MLFVEC( 2) / 2 /
27094 DATA UT1VEC( 2) / 0.4971265E+01 /
27095 DATA UT2VEC( 2) / -0.1105128E+01 /
27096 DATA ALFVEC( 2) / 0.2987216E+00 /
27097 DATA QMAVEC( 2) / 0.0000000E+00 /
27098 DATA (AM( 0,K, 2),K=0, 2)
27099 & / 0.5292616E+01, -0.2751910E+01, -0.2488990E+01 /
27100 DATA (AM( 1,K, 2),K=0, 2)
27101 & / 0.9714424E+00, 0.1011827E-01, -0.1023660E-01 /
27102 DATA (AM( 2,K, 2),K=0, 2)
27103 & / -0.1651006E+02, 0.7959721E+01, 0.8810563E+01 /
27104 DATA (AM( 3,K, 2),K=0, 2)
27105 & / -0.1643394E+02, 0.5892854E+01, 0.9348874E+01 /
27106 DATA (AM( 4,K, 2),K=0, 2)
27107 & / 0.3067422E+02, 0.4235796E+01, -0.5112136E+00 /
27108 DATA (AM( 5,K, 2),K=0, 2)
27109 & / 0.2352526E+02, -0.5305168E+01, -0.1169174E+02 /
27110 DATA (AM( 6,K, 2),K=0, 2)
27111 & / -0.1095451E+02, 0.3006577E+01, 0.5638136E+01 /
27112 DATA (AM( 7,K, 2),K=0, 2)
27113 & / -0.1172251E+02, -0.2183624E+01, 0.4955794E+01 /
27114 DATA (AM( 8,K, 2),K=0, 2)
27115 & / 0.1662533E-01, 0.7622870E-02, -0.4895887E-03 /
27116
27117 DATA MEXVEC( 1) / 8 /
27118 DATA MLFVEC( 1) / 2 /
27119 DATA UT1VEC( 1) / 0.2612618E+01 /
27120 DATA UT2VEC( 1) / -0.1258304E+06 /
27121 DATA ALFVEC( 1) / 0.3407552E+00 /
27122 DATA QMAVEC( 1) / 0.0000000E+00 /
27123 DATA (AM( 0,K, 1),K=0, 2)
27124 & / 0.9905300E+00, -0.4502235E+00, 0.1624441E+00 /
27125 DATA (AM( 1,K, 1),K=0, 2)
27126 & / 0.8867534E+00, 0.1630829E-01, -0.4049085E-01 /
27127 DATA (AM( 2,K, 1),K=0, 2)
27128 & / 0.8547974E+00, 0.3336301E+00, 0.1371388E+00 /
27129 DATA (AM( 3,K, 1),K=0, 2)
27130 & / 0.2941113E+00, -0.1527905E+01, 0.2331879E+00 /
27131 DATA (AM( 4,K, 1),K=0, 2)
27132 & / 0.3384235E+02, 0.3715315E+01, 0.8276930E+00 /
27133 DATA (AM( 5,K, 1),K=0, 2)
27134 & / 0.6230115E+01, 0.3134639E+01, -0.1729099E+01 /
27135 DATA (AM( 6,K, 1),K=0, 2)
27136 & / -0.1186928E+01, -0.3282460E+00, 0.1052020E+00 /
27137 DATA (AM( 7,K, 1),K=0, 2)
27138 & / -0.8545702E+01, -0.6247947E+01, 0.3692561E+01 /
27139 DATA (AM( 8,K, 1),K=0, 2)
27140 & / 0.1724598E-01, 0.7120465E-02, 0.4003646E-04 /
27141
27142 DATA MEXVEC( 0) / 8 /
27143 DATA MLFVEC( 0) / 2 /
27144 DATA UT1VEC( 0) / -0.4656819E+00 /
27145 DATA UT2VEC( 0) / -0.2742390E+03 /
27146 DATA ALFVEC( 0) / 0.4491863E+00 /
27147 DATA QMAVEC( 0) / 0.0000000E+00 /
27148 DATA (AM( 0,K, 0),K=0, 2)
27149 & / 0.1193572E+03, -0.3886845E+01, -0.1133965E+01 /
27150 DATA (AM( 1,K, 0),K=0, 2)
27151 & / -0.9421449E+02, 0.3995885E+01, 0.1607363E+01 /
27152 DATA (AM( 2,K, 0),K=0, 2)
27153 & / 0.4206383E+01, 0.2485954E+00, 0.2497468E+00 /
27154 DATA (AM( 3,K, 0),K=0, 2)
27155 & / 0.1210557E+03, -0.3015765E+01, -0.1423651E+01 /
27156 DATA (AM( 4,K, 0),K=0, 2)
27157 & / -0.1013897E+03, -0.7113478E+00, 0.2621865E+00 /
27158 DATA (AM( 5,K, 0),K=0, 2)
27159 & / -0.1312404E+01, -0.9297691E+00, -0.1562531E+00 /
27160 DATA (AM( 6,K, 0),K=0, 2)
27161 & / 0.1627137E+01, 0.4954111E+00, -0.6387009E+00 /
27162 DATA (AM( 7,K, 0),K=0, 2)
27163 & / 0.1537698E+00, -0.2487878E+00, 0.8305947E+00 /
27164 DATA (AM( 8,K, 0),K=0, 2)
27165 & / 0.2496448E-01, 0.2457823E-02, 0.8234276E-03 /
27166
27167 DATA MEXVEC(-1) / 8 /
27168 DATA MLFVEC(-1) / 2 /
27169 DATA UT1VEC(-1) / 0.3862583E+01 /
27170 DATA UT2VEC(-1) / -0.1265969E+01 /
27171 DATA ALFVEC(-1) / 0.2457668E+00 /
27172 DATA QMAVEC(-1) / 0.0000000E+00 /
27173 DATA (AM( 0,K,-1),K=0, 2)
27174 & / 0.2647441E+02, 0.1059277E+02, -0.9176654E+00 /
27175 DATA (AM( 1,K,-1),K=0, 2)
27176 & / 0.1990636E+01, 0.8558918E-01, 0.4248667E-01 /
27177 DATA (AM( 2,K,-1),K=0, 2)
27178 & / -0.1476095E+02, -0.3276255E+02, 0.1558110E+01 /
27179 DATA (AM( 3,K,-1),K=0, 2)
27180 & / -0.2966889E+01, -0.3649037E+02, 0.1195914E+01 /
27181 DATA (AM( 4,K,-1),K=0, 2)
27182 & / -0.1000519E+03, -0.2464635E+01, 0.1964849E+00 /
27183 DATA (AM( 5,K,-1),K=0, 2)
27184 & / 0.3718331E+02, 0.4700389E+02, -0.2772142E+01 /
27185 DATA (AM( 6,K,-1),K=0, 2)
27186 & / -0.1872722E+02, -0.2291189E+02, 0.1089052E+01 /
27187 DATA (AM( 7,K,-1),K=0, 2)
27188 & / -0.1628146E+02, -0.1823993E+02, 0.2537369E+01 /
27189 DATA (AM( 8,K,-1),K=0, 2)
27190 & / -0.1156300E+01, -0.1280495E+00, 0.5153245E-01 /
27191
27192 DATA MEXVEC(-2) / 7 /
27193 DATA MLFVEC(-2) / 2 /
27194 DATA UT1VEC(-2) / 0.1895615E+00 /
27195 DATA UT2VEC(-2) / -0.3069097E+01 /
27196 DATA ALFVEC(-2) / 0.5293999E+00 /
27197 DATA QMAVEC(-2) / 0.0000000E+00 /
27198 DATA (AM( 0,K,-2),K=0, 2)
27199 & / -0.6556775E+00, 0.2490190E+00, 0.3966485E-01 /
27200 DATA (AM( 1,K,-2),K=0, 2)
27201 & / 0.1305102E+01, -0.1188925E+00, -0.4600870E-02 /
27202 DATA (AM( 2,K,-2),K=0, 2)
27203 & / -0.2371436E+01, 0.3566814E+00, -0.2834683E+00 /
27204 DATA (AM( 3,K,-2),K=0, 2)
27205 & / -0.6152826E+01, 0.8339877E+00, -0.7233230E+00 /
27206 DATA (AM( 4,K,-2),K=0, 2)
27207 & / -0.8346558E+01, 0.2892168E+01, 0.2137099E+00 /
27208 DATA (AM( 5,K,-2),K=0, 2)
27209 & / 0.1279530E+02, 0.1021114E+00, 0.5787439E+00 /
27210 DATA (AM( 6,K,-2),K=0, 2)
27211 & / 0.5858816E+00, -0.1940375E+01, -0.4029269E+00 /
27212 DATA (AM( 7,K,-2),K=0, 2)
27213 & / -0.2795725E+02, -0.5263392E+00, 0.1290229E+01 /
27214
27215 DATA MEXVEC(-3) / 7 /
27216 DATA MLFVEC(-3) / 2 /
27217 DATA UT1VEC(-3) / 0.3753257E+01 /
27218 DATA UT2VEC(-3) / -0.1113085E+01 /
27219 DATA ALFVEC(-3) / 0.3713141E+00 /
27220 DATA QMAVEC(-3) / 0.0000000E+00 /
27221 DATA (AM( 0,K,-3),K=0, 2)
27222 & / 0.1580931E+01, -0.2273826E+01, -0.1822245E+01 /
27223 DATA (AM( 1,K,-3),K=0, 2)
27224 & / 0.2702644E+01, 0.6763243E+00, 0.7231586E-02 /
27225 DATA (AM( 2,K,-3),K=0, 2)
27226 & / -0.1857924E+02, 0.3907500E+01, 0.5850109E+01 /
27227 DATA (AM( 3,K,-3),K=0, 2)
27228 & / -0.3044793E+02, 0.2639332E+01, 0.5566644E+01 /
27229 DATA (AM( 4,K,-3),K=0, 2)
27230 & / -0.4258011E+01, -0.5429244E+01, 0.4418946E+00 /
27231 DATA (AM( 5,K,-3),K=0, 2)
27232 & / 0.3465259E+02, -0.5532604E+01, -0.4904153E+01 /
27233 DATA (AM( 6,K,-3),K=0, 2)
27234 & / -0.1658858E+02, 0.2923275E+01, 0.2266286E+01 /
27235 DATA (AM( 7,K,-3),K=0, 2)
27236 & / -0.1149263E+02, 0.2877475E+01, -0.7999105E+00 /
27237
27238 DATA MEXVEC(-4) / 7 /
27239 DATA MLFVEC(-4) / 2 /
27240 DATA UT1VEC(-4) / 0.4400772E+01 /
27241 DATA UT2VEC(-4) / -0.1356116E+01 /
27242 DATA ALFVEC(-4) / 0.3712017E-01 /
27243 DATA QMAVEC(-4) / 0.1300000E+01 /
27244 DATA (AM( 0,K,-4),K=0, 2)
27245 & / -0.8293661E+00, -0.3982375E+01, -0.6494283E-01 /
27246 DATA (AM( 1,K,-4),K=0, 2)
27247 & / 0.2754618E+01, 0.8338636E+00, -0.6885160E-01 /
27248 DATA (AM( 2,K,-4),K=0, 2)
27249 & / -0.1657987E+02, 0.1439143E+02, -0.6887240E+00 /
27250 DATA (AM( 3,K,-4),K=0, 2)
27251 & / -0.2800703E+02, 0.1535966E+02, -0.7377693E+00 /
27252 DATA (AM( 4,K,-4),K=0, 2)
27253 & / -0.6460216E+01, -0.4783019E+01, 0.4913297E+00 /
27254 DATA (AM( 5,K,-4),K=0, 2)
27255 & / 0.3141830E+02, -0.3178031E+02, 0.7136013E+01 /
27256 DATA (AM( 6,K,-4),K=0, 2)
27257 & / -0.1802509E+02, 0.1862163E+02, -0.4632843E+01 /
27258 DATA (AM( 7,K,-4),K=0, 2)
27259 & / -0.1240412E+02, 0.2565386E+02, -0.1066570E+02 /
27260
27261 DATA MEXVEC(-5) / 6 /
27262 DATA MLFVEC(-5) / 2 /
27263 DATA UT1VEC(-5) / 0.5562568E+01 /
27264 DATA UT2VEC(-5) / -0.1801317E+01 /
27265 DATA ALFVEC(-5) / 0.4952010E-02 /
27266 DATA QMAVEC(-5) / 0.4500000E+01 /
27267 DATA (AM( 0,K,-5),K=0, 2)
27268 & / -0.6031237E+01, 0.1992727E+01, -0.1076331E+01 /
27269 DATA (AM( 1,K,-5),K=0, 2)
27270 & / 0.2933912E+01, 0.5839674E+00, 0.7509435E-01 /
27271 DATA (AM( 2,K,-5),K=0, 2)
27272 & / -0.8284919E+01, 0.1488593E+01, -0.8251678E+00 /
27273 DATA (AM( 3,K,-5),K=0, 2)
27274 & / -0.1925986E+02, 0.2805753E+01, -0.3015446E+01 /
27275 DATA (AM( 4,K,-5),K=0, 2)
27276 & / -0.9480483E+01, -0.9767837E+00, -0.1165544E+01 /
27277 DATA (AM( 5,K,-5),K=0, 2)
27278 & / 0.2193195E+02, -0.1788518E+02, 0.9460908E+01 /
27279 DATA (AM( 6,K,-5),K=0, 2)
27280 & / -0.1327377E+02, 0.1201754E+02, -0.6277844E+01 /
27281
27282 IF(Q .LE. QMAVEC(IFL)) THEN
27283 PYCT5L = 0.D0
27284 RETURN
27285 ENDIF
27286
27287 IF(X .GE. 1.D0) THEN
27288 PYCT5L = 0.D0
27289 RETURN
27290 ENDIF
27291
27292 TMP = LOG(Q/ALFVEC(IFL))
27293 IF(TMP .LE. 0.D0) THEN
27294 PYCT5L = 0.D0
27295 RETURN
27296 ENDIF
27297
27298 SB = LOG(TMP)
27299 SB1 = SB - 1.2D0
27300 SB2 = SB1*SB1
27301
27302 DO 110 I = 0, NEX
27303 AF(I) = 0.D0
27304 SBX = 1.D0
27305 DO 100 K = 0, MLFVEC(IFL)
27306 AF(I) = AF(I) + SBX*AM(I,K,IFL)
27307 SBX = SB1*SBX
27308 100 CONTINUE
27309 110 CONTINUE
27310
27311 Y = -LOG(X)
27312 U = LOG(X/0.00001D0)
27313
27314 PART1 = AF(1)*Y**(1.D0+0.01D0*AF(4))*(1.D0+ AF(8)*U)
27315 PART2 = AF(0)*(1.D0 - X) + AF(3)*X
27316 PART3 = X*(1.D0-X)*(AF(5)+AF(6)*(1.D0-X)+AF(7)*X*(1.D0-X))
27317 PART4 = UT1VEC(IFL)*LOG(1.D0-X) +
27318 & AF(2)*LOG(1.D0+EXP(UT2VEC(IFL))-X)
27319
27320 PYCT5L = EXP(LOG(X) + PART1 + PART2 + PART3 + PART4)
27321
27322
27323 PYCT5L = PYCT5L * (1.D0 - QMAVEC(IFL)/Q)
27324
27325 RETURN
27326 END
27327
27328
27329
27330
27331
27332
27333
27334 FUNCTION PYCT5M(IFL,X,Q)
27335
27336
27337 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
27338 IMPLICIT INTEGER(I-N)
27339
27340 PARAMETER (NEX=8, NLF=2)
27341 DIMENSION AM(0:NEX,0:NLF,-5:2)
27342 DIMENSION ALFVEC(-5:2), QMAVEC(-5:2)
27343 DIMENSION MEXVEC(-5:2), MLFVEC(-5:2)
27344 DIMENSION UT1VEC(-5:2), UT2VEC(-5:2)
27345 DIMENSION AF(0:NEX)
27346
27347 DATA MEXVEC( 2) / 8 /
27348 DATA MLFVEC( 2) / 2 /
27349 DATA UT1VEC( 2) / 0.5141718E+01 /
27350 DATA UT2VEC( 2) / -0.1346944E+01 /
27351 DATA ALFVEC( 2) / 0.5260555E+00 /
27352 DATA QMAVEC( 2) / 0.0000000E+00 /
27353 DATA (AM( 0,K, 2),K=0, 2)
27354 & / 0.4289071E+01, -0.2536870E+01, -0.1259948E+01 /
27355 DATA (AM( 1,K, 2),K=0, 2)
27356 & / 0.9839410E+00, 0.4168426E-01, -0.5018952E-01 /
27357 DATA (AM( 2,K, 2),K=0, 2)
27358 & / -0.1651961E+02, 0.9246261E+01, 0.5996400E+01 /
27359 DATA (AM( 3,K, 2),K=0, 2)
27360 & / -0.2077936E+02, 0.9786469E+01, 0.7656465E+01 /
27361 DATA (AM( 4,K, 2),K=0, 2)
27362 & / 0.3054926E+02, 0.1889536E+01, 0.1380541E+01 /
27363 DATA (AM( 5,K, 2),K=0, 2)
27364 & / 0.3084695E+02, -0.1212303E+02, -0.1053551E+02 /
27365 DATA (AM( 6,K, 2),K=0, 2)
27366 & / -0.1426778E+02, 0.6239537E+01, 0.5254819E+01 /
27367 DATA (AM( 7,K, 2),K=0, 2)
27368 & / -0.1909811E+02, 0.3695678E+01, 0.5495729E+01 /
27369 DATA (AM( 8,K, 2),K=0, 2)
27370 & / 0.1889751E-01, 0.5027193E-02, 0.6624896E-03 /
27371
27372 DATA MEXVEC( 1) / 8 /
27373 DATA MLFVEC( 1) / 2 /
27374 DATA UT1VEC( 1) / 0.4138426E+01 /
27375 DATA UT2VEC( 1) / -0.3221374E+01 /
27376 DATA ALFVEC( 1) / 0.4960962E+00 /
27377 DATA QMAVEC( 1) / 0.0000000E+00 /
27378 DATA (AM( 0,K, 1),K=0, 2)
27379 & / 0.1332497E+01, -0.3703718E+00, 0.1288638E+00 /
27380 DATA (AM( 1,K, 1),K=0, 2)
27381 & / 0.7544687E+00, 0.3255075E-01, -0.4706680E-01 /
27382 DATA (AM( 2,K, 1),K=0, 2)
27383 & / -0.7638814E+00, 0.5008313E+00, -0.9237374E-01 /
27384 DATA (AM( 3,K, 1),K=0, 2)
27385 & / -0.3689889E+00, -0.1055098E+01, -0.4645065E+00 /
27386 DATA (AM( 4,K, 1),K=0, 2)
27387 & / 0.3991610E+02, 0.1979881E+01, 0.1775814E+01 /
27388 DATA (AM( 5,K, 1),K=0, 2)
27389 & / 0.6201080E+01, 0.2046288E+01, 0.3804571E+00 /
27390 DATA (AM( 6,K, 1),K=0, 2)
27391 & / -0.8027900E+00, -0.7011688E+00, -0.8049612E+00 /
27392 DATA (AM( 7,K, 1),K=0, 2)
27393 & / -0.8631305E+01, -0.3981200E+01, 0.6970153E+00 /
27394 DATA (AM( 8,K, 1),K=0, 2)
27395 & / 0.2371230E-01, 0.5372683E-02, 0.1118701E-02 /
27396
27397 DATA MEXVEC( 0) / 8 /
27398 DATA MLFVEC( 0) / 2 /
27399 DATA UT1VEC( 0) / -0.1026789E+01 /
27400 DATA UT2VEC( 0) / -0.9051707E+01 /
27401 DATA ALFVEC( 0) / 0.9462977E+00 /
27402 DATA QMAVEC( 0) / 0.0000000E+00 /
27403 DATA (AM( 0,K, 0),K=0, 2)
27404 & / 0.1191990E+03, -0.8548739E+00, -0.1963040E+01 /
27405 DATA (AM( 1,K, 0),K=0, 2)
27406 & / -0.9449972E+02, 0.1074771E+01, 0.2056055E+01 /
27407 DATA (AM( 2,K, 0),K=0, 2)
27408 & / 0.3701064E+01, -0.1167947E-02, 0.1933573E+00 /
27409 DATA (AM( 3,K, 0),K=0, 2)
27410 & / 0.1171345E+03, -0.1064540E+01, -0.1875312E+01 /
27411 DATA (AM( 4,K, 0),K=0, 2)
27412 & / -0.1014453E+03, -0.5707427E+00, 0.4511242E-01 /
27413 DATA (AM( 5,K, 0),K=0, 2)
27414 & / 0.6365168E+01, 0.1275354E+01, -0.4964081E+00 /
27415 DATA (AM( 6,K, 0),K=0, 2)
27416 & / -0.3370693E+01, -0.1122020E+01, 0.5947751E-01 /
27417 DATA (AM( 7,K, 0),K=0, 2)
27418 & / -0.5327270E+01, -0.9293556E+00, 0.6629940E+00 /
27419 DATA (AM( 8,K, 0),K=0, 2)
27420 & / 0.2437513E-01, 0.1600939E-02, 0.6855336E-03 /
27421
27422 DATA MEXVEC(-1) / 8 /
27423 DATA MLFVEC(-1) / 2 /
27424 DATA UT1VEC(-1) / 0.5243571E+01 /
27425 DATA UT2VEC(-1) / -0.2870513E+01 /
27426 DATA ALFVEC(-1) / 0.6701448E+00 /
27427 DATA QMAVEC(-1) / 0.0000000E+00 /
27428 DATA (AM( 0,K,-1),K=0, 2)
27429 & / 0.2428863E+02, 0.1907035E+01, -0.4606457E+00 /
27430 DATA (AM( 1,K,-1),K=0, 2)
27431 & / 0.2006810E+01, -0.1265915E+00, 0.7153556E-02 /
27432 DATA (AM( 2,K,-1),K=0, 2)
27433 & / -0.1884546E+02, -0.2339471E+01, 0.5740679E+01 /
27434 DATA (AM( 3,K,-1),K=0, 2)
27435 & / -0.2527892E+02, -0.2044124E+01, 0.1280470E+02 /
27436 DATA (AM( 4,K,-1),K=0, 2)
27437 & / -0.1013824E+03, -0.1594199E+01, 0.2216401E+00 /
27438 DATA (AM( 5,K,-1),K=0, 2)
27439 & / 0.8070930E+02, 0.1792072E+01, -0.2164364E+02 /
27440 DATA (AM( 6,K,-1),K=0, 2)
27441 & / -0.4641050E+02, 0.1977338E+00, 0.1273014E+02 /
27442 DATA (AM( 7,K,-1),K=0, 2)
27443 & / -0.3910568E+02, 0.1719632E+01, 0.1086525E+02 /
27444 DATA (AM( 8,K,-1),K=0, 2)
27445 & / -0.1185496E+01, -0.1905847E+00, -0.8744118E-03 /
27446
27447 DATA MEXVEC(-2) / 7 /
27448 DATA MLFVEC(-2) / 2 /
27449 DATA UT1VEC(-2) / 0.4782210E+01 /
27450 DATA UT2VEC(-2) / -0.1976856E+02 /
27451 DATA ALFVEC(-2) / 0.7558374E+00 /
27452 DATA QMAVEC(-2) / 0.0000000E+00 /
27453 DATA (AM( 0,K,-2),K=0, 2)
27454 & / -0.6216935E+00, 0.2369963E+00, -0.7909949E-02 /
27455 DATA (AM( 1,K,-2),K=0, 2)
27456 & / 0.1245440E+01, -0.1031510E+00, 0.4916523E-02 /
27457 DATA (AM( 2,K,-2),K=0, 2)
27458 & / -0.7060824E+01, -0.3875283E-01, 0.1784981E+00 /
27459 DATA (AM( 3,K,-2),K=0, 2)
27460 & / -0.7430595E+01, 0.1964572E+00, -0.1284999E+00 /
27461 DATA (AM( 4,K,-2),K=0, 2)
27462 & / -0.6897810E+01, 0.2620543E+01, 0.8012553E-02 /
27463 DATA (AM( 5,K,-2),K=0, 2)
27464 & / 0.1507713E+02, 0.2340307E-01, 0.2482535E+01 /
27465 DATA (AM( 6,K,-2),K=0, 2)
27466 & / -0.1815341E+01, -0.1538698E+01, -0.2014208E+01 /
27467 DATA (AM( 7,K,-2),K=0, 2)
27468 & / -0.2571932E+02, 0.2903941E+00, -0.2848206E+01 /
27469
27470 DATA MEXVEC(-3) / 7 /
27471 DATA MLFVEC(-3) / 2 /
27472 DATA UT1VEC(-3) / 0.4518239E+01 /
27473 DATA UT2VEC(-3) / -0.2690590E+01 /
27474 DATA ALFVEC(-3) / 0.6124079E+00 /
27475 DATA QMAVEC(-3) / 0.0000000E+00 /
27476 DATA (AM( 0,K,-3),K=0, 2)
27477 & / -0.2734458E+01, -0.7245673E+00, -0.6351374E+00 /
27478 DATA (AM( 1,K,-3),K=0, 2)
27479 & / 0.2927174E+01, 0.4822709E+00, -0.1088787E-01 /
27480 DATA (AM( 2,K,-3),K=0, 2)
27481 & / -0.1771017E+02, -0.1416635E+01, 0.8467622E+01 /
27482 DATA (AM( 3,K,-3),K=0, 2)
27483 & / -0.4972782E+02, -0.3348547E+01, 0.1767061E+02 /
27484 DATA (AM( 4,K,-3),K=0, 2)
27485 & / -0.7102770E+01, -0.3205337E+01, 0.4101704E+00 /
27486 DATA (AM( 5,K,-3),K=0, 2)
27487 & / 0.7169698E+02, -0.2205985E+01, -0.2463931E+02 /
27488 DATA (AM( 6,K,-3),K=0, 2)
27489 & / -0.4090347E+02, 0.2103486E+01, 0.1416507E+02 /
27490 DATA (AM( 7,K,-3),K=0, 2)
27491 & / -0.2952639E+02, 0.5376136E+01, 0.7825585E+01 /
27492
27493 DATA MEXVEC(-4) / 7 /
27494 DATA MLFVEC(-4) / 2 /
27495 DATA UT1VEC(-4) / 0.2783230E+01 /
27496 DATA UT2VEC(-4) / -0.1746328E+01 /
27497 DATA ALFVEC(-4) / 0.1115653E+01 /
27498 DATA QMAVEC(-4) / 0.1300000E+01 /
27499 DATA (AM( 0,K,-4),K=0, 2)
27500 & / -0.1743872E+01, -0.1128921E+01, -0.2841969E+00 /
27501 DATA (AM( 1,K,-4),K=0, 2)
27502 & / 0.3345755E+01, 0.3187765E+00, 0.1378124E+00 /
27503 DATA (AM( 2,K,-4),K=0, 2)
27504 & / -0.2037615E+02, 0.4121687E+01, 0.2236520E+00 /
27505 DATA (AM( 3,K,-4),K=0, 2)
27506 & / -0.4703104E+02, 0.5353087E+01, -0.1455347E+01 /
27507 DATA (AM( 4,K,-4),K=0, 2)
27508 & / -0.1060230E+02, -0.1551122E+01, -0.1078863E+01 /
27509 DATA (AM( 5,K,-4),K=0, 2)
27510 & / 0.5088892E+02, -0.8197304E+01, 0.8083451E+01 /
27511 DATA (AM( 6,K,-4),K=0, 2)
27512 & / -0.2819070E+02, 0.4554086E+01, -0.5890995E+01 /
27513 DATA (AM( 7,K,-4),K=0, 2)
27514 & / -0.1098238E+02, 0.2590096E+01, -0.8062879E+01 /
27515
27516 DATA MEXVEC(-5) / 6 /
27517 DATA MLFVEC(-5) / 2 /
27518 DATA UT1VEC(-5) / 0.1619654E+02 /
27519 DATA UT2VEC(-5) / -0.3367346E+01 /
27520 DATA ALFVEC(-5) / 0.5109891E-02 /
27521 DATA QMAVEC(-5) / 0.4500000E+01 /
27522 DATA (AM( 0,K,-5),K=0, 2)
27523 & / -0.6800138E+01, 0.2493627E+01, -0.1075724E+01 /
27524 DATA (AM( 1,K,-5),K=0, 2)
27525 & / 0.3036555E+01, 0.3324733E+00, 0.2008298E+00 /
27526 DATA (AM( 2,K,-5),K=0, 2)
27527 & / -0.5203879E+01, -0.8493476E+01, -0.4523208E+01 /
27528 DATA (AM( 3,K,-5),K=0, 2)
27529 & / -0.1524239E+01, -0.3411912E+01, -0.1771867E+02 /
27530 DATA (AM( 4,K,-5),K=0, 2)
27531 & / -0.1099444E+02, 0.1320930E+01, -0.2353831E+01 /
27532 DATA (AM( 5,K,-5),K=0, 2)
27533 & / 0.1699299E+02, -0.3565802E+02, 0.3566872E+02 /
27534 DATA (AM( 6,K,-5),K=0, 2)
27535 & / -0.1465793E+02, 0.2703365E+02, -0.2176372E+02 /
27536
27537 IF(Q .LE. QMAVEC(IFL)) THEN
27538 PYCT5M = 0.D0
27539 RETURN
27540 ENDIF
27541
27542 IF(X .GE. 1.D0) THEN
27543 PYCT5M = 0.D0
27544 RETURN
27545 ENDIF
27546
27547 TMP = LOG(Q/ALFVEC(IFL))
27548 IF(TMP .LE. 0.D0) THEN
27549 PYCT5M = 0.D0
27550 RETURN
27551 ENDIF
27552
27553 SB = LOG(TMP)
27554 SB1 = SB - 1.2D0
27555 SB2 = SB1*SB1
27556
27557 DO 110 I = 0, NEX
27558 AF(I) = 0.D0
27559 SBX = 1.D0
27560 DO 100 K = 0, MLFVEC(IFL)
27561 AF(I) = AF(I) + SBX*AM(I,K,IFL)
27562 SBX = SB1*SBX
27563 100 CONTINUE
27564 110 CONTINUE
27565
27566 Y = -LOG(X)
27567 U = LOG(X/0.00001D0)
27568
27569 PART1 = AF(1)*Y**(1.D0+0.01D0*AF(4))*(1.D0+ AF(8)*U)
27570 PART2 = AF(0)*(1.D0 - X) + AF(3)*X
27571 PART3 = X*(1.D0-X)*(AF(5)+AF(6)*(1.D0-X)+AF(7)*X*(1.D0-X))
27572 PART4 = UT1VEC(IFL)*LOG(1.D0-X) +
27573 & AF(2)*LOG(1.D0+EXP(UT2VEC(IFL))-X)
27574
27575 PYCT5M = EXP(LOG(X) + PART1 + PART2 + PART3 + PART4)
27576
27577
27578 PYCT5M = PYCT5M * (1.D0 - QMAVEC(IFL)/Q)
27579
27580 RETURN
27581 END
27582
27583
27584
27585
27586
27587
27588
27589
27590 SUBROUTINE PYPDPO(X,Q2,XPPR)
27591
27592
27593 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
27594 IMPLICIT INTEGER(I-N)
27595 INTEGER PYK,PYCHGE,PYCOMP
27596
27597 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
27598 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
27599 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
27600 COMMON/PYINT1/MINT(400),VINT(400)
27601 SAVE /PYDAT1/,/PYDAT2/,/PYPARS/,/PYINT1/
27602 DIMENSION XPPR(-6:6),XQ(9),TX(6),TT(6),TS(6),NEHLQ(8,2),
27603 &CEHLQ(6,6,2,8,2),CDO(3,6,5,2)
27604
27605
27606
27607
27608
27609
27610 DATA NEHLQ/3,4,7,5,7,7,7,7,3,4,7,6,7,7,7,7/
27611
27612 DATA (((CEHLQ(IX,IT,NX,1,1),IX=1,6),IT=1,6),NX=1,2)/
27613 1 7.677D-01,-2.087D-01,-3.303D-01,-2.517D-02,-1.570D-02,-1.000D-04,
27614 2-5.326D-01,-2.661D-01, 3.201D-01, 1.192D-01, 2.434D-02, 7.620D-03,
27615 3 2.162D-01, 1.881D-01,-8.375D-02,-6.515D-02,-1.743D-02,-5.040D-03,
27616 4-9.211D-02,-9.952D-02, 1.373D-02, 2.506D-02, 8.770D-03, 2.550D-03,
27617 5 3.670D-02, 4.409D-02, 9.600D-04,-7.960D-03,-3.420D-03,-1.050D-03,
27618 6-1.549D-02,-2.026D-02,-3.060D-03, 2.220D-03, 1.240D-03, 4.100D-04,
27619 1 2.395D-01, 2.905D-01, 9.778D-02, 2.149D-02, 3.440D-03, 5.000D-04,
27620 2 1.751D-02,-6.090D-03,-2.687D-02,-1.916D-02,-7.970D-03,-2.750D-03,
27621 3-5.760D-03,-5.040D-03, 1.080D-03, 2.490D-03, 1.530D-03, 7.500D-04,
27622 4 1.740D-03, 1.960D-03, 3.000D-04,-3.400D-04,-2.900D-04,-1.800D-04,
27623 5-5.300D-04,-6.400D-04,-1.700D-04, 4.000D-05, 6.000D-05, 4.000D-05,
27624 6 1.700D-04, 2.200D-04, 8.000D-05, 1.000D-05,-1.000D-05,-1.000D-05/
27625 DATA (((CEHLQ(IX,IT,NX,1,2),IX=1,6),IT=1,6),NX=1,2)/
27626 1 7.237D-01,-2.189D-01,-2.995D-01,-1.909D-02,-1.477D-02, 2.500D-04,
27627 2-5.314D-01,-2.425D-01, 3.283D-01, 1.119D-01, 2.223D-02, 7.070D-03,
27628 3 2.289D-01, 1.890D-01,-9.859D-02,-6.900D-02,-1.747D-02,-5.080D-03,
27629 4-1.041D-01,-1.084D-01, 2.108D-02, 2.975D-02, 9.830D-03, 2.830D-03,
27630 5 4.394D-02, 5.116D-02,-1.410D-03,-1.055D-02,-4.230D-03,-1.270D-03,
27631 6-1.991D-02,-2.539D-02,-2.780D-03, 3.430D-03, 1.720D-03, 5.500D-04,
27632 1 2.410D-01, 2.884D-01, 9.369D-02, 1.900D-02, 2.530D-03, 2.400D-04,
27633 2 1.765D-02,-9.220D-03,-3.037D-02,-2.085D-02,-8.440D-03,-2.810D-03,
27634 3-6.450D-03,-5.260D-03, 1.720D-03, 3.110D-03, 1.830D-03, 8.700D-04,
27635 4 2.120D-03, 2.320D-03, 2.600D-04,-4.900D-04,-3.900D-04,-2.300D-04,
27636 5-6.900D-04,-8.200D-04,-2.000D-04, 7.000D-05, 9.000D-05, 6.000D-05,
27637 6 2.400D-04, 3.100D-04, 1.100D-04, 0.000D+00,-2.000D-05,-2.000D-05/
27638
27639 DATA (((CEHLQ(IX,IT,NX,2,1),IX=1,6),IT=1,6),NX=1,2)/
27640 1 3.813D-01,-8.090D-02,-1.634D-01,-2.185D-02,-8.430D-03,-6.200D-04,
27641 2-2.948D-01,-1.435D-01, 1.665D-01, 6.638D-02, 1.473D-02, 4.080D-03,
27642 3 1.252D-01, 1.042D-01,-4.722D-02,-3.683D-02,-1.038D-02,-2.860D-03,
27643 4-5.478D-02,-5.678D-02, 8.900D-03, 1.484D-02, 5.340D-03, 1.520D-03,
27644 5 2.220D-02, 2.567D-02,-3.000D-05,-4.970D-03,-2.160D-03,-6.500D-04,
27645 6-9.530D-03,-1.204D-02,-1.510D-03, 1.510D-03, 8.300D-04, 2.700D-04,
27646 1 1.261D-01, 1.354D-01, 3.958D-02, 8.240D-03, 1.660D-03, 4.500D-04,
27647 2 3.890D-03,-1.159D-02,-1.625D-02,-9.610D-03,-3.710D-03,-1.260D-03,
27648 3-1.910D-03,-5.600D-04, 1.590D-03, 1.590D-03, 8.400D-04, 3.900D-04,
27649 4 6.400D-04, 4.900D-04,-1.500D-04,-2.900D-04,-1.800D-04,-1.000D-04,
27650 5-2.000D-04,-1.900D-04, 0.000D+00, 6.000D-05, 4.000D-05, 3.000D-05,
27651 6 7.000D-05, 8.000D-05, 2.000D-05,-1.000D-05,-1.000D-05,-1.000D-05/
27652 DATA (((CEHLQ(IX,IT,NX,2,2),IX=1,6),IT=1,6),NX=1,2)/
27653 1 3.578D-01,-8.622D-02,-1.480D-01,-1.840D-02,-7.820D-03,-4.500D-04,
27654 2-2.925D-01,-1.304D-01, 1.696D-01, 6.243D-02, 1.353D-02, 3.750D-03,
27655 3 1.318D-01, 1.041D-01,-5.486D-02,-3.872D-02,-1.038D-02,-2.850D-03,
27656 4-6.162D-02,-6.143D-02, 1.303D-02, 1.740D-02, 5.940D-03, 1.670D-03,
27657 5 2.643D-02, 2.957D-02,-1.490D-03,-6.450D-03,-2.630D-03,-7.700D-04,
27658 6-1.218D-02,-1.497D-02,-1.260D-03, 2.240D-03, 1.120D-03, 3.500D-04,
27659 1 1.263D-01, 1.334D-01, 3.732D-02, 7.070D-03, 1.260D-03, 3.400D-04,
27660 2 3.660D-03,-1.357D-02,-1.795D-02,-1.031D-02,-3.880D-03,-1.280D-03,
27661 3-2.100D-03,-3.600D-04, 2.050D-03, 1.920D-03, 9.800D-04, 4.400D-04,
27662 4 7.700D-04, 5.400D-04,-2.400D-04,-3.900D-04,-2.400D-04,-1.300D-04,
27663 5-2.600D-04,-2.300D-04, 2.000D-05, 9.000D-05, 6.000D-05, 4.000D-05,
27664 6 9.000D-05, 1.000D-04, 2.000D-05,-2.000D-05,-2.000D-05,-1.000D-05/
27665
27666 DATA (((CEHLQ(IX,IT,NX,3,1),IX=1,6),IT=1,6),NX=1,2)/
27667 1 6.870D-02,-6.861D-02, 2.973D-02,-5.400D-03, 3.780D-03,-9.700D-04,
27668 2-1.802D-02, 1.400D-04, 6.490D-03,-8.540D-03, 1.220D-03,-1.750D-03,
27669 3-4.650D-03, 1.480D-03,-5.930D-03, 6.000D-04,-1.030D-03,-8.000D-05,
27670 4 6.440D-03, 2.570D-03, 2.830D-03, 1.150D-03, 7.100D-04, 3.300D-04,
27671 5-3.930D-03,-2.540D-03,-1.160D-03,-7.700D-04,-3.600D-04,-1.900D-04,
27672 6 2.340D-03, 1.930D-03, 5.300D-04, 3.700D-04, 1.600D-04, 9.000D-05,
27673 1 1.014D+00,-1.106D+00, 3.374D-01,-7.444D-02, 8.850D-03,-8.700D-04,
27674 2 9.233D-01,-1.285D+00, 4.475D-01,-9.786D-02, 1.419D-02,-1.120D-03,
27675 3 4.888D-02,-1.271D-01, 8.606D-02,-2.608D-02, 4.780D-03,-6.000D-04,
27676 4-2.691D-02, 4.887D-02,-1.771D-02, 1.620D-03, 2.500D-04,-6.000D-05,
27677 5 7.040D-03,-1.113D-02, 1.590D-03, 7.000D-04,-2.000D-04, 0.000D+00,
27678 6-1.710D-03, 2.290D-03, 3.800D-04,-3.500D-04, 4.000D-05, 1.000D-05/
27679 DATA (((CEHLQ(IX,IT,NX,3,2),IX=1,6),IT=1,6),NX=1,2)/
27680 1 1.008D-01,-7.100D-02, 1.973D-02,-5.710D-03, 2.930D-03,-9.900D-04,
27681 2-5.271D-02,-1.823D-02, 1.792D-02,-6.580D-03, 1.750D-03,-1.550D-03,
27682 3 1.220D-02, 1.763D-02,-8.690D-03,-8.800D-04,-1.160D-03,-2.100D-04,
27683 4-1.190D-03,-7.180D-03, 2.360D-03, 1.890D-03, 7.700D-04, 4.100D-04,
27684 5-9.100D-04, 2.040D-03,-3.100D-04,-1.050D-03,-4.000D-04,-2.400D-04,
27685 6 1.190D-03,-1.700D-04,-2.000D-04, 4.200D-04, 1.700D-04, 1.000D-04,
27686 1 1.081D+00,-1.189D+00, 3.868D-01,-8.617D-02, 1.115D-02,-1.180D-03,
27687 2 9.917D-01,-1.396D+00, 4.998D-01,-1.159D-01, 1.674D-02,-1.720D-03,
27688 3 5.099D-02,-1.338D-01, 9.173D-02,-2.885D-02, 5.890D-03,-6.500D-04,
27689 4-3.178D-02, 5.703D-02,-2.070D-02, 2.440D-03, 1.100D-04,-9.000D-05,
27690 5 8.970D-03,-1.392D-02, 2.050D-03, 6.500D-04,-2.300D-04, 2.000D-05,
27691 6-2.340D-03, 3.010D-03, 5.000D-04,-3.900D-04, 6.000D-05, 1.000D-05/
27692
27693 DATA (((CEHLQ(IX,IT,NX,4,1),IX=1,6),IT=1,6),NX=1,2)/
27694 1 9.482D-01,-9.578D-01, 1.009D-01,-1.051D-01, 3.456D-02,-3.054D-02,
27695 2-9.627D-01, 5.379D-01, 3.368D-01,-9.525D-02, 1.488D-02,-2.051D-02,
27696 3 4.300D-01,-8.306D-02,-3.372D-01, 4.902D-02,-9.160D-03, 1.041D-02,
27697 4-1.925D-01,-1.790D-02, 2.183D-01, 7.490D-03, 4.140D-03,-1.860D-03,
27698 5 8.183D-02, 1.926D-02,-1.072D-01,-1.944D-02,-2.770D-03,-5.200D-04,
27699 6-3.884D-02,-1.234D-02, 5.410D-02, 1.879D-02, 3.350D-03, 1.040D-03,
27700 1 2.948D+01,-3.902D+01, 1.464D+01,-3.335D+00, 5.054D-01,-5.915D-02,
27701 2 2.559D+01,-3.955D+01, 1.661D+01,-4.299D+00, 6.904D-01,-8.243D-02,
27702 3-1.663D+00, 1.176D+00, 1.118D+00,-7.099D-01, 1.948D-01,-2.404D-02,
27703 4-2.168D-01, 8.170D-01,-7.169D-01, 1.851D-01,-1.924D-02,-3.250D-03,
27704 5 2.088D-01,-4.355D-01, 2.239D-01,-2.446D-02,-3.620D-03, 1.910D-03,
27705 6-9.097D-02, 1.601D-01,-5.681D-02,-2.500D-03, 2.580D-03,-4.700D-04/
27706 DATA (((CEHLQ(IX,IT,NX,4,2),IX=1,6),IT=1,6),NX=1,2)/
27707 1 2.367D+00, 4.453D-01, 3.660D-01, 9.467D-02, 1.341D-01, 1.661D-02,
27708 2-3.170D+00,-1.795D+00, 3.313D-02,-2.874D-01,-9.827D-02,-7.119D-02,
27709 3 1.823D+00, 1.457D+00,-2.465D-01, 3.739D-02, 6.090D-03, 1.814D-02,
27710 4-1.033D+00,-9.827D-01, 2.136D-01, 1.169D-01, 5.001D-02, 1.684D-02,
27711 5 5.133D-01, 5.259D-01,-1.173D-01,-1.139D-01,-4.988D-02,-2.021D-02,
27712 6-2.881D-01,-3.145D-01, 5.667D-02, 9.161D-02, 4.568D-02, 1.951D-02,
27713 1 3.036D+01,-4.062D+01, 1.578D+01,-3.699D+00, 6.020D-01,-7.031D-02,
27714 2 2.700D+01,-4.167D+01, 1.770D+01,-4.804D+00, 7.862D-01,-1.060D-01,
27715 3-1.909D+00, 1.357D+00, 1.127D+00,-7.181D-01, 2.232D-01,-2.481D-02,
27716 4-2.488D-01, 9.781D-01,-8.127D-01, 2.094D-01,-2.997D-02,-4.710D-03,
27717 5 2.506D-01,-5.427D-01, 2.672D-01,-3.103D-02,-1.800D-03, 2.870D-03,
27718 6-1.128D-01, 2.087D-01,-6.972D-02,-2.480D-03, 2.630D-03,-8.400D-04/
27719
27720 DATA (((CEHLQ(IX,IT,NX,5,1),IX=1,6),IT=1,6),NX=1,2)/
27721 1 4.968D-02,-4.173D-02, 2.102D-02,-3.270D-03, 3.240D-03,-6.700D-04,
27722 2-6.150D-03,-1.294D-02, 6.740D-03,-6.890D-03, 9.000D-04,-1.510D-03,
27723 3-8.580D-03, 5.050D-03,-4.900D-03,-1.600D-04,-9.400D-04,-1.500D-04,
27724 4 7.840D-03, 1.510D-03, 2.220D-03, 1.400D-03, 7.000D-04, 3.500D-04,
27725 5-4.410D-03,-2.220D-03,-8.900D-04,-8.500D-04,-3.600D-04,-2.000D-04,
27726 6 2.520D-03, 1.840D-03, 4.100D-04, 3.900D-04, 1.600D-04, 9.000D-05,
27727 1 9.235D-01,-1.085D+00, 3.464D-01,-7.210D-02, 9.140D-03,-9.100D-04,
27728 2 9.315D-01,-1.274D+00, 4.512D-01,-9.775D-02, 1.380D-02,-1.310D-03,
27729 3 4.739D-02,-1.296D-01, 8.482D-02,-2.642D-02, 4.760D-03,-5.700D-04,
27730 4-2.653D-02, 4.953D-02,-1.735D-02, 1.750D-03, 2.800D-04,-6.000D-05,
27731 5 6.940D-03,-1.132D-02, 1.480D-03, 6.500D-04,-2.100D-04, 0.000D+00,
27732 6-1.680D-03, 2.340D-03, 4.200D-04,-3.400D-04, 5.000D-05, 1.000D-05/
27733 DATA (((CEHLQ(IX,IT,NX,5,2),IX=1,6),IT=1,6),NX=1,2)/
27734 1 6.478D-02,-4.537D-02, 1.643D-02,-3.490D-03, 2.710D-03,-6.700D-04,
27735 2-2.223D-02,-2.126D-02, 1.247D-02,-6.290D-03, 1.120D-03,-1.440D-03,
27736 3-1.340D-03, 1.362D-02,-6.130D-03,-7.900D-04,-9.000D-04,-2.000D-04,
27737 4 5.080D-03,-3.610D-03, 1.700D-03, 1.830D-03, 6.800D-04, 4.000D-04,
27738 5-3.580D-03, 6.000D-05,-2.600D-04,-1.050D-03,-3.800D-04,-2.300D-04,
27739 6 2.420D-03, 9.300D-04,-1.000D-04, 4.500D-04, 1.700D-04, 1.100D-04,
27740 1 9.868D-01,-1.171D+00, 3.940D-01,-8.459D-02, 1.124D-02,-1.250D-03,
27741 2 1.001D+00,-1.383D+00, 5.044D-01,-1.152D-01, 1.658D-02,-1.830D-03,
27742 3 4.928D-02,-1.368D-01, 9.021D-02,-2.935D-02, 5.800D-03,-6.600D-04,
27743 4-3.133D-02, 5.785D-02,-2.023D-02, 2.630D-03, 1.600D-04,-8.000D-05,
27744 5 8.840D-03,-1.416D-02, 1.900D-03, 5.800D-04,-2.500D-04, 1.000D-05,
27745 6-2.300D-03, 3.080D-03, 5.500D-04,-3.700D-04, 7.000D-05, 1.000D-05/
27746
27747 DATA (((CEHLQ(IX,IT,NX,6,1),IX=1,6),IT=1,6),NX=1,2)/
27748 1 9.270D-03,-1.817D-02, 9.590D-03,-6.390D-03, 1.690D-03,-1.540D-03,
27749 2 5.710D-03,-1.188D-02, 6.090D-03,-4.650D-03, 1.240D-03,-1.310D-03,
27750 3-3.960D-03, 7.100D-03,-3.590D-03, 1.840D-03,-3.900D-04, 3.400D-04,
27751 4 1.120D-03,-1.960D-03, 1.120D-03,-4.800D-04, 1.000D-04,-4.000D-05,
27752 5 4.000D-05,-3.000D-05,-1.800D-04, 9.000D-05,-5.000D-05,-2.000D-05,
27753 6-4.200D-04, 7.300D-04,-1.600D-04, 5.000D-05, 5.000D-05, 5.000D-05,
27754 1 8.098D-01,-1.042D+00, 3.398D-01,-6.824D-02, 8.760D-03,-9.000D-04,
27755 2 8.961D-01,-1.217D+00, 4.339D-01,-9.287D-02, 1.304D-02,-1.290D-03,
27756 3 3.058D-02,-1.040D-01, 7.604D-02,-2.415D-02, 4.600D-03,-5.000D-04,
27757 4-2.451D-02, 4.432D-02,-1.651D-02, 1.430D-03, 1.200D-04,-1.000D-04,
27758 5 1.122D-02,-1.457D-02, 2.680D-03, 5.800D-04,-1.200D-04, 3.000D-05,
27759 6-7.730D-03, 7.330D-03,-7.600D-04,-2.400D-04, 1.000D-05, 0.000D+00/
27760 DATA (((CEHLQ(IX,IT,NX,6,2),IX=1,6),IT=1,6),NX=1,2)/
27761 1 9.980D-03,-1.945D-02, 1.055D-02,-6.870D-03, 1.860D-03,-1.560D-03,
27762 2 5.700D-03,-1.203D-02, 6.250D-03,-4.860D-03, 1.310D-03,-1.370D-03,
27763 3-4.490D-03, 7.990D-03,-4.170D-03, 2.050D-03,-4.400D-04, 3.300D-04,
27764 4 1.470D-03,-2.480D-03, 1.460D-03,-5.700D-04, 1.200D-04,-1.000D-05,
27765 5-9.000D-05, 1.500D-04,-3.200D-04, 1.200D-04,-6.000D-05,-4.000D-05,
27766 6-4.200D-04, 7.600D-04,-1.400D-04, 4.000D-05, 7.000D-05, 5.000D-05,
27767 1 8.698D-01,-1.131D+00, 3.836D-01,-8.111D-02, 1.048D-02,-1.300D-03,
27768 2 9.626D-01,-1.321D+00, 4.854D-01,-1.091D-01, 1.583D-02,-1.700D-03,
27769 3 3.057D-02,-1.088D-01, 8.022D-02,-2.676D-02, 5.590D-03,-5.600D-04,
27770 4-2.845D-02, 5.164D-02,-1.918D-02, 2.210D-03,-4.000D-05,-1.500D-04,
27771 5 1.311D-02,-1.751D-02, 3.310D-03, 5.100D-04,-1.200D-04, 5.000D-05,
27772 6-8.590D-03, 8.380D-03,-9.200D-04,-2.600D-04, 1.000D-05,-1.000D-05/
27773
27774 DATA (((CEHLQ(IX,IT,NX,7,1),IX=1,6),IT=1,6),NX=1,2)/
27775 1 9.010D-03,-1.401D-02, 7.150D-03,-4.130D-03, 1.260D-03,-1.040D-03,
27776 2 6.280D-03,-9.320D-03, 4.780D-03,-2.890D-03, 9.100D-04,-8.200D-04,
27777 3-2.930D-03, 4.090D-03,-1.890D-03, 7.600D-04,-2.300D-04, 1.400D-04,
27778 4 3.900D-04,-1.200D-03, 4.400D-04,-2.500D-04, 2.000D-05,-2.000D-05,
27779 5 2.600D-04, 1.400D-04,-8.000D-05, 1.000D-04, 1.000D-05, 1.000D-05,
27780 6-2.600D-04, 3.200D-04, 1.000D-05,-1.000D-05, 1.000D-05,-1.000D-05,
27781 1 8.029D-01,-1.075D+00, 3.792D-01,-7.843D-02, 1.007D-02,-1.090D-03,
27782 2 7.903D-01,-1.099D+00, 4.153D-01,-9.301D-02, 1.317D-02,-1.410D-03,
27783 3-1.704D-02,-1.130D-02, 2.882D-02,-1.341D-02, 3.040D-03,-3.600D-04,
27784 4-7.200D-04, 7.230D-03,-5.160D-03, 1.080D-03,-5.000D-05,-4.000D-05,
27785 5 3.050D-03,-4.610D-03, 1.660D-03,-1.300D-04,-1.000D-05, 1.000D-05,
27786 6-4.360D-03, 5.230D-03,-1.610D-03, 2.000D-04,-2.000D-05, 0.000D+00/
27787 DATA (((CEHLQ(IX,IT,NX,7,2),IX=1,6),IT=1,6),NX=1,2)/
27788 1 8.980D-03,-1.459D-02, 7.510D-03,-4.410D-03, 1.310D-03,-1.070D-03,
27789 2 5.970D-03,-9.440D-03, 4.800D-03,-3.020D-03, 9.100D-04,-8.500D-04,
27790 3-3.050D-03, 4.440D-03,-2.100D-03, 8.500D-04,-2.400D-04, 1.400D-04,
27791 4 5.300D-04,-1.300D-03, 5.600D-04,-2.700D-04, 3.000D-05,-2.000D-05,
27792 5 2.000D-04, 1.400D-04,-1.100D-04, 1.000D-04, 0.000D+00, 0.000D+00,
27793 6-2.600D-04, 3.200D-04, 0.000D+00,-3.000D-05, 1.000D-05,-1.000D-05,
27794 1 8.672D-01,-1.174D+00, 4.265D-01,-9.252D-02, 1.244D-02,-1.460D-03,
27795 2 8.500D-01,-1.194D+00, 4.630D-01,-1.083D-01, 1.614D-02,-1.830D-03,
27796 3-2.241D-02,-5.630D-03, 2.815D-02,-1.425D-02, 3.520D-03,-4.300D-04,
27797 4-7.300D-04, 8.030D-03,-5.780D-03, 1.380D-03,-1.300D-04,-4.000D-05,
27798 5 3.460D-03,-5.380D-03, 1.960D-03,-2.100D-04, 1.000D-05, 1.000D-05,
27799 6-4.850D-03, 5.950D-03,-1.890D-03, 2.600D-04,-3.000D-05, 0.000D+00/
27800
27801 DATA (((CEHLQ(IX,IT,NX,8,1),IX=1,6),IT=1,6),NX=1,2)/
27802 1 4.410D-03,-7.480D-03, 3.770D-03,-2.580D-03, 7.300D-04,-7.100D-04,
27803 2 3.840D-03,-6.050D-03, 3.030D-03,-2.030D-03, 5.800D-04,-5.900D-04,
27804 3-8.800D-04, 1.660D-03,-7.500D-04, 4.700D-04,-1.000D-04, 1.000D-04,
27805 4-8.000D-05,-1.500D-04, 1.200D-04,-9.000D-05, 3.000D-05, 0.000D+00,
27806 5 1.300D-04,-2.200D-04,-2.000D-05,-2.000D-05,-2.000D-05,-2.000D-05,
27807 6-7.000D-05, 1.900D-04,-4.000D-05, 2.000D-05, 0.000D+00, 0.000D+00,
27808 1 6.623D-01,-9.248D-01, 3.519D-01,-7.930D-02, 1.110D-02,-1.180D-03,
27809 2 6.380D-01,-9.062D-01, 3.582D-01,-8.479D-02, 1.265D-02,-1.390D-03,
27810 3-2.581D-02, 2.125D-02, 4.190D-03,-4.980D-03, 1.490D-03,-2.100D-04,
27811 4 7.100D-04, 5.300D-04,-1.270D-03, 3.900D-04,-5.000D-05,-1.000D-05,
27812 5 3.850D-03,-5.060D-03, 1.860D-03,-3.500D-04, 4.000D-05, 0.000D+00,
27813 6-3.530D-03, 4.460D-03,-1.500D-03, 2.700D-04,-3.000D-05, 0.000D+00/
27814 DATA (((CEHLQ(IX,IT,NX,8,2),IX=1,6),IT=1,6),NX=1,2)/
27815 1 4.260D-03,-7.530D-03, 3.830D-03,-2.680D-03, 7.600D-04,-7.300D-04,
27816 2 3.640D-03,-6.050D-03, 3.030D-03,-2.090D-03, 5.900D-04,-6.000D-04,
27817 3-9.200D-04, 1.710D-03,-8.200D-04, 5.000D-04,-1.200D-04, 1.000D-04,
27818 4-5.000D-05,-1.600D-04, 1.300D-04,-9.000D-05, 3.000D-05, 0.000D+00,
27819 5 1.300D-04,-2.100D-04,-1.000D-05,-2.000D-05,-2.000D-05,-1.000D-05,
27820 6-8.000D-05, 1.800D-04,-5.000D-05, 2.000D-05, 0.000D+00, 0.000D+00,
27821 1 7.146D-01,-1.007D+00, 3.932D-01,-9.246D-02, 1.366D-02,-1.540D-03,
27822 2 6.856D-01,-9.828D-01, 3.977D-01,-9.795D-02, 1.540D-02,-1.790D-03,
27823 3-3.053D-02, 2.758D-02, 2.150D-03,-4.880D-03, 1.640D-03,-2.500D-04,
27824 4 9.200D-04, 4.200D-04,-1.340D-03, 4.600D-04,-8.000D-05,-1.000D-05,
27825 5 4.230D-03,-5.660D-03, 2.140D-03,-4.300D-04, 6.000D-05, 0.000D+00,
27826 6-3.890D-03, 5.000D-03,-1.740D-03, 3.300D-04,-4.000D-05, 0.000D+00/
27827
27828
27829
27830
27831 DATA ((CDO(IP,IS,1,1),IS=1,6),IP=1,3)/
27832 1 4.190D-01, 3.460D+00, 4.400D+00, 0.000D+00, 0.000D+00, 0.000D+00,
27833 2 4.000D-03, 7.240D-01,-4.860D+00, 0.000D+00, 0.000D+00, 0.000D+00,
27834 3-7.000D-03,-6.600D-02, 1.330D+00, 0.000D+00, 0.000D+00, 0.000D+00/
27835 DATA ((CDO(IP,IS,1,2),IS=1,6),IP=1,3)/
27836 1 3.740D-01, 3.330D+00, 6.030D+00, 0.000D+00, 0.000D+00, 0.000D+00,
27837 2 1.400D-02, 7.530D-01,-6.220D+00, 0.000D+00, 0.000D+00, 0.000D+00,
27838 3 0.000D+00,-7.600D-02, 1.560D+00, 0.000D+00, 0.000D+00, 0.000D+00/
27839
27840 DATA ((CDO(IP,IS,2,1),IS=1,6),IP=1,3)/
27841 1 7.630D-01, 4.000D+00, 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00,
27842 2-2.370D-01, 6.270D-01,-4.210D-01, 0.000D+00, 0.000D+00, 0.000D+00,
27843 3 2.600D-02,-1.900D-02, 3.300D-02, 0.000D+00, 0.000D+00, 0.000D+00/
27844 DATA ((CDO(IP,IS,2,2),IS=1,6),IP=1,3)/
27845 1 7.610D-01, 3.830D+00, 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00,
27846 2-2.320D-01, 6.270D-01,-4.180D-01, 0.000D+00, 0.000D+00, 0.000D+00,
27847 3 2.300D-02,-1.900D-02, 3.600D-02, 0.000D+00, 0.000D+00, 0.000D+00/
27848
27849 DATA ((CDO(IP,IS,3,1),IS=1,6),IP=1,3)/
27850 1 1.265D+00, 0.000D+00, 8.050D+00, 0.000D+00, 0.000D+00, 0.000D+00,
27851 2-1.132D+00,-3.720D-01, 1.590D+00, 6.310D+00,-1.050D+01, 1.470D+01,
27852 3 2.930D-01,-2.900D-02,-1.530D-01,-2.730D-01,-3.170D+00, 9.800D+00/
27853 DATA ((CDO(IP,IS,3,2),IS=1,6),IP=1,3)/
27854 1 1.670D+00, 0.000D+00, 9.150D+00, 0.000D+00, 0.000D+00, 0.000D+00,
27855 2-1.920D+00,-2.730D-01, 5.300D-01, 1.570D+01,-1.010D+02, 2.230D+02,
27856 3 5.820D-01,-1.640D-01,-7.630D-01,-2.830D+00, 4.470D+01,-1.170D+02/
27857
27858 DATA ((CDO(IP,IS,4,1),IS=1,6),IP=1,3)/
27859 1 0.000D+00,-3.600D-02, 6.350D+00, 0.000D+00, 0.000D+00, 0.000D+00,
27860 2 1.350D-01,-2.220D-01, 3.260D+00,-3.030D+00, 1.740D+01,-1.790D+01,
27861 3-7.500D-02,-5.800D-02,-9.090D-01, 1.500D+00,-1.130D+01, 1.560D+01/
27862 DATA ((CDO(IP,IS,4,2),IS=1,6),IP=1,3)/
27863 1 0.000D+00,-1.200D-01, 3.510D+00, 0.000D+00, 0.000D+00, 0.000D+00,
27864 2 6.700D-02,-2.330D-01, 3.660D+00,-4.740D-01, 9.500D+00,-1.660D+01,
27865 3-3.100D-02,-2.300D-02,-4.530D-01, 3.580D-01,-5.430D+00, 1.550D+01/
27866
27867 DATA ((CDO(IP,IS,5,1),IS=1,6),IP=1,3)/
27868 1 1.560D+00, 0.000D+00, 6.000D+00, 9.000D+00, 0.000D+00, 0.000D+00,
27869 2-1.710D+00,-9.490D-01, 1.440D+00,-7.190D+00,-1.650D+01, 1.530D+01,
27870 3 6.380D-01, 3.250D-01,-1.050D+00, 2.550D-01, 1.090D+01,-1.010D+01/
27871 DATA ((CDO(IP,IS,5,2),IS=1,6),IP=1,3)/
27872 1 8.790D-01, 0.000D+00, 4.000D+00, 9.000D+00, 0.000D+00, 0.000D+00,
27873 2-9.710D-01,-1.160D+00, 1.230D+00,-5.640D+00,-7.540D+00,-5.960D-01,
27874 3 4.340D-01, 4.760D-01,-2.540D-01,-8.170D-01, 5.500D+00, 1.260D-01/
27875
27876
27877 EULBET(X,Y)=PYGAMM(X)*PYGAMM(Y)/PYGAMM(X+Y)
27878
27879
27880
27881
27882 IF(MSTP(51).EQ.11) THEN
27883
27884
27885 Q2IN=MIN(1D8,MAX(0.25D0,Q2))
27886 SD=LOG(LOG(Q2IN/0.232D0**2)/LOG(0.25D0/0.232D0**2))
27887 SD2=SD**2
27888 XL=-LOG(X)
27889 XS=SQRT(X)
27890
27891
27892 XFVUD=(0.663D0+0.191D0*SD-0.041D0*SD2+0.031D0*SD**3)*
27893 & X**0.326D0*(1D0+(-1.97D0+6.74D0*SD-1.96D0*SD2)*XS+
27894 & (24.4D0-20.7D0*SD+4.08D0*SD2)*X)*
27895 & (1D0-X)**(2.86D0+0.70D0*SD-0.02D0*SD2)
27896 XFVDD=(0.579D0+0.283D0*SD+0.047D0*SD2)*X**(0.523D0-0.015D0*SD)*
27897 & (1D0+(2.22D0-0.59D0*SD-0.27D0*SD2)*XS+(5.95D0-6.19D0*SD+
27898 & 1.55D0*SD2)*X)*(1D0-X)**(3.57D0+0.94D0*SD-0.16D0*SD2)
27899 XFGLU=(X**(1.00D0-0.17D0*SD)*((4.879D0*SD-1.383D0*SD2)+
27900 & (25.92D0-28.97D0*SD+5.596D0*SD2)*X+(-25.69D0+23.68D0*SD-
27901 & 1.975D0*SD2)*X**2)+SD**0.558D0*EXP(-(0.595D0+2.138D0*SD)+
27902 & SQRT(4.066D0*SD**1.218D0*XL)))*
27903 & (1D0-X)**(2.537D0+1.718D0*SD+0.353D0*SD2)
27904 XFSEA=(X**(0.412D0-0.171D0*SD)*(0.363D0-1.196D0*X+(1.029D0+
27905 & 1.785D0*SD-0.459D0*SD2)*X**2)*XL**(0.566D0-0.496D0*SD)+
27906 & SD**1.396D0*EXP(-(3.838D0+1.944D0*SD)+SQRT(2.845D0*SD**1.331D0*
27907 & XL)))*(1D0-X)**(4.696D0+2.109D0*SD)
27908 XFSTR=SD**0.803D0*(1D0+(-3.055D0+1.024D0*SD**0.67D0)*XS+
27909 & (27.4D0-20.0D0*SD**0.154D0)*X)*(1D0-X)**6.22D0*
27910 & EXP(-(4.33D0+1.408D0*SD)+SQRT((8.27D0-0.437D0*SD)*
27911 & SD**0.563D0*XL))/XL**(2.082D0-0.577D0*SD)
27912 IF(SD.LE.0.888D0) THEN
27913 XFCHM=0D0
27914 ELSE
27915 XFCHM=(SD-0.888D0)**1.01D0*(1.+(4.24D0-0.804D0*SD)*X)*
27916 & (1D0-X)**(3.46D0+1.076D0*SD)*EXP(-(4.61D0+1.49D0*SD)+
27917 & SQRT((2.555D0+1.961D0*SD)*SD**0.37D0*XL))
27918 ENDIF
27919 IF(SD.LE.1.351D0) THEN
27920 XFBOT=0D0
27921 ELSE
27922 XFBOT=(SD-1.351D0)*(1D0+1.848D0*X)*(1D0-X)**(2.929D0+
27923 & 1.396D0*SD)*EXP(-(4.71D0+1.514D0*SD)+
27924 & SQRT((4.02D0+1.239D0*SD)*SD**0.51D0*XL))
27925 ENDIF
27926
27927
27928 XPPR(0)=XFGLU
27929 XPPR(1)=XFVDD+XFSEA
27930 XPPR(2)=XFVUD-XFVDD+XFSEA
27931 XPPR(3)=XFSTR
27932 XPPR(4)=XFCHM
27933 XPPR(5)=XFBOT
27934 XPPR(-1)=XFSEA
27935 XPPR(-2)=XFSEA
27936 XPPR(-3)=XFSTR
27937 XPPR(-4)=XFCHM
27938 XPPR(-5)=XFBOT
27939
27940
27941
27942 ELSEIF(MSTP(51).EQ.12.OR.MSTP(51).EQ.13) THEN
27943
27944
27945 NSET=MSTP(51)-11
27946 IF(NSET.EQ.1) ALAM=0.2D0
27947 IF(NSET.EQ.2) ALAM=0.29D0
27948 TMIN=LOG(5D0/ALAM**2)
27949 TMAX=LOG(1D8/ALAM**2)
27950 T=LOG(MAX(1D0,Q2/ALAM**2))
27951 VT=MAX(-1D0,MIN(1D0,(2D0*T-TMAX-TMIN)/(TMAX-TMIN)))
27952 NX=1
27953 IF(X.LE.0.1D0) NX=2
27954 IF(NX.EQ.1) VX=(2D0*X-1.1D0)/0.9D0
27955 IF(NX.EQ.2) VX=MAX(-1D0,(2D0*LOG(X)+11.51293D0)/6.90776D0)
27956
27957
27958 TX(1)=1D0
27959 TX(2)=VX
27960 TX(3)=2D0*VX**2-1D0
27961 TX(4)=4D0*VX**3-3D0*VX
27962 TX(5)=8D0*VX**4-8D0*VX**2+1D0
27963 TX(6)=16D0*VX**5-20D0*VX**3+5D0*VX
27964 TT(1)=1D0
27965 TT(2)=VT
27966 TT(3)=2D0*VT**2-1D0
27967 TT(4)=4D0*VT**3-3D0*VT
27968 TT(5)=8D0*VT**4-8D0*VT**2+1D0
27969 TT(6)=16D0*VT**5-20D0*VT**3+5D0*VT
27970
27971
27972 DO 130 KFL=1,6
27973 XQSUM=0D0
27974 DO 120 IT=1,6
27975 DO 110 IX=1,6
27976 XQSUM=XQSUM+CEHLQ(IX,IT,NX,KFL,NSET)*TX(IX)*TT(IT)
27977 110 CONTINUE
27978 120 CONTINUE
27979 XQ(KFL)=XQSUM*(1D0-X)**NEHLQ(KFL,NSET)
27980 130 CONTINUE
27981
27982
27983 XPPR(0)=XQ(4)
27984 XPPR(1)=XQ(2)+XQ(3)
27985 XPPR(2)=XQ(1)+XQ(3)
27986 XPPR(3)=XQ(5)
27987 XPPR(4)=XQ(6)
27988 XPPR(-1)=XQ(3)
27989 XPPR(-2)=XQ(3)
27990 XPPR(-3)=XQ(5)
27991 XPPR(-4)=XQ(6)
27992
27993
27994 IF(MSTP(58).GE.5) THEN
27995 IF(NSET.EQ.1) TMIN=8.1905D0
27996 IF(NSET.EQ.2) TMIN=7.4474D0
27997 IF(T.GT.TMIN) THEN
27998 VT=MAX(-1D0,MIN(1D0,(2D0*T-TMAX-TMIN)/(TMAX-TMIN)))
27999 TT(1)=1D0
28000 TT(2)=VT
28001 TT(3)=2D0*VT**2-1D0
28002 TT(4)=4D0*VT**3-3D0*VT
28003 TT(5)=8D0*VT**4-8D0*VT**2+1D0
28004 TT(6)=16D0*VT**5-20D0*VT**3+5D0*VT
28005 XQSUM=0D0
28006 DO 150 IT=1,6
28007 DO 140 IX=1,6
28008 XQSUM=XQSUM+CEHLQ(IX,IT,NX,7,NSET)*TX(IX)*TT(IT)
28009 140 CONTINUE
28010 150 CONTINUE
28011 XPPR(5)=XQSUM*(1D0-X)**NEHLQ(7,NSET)
28012 XPPR(-5)=XPPR(5)
28013 ENDIF
28014 ENDIF
28015
28016
28017 IF(MSTP(58).GE.6) THEN
28018 IF(NSET.EQ.1) TMIN=11.5528D0
28019 IF(NSET.EQ.2) TMIN=10.8097D0
28020 TMIN=TMIN+2D0*LOG(PMAS(6,1)/30D0)
28021 TMAX=TMAX+2D0*LOG(PMAS(6,1)/30D0)
28022 IF(T.GT.TMIN) THEN
28023 VT=MAX(-1D0,MIN(1D0,(2D0*T-TMAX-TMIN)/(TMAX-TMIN)))
28024 TT(1)=1D0
28025 TT(2)=VT
28026 TT(3)=2D0*VT**2-1D0
28027 TT(4)=4D0*VT**3-3D0*VT
28028 TT(5)=8D0*VT**4-8D0*VT**2+1D0
28029 TT(6)=16D0*VT**5-20D0*VT**3+5D0*VT
28030 XQSUM=0D0
28031 DO 170 IT=1,6
28032 DO 160 IX=1,6
28033 XQSUM=XQSUM+CEHLQ(IX,IT,NX,8,NSET)*TX(IX)*TT(IT)
28034 160 CONTINUE
28035 170 CONTINUE
28036 XPPR(6)=XQSUM*(1D0-X)**NEHLQ(8,NSET)
28037 XPPR(-6)=XPPR(6)
28038 ENDIF
28039 ENDIF
28040
28041
28042
28043 ELSEIF(MSTP(51).EQ.14.OR.MSTP(51).EQ.15) THEN
28044
28045
28046 NSET=MSTP(51)-13
28047 IF(NSET.EQ.1) ALAM=0.2D0
28048 IF(NSET.EQ.2) ALAM=0.4D0
28049 Q2IN=MIN(1D6,MAX(4D0,Q2))
28050 SD=LOG(LOG(Q2IN/ALAM**2)/LOG(4D0/ALAM**2))
28051
28052
28053 DO 190 KFL=1,5
28054 DO 180 IS=1,6
28055 TS(IS)=CDO(1,IS,KFL,NSET)+CDO(2,IS,KFL,NSET)*SD+
28056 & CDO(3,IS,KFL,NSET)*SD**2
28057 180 CONTINUE
28058 IF(KFL.LE.2) THEN
28059 XQ(KFL)=X**TS(1)*(1D0-X)**TS(2)*(1D0+TS(3)*X)/(EULBET(TS(1),
28060 & TS(2)+1D0)*(1D0+TS(3)*TS(1)/(TS(1)+TS(2)+1D0)))
28061 ELSE
28062 XQ(KFL)=TS(1)*X**TS(2)*(1D0-X)**TS(3)*(1D0+TS(4)*X+
28063 & TS(5)*X**2+TS(6)*X**3)
28064 ENDIF
28065 190 CONTINUE
28066
28067
28068 XPPR(0)=XQ(5)
28069 XPPR(1)=XQ(2)+XQ(3)/6D0
28070 XPPR(2)=3D0*XQ(1)-XQ(2)+XQ(3)/6D0
28071 XPPR(3)=XQ(3)/6D0
28072 XPPR(4)=XQ(4)
28073 XPPR(-1)=XQ(3)/6D0
28074 XPPR(-2)=XQ(3)/6D0
28075 XPPR(-3)=XQ(3)/6D0
28076 XPPR(-4)=XQ(4)
28077
28078 ENDIF
28079
28080 RETURN
28081 END
28082
28083
28084
28085
28086
28087
28088
28089 FUNCTION PYHFTH(SH,SQM,FRATT)
28090
28091
28092 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
28093 IMPLICIT INTEGER(I-N)
28094 INTEGER PYK,PYCHGE,PYCOMP
28095
28096 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
28097 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
28098 COMMON/PYINT1/MINT(400),VINT(400)
28099 SAVE /PYDAT1/,/PYPARS/,/PYINT1/
28100
28101
28102 IF(MSTP(35).LE.1) THEN
28103 ALSSG=PARP(35)
28104 ELSE
28105 MST115=MSTU(115)
28106 MSTU(115)=MSTP(36)
28107 Q2BN=SQRT(MAX(1D0,SQM*((SQRT(SH)-2D0*SQRT(SQM))**2+
28108 & PARP(36)**2)))
28109 ALSSG=PYALPS(Q2BN)
28110 MSTU(115)=MST115
28111 ENDIF
28112
28113
28114 XATTR=4D0*PARU(1)*ALSSG/(3D0*SQRT(MAX(1D-20,1D0-4D0*SQM/SH)))
28115 FATTR=XATTR/(1D0-EXP(-MIN(50D0,XATTR)))
28116 XREPU=PARU(1)*ALSSG/(6D0*SQRT(MAX(1D-20,1D0-4D0*SQM/SH)))
28117 FREPU=XREPU/(EXP(MIN(50D0,XREPU))-1D0)
28118 PYHFTH=FRATT*FATTR+(1D0-FRATT)*FREPU
28119 VINT(138)=PYHFTH
28120
28121 RETURN
28122 END
28123
28124
28125
28126
28127
28128
28129
28130 SUBROUTINE PYSPLI(KF,KFLIN,KFLCH,KFLSP)
28131
28132
28133 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
28134 IMPLICIT INTEGER(I-N)
28135 INTEGER PYK,PYCHGE,PYCOMP
28136
28137 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
28138 COMMON/PYINT1/MINT(400),VINT(400)
28139 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
28140 SAVE /PYPARS/,/PYINT1/,/PYDAT1/
28141
28142 DIMENSION KFL(3)
28143
28144
28145 KFA=IABS(KF)
28146 KFS=ISIGN(1,KF)
28147 KFL(1)=MOD(KFA/1000,10)
28148 KFL(2)=MOD(KFA/100,10)
28149 KFL(3)=MOD(KFA/10,10)
28150 IF(KFA.EQ.22.AND.MINT(109).EQ.2) THEN
28151 KFL(2)=INT(1.5D0+PYR(0))
28152 IF(MINT(105).EQ.333) KFL(2)=3
28153 IF(MINT(105).EQ.443) KFL(2)=4
28154 KFL(3)=KFL(2)
28155 ELSEIF((KFA.EQ.111.OR.KFA.EQ.113).AND.PYR(0).GT.0.5D0) THEN
28156 KFL(2)=2
28157 KFL(3)=2
28158 ELSEIF(KFA.EQ.223.AND.PYR(0).GT.0.5D0) THEN
28159 KFL(2)=1
28160 KFL(3)=1
28161 ENDIF
28162 IF(KFLIN.NE.21.AND.KFLIN.NE.22.AND.KFLIN.NE.23) THEN
28163 KFLR=KFLIN*KFS
28164 ELSE
28165 KFLR=KFLIN
28166 ENDIF
28167 KFLCH=0
28168
28169
28170 IF(KFA.GE.11.AND.KFA.LE.18) THEN
28171 IF(KFLR.EQ.KFA) THEN
28172 KFLSP=KFS*22
28173 ELSEIF(KFLR.EQ.22) THEN
28174 KFLSP=KFA
28175 ELSEIF(KFLR.EQ.-24.AND.MOD(KFA,2).EQ.1) THEN
28176 KFLSP=KFA+1
28177 ELSEIF(KFLR.EQ.24.AND.MOD(KFA,2).EQ.0) THEN
28178 KFLSP=KFA-1
28179 ELSEIF(KFLR.EQ.21) THEN
28180 KFLSP=KFA
28181 KFLCH=KFS*21
28182 ELSE
28183 KFLSP=KFA
28184 KFLCH=-KFLR
28185 ENDIF
28186
28187
28188 ELSEIF(KFA.EQ.22.AND.MINT(109).NE.2) THEN
28189 IF(KFLR.NE.21) THEN
28190 KFLSP=-KFLR
28191 ELSE
28192 RAGR=0.75D0*PYR(0)
28193 KFLSP=1
28194 IF(RAGR.GT.0.125D0) KFLSP=2
28195 IF(RAGR.GT.0.625D0) KFLSP=3
28196 IF(PYR(0).GT.0.5D0) KFLSP=-KFLSP
28197 KFLCH=-KFLSP
28198 ENDIF
28199
28200
28201 ELSEIF(KFA.EQ.28.OR.KFA.EQ.29) THEN
28202 IF(KFLIN.EQ.21) THEN
28203 KFLSP=KFS*21
28204 ELSE
28205 KFLSP=-KFLIN
28206 ENDIF
28207
28208
28209 ELSEIF(KFL(1).EQ.0) THEN
28210 KFL(2)=KFL(2)*(-1)**KFL(2)
28211 KFL(3)=-KFL(3)*(-1)**IABS(KFL(2))
28212 IF(KFLR.EQ.KFL(2)) THEN
28213 KFLSP=KFL(3)
28214 ELSEIF(KFLR.EQ.KFL(3)) THEN
28215 KFLSP=KFL(2)
28216 ELSEIF(KFLR.EQ.21.AND.PYR(0).GT.0.5D0) THEN
28217 KFLSP=KFL(2)
28218 KFLCH=KFL(3)
28219 ELSEIF(KFLR.EQ.21) THEN
28220 KFLSP=KFL(3)
28221 KFLCH=KFL(2)
28222 ELSEIF(KFLR*KFL(2).GT.0) THEN
28223 NTRY=0
28224 100 NTRY=NTRY+1
28225 CALL PYKFDI(-KFLR,KFL(2),KFDUMP,KFLCH)
28226 IF(KFLCH.EQ.0.AND.NTRY.LT.100) THEN
28227 GOTO 100
28228 ELSEIF(KFLCH.EQ.0) THEN
28229 CALL PYERRM(14,'(PYSPLI:) caught in infinite loop')
28230 MINT(51)=1
28231 RETURN
28232 ENDIF
28233 KFLSP=KFL(3)
28234 ELSE
28235 NTRY=0
28236 110 NTRY=NTRY+1
28237 CALL PYKFDI(-KFLR,KFL(3),KFDUMP,KFLCH)
28238 IF(KFLCH.EQ.0.AND.NTRY.LT.100) THEN
28239 GOTO 110
28240 ELSEIF(KFLCH.EQ.0) THEN
28241 CALL PYERRM(14,'(PYSPLI:) caught in infinite loop')
28242 MINT(51)=1
28243 RETURN
28244 ENDIF
28245 KFLSP=KFL(2)
28246 ENDIF
28247
28248
28249 ELSE
28250 NAGR=0
28251 DO 120 J=1,3
28252 IF(KFLR.EQ.KFL(J)) NAGR=NAGR+1
28253 120 CONTINUE
28254 IF(NAGR.GE.1) THEN
28255 RAGR=0.00001D0+(NAGR-0.00002D0)*PYR(0)
28256 IAGR=0
28257 DO 130 J=1,3
28258 IF(KFLR.EQ.KFL(J)) RAGR=RAGR-1D0
28259 IF(IAGR.EQ.0.AND.RAGR.LE.0D0) IAGR=J
28260 130 CONTINUE
28261 ELSE
28262 IAGR=1.00001D0+2.99998D0*PYR(0)
28263 ENDIF
28264 ID1=1
28265 IF(IAGR.EQ.1) ID1=2
28266 IF(IAGR.EQ.1.AND.KFL(3).GT.KFL(2)) ID1=3
28267 ID2=6-IAGR-ID1
28268 KSP=3
28269 IF(MOD(KFA,10).EQ.2.AND.KFL(1).EQ.KFL(2)) THEN
28270 IF(IAGR.NE.3.AND.PYR(0).GT.0.25D0) KSP=1
28271 ELSEIF(MOD(KFA,10).EQ.2.AND.KFL(2).GE.KFL(3)) THEN
28272 IF(IAGR.NE.1.AND.PYR(0).GT.0.25D0) KSP=1
28273 ELSEIF(MOD(KFA,10).EQ.2) THEN
28274 IF(IAGR.EQ.1) KSP=1
28275 IF(IAGR.NE.1.AND.PYR(0).GT.0.75D0) KSP=1
28276 ENDIF
28277 KFLSP=1000*KFL(ID1)+100*KFL(ID2)+KSP
28278 IF(KFLR.EQ.21) THEN
28279 KFLCH=KFL(IAGR)
28280 ELSEIF(NAGR.EQ.0.AND.KFLR.GT.0) THEN
28281 NTRY=0
28282 140 NTRY=NTRY+1
28283 CALL PYKFDI(-KFLR,KFL(IAGR),KFDUMP,KFLCH)
28284 IF(KFLCH.EQ.0.AND.NTRY.LT.100) THEN
28285 GOTO 140
28286 ELSEIF(KFLCH.EQ.0) THEN
28287 CALL PYERRM(14,'(PYSPLI:) caught in infinite loop')
28288 MINT(51)=1
28289 RETURN
28290 ENDIF
28291 ELSEIF(NAGR.EQ.0) THEN
28292 NTRY=0
28293 150 NTRY=NTRY+1
28294 CALL PYKFDI(10000*KFL(ID1)+KFLSP,-KFLR,KFDUMP,KFLCH)
28295 IF(KFLCH.EQ.0.AND.NTRY.LT.100) THEN
28296 GOTO 150
28297 ELSEIF(KFLCH.EQ.0) THEN
28298 CALL PYERRM(14,'(PYSPLI:) caught in infinite loop')
28299 MINT(51)=1
28300 RETURN
28301 ENDIF
28302 KFLSP=KFL(IAGR)
28303 ENDIF
28304 ENDIF
28305
28306
28307 KFLCH=KFLCH*KFS
28308 KFLSP=KFLSP*KFS
28309
28310 RETURN
28311 END
28312
28313
28314
28315
28316
28317
28318
28319
28320 FUNCTION PYGAMM(X)
28321
28322
28323 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
28324 IMPLICIT INTEGER(I-N)
28325 INTEGER PYK,PYCHGE,PYCOMP
28326
28327 DIMENSION B(8)
28328 DATA B/-0.577191652D0,0.988205891D0,-0.897056937D0,0.918206857D0,
28329 &-0.756704078D0,0.482199394D0,-0.193527818D0,0.035868343D0/
28330
28331 NX=INT(X)
28332 DX=X-NX
28333
28334 PYGAMM=1D0
28335 DXP=1D0
28336 DO 100 I=1,8
28337 DXP=DXP*DX
28338 PYGAMM=PYGAMM+B(I)*DXP
28339 100 CONTINUE
28340 IF(X.LT.1D0) THEN
28341 PYGAMM=PYGAMM/X
28342 ELSE
28343 DO 110 IX=1,NX-1
28344 PYGAMM=(X-IX)*PYGAMM
28345 110 CONTINUE
28346 ENDIF
28347
28348 RETURN
28349 END
28350
28351
28352
28353
28354
28355
28356
28357
28358 SUBROUTINE PYWAUX(IAUX,EPS,WRE,WIM)
28359
28360
28361 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
28362 IMPLICIT INTEGER(I-N)
28363 INTEGER PYK,PYCHGE,PYCOMP
28364
28365 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
28366 SAVE /PYDAT1/
28367
28368 ASINH(X)=LOG(X+SQRT(X**2+1D0))
28369 ACOSH(X)=LOG(X+SQRT(X**2-1D0))
28370
28371 IF(EPS.LT.0D0) THEN
28372 IF(IAUX.EQ.1) WRE=2D0*SQRT(1D0-EPS)*ASINH(SQRT(-1D0/EPS))
28373 IF(IAUX.EQ.2) WRE=4D0*(ASINH(SQRT(-1D0/EPS)))**2
28374 WIM=0D0
28375 ELSEIF(EPS.LT.1D0) THEN
28376 IF(IAUX.EQ.1) WRE=2D0*SQRT(1D0-EPS)*ACOSH(SQRT(1D0/EPS))
28377 IF(IAUX.EQ.2) WRE=4D0*(ACOSH(SQRT(1D0/EPS)))**2-PARU(1)**2
28378 IF(IAUX.EQ.1) WIM=-PARU(1)*SQRT(1D0-EPS)
28379 IF(IAUX.EQ.2) WIM=-4D0*PARU(1)*ACOSH(SQRT(1D0/EPS))
28380 ELSE
28381 IF(IAUX.EQ.1) WRE=2D0*SQRT(EPS-1D0)*ASIN(SQRT(1D0/EPS))
28382 IF(IAUX.EQ.2) WRE=-4D0*(ASIN(SQRT(1D0/EPS)))**2
28383 WIM=0D0
28384 ENDIF
28385
28386 RETURN
28387 END
28388
28389
28390
28391
28392
28393
28394
28395
28396 SUBROUTINE PYI3AU(EPS,RAT,Y3RE,Y3IM)
28397
28398
28399 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
28400 IMPLICIT INTEGER(I-N)
28401 INTEGER PYK,PYCHGE,PYCOMP
28402
28403 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
28404 SAVE /PYDAT1/
28405
28406 BE=0.5D0*(1D0+SQRT(1D0+RAT*EPS))
28407 IF(EPS.LT.1D0) GA=0.5D0*(1D0+SQRT(1D0-EPS))
28408
28409 IF(EPS.LT.0D0) THEN
28410 IF(ABS(EPS).LT.1D-4.AND.ABS(RAT*EPS).LT.1D-4) THEN
28411 F3RE=PYSPEN(-0.25D0*EPS/(1D0+0.25D0*(RAT-1D0)*EPS),0D0,1)-
28412 & PYSPEN((1D0-0.25D0*EPS)/(1D0+0.25D0*(RAT-1D0)*EPS),0D0,1)+
28413 & PYSPEN(0.25D0*(RAT+1D0)*EPS/(1D0+0.25D0*RAT*EPS),0D0,1)-
28414 & PYSPEN((RAT+1D0)/RAT,0D0,1)+0.5D0*(LOG(1D0+0.25D0*RAT*EPS)**2-
28415 & LOG(0.25D0*RAT*EPS)**2)+LOG(1D0-0.25D0*EPS)*
28416 & LOG((1D0+0.25D0*(RAT-1D0)*EPS)/(1D0+0.25D0*RAT*EPS))+
28417 & LOG(-0.25D0*EPS)*LOG(0.25D0*RAT*EPS/(1D0+0.25D0*(RAT-1D0)*
28418 & EPS))
28419 ELSEIF(ABS(EPS).LT.1D-4.AND.ABS(RAT*EPS).GE.1D-4) THEN
28420 F3RE=PYSPEN(-0.25D0*EPS/(BE-0.25D0*EPS),0D0,1)-
28421 & PYSPEN((1D0-0.25D0*EPS)/(BE-0.25D0*EPS),0D0,1)+
28422 & PYSPEN((BE-1D0+0.25D0*EPS)/BE,0D0,1)-
28423 & PYSPEN((BE-1D0+0.25D0*EPS)/(BE-1D0),0D0,1)+
28424 & 0.5D0*(LOG(BE)**2-LOG(BE-1D0)**2)+
28425 & LOG(1D0-0.25D0*EPS)*LOG((BE-0.25D0*EPS)/BE)+
28426 & LOG(-0.25D0*EPS)*LOG((BE-1D0)/(BE-0.25D0*EPS))
28427 ELSEIF(ABS(EPS).GE.1D-4.AND.ABS(RAT*EPS).LT.1D-4) THEN
28428 F3RE=PYSPEN((GA-1D0)/(GA+0.25D0*RAT*EPS),0D0,1)-
28429 & PYSPEN(GA/(GA+0.25D0*RAT*EPS),0D0,1)+
28430 & PYSPEN((1D0+0.25D0*RAT*EPS-GA)/(1D0+0.25D0*RAT*EPS),0D0,1)-
28431 & PYSPEN((1D0+0.25D0*RAT*EPS-GA)/(0.25D0*RAT*EPS),0D0,1)+
28432 & 0.5D0*(LOG(1D0+0.25D0*RAT*EPS)**2-LOG(0.25D0*RAT*EPS)**2)+
28433 & LOG(GA)*LOG((GA+0.25D0*RAT*EPS)/(1D0+0.25D0*RAT*EPS))+
28434 & LOG(GA-1D0)*LOG(0.25D0*RAT*EPS/(GA+0.25D0*RAT*EPS))
28435 ELSE
28436 F3RE=PYSPEN((GA-1D0)/(GA+BE-1D0),0D0,1)-
28437 & PYSPEN(GA/(GA+BE-1D0),0D0,1)+PYSPEN((BE-GA)/BE,0D0,1)-
28438 & PYSPEN((BE-GA)/(BE-1D0),0D0,1)+0.5D0*(LOG(BE)**2-
28439 & LOG(BE-1D0)**2)+LOG(GA)*LOG((GA+BE-1D0)/BE)+
28440 & LOG(GA-1D0)*LOG((BE-1D0)/(GA+BE-1D0))
28441 ENDIF
28442 F3IM=0D0
28443 ELSEIF(EPS.LT.1D0) THEN
28444 IF(ABS(EPS).LT.1D-4.AND.ABS(RAT*EPS).LT.1D-4) THEN
28445 F3RE=PYSPEN(-0.25D0*EPS/(1D0+0.25D0*(RAT-1D0)*EPS),0D0,1)-
28446 & PYSPEN((1D0-0.25D0*EPS)/(1D0+0.25D0*(RAT-1D0)*EPS),0D0,1)+
28447 & PYSPEN((1D0-0.25D0*EPS)/(-0.25D0*(RAT+1D0)*EPS),0D0,1)-
28448 & PYSPEN(1D0/(RAT+1D0),0D0,1)+LOG((1D0-0.25D0*EPS)/
28449 & (0.25D0*EPS))*LOG((1D0+0.25D0*(RAT-1D0)*EPS)/
28450 & (0.25D0*(RAT+1D0)*EPS))
28451 F3IM=-PARU(1)*LOG((1D0+0.25D0*(RAT-1D0)*EPS)/
28452 & (0.25D0*(RAT+1D0)*EPS))
28453 ELSEIF(ABS(EPS).LT.1D-4.AND.ABS(RAT*EPS).GE.1D-4) THEN
28454 F3RE=PYSPEN(-0.25D0*EPS/(BE-0.25D0*EPS),0D0,1)-
28455 & PYSPEN((1D0-0.25D0*EPS)/(BE-0.25D0*EPS),0D0,1)+
28456 & PYSPEN((1D0-0.25D0*EPS)/(1D0-0.25D0*EPS-BE),0D0,1)-
28457 & PYSPEN(-0.25D0*EPS/(1D0-0.25D0*EPS-BE),0D0,1)+
28458 & LOG((1D0-0.25D0*EPS)/(0.25D0*EPS))*
28459 & LOG((BE-0.25D0*EPS)/(BE-1D0+0.25D0*EPS))
28460 F3IM=-PARU(1)*LOG((BE-0.25D0*EPS)/(BE-1D0+0.25D0*EPS))
28461 ELSEIF(ABS(EPS).GE.1D-4.AND.ABS(RAT*EPS).LT.1D-4) THEN
28462 F3RE=PYSPEN((GA-1D0)/(GA+0.25D0*RAT*EPS),0D0,1)-
28463 & PYSPEN(GA/(GA+0.25D0*RAT*EPS),0D0,1)+
28464 & PYSPEN(GA/(GA-1D0-0.25D0*RAT*EPS),0D0,1)-
28465 & PYSPEN((GA-1D0)/(GA-1D0-0.25D0*RAT*EPS),0D0,1)+
28466 & LOG(GA/(1D0-GA))*LOG((GA+0.25D0*RAT*EPS)/
28467 & (1D0+0.25D0*RAT*EPS-GA))
28468 F3IM=-PARU(1)*LOG((GA+0.25D0*RAT*EPS)/
28469 & (1D0+0.25D0*RAT*EPS-GA))
28470 ELSE
28471 F3RE=PYSPEN((GA-1D0)/(GA+BE-1D0),0D0,1)-
28472 & PYSPEN(GA/(GA+BE-1D0),0D0,1)+PYSPEN(GA/(GA-BE),0D0,1)-
28473 & PYSPEN((GA-1D0)/(GA-BE),0D0,1)+LOG(GA/(1D0-GA))*
28474 & LOG((GA+BE-1D0)/(BE-GA))
28475 F3IM=-PARU(1)*LOG((GA+BE-1D0)/(BE-GA))
28476 ENDIF
28477 ELSE
28478 RSQ=EPS/(EPS-1D0+(2D0*BE-1D0)**2)
28479 RCTHE=RSQ*(1D0-2D0*BE/EPS)
28480 RSTHE=SQRT(MAX(0D0,RSQ-RCTHE**2))
28481 RCPHI=RSQ*(1D0+2D0*(BE-1D0)/EPS)
28482 RSPHI=SQRT(MAX(0D0,RSQ-RCPHI**2))
28483 R=SQRT(RSQ)
28484 THE=ACOS(MAX(-0.999999D0,MIN(0.999999D0,RCTHE/R)))
28485 PHI=ACOS(MAX(-0.999999D0,MIN(0.999999D0,RCPHI/R)))
28486 F3RE=PYSPEN(RCTHE,RSTHE,1)+PYSPEN(RCTHE,-RSTHE,1)-
28487 & PYSPEN(RCPHI,RSPHI,1)-PYSPEN(RCPHI,-RSPHI,1)+
28488 & (PHI-THE)*(PHI+THE-PARU(1))
28489 F3IM=PYSPEN(RCTHE,RSTHE,2)+PYSPEN(RCTHE,-RSTHE,2)-
28490 & PYSPEN(RCPHI,RSPHI,2)-PYSPEN(RCPHI,-RSPHI,2)
28491 ENDIF
28492
28493 Y3RE=2D0/(2D0*BE-1D0)*F3RE
28494 Y3IM=2D0/(2D0*BE-1D0)*F3IM
28495
28496 RETURN
28497 END
28498
28499
28500
28501
28502
28503
28504
28505 FUNCTION PYSPEN(XREIN,XIMIN,IREIM)
28506
28507
28508 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
28509 IMPLICIT INTEGER(I-N)
28510 INTEGER PYK,PYCHGE,PYCOMP
28511
28512 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
28513 SAVE /PYDAT1/
28514
28515 DIMENSION B(0:14)
28516 DATA B/
28517 &1.000000D+00, -5.000000D-01, 1.666667D-01,
28518 &0.000000D+00, -3.333333D-02, 0.000000D+00,
28519 &2.380952D-02, 0.000000D+00, -3.333333D-02,
28520 &0.000000D+00, 7.575757D-02, 0.000000D+00,
28521 &-2.531135D-01, 0.000000D+00, 1.166667D+00/
28522
28523 XRE=XREIN
28524 XIM=XIMIN
28525 IF(ABS(1D0-XRE).LT.1D-6.AND.ABS(XIM).LT.1D-6) THEN
28526 IF(IREIM.EQ.1) PYSPEN=PARU(1)**2/6D0
28527 IF(IREIM.EQ.2) PYSPEN=0D0
28528 RETURN
28529 ENDIF
28530
28531 XMOD=SQRT(XRE**2+XIM**2)
28532 IF(XMOD.LT.1D-6) THEN
28533 IF(IREIM.EQ.1) PYSPEN=0D0
28534 IF(IREIM.EQ.2) PYSPEN=0D0
28535 RETURN
28536 ENDIF
28537
28538 XARG=SIGN(ACOS(XRE/XMOD),XIM)
28539 SP0RE=0D0
28540 SP0IM=0D0
28541 SGN=1D0
28542 IF(XMOD.GT.1D0) THEN
28543 ALGXRE=LOG(XMOD)
28544 ALGXIM=XARG-SIGN(PARU(1),XARG)
28545 SP0RE=-PARU(1)**2/6D0-(ALGXRE**2-ALGXIM**2)/2D0
28546 SP0IM=-ALGXRE*ALGXIM
28547 SGN=-1D0
28548 XMOD=1D0/XMOD
28549 XARG=-XARG
28550 XRE=XMOD*COS(XARG)
28551 XIM=XMOD*SIN(XARG)
28552 ENDIF
28553 IF(XRE.GT.0.5D0) THEN
28554 ALGXRE=LOG(XMOD)
28555 ALGXIM=XARG
28556 XRE=1D0-XRE
28557 XIM=-XIM
28558 XMOD=SQRT(XRE**2+XIM**2)
28559 XARG=SIGN(ACOS(XRE/XMOD),XIM)
28560 ALGYRE=LOG(XMOD)
28561 ALGYIM=XARG
28562 SP0RE=SP0RE+SGN*(PARU(1)**2/6D0-(ALGXRE*ALGYRE-ALGXIM*ALGYIM))
28563 SP0IM=SP0IM-SGN*(ALGXRE*ALGYIM+ALGXIM*ALGYRE)
28564 SGN=-SGN
28565 ENDIF
28566
28567 XRE=1D0-XRE
28568 XIM=-XIM
28569 XMOD=SQRT(XRE**2+XIM**2)
28570 XARG=SIGN(ACOS(XRE/XMOD),XIM)
28571 ZRE=-LOG(XMOD)
28572 ZIM=-XARG
28573
28574 SPRE=0D0
28575 SPIM=0D0
28576 SAVERE=1D0
28577 SAVEIM=0D0
28578 DO 100 I=0,14
28579 IF(MAX(ABS(SAVERE),ABS(SAVEIM)).LT.1D-30) GOTO 110
28580 TERMRE=(SAVERE*ZRE-SAVEIM*ZIM)/DBLE(I+1)
28581 TERMIM=(SAVERE*ZIM+SAVEIM*ZRE)/DBLE(I+1)
28582 SAVERE=TERMRE
28583 SAVEIM=TERMIM
28584 SPRE=SPRE+B(I)*TERMRE
28585 SPIM=SPIM+B(I)*TERMIM
28586 100 CONTINUE
28587
28588 110 IF(IREIM.EQ.1) PYSPEN=SP0RE+SGN*SPRE
28589 IF(IREIM.EQ.2) PYSPEN=SP0IM+SGN*SPIM
28590
28591 RETURN
28592 END
28593
28594
28595
28596
28597
28598
28599
28600
28601
28602 SUBROUTINE PYQQBH(WTQQBH)
28603
28604
28605 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
28606 IMPLICIT INTEGER(I-N)
28607 INTEGER PYK,PYCHGE,PYCOMP
28608
28609 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
28610 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
28611 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
28612 COMMON/PYINT1/MINT(400),VINT(400)
28613 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
28614 SAVE /PYDAT1/,/PYDAT2/,/PYPARS/,/PYINT1/,/PYINT2/
28615
28616 DIMENSION PP(15,4),CLR(8,8),FM(10,10),RM(8,8),DX(8)
28617 DOT(I,J)=PP(I,4)*PP(J,4)-PP(I,1)*PP(J,1)-PP(I,2)*PP(J,2)-
28618 &PP(I,3)*PP(J,3)
28619
28620
28621 WTQQBH=0D0
28622 ISUB=MINT(1)
28623 SHPR=SQRT(VINT(26))*VINT(1)
28624 PQ=PMAS(PYCOMP(KFPR(ISUB,2)),1)
28625 PH=SQRT(VINT(21))*VINT(1)
28626 SPQ=PQ**2
28627 SPH=PH**2
28628
28629
28630 DO 100 I=1,2
28631 PT=SQRT(MAX(0D0,VINT(197+5*I)))
28632 PP(I,1)=PT*COS(VINT(198+5*I))
28633 PP(I,2)=PT*SIN(VINT(198+5*I))
28634 100 CONTINUE
28635 PP(3,1)=-PP(1,1)-PP(2,1)
28636 PP(3,2)=-PP(1,2)-PP(2,2)
28637 PMS1=SPQ+PP(1,1)**2+PP(1,2)**2
28638 PMS2=SPQ+PP(2,1)**2+PP(2,2)**2
28639 PMS3=SPH+PP(3,1)**2+PP(3,2)**2
28640 PMT3=SQRT(PMS3)
28641 PP(3,3)=PMT3*SINH(VINT(211))
28642 PP(3,4)=PMT3*COSH(VINT(211))
28643 PMS12=(SHPR-PP(3,4))**2-PP(3,3)**2
28644 PP(1,3)=(-PP(3,3)*(PMS12+PMS1-PMS2)+
28645 &VINT(213)*(SHPR-PP(3,4))*VINT(220))/(2D0*PMS12)
28646 PP(2,3)=-PP(1,3)-PP(3,3)
28647 PP(1,4)=SQRT(PMS1+PP(1,3)**2)
28648 PP(2,4)=SQRT(PMS2+PP(2,3)**2)
28649
28650
28651 DO 110 I=4,5
28652 PP(I,1)=0D0
28653 PP(I,2)=0D0
28654 PP(I,3)=-0.5D0*SHPR*(-1)**I
28655 PP(I,4)=-0.5D0*SHPR
28656 110 CONTINUE
28657 DO 120 J=1,4
28658 PP(6,J)=PP(1,J)+PP(2,J)
28659 PP(7,J)=PP(1,J)+PP(3,J)
28660 PP(8,J)=PP(1,J)+PP(4,J)
28661 PP(9,J)=PP(1,J)+PP(5,J)
28662 PP(10,J)=-PP(2,J)-PP(3,J)
28663 PP(11,J)=-PP(2,J)-PP(4,J)
28664 PP(12,J)=-PP(2,J)-PP(5,J)
28665 PP(13,J)=-PP(4,J)-PP(5,J)
28666 120 CONTINUE
28667
28668
28669 X1=DOT(1,2)
28670 X2=DOT(1,3)
28671 X3=DOT(1,4)
28672 X4=DOT(1,5)
28673 X5=DOT(2,3)
28674 X6=DOT(2,4)
28675 X7=DOT(2,5)
28676 X8=DOT(3,4)
28677 X9=DOT(3,5)
28678 X10=DOT(4,5)
28679
28680
28681 SS1=DOT(7,7)-SPQ
28682 SS2=DOT(8,8)-SPQ
28683 SS3=DOT(9,9)-SPQ
28684 SS4=DOT(10,10)-SPQ
28685 SS5=DOT(11,11)-SPQ
28686 SS6=DOT(12,12)-SPQ
28687 SS7=DOT(13,13)
28688 DX(1)=SS1*SS6
28689 DX(2)=SS2*SS6
28690 DX(3)=SS2*SS4
28691 DX(4)=SS1*SS5
28692 DX(5)=SS3*SS5
28693 DX(6)=SS3*SS4
28694 DX(7)=SS7*SS1
28695 DX(8)=SS7*SS4
28696
28697
28698 IF(ISUB.EQ.121.OR.ISUB.EQ.181.OR.ISUB.EQ.186) THEN
28699 DO 140 I=1,3
28700 DO 130 J=1,3
28701 CLR(I,J)=16D0/3D0
28702 CLR(I+3,J+3)=16D0/3D0
28703 CLR(I,J+3)=-2D0/3D0
28704 CLR(I+3,J)=-2D0/3D0
28705 130 CONTINUE
28706 140 CONTINUE
28707 DO 160 L=1,2
28708 DO 150 I=1,3
28709 CLR(I,6+L)=-6D0
28710 CLR(I+3,6+L)=6D0
28711 CLR(6+L,I)=-6D0
28712 CLR(6+L,I+3)=6D0
28713 150 CONTINUE
28714 160 CONTINUE
28715 DO 180 K1=1,2
28716 DO 170 K2=1,2
28717 CLR(6+K1,6+K2)=12D0
28718 170 CONTINUE
28719 180 CONTINUE
28720
28721
28722 FM(1,1)=64*PQ**6+16*PQ**4*PH**2+32*PQ**4*(X1+2*X2+X4+X9+2*
28723 & X7+X5)+8*PQ**2*PH**2*(-X1-X4+2*X7)+16*PQ**2*(X2*X9+4*X2*
28724 & X7+X2*X5-2*X4*X7-2*X9*X7)+8*PH**2*X4*X7-16*X2*X9*X7
28725 FM(1,2)=16*PQ**6+8*PQ**4*(-2*X1+X2-2*X3-2*X4-4*X10+X9-X8+2
28726 & *X7-4*X6+X5)+8*PQ**2*(-2*X1*X2-2*X2*X4-2*X2*X10+X2*X7-2*
28727 & X2*X6-2*X3*X7+2*X4*X7+4*X10*X7-X9*X7-X8*X7)+16*X2*X7*(X4+
28728 & X10)
28729 FM(1,3)=16*PQ**6-4*PQ**4*PH**2+8*PQ**4*(-2*X1+2*X2-2*X3-4*
28730 & X4-8*X10+X9+X8-2*X7-4*X6+2*X5)-(4*PQ**2*PH**2)*(X1+X4+X10
28731 & +X6)+8*PQ**2*(-2*X1*X2-2*X1*X10+X1*X9+X1*X8-2*X1*X5+X2**2
28732 & -4*X2*X4-5*X2*X10+X2*X8-X2*X7-3*X2*X6+X2*X5+X3*X9+2*X3*X7
28733 & -X3*X5+X4*X8+2*X4*X6-3*X4*X5-5*X10*X5+X9*X8+X9*X6+X9*X5+
28734 & X8*X7-4*X6*X5+X5**2)-(16*X2*X5)*(X1+X4+X10+X6)
28735 FM(1,4)=16*PQ**6+4*PQ**4*PH**2+16*PQ**4*(-X1+X2-X3-X4+X10-
28736 & X9-X8+2*X7+2*X6-X5)+4*PQ**2*PH**2*(X1+X3+X4+X10+2*X7+2*X6
28737 & )+8*PQ**2*(4*X1*X10+4*X1*X7+4*X1*X6+2*X2*X10-X2*X9-X2*X8+
28738 & 4*X2*X7+4*X2*X6-X2*X5+4*X10*X5+4*X7*X5+4*X6*X5)-(8*PH**2*
28739 & X1)*(X10+X7+X6)+16*X2*X5*(X10+X7+X6)
28740 FM(1,5)=8*PQ**4*(-2*X1-2*X4+X10-X9)+4*PQ**2*(4*X1**2-2*X1*
28741 & X2+8*X1*X3+6*X1*X10-2*X1*X9+4*X1*X8+4*X1*X7+4*X1*X6+2*X1*
28742 & X5+X2*X10+4*X3*X4-X3*X9+2*X3*X7+3*X4*X8-2*X4*X6+2*X4*X5-4
28743 & *X10*X7+3*X10*X5-3*X9*X6+3*X8*X7-4*X7**2+4*X7*X5)+8*(X1**
28744 & 2*X9-X1**2*X8-X1*X2*X7+X1*X2*X6+X1*X3*X9+X1*X3*X5-X1*X4*
28745 & X8-X1*X4*X5+X1*X10*X9+X1*X9*X7+X1*X9*X6-X1*X8*X7-X2*X3*X7
28746 & +X2*X4*X6-X2*X10*X7-X2*X7**2+X3*X7*X5-X4*X10*X5-X4*X7*X5-
28747 & X4*X6*X5)
28748 FM(1,6)=16*PQ**4*(-4*X1-X4+X9-X7)+4*PQ**2*PH**2*(-2*X1-X4-
28749 & X7)+16*PQ**2*(-2*X1**2-3*X1*X2-2*X1*X4-3*X1*X9-2*X1*X7-3*
28750 & X1*X5-2*X2*X4-2*X7*X5)-8*PH**2*X4*X7+8*(-X1*X2*X9-2*X1*X2
28751 & *X5-X1*X9**2-X1*X9*X5+X2**2*X7-X2*X4*X5+X2*X9*X7-X2*X7*X5
28752 & +X4*X9*X5+X4*X5**2)
28753 FM(1,7)=8*PQ**4*(2*X3+X4+3*X10+X9+2*X8+3*X7+6*X6)+2*PQ**2*
28754 & PH**2*(-2*X3-X4+3*X10+3*X7+6*X6)+4*PQ**2*(4*X1*X10+4*X1*
28755 & X7+8*X1*X6+6*X2*X10+X2*X9+2*X2*X8+6*X2*X7+12*X2*X6-8*X3*
28756 & X7+4*X4*X7+4*X4*X6+4*X10*X5+4*X9*X7+4*X9*X6-8*X8*X7+4*X7*
28757 & X5+8*X6*X5)+4*PH**2*(-X1*X10-X1*X7-2*X1*X6+2*X3*X7-X4*X7-
28758 & X4*X6)+8*X2*(X10*X5+X9*X7+X9*X6-2*X8*X7+X7*X5+2*X6*X5)
28759 FM(1,8)=8*PQ**4*(2*X3+X4+3*X10+2*X9+X8+3*X7+6*X6)+2*PQ**2*
28760 & PH**2*(-2*X3-X4+2*X10+X7+2*X6)+4*PQ**2*(4*X1*X10-2*X1*X9+
28761 & 2*X1*X8+4*X1*X7+8*X1*X6+5*X2*X10+2*X2*X9+X2*X8+4*X2*X7+8*
28762 & X2*X6-X3*X9-8*X3*X7+2*X3*X5+2*X4*X9-X4*X8+4*X4*X7+4*X4*X6
28763 & +4*X4*X5+5*X10*X5+X9**2-X9*X8+2*X9*X7+5*X9*X6+X9*X5-7*X8*
28764 & X7+2*X8*X5+2*X7*X5+10*X6*X5)+2*PH**2*(-X1*X10+X3*X7-2*X4*
28765 & X7+X4*X6)+4*(-X1*X9**2+X1*X9*X8-2*X1*X9*X5-X1*X8*X5+2*X2*
28766 & X10*X5+X2*X9*X7+X2*X9*X6-2*X2*X8*X7+3*X2*X6*X5+X3*X9*X5+
28767 & X3*X5**2+X4*X9*X5-2*X4*X8*X5+2*X4*X5**2)
28768 FM(2,2)=16*PQ**6+16*PQ**4*(-X1+X3-X4-X10+X7-X6)+16*PQ**2*(
28769 & X3*X10+X3*X7+X3*X6+X4*X7+X10*X7)-16*X3*X10*X7
28770 FM(2,3)=16*PQ**6+8*PQ**4*(-2*X1+X2+2*X3-4*X4-4*X10-X9+X8-2
28771 & *X7-2*X6+X5)+8*PQ**2*(-2*X1*X5+4*X3*X10-X3*X9-X3*X8-2*X3*
28772 & X7+2*X3*X6+X3*X5-2*X4*X5-2*X10*X5-2*X6*X5)+16*X3*X5*(X10+
28773 & X6)
28774 FM(2,4)=8*PQ**4*(-2*X1-2*X3+X10-X8)+4*PQ**2*(4*X1**2-2*X1*
28775 & X2+8*X1*X4+6*X1*X10+4*X1*X9-2*X1*X8+4*X1*X7+4*X1*X6+2*X1*
28776 & X5+X2*X10+4*X3*X4+3*X3*X9-2*X3*X7+2*X3*X5-X4*X8+2*X4*X6-4
28777 & *X10*X6+3*X10*X5+3*X9*X6-3*X8*X7-4*X6**2+4*X6*X5)+8*(-X1
28778 & **2*X9+X1**2*X8+X1*X2*X7-X1*X2*X6-X1*X3*X9-X1*X3*X5+X1*X4
28779 & *X8+X1*X4*X5+X1*X10*X8-X1*X9*X6+X1*X8*X7+X1*X8*X6+X2*X3*
28780 & X7-X2*X4*X6-X2*X10*X6-X2*X6**2-X3*X10*X5-X3*X7*X5-X3*X6*
28781 & X5+X4*X6*X5)
28782 FM(2,5)=16*PQ**4*X10+8*PQ**2*(2*X1**2+2*X1*X3+2*X1*X4+2*X1
28783 & *X10+2*X1*X7+2*X1*X6+X3*X7+X4*X6)+8*(-2*X1**3-2*X1**2*X3-
28784 & 2*X1**2*X4-2*X1**2*X10-2*X1**2*X7-2*X1**2*X6-2*X1*X3*X4-
28785 & X1*X3*X10-2*X1*X3*X6-X1*X4*X10-2*X1*X4*X7-X1*X10**2-X1*
28786 & X10*X7-X1*X10*X6-2*X1*X7*X6+X3**2*X7-X3*X4*X7-X3*X4*X6+X3
28787 & *X10*X7+X3*X7**2-X3*X7*X6+X4**2*X6+X4*X10*X6-X4*X7*X6+X4*
28788 & X6**2)
28789 FM(2,6)=8*PQ**4*(-2*X1+X10-X9-2*X7)+4*PQ**2*(4*X1**2+2*X1*
28790 & X2+4*X1*X3+4*X1*X4+6*X1*X10-2*X1*X9+4*X1*X8+8*X1*X6-2*X1*
28791 & X5+4*X2*X4+3*X2*X10+2*X2*X7-3*X3*X9-2*X3*X7-4*X4**2-4*X4*
28792 & X10+3*X4*X8+2*X4*X6+X10*X5-X9*X6+3*X8*X7+4*X7*X6)+8*(X1**
28793 & 2*X9-X1**2*X8-X1*X2*X7+X1*X2*X6+X1*X3*X9+X1*X3*X5+X1*X4*
28794 & X9-X1*X4*X8-X1*X4*X5+X1*X10*X9+X1*X9*X6-X1*X8*X7-X2*X3*X7
28795 & -X2*X4*X7+X2*X4*X6-X2*X10*X7+X3*X7*X5-X4**2*X5-X4*X10*X5-
28796 & X4*X6*X5)
28797 FM(2,7)=8*PQ**4*(X3+2*X4+3*X10+X7+2*X6)+4*PQ**2*(-4*X1*X3-
28798 & 2*X1*X4-2*X1*X10+X1*X9-X1*X8-4*X1*X7-2*X1*X6+X2*X3+2*X2*
28799 & X4+3*X2*X10+X2*X7+2*X2*X6-6*X3*X4-6*X3*X10-2*X3*X9-2*X3*
28800 & X7-4*X3*X6-X3*X5-6*X4**2-6*X4*X10-3*X4*X9-X4*X8-4*X4*X7-2
28801 & *X4*X6-2*X4*X5-3*X10*X9-3*X10*X8-6*X10*X7-6*X10*X6+X10*X5
28802 & +X9*X7-2*X8*X7-2*X8*X6-6*X7*X6+X7*X5-6*X6**2+2*X6*X5)+4*(
28803 & -X1**2*X9+X1**2*X8-2*X1*X2*X10-3*X1*X2*X7-3*X1*X2*X6+X1*
28804 & X3*X9-X1*X3*X5+X1*X4*X9+X1*X4*X8+X1*X4*X5+X1*X10*X9+X1*
28805 & X10*X8-X1*X9*X6+X1*X8*X6+X2*X3*X7-3*X2*X4*X7-X2*X4*X6-3*
28806 & X2*X10*X7-3*X2*X10*X6-3*X2*X7*X6-3*X2*X6**2-2*X3*X4*X5-X3
28807 & *X10*X5-X3*X6*X5-X4**2*X5-X4*X10*X5+X4*X6*X5)
28808 FM(2,8)=8*PQ**4*(X3+2*X4+3*X10+X7+2*X6)+4*PQ**2*(-4*X1*X3-
28809 & 2*X1*X4-2*X1*X10-X1*X9+X1*X8-4*X1*X7-2*X1*X6+X2*X3+2*X2*
28810 & X4+X2*X10-X2*X7-2*X2*X6-6*X3*X4-6*X3*X10-2*X3*X9+X3*X8-2*
28811 & X3*X7-4*X3*X6+X3*X5-6*X4**2-6*X4*X10-2*X4*X9-4*X4*X7-2*X4
28812 & *X6+2*X4*X5-3*X10*X9-3*X10*X8-6*X10*X7-6*X10*X6+3*X10*X5-
28813 & X9*X6-2*X8*X7-3*X8*X6-6*X7*X6+X7*X5-6*X6**2+2*X6*X5)+4*(
28814 & X1**2*X9-X1**2*X8-X1*X2*X7+X1*X2*X6-3*X1*X3*X5+X1*X4*X9-
28815 & X1*X4*X8-3*X1*X4*X5+X1*X10*X9+X1*X10*X8-2*X1*X10*X5+X1*X9
28816 & *X6+X1*X8*X7+X1*X8*X6-X2*X4*X7+X2*X4*X6-X2*X10*X7-X2*X10*
28817 & X6-2*X2*X7*X6-X2*X6**2-3*X3*X4*X5-3*X3*X10*X5+X3*X7*X5-3*
28818 & X3*X6*X5-3*X4**2*X5-3*X4*X10*X5-X4*X6*X5)
28819 FM(3,3)=64*PQ**6+16*PQ**4*PH**2+32*PQ**4*(X1+X2+2*X3+X8+X6
28820 & +2*X5)+8*PQ**2*PH**2*(-X1+2*X3-X6)+16*PQ**2*(X2*X5-2*X3*
28821 & X8-2*X3*X6+4*X3*X5+X8*X5)+8*PH**2*X3*X6-16*X3*X8*X5
28822 FM(3,4)=16*PQ**4*(-4*X1-X3+X8-X6)+4*PQ**2*PH**2*(-2*X1-X3-
28823 & X6)+16*PQ**2*(-2*X1**2-3*X1*X2-2*X1*X3-3*X1*X8-2*X1*X6-3*
28824 & X1*X5-2*X2*X3-2*X6*X5)-8*PH**2*X3*X6+8*(-X1*X2*X8-2*X1*X2
28825 & *X5-X1*X8**2-X1*X8*X5+X2**2*X6-X2*X3*X5+X2*X8*X6-X2*X6*X5
28826 & +X3*X8*X5+X3*X5**2)
28827 FM(3,5)=8*PQ**4*(-2*X1+X10-X8-2*X6)+4*PQ**2*(4*X1**2+2*X1*
28828 & X2+4*X1*X3+4*X1*X4+6*X1*X10+4*X1*X9-2*X1*X8+8*X1*X7-2*X1*
28829 & X5+4*X2*X3+3*X2*X10+2*X2*X6-4*X3**2-4*X3*X10+3*X3*X9+2*X3
28830 & *X7-3*X4*X8-2*X4*X6+X10*X5+3*X9*X6-X8*X7+4*X7*X6)+8*(-X1
28831 & **2*X9+X1**2*X8+X1*X2*X7-X1*X2*X6-X1*X3*X9+X1*X3*X8-X1*X3
28832 & *X5+X1*X4*X8+X1*X4*X5+X1*X10*X8-X1*X9*X6+X1*X8*X7+X2*X3*
28833 & X7-X2*X3*X6-X2*X4*X6-X2*X10*X6-X3**2*X5-X3*X10*X5-X3*X7*
28834 & X5+X4*X6*X5)
28835 FM(3,6)=16*PQ**6+4*PQ**4*PH**2+16*PQ**4*(-X1-X2+2*X3+2*X4+
28836 & X10-X9-X8-X7-X6+X5)+4*PQ**2*PH**2*(X1+2*X3+2*X4+X10+X7+X6
28837 & )+8*PQ**2*(4*X1*X3+4*X1*X4+4*X1*X10+4*X2*X3+4*X2*X4+4*X2*
28838 & X10-X2*X5+4*X3*X5+4*X4*X5+2*X10*X5-X9*X5-X8*X5)-(8*PH**2*
28839 & X1)*(X3+X4+X10)+16*X2*X5*(X3+X4+X10)
28840 FM(3,7)=8*PQ**4*(3*X3+6*X4+3*X10+X9+2*X8+2*X7+X6)+2*PQ**2*
28841 & PH**2*(X3+2*X4+2*X10-2*X7-X6)+4*PQ**2*(4*X1*X3+8*X1*X4+4*
28842 & X1*X10+2*X1*X9-2*X1*X8+2*X2*X3+10*X2*X4+5*X2*X10+2*X2*X9+
28843 & X2*X8+2*X2*X7+4*X2*X6-7*X3*X9+2*X3*X8-8*X3*X7+4*X3*X6+4*
28844 & X3*X5+5*X4*X8+4*X4*X6+8*X4*X5+5*X10*X5-X9*X8-X9*X6+X9*X5+
28845 & X8**2-X8*X7+2*X8*X6+2*X8*X5)+2*PH**2*(-X1*X10+X3*X7-2*X3*
28846 & X6+X4*X6)+4*(-X1*X2*X9-2*X1*X2*X8+X1*X9*X8-X1*X8**2+X2**2
28847 & *X7+2*X2**2*X6+3*X2*X4*X5+2*X2*X10*X5-2*X2*X9*X6+X2*X8*X7
28848 & +X2*X8*X6-2*X3*X9*X5+X3*X8*X5+X4*X8*X5)
28849 FM(3,8)=8*PQ**4*(3*X3+6*X4+3*X10+2*X9+X8+2*X7+X6)+2*PQ**2*
28850 & PH**2*(3*X3+6*X4+3*X10-2*X7-X6)+4*PQ**2*(4*X1*X3+8*X1*X4+
28851 & 4*X1*X10+4*X2*X3+8*X2*X4+4*X2*X10-8*X3*X9+4*X3*X8-8*X3*X7
28852 & +4*X3*X6+6*X3*X5+4*X4*X8+4*X4*X6+12*X4*X5+6*X10*X5+2*X9*
28853 & X5+X8*X5)+4*PH**2*(-X1*X3-2*X1*X4-X1*X10+2*X3*X7-X3*X6-X4
28854 & *X6)+8*X5*(X2*X3+2*X2*X4+X2*X10-2*X3*X9+X3*X8+X4*X8)
28855 FM(4,4)=64*PQ**6+16*PQ**4*PH**2+32*PQ**4*(X1+2*X2+X3+X8+2*
28856 & X6+X5)+8*PQ**2*PH**2*(-X1-X3+2*X6)+16*PQ**2*(X2*X8+4*X2*
28857 & X6+X2*X5-2*X3*X6-2*X8*X6)+8*PH**2*X3*X6-16*X2*X8*X6
28858 FM(4,5)=16*PQ**6+8*PQ**4*(-2*X1+X2-2*X3-2*X4-4*X10-X9+X8-4
28859 & *X7+2*X6+X5)+8*PQ**2*(-2*X1*X2-2*X2*X3-2*X2*X10-2*X2*X7+
28860 & X2*X6+2*X3*X6-2*X4*X6+4*X10*X6-X9*X6-X8*X6)+16*X2*X6*(X3+
28861 & X10)
28862 FM(4,6)=16*PQ**6-4*PQ**4*PH**2+8*PQ**4*(-2*X1+2*X2-4*X3-2*
28863 & X4-8*X10+X9+X8-4*X7-2*X6+2*X5)-(4*PQ**2*PH**2)*(X1+X3+X10
28864 & +X7)+8*PQ**2*(-2*X1*X2-2*X1*X10+X1*X9+X1*X8-2*X1*X5+X2**2
28865 & -4*X2*X3-5*X2*X10+X2*X9-3*X2*X7-X2*X6+X2*X5+X3*X9+2*X3*X7
28866 & -3*X3*X5+X4*X8+2*X4*X6-X4*X5-5*X10*X5+X9*X8+X9*X6+X8*X7+
28867 & X8*X5-4*X7*X5+X5**2)-(16*X2*X5)*(X1+X3+X10+X7)
28868 FM(4,7)=8*PQ**4*(-X3-2*X4-3*X10-2*X9-X8-6*X7-3*X6)+2*PQ**2
28869 & *PH**2*(X3+2*X4-3*X10-6*X7-3*X6)+4*PQ**2*(-4*X1*X10-8*X1*
28870 & X7-4*X1*X6-6*X2*X10-2*X2*X9-X2*X8-12*X2*X7-6*X2*X6-4*X3*
28871 & X7-4*X3*X6+8*X4*X6-4*X10*X5+8*X9*X6-4*X8*X7-4*X8*X6-8*X7*
28872 & X5-4*X6*X5)+4*PH**2*(X1*X10+2*X1*X7+X1*X6+X3*X7+X3*X6-2*
28873 & X4*X6)+8*X2*(-X10*X5+2*X9*X6-X8*X7-X8*X6-2*X7*X5-X6*X5)
28874 FM(4,8)=8*PQ**4*(-X3-2*X4-3*X10-X9-2*X8-6*X7-3*X6)+2*PQ**2
28875 & *PH**2*(X3+2*X4-2*X10-2*X7-X6)+4*PQ**2*(-4*X1*X10-2*X1*X9
28876 & +2*X1*X8-8*X1*X7-4*X1*X6-5*X2*X10-X2*X9-2*X2*X8-8*X2*X7-4
28877 & *X2*X6+X3*X9-2*X3*X8-4*X3*X7-4*X3*X6-4*X3*X5+X4*X8+8*X4*
28878 & X6-2*X4*X5-5*X10*X5+X9*X8+7*X9*X6-2*X9*X5-X8**2-5*X8*X7-2
28879 & *X8*X6-X8*X5-10*X7*X5-2*X6*X5)+2*PH**2*(X1*X10-X3*X7+2*X3
28880 & *X6-X4*X6)+4*(-X1*X9*X8+X1*X9*X5+X1*X8**2+2*X1*X8*X5-2*X2
28881 & *X10*X5+2*X2*X9*X6-X2*X8*X7-X2*X8*X6-3*X2*X7*X5+2*X3*X9*
28882 & X5-X3*X8*X5-2*X3*X5**2-X4*X8*X5-X4*X5**2)
28883 FM(5,5)=16*PQ**6+16*PQ**4*(-X1-X3+X4-X10-X7+X6)+16*PQ**2*(
28884 & X3*X6+X4*X10+X4*X7+X4*X6+X10*X6)-16*X4*X10*X6
28885 FM(5,6)=16*PQ**6+8*PQ**4*(-2*X1+X2-4*X3+2*X4-4*X10+X9-X8-2
28886 & *X7-2*X6+X5)+8*PQ**2*(-2*X1*X5-2*X3*X5+4*X4*X10-X4*X9-X4*
28887 & X8+2*X4*X7-2*X4*X6+X4*X5-2*X10*X5-2*X7*X5)+16*X4*X5*(X10+
28888 & X7)
28889 FM(5,7)=8*PQ**4*(-2*X3-X4-3*X10-2*X7-X6)+4*PQ**2*(2*X1*X3+
28890 & 4*X1*X4+2*X1*X10+X1*X9-X1*X8+2*X1*X7+4*X1*X6-2*X2*X3-X2*
28891 & X4-3*X2*X10-2*X2*X7-X2*X6+6*X3**2+6*X3*X4+6*X3*X10+X3*X9+
28892 & 3*X3*X8+2*X3*X7+4*X3*X6+2*X3*X5+6*X4*X10+2*X4*X8+4*X4*X7+
28893 & 2*X4*X6+X4*X5+3*X10*X9+3*X10*X8+6*X10*X7+6*X10*X6-X10*X5+
28894 & 2*X9*X7+2*X9*X6-X8*X6+6*X7**2+6*X7*X6-2*X7*X5-X6*X5)+4*(-
28895 & X1**2*X9+X1**2*X8+2*X1*X2*X10+3*X1*X2*X7+3*X1*X2*X6-X1*X3
28896 & *X9-X1*X3*X8-X1*X3*X5-X1*X4*X8+X1*X4*X5-X1*X10*X9-X1*X10*
28897 & X8-X1*X9*X7+X1*X8*X7+X2*X3*X7+3*X2*X3*X6-X2*X4*X6+3*X2*
28898 & X10*X7+3*X2*X10*X6+3*X2*X7**2+3*X2*X7*X6+X3**2*X5+2*X3*X4
28899 & *X5+X3*X10*X5-X3*X7*X5+X4*X10*X5+X4*X7*X5)
28900 FM(5,8)=8*PQ**4*(-2*X3-X4-3*X10-2*X7-X6)+4*PQ**2*(2*X1*X3+
28901 & 4*X1*X4+2*X1*X10-X1*X9+X1*X8+2*X1*X7+4*X1*X6-2*X2*X3-X2*
28902 & X4-X2*X10+2*X2*X7+X2*X6+6*X3**2+6*X3*X4+6*X3*X10+2*X3*X8+
28903 & 2*X3*X7+4*X3*X6-2*X3*X5+6*X4*X10-X4*X9+2*X4*X8+4*X4*X7+2*
28904 & X4*X6-X4*X5+3*X10*X9+3*X10*X8+6*X10*X7+6*X10*X6-3*X10*X5+
28905 & 3*X9*X7+2*X9*X6+X8*X7+6*X7**2+6*X7*X6-2*X7*X5-X6*X5)+4*(
28906 & X1**2*X9-X1**2*X8-X1*X2*X7+X1*X2*X6+X1*X3*X9-X1*X3*X8+3*
28907 & X1*X3*X5+3*X1*X4*X5-X1*X10*X9-X1*X10*X8+2*X1*X10*X5-X1*X9
28908 & *X7-X1*X9*X6-X1*X8*X7-X2*X3*X7+X2*X3*X6+X2*X10*X7+X2*X10*
28909 & X6+X2*X7**2+2*X2*X7*X6+3*X3**2*X5+3*X3*X4*X5+3*X3*X10*X5+
28910 & X3*X7*X5+3*X4*X10*X5+3*X4*X7*X5-X4*X6*X5)
28911 FM(6,6)=64*PQ**6+16*PQ**4*PH**2+32*PQ**4*(X1+X2+2*X4+X9+X7
28912 & +2*X5)+8*PQ**2*PH**2*(-X1+2*X4-X7)+16*PQ**2*(X2*X5-2*X4*
28913 & X9-2*X4*X7+4*X4*X5+X9*X5)+8*PH**2*X4*X7-16*X4*X9*X5
28914 FM(6,7)=8*PQ**4*(-6*X3-3*X4-3*X10-2*X9-X8-X7-2*X6)+2*PQ**2
28915 & *PH**2*(-2*X3-X4-2*X10+X7+2*X6)+4*PQ**2*(-8*X1*X3-4*X1*X4
28916 & -4*X1*X10+2*X1*X9-2*X1*X8-10*X2*X3-2*X2*X4-5*X2*X10-X2*X9
28917 & -2*X2*X8-4*X2*X7-2*X2*X6-5*X3*X9-4*X3*X7-8*X3*X5-2*X4*X9+
28918 & 7*X4*X8-4*X4*X7+8*X4*X6-4*X4*X5-5*X10*X5-X9**2+X9*X8-2*X9
28919 & *X7+X9*X6-2*X9*X5+X8*X7-X8*X5)+2*PH**2*(X1*X10-X3*X7+2*X4
28920 & *X7-X4*X6)+4*(2*X1*X2*X9+X1*X2*X8+X1*X9**2-X1*X9*X8-2*X2
28921 & **2*X7-X2**2*X6-3*X2*X3*X5-2*X2*X10*X5-X2*X9*X7-X2*X9*X6+
28922 & 2*X2*X8*X7-X3*X9*X5-X4*X9*X5+2*X4*X8*X5)
28923 FM(6,8)=8*PQ**4*(-6*X3-3*X4-3*X10-X9-2*X8-X7-2*X6)+2*PQ**2
28924 & *PH**2*(-6*X3-3*X4-3*X10+X7+2*X6)+4*PQ**2*(-8*X1*X3-4*X1*
28925 & X4-4*X1*X10-8*X2*X3-4*X2*X4-4*X2*X10-4*X3*X9-4*X3*X7-12*
28926 & X3*X5-4*X4*X9+8*X4*X8-4*X4*X7+8*X4*X6-6*X4*X5-6*X10*X5-X9
28927 & *X5-2*X8*X5)+4*PH**2*(2*X1*X3+X1*X4+X1*X10+X3*X7+X4*X7-2*
28928 & X4*X6)+8*X5*(-2*X2*X3-X2*X4-X2*X10-X3*X9-X4*X9+2*X4*X8)
28929 FM(7,7)=72*PQ**4*X10+18*PQ**2*PH**2*X10+8*PQ**2*(X1*X10+9*
28930 & X2*X10+7*X3*X7+2*X3*X6+2*X4*X7+7*X4*X6+X10*X5+2*X9*X7+7*
28931 & X9*X6+7*X8*X7+2*X8*X6)+2*PH**2*(-X1*X10-7*X3*X7-2*X3*X6-2
28932 & *X4*X7-7*X4*X6)+4*X2*(X10*X5+2*X9*X7+7*X9*X6+7*X8*X7+2*X8
28933 & *X6)
28934 FM(7,8)=72*PQ**4*X10+2*PQ**2*PH**2*X10+4*PQ**2*(2*X1*X10+
28935 & 10*X2*X10+7*X3*X9+2*X3*X8+14*X3*X7+4*X3*X6+2*X4*X9+7*X4*
28936 & X8+4*X4*X7+14*X4*X6+10*X10*X5+X9**2+7*X9*X8+2*X9*X7+7*X9*
28937 & X6+X8**2+7*X8*X7+2*X8*X6)+2*PH**2*(7*X1*X10-7*X3*X7-2*X3*
28938 & X6-2*X4*X7-7*X4*X6)+2*(-2*X1*X9**2-14*X1*X9*X8-2*X1*X8**2
28939 & +2*X2*X10*X5+2*X2*X9*X7+7*X2*X9*X6+7*X2*X8*X7+2*X2*X8*X6+
28940 & 7*X3*X9*X5+2*X3*X8*X5+2*X4*X9*X5+7*X4*X8*X5)
28941 FM(8,8)=72*PQ**4*X10+18*PQ**2*PH**2*X10+8*PQ**2*(X1*X10+X2
28942 & *X10+7*X3*X9+2*X3*X8+7*X3*X7+2*X3*X6+2*X4*X9+7*X4*X8+2*X4
28943 & *X7+7*X4*X6+9*X10*X5)+2*PH**2*(-X1*X10-7*X3*X7-2*X3*X6-2*
28944 & X4*X7-7*X4*X6)+4*X5*(X2*X10+7*X3*X9+2*X3*X8+2*X4*X9+7*X4*
28945 & X8)
28946 FM(9,9)=-4*PQ**4*X10-PQ**2*PH**2*X10+4*PQ**2*(-X1*X10-X2*X10+
28947 & X3*X7+X4*X6-X10*X5+X9*X6+X8*X7)+PH**2*(X1*X10-X3*X7-X4*X6
28948 & )+2*X2*(-X10*X5+X9*X6+X8*X7)
28949 FM(9,10)=-4*PQ**4*X10-PQ**2*PH**2*X10+2*PQ**2*(-2*X1*X10-2*X2*
28950 & X10+2*X3*X9+2*X3*X7+2*X4*X6-2*X10*X5+X9*X8+2*X8*X7)+PH**2
28951 & *(X1*X10-X3*X7-X4*X6)+2*(-X1*X9*X8-X2*X10*X5+X2*X8*X7+X3*
28952 & X9*X5)
28953 FMXX=-4*PQ**4*X10-PQ**2*PH**2*X10+2*PQ**2*(-2*X1*X10-2*X2*
28954 & X10+2*X4*X8+2*X4*X6+2*X3*X7-2*X10*X5+X9*X8+2*X9*X6)+PH**2
28955 & *(X1*X10-X3*X7-X4*X6)+2*(-X1*X9*X8-X2*X10*X5+X2*X9*X6+X4*
28956 & X8*X5)
28957 FM(9,10)=0.5D0*(FMXX+FM(9,10))
28958 FM(10,10)=-4*PQ**4*X10-PQ**2*PH**2*X10+4*PQ**2*(-X1*X10-X2*X10+
28959 & X3*X7+X4*X6-X10*X5+X9*X3+X8*X4)+PH**2*(X1*X10-X3*X7-X4*X6
28960 & )+2*X5*(-X10*X2+X9*X3+X8*X4)
28961
28962
28963 DO 200 I=1,8
28964 DO 190 J=1,8
28965 RM(I,J)=FM(I,J)
28966 190 CONTINUE
28967 200 CONTINUE
28968 RM(7,7)=FM(7,7)-2D0*FM(9,9)
28969 RM(7,8)=FM(7,8)-2D0*FM(9,10)
28970 RM(8,8)=FM(8,8)-2D0*FM(10,10)
28971
28972
28973 DO 220 I=1,8
28974 DO 210 J=I,8
28975 FAC=8D0
28976 IF(I.EQ.J)FAC=4D0
28977 WTQQBH=WTQQBH+RM(I,J)*FAC*CLR(I,J)/(DX(I)*DX(J))
28978 210 CONTINUE
28979 220 CONTINUE
28980 WTQQBH=-WTQQBH/256D0
28981
28982 ELSE
28983
28984 A11=-8D0*PQ**4*X10-2D0*PQ**2*PH**2*X10-(8D0*PQ**2)*(X2*X10+X3
28985 & *X7+X4*X6+X9*X6+X8*X7)+2D0*PH**2*(X3*X7+X4*X6)-(4D0*X2)*(X9
28986 & *X6+X8*X7)
28987 A12=-8D0*PQ**4*X10+4D0*PQ**2*(-X2*X10-X3*X9-2D0*X3*X7-X4*X8-
28988 & 2D0*X4*X6-X10*X5-X9*X8-X9*X6-X8*X7)+2D0*PH**2*(-X1*X10+X3*X7
28989 & +X4*X6)+2D0*(2D0*X1*X9*X8-X2*X9*X6-X2*X8*X7-X3*X9*X5-X4*X8*
28990 & X5)
28991 A22=-8D0*PQ**4*X10-2D0*PQ**2*PH**2*X10-(8D0*PQ**2)*(X3*X9+X3*
28992 & X7+X4*X8+X4*X6+X10*X5)+2D0*PH**2*(X3*X7+X4*X6)-(4D0*X5)*(X3
28993 & *X9+X4*X8)
28994
28995
28996 A11=A11/DX(7)**2
28997 A12=A12/(DX(7)*DX(8))
28998 A22=A22/DX(8)**2
28999 WTQQBH=-(A11+A22+2D0*A12)/8D0
29000 ENDIF
29001
29002 RETURN
29003 END
29004
29005
29006
29007
29008
29009
29010
29011
29012 SUBROUTINE PYMSIN
29013
29014
29015 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
29016 IMPLICIT INTEGER(I-N)
29017 INTEGER PYK,PYCHGE,PYCOMP
29018
29019 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
29020
29021 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
29022 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
29023 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
29024 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
29025 COMMON/PYINT4/MWID(500),WIDS(500,5)
29026 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
29027 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
29028 &SFMIX(16,4)
29029 COMMON/PYHTRI/HHH(7)
29030 SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT4/,/PYMSSM/,
29031 &/PYSSMT/
29032
29033
29034 INTEGER NSTR
29035 DOUBLE PRECISION ALFA,BETA
29036 DOUBLE PRECISION TANB,AL,BE,COSA,COSB,SINA,SINB,XW,AEM,FACT
29037 DOUBLE PRECISION PYALEM
29038 INTEGER I,J,J1,J2,I1,I2,I3,IKNT,K1
29039 INTEGER KC,LKNT,IDLAM(200,3),IDLAM0(100,3),LKNT0
29040 DOUBLE PRECISION XLAM(0:200),XLAM0(0:200),XALL
29041 DOUBLE PRECISION WDTP(0:200),WDTE(0:200,0:5)
29042 1 DOUBLE PRECISION ATERM,TAN2T,THETA,DENOM
29043 DOUBLE PRECISION XARG,COS2B,XMW2,XMZ2
29044 DOUBLE PRECISION COSW,SINW,WDMIN,WDMAX
29045 DOUBLE PRECISION DELM,XMDIF,BRLIM
29046 DOUBLE PRECISION DX,DY,DS,DMU2,DMA2,DQ2,DU2,DD2,DL2,DE2,DHU2,DHD2
29047 DOUBLE PRECISION ARG,SGNMU,R,GAM
29048 INTEGER IS1,IS2,IS3,IS4,JS1,JS2,JS3,JS4,KS1,KS2,KS3,KS4
29049 INTEGER IMSSM,KFHIGG
29050 INTEGER IRPRTY
29051 INTEGER KFSUSY(36),MWIDSU(36),MDCYSU(36)
29052 SAVE INIT,MWIDSU,MDCYSU
29053 DATA KFSUSY/
29054 &1000001,2000001,1000002,2000002,1000003,2000003,
29055 &1000004,2000004,1000005,2000005,1000006,2000006,
29056 &1000011,2000011,1000012,2000012,1000013,2000013,
29057 &1000014,2000014,1000015,2000015,1000016,2000016,
29058 &1000021,1000022,1000023,1000025,1000035,1000024,
29059 &1000037,1000039, 25, 35, 36, 37/
29060 DATA INIT/0/
29061
29062
29063 IMSSM=IMSS(1)
29064 IF(IMSSM.EQ.0) RETURN
29065
29066
29067
29068 IF(INIT.EQ.0) THEN
29069 INIT=1
29070 DO 105 I=1,36
29071 KF=KFSUSY(I)
29072 KC=PYCOMP(KF)
29073 MWIDSU(I)=MWID(KC)
29074 MDCYSU(I)=MDCY(KC,1)
29075 105 CONTINUE
29076 ENDIF
29077
29078
29079 DO 107 I=1,36
29080 KF=KFSUSY(I)
29081 KC=PYCOMP(KF)
29082 IF(MDCY(KC,1).EQ.0.AND.MDCYSU(I).NE.0) THEN
29083 MWID(KC)=MWIDSU(I)
29084 MDCY(KC,1)=MDCYSU(I)
29085 ENDIF
29086 107 CONTINUE
29087
29088
29089
29090
29091 DO 100 I=1,16
29092 SFMIX(I,1)=1D0
29093 SFMIX(I,4)=1D0
29094 SFMIX(I,2)=0D0
29095 SFMIX(I,3)=0D0
29096 100 CONTINUE
29097
29098
29099 TANB=RMSS(5)
29100 BETA=ATAN(TANB)
29101 COSB=COS(BETA)
29102 SINB=TANB*COSB
29103 COS2B=COS(2D0*BETA)
29104 ALFA=RMSS(18)
29105 XMW2=PMAS(24,1)**2
29106 XMZ2=PMAS(23,1)**2
29107 XW=PARU(102)
29108
29109
29110 IF(IMSSM.EQ.1) THEN
29111 IF(IMSS(9).EQ.0) RMSS(22)=RMSS(9)
29112 DO 110 I=1,5,2
29113 KC=PYCOMP(KSUSY1+I)
29114 PMAS(KC,1)=SQRT(RMSS(8)**2-(2D0*XMW2+XMZ2)*COS2B/6D0)
29115 KC=PYCOMP(KSUSY2+I)
29116 PMAS(KC,1)=SQRT(RMSS(9)**2+(XMW2-XMZ2)*COS2B/3D0)
29117 KC=PYCOMP(KSUSY1+I+1)
29118 PMAS(KC,1)=SQRT(RMSS(8)**2+(4D0*XMW2-XMZ2)*COS2B/6D0)
29119 KC=PYCOMP(KSUSY2+I+1)
29120 PMAS(KC,1)=SQRT(RMSS(22)**2-(XMW2-XMZ2)*COS2B*2D0/3D0)
29121 110 CONTINUE
29122 XARG=RMSS(6)**2-PMAS(24,1)**2*ABS(COS(2D0*BETA))
29123 IF(XARG.LT.0D0) THEN
29124 WRITE(MSTU(11),*) ' SNEUTRINO MASS IS NEGATIVE'//
29125 & ' FROM THE SUM RULE. '
29126 WRITE(MSTU(11),*) ' TRY A SMALLER VALUE OF TAN(BETA). '
29127 RETURN
29128 ELSE
29129 XARG=SQRT(XARG)
29130 ENDIF
29131 DO 120 I=11,15,2
29132 PMAS(PYCOMP(KSUSY1+I),1)=RMSS(6)
29133 PMAS(PYCOMP(KSUSY2+I),1)=RMSS(7)
29134 PMAS(PYCOMP(KSUSY1+I+1),1)=XARG
29135 PMAS(PYCOMP(KSUSY2+I+1),1)=9999D0
29136 120 CONTINUE
29137 IF(IMSS(8).EQ.1) THEN
29138 RMSS(13)=RMSS(6)
29139 RMSS(14)=RMSS(7)
29140 ENDIF
29141
29142
29143 ELSEIF(IMSSM.EQ.2) THEN
29144 CALL PYAPPS
29145 ENDIF
29146
29147
29148 IF(IMSS(7).EQ.1) THEN
29149 R=0.43D0
29150 DX=RMSS(23)
29151 DY=RMSS(24)
29152 DS=RMSS(25)
29153 WRITE(MSTU(11),*) 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'
29154 WRITE(MSTU(11),*) 'C NEW DTERMS ADDED TO SCALAR MASSES '
29155 WRITE(MSTU(11),*) 'C IN A U(B-L) THEORY '
29156 WRITE(MSTU(11),*) 'C DX = ',DX
29157 WRITE(MSTU(11),*) 'C DY = ',DY
29158 WRITE(MSTU(11),*) 'C DS = ',DS
29159 WRITE(MSTU(11),*) 'C '
29160 DY=R*DY-4D0/33D0*(1D0-R)*DX+(1D0-R)/33D0*DS
29161 WRITE(MSTU(11),*) 'C DY AT THE WEAK SCALE = ',DY
29162 WRITE(MSTU(11),*) 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'
29163 DQ2=DY/6D0-DX/3D0-DS/3D0
29164 DU2=-2D0*DY/3D0-DX/3D0-DS/3D0
29165 DD2=DY/3D0+DX-2D0*DS/3D0
29166 DL2=-DY/2D0+DX-2D0*DS/3D0
29167 DE2=DY-DX/3D0-DS/3D0
29168 DHU2=DY/2D0+2D0*DX/3D0+2D0*DS/3D0
29169 DHD2=-DY/2D0-2D0*DX/3D0+DS
29170 DMU2=(-DY/2D0-2D0/3D0*DX+(COSB**2-2D0*SINB**2/3D0)*DS)
29171 & /ABS(COS2B)
29172 DMA2 = 2D0*DMU2+DHU2+DHD2
29173 DO 130 I=1,5,2
29174 KC=PYCOMP(KSUSY1+I)
29175 PMAS(KC,1)=SQRT(PMAS(KC,1)**2+DQ2)
29176 KC=PYCOMP(KSUSY2+I)
29177 PMAS(KC,1)=SQRT(PMAS(KC,1)**2+DD2)
29178 KC=PYCOMP(KSUSY1+I+1)
29179 PMAS(KC,1)=SQRT(PMAS(KC,1)**2+DQ2)
29180 KC=PYCOMP(KSUSY2+I+1)
29181 PMAS(KC,1)=SQRT(PMAS(KC,1)**2+DU2)
29182 130 CONTINUE
29183 DO 140 I=11,15,2
29184 KC=PYCOMP(KSUSY1+I)
29185 PMAS(KC,1)=SQRT(PMAS(KC,1)**2+DL2)
29186 KC=PYCOMP(KSUSY2+I)
29187 PMAS(KC,1)=SQRT(PMAS(KC,1)**2+DE2)
29188 KC=PYCOMP(KSUSY1+I+1)
29189 PMAS(KC,1)=SQRT(PMAS(KC,1)**2+DL2)
29190 140 CONTINUE
29191 IF(RMSS(4)**2+DMU2.LT.0D0) THEN
29192 WRITE(MSTU(11),*) ' MU2 DRIVEN NEGATIVE '
29193 STOP
29194 ENDIF
29195 SGNMU=SIGN(1D0,RMSS(4))
29196 RMSS(4)=SGNMU*SQRT(RMSS(4)**2+DMU2)
29197 ARG=RMSS(10)**2*SIGN(1D0,RMSS(10))+DQ2
29198 RMSS(10)=SIGN(SQRT(ABS(ARG)),ARG)
29199 ARG=RMSS(11)**2*SIGN(1D0,RMSS(11))+DD2
29200 RMSS(11)=SIGN(SQRT(ABS(ARG)),ARG)
29201 ARG=RMSS(12)**2*SIGN(1D0,RMSS(12))+DU2
29202 RMSS(12)=SIGN(SQRT(ABS(ARG)),ARG)
29203 ARG=RMSS(13)**2*SIGN(1D0,RMSS(13))+DL2
29204 RMSS(13)=SIGN(SQRT(ABS(ARG)),ARG)
29205 ARG=RMSS(14)**2*SIGN(1D0,RMSS(14))+DE2
29206 RMSS(14)=SIGN(SQRT(ABS(ARG)),ARG)
29207 IF( RMSS(19)**2 + DMA2 .LE. 50D0 ) THEN
29208 WRITE(MSTU(11),*) ' MA DRIVEN TOO LOW '
29209 STOP
29210 ENDIF
29211 RMSS(19)=SQRT(RMSS(19)**2+DMA2)
29212 RMSS(6)=SQRT(RMSS(6)**2+DL2)
29213 RMSS(7)=SQRT(RMSS(7)**2+DE2)
29214 WRITE(MSTU(11),*) ' MTL = ',RMSS(10)
29215 WRITE(MSTU(11),*) ' MBR = ',RMSS(11)
29216 WRITE(MSTU(11),*) ' MTR = ',RMSS(12)
29217 WRITE(MSTU(11),*) ' SEL = ',RMSS(6),RMSS(13)
29218 WRITE(MSTU(11),*) ' SER = ',RMSS(7),RMSS(14)
29219 ENDIF
29220
29221
29222 CALL PYTHRG
29223 XARG=RMSS(13)**2-PMAS(24,1)**2*ABS(COS2B)
29224 IF(XARG.LT.0D0) THEN
29225 WRITE(MSTU(11),*) ' TAU SNEUTRINO MASS IS NEGATIVE FROM'//
29226 & ' THE SUM RULE. '
29227 WRITE(MSTU(11),*) ' TRY A SMALLER VALUE OF TAN(BETA). '
29228 RETURN
29229 ELSE
29230 PMAS(PYCOMP(KSUSY1+16),1)=SQRT(XARG)
29231 ENDIF
29232
29233
29234 CALL PYINOM
29235
29236
29237 CALL PYHGGM(ALFA)
29238
29239
29240 ALFA=-ALFA
29241 RMSS(18)=ALFA
29242
29243
29244 IF(IMSSM.EQ.2.AND.MSTP(122).GT.0) THEN
29245 WRITE(MSTU(11),*) 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'
29246 WRITE(MSTU(11),*) ' USING APPROXIMATE SUGRA RELATIONS '
29247 WRITE(MSTU(11),*) ' M0 = ',RMSS(8)
29248 WRITE(MSTU(11),*) ' M1/2=',RMSS(1)
29249 WRITE(MSTU(11),*) ' TANB=',RMSS(5)
29250 WRITE(MSTU(11),*) ' MU = ',RMSS(4)
29251 WRITE(MSTU(11),*) ' AT = ',RMSS(16)
29252 WRITE(MSTU(11),*) ' MA = ',RMSS(19)
29253 WRITE(MSTU(11),*) ' MTOP=',PMAS(6,1)
29254 WRITE(MSTU(11),*) 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'
29255 ENDIF
29256 IF(IMSS(20).EQ.1) THEN
29257 WRITE(MSTU(11),*) 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'
29258 WRITE(MSTU(11),*) ' DEBUG MODE '
29259 WRITE(MSTU(11),*) ' UMIX = ',UMIX(1,1),UMIX(1,2),
29260 & UMIX(2,1),UMIX(2,2)
29261 WRITE(MSTU(11),*) ' VMIX = ',VMIX(1,1),VMIX(1,2),
29262 & VMIX(2,1),VMIX(2,2)
29263 WRITE(MSTU(11),*) ' ZMIX = ',ZMIX
29264 WRITE(MSTU(11),*) ' ALFA = ',ALFA
29265 WRITE(MSTU(11),*) ' BETA = ',BETA
29266 WRITE(MSTU(11),*) ' STOP = ',(SFMIX(6,I),I=1,4)
29267 WRITE(MSTU(11),*) ' SBOT = ',(SFMIX(5,I),I=1,4)
29268 WRITE(MSTU(11),*) 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'
29269 ENDIF
29270
29271
29272
29273 AL=ALFA
29274 BE=BETA
29275 SINA=SIN(AL)
29276 COSA=COS(AL)
29277 COSB=COS(BE)
29278 SINB=TANB*COSB
29279 SBMA=SIN(BE-AL)
29280 SAPB=SIN(AL+BE)
29281 CAPB=COS(AL+BE)
29282 CBMA=COS(BE-AL)
29283 S2A=SIN(2D0*AL)
29284 C2A=COS(2D0*AL)
29285 C2B=COSB**2-SINB**2
29286
29287 PARU(141)=TANB
29288
29289
29290
29291 PARU(161)=SINA/COSB
29292
29293 PARU(162)=-COSA/SINB
29294
29295 PARU(163)=PARU(161)
29296
29297 PARU(164)=SBMA
29298
29299 PARU(165)=PARU(164)
29300
29301
29302
29303 PARU(171)=-COSA/COSB
29304
29305 PARU(172)=-SINA/SINB
29306
29307 PARU(173)=PARU(171)
29308
29309 PARU(174)=CBMA
29310
29311 PARU(175)=PARU(174)
29312
29313
29314 HHH(3)=HHH(3)+HHH(4)+HHH(5)
29315 PARU(176)=-3D0/HHH(1)*(HHH(1)*SINA**2*COSB*COSA+
29316 1 HHH(2)*COSA**2*SINB*SINA+HHH(3)*(SINA**3*SINB+COSA**3*COSB-
29317 2 2D0/3D0*CBMA)-HHH(6)*SINA*(COSB*C2A+COSA*CAPB)+
29318 3 HHH(7)*COSA*(SINB*C2A+SINA*CAPB))
29319
29320
29321
29322 PARU(168)=1D0/HHH(1)*(HHH(1)*SINB**2*COSB*SINA-
29323 1 HHH(2)*COSB**2*SINB*COSA-HHH(3)*(SINB**3*COSA-COSB**3*SINA)+
29324 2 2D0*HHH(5)*SBMA-HHH(6)*SINB*(COSB*SAPB+SINA*C2B)-
29325 3 HHH(7)*COSB*(COSA*C2B-SINB*SAPB)-(HHH(5)-HHH(4))*SBMA)
29326
29327
29328 PARU(177)=-1D0/HHH(1)*(HHH(1)*SINB**2*COSB*COSA+
29329 1 HHH(2)*COSB**2*SINB*SINA+HHH(3)*(SINB**3*SINA+COSB**3*COSA)-
29330 2 2D0*HHH(5)*CBMA-HHH(6)*SINB*(COSB*CAPB+COSA*C2B)+
29331 3 HHH(7)*COSB*(SINB*CAPB+SINA*C2B))
29332
29333 PARU(178)=PARU(177)-(HHH(5)-HHH(4))/HHH(1)*CBMA
29334
29335
29336 PARU(181)=TANB
29337
29338 PARU(182)=1D0/PARU(181)
29339
29340 PARU(183)=PARU(181)
29341 PARU(184)=0D0
29342 PARU(185)=0D0
29343
29344 PARU(186)=COS(BE-AL)
29345
29346 PARU(187)=SIN(BE-AL)
29347 PARU(188)=0D0
29348 PARU(189)=0D0
29349 PARU(190)=0D0
29350
29351
29352
29353 PARU(195)=COS(BE-AL)
29354
29355
29356 MSTP(4)=1
29357
29358
29359
29360
29361 KC=PYCOMP(KSUSY1+39)
29362 IF( IMSS(11) .NE. 0 ) THEN
29363 PMAS(KC,1)=RMSS(21)/1000000000D0
29364 PMAS(KC,2)=0.0001D0
29365 IRPRTY=0
29366 WRITE(MSTU(11),*) ' ALLOWING DECAYS TO GRAVITINOS '
29367 ELSE
29368 PMAS(KC,1)=9999D0
29369 IRPRTY=1
29370 ENDIF
29371
29372
29373 PMCHI1=PMAS(PYCOMP(KSUSY1+22),1)
29374
29375 ILSP=0
29376 PMLSP=1D20
29377 DO 150 I=1,36
29378 KF=KFSUSY(I)
29379 IF(KF.EQ.1000039) GOTO 150
29380 KC=PYCOMP(KF)
29381 IF(PMAS(KC,1).LT.PMLSP) THEN
29382 ILSP=I
29383 PMLSP=PMAS(KC,1)
29384 ENDIF
29385 150 CONTINUE
29386 DO 210 I=1,36
29387 KF=KFSUSY(I)
29388 KC=PYCOMP(KF)
29389 LKNT=0
29390
29391
29392 IF(I.LE.24) THEN
29393
29394 IF((I.EQ.15.OR.I.EQ.19.OR.I.EQ.23).AND.
29395 & PMAS(KC,1).LT.PMCHI1) THEN
29396 ELSE
29397 CALL PYSFDC(KF,XLAM,IDLAM,LKNT)
29398 ENDIF
29399
29400
29401 ELSEIF(I.EQ.25) THEN
29402 CALL PYGLUI(KF,XLAM,IDLAM,LKNT)
29403 IF(I.EQ.ILSP) LKNT=0
29404
29405
29406 ELSEIF(I.GE.26.AND.I.LE.29) THEN
29407 CALL PYNJDC(KF,XLAM,IDLAM,LKNT)
29408
29409 IF(I.EQ.26.AND.IRPRTY.EQ.1) THEN
29410 PMAS(KC,2)=1D-6
29411 MDCY(KC,1)=0
29412 MWID(KC)=0
29413 ENDIF
29414
29415
29416 ELSEIF(I.GE.30.AND.I.LE.31) THEN
29417 CALL PYCJDC(KF,XLAM,IDLAM,LKNT)
29418
29419
29420 ELSEIF(I.EQ.32) THEN
29421 MDCY(KC,1)=0
29422 MWID(KC)=0
29423
29424
29425 ELSEIF(I.GE.33.AND.I.LE.36) THEN
29426
29427 CALL PYWIDT(KF,PMAS(KC,1)**2,WDTP,WDTE)
29428 LKNT=0
29429 DO 160 I1=0,100
29430 XLAM(I1)=0D0
29431 160 CONTINUE
29432 DO 180 I1=1,MDCY(KC,3)
29433 K1=MDCY(KC,2)+I1-1
29434 IF(IABS(KFDP(K1,1)).GT.KSUSY1.OR.
29435 & IABS(KFDP(K1,2)).GT.KSUSY1) GOTO 180
29436 XLAM(I1)=WDTP(I1)
29437 XLAM(0)=XLAM(0)+XLAM(I1)
29438 DO 170 J1=1,3
29439 IDLAM(I1,J1)=KFDP(K1,J1)
29440 170 CONTINUE
29441 LKNT=LKNT+1
29442 180 CONTINUE
29443
29444 CALL PYHEXT(KF,XLAM,IDLAM,LKNT)
29445 ENDIF
29446
29447
29448 DO 185 IDC=MDCY(KC,2),MDCY(KC,2)+MDCY(KC,3)-1
29449 BRAT(IDC)=0D0
29450 185 CONTINUE
29451
29452
29453 IF(LKNT.EQ.0) THEN
29454 MDCY(KC,1)=0
29455 MWID(KC)=0
29456 PMAS(KC,2)=1D-6
29457 PMAS(KC,3)=1D-5
29458 PMAS(KC,4)=0D0
29459
29460
29461 ELSE
29462 IDC=MDCY(KC,2)+MDCY(KC,3)-1
29463 DELM=1D6
29464 DO 200 IL=1,LKNT
29465 IDCSV=IDC
29466 190 IDC=IDC+1
29467 BRAT(IDC)=0D0
29468 IF(IDC.EQ.MDCY(KC,2)+MDCY(KC,3)) IDC=MDCY(KC,2)
29469 IF(IDLAM(IL,1).EQ.KFDP(IDC,1).AND.IDLAM(IL,2).EQ.
29470 & KFDP(IDC,2).AND.IDLAM(IL,3).EQ.KFDP(IDC,3)) THEN
29471 BRAT(IDC)=XLAM(IL)/XLAM(0)
29472 XMDIF=PMAS(KC,1)
29473 IF(MDME(IDC,1).GE.1) THEN
29474 XMDIF=XMDIF-PMAS(PYCOMP(KFDP(IDC,1)),1)-
29475 & PMAS(PYCOMP(KFDP(IDC,2)),1)
29476 IF(KFDP(IDC,3).NE.0) XMDIF=XMDIF-
29477 & PMAS(PYCOMP(KFDP(IDC,3)),1)
29478 ENDIF
29479 IF(I.LE.32) THEN
29480 IF(XMDIF.GE.0D0) THEN
29481 DELM=MIN(DELM,XMDIF)
29482 ELSE
29483 WRITE(MSTU(11),*) ' ERROR WITH DELM ',DELM,XMDIF
29484 WRITE(MSTU(11),*) ' KF = ',KF
29485 WRITE(MSTU(11),*) ' KF(decay) = ',(KFDP(IDC,J),J=1,3)
29486 ENDIF
29487 ENDIF
29488 GOTO 200
29489 ELSEIF(IDC.EQ.IDCSV) THEN
29490 WRITE(MSTU(11),*) ' Error in PYMSIN: SUSY decay ',
29491 & 'channel not recognized:'
29492 WRITE(MSTU(11),*) KF,' -> ',(IDLAM(I,J),J=1,3)
29493 GOTO 200
29494 ELSE
29495 GOTO 190
29496 ENDIF
29497 200 CONTINUE
29498
29499
29500 PMAS(KC,2)=XLAM(0)
29501 IF(PMAS(KC,2).LT.0.1D0*DELM) THEN
29502 PMAS(KC,3)=PMAS(KC,2)*10D0
29503 ELSE
29504 PMAS(KC,3)=0.95D0*DELM
29505 ENDIF
29506 IF(PMAS(KC,2).NE.0D0) THEN
29507 PMAS(KC,4)=PARU(3)/PMAS(KC,2)*1D-12
29508 ENDIF
29509 ENDIF
29510 210 CONTINUE
29511
29512 RETURN
29513 END
29514
29515
29516
29517
29518
29519
29520
29521
29522 SUBROUTINE PYAPPS
29523
29524
29525 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
29526 IMPLICIT INTEGER(I-N)
29527 INTEGER PYK,PYCHGE,PYCOMP
29528
29529 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
29530
29531 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
29532 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
29533 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
29534 SAVE /PYDAT1/,/PYDAT2/,/PYMSSM/
29535
29536 IMSS(5)=0
29537 XMT=PMAS(6,1)
29538 XMZ2=PMAS(23,1)**2
29539 XMW2=PMAS(24,1)**2
29540 TANB=RMSS(5)
29541 BETA=ATAN(TANB)
29542 XW=PARU(102)
29543 XMG=RMSS(1)
29544 XMG2=XMG*XMG
29545 XM0=RMSS(8)
29546 XM02=XM0*XM0
29547 AT=-RMSS(16)
29548 RMSS(15)=AT
29549 RMSS(17)=AT
29550 COSB=COS(BETA)
29551 SINB=TANB/SQRT(TANB**2+1D0)
29552 COSB=SINB/TANB
29553
29554 DTERM=XMZ2*COS(2D0*BETA)
29555 XMER=SQRT(XM02+0.15D0*XMG2-XW*DTERM)
29556 XMEL=SQRT(XM02+0.52D0*XMG2-(0.5D0-XW)*DTERM)
29557 RMSS(6)=XMEL
29558 RMSS(7)=XMER
29559 XMUR=SQRT(PYRNMQ(2,2D0/3D0*XW*DTERM))
29560 XMDR=SQRT(PYRNMQ(3,-1D0/3D0*XW*DTERM))
29561 XMUL=SQRT(PYRNMQ(1,(0.5D0-2D0/3D0*XW)*DTERM))
29562 XMDL=SQRT(PYRNMQ(1,-(0.5D0-1D0/3D0*XW)*DTERM))
29563 DO 100 I=1,5,2
29564 PMAS(PYCOMP(KSUSY1+I),1)=XMDL
29565 PMAS(PYCOMP(KSUSY2+I),1)=XMDR
29566 PMAS(PYCOMP(KSUSY1+I+1),1)=XMUL
29567 PMAS(PYCOMP(KSUSY2+I+1),1)=XMUR
29568 100 CONTINUE
29569 XARG=XMEL**2-XMW2*ABS(COS(2D0*BETA))
29570 IF(XARG.LT.0D0) THEN
29571 WRITE(MSTU(11),*) ' SNEUTRINO MASS IS NEGATIVE'//
29572 & ' FROM THE SUM RULE. '
29573 WRITE(MSTU(11),*) ' TRY A SMALLER VALUE OF TAN(BETA). '
29574 RETURN
29575 ELSE
29576 XARG=SQRT(XARG)
29577 ENDIF
29578 DO 110 I=11,15,2
29579 PMAS(PYCOMP(KSUSY1+I),1)=XMEL
29580 PMAS(PYCOMP(KSUSY2+I),1)=XMER
29581 PMAS(PYCOMP(KSUSY1+I+1),1)=XARG
29582 PMAS(PYCOMP(KSUSY2+I+1),1)=9999D0
29583 110 CONTINUE
29584 XMNU=XARG
29585
29586 RMT=PYRNMT(XMT)
29587 XTOP=(RMT/150D0/SINB)**2*(.9D0*XM02+2.1D0*XMG2+
29588 &(1D0-(RMT/190D0/SINB)**3)*(.24D0*AT**2+AT*XMG))
29589 RMB=3D0
29590 XBOT=(RMB/150D0/COSB)**2*(.9D0*XM02+2.1D0*XMG2+
29591 &(1D0-(RMB/190D0/COSB)**3)*(.24D0*AT**2+AT*XMG))
29592 XTAU=1D-4/COSB**2*(XM02+0.15D0*XMG2+AT**2/3D0)
29593 ATP=AT*(1D0-(RMT/190D0/SINB)**2)+XMG*(3.47D0-1.9D0*(RMT/190D0/
29594 &SINB)**2)
29595 RMSS(16)=-ATP
29596
29597
29598 XMU2=-.5D0*XMZ2+(SINB**2*(XM02+.52D0*XMG2-XTOP)-
29599 &COSB**2*(XM02+.52D0*XMG2-XBOT-XTAU/3D0))/(COSB**2-SINB**2)
29600
29601
29602 XMA2=2D0*(XM02+.52D0*XMG2)-XTOP-XBOT-XTAU/3D0+2D0*XMU2
29603 XMU=SIGN(SQRT(XMU2),RMSS(4))
29604 RMSS(4)=XMU
29605 RMSS(19)=SQRT(XMA2)
29606 ARG=XM02+0.15D0*XMG2-2D0*XTAU/3D0-XW*DTERM
29607 IF(ARG.GT.0D0) THEN
29608 RMSS(14)=SQRT(ARG)
29609 ELSE
29610 WRITE(MSTU(11),*) ' RIGHT STAU MASS < 0 '
29611 STOP
29612 ENDIF
29613 ARG=XM02+0.52D0*XMG2-XTAU/3D0-(0.5D0-XW)*DTERM
29614 IF(ARG.GT.0D0) THEN
29615 RMSS(13)=SQRT(ARG)
29616 ELSE
29617 WRITE(MSTU(11),*) ' LEFT STAU MASS < 0 '
29618 STOP
29619 ENDIF
29620 ARG=PYRNMQ(1,-(XBOT+XTOP)/3D0)
29621 IF(ARG.GT.0D0) THEN
29622 RMSS(10)=SQRT(ARG)
29623 ELSE
29624 RMSS(10)=-SQRT(-ARG)
29625 ENDIF
29626 ARG=PYRNMQ(2,-2D0*XTOP/3D0)
29627 IF(ARG.GT.0D0) THEN
29628 RMSS(12)=SQRT(ARG)
29629 ELSE
29630 RMSS(12)=-SQRT(-ARG)
29631 ENDIF
29632 ARG=PYRNMQ(3,-2D0*XBOT/3D0)
29633 IF(ARG.GT.0D0) THEN
29634 RMSS(11)=SQRT(ARG)
29635 ELSE
29636 RMSS(11)=-SQRT(-ARG)
29637 ENDIF
29638
29639 RETURN
29640 END
29641
29642
29643
29644
29645
29646
29647 FUNCTION PYRNMQ(ID,DTERM)
29648
29649
29650 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
29651 IMPLICIT INTEGER(I-N)
29652 INTEGER PYK,PYCHGE,PYCOMP
29653
29654 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
29655 SAVE /PYMSSM/
29656
29657
29658 DOUBLE PRECISION PI,R
29659 DOUBLE PRECISION TOL
29660 DOUBLE PRECISION CI(3)
29661 EXTERNAL PYALPS
29662 DOUBLE PRECISION PYALPS
29663 DATA TOL/0.001D0/
29664 DATA PI,R/3.141592654D0,.61803399D0/
29665 DATA CI/0.47D0,0.07D0,0.02D0/
29666
29667 C=1D0-R
29668 CA=CI(ID)
29669 AG=(0.71D0)**2/4D0/PI
29670 AG=RMSS(20)
29671 XM0=RMSS(8)
29672 XMG=RMSS(1)
29673 XM02=XM0*XM0
29674 XMG2=XMG*XMG
29675
29676 AS=PYALPS(XM02+6D0*XMG2)
29677 CG=8D0/9D0*((AS/AG)**2-1D0)
29678 BX=XM02+(CA+CG)*XMG2+DTERM
29679 AX=MIN(50D0**2,0.5D0*BX)
29680 CX=MAX(2000D0**2,2D0*BX)
29681
29682 X0=AX
29683 X3=CX
29684 IF(ABS(CX-BX).GT.ABS(BX-AX))THEN
29685 X1=BX
29686 X2=BX+C*(CX-BX)
29687 ELSE
29688 X2=BX
29689 X1=BX-C*(BX-AX)
29690 ENDIF
29691 AS1=PYALPS(X1)
29692 CG=8D0/9D0*((AS1/AG)**2-1D0)
29693 F1=ABS(XM02+(CA+CG)*XMG2+DTERM-X1)
29694 AS2=PYALPS(X2)
29695 CG=8D0/9D0*((AS2/AG)**2-1D0)
29696 F2=ABS(XM02+(CA+CG)*XMG2+DTERM-X2)
29697 100 IF(ABS(X3-X0).GT.TOL*(ABS(X1)+ABS(X2))) THEN
29698 IF(F2.LT.F1) THEN
29699 X0=X1
29700 X1=X2
29701 X2=R*X1+C*X3
29702 F1=F2
29703 AS2=PYALPS(X2)
29704 CG=8D0/9D0*((AS2/AG)**2-1D0)
29705 F2=ABS(XM02+(CA+CG)*XMG2+DTERM-X2)
29706 ELSE
29707 X3=X2
29708 X2=X1
29709 X1=R*X2+C*X0
29710 F2=F1
29711 AS1=PYALPS(X1)
29712 CG=8D0/9D0*((AS1/AG)**2-1D0)
29713 F1=ABS(XM02+(CA+CG)*XMG2+DTERM-X1)
29714 ENDIF
29715 GOTO 100
29716 ENDIF
29717 IF(F1.LT.F2) THEN
29718 PYRNMQ=X1
29719 XMIN=X1
29720 ELSE
29721 PYRNMQ=X2
29722 XMIN=X2
29723 ENDIF
29724
29725 RETURN
29726 END
29727
29728
29729
29730
29731
29732
29733 FUNCTION PYRNMT(XMT)
29734
29735
29736 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
29737 IMPLICIT INTEGER(I-N)
29738 INTEGER PYK,PYCHGE,PYCOMP
29739
29740 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
29741 SAVE /PYMSSM/
29742
29743
29744 DOUBLE PRECISION XMT
29745 DOUBLE PRECISION PI,R
29746 DOUBLE PRECISION TOL
29747 EXTERNAL PYALPS
29748 DOUBLE PRECISION PYALPS
29749 DATA TOL/0.001D0/
29750 DATA PI,R/3.141592654D0,0.61803399D0/
29751
29752 C=1D0-R
29753
29754 BX=XMT
29755 AX=MIN(50D0,BX*0.5D0)
29756 CX=MAX(300D0,2D0*BX)
29757
29758 X0=AX
29759 X3=CX
29760 IF(ABS(CX-BX).GT.ABS(BX-AX))THEN
29761 X1=BX
29762 X2=BX+C*(CX-BX)
29763 ELSE
29764 X2=BX
29765 X1=BX-C*(BX-AX)
29766 ENDIF
29767 AS1=PYALPS(X1**2)/PI
29768 F1=ABS(XMT/(1D0+4D0/3D0*AS1+11D0*AS1**2)-X1)
29769 AS2=PYALPS(X2**2)/PI
29770 F2=ABS(XMT/(1D0+4D0/3D0*AS2+11D0*AS2**2)-X2)
29771 100 IF(ABS(X3-X0).GT.TOL*(ABS(X1)+ABS(X2))) THEN
29772 IF(F2.LT.F1) THEN
29773 X0=X1
29774 X1=X2
29775 X2=R*X1+C*X3
29776 F1=F2
29777 AS2=PYALPS(X2**2)/PI
29778 F2=ABS(XMT/(1D0+4D0/3D0*AS2+11D0*AS2**2)-X2)
29779 ELSE
29780 X3=X2
29781 X2=X1
29782 X1=R*X2+C*X0
29783 F2=F1
29784 AS1=PYALPS(X1**2)/PI
29785 F1=ABS(XMT/(1D0+4D0/3D0*AS1+11D0*AS1**2)-X1)
29786 ENDIF
29787 GOTO 100
29788 ENDIF
29789 IF(F1.LT.F2) THEN
29790 PYRNMT=X1
29791 XMIN=X1
29792 ELSE
29793 PYRNMT=X2
29794 XMIN=X2
29795 ENDIF
29796
29797 RETURN
29798 END
29799
29800
29801
29802
29803
29804
29805
29806 SUBROUTINE PYTHRG
29807
29808
29809 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
29810 IMPLICIT INTEGER(I-N)
29811 INTEGER PYK,PYCHGE,PYCOMP
29812
29813 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
29814
29815 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
29816 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
29817 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
29818 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
29819 &SFMIX(16,4)
29820 SAVE /PYDAT1/,/PYDAT2/,/PYMSSM/,/PYSSMT/
29821
29822
29823 DOUBLE PRECISION BETA
29824 DOUBLE PRECISION PYRNMT
29825 DOUBLE PRECISION AM2(2,2),RT(2,2),DI(2,2)
29826 DOUBLE PRECISION XMZ2,XMW2,TANB,XMU,COS2B,XMQL2,XMQR2
29827 DOUBLE PRECISION XMF,XMF2,DIFF,SAME,XMF12,XMF22,SMALL
29828 DOUBLE PRECISION SIN2T,COS2T,TWOT,ATR,AMQR,XXX,YYY,AMQL
29829 INTEGER ID1(3),ID2(3),ID3(3),ID4(3)
29830 INTEGER IF,I,J,II,JJ,IT,L
29831 LOGICAL DTERM
29832 DATA SMALL/1D-3/
29833 DATA ID1/10,10,13/
29834 DATA ID2/5,6,15/
29835 DATA ID3/15,16,17/
29836 DATA ID4/11,12,14/
29837 DATA DTERM/.TRUE./
29838
29839 XMZ2=PMAS(23,1)**2
29840 XMW2=PMAS(24,1)**2
29841 TANB=RMSS(5)
29842 XMU=-RMSS(4)
29843 BETA=ATAN(TANB)
29844 COS2B=COS(2D0*BETA)
29845
29846
29847
29848 IOPT=IMSS(5)
29849 IF(IOPT.EQ.1) THEN
29850 CTT=RMSS(27)
29851 CTT2=CTT**2
29852 STT2=1D0-CTT2
29853 STT=SQRT(STT2)
29854 XM12=RMSS(12)**2
29855 XM22=RMSS(10)**2
29856 XMQL2=CTT2*XM12+STT2*XM22
29857 XMQR2=STT2*XM12+CTT2*XM22
29858 XMFR=PMAS(6,1)
29859 XMF2=PYRNMT(XMFR)**2
29860 ATOP=-XMU/TANB+CTT*STT*(XM22-XM12)/SQRT(XMF2)
29861 ATMT=SQRT(XMF2)*(ATOP+XMU/TANB)
29862 XTEST=(XMQL2-XMQR2)*(CTT2-STT2)
29863 IF(XTEST.GT.4D0*STT*CTT*ATMT) THEN
29864 STT=-STT
29865 ATOP=-XMU/TANB+CTT*STT*(XM22-XM12)/SQRT(XMF2)
29866 ENDIF
29867 RMSS(16)=ATOP
29868
29869 XMQL2=XMQL2-XMF2-(4D0*XMW2-XMZ2)*COS2B/6D0
29870 XMQR2=XMQR2-XMF2+(XMW2-XMZ2)*COS2B*2D0/3D0
29871 IF(XMQL2.GE.0D0) THEN
29872 RMSS(10)=SQRT(XMQL2)
29873 ELSE
29874 RMSS(10)=-SQRT(-XMQL2)
29875 ENDIF
29876 IF(XMQR2.GE.0D0) THEN
29877 RMSS(12)=SQRT(XMQR2)
29878 ELSE
29879 RMSS(12)=-SQRT(-XMQR2)
29880 ENDIF
29881
29882 CTT=RMSS(26)
29883 CTT2=CTT**2
29884 STT2=1D0-CTT2
29885 STT=MAX(SQRT(STT2),1D-6)
29886 XMF=3D00
29887 XMF2=XMF**2
29888 XM12=RMSS(11)**2
29889 XMQL2=RMSS(10)**2-(2D0*XMW2+XMZ2)*COS2B/6D0+XMF2
29890 IF(ABS(CTT).EQ.1D0) THEN
29891 XM22=XM12
29892 XM12=XMQL2
29893 XMQR2=XM22
29894 ELSEIF(CTT.EQ.0D0) THEN
29895 XM22=XMQL2
29896 XMQR2=XM12
29897 ELSE
29898 XM22=(XMQL2-CTT2*XM12)/STT2
29899 XMQR2=STT2*XM12+CTT2*XM22
29900 ENDIF
29901 ABOT=-XMU*TANB+CTT*STT*(XM22-XM12)/SQRT(XMF2)
29902 ATMT=SQRT(XMF2)*(ABOT+XMU*TANB)
29903 XTEST=(XMQL2-XMQR2)*(CTT2-STT2)
29904 IF(XTEST.GT.4D0*STT*CTT*ATMT) THEN
29905 STT=-STT
29906 ABOT=-XMU*TANB+CTT*STT*(XM22-XM12)/SQRT(XMF2)
29907 ENDIF
29908 RMSS(15)=ABOT
29909
29910 XMQR2=XMQR2-(XMW2-XMZ2)*COS2B/3D0-XMF2
29911 IF(XMQR2.GE.0D0) THEN
29912 RMSS(11)=SQRT(XMQR2)
29913 ELSE
29914 RMSS(11)=-SQRT(-XMQR2)
29915 ENDIF
29916
29917 CTT=RMSS(28)
29918 CTT2=CTT**2
29919 STT2=1D0-CTT2
29920 STT=SQRT(STT2)
29921 XM12=RMSS(14)**2
29922 XM22=RMSS(13)**2
29923 XMQL2=CTT2*XM12+STT2*XM22
29924 XMQR2=STT2*XM12+CTT2*XM22
29925 XMFR=PMAS(15,1)
29926 XMF2=XMFR**2
29927 ATAU=-XMU*TANB+CTT*STT*(XM22-XM12)/SQRT(XMF2)
29928 ATMT=SQRT(XMF2)*(ATAU+XMU*TANB)
29929 XTEST=(XMQL2-XMQR2)*(CTT2-STT2)
29930 IF(XTEST.GT.4D0*STT*CTT*ATMT) THEN
29931 STT=-STT
29932 ATAU=-XMU*TANB+CTT*STT*(XM22-XM12)/SQRT(XMF2)
29933 ENDIF
29934 RMSS(17)=ATAU
29935
29936 XMQL2=XMQL2-XMF2+(-.5D0*XMZ2+XMW2)*COS2B
29937 XMQR2=XMQR2-XMF2+(XMZ2-XMW2)*COS2B
29938 IF(XMQL2.GE.0D0) THEN
29939 RMSS(13)=SQRT(XMQL2)
29940 ELSE
29941 RMSS(13)=-SQRT(-XMQL2)
29942 ENDIF
29943 IF(XMQR2.GE.0D0) THEN
29944 RMSS(14)=SQRT(XMQR2)
29945 ELSE
29946 RMSS(14)=-SQRT(-XMQR2)
29947 ENDIF
29948 ENDIF
29949 DO 170 L=1,3
29950 AMQL=RMSS(ID1(L))
29951 IF(AMQL.LT.0D0) THEN
29952 XMQL2=-AMQL**2
29953 ELSE
29954 XMQL2=AMQL**2
29955 ENDIF
29956 IF=ID2(L)
29957 XMF=PMAS(IF,1)
29958 IF(L.EQ.1) XMF=3D0
29959 IF(L.EQ.2) XMF=PYRNMT(XMF)
29960 XMF2=XMF**2
29961 ATR=RMSS(ID3(L))
29962 AMQR=RMSS(ID4(L))
29963 IF(AMQR.LT.0D0) THEN
29964 XMQR2=-AMQR**2
29965 ELSE
29966 XMQR2=AMQR**2
29967 ENDIF
29968 AM2(1,1)=XMQL2+XMF2
29969 AM2(2,2)=XMQR2+XMF2
29970 IF(DTERM) THEN
29971 IF(L.EQ.1) THEN
29972 AM2(1,1)=AM2(1,1)-(2D0*XMW2+XMZ2)*COS2B/6D0
29973 AM2(2,2)=AM2(2,2)+(XMW2-XMZ2)*COS2B/3D0
29974 AM2(1,2)=XMF*(ATR+XMU*TANB)
29975 ELSEIF(L.EQ.2) THEN
29976 AM2(1,1)=AM2(1,1)+(4D0*XMW2-XMZ2)*COS2B/6D0
29977 AM2(2,2)=AM2(2,2)-(XMW2-XMZ2)*COS2B*2D0/3D0
29978 AM2(1,2)=XMF*(ATR+XMU/TANB)
29979 ELSEIF(L.EQ.3) THEN
29980 IF(IMSS(8).EQ.1) THEN
29981 AM2(1,1)=RMSS(6)**2
29982 AM2(2,2)=RMSS(7)**2
29983 AM2(1,2)=0D0
29984 RMSS(13)=RMSS(6)
29985 RMSS(14)=RMSS(7)
29986 ELSE
29987 AM2(1,2)=XMF*(ATR+XMU*TANB)
29988 ENDIF
29989 ENDIF
29990 ENDIF
29991 AM2(2,1)=AM2(1,2)
29992 DETM=AM2(1,1)*AM2(2,2)-AM2(2,1)**2
29993 IF(DETM.LT.0D0) THEN
29994 WRITE(MSTU(11),*) ID1(L),DETM
29995 CALL PYERRM(30,' NEGATIVE**2 MASS FOR SFERMION ')
29996 ENDIF
29997 SAME=0.5D0*(AM2(1,1)+AM2(2,2))
29998 DIFF=0.5D0*SQRT((AM2(1,1)-AM2(2,2))**2+4D0*AM2(1,2)*AM2(2,1))
29999 XMF12=SAME-DIFF
30000 XMF22=SAME+DIFF
30001 IT=0
30002 IF(XMF22-XMF12.GT.0D0) THEN
30003 RT(1,1) = SQRT(MAX(0D0,(XMF22-AM2(1,1))/(XMF22-XMF12)))
30004 RT(2,2) = RT(1,1)
30005 RT(1,2) = -SIGN(SQRT(MAX(0D0,1D0-RT(1,1)**2)),
30006 & AM2(1,2)/(XMF22-XMF12))
30007 RT(2,1) = -RT(1,2)
30008 ELSE
30009 RT(1,1) = 1D0
30010 RT(2,2) = RT(1,1)
30011 RT(1,2) = 0D0
30012 RT(2,1) = -RT(1,2)
30013 ENDIF
30014 100 CONTINUE
30015 IT=IT+1
30016
30017 DO 140 I=1,2
30018 DO 130 JJ=1,2
30019 DI(I,JJ)=0D0
30020 DO 120 II=1,2
30021 DO 110 J=1,2
30022 DI(I,JJ)=DI(I,JJ)+RT(I,J)*AM2(J,II)*RT(JJ,II)
30023 110 CONTINUE
30024 120 CONTINUE
30025 130 CONTINUE
30026 140 CONTINUE
30027
30028 IF(DI(1,1).GT.DI(2,2)) THEN
30029 WRITE(MSTU(11),*) ' ERROR IN DIAGONALIZATION '
30030 WRITE(MSTU(11),*) L,SQRT(XMF12),SQRT(XMF22)
30031 WRITE(MSTU(11),*) AM2
30032 WRITE(MSTU(11),*) DI
30033 WRITE(MSTU(11),*) RT
30034 DI(1,1)=-RT(2,1)
30035 DI(2,2)=RT(1,2)
30036 DI(1,2)=-RT(2,2)
30037 DI(2,1)=RT(1,1)
30038 DO 160 I=1,2
30039 DO 150 J=1,2
30040 RT(I,J)=DI(I,J)
30041 150 CONTINUE
30042 160 CONTINUE
30043 GOTO 100
30044 ELSEIF(ABS(DI(1,2)*DI(2,1)/DI(1,1)/DI(2,2)).GT.SMALL) THEN
30045 WRITE(MSTU(11),*) ' ERROR IN DIAGONALIZATION,'//
30046 & ' OFF DIAGONAL ELEMENTS '
30047 WRITE(MSTU(11),*) 'MASSES = ',L,SQRT(XMF12),SQRT(XMF22)
30048 WRITE(MSTU(11),*) DI
30049 WRITE(MSTU(11),*) ' ROTATION = ',RT
30050
30051 ELSEIF(DI(1,1).LT.0D0.OR.DI(2,2).LT.0D0) THEN
30052 WRITE(MSTU(11),*) ' ERROR IN DIAGONALIZATION,'//
30053 & ' NEGATIVE MASSES '
30054 STOP
30055 ENDIF
30056 PMAS(PYCOMP(KSUSY1+IF),1)=SQRT(XMF12)
30057 PMAS(PYCOMP(KSUSY2+IF),1)=SQRT(XMF22)
30058 SFMIX(IF,1)=RT(1,1)
30059 SFMIX(IF,2)=RT(1,2)
30060 SFMIX(IF,3)=RT(2,1)
30061 SFMIX(IF,4)=RT(2,2)
30062 170 CONTINUE
30063
30064 RETURN
30065 END
30066
30067
30068
30069
30070
30071
30072
30073 SUBROUTINE PYINOM
30074
30075
30076 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
30077 IMPLICIT INTEGER(I-N)
30078 INTEGER PYK,PYCHGE,PYCOMP
30079
30080 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
30081
30082 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
30083 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
30084 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
30085 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
30086 &SFMIX(16,4)
30087 SAVE /PYDAT1/,/PYDAT2/,/PYMSSM/,/PYSSMT/
30088
30089
30090 DOUBLE PRECISION XMW,XMZ
30091 DOUBLE PRECISION AR(4,4),WR(4),ZR(4,4)
30092 DOUBLE PRECISION ZP(4,4)
30093 DOUBLE PRECISION DETX,XI(2,2)
30094 DOUBLE PRECISION XXX,YYY,XMH,XML
30095 DOUBLE PRECISION COSW,SINW
30096 DOUBLE PRECISION XMU
30097 DOUBLE PRECISION TERMB,TERMC,DISCR,XMH2,XML2
30098 DOUBLE PRECISION TANB,AL,BE,COSA,COSB,SINA,SINB,XW
30099 DOUBLE PRECISION XM1,XM2,XM3,BETA
30100 DOUBLE PRECISION Q2,AEM,A1,A2,A3,AQ,RM1,RM2
30101 DOUBLE PRECISION ARG,X0,X1,AX0,AX1,AT,BT
30102 DOUBLE PRECISION Y0,Y1,AMGX0,AM1X0,AMGX1,AM1X1
30103 DOUBLE PRECISION ARGX0,AR1X0,ARGX1,AR1X1
30104 DOUBLE PRECISION PYALPS,PYALEM
30105 DOUBLE PRECISION PYRNM3
30106 INTEGER IERR,INDEX(4),I,J,K,L,IOPT,ILR,KFNCHI(4)
30107 DATA KFNCHI/1000022,1000023,1000025,1000035/
30108
30109 IOPT=IMSS(2)
30110 IF(IMSS(1).EQ.2) THEN
30111 IOPT=1
30112 ENDIF
30113
30114 IF(IOPT.EQ.0) THEN
30115 XM1=RMSS(1)
30116 XM2=RMSS(2)
30117 XM3=RMSS(3)
30118 ELSEIF(IOPT.GE.1) THEN
30119 Q2=PMAS(23,1)**2
30120 AEM=PYALEM(Q2)
30121 A2=AEM/PARU(102)
30122 A1=AEM/(1D0-PARU(102))
30123 XM1=RMSS(1)
30124 XM2=RMSS(2)
30125 IF(IMSS(1).EQ.2) XM1=RMSS(1)/RMSS(20)*A1*5D0/3D0
30126 IF(IOPT.EQ.1) THEN
30127 XM2=XM1*A2/A1*3D0/5D0
30128 RMSS(2)=XM2
30129 ELSEIF(IOPT.EQ.3) THEN
30130 XM1=XM2*5D0/3D0*A1/A2
30131 RMSS(1)=XM1
30132 ENDIF
30133 XM3=PYRNM3(XM2/A2)
30134 RMSS(3)=XM3
30135 IF(XM3.LE.0D0) THEN
30136 WRITE(MSTU(11),*) ' ERROR WITH M3 = ',XM3
30137 STOP
30138 ENDIF
30139 ENDIF
30140
30141
30142 IF(IMSS(3).EQ.1) THEN
30143 PMAS(PYCOMP(KSUSY1+21),1)=XM3
30144 ELSE
30145 AQ=0D0
30146 DO 110 I=1,4
30147 DO 100 ILR=1,2
30148 RM1=PMAS(PYCOMP(ILR*KSUSY1+I),1)**2/XM3**2
30149 AQ=AQ+0.5D0*((2D0-RM1)*(RM1*LOG(RM1)-1D0)
30150 & +(1D0-RM1)**2*LOG(ABS(1D0-RM1)))
30151 100 CONTINUE
30152 110 CONTINUE
30153
30154 DO 130 I=5,6
30155 DO 120 ILR=1,2
30156 RM1=PMAS(PYCOMP(ILR*KSUSY1+I),1)**2/XM3**2
30157 RM2=PMAS(I,1)**2/XM3**2
30158 ARG=(RM1-RM2-1D0)**2-4D0*RM2**2
30159 IF(ARG.GE.0D0) THEN
30160 X0=0.5D0*(1D0+RM2-RM1-SQRT(ARG))
30161 AX0=ABS(X0)
30162 X1=0.5D0*(1D0+RM2-RM1+SQRT(ARG))
30163 AX1=ABS(X1)
30164 IF(X0.EQ.1D0) THEN
30165 AT=-1D0
30166 BT=0.25D0
30167 ELSEIF(X0.EQ.0D0) THEN
30168 AT=0D0
30169 BT=-0.25D0
30170 ELSE
30171 AT=0.5D0*LOG(ABS(1D0-X0))*(1D0-X0**2)+
30172 & 0.5D0*X0**2*LOG(AX0)
30173 BT=(-1D0-2D0*X0)/4D0
30174 ENDIF
30175 IF(X1.EQ.1D0) THEN
30176 AT=-1D0+AT
30177 BT=0.25D0+BT
30178 ELSEIF(X1.EQ.0D0) THEN
30179 AT=0D0+AT
30180 BT=-0.25D0+BT
30181 ELSE
30182 AT=0.5D0*LOG(ABS(1D0-X1))*(1D0-X1**2)+0.5D0*
30183 & X1**2*LOG(AX1)+AT
30184 BT=(-1D0-2D0*X1)/4D0+BT
30185 ENDIF
30186 AQ=AQ+AT+BT
30187 ELSE
30188 X0=0.5D0*(1D0+RM2-RM1)
30189 Y0=-0.5D0*SQRT(-ARG)
30190 AMGX0=SQRT(X0**2+Y0**2)
30191 AM1X0=SQRT((1D0-X0)**2+Y0**2)
30192 ARGX0=ATAN2(-X0,-Y0)
30193 AR1X0=ATAN2(1D0-X0,Y0)
30194 X1=X0
30195 Y1=-Y0
30196 AMGX1=AMGX0
30197 AM1X1=AM1X0
30198 ARGX1=ATAN2(-X1,-Y1)
30199 AR1X1=ATAN2(1D0-X1,Y1)
30200 AT=0.5D0*LOG(AM1X0)*(1D0-X0**2+3D0*Y0**2)
30201 & +0.5D0*(X0**2-Y0**2)*LOG(AMGX0)
30202 BT=(-1D0-2D0*X0)/4D0+X0*Y0*( AR1X0-ARGX0 )
30203 AT=AT+0.5D0*LOG(AM1X1)*(1D0-X1**2+3D0*Y1**2)
30204 & +0.5D0*(X1**2-Y1**2)*LOG(AMGX1)
30205 BT=BT+(-1D0-2D0*X1)/4D0+X1*Y1*( AR1X1-ARGX1 )
30206 AQ=AQ+AT+BT
30207 ENDIF
30208 120 CONTINUE
30209 130 CONTINUE
30210 PMAS(PYCOMP(KSUSY1+21),1)=XM3*(1D0+PYALPS(XM3**2)/(2D0*PARU(2))*
30211 & (15D0+AQ))
30212 ENDIF
30213
30214
30215 XMZ=PMAS(23,1)
30216 XMW=PMAS(24,1)
30217 XMU=RMSS(4)
30218 SINW=SQRT(PARU(102))
30219 COSW=SQRT(1D0-PARU(102))
30220 TANB=RMSS(5)
30221 BETA=ATAN(TANB)
30222 COSB=COS(BETA)
30223 SINB=TANB*COSB
30224 AR(1,1) = XM1
30225 AR(2,2) = XM2
30226 AR(3,3) = 0D0
30227 AR(4,4) = 0D0
30228 AR(1,2) = 0D0
30229 AR(2,1) = 0D0
30230 AR(1,3) = -XMZ*SINW*COSB
30231 AR(3,1) = AR(1,3)
30232 AR(1,4) = XMZ*SINW*SINB
30233 AR(4,1) = AR(1,4)
30234 AR(2,3) = XMZ*COSW*COSB
30235 AR(3,2) = AR(2,3)
30236 AR(2,4) = -XMZ*COSW*SINB
30237 AR(4,2) = AR(2,4)
30238 AR(3,4) = -XMU
30239 AR(4,3) = -XMU
30240 CALL PYEIG4(AR,WR,ZR)
30241 DO 150 I=1,4
30242 SMZ(I)=WR(I)
30243 PMAS(PYCOMP(KFNCHI(I)),1)=ABS(SMZ(I))
30244 DO 140 J=1,4
30245 ZMIX(I,J)=ZR(I,J)
30246 IF(ABS(ZMIX(I,J)).LT.1D-6) ZMIX(I,J)=0D0
30247 140 CONTINUE
30248 150 CONTINUE
30249
30250
30251 AR(1,1) = XM2
30252 AR(2,2) = XMU
30253 AR(1,2) = SQRT(2D0)*XMW*SINB
30254 AR(2,1) = SQRT(2D0)*XMW*COSB
30255 TERMB=AR(1,1)**2+AR(2,2)**2+AR(1,2)**2+AR(2,1)**2
30256 TERMC=(AR(1,1)**2-AR(2,2)**2)**2+(AR(1,2)**2-AR(2,1)**2)**2
30257 TERMC=TERMC+2D0*(AR(1,1)**2+AR(2,2)**2)*
30258 &(AR(1,2)**2+AR(2,1)**2)+
30259 &8D0*AR(1,1)*AR(2,2)*AR(1,2)*AR(2,1)
30260 DISCR=TERMC
30261 IF(DISCR.LT.0D0) THEN
30262 WRITE(MSTU(11),*) ' PROBLEM WITH DISCR '
30263 ELSE
30264 DISCR=SQRT(DISCR)
30265 ENDIF
30266 XML2=0.5D0*(TERMB-DISCR)
30267 XMH2=0.5D0*(TERMB+DISCR)
30268 XML=SQRT(XML2)
30269 XMH=SQRT(XMH2)
30270 PMAS(PYCOMP(KSUSY1+24),1)=XML
30271 PMAS(PYCOMP(KSUSY1+37),1)=XMH
30272 SMW(1)=XML
30273 SMW(2)=XMH
30274 XXX=AR(1,1)**2+AR(2,1)**2
30275 YYY=AR(1,1)*AR(1,2)+AR(2,2)*AR(2,1)
30276 VMIX(2,2) = YYY/SQRT(YYY**2+(XML2-XXX)**2)
30277 VMIX(1,1) = SIGN(VMIX(2,2),AR(1,1)*AR(2,2)-0.5D0*AR(1,2)**2)
30278 VMIX(2,1) = -(XML2-XXX)/SQRT(YYY**2+(XML2-XXX)**2)
30279 VMIX(1,2) = -SIGN(VMIX(2,1),AR(1,1)*AR(2,2)-0.5D0*AR(1,2)**2)
30280 ZR(1,1) = XML
30281 ZR(1,2) = 0D0
30282 ZR(2,1) = 0D0
30283 ZR(2,2) = XMH
30284 DETX = AR(1,1)*AR(2,2)-AR(1,2)*AR(2,1)
30285 XI(1,1) = AR(2,2)/DETX
30286 XI(2,2) = AR(1,1)/DETX
30287 XI(1,2) = -AR(1,2)/DETX
30288 XI(2,1) = -AR(2,1)/DETX
30289 DO 190 I=1,2
30290 DO 180 J=1,2
30291 UMIX(I,J)=0D0
30292 DO 170 K=1,2
30293 DO 160 L=1,2
30294 UMIX(I,J)=UMIX(I,J)+ZR(I,K)*VMIX(K,L)*XI(L,J)
30295 160 CONTINUE
30296 170 CONTINUE
30297 180 CONTINUE
30298 190 CONTINUE
30299
30300 RETURN
30301 END
30302
30303
30304
30305
30306
30307
30308
30309
30310 FUNCTION PYRNM3(RGUT)
30311
30312
30313 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
30314 IMPLICIT INTEGER(I-N)
30315 INTEGER PYK,PYCHGE,PYCOMP
30316
30317
30318 DOUBLE PRECISION PI,R
30319 DOUBLE PRECISION TOL
30320 EXTERNAL PYALPS
30321 DOUBLE PRECISION PYALPS
30322 DATA TOL/0.001D0/
30323 DATA PI,R/3.141592654D0,0.61803399D0/
30324
30325 C=1D0-R
30326
30327 BX=RGUT*PYALPS(RGUT**2)
30328 AX=MIN(50D0,BX*0.5D0)
30329 CX=MAX(2000D0,2D0*BX)
30330
30331 X0=AX
30332 X3=CX
30333 IF(ABS(CX-BX).GT.ABS(BX-AX))THEN
30334 X1=BX
30335 X2=BX+C*(CX-BX)
30336 ELSE
30337 X2=BX
30338 X1=BX-C*(BX-AX)
30339 ENDIF
30340 AS1=PYALPS(X1**2)
30341 F1=ABS(X1-RGUT*AS1)
30342 AS2=PYALPS(X2**2)
30343 F2=ABS(X2-RGUT*AS2)
30344 100 IF(ABS(X3-X0).GT.TOL*(ABS(X1)+ABS(X2))) THEN
30345 IF(F2.LT.F1) THEN
30346 X0=X1
30347 X1=X2
30348 X2=R*X1+C*X3
30349 F1=F2
30350 AS2=PYALPS(X2**2)
30351 F2=ABS(X2-RGUT*AS2)
30352 ELSE
30353 X3=X2
30354 X2=X1
30355 X1=R*X2+C*X0
30356 F2=F1
30357 AS1=PYALPS(X1**2)
30358 F1=ABS(X1-RGUT*AS1)
30359 ENDIF
30360 GOTO 100
30361 ENDIF
30362 IF(F1.LT.F2) THEN
30363 PYRNM3=X1
30364 XMIN=X1
30365 ELSE
30366 PYRNM3=X2
30367 XMIN=X2
30368 ENDIF
30369
30370 RETURN
30371 END
30372
30373
30374
30375
30376
30377
30378
30379 SUBROUTINE PYEIG4(A,W,Z)
30380
30381
30382 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
30383 IMPLICIT INTEGER(I-N)
30384 INTEGER PYK,PYCHGE,PYCOMP
30385
30386
30387 DIMENSION A(4,4),W(4),Z(4,4),X(4),D(4,4),E(4)
30388
30389
30390
30391 B3=-(A(1,1)+A(2,2)+A(3,3)+A(4,4))
30392 B2=0D0
30393 DO 110 I=1,3
30394 DO 100 J=I+1,4
30395 B2=B2+A(I,I)*A(J,J)-A(I,J)*A(J,I)
30396 100 CONTINUE
30397 110 CONTINUE
30398 B1=0D0
30399 B0=0D0
30400 DO 120 I=1,4
30401 I1=MOD(I,4)+1
30402 I2=MOD(I+1,4)+1
30403 I3=MOD(I+2,4)+1
30404 B1=B1+A(I,I)*(-A(I1,I1)*A(I2,I2)+A(I1,I2)*A(I2,I1)+
30405 & A(I1,I3)*A(I3,I1)+A(I2,I3)*A(I3,I2))-
30406 & A(I,I1)*A(I1,I2)*A(I2,I)-A(I,I2)*A(I2,I1)*A(I1,I)
30407 B0=B0+(-1D0)**(I+1)*A(1,I)*(
30408 & A(2,I1)*(A(3,I2)*A(4,I3)-A(3,I3)*A(4,I2))+
30409 & A(2,I2)*(A(3,I3)*A(4,I1)-A(3,I1)*A(4,I3))+
30410 & A(2,I3)*(A(3,I1)*A(4,I2)-A(3,I2)*A(4,I1)))
30411 120 CONTINUE
30412
30413
30414
30415
30416 C2=-B2
30417 C1=B1*B3-4D0*B0
30418 C0=-B1**2-B0*B3**2+4D0*B0*B2
30419 CQ=C1/3D0-C2**2/9D0
30420 CR=C1*C2/6D0-C0/2D0-C2**3/27D0
30421 CQR=CQ**3+CR**2
30422
30423
30424 IF(CQR.GE.0D0) THEN
30425 S1=(CR+SQRT(CQR))**(1D0/3D0)
30426 S2=(CR-SQRT(CQR))**(1D0/3D0)
30427 U=S1+S2-C2/3D0
30428 ELSE
30429 SABS=SQRT(-CQ)
30430 THE=ACOS(CR/SABS**3)/3D0
30431 SRE=SABS*COS(THE)
30432 U=2D0*SRE-C2/3D0
30433 ENDIF
30434
30435
30436 P1=B3/2D0-SQRT(B3**2/4D0+U-B2)
30437 P2=B3/2D0+SQRT(B3**2/4D0+U-B2)
30438 Q1=U/2D0+SQRT(U**2/4D0-B0)
30439 Q2=U/2D0-SQRT(U**2/4D0-B0)
30440 IF(ABS(P1*Q1+P2*Q2-B1).LT.ABS(P1*Q2+P2*Q1-B1)) THEN
30441 QSAV=Q1
30442 Q1=Q2
30443 Q2=QSAV
30444 ENDIF
30445 X(1)=-P1/2D0+SQRT(P1**2/4D0-Q1)
30446 X(2)=-P1/2D0-SQRT(P1**2/4D0-Q1)
30447 X(3)=-P2/2D0+SQRT(P2**2/4D0-Q2)
30448 X(4)=-P2/2D0-SQRT(P2**2/4D0-Q2)
30449
30450
30451 W(1)=X(1)
30452 DO 150 I1=2,4
30453 DO 130 I2=I1-1,1,-1
30454 IF(ABS(X(I1)).GE.ABS(W(I2))) GOTO 140
30455 W(I2+1)=W(I2)
30456 130 CONTINUE
30457 140 W(I2+1)=X(I1)
30458 150 CONTINUE
30459
30460
30461 DO 250 I=1,4
30462 DO 170 J1=1,4
30463 D(J1,J1)=A(J1,J1)-W(I)
30464 DO 160 J2=J1+1,4
30465 D(J1,J2)=A(J1,J2)
30466 D(J2,J1)=A(J2,J1)
30467 160 CONTINUE
30468 170 CONTINUE
30469
30470
30471 DAMAX=0D0
30472 DO 190 J1=1,4
30473 DO 180 J2=1,4
30474 IF(ABS(D(J1,J2)).LE.DAMAX) GOTO 180
30475 JA=J1
30476 JB=J2
30477 DAMAX=ABS(D(J1,J2))
30478 180 CONTINUE
30479 190 CONTINUE
30480
30481
30482 DAMAX=0D0
30483 DO 210 J3=JA+1,JA+3
30484 J1=J3-4*((J3-1)/4)
30485 RL=D(J1,JB)/D(JA,JB)
30486 DO 200 J2=1,4
30487 D(J1,J2)=D(J1,J2)-RL*D(JA,J2)
30488 IF(ABS(D(J1,J2)).LE.DAMAX) GOTO 200
30489 JC=J1
30490 JD=J2
30491 DAMAX=ABS(D(J1,J2))
30492 200 CONTINUE
30493 210 CONTINUE
30494
30495
30496 DAMAX=0D0
30497 DO 230 J3=JC+1,JC+3
30498 J1=J3-4*((J3-1)/4)
30499 IF(J1.EQ.JA) GOTO 230
30500 RL=D(J1,JD)/D(JC,JD)
30501 DO 220 J2=1,4
30502 IF(J2.EQ.JB) GOTO 220
30503 D(J1,J2)=D(J1,J2)-RL*D(JC,J2)
30504 IF(ABS(D(J1,J2)).LE.DAMAX) GOTO 220
30505 JE=J1
30506 DAMAX=ABS(D(J1,J2))
30507 220 CONTINUE
30508 230 CONTINUE
30509
30510
30511 JF1=JD+1-4*(JD/4)
30512 JF2=JD+2-4*((JD+1)/4)
30513 IF(JF1.EQ.JB) JF1=JD+3-4*((JD+2)/4)
30514 IF(JF2.EQ.JB) JF2=JD+3-4*((JD+2)/4)
30515 E(JF1)=-D(JE,JF2)
30516 E(JF2)=D(JE,JF1)
30517 E(JD)=-(D(JC,JF1)*E(JF1)+D(JC,JF2)*E(JF2))/D(JC,JD)
30518 E(JB)=-(D(JA,JF1)*E(JF1)+D(JA,JF2)*E(JF2)+D(JA,JD)*E(JD))/
30519 & D(JA,JB)
30520
30521
30522 EA=SQRT(E(1)**2+E(2)**2+E(3)**2+E(4)**2)
30523 SGN=(-1D0)**INT(PYR(0)+0.5D0)
30524 DO 240 J=1,4
30525 Z(I,J)=SGN*E(J)/EA
30526 240 CONTINUE
30527 250 CONTINUE
30528
30529 RETURN
30530 END
30531
30532
30533
30534
30535
30536
30537 SUBROUTINE PYHGGM(ALPHA)
30538
30539
30540 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
30541 IMPLICIT INTEGER(I-N)
30542 INTEGER PYK,PYCHGE,PYCOMP
30543
30544 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
30545
30546 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
30547 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
30548 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
30549 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
30550 SAVE /PYDAT1/,/PYDAT2/,/PYPARS/,/PYMSSM/
30551
30552
30553 DOUBLE PRECISION AT,AB,XMU,TANB,XM32,XMT2
30554 DOUBLE PRECISION ALPHA
30555 INTEGER I,J,IHOPT,II,JJ,IT
30556 DOUBLE PRECISION DMA,DTANB,DMQ,DMUR,DMTOP,DAU,DAD
30557 DOUBLE PRECISION DMU,DMH,DHM,DMHCH,DSA,DCA,DTANBA
30558 DOUBLE PRECISION DMC,DMDR,DMHP,DHMP,DAMP
30559 DOUBLE PRECISION DSTOP1,DSTOP2,DSBOT1,DSBOT2
30560
30561 IHOPT=IMSS(4)
30562 IF(IHOPT.EQ.2) THEN
30563 ALPHA=RMSS(18)
30564 RETURN
30565 ENDIF
30566 AT=RMSS(16)
30567 AB=RMSS(15)
30568 XMU=RMSS(4)
30569 TANB=RMSS(5)
30570
30571 DMA=RMSS(19)
30572 DTANB=TANB
30573 DMQ=RMSS(10)
30574 DMUR=RMSS(12)
30575 DMDR=RMSS(11)
30576 DMTOP=PMAS(6,1)
30577 DMC=PMAS(PYCOMP(KSUSY1+37),1)
30578 DAU=AT
30579 DAD=AB
30580 DMU=XMU
30581
30582 IF(IHOPT.EQ.0) THEN
30583 CALL PYSUBH (DMA,DTANB,DMQ,DMUR,DMTOP,DAU,DAD,DMU,DMH,DHM,
30584 & DMHCH,DSA,DCA,DTANBA)
30585 ELSEIF(IHOPT.EQ.1) THEN
30586 CALL PYSUBH (DMA,DTANB,DMQ,DMUR,DMTOP,DAU,DAD,DMU,DMH,DHM,
30587 & DMHCH,DSA,DCA,DTANBA)
30588 CALL PYPOLE(3,DMC,DMA,DTANB,DMQ,DMUR,DMDR,DMTOP,DAU,DAD,DMU,
30589 & DMH,DMHP,DHM,DHMP,DAMP,DSA,DCA,
30590 & DSTOP1,DSTOP2,DSBOT1,DSBOT2,DTANBA)
30591 DMH=DMHP
30592 DHM=DHMP
30593 DMA=DAMP
30594 IF(ABS(PMAS(PYCOMP(1000006),1)-DSTOP2).GT.5D-1) THEN
30595 WRITE(MSTU(11),*) ' STOP1 MASS DOES NOT MATCH IN PYHGGM '
30596 WRITE(MSTU(11),*) ' STOP1 MASSES = ',
30597 & PMAS(PYCOMP(1000006),1),DSTOP2
30598 ENDIF
30599 IF(ABS(PMAS(PYCOMP(2000006),1)-DSTOP1).GT.5D-1) THEN
30600 WRITE(MSTU(11),*) ' STOP2 MASS DOES NOT MATCH IN PYHGGM '
30601 WRITE(MSTU(11),*) ' STOP2 MASSES = ',
30602 & PMAS(PYCOMP(2000006),1),DSTOP1
30603 ENDIF
30604 IF(ABS(PMAS(PYCOMP(1000005),1)-DSBOT2).GT.5D-1) THEN
30605 WRITE(MSTU(11),*) ' SBOT1 MASS DOES NOT MATCH IN PYHGGM '
30606 WRITE(MSTU(11),*) ' SBOT1 MASSES = ',
30607 & PMAS(PYCOMP(1000005),1),DSBOT2
30608 ENDIF
30609 IF(ABS(PMAS(PYCOMP(2000005),1)-DSBOT1).GT.5D-1) THEN
30610 WRITE(MSTU(11),*) ' SBOT2 MASS DOES NOT MATCH IN PYHGGM '
30611 WRITE(MSTU(11),*) ' SBOT2 MASSES = ',
30612 & PMAS(PYCOMP(2000005),1),DSBOT1
30613 ENDIF
30614
30615 ENDIF
30616
30617 ALPHA=ACOS(DCA)
30618
30619 PMAS(25,1)=DMH
30620 PMAS(35,1)=DHM
30621 PMAS(36,1)=DMA
30622 PMAS(37,1)=DMHCH
30623
30624 RETURN
30625 END
30626
30627
30628
30629
30630
30631
30632
30633
30634
30635
30636
30637
30638
30639
30640
30641
30642
30643
30644
30645
30646
30647
30648
30649
30650
30651
30652
30653
30654
30655
30656
30657
30658
30659
30660
30661
30662
30663
30664
30665
30666
30667
30668
30669 SUBROUTINE PYSUBH (XMA,TANB,XMQ,XMUR,XMTOP,AU,AD,XMU,XMH,XHM,
30670 &XMHCH,SA,CA,TANBA)
30671
30672
30673 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
30674 IMPLICIT INTEGER(I-N)
30675 INTEGER PYK,PYCHGE,PYCOMP
30676
30677 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
30678
30679 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
30680 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
30681 COMMON/PYHTRI/HHH(7)
30682 SAVE /PYDAT1/,/PYDAT2/
30683
30684
30685 DOUBLE PRECISION PYALEM,PYALPS
30686 DOUBLE PRECISION TANB,XMQ,XMUR,XMTOP,AU,AD,XMU,XMH,XHM
30687 DOUBLE PRECISION XMHCH,SA,CA
30688 DOUBLE PRECISION XMA,AEM,ALP1,ALP2,ALPH3Z,V,PI
30689 DOUBLE PRECISION Q02
30690 DOUBLE PRECISION TANBA,TANBT,XMB,ALP3
30691 DOUBLE PRECISION RMTOP,XMS,T,SINB,COSB
30692 DOUBLE PRECISION XLAM1,XLAM2,XLAM3,XLAM4,XLAM5,XLAM6
30693 DOUBLE PRECISION XLAM7,XAU,XAD,G1,G2,G3,HU,HD,HU2
30694 DOUBLE PRECISION HD2,HU4,HD4,SINBT,COSBT
30695 DOUBLE PRECISION TRM2,DETM2,XMH2,XHM2,XMHCH2
30696 DOUBLE PRECISION SINALP,COSALP,AUD,PI2,XMS2,XMS4,AD2
30697 DOUBLE PRECISION COS2BT,AU2,XMU2,XMZ,XMS3
30698
30699 XMZ = PMAS(23,1)
30700 Q02=XMZ**2
30701 AEM=PYALEM(Q02)
30702 ALP1=AEM/(1D0-PARU(102))
30703 ALP2=AEM/PARU(102)
30704 ALPH3Z=PYALPS(Q02)
30705
30706 ALP1 = 0.0101D0
30707 ALP2 = 0.0337D0
30708 ALPH3Z = 0.12D0
30709
30710 V = 174.1D0
30711 PI = PARU(1)
30712 TANBA = TANB
30713 TANBT = TANB
30714
30715
30716 XMB = 3D0
30717 ALP3 = ALPH3Z/(1D0 +(11D0 - 10D0/3D0)/4D0/PI*ALPH3Z*
30718 &LOG(XMTOP**2/XMZ**2))
30719
30720
30721 RMTOP = XMTOP/(1D0+4D0*ALP3/3D0/PI)
30722 XMS = ((XMQ**2 + XMUR**2)/2D0 + XMTOP**2)**0.5D0
30723 T = LOG(XMS**2/XMTOP**2)
30724 SINB = TANB/((1D0 + TANB**2)**0.5D0)
30725 COSB = SINB/TANB
30726
30727 IF(XMA.GT.XMTOP)
30728 &TANBA = TANBT*(1D0-3D0/32D0/PI**2*
30729 &(RMTOP**2/V**2/SINB**2-XMB**2/V**2/COSB**2)*
30730 &LOG(XMA**2/XMTOP**2))
30731
30732 SINBT = TANBT/SQRT(1D0 + TANBT**2)
30733 COSBT = 1D0/SQRT(1D0 + TANBT**2)
30734 COS2BT = (TANBT**2 - 1D0)/(TANBT**2 + 1D0)
30735 G1 = SQRT(ALP1*4D0*PI)
30736 G2 = SQRT(ALP2*4D0*PI)
30737 G3 = SQRT(ALP3*4D0*PI)
30738 HU = RMTOP/V/SINBT
30739 HD = XMB/V/COSBT
30740 HU2=HU*HU
30741 HD2=HD*HD
30742 HU4=HU2*HU2
30743 HD4=HD2*HD2
30744 AU2=AU**2
30745 AD2=AD**2
30746 XMS2=XMS**2
30747 XMS3=XMS**3
30748 XMS4=XMS2*XMS2
30749 XMU2=XMU*XMU
30750 PI2=PI*PI
30751
30752 XAU = (2D0*AU2/XMS2)*(1D0 - AU2/12D0/XMS2)
30753 XAD = (2D0*AD2/XMS2)*(1D0 - AD2/12D0/XMS2)
30754 AUD = (-6D0*XMU2/XMS2 - ( XMU2- AD*AU)**2/XMS4
30755 &+ 3D0*(AU + AD)**2/XMS2)/6D0
30756 XLAM1 = ((G1**2 + G2**2)/4D0)*(1D0-3D0*HD2*T/8D0/PI2)
30757 &+(3D0*HD4/8D0/PI2) * (T + XAD/2D0 + (3D0*HD2/2D0 + HU2/2D0
30758 &- 8D0*G3**2) * (XAD*T + T**2)/16D0/PI2)
30759 &-(3D0*HU4* XMU**4/96D0/PI2/XMS4) * (1+ (9D0*HU2 -5D0* HD2
30760 &- 16D0*G3**2) *T/16D0/PI2)
30761 XLAM2 = ((G1**2 + G2**2)/4D0)*(1D0-3D0*HU2*T/8D0/PI2)
30762 &+(3D0*HU4/8D0/PI2) * (T + XAU/2D0 + (3D0*HU2/2D0 + HD2/2D0
30763 &- 8D0*G3**2) * (XAU*T + T**2)/16D0/PI2)
30764 &-(3D0*HD4* XMU**4/96D0/PI2/XMS4) * (1+ (9D0*HD2 -5D0* HU2
30765 &- 16D0*G3**2) *T/16D0/PI2)
30766 XLAM3 = ((G2**2 - G1**2)/4D0)*(1D0-3D0*
30767 &(HU2 + HD2)*T/16D0/PI2)
30768 &+(6D0*HU2*HD2/16D0/PI2) * (T + AUD/2D0 + (HU2 + HD2
30769 &- 8D0*G3**2) * (AUD*T + T**2)/16D0/PI2)
30770 &+(3D0*HU4/96D0/PI2) * (3D0*XMU2/XMS2 - XMU2*AU2/
30771 &XMS4)* (1D0+ (6D0*HU2 -2D0* HD2/2D0
30772 &- 16D0*G3**2) *T/16D0/PI2)
30773 &+(3D0*HD4/96D0/PI2) * (3D0*XMU2/XMS2 - XMU2*AD2/
30774 &XMS4)*(1D0+ (6D0*HD2 -2D0* HU2
30775 &- 16D0*G3**2) *T/16D0/PI2)
30776 XLAM4 = (- G2**2/2D0)*(1D0-3D0*(HU2 + HD2)*T/16D0/PI2)
30777 &-(6D0*HU2*HD2/16D0/PI2) * (T + AUD/2D0 + (HU2 + HD2
30778 &- 8D0*G3**2) * (AUD*T + T**2)/16D0/PI2)
30779 &+(3D0*HU4/96D0/PI2) * (3D0*XMU2/XMS2 - XMU2*AU2/
30780 &XMS4)*
30781 &(1+ (6D0*HU2 -2D0* HD2
30782 &- 16D0*G3**2) *T/16D0/PI2)
30783 &+(3D0*HD4/96D0/PI2) * (3D0*XMU2/XMS2 - XMU2*AD2/
30784 &XMS4)*
30785 &(1+ (6D0*HD2 -2D0* HU2/2D0
30786 &- 16D0*G3**2) *T/16D0/PI2)
30787 XLAM5 = -(3D0*HU4* XMU2*AU2/96D0/PI2/XMS4) *
30788 &(1- (2D0*HD2 -6D0* HU2 + 16D0*G3**2) *T/16D0/PI2)
30789 &-(3D0*HD4* XMU2*AD2/96D0/PI2/XMS4) *
30790 &(1- (2D0*HU2 -6D0* HD2 + 16D0*G3**2) *T/16D0/PI2)
30791 XLAM6 = (3D0*HU4* XMU**3*AU/96D0/PI2/XMS4) *
30792 &(1- (7D0*HD2/2D0 -15D0* HU2/2D0 + 16D0*G3**2) *T/16D0/PI2)
30793 &+(3D0*HD4* XMU *(AD**3/XMS3 - 6D0*AD/XMS )/96D0/PI2/XMS) *
30794 &(1- (HU2/2D0 -9D0* HD2/2D0 + 16D0*G3**2) *T/16D0/PI2)
30795 XLAM7 = (3D0*HD4* XMU**3*AD/96D0/PI2/XMS4) *
30796 &(1- (7D0*HU2/2D0 -15D0* HD2/2D0 + 16D0*G3**2) *T/16D0/PI2)
30797 &+(3D0*HU4* XMU *(AU**3/XMS3 - 6D0*AU/XMS )/96D0/PI2/XMS) *
30798 &(1- (HD2/2D0 -9D0* HU2/2D0 + 16D0*G3**2) *T/16D0/PI2)
30799 HHH(1)=XLAM1
30800 HHH(2)=XLAM2
30801 HHH(3)=XLAM3
30802 HHH(4)=XLAM4
30803 HHH(5)=XLAM5
30804 HHH(6)=XLAM6
30805 HHH(7)=XLAM7
30806 TRM2 = XMA**2 + 2D0*V**2* (XLAM1* COSBT**2 +
30807 &2D0* XLAM6*SINBT*COSBT
30808 &+ XLAM5*SINBT**2 + XLAM2* SINBT**2 + 2D0* XLAM7*SINBT*COSBT
30809 &+ XLAM5*COSBT**2)
30810 DETM2 = 4D0*V**4*(-(SINBT*COSBT*(XLAM3 + XLAM4) +
30811 &XLAM6*COSBT**2
30812 &+ XLAM7* SINBT**2)**2 + (XLAM1* COSBT**2 +
30813 &2D0* XLAM6* COSBT*SINBT
30814 &+ XLAM5*SINBT**2)*(XLAM2* SINBT**2 +2D0* XLAM7* COSBT*SINBT
30815 &+ XLAM5*COSBT**2)) + XMA**2*2D0*V**2 *
30816 &((XLAM1* COSBT**2 +2D0*
30817 &XLAM6* COSBT*SINBT + XLAM5*SINBT**2)*COSBT**2 +
30818 &(XLAM2* SINBT**2 +2D0* XLAM7* COSBT*SINBT + XLAM5*COSBT**2)
30819 &*SINBT**2
30820 &+2D0*SINBT*COSBT* (SINBT*COSBT*(XLAM3
30821 &+ XLAM4) + XLAM6*COSBT**2
30822 &+ XLAM7* SINBT**2))
30823
30824 XMH2 = (TRM2 - SQRT(TRM2**2 - 4D0* DETM2))/2D0
30825 XHM2 = (TRM2 + SQRT(TRM2**2 - 4D0* DETM2))/2D0
30826 XHM = SQRT(XHM2)
30827 XMH = SQRT(XMH2)
30828 XMHCH2 = XMA**2 + (XLAM5 - XLAM4)* V**2
30829 XMHCH = SQRT(XMHCH2)
30830
30831 SINALP = SQRT(((TRM2**2 - 4D0* DETM2)**0.5D0) -
30832 &((2D0*V**2*(XLAM1* COSBT**2 + 2D0*
30833 &XLAM6* COSBT*SINBT
30834 &+ XLAM5*SINBT**2) + XMA**2*SINBT**2)
30835 &- (2D0*V**2*(XLAM2* SINBT**2 +2D0* XLAM7* COSBT*SINBT
30836 &+ XLAM5*COSBT**2) + XMA**2*COSBT**2)))/
30837 &SQRT(((TRM2**2 - 4D0* DETM2)**0.5D0))/2D0**0.5D0
30838
30839 COSALP = (2D0*(2D0*V**2*(SINBT*COSBT*(XLAM3 + XLAM4) +
30840 &XLAM6*COSBT**2 + XLAM7* SINBT**2) -
30841 &XMA**2*SINBT*COSBT))/2D0**0.5D0/
30842 &SQRT(((TRM2**2 - 4D0* DETM2)**0.5D0)*
30843 &(((TRM2**2 - 4D0* DETM2)**0.5D0) -
30844 &((2D0*V**2*(XLAM1* COSBT**2 + 2D0*
30845 &XLAM6* COSBT*SINBT
30846 &+ XLAM5*SINBT**2) + XMA**2*SINBT**2)
30847 &- (2D0*V**2*(XLAM2* SINBT**2 +2D0* XLAM7* COSBT*SINBT
30848 &+ XLAM5*COSBT**2) + XMA**2*COSBT**2))))
30849
30850 SA = -SINALP
30851 CA = -COSALP
30852
30853 100 CONTINUE
30854
30855 RETURN
30856 END
30857
30858
30859
30860
30861
30862
30863
30864
30865
30866
30867
30868
30869
30870
30871
30872
30873
30874
30875
30876
30877
30878
30879
30880
30881
30882
30883
30884
30885
30886
30887
30888
30889
30890
30891
30892
30893
30894
30895
30896
30897
30898
30899
30900
30901
30902
30903
30904
30905 SUBROUTINE PYPOLE(IHIGGS,XMC,XMA,TANB,XMQ,XMUR,XMDR,XMT,AT,AB,XMU,
30906 &XMH,XMHP,HM,HMP,AMP,SA,CA,STOP1,STOP2,SBOT1,SBOT2,TANBA)
30907
30908
30909 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
30910 IMPLICIT INTEGER(I-N)
30911
30912
30913 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
30914 INTEGER PYK,PYCHGE,PYCOMP
30915
30916
30917 DIMENSION DELTA(2,2),COUPT(2,2),T(2,2),SSTOP2(2),
30918 &SSBOT2(2),B(2,2),COUPB(2,2),
30919 &HCOUPT(2,2),HCOUPB(2,2),
30920 &ACOUPT(2,2),ACOUPB(2,2),PR(3), POLAR(3)
30921
30922 DELTA(1,1) = 1D0
30923 DELTA(2,2) = 1D0
30924 DELTA(1,2) = 0D0
30925 DELTA(2,1) = 0D0
30926 V = 174.1D0
30927 XMZ=91.18D0
30928 PI=3.14159D0
30929 ALP3Z=0.12D0
30930 ALP3=1D0/(1D0/ALP3Z+23D0/6D0/PI*LOG(XMT/XMZ))
30931
30932
30933 RXMT = PYRNMT(XMT)
30934
30935 HT = RXMT /V
30936 CALL PYRGHM(XMC,XMA,TANB,XMQ,XMUR,XMDR,XMT,AT,AB,
30937 &XMU,XMH,HM,SA,CA,TANBA)
30938 SINB = TANB/(TANB**2+1D0)**0.5D0
30939 COSB = 1D0/(TANB**2+1D0)**0.5D0
30940 COS2B = SINB**2 - COSB**2
30941 SINBPA = SINB*CA + COSB*SA
30942 COSBPA = COSB*CA - SINB*SA
30943 RMBOT = 3D0
30944 XMQ2 = XMQ**2
30945 XMUR2 = XMUR**2
30946 IF(XMUR.LT.0D0) XMUR2=-XMUR2
30947 XMDR2 = XMDR**2
30948 XMST11 = RXMT**2 + XMQ2 - 0.35D0*XMZ**2*COS2B
30949 XMST22 = RXMT**2 + XMUR2 - 0.15D0*XMZ**2*COS2B
30950 IF(XMST11.LT.0D0) GOTO 500
30951 IF(XMST22.LT.0D0) GOTO 500
30952 XMSB11 = RMBOT**2 + XMQ2 + 0.42D0*XMZ**2*COS2B
30953 XMSB22 = RMBOT**2 + XMDR2 + 0.08D0*XMZ**2*COS2B
30954 IF(XMSB11.LT.0D0) GOTO 500
30955 IF(XMSB22.LT.0D0) GOTO 500
30956 WMST11 = RXMT**2 + XMQ2
30957 WMST22 = RXMT**2 + XMUR2
30958 XMST12 = RXMT*(AT - XMU/TANB)
30959 XMSB12 = RMBOT*(AB - XMU*TANB)
30960
30961
30962
30963
30964
30965 STOP12 = 0.5D0*(XMST11+XMST22) +
30966 &0.5D0*((XMST11+XMST22)**2 -
30967 &4D0*(XMST11*XMST22 - XMST12**2))**0.5D0
30968 STOP22 = 0.5D0*(XMST11+XMST22) -
30969 &0.5D0*((XMST11+XMST22)**2 - 4D0*(XMST11*XMST22 -
30970 &XMST12**2))**0.5D0
30971
30972 IF(STOP22.LT.0D0) GOTO 500
30973 SSTOP2(1) = STOP12
30974 SSTOP2(2) = STOP22
30975 STOP1 = STOP12**0.5D0
30976 STOP2 = STOP22**0.5D0
30977 STOP1W = STOP1
30978 STOP2W = STOP2
30979
30980 IF(XMST12.EQ.0D0) XST11 = 1D0
30981 IF(XMST12.EQ.0D0) XST12 = 0D0
30982 IF(XMST12.EQ.0D0) XST21 = 0D0
30983 IF(XMST12.EQ.0D0) XST22 = 1D0
30984
30985 IF(XMST12.EQ.0D0) GOTO 110
30986
30987 100 XST11 = XMST12/(XMST12**2+(XMST11-STOP12)**2)**0.5D0
30988 XST12 = - (XMST11-STOP12)/(XMST12**2+(XMST11-STOP12)**2)**0.5D0
30989 XST21 = XMST12/(XMST12**2+(XMST11-STOP22)**2)**0.5D0
30990 XST22 = - (XMST11-STOP22)/(XMST12**2+(XMST11-STOP22)**2)**0.5D0
30991
30992 110 T(1,1) = XST11
30993 T(2,2) = XST22
30994 T(1,2) = XST12
30995 T(2,1) = XST21
30996
30997 SBOT12 = 0.5D0*(XMSB11+XMSB22) +
30998 &0.5D0*((XMSB11+XMSB22)**2 -
30999 &4D0*(XMSB11*XMSB22 - XMSB12**2))**0.5D0
31000 SBOT22 = 0.5D0*(XMSB11+XMSB22) -
31001 &0.5D0*((XMSB11+XMSB22)**2 - 4D0*(XMSB11*XMSB22 -
31002 &XMSB12**2))**0.5D0
31003 IF(SBOT22.LT.0D0) GOTO 500
31004 SBOT1 = SBOT12**0.5D0
31005 SBOT2 = SBOT22**0.5D0
31006
31007 SSBOT2(1) = SBOT12
31008 SSBOT2(2) = SBOT22
31009
31010 IF(XMSB12.EQ.0D0) XSB11 = 1D0
31011 IF(XMSB12.EQ.0D0) XSB12 = 0D0
31012 IF(XMSB12.EQ.0D0) XSB21 = 0D0
31013 IF(XMSB12.EQ.0D0) XSB22 = 1D0
31014
31015 IF(XMSB12.EQ.0D0) GOTO 130
31016
31017 120 XSB11 = XMSB12/(XMSB12**2+(XMSB11-SBOT12)**2)**0.5D0
31018 XSB12 = - (XMSB11-SBOT12)/(XMSB12**2+(XMSB11-SBOT12)**2)**0.5D0
31019 XSB21 = XMSB12/(XMSB12**2+(XMSB11-SBOT22)**2)**0.5D0
31020 XSB22 = - (XMSB11-SBOT22)/(XMSB12**2+(XMSB11-SBOT22)**2)**0.5D0
31021
31022 130 B(1,1) = XSB11
31023 B(2,2) = XSB22
31024 B(1,2) = XSB12
31025 B(2,1) = XSB21
31026
31027
31028 SINT = 0.2320D0
31029 SQR = 2D0**0.5D0
31030 VP = 174.1D0*SQR
31031
31032
31033
31034
31035
31036 IF(IHIGGS.EQ.0) GOTO 490
31037
31038 DO 150 I = 1,2
31039 DO 140 J = 1,2
31040 COUPT(I,J) =
31041 & SINT*XMZ**2*2D0*SQR/174.1D0/3D0*SINBPA*(DELTA(I,J) +
31042 & (3D0 - 8D0*SINT)/4D0/SINT*T(1,I)*T(1,J))
31043 & -RXMT**2/174.1D0**2*VP/SINB*CA*DELTA(I,J)
31044 & -RXMT/VP/SINB*(AT*CA + XMU*SA)*(T(1,I)*T(2,J) +
31045 & T(1,J)*T(2,I))
31046 140 CONTINUE
31047 150 CONTINUE
31048
31049
31050 DO 170 I = 1,2
31051 DO 160 J = 1,2
31052 COUPB(I,J) =
31053 & -SINT*XMZ**2*2D0*SQR/174.1D0/6D0*SINBPA*(DELTA(I,J) +
31054 & (3D0 - 4D0*SINT)/2D0/SINT*B(1,I)*B(1,J))
31055 & +RMBOT**2/174.1D0**2*VP/COSB*SA*DELTA(I,J)
31056 & +RMBOT/VP/COSB*(AB*SA + XMU*CA)*(B(1,I)*B(2,J) +
31057 & B(1,J)*B(2,I))
31058 160 CONTINUE
31059 170 CONTINUE
31060
31061 PRUN = XMH
31062 EPS = 1D-4*PRUN
31063 ITER = 0
31064 180 ITER = ITER + 1
31065 DO 230 I3 = 1,3
31066
31067 PR(I3)=PRUN+(I3-2)*EPS/2
31068 P2=PR(I3)**2
31069 POLT = 0D0
31070 DO 200 I = 1,2
31071 DO 190 J = 1,2
31072 POLT = POLT + COUPT(I,J)**2*3D0*
31073 & PYFINT(P2,SSTOP2(I),SSTOP2(J))/16D0/PI**2
31074 190 CONTINUE
31075 200 CONTINUE
31076 POLB = 0D0
31077 DO 220 I = 1,2
31078 DO 210 J = 1,2
31079 POLB = POLB + COUPB(I,J)**2*3D0*
31080 & PYFINT(P2,SSBOT2(I),SSBOT2(J))/16D0/PI**2
31081 210 CONTINUE
31082 220 CONTINUE
31083 RXMT2 = RXMT**2
31084 XMT2=XMT**2
31085
31086 POLTT =
31087 & 3D0*RXMT**2/8D0/PI**2/ V **2*
31088 & CA**2/SINB**2 *
31089 & (-2D0*XMT**2+0.5D0*P2)*
31090 & PYFINT(P2,XMT2,XMT2)
31091
31092 POL = POLT + POLB + POLTT
31093 POLAR(I3) = P2 - XMH**2 - POL
31094 230 CONTINUE
31095 DERIV = (POLAR(3)-POLAR(1))/EPS
31096 DRUN = - POLAR(2)/DERIV
31097 PRUN = PRUN + DRUN
31098 P2 = PRUN**2
31099 IF( ABS(DRUN) .LT. 1D-4 .OR.ITER.GT.100 ) GOTO 240
31100 GOTO 180
31101 240 CONTINUE
31102
31103 XMHP = P2**0.5D0
31104
31105
31106
31107
31108
31109 250 IF(IHIGGS.EQ.1) GOTO 490
31110
31111
31112
31113
31114
31115 DO 270 I = 1,2
31116 DO 260 J = 1,2
31117 HCOUPT(I,J) =
31118 & -SINT*XMZ**2*2D0*SQR/174.1D0/3D0*COSBPA*(DELTA(I,J) +
31119 & (3D0 - 8D0*SINT)/4D0/SINT*T(1,I)*T(1,J))
31120 & -RXMT**2/174.1D0**2*VP/SINB*SA*DELTA(I,J)
31121 & -RXMT/VP/SINB*(AT*SA - XMU*CA)*(T(1,I)*T(2,J) +
31122 & T(1,J)*T(2,I))
31123 260 CONTINUE
31124 270 CONTINUE
31125
31126 DO 290 I = 1,2
31127 DO 280 J = 1,2
31128 HCOUPB(I,J) =
31129 & SINT*XMZ**2*2D0*SQR/174.1D0/6D0*COSBPA*(DELTA(I,J) +
31130 & (3D0 - 4D0*SINT)/2D0/SINT*B(1,I)*B(1,J))
31131 & -RMBOT**2/174.1D0**2*VP/COSB*CA*DELTA(I,J)
31132 & -RMBOT/VP/COSB*(AB*CA - XMU*SA)*(B(1,I)*B(2,J) +
31133 & B(1,J)*B(2,I))
31134 HCOUPB(I,J)=0D0
31135 280 CONTINUE
31136 290 CONTINUE
31137
31138 PRUN = HM
31139 EPS = 1D-4*PRUN
31140 ITER = 0
31141 300 ITER = ITER + 1
31142 DO 350 I3 = 1,3
31143 PR(I3)=PRUN+(I3-2)*EPS/2
31144 HP2=PR(I3)**2
31145
31146 HPOLT = 0D0
31147 DO 320 I = 1,2
31148 DO 310 J = 1,2
31149 HPOLT = HPOLT + HCOUPT(I,J)**2*3D0*
31150 & PYFINT(HP2,SSTOP2(I),SSTOP2(J))/16D0/PI**2
31151 310 CONTINUE
31152 320 CONTINUE
31153
31154 HPOLB = 0D0
31155 DO 340 I = 1,2
31156 DO 330 J = 1,2
31157 HPOLB = HPOLB + HCOUPB(I,J)**2*3D0*
31158 & PYFINT(HP2,SSBOT2(I),SSBOT2(J))/16D0/PI**2
31159 330 CONTINUE
31160 340 CONTINUE
31161
31162 RXMT2 = RXMT**2
31163 XMT2 = XMT**2
31164
31165 HPOLTT =
31166 & 3D0*RXMT**2/8D0/PI**2/ V **2*
31167 & SA**2/SINB**2 *
31168 & (-2D0*XMT**2+0.5D0*HP2)*
31169 & PYFINT(HP2,XMT2,XMT2)
31170
31171 HPOL = HPOLT + HPOLB + HPOLTT
31172 POLAR(I3) =HP2-HM**2-HPOL
31173 350 CONTINUE
31174 DERIV = (POLAR(3)-POLAR(1))/EPS
31175 DRUN = - POLAR(2)/DERIV
31176 PRUN = PRUN + DRUN
31177 HP2 = PRUN**2
31178 IF( ABS(DRUN) .LT. 1D-4 .OR.ITER.GT.100 ) GOTO 360
31179 GOTO 300
31180 360 CONTINUE
31181
31182
31183 370 CONTINUE
31184 HMP = HP2**0.5D0
31185
31186
31187
31188
31189
31190 IF(IHIGGS.EQ.2) GOTO 490
31191
31192
31193
31194
31195
31196 DO 390 I = 1,2
31197 DO 380 J = 1,2
31198 ACOUPT(I,J) =
31199 & -RXMT/VP/SINB*(AT*COSB + XMU*SINB)*
31200 & (T(1,I)*T(2,J) -T(1,J)*T(2,I))
31201 380 CONTINUE
31202 390 CONTINUE
31203 DO 410 I = 1,2
31204 DO 400 J = 1,2
31205 ACOUPB(I,J) =
31206 & RMBOT/VP/COSB*(AB*SINB + XMU*COSB)*
31207 & (B(1,I)*B(2,J) -B(1,J)*B(2,I))
31208 400 CONTINUE
31209 410 CONTINUE
31210
31211 PRUN = XMA
31212 EPS = 1D-4*PRUN
31213 ITER = 0
31214 420 ITER = ITER + 1
31215 DO 470 I3 = 1,3
31216 PR(I3)=PRUN+(I3-2)*EPS/2
31217 AP2=PR(I3)**2
31218 APOLT = 0D0
31219 DO 440 I = 1,2
31220 DO 430 J = 1,2
31221 APOLT = APOLT + ACOUPT(I,J)**2*3D0*
31222 & PYFINT(AP2,SSTOP2(I),SSTOP2(J))/16D0/PI**2
31223 430 CONTINUE
31224 440 CONTINUE
31225 APOLB = 0D0
31226 DO 460 I = 1,2
31227 DO 450 J = 1,2
31228 APOLB = APOLB + ACOUPB(I,J)**2*3D0*
31229 & PYFINT(AP2,SSBOT2(I),SSBOT2(J))/16D0/PI**2
31230 450 CONTINUE
31231 460 CONTINUE
31232 RXMT2 = RXMT**2
31233 XMT2=XMT**2
31234 APOLTT =
31235 & 3D0*RXMT**2/8D0/PI**2/ V **2*
31236 & COSB**2/SINB**2 *
31237 & (-0.5D0*AP2)*
31238 & PYFINT(AP2,XMT2,XMT2)
31239 APOL = APOLT + APOLB + APOLTT
31240 POLAR(I3) = AP2 - XMA**2 -APOL
31241 470 CONTINUE
31242 DERIV = (POLAR(3)-POLAR(1))/EPS
31243 DRUN = - POLAR(2)/DERIV
31244 PRUN = PRUN + DRUN
31245 AP2 = PRUN**2
31246 IF( ABS(DRUN) .LT. 1D-4 .OR.ITER.GT.100 ) GOTO 480
31247 GOTO 420
31248 480 CONTINUE
31249
31250 AMP = AP2**0.5D0
31251
31252
31253
31254
31255
31256 IF(IHIGGS.EQ.3) GOTO 490
31257
31258 490 CONTINUE
31259 RETURN
31260 500 CONTINUE
31261 WRITE(MSTU(11),*) ' EXITING IN PYVACU '
31262 WRITE(MSTU(11),*) ' XMST11,XMST22 = ',XMST11,XMST22
31263 WRITE(MSTU(11),*) ' XMSB11,XMSB22 = ',XMSB11,XMSB22
31264 WRITE(MSTU(11),*) ' STOP22,SBOT22 = ',STOP22,SBOT22
31265 STOP
31266 END
31267
31268
31269
31270
31271
31272
31273 SUBROUTINE PYVACU(IHIGGS,XMC,XMA,TANB,XMQ,XMUR,XMDR,
31274 &XMT,AT,AB,XMU,XMH,XMHP,HM,HMP,AMP,STOP1,STOP2,
31275 &SBOT1,SBOT2,SA,CA,STOP1W,STOP2W,TANBA)
31276
31277
31278 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
31279 IMPLICIT INTEGER(I-N)
31280
31281 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
31282 INTEGER PYK,PYCHGE,PYCOMP
31283
31284
31285 DIMENSION DELTA(2,2),COUPT(2,2),T(2,2),SSTOP2(2),
31286 &SSBOT2(2),B(2,2),COUPB(2,2),
31287 &HCOUPT(2,2),HCOUPB(2,2),
31288 &ACOUPT(2,2),ACOUPB(2,2),PR(3), POLAR(3)
31289
31290 DELTA(1,1) = 1D0
31291 DELTA(2,2) = 1D0
31292 DELTA(1,2) = 0D0
31293 DELTA(2,1) = 0D0
31294 V = 174.1D0
31295 XMZ=91.18D0
31296 PI=3.14159D0
31297 ALP3Z=0.12D0
31298 ALP3=1D0/(1D0/ALP3Z+23D0/6D0/PI*LOG(XMT/XMZ))
31299
31300
31301 RXMT = PYRNMT(XMT)
31302
31303 HT = RXMT /V
31304 CALL PYRGHM(XMC,XMA,TANB,XMQ,XMUR,XMDR,XMT,AT,AB,
31305 &XMU,XMH,HM,SA,CA,TANBA)
31306 SINB = TANB/(TANB**2+1D0)**0.5D0
31307 COSB = 1D0/(TANB**2+1D0)**0.5D0
31308 COS2B = SINB**2 - COSB**2
31309 SINBPA = SINB*CA + COSB*SA
31310 COSBPA = COSB*CA - SINB*SA
31311 RMBOT = 3D0
31312 XMQ2 = XMQ**2
31313 XMUR2 = XMUR**2
31314 IF(XMUR.LT.0D0) XMUR2=-XMUR2
31315 XMDR2 = XMDR**2
31316 XMST11 = RXMT**2 + XMQ2 - 0.35D0*XMZ**2*COS2B
31317 XMST22 = RXMT**2 + XMUR2 - 0.15D0*XMZ**2*COS2B
31318 IF(XMST11.LT.0D0) GOTO 500
31319 IF(XMST22.LT.0D0) GOTO 500
31320 XMSB11 = RMBOT**2 + XMQ2 + 0.42D0*XMZ**2*COS2B
31321 XMSB22 = RMBOT**2 + XMDR2 + 0.08D0*XMZ**2*COS2B
31322 IF(XMSB11.LT.0D0) GOTO 500
31323 IF(XMSB22.LT.0D0) GOTO 500
31324 WMST11 = RXMT**2 + XMQ2
31325 WMST22 = RXMT**2 + XMUR2
31326 XMST12 = RXMT*(AT - XMU/TANB)
31327 XMSB12 = RMBOT*(AB - XMU*TANB)
31328
31329
31330
31331
31332
31333 STOP12 = 0.5D0*(XMST11+XMST22) +
31334 &0.5D0*((XMST11+XMST22)**2 -
31335 &4D0*(XMST11*XMST22 - XMST12**2))**0.5D0
31336 STOP22 = 0.5D0*(XMST11+XMST22) -
31337 &0.5D0*((XMST11+XMST22)**2 - 4D0*(XMST11*XMST22 -
31338 &XMST12**2))**0.5D0
31339
31340 IF(STOP22.LT.0D0) GOTO 500
31341 SSTOP2(1) = STOP12
31342 SSTOP2(2) = STOP22
31343 STOP1 = STOP12**0.5D0
31344 STOP2 = STOP22**0.5D0
31345 STOP1W = STOP1
31346 STOP2W = STOP2
31347
31348 IF(XMST12.EQ.0D0) XST11 = 1D0
31349 IF(XMST12.EQ.0D0) XST12 = 0D0
31350 IF(XMST12.EQ.0D0) XST21 = 0D0
31351 IF(XMST12.EQ.0D0) XST22 = 1D0
31352
31353 IF(XMST12.EQ.0D0) GOTO 110
31354
31355 100 XST11 = XMST12/(XMST12**2+(XMST11-STOP12)**2)**0.5D0
31356 XST12 = - (XMST11-STOP12)/(XMST12**2+(XMST11-STOP12)**2)**0.5D0
31357 XST21 = XMST12/(XMST12**2+(XMST11-STOP22)**2)**0.5D0
31358 XST22 = - (XMST11-STOP22)/(XMST12**2+(XMST11-STOP22)**2)**0.5D0
31359
31360 110 T(1,1) = XST11
31361 T(2,2) = XST22
31362 T(1,2) = XST12
31363 T(2,1) = XST21
31364
31365 SBOT12 = 0.5D0*(XMSB11+XMSB22) +
31366 &0.5D0*((XMSB11+XMSB22)**2 -
31367 &4D0*(XMSB11*XMSB22 - XMSB12**2))**0.5D0
31368 SBOT22 = 0.5D0*(XMSB11+XMSB22) -
31369 &0.5D0*((XMSB11+XMSB22)**2 - 4D0*(XMSB11*XMSB22 -
31370 &XMSB12**2))**0.5D0
31371 IF(SBOT22.LT.0D0) GOTO 500
31372 SBOT1 = SBOT12**0.5D0
31373 SBOT2 = SBOT22**0.5D0
31374
31375 SSBOT2(1) = SBOT12
31376 SSBOT2(2) = SBOT22
31377
31378 IF(XMSB12.EQ.0D0) XSB11 = 1D0
31379 IF(XMSB12.EQ.0D0) XSB12 = 0D0
31380 IF(XMSB12.EQ.0D0) XSB21 = 0D0
31381 IF(XMSB12.EQ.0D0) XSB22 = 1D0
31382
31383 IF(XMSB12.EQ.0D0) GOTO 130
31384
31385 120 XSB11 = XMSB12/(XMSB12**2+(XMSB11-SBOT12)**2)**0.5D0
31386 XSB12 = - (XMSB11-SBOT12)/(XMSB12**2+(XMSB11-SBOT12)**2)**0.5D0
31387 XSB21 = XMSB12/(XMSB12**2+(XMSB11-SBOT22)**2)**0.5D0
31388 XSB22 = - (XMSB11-SBOT22)/(XMSB12**2+(XMSB11-SBOT22)**2)**0.5D0
31389
31390 130 B(1,1) = XSB11
31391 B(2,2) = XSB22
31392 B(1,2) = XSB12
31393 B(2,1) = XSB21
31394
31395
31396 SINT = 0.2320D0
31397 SQR = 2D0**0.5D0
31398 VP = 174.1D0*SQR
31399
31400
31401
31402
31403
31404 IF(IHIGGS.EQ.0) GOTO 490
31405
31406 DO 150 I = 1,2
31407 DO 140 J = 1,2
31408 COUPT(I,J) =
31409 & SINT*XMZ**2*2D0*SQR/174.1D0/3D0*SINBPA*(DELTA(I,J) +
31410 & (3D0 - 8D0*SINT)/4D0/SINT*T(1,I)*T(1,J))
31411 & -RXMT**2/174.1D0**2*VP/SINB*CA*DELTA(I,J)
31412 & -RXMT/VP/SINB*(AT*CA + XMU*SA)*(T(1,I)*T(2,J) +
31413 & T(1,J)*T(2,I))
31414 140 CONTINUE
31415 150 CONTINUE
31416
31417
31418 DO 170 I = 1,2
31419 DO 160 J = 1,2
31420 COUPB(I,J) =
31421 & -SINT*XMZ**2*2D0*SQR/174.1D0/6D0*SINBPA*(DELTA(I,J) +
31422 & (3D0 - 4D0*SINT)/2D0/SINT*B(1,I)*B(1,J))
31423 & +RMBOT**2/174.1D0**2*VP/COSB*SA*DELTA(I,J)
31424 & +RMBOT/VP/COSB*(AB*SA + XMU*CA)*(B(1,I)*B(2,J) +
31425 & B(1,J)*B(2,I))
31426 160 CONTINUE
31427 170 CONTINUE
31428
31429 PRUN = XMH
31430 EPS = 1D-4*PRUN
31431 ITER = 0
31432 180 ITER = ITER + 1
31433 DO 230 I3 = 1,3
31434
31435 PR(I3)=PRUN+(I3-2)*EPS/2
31436 P2=PR(I3)**2
31437 POLT = 0D0
31438 DO 200 I = 1,2
31439 DO 190 J = 1,2
31440 POLT = POLT + COUPT(I,J)**2*3D0*
31441 & PYFINT(P2,SSTOP2(I),SSTOP2(J))/16D0/PI**2
31442 190 CONTINUE
31443 200 CONTINUE
31444 POLB = 0D0
31445 DO 220 I = 1,2
31446 DO 210 J = 1,2
31447 POLB = POLB + COUPB(I,J)**2*3D0*
31448 & PYFINT(P2,SSBOT2(I),SSBOT2(J))/16D0/PI**2
31449 210 CONTINUE
31450 220 CONTINUE
31451 RXMT2 = RXMT**2
31452 XMT2=XMT**2
31453
31454 POLTT =
31455 & 3D0*RXMT**2/8D0/PI**2/ V **2*
31456 & CA**2/SINB**2 *
31457 & (-2D0*XMT**2+0.5D0*P2)*
31458 & PYFINT(P2,XMT2,XMT2)
31459
31460 POL = POLT + POLB + POLTT
31461 POLAR(I3) = P2 - XMH**2 - POL
31462 230 CONTINUE
31463 DERIV = (POLAR(3)-POLAR(1))/EPS
31464 DRUN = - POLAR(2)/DERIV
31465 PRUN = PRUN + DRUN
31466 P2 = PRUN**2
31467 IF( ABS(DRUN) .LT. 1D-4 ) GOTO 240
31468 GOTO 180
31469 240 CONTINUE
31470
31471 XMHP = P2**0.5D0
31472
31473
31474
31475
31476
31477 250 IF(IHIGGS.EQ.1) GOTO 490
31478
31479
31480
31481
31482
31483 DO 270 I = 1,2
31484 DO 260 J = 1,2
31485 HCOUPT(I,J) =
31486 & -SINT*XMZ**2*2D0*SQR/174.1D0/3D0*COSBPA*(DELTA(I,J) +
31487 & (3D0 - 8D0*SINT)/4D0/SINT*T(1,I)*T(1,J))
31488 & -RXMT**2/174.1D0**2*VP/SINB*SA*DELTA(I,J)
31489 & -RXMT/VP/SINB*(AT*SA - XMU*CA)*(T(1,I)*T(2,J) +
31490 & T(1,J)*T(2,I))
31491 260 CONTINUE
31492 270 CONTINUE
31493
31494 DO 290 I = 1,2
31495 DO 280 J = 1,2
31496 HCOUPB(I,J) =
31497 & SINT*XMZ**2*2D0*SQR/174.1D0/6D0*COSBPA*(DELTA(I,J) +
31498 & (3D0 - 4D0*SINT)/2D0/SINT*B(1,I)*B(1,J))
31499 & -RMBOT**2/174.1D0**2*VP/COSB*CA*DELTA(I,J)
31500 & -RMBOT/VP/COSB*(AB*CA - XMU*SA)*(B(1,I)*B(2,J) +
31501 & B(1,J)*B(2,I))
31502 HCOUPB(I,J)=0D0
31503 280 CONTINUE
31504 290 CONTINUE
31505
31506 PRUN = HM
31507 EPS = 1D-4*PRUN
31508 ITER = 0
31509 300 ITER = ITER + 1
31510 DO 350 I3 = 1,3
31511 PR(I3)=PRUN+(I3-2)*EPS/2
31512 HP2=PR(I3)**2
31513
31514 HPOLT = 0D0
31515 DO 320 I = 1,2
31516 DO 310 J = 1,2
31517 HPOLT = HPOLT + HCOUPT(I,J)**2*3D0*
31518 & PYFINT(HP2,SSTOP2(I),SSTOP2(J))/16D0/PI**2
31519 310 CONTINUE
31520 320 CONTINUE
31521
31522 HPOLB = 0D0
31523 DO 340 I = 1,2
31524 DO 330 J = 1,2
31525 HPOLB = HPOLB + HCOUPB(I,J)**2*3D0*
31526 & PYFINT(HP2,SSBOT2(I),SSBOT2(J))/16D0/PI**2
31527 330 CONTINUE
31528 340 CONTINUE
31529
31530 RXMT2 = RXMT**2
31531 XMT2 = XMT**2
31532
31533 HPOLTT =
31534 & 3D0*RXMT**2/8D0/PI**2/ V **2*
31535 & SA**2/SINB**2 *
31536 & (-2D0*XMT**2+0.5D0*HP2)*
31537 & PYFINT(HP2,XMT2,XMT2)
31538
31539 HPOL = HPOLT + HPOLB + HPOLTT
31540 POLAR(I3) =HP2-HM**2-HPOL
31541 350 CONTINUE
31542 DERIV = (POLAR(3)-POLAR(1))/EPS
31543 DRUN = - POLAR(2)/DERIV
31544 PRUN = PRUN + DRUN
31545 HP2 = PRUN**2
31546 IF( ABS(DRUN) .LT. 1D-4 ) GOTO 360
31547 GOTO 300
31548 360 CONTINUE
31549
31550
31551 370 CONTINUE
31552 HMP = HP2**0.5D0
31553
31554
31555
31556
31557
31558 IF(IHIGGS.EQ.2) GOTO 490
31559
31560
31561
31562
31563
31564 DO 390 I = 1,2
31565 DO 380 J = 1,2
31566 ACOUPT(I,J) =
31567 & -RXMT/VP/SINB*(AT*COSB + XMU*SINB)*
31568 & (T(1,I)*T(2,J) -T(1,J)*T(2,I))
31569 380 CONTINUE
31570 390 CONTINUE
31571 DO 410 I = 1,2
31572 DO 400 J = 1,2
31573 ACOUPB(I,J) =
31574 & RMBOT/VP/COSB*(AB*SINB + XMU*COSB)*
31575 & (B(1,I)*B(2,J) -B(1,J)*B(2,I))
31576 400 CONTINUE
31577 410 CONTINUE
31578
31579 PRUN = XMA
31580 EPS = 1D-4*PRUN
31581 ITER = 0
31582 420 ITER = ITER + 1
31583 DO 470 I3 = 1,3
31584 PR(I3)=PRUN+(I3-2)*EPS/2
31585 AP2=PR(I3)**2
31586 APOLT = 0D0
31587 DO 440 I = 1,2
31588 DO 430 J = 1,2
31589 APOLT = APOLT + ACOUPT(I,J)**2*3D0*
31590 & PYFINT(AP2,SSTOP2(I),SSTOP2(J))/16D0/PI**2
31591 430 CONTINUE
31592 440 CONTINUE
31593 APOLB = 0D0
31594 DO 460 I = 1,2
31595 DO 450 J = 1,2
31596 APOLB = APOLB + ACOUPB(I,J)**2*3D0*
31597 & PYFINT(AP2,SSBOT2(I),SSBOT2(J))/16D0/PI**2
31598 450 CONTINUE
31599 460 CONTINUE
31600 RXMT2 = RXMT**2
31601 XMT2=XMT**2
31602 APOLTT =
31603 & 3D0*RXMT**2/8D0/PI**2/ V **2*
31604 & COSB**2/SINB**2 *
31605 & (-0.5D0*AP2)*
31606 & PYFINT(AP2,XMT2,XMT2)
31607 APOL = APOLT + APOLB + APOLTT
31608 POLAR(I3) = AP2 - XMA**2 -APOL
31609 470 CONTINUE
31610 DERIV = (POLAR(3)-POLAR(1))/EPS
31611 DRUN = - POLAR(2)/DERIV
31612 PRUN = PRUN + DRUN
31613 AP2 = PRUN**2
31614 IF( ABS(DRUN) .LT. 1D-4 ) GOTO 480
31615 GOTO 420
31616 480 CONTINUE
31617
31618 AMP = AP2**0.5D0
31619
31620
31621
31622
31623
31624 IF(IHIGGS.EQ.3) GOTO 490
31625
31626 490 CONTINUE
31627 RETURN
31628 500 CONTINUE
31629 WRITE(MSTU(11),*) ' EXITING IN PYVACU '
31630 WRITE(MSTU(11),*) ' XMST11,XMST22 = ',XMST11,XMST22
31631 WRITE(MSTU(11),*) ' XMSB11,XMSB22 = ',XMSB11,XMSB22
31632 WRITE(MSTU(11),*) ' STOP22,SBOT22 = ',STOP22,SBOT22
31633 STOP
31634 END
31635
31636
31637
31638
31639
31640
31641 SUBROUTINE PYRGHM(XMC,XMA,TANB,XMQ,XMUR,XMDL,XMT,AU,AD,XMU,
31642 &XMHP,HMP,SA,CA,TANBA)
31643
31644
31645 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
31646 IMPLICIT INTEGER(I-N)
31647 INTEGER PYK,PYCHGE,PYCOMP
31648 COMMON/PYHTRI/HHH(7)
31649
31650
31651 DIMENSION VH(2,2),XM2(2,2),XM2P(2,2)
31652
31653 XMZ = 91.18D0
31654 ALP1 = 0.0101D0
31655 ALP2 = 0.0337D0
31656 ALP3Z = 0.12D0
31657 V = 174.1D0
31658 PI = 3.14159D0
31659 TANBA = TANB
31660 TANBT = TANB
31661
31662
31663 XMB = 3D0
31664 ALP3 = ALP3Z/(1D0 +(11D0 - 10D0/3D0)/4D0/PI*ALP3Z*
31665 &LOG(XMT**2/XMZ**2))
31666
31667
31668 RXMT = XMT/(1D0+4D0*ALP3/3D0/PI)
31669 TQ = LOG((XMQ**2+XMT**2)/XMT**2)
31670 TU = LOG((XMUR**2 + XMT**2)/XMT**2)
31671 TD = LOG((XMDL**2 + XMT**2)/XMT**2)
31672 SINB = TANB/((1D0 + TANB**2)**0.5D0)
31673 COSB = SINB/TANB
31674 IF(XMA.GT.XMT)
31675 &TANBA = TANB*(1D0-3D0/32D0/PI**2*
31676 &(RXMT**2/V**2/SINB**2-XMB**2/V**2/COSB**2)*
31677 &LOG(XMA**2/XMT**2))
31678 IF(XMA.LT.XMT.OR.XMA.EQ.XMT) TANBT = TANBA
31679 SINB = TANBT/((1D0 + TANBT**2)**0.5D0)
31680 COSB = 1D0/((1D0 + TANBT**2)**0.5D0)
31681 COS2B = (TANBT**2 - 1D0)/(TANBT**2 + 1D0)
31682 G1 = (ALP1*4D0*PI)**0.5D0
31683 G2 = (ALP2*4D0*PI)**0.5D0
31684 G3 = (ALP3*4D0*PI)**0.5D0
31685 HU = RXMT/V/SINB
31686 HD = XMB/V/COSB
31687
31688 CALL PYGFXX(XMA,TANBA,XMQ,XMUR,XMDL,XMT,AU,AD,
31689 &XMU,VH,STOP1,STOP2)
31690
31691 IF(XMQ.GT.XMUR) TP = TQ - TU
31692 IF(XMQ.LT.XMUR.OR.XMQ.EQ.XMUR) TP = TU - TQ
31693 IF(XMQ.GT.XMUR) TDP = TU
31694 IF(XMQ.LT.XMUR.OR.XMQ.EQ.XMUR) TDP = TQ
31695 IF(XMQ.GT.XMDL) TPD = TQ - TD
31696 IF(XMQ.LT.XMDL.OR.XMQ.EQ.XMDL) TPD = TD - TQ
31697 IF(XMQ.GT.XMDL) TDPD = TD
31698 IF(XMQ.LT.XMDL.OR.XMQ.EQ.XMDL) TDPD = TQ
31699
31700 IF(XMQ.GT.XMDL) DLAM1 = 6D0/96D0/PI**2*G1**2*HD**2*TPD
31701 IF(XMQ.LT.XMDL.OR.XMQ.EQ.XMDL) DLAM1 = 3D0/32D0/PI**2*
31702 &HD**2*(G1**2/3D0+G2**2)*TPD
31703
31704 IF(XMQ.GT.XMUR) DLAM2 =12D0/96D0/PI**2*G1**2*HU**2*TP
31705 IF(XMQ.LT.XMUR.OR.XMQ.EQ.XMUR) DLAM2 = 3D0/32D0/PI**2*
31706 &HU**2*(-G1**2/3D0+G2**2)*TP
31707
31708 DLAM3 = 0D0
31709 DLAM4 = 0D0
31710
31711 IF(XMQ.GT.XMDL) DLAM3 = -1D0/32D0/PI**2*G1**2*HD**2*TPD
31712 IF(XMQ.LT.XMDL.OR.XMQ.EQ.XMDL) DLAM3 = 3D0/64D0/PI**2*HD**2*
31713 &(G2**2-G1**2/3D0)*TPD
31714
31715 IF(XMQ.GT.XMUR) DLAM3 = DLAM3 -
31716 &1D0/16D0/PI**2*G1**2*HU**2*TP
31717 IF(XMQ.LT.XMUR.OR.XMQ.EQ.XMUR) DLAM3 = DLAM3 +
31718 &3D0/64D0/PI**2*HU**2*(G2**2+G1**2/3D0)*TP
31719
31720 IF(XMQ.LT.XMUR) DLAM4 = -3D0/32D0/PI**2*G2**2*HU**2*TP
31721 IF(XMQ.LT.XMDL) DLAM4 = DLAM4 - 3D0/32D0/PI**2*G2**2*
31722 &HD**2*TPD
31723
31724 XLAM1 = ((G1**2 + G2**2)/4D0)*
31725 &(1D0-3D0*HD**2*(TPD + TDPD)/8D0/PI**2)
31726 &+(3D0*HD**4/16D0/PI**2) *TPD*(1D0
31727 &+ (3D0*HD**2/2D0 + HU**2/2D0
31728 &- 8D0*G3**2) * (TPD + 2D0*TDPD)/16D0/PI**2)
31729 &+(3D0*HD**4/8D0/PI**2) *TDPD*(1D0 + (3D0*HD**2/2D0 + HU**2/2D0
31730 &- 8D0*G3**2) * TDPD/16D0/PI**2) + DLAM1
31731 XLAM2 = ((G1**2 + G2**2)/4D0)*(1D0-3D0*HU**2*
31732 &(TP + TDP)/8D0/PI**2)
31733 &+(3D0*HU**4/16D0/PI**2) *TP*(1D0
31734 &+ (3D0*HU**2/2D0 + HD**2/2D0
31735 &- 8D0*G3**2) * (TP + 2D0*TDP)/16D0/PI**2)
31736 &+(3D0*HU**4/8D0/PI**2) *TDP*(1D0 + (3D0*HU**2/2D0 + HD**2/2D0
31737 &- 8D0*G3**2) * TDP/16D0/PI**2) + DLAM2
31738 XLAM3 = ((G2**2 - G1**2)/4D0)*(1D0-3D0*
31739 &(HU**2)*(TP + TDP)/16D0/PI**2 -3D0*
31740 &(HD**2)*(TPD + TDPD)/16D0/PI**2) +DLAM3
31741 XLAM4 = (- G2**2/2D0)*(1D0
31742 &-3D0*(HU**2)*(TP + TDP)/16D0/PI**2
31743 &-3D0*(HD**2)*(TPD + TDPD)/16D0/PI**2) +DLAM4
31744
31745 XLAM5 = 0D0
31746 XLAM6 = 0D0
31747 XLAM7 = 0D0
31748
31749
31750
31751
31752
31753
31754
31755
31756
31757
31758 XM2(1,1) = 2D0*V**2*(XLAM1*COSB**2+2D0*XLAM6*
31759 &COSB*SINB + XLAM5*SINB**2) + XMA**2*SINB**2
31760
31761 XM2(2,2) = 2D0*V**2*(XLAM5*COSB**2+2D0*XLAM7*
31762 &COSB*SINB + XLAM2*SINB**2) + XMA**2*COSB**2
31763 XM2(1,2) = 2D0*V**2*(XLAM6*COSB**2+(XLAM3+XLAM4)*
31764 &COSB*SINB + XLAM7*SINB**2) - XMA**2*SINB*COSB
31765
31766 XM2(2,1) = XM2(1,2)
31767
31768
31769
31770
31771
31772 XMSSU=(0.5D0*(XMQ**2+XMUR**2)+XMT**2)**0.5D0
31773
31774 IF(XMC.GT.XMSSU) GOTO 100
31775 IF(XMC.LT.XMT) XMC=XMT
31776
31777 TCHAR=LOG(XMSSU**2/XMC**2)
31778
31779 DEL12=(9D0/64D0/PI**2*G2**4+5D0/192D0/PI**2*G1**4)*TCHAR
31780 DEL3P4=(3D0/64D0/PI**2*G2**4+7D0/192D0/PI**2*G1**4
31781 &+4D0/32/PI**2*G1**2*G2**2)*TCHAR
31782
31783 DEM112=2D0*DEL12*V**2*COSB**2
31784 DEM222=2D0*DEL12*V**2*SINB**2
31785 DEM122=2D0*DEL3P4*V**2*SINB*COSB
31786
31787 XM2(1,1)=XM2(1,1)+DEM112
31788 XM2(2,2)=XM2(2,2)+DEM222
31789 XM2(1,2)=XM2(1,2)+DEM122
31790 XM2(2,1)=XM2(2,1)+DEM122
31791
31792 100 CONTINUE
31793
31794
31795
31796
31797
31798 DO 120 I = 1,2
31799 DO 110 J = 1,2
31800 XM2P(I,J) = XM2(I,J) + VH(I,J)
31801 110 CONTINUE
31802 120 CONTINUE
31803
31804 TRM2P = XM2P(1,1) + XM2P(2,2)
31805 DETM2P = XM2P(1,1)*XM2P(2,2) - XM2P(1,2)*XM2P(2,1)
31806
31807 XMH2P = (TRM2P - (TRM2P**2 - 4D0* DETM2P)**0.5D0)/2D0
31808 HM2P = (TRM2P + (TRM2P**2 - 4D0* DETM2P)**0.5D0)/2D0
31809 HMP = HM2P**0.5D0
31810 IF(XMH2P.LT.0D0) GOTO 130
31811 XMHP = XMH2P**0.5D0
31812 S2ALP = 2D0*XM2P(1,2)/(TRM2P**2-4D0*DETM2P)**0.5D0
31813 C2ALP = (XM2P(1,1)-XM2P(2,2))/(TRM2P**2-4D0*DETM2P)**0.5D0
31814 IF(C2ALP.GT.0D0) ALP = ASIN(S2ALP)/2D0
31815 IF(C2ALP.LT.0D0) ALP = -PI/2D0-ASIN(S2ALP)/2D0
31816 SA = SIN(ALP)
31817 CA = COS(ALP)
31818 SQBMA = (SINB*CA - COSB*SA)**2
31819 130 XIN = 1D0
31820 140 CONTINUE
31821
31822 RETURN
31823 END
31824
31825
31826
31827
31828
31829
31830 SUBROUTINE PYGFXX(XMA,TANB,XMQ,XMUR,XMDL,XMT,AT,AB,XMU,VH,
31831 &STOP1,STOP2)
31832
31833
31834 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
31835 IMPLICIT INTEGER(I-N)
31836 INTEGER PYK,PYCHGE,PYCOMP
31837
31838
31839 DIMENSION DIAH(2),VH(2,2),VH1(2,2),VH2(2,2),
31840 &VH3T(2,2),VH3B(2,2),
31841 &HMIX(2,2),AL(2,2),XM2(2,2)
31842
31843
31844 G(X,Y) = 2D0 - (X+Y)/(X-Y)*LOG(X/Y)
31845
31846 IF(DABS(XMU).LT.0.000001D0) XMU = 0.000001D0
31847 XMQ2 = XMQ**2
31848 XMUR2 = XMUR**2
31849 XMDL2 = XMDL**2
31850 TANBA = TANB
31851 SINBA = TANBA/(TANBA**2+1D0)**0.5D0
31852 COSBA = SINBA/TANBA
31853
31854 SINB = TANB/(TANB**2+1D0)**0.5D0
31855 COSB = SINB/TANB
31856 PI = 3.14159D0
31857 G2 = (0.0336D0*4D0*PI)**0.5D0
31858 G12 = (0.0101D0*4D0*PI)
31859 G1 = G12**0.5D0
31860 XMZ = 91.18D0
31861 V = 174.1D0
31862 MW = (G2**2*V**2/2D0)**0.5D0
31863 ALP3 = 0.12D0/(1D0+23/12D0/PI*0.12D0*LOG(XMT**2/XMZ**2))
31864
31865 XMB = 3D0
31866 IF(XMQ.GT.XMUR) XMST = XMQ
31867 IF(XMUR.GT.XMQ.OR.XMUR.EQ.XMQ) XMST = XMUR
31868
31869 XMSUT = (XMST**2 + XMT**2)**0.5D0
31870
31871 IF(XMQ.GT.XMDL) XMSB = XMQ
31872 IF(XMDL.GT.XMQ.OR.XMDL.EQ.XMQ) XMSB = XMDL
31873
31874 XMSUB = (XMSB**2 + XMB**2)**0.5D0
31875
31876 TT = LOG(XMSUT**2/XMT**2)
31877 TB = LOG(XMSUB**2/XMT**2)
31878
31879 RXMT = XMT/(1D0+4D0*ALP3/3D0/PI)
31880 HT = RXMT/(174.1D0*SINB)
31881 HTST = RXMT/174.1D0
31882 HB = XMB/174.1D0/COSB
31883 G32 = ALP3*4D0*PI
31884 BT2 = -(8D0*G32 - 9D0*HT**2/2D0 - HB**2/2D0)/(4D0*PI)**2
31885 BB2 = -(8D0*G32 - 9D0*HB**2/2D0 - HT**2/2D0)/(4D0*PI)**2
31886 AL2 = 3D0/8D0/PI**2*HT**2
31887 BT2ST = -(8D0*G32 - 9D0*HTST**2/2D0)/(4D0*PI)**2
31888 ALST = 3D0/8D0/PI**2*HTST**2
31889 AL1 = 3D0/8D0/PI**2*HB**2
31890
31891 AL(1,1) = AL1
31892 AL(1,2) = (AL2+AL1)/2D0
31893 AL(2,1) = (AL2+AL1)/2D0
31894 AL(2,2) = AL2
31895
31896 XMT4 = RXMT**4*(1D0+2D0*BT2*TT- AL2*TT)
31897 XMT2 = SQRT(XMT4)
31898 XMBOT4 = XMB**4*(1D0+2D0*BB2*TB - AL1*TB)
31899 XMBOT2 = SQRT(XMBOT4)
31900
31901 IF(XMA.GT.XMT) THEN
31902 VI = 174.1D0*(1D0 + 3D0/32D0/PI**2*HTST**2*
31903 & LOG(XMT**2/XMA**2))
31904 H1I = VI* COSBA
31905 H2I = VI*SINBA
31906 H1T = H1I*(1D0+3D0/8D0/PI**2*HB**2*LOG(XMA**2/XMSUT**2))**0.25D0
31907 H2T = H2I*(1D0+3D0/8D0/PI**2*HT**2*LOG(XMA**2/XMSUT**2))**0.25D0
31908 H1B = H1I*(1D0+3D0/8D0/PI**2*HB**2*LOG(XMA**2/XMSUB**2))**0.25D0
31909 H2B = H2I*(1D0+3D0/8D0/PI**2*HT**2*LOG(XMA**2/XMSUB**2))**0.25D0
31910 ELSE
31911 VI = 174.1D0
31912 H1I = VI*COSB
31913 H2I = VI*SINB
31914 H1T = H1I*(1D0+3D0/8D0/PI**2*HB**2*LOG(XMT**2/XMSUT**2))**0.25D0
31915 H2T = H2I*(1D0+3D0/8D0/PI**2*HT**2*LOG(XMT**2/XMSUT**2))**0.25D0
31916 H1B = H1I*(1D0+3D0/8D0/PI**2*HB**2*LOG(XMT**2/XMSUB**2))**0.25D0
31917 H2B = H2I*(1D0+3D0/8D0/PI**2*HT**2*LOG(XMT**2/XMSUB**2))**0.25D0
31918 ENDIF
31919
31920 TANBST = H2T/H1T
31921 SINBT = TANBST/(1D0+TANBST**2)**0.5D0
31922 COSBT = SINBT/TANBST
31923
31924 TANBSB = H2B/H1B
31925 SINBB = TANBSB/(1D0+TANBSB**2)**0.5D0
31926 COSBB = SINBB/TANBSB
31927
31928 STOP12 = (XMQ2 + XMUR2)*0.5D0 + XMT2
31929 &+1D0/8D0*(G2**2+G1**2)*(H1T**2-H2T**2)
31930 &+(((G2**2-5D0*G1**2/3D0)/4D0*(H1T**2-H2T**2) +
31931 &XMQ2 - XMUR2)**2*0.25D0 + XMT2*(AT-XMU/TANBST)**2)**0.5D0
31932 STOP22 = (XMQ2 + XMUR2)*0.5D0 + XMT2
31933 &+1D0/8D0*(G2**2+G1**2)*(H1T**2-H2T**2)
31934 &- (((G2**2-5D0*G1**2/3D0)/4D0*(H1T**2-H2T**2) +
31935 &XMQ2 - XMUR2)**2*0.25D0
31936 &+ XMT2*(AT-XMU/TANBST)**2)**0.5D0
31937 IF(STOP22.LT.0D0) GOTO 120
31938 SBOT12 = (XMQ2 + XMDL2)*0.5D0
31939 &- 1D0/8D0*(G2**2+G1**2)*(H1B**2-H2B**2)
31940 &+ (((G1**2/3D0-G2**2)/4D0*(H1B**2-H2B**2) +
31941 &XMQ2 - XMDL2)**2*0.25D0 + XMBOT2*(AB-XMU*TANBSB)**2)**0.5D0
31942 SBOT22 = (XMQ2 + XMDL2)*0.5D0
31943 &- 1D0/8D0*(G2**2+G1**2)*(H1B**2-H2B**2)
31944 &- (((G1**2/3D0-G2**2)/4D0*(H1B**2-H2B**2) +
31945 &XMQ2 - XMDL2)**2*0.25D0 + XMBOT2*(AB-XMU*TANBSB)**2)**0.5D0
31946 IF(SBOT22.LT.0D0) GOTO 120
31947
31948 STOP1 = STOP12**0.5D0
31949 STOP2 = STOP22**0.5D0
31950 SBOT1 = SBOT12**0.5D0
31951 SBOT2 = SBOT22**0.5D0
31952
31953 VH1(1,1) = 1D0/TANBST
31954 VH1(2,1) = -1D0
31955 VH1(1,2) = -1D0
31956 VH1(2,2) = TANBST
31957 VH2(1,1) = TANBST
31958 VH2(1,2) = -1D0
31959 VH2(2,1) = -1D0
31960 VH2(2,2) = 1D0/TANBST
31961
31962
31963
31964
31965 STW=0.2320D0
31966
31967 F1T=(XMQ2-XMUR2)/(STOP12-STOP22)*(0.5D0-4D0/3D0*STW)*
31968 &LOG(STOP1/STOP2)
31969 &+(0.5D0-2D0/3D0*STW)*LOG(STOP1*STOP2/(XMQ2+XMT2))
31970 &+ 2D0/3D0*STW*LOG(STOP1*STOP2/(XMUR2+XMT2))
31971
31972 F1B=(XMQ2-XMDL2)/(SBOT12-SBOT22)*(-0.5D0+2D0/3D0*STW)*
31973 &LOG(SBOT1/SBOT2)
31974 &+(-0.5D0+1D0/3D0*STW)*LOG(SBOT1*SBOT2/(XMQ2+XMBOT2))
31975 &- 1D0/3D0*STW*LOG(SBOT1*SBOT2/(XMDL2+XMBOT2))
31976
31977 F2T=XMT2**0.5D0*(AT-XMU/TANBST)/(STOP12-STOP22)*
31978 &(-0.5D0*LOG(STOP12/STOP22)
31979 &+(4D0/3D0*STW-0.5D0)*(XMQ2-XMUR2)/(STOP12-STOP22)*
31980 &G(STOP12,STOP22))
31981
31982 F2B=XMBOT2**0.5D0*(AB-XMU*TANBSB)/(SBOT12-SBOT22)*
31983 &(0.5D0*LOG(SBOT12/SBOT22)
31984 &+(-2D0/3D0*STW+0.5D0)*(XMQ2-XMDL2)/(SBOT12-SBOT22)*
31985 &G(SBOT12,SBOT22))
31986
31987 VH3B(1,1) = XMBOT4/(COSBB**2)*(LOG(SBOT1**2*SBOT2**2/
31988 &(XMQ2+XMBOT2)/(XMDL2+XMBOT2))
31989 &+ 2D0*(AB*(AB-XMU*TANBSB)/(SBOT1**2-SBOT2**2))*
31990 &LOG(SBOT1**2/SBOT2**2)) +
31991 &XMBOT4/(COSBB**2)*(AB*(AB-XMU*TANBSB)/
31992 &(SBOT1**2-SBOT2**2))**2*G(SBOT12,SBOT22)
31993
31994 VH3T(1,1) =
31995 &XMT4/(SINBT**2)*(XMU*(-AT+XMU/TANBST)/(STOP1**2
31996 &-STOP2**2))**2*G(STOP12,STOP22)
31997
31998 VH3B(1,1)=VH3B(1,1)+
31999 &XMZ**2*(2*XMBOT2*F1B-XMBOT2**0.5D0*AB*F2B)
32000
32001 VH3T(1,1) = VH3T(1,1) +
32002 &XMZ**2*(XMT2**0.5D0*XMU/TANBST*F2T)
32003
32004 VH3T(2,2) = XMT4/(SINBT**2)*(LOG(STOP1**2*STOP2**2/
32005 &(XMQ2+XMT2)/(XMUR2+XMT2))
32006 &+ 2D0*(AT*(AT-XMU/TANBST)/(STOP1**2-STOP2**2))*
32007 &LOG(STOP1**2/STOP2**2)) +
32008 &XMT4/(SINBT**2)*(AT*(AT-XMU/TANBST)/
32009 &(STOP1**2-STOP2**2))**2*G(STOP12,STOP22)
32010
32011 VH3B(2,2) =
32012 &XMBOT4/(COSBB**2)*(XMU*(-AB+XMU*TANBSB)/(SBOT1**2
32013 &-SBOT2**2))**2*G(SBOT12,SBOT22)
32014
32015 VH3T(2,2)=VH3T(2,2)+
32016 &XMZ**2*(-2*XMT2*F1T+XMT2**0.5D0*AT*F2T)
32017
32018 VH3B(2,2) = VH3B(2,2) -XMZ**2*XMBOT2**0.5D0*XMU*TANBSB*F2B
32019
32020 VH3T(1,2) = -
32021 &XMT4/(SINBT**2)*XMU*(AT-XMU/TANBST)/
32022 &(STOP1**2-STOP2**2)*(LOG(STOP1**2/STOP2**2) + AT*
32023 &(AT - XMU/TANBST)/(STOP1**2-STOP2**2)*G(STOP12,STOP22))
32024
32025 VH3B(1,2) =
32026 &- XMBOT4/(COSBB**2)*XMU*(AT-XMU*TANBSB)/
32027 &(SBOT1**2-SBOT2**2)*(LOG(SBOT1**2/SBOT2**2) + AB*
32028 &(AB - XMU*TANBSB)/(SBOT1**2-SBOT2**2)*G(SBOT12,SBOT22))
32029
32030 VH3T(1,2)=VH3T(1,2) +
32031 &XMZ**2*(XMT2/TANBST*F1T-XMT2**0.5D0*(AT/TANBST+XMU)/2D0*F2T)
32032
32033 VH3B(1,2)=VH3B(1,2)
32034 &+XMZ**2*(-XMBOT2*TANBSB*F1B+XMBOT2**0.5D0*(AB*TANBSB+XMU)/2D0*F2B)
32035
32036 VH3T(2,1) = VH3T(1,2)
32037 VH3B(2,1) = VH3B(1,2)
32038
32039 TQ = LOG((XMQ2 + XMT2)/XMT2)
32040 TU = LOG((XMUR2+XMT2)/XMT2)
32041 TQD = LOG((XMQ2 + XMB**2)/XMB**2)
32042 TD = LOG((XMDL2+XMB**2)/XMB**2)
32043
32044 DO 110 I = 1,2
32045 DO 100 J = 1,2
32046
32047 VH(I,J) =
32048 & 6D0/(8D0*PI**2*(H1T**2+H2T**2))
32049 & *VH3T(I,J)*0.5D0*(1D0-AL(I,J)*TT/2D0) +
32050 & 6D0/(8D0*PI**2*(H1B**2+H2B**2))
32051 & *VH3B(I,J)*0.5D0*(1D0-AL(I,J)*TB/2D0)
32052
32053 100 CONTINUE
32054 110 CONTINUE
32055
32056 GOTO 150
32057 120 DO 140 I =1,2
32058 DO 130 J = 1,2
32059 VH(I,J) = -1D+15
32060 130 CONTINUE
32061 140 CONTINUE
32062
32063 150 CONTINUE
32064
32065 RETURN
32066 END
32067
32068
32069
32070
32071
32072
32073 FUNCTION PYFINT(A,B,C)
32074
32075
32076 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
32077 IMPLICIT INTEGER(I-N)
32078 INTEGER PYK,PYCHGE,PYCOMP
32079
32080 COMMON/PYINTS/XXM(20)
32081 SAVE/PYINTS/
32082
32083
32084 EXTERNAL PYFISB
32085 DOUBLE PRECISION PYFISB
32086
32087 XXM(1)=A
32088 XXM(2)=B
32089 XXM(3)=C
32090 XLO=0D0
32091 XHI=1D0
32092 PYFINT = PYGAUS(PYFISB,XLO,XHI,1D-3)
32093
32094 RETURN
32095 END
32096
32097
32098
32099
32100
32101
32102 FUNCTION PYFISB(X)
32103
32104
32105 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
32106 IMPLICIT INTEGER(I-N)
32107 INTEGER PYK,PYCHGE,PYCOMP
32108
32109 COMMON/PYINTS/XXM(20)
32110 SAVE/PYINTS/
32111
32112 PYFISB = LOG(ABS(X*XXM(2)+(1-X)*XXM(3)-X*(1-X)*XXM(1))/
32113 &(X*(XXM(2)-XXM(3))+XXM(3)))
32114
32115 RETURN
32116 END
32117
32118
32119
32120
32121
32122
32123 SUBROUTINE PYSFDC(KFIN,XLAM,IDLAM,IKNT)
32124
32125
32126 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
32127 IMPLICIT INTEGER(I-N)
32128 INTEGER PYK,PYCHGE,PYCOMP
32129
32130 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
32131
32132 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
32133 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
32134 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
32135 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
32136 &SFMIX(16,4)
32137 SAVE /PYDAT1/,/PYDAT2/,/PYMSSM/,/PYSSMT/
32138
32139
32140 INTEGER KFIN,KCIN
32141 DOUBLE PRECISION XMI,XMJ,XMF,XMSF1,XMSF2,XMW,XMW2,XMZ,
32142 &XMZ2,AXMJ,AXMI
32143 DOUBLE PRECISION XMI2,XMI3,XMJ2,XMA2,XMB2,XMFP
32144 DOUBLE PRECISION PYLAMF,XL
32145 DOUBLE PRECISION TANW,XW,AEM,C1,AS
32146 DOUBLE PRECISION CA,CB,AL,AR,BL,BR,ALP,ARP,BLP,BRP
32147 DOUBLE PRECISION CH1,CH2,CH3,CH4
32148 DOUBLE PRECISION XMBOT,XMTOP
32149 DOUBLE PRECISION XLAM(0:200)
32150 INTEGER IDLAM(200,3)
32151 INTEGER LKNT,IX,IC,ILR,IDU,J,IJ,I,IKNT,IFL,IFP,II
32152 DOUBLE PRECISION SR2
32153 DOUBLE PRECISION CBETA,SBETA,GR,GL,F12K,F21K
32154 DOUBLE PRECISION CW
32155 DOUBLE PRECISION BETA,ALFA,XMU,AT,AB,ATRIT,ATRIB,ATRIL
32156 DOUBLE PRECISION COSA,SINA,TANB
32157 DOUBLE PRECISION PYALEM,PI,PYALPS,EI,PYRNMT
32158 DOUBLE PRECISION GHRR,GHLL,GHLR,CF,XMB,BLR
32159 INTEGER IG,KF1,KF2,ILR2,IDP
32160 INTEGER IGG(4),KFNCHI(4),KFCCHI(2)
32161 DATA IGG/23,25,35,36/
32162 DATA PI/3.141592654D0/
32163 DATA SR2/1.4142136D0/
32164 DATA KFNCHI/1000022,1000023,1000025,1000035/
32165 DATA KFCCHI/1000024,1000037/
32166
32167
32168 LKNT=0
32169
32170
32171 IF(KFIN.EQ.KSUSY2+12.OR.KFIN.EQ.KSUSY2+14.OR.
32172 &KFIN.EQ.KSUSY2+16) RETURN
32173
32174 XMW=PMAS(24,1)
32175 XMW2=XMW**2
32176 XMZ=PMAS(23,1)
32177 XMZ2=XMZ**2
32178 XW=PARU(102)
32179 TANW = SQRT(XW/(1D0-XW))
32180 CW=SQRT(1D0-XW)
32181
32182
32183 KCIN=PYCOMP(KFIN)
32184
32185 ILR=KFIN/KSUSY1
32186
32187 IFL=MOD(KFIN,KSUSY1)
32188
32189 IDU=2-MOD(IFL,2)
32190
32191 XMI=PMAS(KCIN,1)
32192 XMI2=XMI**2
32193 AEM=PYALEM(XMI2)
32194 AS =PYALPS(XMI2)
32195 C1=AEM/XW
32196 XMI3=XMI**3
32197 EI=KCHG(IFL,1)/3D0
32198
32199 XMBOT=3D0
32200 XMTOP=PYRNMT(PMAS(6,1))
32201 XMBOT=0D0
32202
32203 TANB=RMSS(5)
32204 BETA=ATAN(TANB)
32205 ALFA=RMSS(18)
32206 CBETA=COS(BETA)
32207 SBETA=TANB*CBETA
32208 SINA=SIN(ALFA)
32209 COSA=COS(ALFA)
32210 XMU=-RMSS(4)
32211 ATRIT=RMSS(16)
32212 ATRIB=RMSS(15)
32213 ATRIL=RMSS(17)
32214
32215
32216
32217 IF(IMSS(11).EQ.1) THEN
32218 XMP=RMSS(29)
32219 IDG=39+KSUSY1
32220 XMGR=PMAS(PYCOMP(IDG),1)
32221 XFAC=(XMI2/(XMP*XMGR))**2*XMI/48D0/PI
32222 IF(IFL.EQ.5) THEN
32223 XMF=XMBOT
32224 ELSEIF(IFL.EQ.6) THEN
32225 XMF=XMTOP
32226 ELSE
32227 XMF=PMAS(IFL,1)
32228 ENDIF
32229 IF(XMI.GT.XMGR+XMF) THEN
32230 LKNT=LKNT+1
32231 IDLAM(LKNT,1)=IDG
32232 IDLAM(LKNT,2)=IFL
32233 IDLAM(LKNT,3)=0
32234 XLAM(LKNT)=XFAC*(1D0-XMF**2/XMI2)**4
32235 ENDIF
32236 ENDIF
32237
32238
32239
32240
32241 DO 100 IX=1,2
32242
32243 IF(IDU.EQ.1) THEN
32244 XMFP=PMAS(IFL+1,1)
32245 XMF =PMAS(IFL,1)
32246
32247 ELSE
32248 XMFP=PMAS(IFL-1,1)
32249 XMF =PMAS(IFL,1)
32250 ENDIF
32251 XMJ=SMW(IX)
32252 AXMJ=ABS(XMJ)
32253 IF(XMI.GE.AXMJ+XMFP) THEN
32254 XMA2=XMJ**2
32255 XMB2=XMFP**2
32256 IF(IDU.EQ.2) THEN
32257 IF(IFL.EQ.6) THEN
32258 XMFP=XMBOT
32259 XMF =XMTOP
32260 ELSEIF(IFL.LT.6) THEN
32261 XMF=0D0
32262 XMFP=0D0
32263 ENDIF
32264 BL=VMIX(IX,1)
32265 AL=-XMFP*UMIX(IX,2)/SR2/XMW/CBETA
32266 BR=-XMF*VMIX(IX,2)/SR2/XMW/SBETA
32267 AR=0D0
32268 ELSE
32269 IF(IFL.EQ.5) THEN
32270 XMF =XMBOT
32271 XMFP=XMTOP
32272 ELSEIF(IFL.LT.5) THEN
32273 XMF=0D0
32274 XMFP=0D0
32275 ENDIF
32276 BL=UMIX(IX,1)
32277 AL=-XMFP*VMIX(IX,2)/SR2/XMW/SBETA
32278 BR=-XMF*UMIX(IX,2)/SR2/XMW/CBETA
32279 AR=0D0
32280 ENDIF
32281
32282 ALP=SFMIX(IFL,1)*AL + SFMIX(IFL,2)*AR
32283 BLP=SFMIX(IFL,1)*BL + SFMIX(IFL,2)*BR
32284 ARP=SFMIX(IFL,4)*AR + SFMIX(IFL,3)*AL
32285 BRP=SFMIX(IFL,4)*BR + SFMIX(IFL,3)*BL
32286 AL=ALP
32287 BL=BLP
32288 AR=ARP
32289 BR=BRP
32290
32291
32292 IF(ILR.EQ.1) THEN
32293 CA=AL
32294 CB=BL
32295
32296 ELSE
32297 CA=AR
32298 CB=BR
32299 ENDIF
32300 LKNT=LKNT+1
32301 XL=PYLAMF(XMI2,XMA2,XMB2)
32302
32303 XLAM(LKNT)=2D0*C1/8D0/XMI3*SQRT(XL)*((XMI2-XMB2-XMA2)*
32304 & (CA**2+CB**2)-4D0*CA*CB*XMJ*XMFP)
32305 IDLAM(LKNT,3)=0
32306 IF(IDU.EQ.1) THEN
32307 IDLAM(LKNT,1)=-KFCCHI(IX)
32308 IDLAM(LKNT,2)=IFL+1
32309 ELSE
32310 IDLAM(LKNT,1)=KFCCHI(IX)
32311 IDLAM(LKNT,2)=IFL-1
32312 ENDIF
32313 ENDIF
32314 100 CONTINUE
32315
32316
32317 DO 110 IX=1,4
32318
32319 XMF=PMAS(IFL,1)
32320 XMJ=SMZ(IX)
32321 AXMJ=ABS(XMJ)
32322 IF(XMI.GE.AXMJ+XMF) THEN
32323 XMA2=XMJ**2
32324 XMB2=XMF**2
32325 IF(IDU.EQ.1) THEN
32326 IF(IFL.EQ.5) THEN
32327 XMF=XMBOT
32328 ELSEIF(IFL.LT.5) THEN
32329 XMF=0D0
32330 ENDIF
32331 BL=-ZMIX(IX,2)+TANW*ZMIX(IX,1)*(2D0*EI+1)
32332 AL=XMF*ZMIX(IX,3)/XMW/CBETA
32333 AR=-2D0*EI*TANW*ZMIX(IX,1)
32334 BR=AL
32335 ELSE
32336 IF(IFL.EQ.6) THEN
32337 XMF=XMTOP
32338 ELSEIF(IFL.LT.5) THEN
32339 XMF=0D0
32340 ENDIF
32341 BL=ZMIX(IX,2)+TANW*ZMIX(IX,1)*(2D0*EI-1)
32342 AL=XMF*ZMIX(IX,4)/XMW/SBETA
32343 AR=-2D0*EI*TANW*ZMIX(IX,1)
32344 BR=AL
32345 ENDIF
32346
32347 ALP=SFMIX(IFL,1)*AL + SFMIX(IFL,2)*AR
32348 BLP=SFMIX(IFL,1)*BL + SFMIX(IFL,2)*BR
32349 ARP=SFMIX(IFL,4)*AR + SFMIX(IFL,3)*AL
32350 BRP=SFMIX(IFL,4)*BR + SFMIX(IFL,3)*BL
32351 AL=ALP
32352 BL=BLP
32353 AR=ARP
32354 BR=BRP
32355
32356
32357 IF(ILR.EQ.1) THEN
32358 CA=AL
32359 CB=BL
32360
32361 ELSE
32362 CA=AR
32363 CB=BR
32364 ENDIF
32365 LKNT=LKNT+1
32366 XL=PYLAMF(XMI2,XMA2,XMB2)
32367
32368 XLAM(LKNT)=C1/8D0/XMI3*SQRT(XL)*((XMI2-XMB2-XMA2)*
32369 & (CA**2+CB**2)-4D0*CA*CB*XMJ*XMF)
32370 IDLAM(LKNT,1)=KFNCHI(IX)
32371 IDLAM(LKNT,2)=IFL
32372 IDLAM(LKNT,3)=0
32373 ENDIF
32374 110 CONTINUE
32375
32376
32377
32378 DO 120 II=1,4
32379 IG=IGG(II)
32380 IF(ILR.EQ.1) GOTO 120
32381 XMB=PMAS(IG,1)
32382 XMSF1=PMAS(PYCOMP(KFIN-KSUSY1),1)
32383 IF(XMI.LT.XMSF1+XMB) GOTO 120
32384 IF(IG.EQ.23) THEN
32385 BL=-SIGN(.5D0,EI)/CW+EI*XW/CW
32386 BR=EI*XW/CW
32387 BLR=0D0
32388 ELSEIF(IG.EQ.25) THEN
32389 IF(IFL.EQ.5) THEN
32390 XMF=XMBOT
32391 ELSEIF(IFL.EQ.6) THEN
32392 XMF=XMTOP
32393 ELSEIF(IFL.LT.5) THEN
32394 XMF=0D0
32395 ELSE
32396 XMF=PMAS(IFL,1)
32397 ENDIF
32398 IF(IDU.EQ.2) THEN
32399 GHLL=XMZ/CW*(0.5D0-EI*XW)*(-SIN(ALFA+BETA))+
32400 & XMF**2/XMW*COSA/SBETA
32401 GHRR=XMZ/CW*(EI*XW)*(-SIN(ALFA+BETA))+
32402 & XMF**2/XMW*COSA/SBETA
32403 ELSE
32404 GHLL=XMZ/CW*(0.5D0-EI*XW)*(-SIN(ALFA+BETA))+
32405 & XMF**2/XMW*(-SINA)/CBETA
32406 GHRR=XMZ/CW*(EI*XW)*(-SIN(ALFA+BETA))+
32407 & XMF**2/XMW*(-SINA)/CBETA
32408 ENDIF
32409 IF(IFL.EQ.5) THEN
32410 AT=ATRIB
32411 ELSEIF(IFL.EQ.6) THEN
32412 AT=ATRIT
32413 ELSEIF(IFL.EQ.15) THEN
32414 AT=ATRIL
32415 ELSE
32416 AT=0D0
32417 ENDIF
32418 IF(IDU.EQ.2) THEN
32419 GHLR=XMF/2D0/XMW/SBETA*(-XMU*SINA+
32420 & AT*COSA)
32421 ELSE
32422 GHLR=XMF/2D0/XMW/CBETA*(XMU*COSA-
32423 & AT*SINA)
32424 ENDIF
32425 BL=GHLL
32426 BR=GHRR
32427 BLR=-GHLR
32428 ELSEIF(IG.EQ.35) THEN
32429 IF(IFL.EQ.5) THEN
32430 XMF=XMBOT
32431 ELSEIF(IFL.EQ.6) THEN
32432 XMF=XMTOP
32433 ELSEIF(IFL.LT.5) THEN
32434 XMF=0D0
32435 ELSE
32436 XMF=PMAS(IFL,1)
32437 ENDIF
32438 IF(IDU.EQ.2) THEN
32439 GHLL=XMZ/CW*(0.5D0-EI*XW)*COS(ALFA+BETA)+
32440 & XMF**2/XMW*SINA/SBETA
32441 GHRR=XMZ/CW*(EI*XW)*COS(ALFA+BETA)+
32442 & XMF**2/XMW*SINA/SBETA
32443 ELSE
32444 GHLL=XMZ/CW*(0.5D0-EI*XW)*COS(ALFA+BETA)+
32445 & XMF**2/XMW*COSA/CBETA
32446 GHRR=XMZ/CW*(EI*XW)*COS(ALFA+BETA)+
32447 & XMF**2/XMW*COSA/CBETA
32448 ENDIF
32449 IF(IFL.EQ.5) THEN
32450 AT=ATRIB
32451 ELSEIF(IFL.EQ.6) THEN
32452 AT=ATRIT
32453 ELSEIF(IFL.EQ.15) THEN
32454 AT=ATRIL
32455 ELSE
32456 AT=0D0
32457 ENDIF
32458 IF(IDU.EQ.2) THEN
32459 GHLR=XMF/2D0/XMW/SBETA*(XMU*COSA+
32460 & AT*SINA)
32461 ELSE
32462 GHLR=XMF/2D0/XMW/CBETA*(XMU*SINA+
32463 & AT*COSA)
32464 ENDIF
32465 BL=GHLL
32466 BR=GHRR
32467 BLR=GHLR
32468 ELSEIF(IG.EQ.36) THEN
32469 GHLL=0D0
32470 GHRR=0D0
32471 IF(IFL.EQ.5) THEN
32472 XMF=XMBOT
32473 ELSEIF(IFL.EQ.6) THEN
32474 XMF=XMTOP
32475 ELSEIF(IFL.LT.5) THEN
32476 XMF=0D0
32477 ELSE
32478 XMF=PMAS(IFL,1)
32479 ENDIF
32480 IF(IFL.EQ.5) THEN
32481 AT=ATRIB
32482 ELSEIF(IFL.EQ.6) THEN
32483 AT=ATRIT
32484 ELSEIF(IFL.EQ.15) THEN
32485 AT=ATRIL
32486 ELSE
32487 AT=0D0
32488 ENDIF
32489 IF(IDU.EQ.2) THEN
32490 GHLR=XMF/2D0/XMW*(-XMU+AT/TANB)
32491 ELSE
32492 GHLR=XMF/2D0/XMW/(-XMU+AT*TANB)
32493 ENDIF
32494 BL=GHLL
32495 BR=GHRR
32496 BLR=GHLR
32497 ENDIF
32498 AL=SFMIX(IFL,1)*SFMIX(IFL,3)*BL+
32499 & SFMIX(IFL,2)*SFMIX(IFL,4)*BR+
32500 & (SFMIX(IFL,1)*SFMIX(IFL,4)+SFMIX(IFL,3)*SFMIX(IFL,2))*BLR
32501 XL=PYLAMF(XMI2,XMSF1**2,XMB**2)
32502 LKNT=LKNT+1
32503 IF(IG.EQ.23) THEN
32504 XLAM(LKNT)=C1/4D0/XMI3*XL**1.5D0/XMB**2*AL**2
32505 ELSE
32506 XLAM(LKNT)=C1/4D0/XMI3*SQRT(XL)*AL**2
32507 ENDIF
32508 IDLAM(LKNT,3)=0
32509 IDLAM(LKNT,1)=KFIN-KSUSY1
32510 IDLAM(LKNT,2)=IG
32511 120 CONTINUE
32512
32513
32514 XMB=PMAS(24,1)
32515 IF(MOD(IFL,2).EQ.0) THEN
32516 KF1=KSUSY1+IFL-1
32517 ELSE
32518 KF1=KSUSY1+IFL+1
32519 ENDIF
32520 KF2=KF1+KSUSY1
32521 XMSF1=PMAS(PYCOMP(KF1),1)
32522 XMSF2=PMAS(PYCOMP(KF2),1)
32523 IF(XMI.GT.XMB+XMSF1) THEN
32524 IF(MOD(IFL,2).EQ.0) THEN
32525 IF(ILR.EQ.1) THEN
32526 AL=1D0/SR2*SFMIX(IFL,1)*SFMIX(IFL-1,1)
32527 ELSE
32528 AL=1D0/SR2*SFMIX(IFL,3)*SFMIX(IFL-1,1)
32529 ENDIF
32530 ELSE
32531 IF(ILR.EQ.1) THEN
32532 AL=1D0/SR2*SFMIX(IFL,1)*SFMIX(IFL+1,1)
32533 ELSE
32534 AL=1D0/SR2*SFMIX(IFL,3)*SFMIX(IFL+1,1)
32535 ENDIF
32536 ENDIF
32537 XL=PYLAMF(XMI2,XMSF1**2,XMB**2)
32538 LKNT=LKNT+1
32539 XLAM(LKNT)=C1/4D0/XMI3*XL**1.5D0/XMB**2*AL**2
32540 IDLAM(LKNT,3)=0
32541 IDLAM(LKNT,1)=KF1
32542 IDLAM(LKNT,2)=SIGN(24,KCHG(IFL,1))
32543 ENDIF
32544 IF(XMI.GT.XMB+XMSF2) THEN
32545 IF(MOD(IFL,2).EQ.0) THEN
32546 IF(ILR.EQ.1) THEN
32547 AL=1D0/SR2*SFMIX(IFL,1)*SFMIX(IFL-1,3)
32548 ELSE
32549 AL=1D0/SR2*SFMIX(IFL,3)*SFMIX(IFL-1,3)
32550 ENDIF
32551 ELSE
32552 IF(ILR.EQ.1) THEN
32553 AL=1D0/SR2*SFMIX(IFL,1)*SFMIX(IFL+1,3)
32554 ELSE
32555 AL=1D0/SR2*SFMIX(IFL,3)*SFMIX(IFL+1,3)
32556 ENDIF
32557 ENDIF
32558 XL=PYLAMF(XMI2,XMSF2**2,XMB**2)
32559 LKNT=LKNT+1
32560 XLAM(LKNT)=C1/4D0/XMI3*XL**1.5D0/XMB**2*AL**2
32561 IDLAM(LKNT,3)=0
32562 IDLAM(LKNT,1)=KF2
32563 IDLAM(LKNT,2)=SIGN(24,KCHG(IFL,1))
32564 ENDIF
32565
32566
32567 XMB=PMAS(37,1)
32568 IF(MOD(IFL,2).EQ.0) THEN
32569 KF1=KSUSY1+IFL-1
32570 ELSE
32571 KF1=KSUSY1+IFL+1
32572 ENDIF
32573 KF2=KF1+KSUSY1
32574 XMSF1=PMAS(PYCOMP(KF1),1)
32575 XMSF2=PMAS(PYCOMP(KF2),1)
32576 IF(XMI.GT.XMB+XMSF1) THEN
32577 XMF=0D0
32578 XMFP=0D0
32579 AT=0D0
32580 AB=0D0
32581 IF(MOD(IFL,2).EQ.0) THEN
32582
32583 IF(ILR.EQ.1) THEN
32584 CH1=-SFMIX(IFL,1)*SFMIX(IFL-1,1)
32585 CH2= SFMIX(IFL,2)*SFMIX(IFL-1,2)
32586 CH3=-SFMIX(IFL,1)*SFMIX(IFL-1,2)
32587 CH4=-SFMIX(IFL,2)*SFMIX(IFL-1,1)
32588
32589 ELSE
32590 CH1= SFMIX(IFL,3)*SFMIX(IFL-1,1)
32591 CH2=-SFMIX(IFL,4)*SFMIX(IFL-1,2)
32592 CH3= SFMIX(IFL,3)*SFMIX(IFL-1,2)
32593 CH4= SFMIX(IFL,4)*SFMIX(IFL-1,1)
32594 ENDIF
32595 IF(IFL.EQ.6) THEN
32596 XMF=XMTOP
32597 XMFP=XMBOT
32598 AT=ATRIT
32599 AB=ATRIB
32600 ENDIF
32601 ELSE
32602
32603 IF(ILR.EQ.1) THEN
32604 CH1=-SFMIX(IFL+1,1)*SFMIX(IFL,1)
32605 CH2= SFMIX(IFL+1,2)*SFMIX(IFL,2)
32606 CH3=-SFMIX(IFL+1,1)*SFMIX(IFL,2)
32607 CH4=-SFMIX(IFL+1,2)*SFMIX(IFL,1)
32608
32609 ELSE
32610 CH1= SFMIX(IFL,3)*SFMIX(IFL+1,1)
32611 CH2=-SFMIX(IFL,4)*SFMIX(IFL+1,2)
32612 CH3= SFMIX(IFL,4)*SFMIX(IFL+1,1)
32613 CH4= SFMIX(IFL,3)*SFMIX(IFL+1,2)
32614 ENDIF
32615 IF(IFL.EQ.5) THEN
32616 XMF=XMTOP
32617 XMFP=XMBOT
32618 AT=ATRIT
32619 AB=ATRIB
32620 ENDIF
32621 ENDIF
32622 XL=PYLAMF(XMI2,XMSF1**2,XMB**2)
32623 LKNT=LKNT+1
32624 AL=CH1*(XMW2*2D0*CBETA*SBETA-XMFP**2*TANB-XMF**2/TANB)+
32625 & CH2*2D0*XMF*XMFP/(2D0*CBETA*SBETA)+
32626 & CH3*XMFP*(-XMU+AB*TANB)+CH4*XMF*(-XMU+AT/TANB)
32627 XLAM(LKNT)=C1/8D0/XMI3*SQRT(XL)/XMW2*AL**2
32628 IDLAM(LKNT,3)=0
32629 IDLAM(LKNT,1)=KF1
32630 IDLAM(LKNT,2)=SIGN(37,KCHG(IFL,1))
32631 ENDIF
32632 IF(XMI.GT.XMB+XMSF2) THEN
32633 XMF=0D0
32634 XMFP=0D0
32635 AT=0D0
32636 AB=0D0
32637 IF(MOD(IFL,2).EQ.0) THEN
32638
32639 IF(ILR.EQ.1) THEN
32640 CH1= SFMIX(IFL-1,3)*SFMIX(IFL,1)
32641 CH2=-SFMIX(IFL-1,4)*SFMIX(IFL,2)
32642 CH3= SFMIX(IFL-1,4)*SFMIX(IFL,1)
32643 CH4= SFMIX(IFL-1,3)*SFMIX(IFL,2)
32644
32645 ELSE
32646 CH1= -SFMIX(IFL,3)*SFMIX(IFL-1,3)
32647 CH2= SFMIX(IFL,4)*SFMIX(IFL-1,4)
32648 CH3= -SFMIX(IFL,3)*SFMIX(IFL-1,4)
32649 CH4= -SFMIX(IFL,4)*SFMIX(IFL-1,3)
32650 ENDIF
32651 IF(IFL.EQ.6) THEN
32652 XMF=XMTOP
32653 XMFP=XMBOT
32654 AT=ATRIT
32655 AB=ATRIB
32656 ENDIF
32657 ELSE
32658
32659 IF(ILR.EQ.1) THEN
32660 CH1= SFMIX(IFL+1,3)*SFMIX(IFL,1)
32661 CH2=-SFMIX(IFL+1,4)*SFMIX(IFL,2)
32662 CH3= SFMIX(IFL+1,3)*SFMIX(IFL,2)
32663 CH4= SFMIX(IFL+1,4)*SFMIX(IFL,1)
32664
32665 ELSE
32666 CH1= -SFMIX(IFL+1,3)*SFMIX(IFL,3)
32667 CH2= SFMIX(IFL+1,4)*SFMIX(IFL,4)
32668 CH3= -SFMIX(IFL+1,3)*SFMIX(IFL,4)
32669 CH4= -SFMIX(IFL+1,4)*SFMIX(IFL,3)
32670 ENDIF
32671 IF(IFL.EQ.5) THEN
32672 XMF=XMTOP
32673 XMFP=XMBOT
32674 AT=ATRIT
32675 AB=ATRIB
32676 ENDIF
32677 ENDIF
32678 XL=PYLAMF(XMI2,XMSF1**2,XMB**2)
32679 LKNT=LKNT+1
32680 AL=CH1*(XMW2*2D0*CBETA*SBETA-XMFP**2*TANB-XMF**2/TANB)+
32681 & CH2*2D0*XMF*XMFP/(2D0*CBETA*SBETA)+
32682 & CH3*XMFP*(-XMU+AB*TANB)+CH4*XMF*(-XMU+AT/TANB)
32683 XLAM(LKNT)=C1/8D0/XMI3*SQRT(XL)/XMW2*AL**2
32684 IDLAM(LKNT,3)=0
32685 IDLAM(LKNT,1)=KF2
32686 IDLAM(LKNT,2)=SIGN(37,KCHG(IFL,1))
32687 ENDIF
32688
32689
32690
32691 IF(IFL.LE.6) THEN
32692 XMFP=0D0
32693 XMF=0D0
32694 IF(IFL.EQ.6) XMF=PMAS(6,1)
32695 IF(IFL.EQ.5) XMF=PMAS(5,1)
32696 XMJ=PMAS(PYCOMP(KSUSY1+21),1)
32697 AXMJ=ABS(XMJ)
32698 IF(XMI.GE.AXMJ+XMF) THEN
32699 AL=-SFMIX(IFL,3)
32700 BL=SFMIX(IFL,1)
32701 AR=-SFMIX(IFL,4)
32702 BR=SFMIX(IFL,2)
32703
32704 IF(ILR.EQ.1) THEN
32705 CA=AL
32706 CB=BL
32707
32708 ELSE
32709 CA=AR
32710 CB=BR
32711 ENDIF
32712 LKNT=LKNT+1
32713 XMA2=XMJ**2
32714 XMB2=XMF**2
32715 XL=PYLAMF(XMI2,XMA2,XMB2)
32716 XLAM(LKNT)=4D0/3D0*AS/2D0/XMI3*SQRT(XL)*((XMI2-XMB2-XMA2)*
32717 & (CA**2+CB**2)+4D0*CA*CB*XMJ*XMF)
32718 IDLAM(LKNT,1)=KSUSY1+21
32719 IDLAM(LKNT,2)=IFL
32720 IDLAM(LKNT,3)=0
32721 ENDIF
32722 ENDIF
32723
32724
32725 IF(KFIN.EQ.KSUSY1+6.AND.PMAS(KCIN,1).GT.
32726 &PMAS(PYCOMP(KSUSY1+22),1)+PMAS(4,1)) THEN
32727
32728
32729
32730
32731 LKNT=LKNT+1
32732 XL=PYLAMF(XMI2,0D0,PMAS(PYCOMP(KSUSY1+22),1)**2)
32733 XLAM(LKNT)=C1**3/64D0/PI**2/XMI3*SQRT(XL)
32734 IF(XLAM(LKNT).EQ.0) XLAM(LKNT)=1D-3
32735 IDLAM(LKNT,1)=KSUSY1+22
32736 IDLAM(LKNT,2)=4
32737 IDLAM(LKNT,3)=0
32738 ENDIF
32739
32740 IKNT=LKNT
32741 XLAM(0)=0D0
32742 DO 130 I=1,IKNT
32743 IF(XLAM(I).LT.0D0) XLAM(I)=0D0
32744 XLAM(0)=XLAM(0)+XLAM(I)
32745 130 CONTINUE
32746 IF(XLAM(0).EQ.0D0) XLAM(0)=1D-3
32747
32748 RETURN
32749 END
32750
32751
32752
32753
32754
32755
32756 SUBROUTINE PYGLUI(KFIN,XLAM,IDLAM,IKNT)
32757
32758
32759 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
32760 IMPLICIT INTEGER(I-N)
32761 INTEGER PYK,PYCHGE,PYCOMP
32762
32763 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
32764
32765 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
32766 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
32767 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
32768 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
32769 &SFMIX(16,4)
32770 COMMON/PYINTS/XXM(20)
32771 SAVE /PYDAT1/,/PYDAT2/,/PYMSSM/,/PYSSMT/,/PYINTS/
32772
32773
32774 INTEGER KFIN,KCIN,KF
32775 DOUBLE PRECISION XMI,XMJ,XMF,XMSF1,XMSF2,XMW,XMW2,
32776 &XMZ,XMZ2,AXMJ,AXMI
32777 DOUBLE PRECISION XMI2,XMI3,XMJ2,XMA2,XMB2,XMFP
32778 DOUBLE PRECISION C1L,C1R,D1L,D1R
32779 DOUBLE PRECISION C2L,C2R,D2L,D2R
32780 DOUBLE PRECISION PYLAMF,XL
32781 DOUBLE PRECISION TANW,XW,AEM,C1,AS,S12MAX,S12MIN
32782 DOUBLE PRECISION CA,CB,AL,AR,BL,BR
32783 DOUBLE PRECISION ALFA,BETA
32784 DOUBLE PRECISION SW,CW,SINB,COSB,QT,T3
32785 DOUBLE PRECISION XLAM(0:200)
32786 INTEGER IDLAM(200,3)
32787 INTEGER LKNT,IX,IC,ILR,IDU,J,IJ,I,IKNT,IFL
32788 DOUBLE PRECISION SR2
32789 DOUBLE PRECISION GAM
32790 DOUBLE PRECISION PYALEM,PI,PYALPS,EI
32791 EXTERNAL PYGAUS,PYXXZ5,PYXXW5,PYXXZ2
32792 DOUBLE PRECISION PYGAUS,PYXXZ5,PYXXW5,PYXXZ2
32793 DOUBLE PRECISION PREC
32794 INTEGER KFNCHI(4),KFCCHI(2)
32795 DATA PI/3.141592654D0/
32796 DATA SR2/1.4142136D0/
32797 DATA PREC/1D-2/
32798 DATA KFNCHI/1000022,1000023,1000025,1000035/
32799 DATA KFCCHI/1000024,1000037/
32800
32801
32802 LKNT=0
32803 IF(KFIN.NE.KSUSY1+21) RETURN
32804 KCIN=PYCOMP(KFIN)
32805
32806 XMW=PMAS(24,1)
32807 XMW2=XMW**2
32808 XMZ=PMAS(23,1)
32809 XMZ2=XMZ**2
32810 XW=PARU(102)
32811 TANW = SQRT(XW/(1D0-XW))
32812
32813 XMI=PMAS(KCIN,1)
32814 AXMI=ABS(XMI)
32815 XMI2=XMI**2
32816 AEM=PYALEM(XMI2)
32817 AS =PYALPS(XMI2)
32818 C1=AEM/XW
32819 XMI3=XMI**3
32820 BETA=ATAN(RMSS(5))
32821
32822
32823
32824 IF(IMSS(11).EQ.1) THEN
32825 XMP=RMSS(29)
32826 IDG=39+KSUSY1
32827 XMGR=PMAS(PYCOMP(IDG),1)
32828 XFAC=(XMI2/(XMP*XMGR))**2*XMI/48D0/PI
32829 IF(AXMI.GT.XMGR) THEN
32830 LKNT=LKNT+1
32831 IDLAM(LKNT,1)=IDG
32832 IDLAM(LKNT,2)=21
32833 IDLAM(LKNT,3)=0
32834 XLAM(LKNT)=XFAC
32835 ENDIF
32836 ENDIF
32837
32838
32839
32840 DO 110 IFL=1,6
32841 DO 100 ILR=1,2
32842 XMJ=PMAS(PYCOMP(ILR*KSUSY1+IFL),1)
32843 AXMJ=ABS(XMJ)
32844 XMF=PMAS(IFL,1)
32845 IDU=3-(1+MOD(IFL,2))
32846 IF(XMI.GE.AXMJ+XMF) THEN
32847
32848 AL=SFMIX(IFL,1)
32849 BL=-SFMIX(IFL,3)
32850 AR=SFMIX(IFL,2)
32851 BR=-SFMIX(IFL,4)
32852
32853 IF(ILR.EQ.1) THEN
32854 CA=AL
32855 CB=BL
32856
32857 ELSE
32858 CA=AR
32859 CB=BR
32860 ENDIF
32861 LKNT=LKNT+1
32862 XMA2=XMJ**2
32863 XMB2=XMF**2
32864 XL=PYLAMF(XMI2,XMA2,XMB2)
32865 XLAM(LKNT)=4D0/8D0*AS/4D0/XMI3*SQRT(XL)*((XMI2+XMB2-XMA2)*
32866 & (CA**2+CB**2)-4D0*CA*CB*XMI*XMF)
32867 IDLAM(LKNT,1)=ILR*KSUSY1+IFL
32868 IDLAM(LKNT,2)=-IFL
32869 IDLAM(LKNT,3)=0
32870 LKNT=LKNT+1
32871 XLAM(LKNT)=XLAM(LKNT-1)
32872 IDLAM(LKNT,1)=-IDLAM(LKNT-1,1)
32873 IDLAM(LKNT,2)=-IDLAM(LKNT-1,2)
32874 IDLAM(LKNT,3)=0
32875 ENDIF
32876 100 CONTINUE
32877 110 CONTINUE
32878
32879
32880
32881 DO 160 IX=1,4
32882 XMJ=SMZ(IX)
32883 AXMJ=ABS(XMJ)
32884 IF(XMI.GE.AXMJ) THEN
32885 XXM(1)=0D0
32886 XXM(2)=XMJ
32887 XXM(3)=0D0
32888 XXM(4)=XMI
32889 XXM(5)=PMAS(PYCOMP(KSUSY1+1),1)
32890 XXM(6)=PMAS(PYCOMP(KSUSY2+1),1)
32891 XXM(7)=1D6
32892 XXM(8)=0D0
32893 XXM(9)=0D0
32894 XXM(10)=0D0
32895 S12MIN=0D0
32896 S12MAX=(XMI-AXMJ)**2
32897
32898 XXM(11)=0D0
32899 XXM(12)=0D0
32900 XXM(13)=1D0
32901 XXM(14)=-SR2*(-0.5D0*ZMIX(IX,2)+TANW*ZMIX(IX,1)/6D0)
32902 XXM(15)=1D0
32903 XXM(16)=SR2*(-TANW*ZMIX(IX,1)/3D0)
32904 IF( XXM(5).LT.AXMI .OR. XXM(6).LT.AXMI ) GOTO 120
32905 IF(XMI.GE.AXMJ+2D0*PMAS(1,1)) THEN
32906 LKNT=LKNT+1
32907 XLAM(LKNT)=C1*AS/XMI3/(16D0*PI)*
32908 & PYGAUS(PYXXZ5,S12MIN,S12MAX,1D-2)
32909 IDLAM(LKNT,1)=KFNCHI(IX)
32910 IDLAM(LKNT,2)=1
32911 IDLAM(LKNT,3)=-1
32912 ENDIF
32913 IF(XMI.GE.AXMJ+2D0*PMAS(3,1)) THEN
32914 LKNT=LKNT+1
32915 XLAM(LKNT)=XLAM(LKNT-1)
32916 IDLAM(LKNT,1)=KFNCHI(IX)
32917 IDLAM(LKNT,2)=3
32918 IDLAM(LKNT,3)=-3
32919 ENDIF
32920 120 CONTINUE
32921 IF( XXM(5).LT.AXMI .OR. XXM(6).LT.AXMI ) GOTO 130
32922 IF(XMI.GE.AXMJ+2D0*PMAS(5,1)) THEN
32923 CALL PYTBBN(IX,80,-1D0/3D0,AXMI,GAM)
32924 LKNT=LKNT+1
32925 XLAM(LKNT)=GAM
32926 IDLAM(LKNT,1)=KFNCHI(IX)
32927 IDLAM(LKNT,2)=5
32928 IDLAM(LKNT,3)=-5
32929 ENDIF
32930
32931 130 CONTINUE
32932 XXM(5)=PMAS(PYCOMP(KSUSY1+2),1)
32933 XXM(6)=PMAS(PYCOMP(KSUSY2+2),1)
32934 XXM(13)=1D0
32935 XXM(14)=-SR2*(0.5D0*ZMIX(IX,2)+TANW*ZMIX(IX,1)/6D0)
32936 XXM(15)=1D0
32937 XXM(16)=SR2*(2D0*TANW*ZMIX(IX,1)/3D0)
32938 IF( XXM(5).LT.AXMI .OR. XXM(6).LT.AXMI ) GOTO 140
32939 IF(XMI.GE.AXMJ+2D0*PMAS(2,1)) THEN
32940 LKNT=LKNT+1
32941 XLAM(LKNT)=C1*AS/XMI3/(16D0*PI)*
32942 & PYGAUS(PYXXZ5,S12MIN,S12MAX,1D-2)
32943 IDLAM(LKNT,1)=KFNCHI(IX)
32944 IDLAM(LKNT,2)=2
32945 IDLAM(LKNT,3)=-2
32946 ENDIF
32947 IF(XMI.GE.AXMJ+2D0*PMAS(4,1)) THEN
32948 LKNT=LKNT+1
32949 XLAM(LKNT)=XLAM(LKNT-1)
32950 IDLAM(LKNT,1)=KFNCHI(IX)
32951 IDLAM(LKNT,2)=4
32952 IDLAM(LKNT,3)=-4
32953 ENDIF
32954 140 CONTINUE
32955
32956
32957 IF(XMI.GE.PMAS(PYCOMP(KSUSY1+6),1)+PMAS(6,1)) GOTO 150
32958 XMF=PMAS(6,1)
32959 IF(XMI.GE.AXMJ+2D0*XMF) THEN
32960 CALL PYTBBN(IX,80,2D0/3D0,AXMI,GAM)
32961 LKNT=LKNT+1
32962 XLAM(LKNT)=GAM
32963 IDLAM(LKNT,1)=KFNCHI(IX)
32964 IDLAM(LKNT,2)=6
32965 IDLAM(LKNT,3)=-6
32966 ENDIF
32967 150 CONTINUE
32968 ENDIF
32969 160 CONTINUE
32970
32971
32972 DO 190 IX=1,2
32973 XMJ=SMW(IX)
32974 AXMJ=ABS(XMJ)
32975 IF(XMI.GE.AXMJ) THEN
32976 S12MIN=0D0
32977 S12MAX=(AXMI-AXMJ)**2
32978 XXM(1)=0D0
32979 XXM(2)=XMJ
32980 XXM(3)=0D0
32981 XXM(4)=XMI
32982 XXM(5)=0D0
32983 XXM(6)=0D0
32984 XXM(9)=1D6
32985 XXM(10)=0D0
32986 XXM(7)=UMIX(IX,1)*SR2
32987 XXM(8)=VMIX(IX,1)*SR2
32988 XXM(11)=PMAS(PYCOMP(KSUSY1+1),1)
32989 XXM(12)=PMAS(PYCOMP(KSUSY1+2),1)
32990 IF( XXM(11).LT.AXMI .OR. XXM(12).LT.AXMI ) GOTO 170
32991 IF(XMI.GE.AXMJ+PMAS(1,1)+PMAS(2,1)) THEN
32992 LKNT=LKNT+1
32993 XLAM(LKNT)=0.5D0*C1*AS/XMI3/(16D0*PI)*
32994 & PYGAUS(PYXXW5,S12MIN,S12MAX,PREC)
32995 IDLAM(LKNT,1)=KFCCHI(IX)
32996 IDLAM(LKNT,2)=1
32997 IDLAM(LKNT,3)=-2
32998 LKNT=LKNT+1
32999 XLAM(LKNT)=XLAM(LKNT-1)
33000 IDLAM(LKNT,1)=-IDLAM(LKNT-1,1)
33001 IDLAM(LKNT,2)=-IDLAM(LKNT-1,2)
33002 IDLAM(LKNT,3)=-IDLAM(LKNT-1,3)
33003 ENDIF
33004 IF(XMI.GE.AXMJ+PMAS(3,1)+PMAS(4,1)) THEN
33005 LKNT=LKNT+1
33006 XLAM(LKNT)=XLAM(LKNT-1)
33007 IDLAM(LKNT,1)=KFCCHI(IX)
33008 IDLAM(LKNT,2)=3
33009 IDLAM(LKNT,3)=-4
33010 LKNT=LKNT+1
33011 XLAM(LKNT)=XLAM(LKNT-1)
33012 IDLAM(LKNT,1)=-IDLAM(LKNT-1,1)
33013 IDLAM(LKNT,2)=-IDLAM(LKNT-1,2)
33014 IDLAM(LKNT,3)=-IDLAM(LKNT-1,3)
33015 ENDIF
33016 170 CONTINUE
33017
33018 IF(XMI.GE.PMAS(PYCOMP(KSUSY1+5),1)+PMAS(5,1)) GOTO 180
33019 IF(XMI.GE.PMAS(PYCOMP(KSUSY1+6),1)+PMAS(6,1)) GOTO 180
33020 XMF=PMAS(6,1)
33021 XMFP=PMAS(5,1)
33022 IF(XMI.GE.AXMJ+XMF+XMFP) THEN
33023 CALL PYTBBC(IX,80,AXMI,GAM)
33024 LKNT=LKNT+1
33025 XLAM(LKNT)=GAM
33026 IDLAM(LKNT,1)=KFCCHI(IX)
33027 IDLAM(LKNT,2)=5
33028 IDLAM(LKNT,3)=-6
33029 LKNT=LKNT+1
33030 XLAM(LKNT)=XLAM(LKNT-1)
33031 IDLAM(LKNT,1)=-IDLAM(LKNT-1,1)
33032 IDLAM(LKNT,2)=-IDLAM(LKNT-1,2)
33033 IDLAM(LKNT,3)=-IDLAM(LKNT-1,3)
33034 ENDIF
33035 180 CONTINUE
33036 ENDIF
33037 190 CONTINUE
33038
33039 IKNT=LKNT
33040 XLAM(0)=0D0
33041 DO 200 I=1,IKNT
33042 IF(XLAM(I).LT.0D0) XLAM(I)=0D0
33043 XLAM(0)=XLAM(0)+XLAM(I)
33044 200 CONTINUE
33045 IF(XLAM(0).EQ.0D0) XLAM(0)=1D-6
33046
33047 RETURN
33048 END
33049
33050
33051
33052
33053
33054
33055
33056
33057 SUBROUTINE PYTECM(S1,S2)
33058
33059
33060 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
33061 IMPLICIT INTEGER(I-N)
33062 INTEGER PYK,PYCHGE,PYCOMP
33063
33064 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
33065
33066 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
33067 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
33068 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
33069 SAVE /PYDAT1/,/PYDAT2/,/PYPARS/
33070
33071
33072 DOUBLE PRECISION AR(4,4),WR(4),ZR(4,4),ZI(4,4),WORK(12,12),
33073 &AT(4,4),WI(4),FV1(4),FV2(4),FV3(4),sh,aem,tanw,ct2w,qupd,alprht,
33074 &far,fao,fzr,fzo,shr,R1,R2,S1,S2,WDTP(0:200),WDTE(0:200,0:5)
33075 INTEGER i,j,ierr
33076
33077 SH=PMAS(54,1)**2
33078 AEM=PYALEM(SH)
33079
33080 TANW=SQRT(PARU(102)/(1D0-PARU(102)))
33081 CT2W=(1D0-2D0*PARU(102))/(2D0*PARU(102)/TANW)
33082 QUPD=2D0*PARP(143)-1D0
33083
33084 ALPRHT=2.91D0*(3D0/PARP(144))
33085 FAR=SQRT(AEM/ALPRHT)
33086 FAO=FAR*QUPD
33087 FZR=FAR*CT2W
33088 FZO=-FAO*TANW
33089
33090 AR(1,1) = SH
33091 AR(2,2) = SH-PMAS(23,1)**2
33092 AR(3,3) = SH-PMAS(54,1)**2
33093 AR(4,4) = SH-PMAS(56,1)**2
33094 AR(1,2) = 0D0
33095 AR(2,1) = 0D0
33096 AR(1,3) = -SH*FAR
33097 AR(3,1) = AR(1,3)
33098 AR(1,4) = -SH*FAO
33099 AR(4,1) = AR(1,4)
33100 AR(2,3) = -SH*FZR
33101 AR(3,2) = AR(2,3)
33102 AR(2,4) = -SH*FZO
33103 AR(4,2) = AR(2,4)
33104 AR(3,4) = 0D0
33105 AR(4,3) = 0D0
33106
33107 DO 110 I=1,4
33108 DO 100 J=1,4
33109 AT(I,J)=0D0
33110 100 CONTINUE
33111 110 CONTINUE
33112 SHR=SQRT(SH)
33113 CALL PYWIDT(23,SH,WDTP,WDTE)
33114 AT(2,2) = WDTP(0)*SHR
33115 CALL PYWIDT(54,SH,WDTP,WDTE)
33116 AT(3,3) = WDTP(0)*SHR
33117 CALL PYWIDT(56,SH,WDTP,WDTE)
33118 AT(4,4) = WDTP(0)*SHR
33119
33120 CALL PYEICG(4,4,AR,AT,WR,WI,0,ZR,ZI,FV1,FV2,FV3,IERR)
33121 DO 120 I=1,4
33122 WI(I)=SQRT(ABS(SH-WR(I)))
33123 WR(I)=ABS(WR(I))
33124 120 CONTINUE
33125 R1=MIN(WR(1),WR(2),WR(3),WR(4))
33126 R2=1D20
33127 S1=0D0
33128 S2=0D0
33129 DO 130 I=1,4
33130 IF(ABS(WR(I)-R1).LT.1D-6) THEN
33131 S1=WI(I)
33132 GOTO 130
33133 ENDIF
33134 IF(WR(I).LE.R2) THEN
33135 R2=WR(I)
33136 S2=WI(I)
33137 ENDIF
33138 130 CONTINUE
33139 S1=S1**2
33140 S2=S2**2
33141 RETURN
33142 END
33143
33144
33145
33146
33147
33148
33149
33150
33151 SUBROUTINE PYEICG(NM,N,AR,AI,WR,WI,MATZ,ZR,ZI,FV1,FV2,FV3,IERR)
33152
33153 INTEGER N,NM,IS1,IS2,IERR,MATZ
33154 DOUBLE PRECISION AR(NM,N),AI(NM,N),WR(N),WI(N),ZR(NM,N),ZI(NM,N),
33155 X FV1(N),FV2(N),FV3(N)
33156
33157
33158
33159
33160
33161
33162
33163
33164
33165
33166
33167
33168
33169
33170
33171
33172
33173
33174
33175
33176
33177
33178
33179
33180
33181
33182
33183
33184
33185
33186
33187
33188
33189
33190
33191
33192
33193
33194
33195
33196
33197
33198 IF (N .LE. NM) GO TO 10
33199 IERR = 10 * N
33200 GO TO 50
33201
33202 10 CALL CBAL(NM,N,AR,AI,IS1,IS2,FV1)
33203 CALL CORTH(NM,N,IS1,IS2,AR,AI,FV2,FV3)
33204 IF (MATZ .NE. 0) GO TO 20
33205
33206 CALL COMQR(NM,N,IS1,IS2,AR,AI,WR,WI,IERR)
33207 GO TO 50
33208
33209 20 CALL COMQR2(NM,N,IS1,IS2,FV2,FV3,AR,AI,WR,WI,ZR,ZI,IERR)
33210 IF (IERR .NE. 0) GO TO 50
33211 CALL CBABK2(NM,N,IS1,IS2,FV1,N,ZR,ZI)
33212 50 RETURN
33213 END
33214 SUBROUTINE CBABK2(NM,N,LOW,IGH,SCALE,M,ZR,ZI)
33215
33216 INTEGER I,J,K,M,N,II,NM,IGH,LOW
33217 DOUBLE PRECISION SCALE(N),ZR(NM,M),ZI(NM,M)
33218 DOUBLE PRECISION S
33219
33220
33221
33222
33223
33224
33225
33226
33227
33228
33229
33230
33231
33232
33233
33234
33235
33236
33237
33238
33239
33240
33241
33242
33243
33244
33245
33246
33247
33248
33249
33250
33251
33252
33253
33254
33255
33256
33257
33258
33259
33260
33261 IF (M .EQ. 0) GO TO 200
33262 IF (IGH .EQ. LOW) GO TO 120
33263
33264 DO 110 I = LOW, IGH
33265 S = SCALE(I)
33266
33267
33268
33269 DO 100 J = 1, M
33270 ZR(I,J) = ZR(I,J) * S
33271 ZI(I,J) = ZI(I,J) * S
33272 100 CONTINUE
33273
33274 110 CONTINUE
33275
33276
33277 120 DO 140 II = 1, N
33278 I = II
33279 IF (I .GE. LOW .AND. I .LE. IGH) GO TO 140
33280 IF (I .LT. LOW) I = LOW - II
33281 K = SCALE(I)
33282 IF (K .EQ. I) GO TO 140
33283
33284 DO 130 J = 1, M
33285 S = ZR(I,J)
33286 ZR(I,J) = ZR(K,J)
33287 ZR(K,J) = S
33288 S = ZI(I,J)
33289 ZI(I,J) = ZI(K,J)
33290 ZI(K,J) = S
33291 130 CONTINUE
33292
33293 140 CONTINUE
33294
33295 200 RETURN
33296 END
33297 SUBROUTINE CBAL(NM,N,AR,AI,LOW,IGH,SCALE)
33298
33299 INTEGER I,J,K,L,M,N,JJ,NM,IGH,LOW,IEXC
33300 DOUBLE PRECISION AR(NM,N),AI(NM,N),SCALE(N)
33301 DOUBLE PRECISION C,F,G,R,S,B2,RADIX
33302 LOGICAL NOCONV
33303
33304
33305
33306
33307
33308
33309
33310
33311
33312
33313
33314
33315
33316
33317
33318
33319
33320
33321
33322
33323
33324
33325
33326
33327
33328
33329
33330
33331
33332
33333
33334
33335
33336
33337
33338
33339
33340
33341
33342
33343
33344
33345
33346
33347
33348
33349
33350
33351
33352
33353
33354
33355
33356
33357
33358
33359
33360
33361 RADIX = 16.0D0
33362
33363 B2 = RADIX * RADIX
33364 K = 1
33365 L = N
33366 GO TO 100
33367
33368
33369 20 SCALE(M) = J
33370 IF (J .EQ. M) GO TO 50
33371
33372 DO 30 I = 1, L
33373 F = AR(I,J)
33374 AR(I,J) = AR(I,M)
33375 AR(I,M) = F
33376 F = AI(I,J)
33377 AI(I,J) = AI(I,M)
33378 AI(I,M) = F
33379 30 CONTINUE
33380
33381 DO 40 I = K, N
33382 F = AR(J,I)
33383 AR(J,I) = AR(M,I)
33384 AR(M,I) = F
33385 F = AI(J,I)
33386 AI(J,I) = AI(M,I)
33387 AI(M,I) = F
33388 40 CONTINUE
33389
33390 50 GO TO (80,130), IEXC
33391
33392
33393 80 IF (L .EQ. 1) GO TO 280
33394 L = L - 1
33395
33396 100 DO 120 JJ = 1, L
33397 J = L + 1 - JJ
33398
33399 DO 110 I = 1, L
33400 IF (I .EQ. J) GO TO 110
33401 IF (AR(J,I) .NE. 0.0D0 .OR. AI(J,I) .NE. 0.0D0) GO TO 120
33402 110 CONTINUE
33403
33404 M = L
33405 IEXC = 1
33406 GO TO 20
33407 120 CONTINUE
33408
33409 GO TO 140
33410
33411
33412 130 K = K + 1
33413
33414 140 DO 170 J = K, L
33415
33416 DO 150 I = K, L
33417 IF (I .EQ. J) GO TO 150
33418 IF (AR(I,J) .NE. 0.0D0 .OR. AI(I,J) .NE. 0.0D0) GO TO 170
33419 150 CONTINUE
33420
33421 M = K
33422 IEXC = 2
33423 GO TO 20
33424 170 CONTINUE
33425
33426 DO 180 I = K, L
33427 180 SCALE(I) = 1.0D0
33428
33429 190 NOCONV = .FALSE.
33430
33431 DO 270 I = K, L
33432 C = 0.0D0
33433 R = 0.0D0
33434
33435 DO 200 J = K, L
33436 IF (J .EQ. I) GO TO 200
33437 C = C + DABS(AR(J,I)) + DABS(AI(J,I))
33438 R = R + DABS(AR(I,J)) + DABS(AI(I,J))
33439 200 CONTINUE
33440
33441 IF (C .EQ. 0.0D0 .OR. R .EQ. 0.0D0) GO TO 270
33442 G = R / RADIX
33443 F = 1.0D0
33444 S = C + R
33445 210 IF (C .GE. G) GO TO 220
33446 F = F * RADIX
33447 C = C * B2
33448 GO TO 210
33449 220 G = R * RADIX
33450 230 IF (C .LT. G) GO TO 240
33451 F = F / RADIX
33452 C = C / B2
33453 GO TO 230
33454
33455 240 IF ((C + R) / F .GE. 0.95D0 * S) GO TO 270
33456 G = 1.0D0 / F
33457 SCALE(I) = SCALE(I) * F
33458 NOCONV = .TRUE.
33459
33460 DO 250 J = K, N
33461 AR(I,J) = AR(I,J) * G
33462 AI(I,J) = AI(I,J) * G
33463 250 CONTINUE
33464
33465 DO 260 J = 1, L
33466 AR(J,I) = AR(J,I) * F
33467 AI(J,I) = AI(J,I) * F
33468 260 CONTINUE
33469
33470 270 CONTINUE
33471
33472 IF (NOCONV) GO TO 190
33473
33474 280 LOW = K
33475 IGH = L
33476 RETURN
33477 END
33478 SUBROUTINE CDIV(AR,AI,BR,BI,CR,CI)
33479 DOUBLE PRECISION AR,AI,BR,BI,CR,CI
33480
33481
33482
33483 DOUBLE PRECISION S,ARS,AIS,BRS,BIS
33484 S = DABS(BR) + DABS(BI)
33485 ARS = AR/S
33486 AIS = AI/S
33487 BRS = BR/S
33488 BIS = BI/S
33489 S = BRS**2 + BIS**2
33490 CR = (ARS*BRS + AIS*BIS)/S
33491 CI = (AIS*BRS - ARS*BIS)/S
33492 RETURN
33493 END
33494 SUBROUTINE COMQR(NM,N,LOW,IGH,HR,HI,WR,WI,IERR)
33495
33496 INTEGER I,J,L,N,EN,LL,NM,IGH,ITN,ITS,LOW,LP1,ENM1,IERR
33497 DOUBLE PRECISION HR(NM,N),HI(NM,N),WR(N),WI(N)
33498 DOUBLE PRECISION SI,SR,TI,TR,XI,XR,YI,YR,ZZI,ZZR,NORM,TST1,TST2,
33499 X PYTHAG
33500
33501
33502
33503
33504
33505
33506
33507
33508
33509
33510
33511
33512
33513
33514
33515
33516
33517
33518
33519
33520
33521
33522
33523
33524
33525
33526
33527
33528
33529
33530
33531
33532
33533
33534
33535
33536
33537
33538
33539
33540
33541
33542
33543
33544
33545
33546
33547
33548
33549
33550
33551
33552
33553
33554
33555
33556
33557 IERR = 0
33558 IF (LOW .EQ. IGH) GO TO 180
33559
33560 L = LOW + 1
33561
33562 DO 170 I = L, IGH
33563 LL = MIN0(I+1,IGH)
33564 IF (HI(I,I-1) .EQ. 0.0D0) GO TO 170
33565 NORM = PYTHAG(HR(I,I-1),HI(I,I-1))
33566 YR = HR(I,I-1) / NORM
33567 YI = HI(I,I-1) / NORM
33568 HR(I,I-1) = NORM
33569 HI(I,I-1) = 0.0D0
33570
33571 DO 155 J = I, IGH
33572 SI = YR * HI(I,J) - YI * HR(I,J)
33573 HR(I,J) = YR * HR(I,J) + YI * HI(I,J)
33574 HI(I,J) = SI
33575 155 CONTINUE
33576
33577 DO 160 J = LOW, LL
33578 SI = YR * HI(J,I) + YI * HR(J,I)
33579 HR(J,I) = YR * HR(J,I) - YI * HI(J,I)
33580 HI(J,I) = SI
33581 160 CONTINUE
33582
33583 170 CONTINUE
33584
33585 180 DO 200 I = 1, N
33586 IF (I .GE. LOW .AND. I .LE. IGH) GO TO 200
33587 WR(I) = HR(I,I)
33588 WI(I) = HI(I,I)
33589 200 CONTINUE
33590
33591 EN = IGH
33592 TR = 0.0D0
33593 TI = 0.0D0
33594 ITN = 30*N
33595
33596 220 IF (EN .LT. LOW) GO TO 1001
33597 ITS = 0
33598 ENM1 = EN - 1
33599
33600
33601 240 DO 260 LL = LOW, EN
33602 L = EN + LOW - LL
33603 IF (L .EQ. LOW) GO TO 300
33604 TST1 = DABS(HR(L-1,L-1)) + DABS(HI(L-1,L-1))
33605 X + DABS(HR(L,L)) + DABS(HI(L,L))
33606 TST2 = TST1 + DABS(HR(L,L-1))
33607 IF (TST2 .EQ. TST1) GO TO 300
33608 260 CONTINUE
33609
33610 300 IF (L .EQ. EN) GO TO 660
33611 IF (ITN .EQ. 0) GO TO 1000
33612 IF (ITS .EQ. 10 .OR. ITS .EQ. 20) GO TO 320
33613 SR = HR(EN,EN)
33614 SI = HI(EN,EN)
33615 XR = HR(ENM1,EN) * HR(EN,ENM1)
33616 XI = HI(ENM1,EN) * HR(EN,ENM1)
33617 IF (XR .EQ. 0.0D0 .AND. XI .EQ. 0.0D0) GO TO 340
33618 YR = (HR(ENM1,ENM1) - SR) / 2.0D0
33619 YI = (HI(ENM1,ENM1) - SI) / 2.0D0
33620 CALL CSROOT(YR**2-YI**2+XR,2.0D0*YR*YI+XI,ZZR,ZZI)
33621 IF (YR * ZZR + YI * ZZI .GE. 0.0D0) GO TO 310
33622 ZZR = -ZZR
33623 ZZI = -ZZI
33624 310 CALL CDIV(XR,XI,YR+ZZR,YI+ZZI,XR,XI)
33625 SR = SR - XR
33626 SI = SI - XI
33627 GO TO 340
33628
33629 320 SR = DABS(HR(EN,ENM1)) + DABS(HR(ENM1,EN-2))
33630 SI = 0.0D0
33631
33632 340 DO 360 I = LOW, EN
33633 HR(I,I) = HR(I,I) - SR
33634 HI(I,I) = HI(I,I) - SI
33635 360 CONTINUE
33636
33637 TR = TR + SR
33638 TI = TI + SI
33639 ITS = ITS + 1
33640 ITN = ITN - 1
33641
33642 LP1 = L + 1
33643
33644 DO 500 I = LP1, EN
33645 SR = HR(I,I-1)
33646 HR(I,I-1) = 0.0D0
33647 NORM = PYTHAG(PYTHAG(HR(I-1,I-1),HI(I-1,I-1)),SR)
33648 XR = HR(I-1,I-1) / NORM
33649 WR(I-1) = XR
33650 XI = HI(I-1,I-1) / NORM
33651 WI(I-1) = XI
33652 HR(I-1,I-1) = NORM
33653 HI(I-1,I-1) = 0.0D0
33654 HI(I,I-1) = SR / NORM
33655
33656 DO 490 J = I, EN
33657 YR = HR(I-1,J)
33658 YI = HI(I-1,J)
33659 ZZR = HR(I,J)
33660 ZZI = HI(I,J)
33661 HR(I-1,J) = XR * YR + XI * YI + HI(I,I-1) * ZZR
33662 HI(I-1,J) = XR * YI - XI * YR + HI(I,I-1) * ZZI
33663 HR(I,J) = XR * ZZR - XI * ZZI - HI(I,I-1) * YR
33664 HI(I,J) = XR * ZZI + XI * ZZR - HI(I,I-1) * YI
33665 490 CONTINUE
33666
33667 500 CONTINUE
33668
33669 SI = HI(EN,EN)
33670 IF (SI .EQ. 0.0D0) GO TO 540
33671 NORM = PYTHAG(HR(EN,EN),SI)
33672 SR = HR(EN,EN) / NORM
33673 SI = SI / NORM
33674 HR(EN,EN) = NORM
33675 HI(EN,EN) = 0.0D0
33676
33677 540 DO 600 J = LP1, EN
33678 XR = WR(J-1)
33679 XI = WI(J-1)
33680
33681 DO 580 I = L, J
33682 YR = HR(I,J-1)
33683 YI = 0.0D0
33684 ZZR = HR(I,J)
33685 ZZI = HI(I,J)
33686 IF (I .EQ. J) GO TO 560
33687 YI = HI(I,J-1)
33688 HI(I,J-1) = XR * YI + XI * YR + HI(J,J-1) * ZZI
33689 560 HR(I,J-1) = XR * YR - XI * YI + HI(J,J-1) * ZZR
33690 HR(I,J) = XR * ZZR + XI * ZZI - HI(J,J-1) * YR
33691 HI(I,J) = XR * ZZI - XI * ZZR - HI(J,J-1) * YI
33692 580 CONTINUE
33693
33694 600 CONTINUE
33695
33696 IF (SI .EQ. 0.0D0) GO TO 240
33697
33698 DO 630 I = L, EN
33699 YR = HR(I,EN)
33700 YI = HI(I,EN)
33701 HR(I,EN) = SR * YR - SI * YI
33702 HI(I,EN) = SR * YI + SI * YR
33703 630 CONTINUE
33704
33705 GO TO 240
33706
33707 660 WR(EN) = HR(EN,EN) + TR
33708 WI(EN) = HI(EN,EN) + TI
33709 EN = ENM1
33710 GO TO 220
33711
33712
33713 1000 IERR = EN
33714 1001 RETURN
33715 END
33716 SUBROUTINE COMQR2(NM,N,LOW,IGH,ORTR,ORTI,HR,HI,WR,WI,ZR,ZI,IERR)
33717
33718
33719
33720 INTEGER I,J,K,L,M,N,EN,II,JJ,LL,NM,NN,IGH,IP1,
33721 X ITN,ITS,LOW,LP1,ENM1,IEND,IERR
33722 DOUBLE PRECISION HR(NM,N),HI(NM,N),WR(N),WI(N),ZR(NM,N),ZI(NM,N),
33723 X ORTR(IGH),ORTI(IGH)
33724 DOUBLE PRECISION SI,SR,TI,TR,XI,XR,YI,YR,ZZI,ZZR,NORM,TST1,TST2,
33725 X PYTHAG
33726
33727
33728
33729
33730
33731
33732
33733
33734
33735
33736
33737
33738
33739
33740
33741
33742
33743
33744
33745
33746
33747
33748
33749
33750
33751
33752
33753
33754
33755
33756
33757
33758
33759
33760
33761
33762
33763
33764
33765
33766
33767
33768
33769
33770
33771
33772
33773
33774
33775
33776
33777
33778
33779
33780
33781
33782
33783
33784
33785
33786
33787
33788
33789
33790
33791
33792
33793
33794
33795
33796
33797 IERR = 0
33798
33799 DO 101 J = 1, N
33800
33801 DO 100 I = 1, N
33802 ZR(I,J) = 0.0D0
33803 ZI(I,J) = 0.0D0
33804 100 CONTINUE
33805 ZR(J,J) = 1.0D0
33806 101 CONTINUE
33807
33808
33809 IEND = IGH - LOW - 1
33810 IF (IEND) 180, 150, 105
33811
33812 105 DO 140 II = 1, IEND
33813 I = IGH - II
33814 IF (ORTR(I) .EQ. 0.0D0 .AND. ORTI(I) .EQ. 0.0D0) GO TO 140
33815 IF (HR(I,I-1) .EQ. 0.0D0 .AND. HI(I,I-1) .EQ. 0.0D0) GO TO 140
33816
33817 NORM = HR(I,I-1) * ORTR(I) + HI(I,I-1) * ORTI(I)
33818 IP1 = I + 1
33819
33820 DO 110 K = IP1, IGH
33821 ORTR(K) = HR(K,I-1)
33822 ORTI(K) = HI(K,I-1)
33823 110 CONTINUE
33824
33825 DO 130 J = I, IGH
33826 SR = 0.0D0
33827 SI = 0.0D0
33828
33829 DO 115 K = I, IGH
33830 SR = SR + ORTR(K) * ZR(K,J) + ORTI(K) * ZI(K,J)
33831 SI = SI + ORTR(K) * ZI(K,J) - ORTI(K) * ZR(K,J)
33832 115 CONTINUE
33833
33834 SR = SR / NORM
33835 SI = SI / NORM
33836
33837 DO 120 K = I, IGH
33838 ZR(K,J) = ZR(K,J) + SR * ORTR(K) - SI * ORTI(K)
33839 ZI(K,J) = ZI(K,J) + SR * ORTI(K) + SI * ORTR(K)
33840 120 CONTINUE
33841
33842 130 CONTINUE
33843
33844 140 CONTINUE
33845
33846 150 L = LOW + 1
33847
33848 DO 170 I = L, IGH
33849 LL = MIN0(I+1,IGH)
33850 IF (HI(I,I-1) .EQ. 0.0D0) GO TO 170
33851 NORM = PYTHAG(HR(I,I-1),HI(I,I-1))
33852 YR = HR(I,I-1) / NORM
33853 YI = HI(I,I-1) / NORM
33854 HR(I,I-1) = NORM
33855 HI(I,I-1) = 0.0D0
33856
33857 DO 155 J = I, N
33858 SI = YR * HI(I,J) - YI * HR(I,J)
33859 HR(I,J) = YR * HR(I,J) + YI * HI(I,J)
33860 HI(I,J) = SI
33861 155 CONTINUE
33862
33863 DO 160 J = 1, LL
33864 SI = YR * HI(J,I) + YI * HR(J,I)
33865 HR(J,I) = YR * HR(J,I) - YI * HI(J,I)
33866 HI(J,I) = SI
33867 160 CONTINUE
33868
33869 DO 165 J = LOW, IGH
33870 SI = YR * ZI(J,I) + YI * ZR(J,I)
33871 ZR(J,I) = YR * ZR(J,I) - YI * ZI(J,I)
33872 ZI(J,I) = SI
33873 165 CONTINUE
33874
33875 170 CONTINUE
33876
33877 180 DO 200 I = 1, N
33878 IF (I .GE. LOW .AND. I .LE. IGH) GO TO 200
33879 WR(I) = HR(I,I)
33880 WI(I) = HI(I,I)
33881 200 CONTINUE
33882
33883 EN = IGH
33884 TR = 0.0D0
33885 TI = 0.0D0
33886 ITN = 30*N
33887
33888 220 IF (EN .LT. LOW) GO TO 680
33889 ITS = 0
33890 ENM1 = EN - 1
33891
33892
33893 240 DO 260 LL = LOW, EN
33894 L = EN + LOW - LL
33895 IF (L .EQ. LOW) GO TO 300
33896 TST1 = DABS(HR(L-1,L-1)) + DABS(HI(L-1,L-1))
33897 X + DABS(HR(L,L)) + DABS(HI(L,L))
33898 TST2 = TST1 + DABS(HR(L,L-1))
33899 IF (TST2 .EQ. TST1) GO TO 300
33900 260 CONTINUE
33901
33902 300 IF (L .EQ. EN) GO TO 660
33903 IF (ITN .EQ. 0) GO TO 1000
33904 IF (ITS .EQ. 10 .OR. ITS .EQ. 20) GO TO 320
33905 SR = HR(EN,EN)
33906 SI = HI(EN,EN)
33907 XR = HR(ENM1,EN) * HR(EN,ENM1)
33908 XI = HI(ENM1,EN) * HR(EN,ENM1)
33909 IF (XR .EQ. 0.0D0 .AND. XI .EQ. 0.0D0) GO TO 340
33910 YR = (HR(ENM1,ENM1) - SR) / 2.0D0
33911 YI = (HI(ENM1,ENM1) - SI) / 2.0D0
33912 CALL CSROOT(YR**2-YI**2+XR,2.0D0*YR*YI+XI,ZZR,ZZI)
33913 IF (YR * ZZR + YI * ZZI .GE. 0.0D0) GO TO 310
33914 ZZR = -ZZR
33915 ZZI = -ZZI
33916 310 CALL CDIV(XR,XI,YR+ZZR,YI+ZZI,XR,XI)
33917 SR = SR - XR
33918 SI = SI - XI
33919 GO TO 340
33920
33921 320 SR = DABS(HR(EN,ENM1)) + DABS(HR(ENM1,EN-2))
33922 SI = 0.0D0
33923
33924 340 DO 360 I = LOW, EN
33925 HR(I,I) = HR(I,I) - SR
33926 HI(I,I) = HI(I,I) - SI
33927 360 CONTINUE
33928
33929 TR = TR + SR
33930 TI = TI + SI
33931 ITS = ITS + 1
33932 ITN = ITN - 1
33933
33934 LP1 = L + 1
33935
33936 DO 500 I = LP1, EN
33937 SR = HR(I,I-1)
33938 HR(I,I-1) = 0.0D0
33939 NORM = PYTHAG(PYTHAG(HR(I-1,I-1),HI(I-1,I-1)),SR)
33940 XR = HR(I-1,I-1) / NORM
33941 WR(I-1) = XR
33942 XI = HI(I-1,I-1) / NORM
33943 WI(I-1) = XI
33944 HR(I-1,I-1) = NORM
33945 HI(I-1,I-1) = 0.0D0
33946 HI(I,I-1) = SR / NORM
33947
33948 DO 490 J = I, N
33949 YR = HR(I-1,J)
33950 YI = HI(I-1,J)
33951 ZZR = HR(I,J)
33952 ZZI = HI(I,J)
33953 HR(I-1,J) = XR * YR + XI * YI + HI(I,I-1) * ZZR
33954 HI(I-1,J) = XR * YI - XI * YR + HI(I,I-1) * ZZI
33955 HR(I,J) = XR * ZZR - XI * ZZI - HI(I,I-1) * YR
33956 HI(I,J) = XR * ZZI + XI * ZZR - HI(I,I-1) * YI
33957 490 CONTINUE
33958
33959 500 CONTINUE
33960
33961 SI = HI(EN,EN)
33962 IF (SI .EQ. 0.0D0) GO TO 540
33963 NORM = PYTHAG(HR(EN,EN),SI)
33964 SR = HR(EN,EN) / NORM
33965 SI = SI / NORM
33966 HR(EN,EN) = NORM
33967 HI(EN,EN) = 0.0D0
33968 IF (EN .EQ. N) GO TO 540
33969 IP1 = EN + 1
33970
33971 DO 520 J = IP1, N
33972 YR = HR(EN,J)
33973 YI = HI(EN,J)
33974 HR(EN,J) = SR * YR + SI * YI
33975 HI(EN,J) = SR * YI - SI * YR
33976 520 CONTINUE
33977
33978 540 DO 600 J = LP1, EN
33979 XR = WR(J-1)
33980 XI = WI(J-1)
33981
33982 DO 580 I = 1, J
33983 YR = HR(I,J-1)
33984 YI = 0.0D0
33985 ZZR = HR(I,J)
33986 ZZI = HI(I,J)
33987 IF (I .EQ. J) GO TO 560
33988 YI = HI(I,J-1)
33989 HI(I,J-1) = XR * YI + XI * YR + HI(J,J-1) * ZZI
33990 560 HR(I,J-1) = XR * YR - XI * YI + HI(J,J-1) * ZZR
33991 HR(I,J) = XR * ZZR + XI * ZZI - HI(J,J-1) * YR
33992 HI(I,J) = XR * ZZI - XI * ZZR - HI(J,J-1) * YI
33993 580 CONTINUE
33994
33995 DO 590 I = LOW, IGH
33996 YR = ZR(I,J-1)
33997 YI = ZI(I,J-1)
33998 ZZR = ZR(I,J)
33999 ZZI = ZI(I,J)
34000 ZR(I,J-1) = XR * YR - XI * YI + HI(J,J-1) * ZZR
34001 ZI(I,J-1) = XR * YI + XI * YR + HI(J,J-1) * ZZI
34002 ZR(I,J) = XR * ZZR + XI * ZZI - HI(J,J-1) * YR
34003 ZI(I,J) = XR * ZZI - XI * ZZR - HI(J,J-1) * YI
34004 590 CONTINUE
34005
34006 600 CONTINUE
34007
34008 IF (SI .EQ. 0.0D0) GO TO 240
34009
34010 DO 630 I = 1, EN
34011 YR = HR(I,EN)
34012 YI = HI(I,EN)
34013 HR(I,EN) = SR * YR - SI * YI
34014 HI(I,EN) = SR * YI + SI * YR
34015 630 CONTINUE
34016
34017 DO 640 I = LOW, IGH
34018 YR = ZR(I,EN)
34019 YI = ZI(I,EN)
34020 ZR(I,EN) = SR * YR - SI * YI
34021 ZI(I,EN) = SR * YI + SI * YR
34022 640 CONTINUE
34023
34024 GO TO 240
34025
34026 660 HR(EN,EN) = HR(EN,EN) + TR
34027 WR(EN) = HR(EN,EN)
34028 HI(EN,EN) = HI(EN,EN) + TI
34029 WI(EN) = HI(EN,EN)
34030 EN = ENM1
34031 GO TO 220
34032
34033
34034 680 NORM = 0.0D0
34035
34036 DO 720 I = 1, N
34037
34038 DO 720 J = I, N
34039 TR = DABS(HR(I,J)) + DABS(HI(I,J))
34040 IF (TR .GT. NORM) NORM = TR
34041 720 CONTINUE
34042
34043 IF (N .EQ. 1 .OR. NORM .EQ. 0.0D0) GO TO 1001
34044
34045 DO 800 NN = 2, N
34046 EN = N + 2 - NN
34047 XR = WR(EN)
34048 XI = WI(EN)
34049 HR(EN,EN) = 1.0D0
34050 HI(EN,EN) = 0.0D0
34051 ENM1 = EN - 1
34052
34053 DO 780 II = 1, ENM1
34054 I = EN - II
34055 ZZR = 0.0D0
34056 ZZI = 0.0D0
34057 IP1 = I + 1
34058
34059 DO 740 J = IP1, EN
34060 ZZR = ZZR + HR(I,J) * HR(J,EN) - HI(I,J) * HI(J,EN)
34061 ZZI = ZZI + HR(I,J) * HI(J,EN) + HI(I,J) * HR(J,EN)
34062 740 CONTINUE
34063
34064 YR = XR - WR(I)
34065 YI = XI - WI(I)
34066 IF (YR .NE. 0.0D0 .OR. YI .NE. 0.0D0) GO TO 765
34067 TST1 = NORM
34068 YR = TST1
34069 760 YR = 0.01D0 * YR
34070 TST2 = NORM + YR
34071 IF (TST2 .GT. TST1) GO TO 760
34072 765 CONTINUE
34073 CALL CDIV(ZZR,ZZI,YR,YI,HR(I,EN),HI(I,EN))
34074
34075 TR = DABS(HR(I,EN)) + DABS(HI(I,EN))
34076 IF (TR .EQ. 0.0D0) GO TO 780
34077 TST1 = TR
34078 TST2 = TST1 + 1.0D0/TST1
34079 IF (TST2 .GT. TST1) GO TO 780
34080 DO 770 J = I, EN
34081 HR(J,EN) = HR(J,EN)/TR
34082 HI(J,EN) = HI(J,EN)/TR
34083 770 CONTINUE
34084
34085 780 CONTINUE
34086
34087 800 CONTINUE
34088
34089
34090 DO 840 I = 1, N
34091 IF (I .GE. LOW .AND. I .LE. IGH) GO TO 840
34092
34093 DO 820 J = I, N
34094 ZR(I,J) = HR(I,J)
34095 ZI(I,J) = HI(I,J)
34096 820 CONTINUE
34097
34098 840 CONTINUE
34099
34100
34101
34102 DO 880 JJ = LOW, N
34103 J = N + LOW - JJ
34104 M = MIN0(J,IGH)
34105
34106 DO 880 I = LOW, IGH
34107 ZZR = 0.0D0
34108 ZZI = 0.0D0
34109
34110 DO 860 K = LOW, M
34111 ZZR = ZZR + ZR(I,K) * HR(K,J) - ZI(I,K) * HI(K,J)
34112 ZZI = ZZI + ZR(I,K) * HI(K,J) + ZI(I,K) * HR(K,J)
34113 860 CONTINUE
34114
34115 ZR(I,J) = ZZR
34116 ZI(I,J) = ZZI
34117 880 CONTINUE
34118
34119 GO TO 1001
34120
34121
34122 1000 IERR = EN
34123 1001 RETURN
34124 END
34125 SUBROUTINE CORTH(NM,N,LOW,IGH,AR,AI,ORTR,ORTI)
34126
34127 INTEGER I,J,M,N,II,JJ,LA,MP,NM,IGH,KP1,LOW
34128 DOUBLE PRECISION AR(NM,N),AI(NM,N),ORTR(IGH),ORTI(IGH)
34129 DOUBLE PRECISION F,G,H,FI,FR,SCALE,PYTHAG
34130
34131
34132
34133
34134
34135
34136
34137
34138
34139
34140
34141
34142
34143
34144
34145
34146
34147
34148
34149
34150
34151
34152
34153
34154
34155
34156
34157
34158
34159
34160
34161
34162
34163
34164
34165
34166
34167
34168
34169
34170
34171
34172
34173
34174
34175
34176 LA = IGH - 1
34177 KP1 = LOW + 1
34178 IF (LA .LT. KP1) GO TO 200
34179
34180 DO 180 M = KP1, LA
34181 H = 0.0D0
34182 ORTR(M) = 0.0D0
34183 ORTI(M) = 0.0D0
34184 SCALE = 0.0D0
34185
34186 DO 90 I = M, IGH
34187 90 SCALE = SCALE + DABS(AR(I,M-1)) + DABS(AI(I,M-1))
34188
34189 IF (SCALE .EQ. 0.0D0) GO TO 180
34190 MP = M + IGH
34191
34192 DO 100 II = M, IGH
34193 I = MP - II
34194 ORTR(I) = AR(I,M-1) / SCALE
34195 ORTI(I) = AI(I,M-1) / SCALE
34196 H = H + ORTR(I) * ORTR(I) + ORTI(I) * ORTI(I)
34197 100 CONTINUE
34198
34199 G = DSQRT(H)
34200 F = PYTHAG(ORTR(M),ORTI(M))
34201 IF (F .EQ. 0.0D0) GO TO 103
34202 H = H + F * G
34203 G = G / F
34204 ORTR(M) = (1.0D0 + G) * ORTR(M)
34205 ORTI(M) = (1.0D0 + G) * ORTI(M)
34206 GO TO 105
34207
34208 103 ORTR(M) = G
34209 AR(M,M-1) = SCALE
34210
34211 105 DO 130 J = M, N
34212 FR = 0.0D0
34213 FI = 0.0D0
34214
34215 DO 110 II = M, IGH
34216 I = MP - II
34217 FR = FR + ORTR(I) * AR(I,J) + ORTI(I) * AI(I,J)
34218 FI = FI + ORTR(I) * AI(I,J) - ORTI(I) * AR(I,J)
34219 110 CONTINUE
34220
34221 FR = FR / H
34222 FI = FI / H
34223
34224 DO 120 I = M, IGH
34225 AR(I,J) = AR(I,J) - FR * ORTR(I) + FI * ORTI(I)
34226 AI(I,J) = AI(I,J) - FR * ORTI(I) - FI * ORTR(I)
34227 120 CONTINUE
34228
34229 130 CONTINUE
34230
34231 DO 160 I = 1, IGH
34232 FR = 0.0D0
34233 FI = 0.0D0
34234
34235 DO 140 JJ = M, IGH
34236 J = MP - JJ
34237 FR = FR + ORTR(J) * AR(I,J) - ORTI(J) * AI(I,J)
34238 FI = FI + ORTR(J) * AI(I,J) + ORTI(J) * AR(I,J)
34239 140 CONTINUE
34240
34241 FR = FR / H
34242 FI = FI / H
34243
34244 DO 150 J = M, IGH
34245 AR(I,J) = AR(I,J) - FR * ORTR(J) - FI * ORTI(J)
34246 AI(I,J) = AI(I,J) + FR * ORTI(J) - FI * ORTR(J)
34247 150 CONTINUE
34248
34249 160 CONTINUE
34250
34251 ORTR(M) = SCALE * ORTR(M)
34252 ORTI(M) = SCALE * ORTI(M)
34253 AR(M,M-1) = -G * AR(M,M-1)
34254 AI(M,M-1) = -G * AI(M,M-1)
34255 180 CONTINUE
34256
34257 200 RETURN
34258 END
34259 SUBROUTINE CSROOT(XR,XI,YR,YI)
34260 DOUBLE PRECISION XR,XI,YR,YI
34261
34262
34263
34264
34265 DOUBLE PRECISION S,TR,TI,PYTHAG
34266 TR = XR
34267 TI = XI
34268 S = DSQRT(0.5D0*(PYTHAG(TR,TI) + DABS(TR)))
34269 IF (TR .GE. 0.0D0) YR = S
34270 IF (TI .LT. 0.0D0) S = -S
34271 IF (TR .LE. 0.0D0) YI = S
34272 IF (TR .LT. 0.0D0) YR = 0.5D0*(TI/YI)
34273 IF (TR .GT. 0.0D0) YI = 0.5D0*(TI/YR)
34274 RETURN
34275 END
34276 DOUBLE PRECISION FUNCTION PYTHAG(A,B)
34277 DOUBLE PRECISION A,B
34278
34279
34280
34281 DOUBLE PRECISION P,R,S,T,U
34282 P = DMAX1(DABS(A),DABS(B))
34283 IF (P .EQ. 0.0D0) GO TO 20
34284 R = (DMIN1(DABS(A),DABS(B))/P)**2
34285 10 CONTINUE
34286 T = 4.0D0 + R
34287 IF (T .EQ. 4.0D0) GO TO 20
34288 S = R/T
34289 U = 1.0D0 + 2.0D0*S
34290 P = U*P
34291 R = (S/U)**2 * R
34292 GO TO 10
34293 20 PYTHAG = P
34294 RETURN
34295 END
34296
34297
34298
34299
34300
34301
34302
34303 SUBROUTINE PYTBBN(I,NN,E,XMGLU,GAM)
34304
34305
34306 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
34307 IMPLICIT INTEGER(I-N)
34308 INTEGER PYK,PYCHGE,PYCOMP
34309
34310 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
34311
34312 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
34313 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
34314 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
34315 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
34316 &SFMIX(16,4)
34317 SAVE /PYDAT1/,/PYDAT2/,/PYMSSM/,/PYSSMT/
34318
34319
34320 EXTERNAL PYSIMP,PYLAMF
34321 DOUBLE PRECISION PYSIMP,PYLAMF
34322 INTEGER LIN,NN
34323 DOUBLE PRECISION COSD,SIND,COSD2,SIND2,COS2D,SIN2D
34324 DOUBLE PRECISION HL,HR,FL,FR,HL2,HR2,FL2,FR2
34325 DOUBLE PRECISION XMS2(2),XM,XM2,XMG,XMG2,XMR,XMR2
34326 DOUBLE PRECISION SBAR,SMIN,SMAX,XMQA,W,GRS,G(0:6),SUMME(0:100)
34327 DOUBLE PRECISION FF,HH,HFL,HFR,HRFL,HLFR,XMQ4,XM24
34328 DOUBLE PRECISION XLN1,XLN2,B1,B2
34329 DOUBLE PRECISION E,XMGLU,GAM
34330 DOUBLE PRECISION HRB(4),HLB(4),FLB(4),FRB(4)
34331 SAVE HRB,HLB,FLB,FRB
34332 DOUBLE PRECISION ALPHAW,ALPHAS,GSU2
34333 DOUBLE PRECISION HLT(4),HRT(4),FLT(4),FRT(4)
34334 SAVE HLT,HRT,FLT,FRT
34335 DOUBLE PRECISION AMC(2),AMN(4),AN(4,4),ZN(3),FLU(4),FRU(4),
34336 &FLD(4),FRD(4)
34337 SAVE AMC,AMN,AN,ZN,FLU,FRU,FLD,FRD
34338 DOUBLE PRECISION AMBOT,AMSB(2),SINC,COSC
34339 DOUBLE PRECISION AMTOP,AMST(2),SINA,COSA
34340 SAVE AMSB,AMST
34341 DOUBLE PRECISION SINW,COSW,TANW,COSW2,SINW2
34342 DOUBLE PRECISION ROT1(4,4)
34343 LOGICAL IFIRST
34344 SAVE IFIRST
34345 DATA IFIRST/.TRUE./
34346
34347 TANB=RMSS(5)
34348 SINB=TANB/SQRT(1D0+TANB**2)
34349 COSB=SINB/TANB
34350 XW=PARU(102)
34351 SINW=SQRT(XW)
34352 COSW=SQRT(1D0-XW)
34353 TANW=SINW/COSW
34354 AMW=PMAS(24,1)
34355 COSC=SFMIX(5,1)
34356 SINC=SFMIX(5,3)
34357 COSA=SFMIX(6,1)
34358 SINA=SFMIX(6,3)
34359 AMBOT=0D0
34360 AMTOP=PYRNMT(PMAS(6,1))
34361 W2=SQRT(2D0)
34362 FAKT1=AMBOT/W2/AMW/COSB
34363 FAKT2=AMTOP/W2/AMW/SINB
34364 IF(IFIRST) THEN
34365 DO 110 II=1,4
34366 AMN(II)=SMZ(II)
34367 DO 100 J=1,4
34368 ROT1(II,J)=0D0
34369 AN(II,J)=0D0
34370 100 CONTINUE
34371 110 CONTINUE
34372 ROT1(1,1)=COSW
34373 ROT1(1,2)=-SINW
34374 ROT1(2,1)=-ROT1(1,2)
34375 ROT1(2,2)=ROT1(1,1)
34376 ROT1(3,3)=COSB
34377 ROT1(3,4)=SINB
34378 ROT1(4,3)=-ROT1(3,4)
34379 ROT1(4,4)=ROT1(3,3)
34380 DO 140 II=1,4
34381 DO 130 J=1,4
34382 DO 120 JJ=1,4
34383 AN(II,J)=AN(II,J)+ZMIX(II,JJ)*ROT1(JJ,J)
34384 120 CONTINUE
34385 130 CONTINUE
34386 140 CONTINUE
34387 DO 150 J=1,4
34388 ZN(1)=-FAKT2*(-SINB*AN(J,3)+COSB*AN(J,4))
34389 ZN(2)=-2D0*W2/3D0*SINW*(TANW*AN(J,2)-AN(J,1))
34390 ZN(3)=-2*W2/3D0*SINW*AN(J,1)-W2*(0.5D0-2D0/3D0*
34391 & XW)*AN(J,2)/COSW
34392 HRT(J)=ZN(1)*COSA-ZN(3)*SINA
34393 HLT(J)=ZN(1)*COSA+ZN(2)*SINA
34394 FLT(J)=ZN(3)*COSA+ZN(1)*SINA
34395 FRT(J)=ZN(2)*COSA-ZN(1)*SINA
34396 FLU(J)=ZN(3)
34397 FRU(J)=ZN(2)
34398 ZN(1)=-FAKT1*(COSB*AN(J,3)+SINB*AN(J,4))
34399 ZN(2)=W2/3D0*SINW*(TANW*AN(J,2)-AN(J,1))
34400 ZN(3)=W2/3D0*SINW*AN(J,1)+W2*(0.5D0-XW/3D0)*AN(J,2)/COSW
34401 HRB(J)=ZN(1)*COSC-ZN(3)*SINC
34402 HLB(J)=ZN(1)*COSC+ZN(2)*SINC
34403 FLB(J)=ZN(3)*COSC+ZN(1)*SINC
34404 FRB(J)=ZN(2)*COSC-ZN(1)*SINC
34405 FLD(J)=ZN(3)
34406 FRD(J)=ZN(2)
34407 150 CONTINUE
34408 AMST(1)=PMAS(PYCOMP(KSUSY1+6),1)
34409 AMST(2)=PMAS(PYCOMP(KSUSY2+6),1)
34410 AMSB(1)=PMAS(PYCOMP(KSUSY1+5),1)
34411 AMSB(2)=PMAS(PYCOMP(KSUSY2+5),1)
34412 IFIRST=.FALSE.
34413 ENDIF
34414
34415 IF(NINT(3D0*E).EQ.2) THEN
34416 HL=HLT(I)
34417 HR=HRT(I)
34418 FL=FLT(I)
34419 FR=FRT(I)
34420 COSD=SFMIX(6,1)
34421 SIND=SFMIX(6,3)
34422 XMS2(1)=PMAS(PYCOMP(KSUSY1+6),1)**2
34423 XMS2(2)=PMAS(PYCOMP(KSUSY2+6),1)**2
34424 XM=PMAS(6,1)
34425 ELSE
34426 HL=HLB(I)
34427 HR=HRB(I)
34428 FL=FLB(I)
34429 FR=FRB(I)
34430 COSD=SFMIX(5,1)
34431 SIND=SFMIX(5,3)
34432 XMS2(1)=PMAS(PYCOMP(KSUSY1+5),1)**2
34433 XMS2(2)=PMAS(PYCOMP(KSUSY2+5),1)**2
34434 XM=PMAS(5,1)
34435 ENDIF
34436 COSD2=COSD*COSD
34437 SIND2=SIND*SIND
34438 COS2D=COSD2-SIND2
34439 SIN2D=SIND*COSD*2D0
34440 HL2=HL*HL
34441 HR2=HR*HR
34442 FL2=FL*FL
34443 FR2=FR*FR
34444 FF=FL*FR
34445 HH=HL*HR
34446 HFL=HL*FL
34447 HFR=HR*FR
34448 HRFL=HR*FL
34449 HLFR=HL*FR
34450 XM2=XM*XM
34451 XMG=XMGLU
34452 XMG2=XMG*XMG
34453 ALPHAW=PYALEM(XMG2)
34454 ALPHAS=PYALPS(XMG2)
34455 XMR=AMN(I)
34456 XMR2=XMR*XMR
34457 XMQ4=XMG*XM2*XMR
34458 XM24=(XMG2+XM2)*(XM2+XMR2)
34459 SMIN=4D0*XM2
34460 SMAX=(XMG-ABS(XMR))**2
34461 XMQA=XMG2+2D0*XM2+XMR2
34462 DO 170 LIN=1,NN-1
34463 SBAR=SMIN+DBLE(LIN)*(SMAX-SMIN)/DBLE(NN)
34464 GRS=SBAR-XMQA
34465 W=PYLAMF(XMG2,XMR2,SBAR)*(0.25D0-XM2/SBAR)
34466 W=DSQRT(W)
34467 XLN1=LOG(ABS((GRS/2D0+XMS2(1)-W)/(GRS/2D0+XMS2(1)+W)))
34468 XLN2=LOG(ABS((GRS/2D0+XMS2(2)-W)/(GRS/2D0+XMS2(2)+W)))
34469 B1=1D0/(GRS/2D0+XMS2(1)-W)-1D0/(GRS/2D0+XMS2(1)+W)
34470 B2=1D0/(GRS/2D0+XMS2(2)-W)-1D0/(GRS/2D0+XMS2(2)+W)
34471 G(0)=-2D0*(HL2+FL2+HR2+FR2+(HFR-HFL)*SIN2D
34472 & +2D0*(FF*SIND2-HH*COSD2))*W
34473 G(1)=((HL2+FL2)*(XMQA-2D0*XMS2(1)-2D0*XM*XMG*SIN2D)
34474 & +4D0*HFL*XM*XMR)*XLN1
34475 & +((HL2+FL2)*((XMQA-XMS2(1))*XMS2(1)-XM24
34476 & +2D0*XM*XMG*(XM2+XMR2-XMS2(1))*SIN2D)
34477 & -4D0*HFL*XMR*XM*(XMG2+XM2-XMS2(1))
34478 & +8D0*HFL*XMQ4*SIN2D)*B1
34479 G(2)=((HR2+FR2)*(XMQA-2D0*XMS2(2)+2D0*XM*XMG*SIN2D)
34480 & +4D0*HFR*XMR*XM)*XLN2
34481 & +((HR2+FR2)*((XMQA-XMS2(2))*XMS2(2)-XM24
34482 & +2D0*XMG*XM*SIN2D*(XMS2(2)-XM2-XMR2))
34483 & +4D0*HFR*XM*XMR*(XMS2(2)-XMG2-XM2)
34484 & -8D0*HFR*XMQ4*SIN2D)*B2
34485 G(3)=(2D0*HFL*SIN2D*(XMS2(1)*(GRS+XMS2(1))+XM2*(SBAR-XMG2-XMR2)
34486 & +XMG2*XMR2+XM2*XM2)-2D0*XMR*XMG*(HL2*SIND2+FL2*COSD2)*SBAR
34487 & -2D0*XMG*XM*HFL*(SBAR+XMR2-XMG2)
34488 & +XMR*XM*(HL2+FL2)*SIN2D*(SBAR+XMG2-XMR2)
34489 & -4D0*XMQ4*(HL2-FL2)*COS2D)/(GRS+2D0*XMS2(1))*XLN1
34490 G(4)=4D0*COS2D*XM*XMG/(XMS2(1)-XMS2(2))*
34491 & (((HLFR+HRFL)*(XM2+XMR2)+2D0*XM*XMR*(HH+FF))*(XLN1-XLN2)
34492 & +(HLFR+HRFL)*(XMS2(2)*XLN2-XMS2(1)*XLN1))
34493 G(5)=(2D0*(HH*COSD2-FF*SIND2)
34494 & *((XMS2(2)*(XMS2(2)+GRS)+XM2*XM2+XMG2*XMR2)*XLN2
34495 & +(XMS2(1)*(XMS2(1)+GRS)+XM2*XM2+XMG2*XMR2)*XLN1)
34496 & +XM*((HH-FF)*SIN2D*XMG-(HRFL-HLFR)*XMR)
34497 & *((GRS+XMS2(1)*2D0)*XLN1-(GRS+XMS2(2)*2D0)*XLN2)
34498 & +((HRFL-HLFR)*XMR*(SIN2D*XMG*(SBAR-4D0*XM2)
34499 & +COS2D*XM*(SBAR+XMG2-XMR2))
34500 & +2D0*(FF*COSD2-HH*SIND2)*XM2*(SBAR-XMG2-XMR2))
34501 & *(XLN1+XLN2))/(GRS+XMS2(1)+XMS2(2))
34502 G(6)=(-2D0*HFR*SIN2D*(XMS2(2)*(GRS+XMS2(2))+XM2*(SBAR-XMG2-XMR2)
34503 & +XMG2*XMR2+XM2*XM2)-2D0*XMR*XMG*(HR2*SIND2+FR2*COSD2)*SBAR
34504 & -2D0*XMG*XM*HFR*(SBAR+XMR2-XMG2)
34505 & -XMR*XM*(HR2+FR2)*SIN2D*(SBAR+XMG2-XMR2)
34506 & -4D0*XMQ4*(HR2-FR2)*COS2D)/(GRS+2D0*XMS2(2))*XLN2
34507 SUMME(LIN)=0D0
34508 DO 160 J=0,6
34509 SUMME(LIN)=SUMME(LIN)+G(J)
34510 160 CONTINUE
34511 170 CONTINUE
34512 SUMME(0)=0D0
34513 SUMME(NN)=0D0
34514 GAM = ALPHAW * ALPHAS * PYSIMP(SUMME,SMIN,SMAX,NN)
34515 &/ (16D0 * PARU(1) * PARU(102) * XMGLU**3)
34516
34517 RETURN
34518 END
34519
34520
34521
34522
34523
34524
34525
34526 SUBROUTINE PYTBBC(I,NN,XMGLU,GAM)
34527
34528
34529 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
34530 IMPLICIT INTEGER(I-N)
34531 INTEGER PYK,PYCHGE,PYCOMP
34532
34533 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
34534
34535 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
34536 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
34537 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
34538 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
34539 &SFMIX(16,4)
34540 SAVE /PYDAT1/,/PYDAT2/,/PYMSSM/,/PYSSMT/
34541
34542
34543 EXTERNAL PYSIMP,PYLAMF
34544 DOUBLE PRECISION PYSIMP,PYLAMF
34545 INTEGER I,NN,LIN
34546 DOUBLE PRECISION XMG,XMG2,XMB,XMB2,XMR,XMR2
34547 DOUBLE PRECISION XMT,XMT2,XMST(4),XMSB(4)
34548 DOUBLE PRECISION ULR(2),VLR(2),XMQ2,XMQ4,AM,W,SBAR,SMIN,SMAX
34549 DOUBLE PRECISION SUMME(0:100),A(4,8)
34550 DOUBLE PRECISION COS2A,SIN2A,COS2C,SIN2C
34551 DOUBLE PRECISION GRS,XMQ3,XMGBTR,XMGTBR,ANT1,ANT2,ANB1,ANB2
34552 DOUBLE PRECISION XMGLU,GAM
34553 DOUBLE PRECISION XX1(2),XX2(2),AAA(2),BBB(2),CCC(2),
34554 &DDD(2),EEE(2),FFF(2)
34555 SAVE XX1,XX2,AAA,BBB,CCC,DDD,EEE,FFF
34556 DOUBLE PRECISION ALPHAW,ALPHAS,GSU2
34557 DOUBLE PRECISION AMC(2),AMN(4)
34558 SAVE AMC,AMN
34559 DOUBLE PRECISION AMBOT,AMSB(2),SINC,COSC
34560 DOUBLE PRECISION AMTOP,AMST(2),SINA,COSA
34561 SAVE AMSB,AMST
34562 DOUBLE PRECISION SINW,COSW,TANW,COSW2,SINW2
34563 LOGICAL IFIRST
34564 SAVE IFIRST
34565 DATA IFIRST/.TRUE./
34566
34567 TANB=RMSS(5)
34568 SINB=TANB/SQRT(1D0+TANB**2)
34569 COSB=SINB/TANB
34570 XW=PARU(102)
34571 SINW=SQRT(XW)
34572 COSW=SQRT(1D0-XW)
34573 AMW=PMAS(24,1)
34574 COSC=SFMIX(5,1)
34575 SINC=SFMIX(5,3)
34576 COSA=SFMIX(6,1)
34577 SINA=SFMIX(6,3)
34578 AMBOT=0D0
34579 AMTOP=PYRNMT(PMAS(6,1))
34580 W2=SQRT(2D0)
34581 AMW=PMAS(24,1)
34582 FAKT1=AMBOT/W2/AMW/COSB
34583 FAKT2=AMTOP/W2/AMW/SINB
34584 IF(IFIRST) THEN
34585 AMC(1)=SMW(1)
34586 AMC(2)=SMW(2)
34587 DO 100 JJ=1,2
34588 CCC(JJ)=FAKT1*UMIX(JJ,2)*SINC-UMIX(JJ,1)*COSC
34589 EEE(JJ)=FAKT2*VMIX(JJ,2)*COSC
34590 DDD(JJ)=FAKT1*UMIX(JJ,2)*COSC+UMIX(JJ,1)*SINC
34591 FFF(JJ)=FAKT2*VMIX(JJ,2)*SINC
34592 XX1(JJ)=FAKT2*VMIX(JJ,2)*SINA-VMIX(JJ,1)*COSA
34593 AAA(JJ)=FAKT1*UMIX(JJ,2)*COSA
34594 XX2(JJ)=FAKT2*VMIX(JJ,2)*COSA+VMIX(JJ,1)*SINA
34595 BBB(JJ)=FAKT1*UMIX(JJ,2)*SINA
34596 100 CONTINUE
34597 AMST(1)=PMAS(PYCOMP(KSUSY1+6),1)
34598 AMST(2)=PMAS(PYCOMP(KSUSY2+6),1)
34599 AMSB(1)=PMAS(PYCOMP(KSUSY1+5),1)
34600 AMSB(2)=PMAS(PYCOMP(KSUSY2+5),1)
34601 IFIRST=.FALSE.
34602 ENDIF
34603 AMTOP=PMAS(6,1)
34604
34605 ULR(1)=XX1(I)*XX1(I)+AAA(I)*AAA(I)
34606 ULR(2)=XX2(I)*XX2(I)+BBB(I)*BBB(I)
34607 VLR(1)=CCC(I)*CCC(I)+EEE(I)*EEE(I)
34608 VLR(2)=DDD(I)*DDD(I)+FFF(I)*FFF(I)
34609
34610 COS2A=COSA**2-SINA**2
34611 SIN2A=SINA*COSA*2D0
34612 COS2C=COSC**2-SINC**2
34613 SIN2C=SINC*COSC*2D0
34614
34615 XMG=XMGLU
34616 XMT=AMTOP
34617 XMB=0D0
34618 XMR=AMC(I)
34619 XMG2=XMG*XMG
34620 ALPHAW=PYALEM(XMG2)
34621 ALPHAS=PYALPS(XMG2)
34622 XMT2=XMT*XMT
34623 XMB2=XMB*XMB
34624 XMR2=XMR*XMR
34625 XMQ2=XMG2+XMT2+XMB2+XMR2
34626 XMQ4=XMG*XMT*XMB*XMR
34627 XMQ3=XMG2*XMR2+XMT2*XMB2
34628 XMGBTR=(XMG2+XMB2)*(XMT2+XMR2)
34629 XMGTBR=(XMG2+XMT2)*(XMB2+XMR2)
34630
34631 XMST(1)=AMST(1)*AMST(1)
34632 XMST(2)=AMST(1)*AMST(1)
34633 XMST(3)=AMST(2)*AMST(2)
34634 XMST(4)=AMST(2)*AMST(2)
34635 XMSB(1)=AMSB(1)*AMSB(1)
34636 XMSB(2)=AMSB(2)*AMSB(2)
34637 XMSB(3)=AMSB(1)*AMSB(1)
34638 XMSB(4)=AMSB(2)*AMSB(2)
34639
34640 A(1,1)=-COSA*SINC*CCC(I)*AAA(I)-SINA*COSC*EEE(I)*XX1(I)
34641 A(1,2)=XMG*XMB*(COSA*COSC*CCC(I)*AAA(I)+SINA*SINC*EEE(I)*XX1(I))
34642 A(1,3)=-XMG*XMR*(COSA*COSC*CCC(I)*XX1(I)+SINA*SINC*EEE(I)*AAA(I))
34643 A(1,4)=XMB*XMR*(COSA*SINC*CCC(I)*XX1(I)+SINA*COSC*EEE(I)*AAA(I))
34644 A(1,5)=XMG*XMT*(COSA*COSC*EEE(I)*XX1(I)+SINA*SINC*CCC(I)*AAA(I))
34645 A(1,6)=-XMT*XMB*(COSA*SINC*EEE(I)*XX1(I)+SINA*COSC*CCC(I)*AAA(I))
34646 A(1,7)=XMT*XMR*(COSA*SINC*EEE(I)*AAA(I)+SINA*COSC*CCC(I)*XX1(I))
34647 A(1,8)=-XMQ4*(COSA*COSC*EEE(I)*AAA(I)+SINA*SINC*CCC(I)*XX1(I))
34648
34649 A(2,1)=-COSA*COSC*DDD(I)*AAA(I)-SINA*SINC*FFF(I)*XX1(I)
34650 A(2,2)=-XMG*XMB*(COSA*SINC*DDD(I)*AAA(I)+SINA*COSC*FFF(I)*XX1(I))
34651 A(2,3)=XMG*XMR*(COSA*SINC*DDD(I)*XX1(I)+SINA*COSC*FFF(I)*AAA(I))
34652 A(2,4)=XMB*XMR*(COSA*COSC*DDD(I)*XX1(I)+SINA*SINC*FFF(I)*AAA(I))
34653 A(2,5)=XMG*XMT*(COSA*SINC*FFF(I)*XX1(I)+SINA*COSC*DDD(I)*AAA(I))
34654 A(2,6)=XMT*XMB*(COSA*COSC*FFF(I)*XX1(I)+SINA*SINC*DDD(I)*AAA(I))
34655 A(2,7)=-XMT*XMR*(COSA*COSC*FFF(I)*AAA(I)+SINA*SINC*DDD(I)*XX1(I))
34656 A(2,8)=-XMQ4*(COSA*SINC*FFF(I)*AAA(I)+SINA*COSC*DDD(I)*XX1(I))
34657
34658 A(3,1)=-COSA*COSC*EEE(I)*XX2(I)-SINA*SINC*CCC(I)*BBB(I)
34659 A(3,2)=XMG*XMB*(COSA*SINC*EEE(I)*XX2(I)+SINA*COSC*CCC(I)*BBB(I))
34660 A(3,3)=XMG*XMR*(COSA*SINC*EEE(I)*BBB(I)+SINA*COSC*CCC(I)*XX2(I))
34661 A(3,4)=-XMB*XMR*(COSA*COSC*EEE(I)*BBB(I)+SINA*SINC*CCC(I)*XX2(I))
34662 A(3,5)=-XMG*XMT*(COSA*SINC*CCC(I)*BBB(I)+SINA*COSC*EEE(I)*XX2(I))
34663 A(3,6)=XMT*XMB*(COSA*COSC*CCC(I)*BBB(I)+SINA*SINC*EEE(I)*XX2(I))
34664 A(3,7)=XMT*XMR*(COSA*COSC*CCC(I)*XX2(I)+SINA*SINC*EEE(I)*BBB(I))
34665 A(3,8)=-XMQ4*(COSA*SINC*CCC(I)*XX2(I)+SINA*COSC*EEE(I)*BBB(I))
34666
34667 A(4,1)=-COSA*SINC*FFF(I)*XX2(I)-SINA*COSC*DDD(I)*BBB(I)
34668 A(4,2)=-XMG*XMB*(COSA*COSC*FFF(I)*XX2(I)+SINA*SINC*DDD(I)*BBB(I))
34669 A(4,3)=-XMG*XMR*(COSA*COSC*FFF(I)*BBB(I)+SINA*SINC*DDD(I)*XX2(I))
34670 A(4,4)=-XMB*XMR*(COSA*SINC*FFF(I)*BBB(I)+SINA*COSC*DDD(I)*XX2(I))
34671 A(4,5)=-XMG*XMT*(COSA*COSC*DDD(I)*BBB(I)+SINA*SINC*FFF(I)*XX2(I))
34672 A(4,6)=-XMT*XMB*(COSA*SINC*DDD(I)*BBB(I)+SINA*COSC*FFF(I)*XX2(I))
34673 A(4,7)=-XMT*XMR*(COSA*SINC*DDD(I)*XX2(I)+SINA*COSC*FFF(I)*BBB(I))
34674 A(4,8)=-XMQ4*(COSA*COSC*DDD(I)*XX2(I)+SINA*SINC*FFF(I)*BBB(I))
34675
34676 SMAX=(XMG-ABS(XMR))**2
34677 SMIN=(XMB+XMT)**2+0.1D0
34678
34679 DO 120 LIN=0,NN-1
34680 SBAR=SMIN+DBLE(LIN)*(SMAX-SMIN)/DBLE(NN)
34681 AM=(XMG2-XMR2)*(XMT2-XMB2)/2D0/SBAR
34682 GRS=SBAR-XMQ2
34683 W=PYLAMF(SBAR,XMB2,XMT2)*PYLAMF(SBAR,XMG2,XMR2)
34684 W=DSQRT(W)/2D0/SBAR
34685 ANT1=LOG(ABS((GRS/2D0+AM+XMST(1)-W)/(GRS/2D0+AM+XMST(1)+W)))
34686 ANT2=LOG(ABS((GRS/2D0+AM+XMST(3)-W)/(GRS/2D0+AM+XMST(3)+W)))
34687 ANB1=LOG(ABS((GRS/2D0-AM+XMSB(1)-W)/(GRS/2D0-AM+XMSB(1)+W)))
34688 ANB2=LOG(ABS((GRS/2D0-AM+XMSB(2)-W)/(GRS/2D0-AM+XMSB(2)+W)))
34689 SUMME(LIN)=-ULR(1)*W+(ULR(1)*(XMQ2/2D0-XMST(1)-XMG*XMT*SIN2A)
34690 & +2D0*XX1(I)*AAA(I)*XMR*XMB)*ANT1
34691 & +(ULR(1)/2D0*(XMST(1)*(XMQ2-XMST(1))-XMGTBR
34692 & -2D0*XMG*XMT*SIN2A*(XMST(1)-XMB2-XMR2))
34693 & +2D0*XX1(I)*AAA(I)*XMR*XMB*(XMST(1)-XMG2-XMT2)
34694 & +4D0*SIN2A*XX1(I)*AAA(I)*XMQ4)
34695 & *(1D0/(GRS/2D0+AM+XMST(1)-W)-1D0/(GRS/2D0+AM+XMST(1)+W))
34696 SUMME(LIN)=SUMME(LIN)-ULR(2)*W
34697 & +(ULR(2)*(XMQ2/2D0-XMST(3)+XMG*XMT*SIN2A)
34698 & -2D0*XX2(I)*BBB(I)*XMR*XMB)*ANT2
34699 & +(ULR(2)/2D0*(XMST(3)*(XMQ2-XMST(3))-XMGTBR
34700 & +2D0*XMG*XMT*SIN2A*(XMST(3)-XMB2-XMR2))
34701 & -2D0*XX2(I)*BBB(I)*XMR*XMB*(XMST(3)-XMG2-XMT2)
34702 & +4D0*SIN2A*XX2(I)*BBB(I)*XMQ4)
34703 & *(1D0/(GRS/2D0+AM+XMST(3)-W)-1D0/(GRS/2D0+AM+XMST(3)+W))
34704 SUMME(LIN)=SUMME(LIN)-VLR(1)*W
34705 & +(VLR(1)*(XMQ2/2D0-XMSB(1)-XMG*XMB*SIN2C)
34706 & +2D0*CCC(I)*EEE(I)*XMR*XMT)*ANB1
34707 & +(VLR(1)/2D0*(XMSB(1)*(XMQ2-XMSB(1))-XMGBTR
34708 & -2D0*XMG*XMB*SIN2C*(XMSB(1)-XMT2-XMR2))
34709 & +2D0*CCC(I)*EEE(I)*XMR*XMT*(XMSB(1)-XMG2-XMB2)
34710 & +4D0*SIN2C*CCC(I)*EEE(I)*XMQ4)
34711 & *(1D0/(GRS/2D0-AM+XMSB(1)-W)-1D0/(GRS/2D0-AM+XMSB(1)+W))
34712 SUMME(LIN)=SUMME(LIN)-VLR(2)*W
34713 & +(VLR(2)*(XMQ2/2D0-XMSB(2)+XMG*XMB*SIN2C)
34714 & -2D0*DDD(I)*FFF(I)*XMR*XMT)*ANB2
34715 & +(VLR(2)/2D0*(XMSB(2)*(XMQ2-XMSB(2))-XMGBTR
34716 & +2D0*XMG*XMB*SIN2C*(XMSB(2)-XMT2-XMR2))
34717 & -2D0*DDD(I)*FFF(I)*XMR*XMT*(XMSB(2)-XMG2-XMB2)
34718 & +4D0*SIN2C*DDD(I)*FFF(I)*XMQ4)
34719 & *(1D0/(GRS/2D0-AM+XMSB(2)-W)-1D0/(GRS/2D0-AM+XMSB(2)+W))
34720 SUMME(LIN)=SUMME(LIN)+2D0*XMG*XMT*COS2A/(XMST(3)-XMST(1))
34721 & *((AAA(I)*BBB(I)-XX1(I)*XX2(I))
34722 & *((XMST(3)-XMB2-XMR2)*ANT2-(XMST(1)-XMB2-XMR2)*ANT1)
34723 & +2D0*(AAA(I)*XX2(I)-XX1(I)*BBB(I))*XMB*XMR*(ANT2-ANT1))
34724 SUMME(LIN)=SUMME(LIN)+2D0*XMG*XMB*COS2C/(XMSB(2)-XMSB(1))
34725 & *((EEE(I)*FFF(I)-CCC(I)*DDD(I))
34726 & *((XMSB(2)-XMT2-XMR2)*ANB2-(XMSB(1)-XMT2-XMR2)*ANB1)
34727 & +2D0*(EEE(I)*DDD(I)-CCC(I)*FFF(I))*XMT*XMR*(ANB2-ANB1))
34728 DO 110 J=1,4
34729 SUMME(LIN)=SUMME(LIN)-2D0*A(J,1)*W
34730 & +((-A(J,1)*(XMSB(J)*(GRS+XMSB(J))+XMQ3)
34731 & +A(J,2)*(XMSB(J)-XMT2-XMR2)+A(J,3)*(SBAR-XMB2-XMT2)
34732 & +A(J,4)*(XMSB(J)+SBAR-XMB2-XMR2)
34733 & -A(J,5)*(XMSB(J)+SBAR-XMG2-XMT2)+A(J,6)*(XMG2+XMR2-SBAR)
34734 & -A(J,7)*(XMSB(J)-XMG2-XMB2)+2D0*A(J,8))
34735 & *LOG(ABS((GRS/2D0+XMSB(J)-AM-W)/(GRS/2D0+XMSB(J)-AM+W)))
34736 & -(A(J,1)*(XMST(J)*(GRS+XMST(J))+XMQ3)
34737 & +A(J,2)*(XMST(J)+SBAR-XMG2-XMB2)-A(J,3)*(SBAR-XMB2-XMT2)
34738 & +A(J,4)*(XMST(J)-XMG2-XMT2)-A(J,5)*(XMST(J)-XMR2-XMB2)
34739 & -A(J,6)*(XMG2+XMR2-SBAR)
34740 & -A(J,7)*(XMST(J)+SBAR-XMT2-XMR2)-2D0*A(J,8))
34741 & *LOG(ABS((GRS/2D0+XMST(J)+AM-W)/(GRS/2D0+XMST(J)+AM+W))))
34742 & /(GRS+XMSB(J)+XMST(J))
34743 110 CONTINUE
34744 120 CONTINUE
34745 SUMME(NN)=0D0
34746 GAM= ALPHAW * ALPHAS * PYSIMP(SUMME,SMIN,SMAX,NN)
34747 &/ (16D0 * PARU(1) * PARU(102) * XMGLU**3)
34748
34749 RETURN
34750 END
34751
34752
34753
34754
34755
34756
34757
34758
34759
34760
34761
34762
34763
34764
34765
34766
34767
34768 SUBROUTINE PYNJDC(KFIN,XLAM,IDLAM,IKNT)
34769
34770
34771 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
34772 IMPLICIT INTEGER(I-N)
34773 INTEGER PYK,PYCHGE,PYCOMP
34774
34775 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
34776
34777 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
34778 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
34779 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
34780 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
34781 &SFMIX(16,4)
34782 COMMON/PYINTS/XXM(20)
34783 SAVE /PYDAT1/,/PYDAT2/,/PYMSSM/,/PYSSMT/,/PYINTS/
34784
34785
34786 INTEGER KFIN,KCIN
34787 DOUBLE PRECISION XMI,XMJ,XMF,XMSF1,XMSF2,XMW,XMW2,
34788 &XMZ,XMZ2,AXMJ,AXMI
34789 DOUBLE PRECISION XMFP,XMF1,XMF2,XMSL,XMG,XMK
34790 DOUBLE PRECISION S12MIN,S12MAX
34791 DOUBLE PRECISION XMI2,XMI3,XMJ2,XMH,XMH2,XMHP,XMHP2,XMA2,XMB2
34792 DOUBLE PRECISION PYLAMF,XL,QIJ,RIJ
34793 DOUBLE PRECISION TANW,XW,AEM,C1,AS,EI,T3
34794 DOUBLE PRECISION PYX2XH,PYX2XG
34795 DOUBLE PRECISION XLAM(0:200)
34796 INTEGER IDLAM(200,3)
34797 INTEGER LKNT,IX,IH,J,IJ,I,IKNT,FID
34798 INTEGER ITH(3),KF1,KF2
34799 INTEGER ITHC
34800 DOUBLE PRECISION ETAH(3),CH(3),DH(3),EH(3)
34801 DOUBLE PRECISION SR2
34802 DOUBLE PRECISION CBETA,SBETA,GR,GL,F12K,F21K
34803 DOUBLE PRECISION GAMCON,XMT1,XMT2
34804 DOUBLE PRECISION PYALEM,PI,PYALPS
34805 DOUBLE PRECISION AL,BL,AR,BR,ALP,ARP,BLP,BRP
34806 DOUBLE PRECISION RAT1,RAT2
34807 DOUBLE PRECISION T3T,CA,CB,FCOL
34808 DOUBLE PRECISION ALFA,BETA,TANB
34809 DOUBLE PRECISION PYXXGA
34810 EXTERNAL PYXXW5,PYGAUS,PYXXZ5
34811 DOUBLE PRECISION PYXXW5,PYGAUS,PYXXZ5
34812 DOUBLE PRECISION PREC
34813 INTEGER KFNCHI(4),KFCCHI(2)
34814 DATA ETAH/1D0,1D0,-1D0/
34815 DATA ITH/25,35,36/
34816 DATA ITHC/37/
34817 DATA PREC/1D-2/
34818 DATA PI/3.141592654D0/
34819 DATA SR2/1.4142136D0/
34820 DATA KFNCHI/1000022,1000023,1000025,1000035/
34821 DATA KFCCHI/1000024,1000037/
34822
34823
34824 LKNT=0
34825
34826 XMW=PMAS(24,1)
34827 XMW2=XMW**2
34828 XMZ=PMAS(23,1)
34829 XMZ2=XMZ**2
34830 XW=1D0-XMW2/XMZ2
34831 TANW = SQRT(XW/(1D0-XW))
34832
34833
34834 KCIN=PYCOMP(KFIN)
34835 IX=1
34836 IF(KFIN.EQ.KFNCHI(2)) IX=2
34837 IF(KFIN.EQ.KFNCHI(3)) IX=3
34838 IF(KFIN.EQ.KFNCHI(4)) IX=4
34839
34840 XMI=SMZ(IX)
34841 XMI2=XMI**2
34842 AXMI=ABS(XMI)
34843 AEM=PYALEM(XMI2)
34844 AS =PYALPS(XMI2)
34845 C1=AEM/XW
34846 XMI3=ABS(XMI**3)
34847
34848 TANB=RMSS(5)
34849 BETA=ATAN(TANB)
34850 ALFA=RMSS(18)
34851 CBETA=COS(BETA)
34852 SBETA=TANB*CBETA
34853 CALFA=COS(ALFA)
34854 SALFA=SIN(ALFA)
34855
34856
34857 IF(IX.EQ.1.AND.IMSS(11).EQ.0) GOTO 260
34858
34859
34860 IF(IX.EQ.2 .AND. IMSS(10).NE.0 ) THEN
34861 XMJ=SMZ(1)
34862 AXMJ=ABS(XMJ)
34863 LKNT=LKNT+1
34864 GAMCON=AEM**3/8D0/PI/XMW2/XW
34865 XMT1=(PMAS(PYCOMP(KSUSY1+6),1)/PMAS(6,1))**2
34866 XMT2=(PMAS(PYCOMP(KSUSY2+6),1)/PMAS(6,1))**2
34867 XLAM(LKNT)=PYXXGA(GAMCON,AXMI,AXMJ,XMT1,XMT2)
34868 IDLAM(LKNT,1)=KSUSY1+22
34869 IDLAM(LKNT,2)=22
34870 IDLAM(LKNT,3)=0
34871 WRITE(MSTU(11),*) 'FORCED N2 -> N1 + GAMMA ',XLAM(LKNT)
34872 GOTO 300
34873 ENDIF
34874
34875
34876
34877 IF(IMSS(11).EQ.1) THEN
34878 XMP=RMSS(29)
34879 IDG=39+KSUSY1
34880 XMGR=PMAS(PYCOMP(IDG),1)
34881 SINW=SQRT(XW)
34882 COSW=SQRT(1D0-XW)
34883 XFAC=(XMI2/(XMP*XMGR))**2*AXMI/48D0/PI
34884 IF(AXMI.GT.XMGR+PMAS(22,1)) THEN
34885 LKNT=LKNT+1
34886 IDLAM(LKNT,1)=IDG
34887 IDLAM(LKNT,2)=22
34888 IDLAM(LKNT,3)=0
34889 XLAM(LKNT)=XFAC*(ZMIX(IX,1)*COSW+ZMIX(IX,2)*SINW)**2
34890 ENDIF
34891 IF(AXMI.GT.XMGR+XMZ) THEN
34892 LKNT=LKNT+1
34893 IDLAM(LKNT,1)=IDG
34894 IDLAM(LKNT,2)=23
34895 IDLAM(LKNT,3)=0
34896 XLAM(LKNT)=XFAC*((ZMIX(IX,1)*SINW-ZMIX(IX,2)*COSW)**2 +
34897 $ .5D0*(ZMIX(IX,3)*CBETA-ZMIX(IX,4)*SBETA)**2)*(1D0-XMZ2/XMI2)**4
34898 ENDIF
34899 IF(AXMI.GT.XMGR+PMAS(25,1)) THEN
34900 LKNT=LKNT+1
34901 IDLAM(LKNT,1)=IDG
34902 IDLAM(LKNT,2)=25
34903 IDLAM(LKNT,3)=0
34904 XLAM(LKNT)=XFAC*((ZMIX(IX,3)*SALFA-ZMIX(IX,4)*CALFA)**2)*
34905 $ .5D0*(1D0-PMAS(25,1)**2/XMI2)**4
34906 ENDIF
34907 IF(AXMI.GT.XMGR+PMAS(35,1)) THEN
34908 LKNT=LKNT+1
34909 IDLAM(LKNT,1)=IDG
34910 IDLAM(LKNT,2)=35
34911 IDLAM(LKNT,3)=0
34912 XLAM(LKNT)=XFAC*((ZMIX(IX,3)*CALFA+ZMIX(IX,4)*SALFA)**2)*
34913 $ .5D0*(1D0-PMAS(35,1)**2/XMI2)**4
34914 ENDIF
34915 IF(AXMI.GT.XMGR+PMAS(36,1)) THEN
34916 LKNT=LKNT+1
34917 IDLAM(LKNT,1)=IDG
34918 IDLAM(LKNT,2)=36
34919 IDLAM(LKNT,3)=0
34920 XLAM(LKNT)=XFAC*((ZMIX(IX,3)*SBETA+ZMIX(IX,4)*CBETA)**2)*
34921 $ .5D0*(1D0-PMAS(36,1)**2/XMI2)**4
34922 ENDIF
34923 IF(IX.EQ.1) GOTO 260
34924 ENDIF
34925
34926 DO 180 IJ=1,IX-1
34927 XMJ=SMZ(IJ)
34928 AXMJ=ABS(XMJ)
34929 XMJ2=XMJ**2
34930
34931
34932 IF(AXMI.GE.AXMJ.AND.SBETA/CBETA.LE.2D0) THEN
34933 RAT1=ZMIX(IJ,1)**2+ZMIX(IJ,2)**2
34934 RAT1=RAT1/( 1D-6+ZMIX(IX,3)**2+ZMIX(IX,4)**2 )
34935 RAT2=ZMIX(IX,1)**2+ZMIX(IX,2)**2
34936 RAT2=RAT2/( 1D-6+ZMIX(IJ,3)**2+ZMIX(IJ,4)**2 )
34937 IF((RAT1.GT. 0.90D0 .AND. RAT1.LT. 1.10D0) .OR.
34938 & (RAT2.GT. 0.90D0 .AND. RAT2.LT. 1.10D0)) THEN
34939 LKNT=LKNT+1
34940 IDLAM(LKNT,1)=KFNCHI(IJ)
34941 IDLAM(LKNT,2)=22
34942 IDLAM(LKNT,3)=0
34943 GAMCON=AEM**3/8D0/PI/XMW2/XW
34944 XMT1=(PMAS(PYCOMP(KSUSY1+6),1)/PMAS(6,1))**2
34945 XMT2=(PMAS(PYCOMP(KSUSY2+6),1)/PMAS(6,1))**2
34946 XLAM(LKNT)=PYXXGA(GAMCON,AXMI,AXMJ,XMT1,XMT2)
34947 ENDIF
34948 ENDIF
34949
34950
34951 IF(AXMI.GE.AXMJ+XMZ) THEN
34952 LKNT=LKNT+1
34953 GL=-0.5D0*(ZMIX(IX,3)*ZMIX(IJ,3)-ZMIX(IX,4)*ZMIX(IJ,4))
34954 GR=-GL
34955 XLAM(LKNT)=PYX2XG(C1/XMW2,XMI,XMJ,XMZ,GL,GR)
34956 IDLAM(LKNT,1)=KFNCHI(IJ)
34957 IDLAM(LKNT,2)=23
34958 IDLAM(LKNT,3)=0
34959 ELSEIF(AXMI.GE.AXMJ) THEN
34960 FID=11
34961 EI=KCHG(FID,1)/3D0
34962 T3=-0.5D0
34963 XXM(1)=0D0
34964 XXM(2)=XMJ
34965 XXM(3)=0D0
34966 XXM(4)=XMI
34967 XXM(5)=PMAS(PYCOMP(KSUSY1+11),1)
34968 XXM(6)=PMAS(PYCOMP(KSUSY2+11),1)
34969 XXM(7)=XMZ
34970 XXM(8)=PMAS(23,2)
34971 XXM(9)=-0.5D0*(ZMIX(IX,3)*ZMIX(IJ,3)-ZMIX(IX,4)*ZMIX(IJ,4))
34972 XXM(10)=-XXM(9)
34973 XXM(11)=(T3-EI*XW)/(1D0-XW)
34974 XXM(12)=-EI*XW/(1D0-XW)
34975 XXM(13)=-SR2*(T3*ZMIX(IX,2)-TANW*(T3-EI)*ZMIX(IX,1))
34976 XXM(14)=-SR2*(T3*ZMIX(IJ,2)-TANW*(T3-EI)*ZMIX(IJ,1))
34977 XXM(15)=SR2*TANW*(EI*ZMIX(IX,1))
34978 XXM(16)=SR2*TANW*(EI*ZMIX(IJ,1))
34979 S12MIN=0D0
34980 S12MAX=(AXMI-AXMJ)**2
34981
34982
34983 IF( XXM(5).LT.AXMI ) THEN
34984 XXM(5)=1D6
34985 ENDIF
34986 IF(XXM(6).LT.AXMI ) THEN
34987 XXM(6)=1D6
34988 ENDIF
34989 IF(AXMI.GE.AXMJ+2D0*PMAS(11,1)) THEN
34990 LKNT=LKNT+1
34991 XLAM(LKNT)=C1**2/XMI3/(16D0*PI)*
34992 & PYGAUS(PYXXZ5,S12MIN,S12MAX,1D-3)
34993 IDLAM(LKNT,1)=KFNCHI(IJ)
34994 IDLAM(LKNT,2)=11
34995 IDLAM(LKNT,3)=-11
34996 IF(AXMI.GE.AXMJ+2D0*PMAS(13,1)) THEN
34997 LKNT=LKNT+1
34998 XLAM(LKNT)=XLAM(LKNT-1)
34999 IDLAM(LKNT,1)=KFNCHI(IJ)
35000 IDLAM(LKNT,2)=13
35001 IDLAM(LKNT,3)=-13
35002 ENDIF
35003 ENDIF
35004 100 CONTINUE
35005 IF(ABS(SFMIX(15,1)).GT.ABS(SFMIX(15,2))) THEN
35006 XXM(5)=PMAS(PYCOMP(KSUSY1+15),1)
35007 XXM(6)=PMAS(PYCOMP(KSUSY2+15),1)
35008 ELSE
35009 XXM(6)=PMAS(PYCOMP(KSUSY1+15),1)
35010 XXM(5)=PMAS(PYCOMP(KSUSY2+15),1)
35011 ENDIF
35012 IF( XXM(5).LT.AXMI ) THEN
35013 XXM(5)=1D6
35014 ENDIF
35015 IF(XXM(6).LT.AXMI ) THEN
35016 XXM(6)=1D6
35017 ENDIF
35018
35019 IF(AXMI.GE.AXMJ+2D0*PMAS(15,1)) THEN
35020 LKNT=LKNT+1
35021 XLAM(LKNT)=C1**2/XMI3/(16D0*PI)*
35022 & PYGAUS(PYXXZ5,S12MIN,S12MAX,1D-3)
35023 IDLAM(LKNT,1)=KFNCHI(IJ)
35024 IDLAM(LKNT,2)=15
35025 IDLAM(LKNT,3)=-15
35026 ENDIF
35027
35028
35029 110 CONTINUE
35030 FID=12
35031 EI=KCHG(FID,1)/3D0
35032 T3=0.5D0
35033 XXM(5)=PMAS(PYCOMP(KSUSY1+12),1)
35034 XXM(6)=1D6
35035 XXM(11)=(T3-EI*XW)/(1D0-XW)
35036 XXM(12)=-EI*XW/(1D0-XW)
35037 XXM(13)=-SR2*(T3*ZMIX(IX,2)-TANW*(T3-EI)*ZMIX(IX,1))
35038 XXM(14)=-SR2*(T3*ZMIX(IJ,2)-TANW*(T3-EI)*ZMIX(IJ,1))
35039 XXM(15)=SR2*TANW*(EI*ZMIX(IX,1))
35040 XXM(16)=SR2*TANW*(EI*ZMIX(IJ,1))
35041
35042 IF( XXM(5).LT.AXMI ) THEN
35043 XXM(5)=1D6
35044 ENDIF
35045
35046 LKNT=LKNT+1
35047 XLAM(LKNT)=C1**2/XMI3/(16D0*PI)*
35048 & PYGAUS(PYXXZ5,S12MIN,S12MAX,1D-3)
35049 IDLAM(LKNT,1)=KFNCHI(IJ)
35050 IDLAM(LKNT,2)=12
35051 IDLAM(LKNT,3)=-12
35052 LKNT=LKNT+1
35053 XLAM(LKNT)=XLAM(LKNT-1)
35054 IDLAM(LKNT,1)=KFNCHI(IJ)
35055 IDLAM(LKNT,2)=14
35056 IDLAM(LKNT,3)=-14
35057 120 CONTINUE
35058 XXM(5)=PMAS(PYCOMP(KSUSY1+16),1)
35059 IF( XXM(5).LT.AXMI ) THEN
35060 XXM(5)=1D6
35061 ENDIF
35062 LKNT=LKNT+1
35063 XLAM(LKNT)=C1**2/XMI3/(16D0*PI)*
35064 & PYGAUS(PYXXZ5,S12MIN,S12MAX,1D-3)
35065 IDLAM(LKNT,1)=KFNCHI(IJ)
35066 IDLAM(LKNT,2)=16
35067 IDLAM(LKNT,3)=-16
35068
35069
35070 130 CONTINUE
35071 XXM(5)=PMAS(PYCOMP(KSUSY1+1),1)
35072 XXM(6)=PMAS(PYCOMP(KSUSY2+1),1)
35073 FID=1
35074 EI=KCHG(FID,1)/3D0
35075 T3=-0.5D0
35076
35077 XXM(11)=(T3-EI*XW)/(1D0-XW)
35078 XXM(12)=-EI*XW/(1D0-XW)
35079 XXM(13)=-SR2*(T3*ZMIX(IX,2)-TANW*(T3-EI)*ZMIX(IX,1))
35080 XXM(14)=-SR2*(T3*ZMIX(IJ,2)-TANW*(T3-EI)*ZMIX(IJ,1))
35081 XXM(15)=SR2*TANW*(EI*ZMIX(IX,1))
35082 XXM(16)=SR2*TANW*(EI*ZMIX(IJ,1))
35083
35084 IF( XXM(5).LT.AXMI .AND. XXM(6).LT.AXMI ) GOTO 140
35085 IF( XXM(5).LT.AXMI ) THEN
35086 XXM(5)=1D6
35087 ELSEIF( XXM(6).LT.AXMI ) THEN
35088 XXM(6)=1D6
35089 ENDIF
35090 IF(AXMI.GE.AXMJ+2D0*PMAS(1,1)) THEN
35091 LKNT=LKNT+1
35092 XLAM(LKNT)=C1**2/XMI3/(16D0*PI)*
35093 & PYGAUS(PYXXZ5,S12MIN,S12MAX,1D-3)*3D0
35094 IDLAM(LKNT,1)=KFNCHI(IJ)
35095 IDLAM(LKNT,2)=1
35096 IDLAM(LKNT,3)=-1
35097 IF(AXMI.GE.AXMJ+2D0*PMAS(3,1)) THEN
35098 LKNT=LKNT+1
35099 XLAM(LKNT)=XLAM(LKNT-1)
35100 IDLAM(LKNT,1)=KFNCHI(IJ)
35101 IDLAM(LKNT,2)=3
35102 IDLAM(LKNT,3)=-3
35103 ENDIF
35104 ENDIF
35105 140 CONTINUE
35106 IF(ABS(SFMIX(5,1)).GT.ABS(SFMIX(5,2))) THEN
35107 XXM(5)=PMAS(PYCOMP(KSUSY1+5),1)
35108 XXM(6)=PMAS(PYCOMP(KSUSY2+5),1)
35109 ELSE
35110 XXM(6)=PMAS(PYCOMP(KSUSY1+5),1)
35111 XXM(5)=PMAS(PYCOMP(KSUSY2+5),1)
35112 ENDIF
35113 IF( XXM(5).LT.AXMI .AND. XXM(6).LT.AXMI ) GOTO 150
35114 IF(XXM(5).LT.AXMI) THEN
35115 XXM(5)=1D6
35116 ELSEIF(XXM(6).LT.AXMI) THEN
35117 XXM(6)=1D6
35118 ENDIF
35119 IF(AXMI.GE.AXMJ+2D0*PMAS(5,1)) THEN
35120 LKNT=LKNT+1
35121 XLAM(LKNT)=C1**2/XMI3/(16D0*PI)*
35122 & PYGAUS(PYXXZ5,S12MIN,S12MAX,1D-3)*3D0
35123 IDLAM(LKNT,1)=KFNCHI(IJ)
35124 IDLAM(LKNT,2)=5
35125 IDLAM(LKNT,3)=-5
35126 ENDIF
35127
35128
35129 150 CONTINUE
35130 XXM(5)=PMAS(PYCOMP(KSUSY1+2),1)
35131 XXM(6)=PMAS(PYCOMP(KSUSY2+2),1)
35132 FID=2
35133 EI=KCHG(FID,1)/3D0
35134 T3=0.5D0
35135
35136 XXM(11)=(T3-EI*XW)/(1D0-XW)
35137 XXM(12)=-EI*XW/(1D0-XW)
35138 XXM(13)=-SR2*(T3*ZMIX(IX,2)-TANW*(T3-EI)*ZMIX(IX,1))
35139 XXM(14)=-SR2*(T3*ZMIX(IJ,2)-TANW*(T3-EI)*ZMIX(IJ,1))
35140 XXM(15)=SR2*TANW*(EI*ZMIX(IX,1))
35141 XXM(16)=SR2*TANW*(EI*ZMIX(IJ,1))
35142
35143 IF( XXM(5).LT.AXMI .AND. XXM(6).LT.AXMI ) GOTO 160
35144 IF(XXM(5).LT.AXMI) THEN
35145 XXM(5)=1D6
35146 ELSEIF(XXM(6).LT.AXMI) THEN
35147 XXM(6)=1D6
35148 ENDIF
35149 IF(AXMI.GE.AXMJ+2D0*PMAS(2,1)) THEN
35150 LKNT=LKNT+1
35151 XLAM(LKNT)=C1**2/XMI3/(16D0*PI)*
35152 & PYGAUS(PYXXZ5,S12MIN,S12MAX,1D-3)*3D0
35153 IDLAM(LKNT,1)=KFNCHI(IJ)
35154 IDLAM(LKNT,2)=2
35155 IDLAM(LKNT,3)=-2
35156 IF(AXMI.GE.AXMJ+2D0*PMAS(4,1)) THEN
35157 LKNT=LKNT+1
35158 XLAM(LKNT)=XLAM(LKNT-1)
35159 IDLAM(LKNT,1)=KFNCHI(IJ)
35160 IDLAM(LKNT,2)=4
35161 IDLAM(LKNT,3)=-4
35162 ENDIF
35163 ENDIF
35164 160 CONTINUE
35165 ENDIF
35166
35167
35168 EH(1)=SIN(ALFA)
35169 EH(2)=COS(ALFA)
35170 EH(3)=-SIN(BETA)
35171 DH(1)=COS(ALFA)
35172 DH(2)=-SIN(ALFA)
35173 DH(3)=COS(BETA)
35174
35175 QIJ=ZMIX(IX,3)*ZMIX(IJ,2)+ZMIX(IJ,3)*ZMIX(IX,2)-
35176 & TANW*(ZMIX(IX,3)*ZMIX(IJ,1)+ZMIX(IJ,3)*ZMIX(IX,1))
35177 RIJ=ZMIX(IX,4)*ZMIX(IJ,2)+ZMIX(IJ,4)*ZMIX(IX,2)-
35178 & TANW*(ZMIX(IX,4)*ZMIX(IJ,1)+ZMIX(IJ,4)*ZMIX(IX,1))
35179
35180 DO 170 IH=1,3
35181 XMH=PMAS(ITH(IH),1)
35182 XMH2=XMH**2
35183 IF(AXMI.GE.AXMJ+XMH) THEN
35184 LKNT=LKNT+1
35185 XL=PYLAMF(XMI2,XMJ2,XMH2)
35186 F21K=0.5D0*(QIJ*EH(IH)+RIJ*DH(IH))
35187 F12K=F21K
35188
35189 XMK=XMJ
35190 IF(IH.EQ.3) XMK=-XMK
35191 XLAM(LKNT)=PYX2XH(C1,XMI,XMK,XMH,F12K,F21K)
35192 IDLAM(LKNT,1)=KFNCHI(IJ)
35193 IDLAM(LKNT,2)=ITH(IH)
35194 IDLAM(LKNT,3)=0
35195 ENDIF
35196 170 CONTINUE
35197 180 CONTINUE
35198
35199
35200 DO 220 IJ=1,2
35201 XMJ=SMW(IJ)
35202 AXMJ=ABS(XMJ)
35203 XMJ2=XMJ**2
35204 IF(AXMI.GE.AXMJ+XMW) THEN
35205 LKNT=LKNT+1
35206 GL=ZMIX(IX,2)*VMIX(IJ,1)-ZMIX(IX,4)*VMIX(IJ,2)/SR2
35207 GR=ZMIX(IX,2)*UMIX(IJ,1)+ZMIX(IX,3)*UMIX(IJ,2)/SR2
35208 XLAM(LKNT)=PYX2XG(C1/XMW2,XMI,XMJ,XMW,GL,GR)
35209 IDLAM(LKNT,1)=KFCCHI(IJ)
35210 IDLAM(LKNT,2)=-24
35211 IDLAM(LKNT,3)=0
35212 LKNT=LKNT+1
35213 XLAM(LKNT)=XLAM(LKNT-1)
35214 IDLAM(LKNT,1)=-KFCCHI(IJ)
35215 IDLAM(LKNT,2)=24
35216 IDLAM(LKNT,3)=0
35217 ELSEIF(AXMI.GE.AXMJ) THEN
35218 S12MIN=0D0
35219 S12MAX=(AXMI-AXMJ)**2
35220 XXM(5)=ZMIX(IX,2)*VMIX(IJ,1)-ZMIX(IX,4)*VMIX(IJ,2)/SR2
35221 XXM(6)=ZMIX(IX,2)*UMIX(IJ,1)+ZMIX(IX,3)*UMIX(IJ,2)/SR2
35222
35223
35224 FID=11
35225 EI=KCHG(FID,1)/3D0
35226 T3=-0.5D0
35227 XXM(7)=-SR2*(T3*ZMIX(IX,2)-TANW*(T3-EI)*ZMIX(IX,1))*UMIX(IJ,1)
35228 FID=12
35229 EI=KCHG(FID,1)/3D0
35230 T3=0.5D0
35231 XXM(8)=-SR2*(T3*ZMIX(IX,2)-TANW*(T3-EI)*ZMIX(IX,1))*VMIX(IJ,1)
35232
35233 XXM(1)=0D0
35234 XXM(2)=XMJ
35235 XXM(3)=0D0
35236 XXM(4)=XMI
35237 XXM(9)=PMAS(24,1)
35238 XXM(10)=PMAS(24,2)
35239 XXM(11)=PMAS(PYCOMP(KSUSY1+11),1)
35240 XXM(12)=PMAS(PYCOMP(KSUSY1+12),1)
35241 IF( XXM(11).LT.AXMI .AND. XXM(12).LT.AXMI ) GOTO 190
35242 IF(XXM(11).LT.AXMI) THEN
35243 XXM(11)=1D6
35244 ELSEIF(XXM(12).LT.AXMI) THEN
35245 XXM(12)=1D6
35246 ENDIF
35247 IF(AXMI.GE.AXMJ+PMAS(11,1)+PMAS(12,1)) THEN
35248 LKNT=LKNT+1
35249 XLAM(LKNT)=C1**2/XMI3/(16D0*PI)*
35250 & PYGAUS(PYXXW5,S12MIN,S12MAX,PREC)
35251 IDLAM(LKNT,1)=KFCCHI(IJ)
35252 IDLAM(LKNT,2)=11
35253 IDLAM(LKNT,3)=-12
35254 LKNT=LKNT+1
35255 XLAM(LKNT)=XLAM(LKNT-1)
35256 IDLAM(LKNT,1)=-IDLAM(LKNT-1,1)
35257 IDLAM(LKNT,2)=-IDLAM(LKNT-1,2)
35258 IDLAM(LKNT,3)=-IDLAM(LKNT-1,3)
35259 IF(AXMI.GE.AXMJ+PMAS(13,1)+PMAS(14,1)) THEN
35260 LKNT=LKNT+1
35261 XLAM(LKNT)=XLAM(LKNT-1)
35262 IDLAM(LKNT,1)=KFCCHI(IJ)
35263 IDLAM(LKNT,2)=13
35264 IDLAM(LKNT,3)=-14
35265 LKNT=LKNT+1
35266 XLAM(LKNT)=XLAM(LKNT-1)
35267 IDLAM(LKNT,1)=-IDLAM(LKNT-1,1)
35268 IDLAM(LKNT,2)=-IDLAM(LKNT-1,2)
35269 IDLAM(LKNT,3)=-IDLAM(LKNT-1,3)
35270 ENDIF
35271 ENDIF
35272 190 CONTINUE
35273 IF(ABS(SFMIX(15,1)).GT.ABS(SFMIX(15,2))) THEN
35274 XXM(11)=PMAS(PYCOMP(KSUSY1+15),1)
35275 XXM(12)=PMAS(PYCOMP(KSUSY1+16),1)
35276 ELSE
35277 XXM(11)=PMAS(PYCOMP(KSUSY2+15),1)
35278 XXM(12)=PMAS(PYCOMP(KSUSY1+16),1)
35279 ENDIF
35280
35281 IF(XXM(11).LT.AXMI) THEN
35282 XXM(11)=1D6
35283 ENDIF
35284 IF(XXM(12).LT.AXMI) THEN
35285 XXM(12)=1D6
35286 ENDIF
35287 IF(AXMI.GE.AXMJ+PMAS(15,1)+PMAS(16,1)) THEN
35288 LKNT=LKNT+1
35289 XLAM(LKNT)=C1**2/XMI3/(16D0*PI)*
35290 & PYGAUS(PYXXW5,S12MIN,S12MAX,PREC)
35291 XLAM(LKNT)=XLAM(LKNT-1)
35292 IDLAM(LKNT,1)=KFCCHI(IJ)
35293 IDLAM(LKNT,2)=15
35294 IDLAM(LKNT,3)=-16
35295 LKNT=LKNT+1
35296 XLAM(LKNT)=XLAM(LKNT-1)
35297 IDLAM(LKNT,1)=-IDLAM(LKNT-1,1)
35298 IDLAM(LKNT,2)=-IDLAM(LKNT-1,2)
35299 IDLAM(LKNT,3)=-IDLAM(LKNT-1,3)
35300 ENDIF
35301
35302
35303 200 CONTINUE
35304 FID=1
35305 EI=KCHG(FID,1)/3D0
35306 T3=-0.5D0
35307 XXM(7)=-SR2*(T3*ZMIX(IX,2)-TANW*(T3-EI)*ZMIX(IX,1))*UMIX(IJ,1)
35308 FID=2
35309 EI=KCHG(FID,1)/3D0
35310 T3=0.5D0
35311 XXM(8)=-SR2*(T3*ZMIX(IX,2)-TANW*(T3-EI)*ZMIX(IX,1))*VMIX(IJ,1)
35312
35313 XXM(11)=PMAS(PYCOMP(KSUSY1+1),1)
35314 XXM(12)=PMAS(PYCOMP(KSUSY1+2),1)
35315 IF( XXM(11).LT.AXMI .AND. XXM(12).LT.AXMI ) GOTO 210
35316 IF(XXM(11).LT.AXMI) THEN
35317 XXM(11)=1D6
35318 ELSEIF(XXM(12).LT.AXMI) THEN
35319 XXM(12)=1D6
35320 ENDIF
35321 IF(AXMI.GE.AXMJ+PMAS(2,1)+PMAS(1,1)) THEN
35322 LKNT=LKNT+1
35323 XLAM(LKNT)=3D0*C1**2/XMI3/(16D0*PI)*
35324 & PYGAUS(PYXXW5,S12MIN,S12MAX,PREC)
35325 IDLAM(LKNT,1)=KFCCHI(IJ)
35326 IDLAM(LKNT,2)=1
35327 IDLAM(LKNT,3)=-2
35328 LKNT=LKNT+1
35329 XLAM(LKNT)=XLAM(LKNT-1)
35330 IDLAM(LKNT,1)=-IDLAM(LKNT-1,1)
35331 IDLAM(LKNT,2)=-IDLAM(LKNT-1,2)
35332 IDLAM(LKNT,3)=-IDLAM(LKNT-1,3)
35333 IF(AXMI.GE.AXMJ+PMAS(3,1)+PMAS(4,1)) THEN
35334 LKNT=LKNT+1
35335 XLAM(LKNT)=XLAM(LKNT-1)
35336 IDLAM(LKNT,1)=KFCCHI(IJ)
35337 IDLAM(LKNT,2)=3
35338 IDLAM(LKNT,3)=-4
35339 LKNT=LKNT+1
35340 XLAM(LKNT)=XLAM(LKNT-1)
35341 IDLAM(LKNT,1)=-IDLAM(LKNT-1,1)
35342 IDLAM(LKNT,2)=-IDLAM(LKNT-1,2)
35343 IDLAM(LKNT,3)=-IDLAM(LKNT-1,3)
35344 ENDIF
35345 ENDIF
35346 210 CONTINUE
35347 ENDIF
35348 220 CONTINUE
35349 230 CONTINUE
35350
35351
35352 DO 240 IJ=1,2
35353 XMJ=SMW(IJ)
35354 AXMJ=ABS(XMJ)
35355 XMJ2=XMJ**2
35356 XMHP=PMAS(ITHC,1)
35357 XMHP2=XMHP**2
35358 IF(AXMI.GE.AXMJ+XMHP) THEN
35359 LKNT=LKNT+1
35360 GL=CBETA*(ZMIX(IX,4)*VMIX(IJ,1)+(ZMIX(IX,2)+
35361 & ZMIX(IX,1)*TANW)*VMIX(IJ,2)/SR2)
35362 GR=SBETA*(ZMIX(IX,3)*UMIX(IJ,1)-(ZMIX(IX,2)+
35363 & ZMIX(IX,1)*TANW)*UMIX(IJ,2)/SR2)
35364 XLAM(LKNT)=PYX2XH(C1,XMI,XMJ,XMHP,GL,GR)
35365 IDLAM(LKNT,1)=KFCCHI(IJ)
35366 IDLAM(LKNT,2)=-ITHC
35367 IDLAM(LKNT,3)=0
35368 LKNT=LKNT+1
35369 XLAM(LKNT)=XLAM(LKNT-1)
35370 IDLAM(LKNT,1)=-IDLAM(LKNT-1,1)
35371 IDLAM(LKNT,2)=-IDLAM(LKNT-1,2)
35372 IDLAM(LKNT,3)=-IDLAM(LKNT-1,3)
35373 ELSE
35374
35375 ENDIF
35376 240 CONTINUE
35377
35378
35379 DO 250 J=1,16
35380 IF(J.GE.7.AND.J.LE.10) GOTO 250
35381 KF1=KSUSY1+J
35382 KF2=KSUSY2+J
35383 XMSF1=PMAS(PYCOMP(KF1),1)
35384 XMSF2=PMAS(PYCOMP(KF2),1)
35385 XMF=PMAS(J,1)
35386 IF(J.LE.6) THEN
35387 FCOL=3D0
35388 ELSE
35389 FCOL=1D0
35390 ENDIF
35391
35392 EI=KCHG(J,1)/3D0
35393 T3T=SIGN(1D0,EI)
35394 IF(J.EQ.12.OR.J.EQ.14.OR.J.EQ.16) T3T=1D0
35395 IF(MOD(J,2).EQ.0) THEN
35396 BL=T3T*ZMIX(IX,2)+TANW*ZMIX(IX,1)*(2D0*EI-T3T)
35397 AL=XMF*ZMIX(IX,4)/XMW/SBETA
35398 AR=-2D0*EI*TANW*ZMIX(IX,1)
35399 BR=AL
35400 ELSE
35401 BL=T3T*ZMIX(IX,2)+TANW*ZMIX(IX,1)*(2D0*EI-T3T)
35402 AL=XMF*ZMIX(IX,3)/XMW/CBETA
35403 AR=-2D0*EI*TANW*ZMIX(IX,1)
35404 BR=AL
35405 ENDIF
35406
35407
35408 IF(AXMI.GE.XMF+XMSF1) THEN
35409 LKNT=LKNT+1
35410 XMA2=XMSF1**2
35411 XMB2=XMF**2
35412 XL=PYLAMF(XMI2,XMA2,XMB2)
35413 CA=AL*SFMIX(J,1)+AR*SFMIX(J,2)
35414 CB=BL*SFMIX(J,1)+BR*SFMIX(J,2)
35415 XLAM(LKNT)=0.5D0*FCOL*C1/8D0/XMI3*SQRT(XL)*( (XMI2+XMB2-XMA2)*
35416 & (CA**2+CB**2)+4D0*CA*CB*XMF*XMI)
35417 IDLAM(LKNT,1)=KF1
35418 IDLAM(LKNT,2)=-J
35419 IDLAM(LKNT,3)=0
35420 LKNT=LKNT+1
35421 XLAM(LKNT)=XLAM(LKNT-1)
35422 IDLAM(LKNT,1)=-IDLAM(LKNT-1,1)
35423 IDLAM(LKNT,2)=-IDLAM(LKNT-1,2)
35424 IDLAM(LKNT,3)=0
35425 ENDIF
35426
35427
35428 IF(AXMI.GE.XMF+XMSF2) THEN
35429 LKNT=LKNT+1
35430 XMA2=XMSF2**2
35431 XMB2=XMF**2
35432 CA=AL*SFMIX(J,3)+AR*SFMIX(J,4)
35433 CB=BL*SFMIX(J,3)+BR*SFMIX(J,4)
35434 XL=PYLAMF(XMI2,XMA2,XMB2)
35435 XLAM(LKNT)=0.5D0*FCOL*C1/8D0/XMI3*SQRT(XL)*( (XMI2+XMB2-XMA2)*
35436 & (CA**2+CB**2)+4D0*CA*CB*XMF*XMI)
35437 IDLAM(LKNT,1)=KF2
35438 IDLAM(LKNT,2)=-J
35439 IDLAM(LKNT,3)=0
35440 LKNT=LKNT+1
35441 XLAM(LKNT)=XLAM(LKNT-1)
35442 IDLAM(LKNT,1)=-IDLAM(LKNT-1,1)
35443 IDLAM(LKNT,2)=-IDLAM(LKNT-1,2)
35444 IDLAM(LKNT,3)=0
35445 ENDIF
35446 250 CONTINUE
35447 260 CONTINUE
35448
35449 XMJ=PMAS(PYCOMP(KSUSY1+21),1)
35450 IF(AXMI.GE.XMJ) THEN
35451 AXMJ=ABS(XMJ)
35452 XXM(1)=0D0
35453 XXM(2)=XMJ
35454 XXM(3)=0D0
35455 XXM(4)=XMI
35456 XXM(5)=PMAS(PYCOMP(KSUSY1+1),1)
35457 XXM(6)=PMAS(PYCOMP(KSUSY2+1),1)
35458 XXM(7)=1D6
35459 XXM(8)=0D0
35460 XXM(9)=0D0
35461 XXM(10)=0D0
35462 S12MIN=0D0
35463 S12MAX=(AXMI-AXMJ)**2
35464
35465 XXM(11)=0D0
35466 XXM(12)=0D0
35467 XXM(13)=1D0
35468 XXM(14)=-SR2*(-0.5D0*ZMIX(IX,2)+TANW*ZMIX(IX,1)/6D0)
35469 XXM(15)=1D0
35470 XXM(16)=SR2*(-TANW*ZMIX(IX,1)/3D0)
35471 IF( XXM(5).LT.AXMI .OR. XXM(6).LT.AXMI ) GOTO 270
35472 IF(AXMI.GE.AXMJ+2D0*PMAS(1,1)) THEN
35473 LKNT=LKNT+1
35474 XLAM(LKNT)=4D0*C1*AS/XMI3/(16D0*PI)*
35475 & PYGAUS(PYXXZ5,S12MIN,S12MAX,1D-3)
35476 IDLAM(LKNT,1)=KSUSY1+21
35477 IDLAM(LKNT,2)=1
35478 IDLAM(LKNT,3)=-1
35479 IF(AXMI.GE.AXMJ+2D0*PMAS(3,1)) THEN
35480 LKNT=LKNT+1
35481 XLAM(LKNT)=XLAM(LKNT-1)
35482 IDLAM(LKNT,1)=KSUSY1+21
35483 IDLAM(LKNT,2)=3
35484 IDLAM(LKNT,3)=-3
35485 ENDIF
35486 ENDIF
35487 270 CONTINUE
35488 IF(ABS(SFMIX(5,1)).GT.ABS(SFMIX(5,2))) THEN
35489 XXM(5)=PMAS(PYCOMP(KSUSY1+5),1)
35490 XXM(6)=PMAS(PYCOMP(KSUSY2+5),1)
35491 ELSE
35492 XXM(6)=PMAS(PYCOMP(KSUSY1+5),1)
35493 XXM(5)=PMAS(PYCOMP(KSUSY2+5),1)
35494 ENDIF
35495 IF( XXM(5).LT.AXMI .OR. XXM(6).LT.AXMI ) GOTO 280
35496 IF(AXMI.GE.AXMJ+2D0*PMAS(5,1)) THEN
35497 LKNT=LKNT+1
35498 XLAM(LKNT)=0.5D0*C1*AS/XMI3/(16D0*PI)*
35499 & PYGAUS(PYXXZ5,S12MIN,S12MAX,1D-3)
35500 IDLAM(LKNT,1)=KSUSY1+21
35501 IDLAM(LKNT,2)=5
35502 IDLAM(LKNT,3)=-5
35503 ENDIF
35504
35505 280 CONTINUE
35506 XXM(5)=PMAS(PYCOMP(KSUSY1+2),1)
35507 XXM(6)=PMAS(PYCOMP(KSUSY2+2),1)
35508 XXM(13)=1D0
35509 XXM(14)=-SR2*(0.5D0*ZMIX(IX,2)+TANW*ZMIX(IX,1)/6D0)
35510 XXM(15)=1D0
35511 XXM(16)=SR2*(2D0*TANW*ZMIX(IX,1)/3D0)
35512 IF( XXM(5).LT.AXMI .OR. XXM(6).LT.AXMI ) GOTO 290
35513 IF(AXMI.GE.AXMJ+2D0*PMAS(2,1)) THEN
35514 LKNT=LKNT+1
35515 XLAM(LKNT)=0.5D0*C1*AS/XMI3/(16D0*PI)*
35516 & PYGAUS(PYXXZ5,S12MIN,S12MAX,1D-3)
35517 IDLAM(LKNT,1)=KSUSY1+21
35518 IDLAM(LKNT,2)=2
35519 IDLAM(LKNT,3)=-2
35520 IF(AXMI.GE.AXMJ+2D0*PMAS(4,1)) THEN
35521 LKNT=LKNT+1
35522 XLAM(LKNT)=XLAM(LKNT-1)
35523 IDLAM(LKNT,1)=KSUSY1+21
35524 IDLAM(LKNT,2)=4
35525 IDLAM(LKNT,3)=-4
35526 ENDIF
35527 ENDIF
35528 290 CONTINUE
35529 ENDIF
35530
35531 300 IKNT=LKNT
35532 XLAM(0)=0D0
35533 DO 310 I=1,IKNT
35534 IF(XLAM(I).LT.0D0) XLAM(I)=0D0
35535 XLAM(0)=XLAM(0)+XLAM(I)
35536 310 CONTINUE
35537 IF(XLAM(0).EQ.0D0) XLAM(0)=1D-6
35538
35539 RETURN
35540 END
35541
35542
35543
35544
35545
35546
35547
35548
35549
35550
35551
35552
35553
35554
35555
35556
35557 SUBROUTINE PYCJDC(KFIN,XLAM,IDLAM,IKNT)
35558
35559
35560 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
35561 IMPLICIT INTEGER(I-N)
35562 INTEGER PYK,PYCHGE,PYCOMP
35563
35564 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
35565
35566 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
35567 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
35568 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
35569 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
35570 &SFMIX(16,4)
35571 COMMON/PYINTS/XXM(20)
35572 SAVE /PYDAT1/,/PYDAT2/,/PYMSSM/,/PYSSMT/,/PYINTS/
35573
35574
35575 INTEGER KFIN,KCIN
35576 DOUBLE PRECISION XMI,XMJ,XMF,XMSF1,XMSF2,XMW,XMW2,
35577 &XMZ,XMZ2,AXMJ,AXMI
35578 DOUBLE PRECISION XMFP,XMF1,XMF2,XMSL,XMG
35579 DOUBLE PRECISION S12MIN,S12MAX
35580 DOUBLE PRECISION XMI2,XMI3,XMJ2,XMH,XMH2,XMHP,XMHP2,XMA2,XMB2,XMK
35581 DOUBLE PRECISION PYLAMF,XL
35582 DOUBLE PRECISION TANW,XW,AEM,C1,AS,EI,T3,BETA,ALFA
35583 DOUBLE PRECISION PYX2XH,PYX2XG
35584 DOUBLE PRECISION XLAM(0:200)
35585 INTEGER IDLAM(200,3)
35586 INTEGER LKNT,IX,IH,J,IJ,I,IKNT,FID
35587 INTEGER ITH(3)
35588 INTEGER ITHC
35589 DOUBLE PRECISION ETAH(3),CH(3),DH(3),EH(3)
35590 DOUBLE PRECISION SR2
35591 DOUBLE PRECISION CBETA,SBETA,GR,GL,F12K,F21K,TANB
35592
35593 DOUBLE PRECISION PYALEM,PI,PYALPS
35594 DOUBLE PRECISION AL,BL,AR,BR,ALP,BLP,ARP,BRP
35595 DOUBLE PRECISION CA,CB,FCOL
35596 INTEGER KF1,KF2,ISF
35597 INTEGER KFNCHI(4),KFCCHI(2)
35598
35599 DOUBLE PRECISION TEMP
35600 EXTERNAL PYGAUS,PYXXZ5,PYXXW5,PYXXZ2
35601 DOUBLE PRECISION PYGAUS,PYXXZ5,PYXXW5,PYXXZ2
35602 DOUBLE PRECISION PREC
35603 DATA ITH/25,35,36/
35604 DATA ITHC/37/
35605 DATA ETAH/1D0,1D0,-1D0/
35606 DATA SR2/1.4142136D0/
35607 DATA PI/3.141592654D0/
35608 DATA PREC/1D-2/
35609 DATA KFNCHI/1000022,1000023,1000025,1000035/
35610 DATA KFCCHI/1000024,1000037/
35611
35612
35613 LKNT=0
35614 XMW=PMAS(24,1)
35615 XMW2=XMW**2
35616 XMZ=PMAS(23,1)
35617 XMZ2=XMZ**2
35618 XW=1D0-XMW2/XMZ2
35619 TANW = SQRT(XW/(1D0-XW))
35620
35621
35622 IX=1
35623 IF(KFIN.EQ.KFCCHI(2)) IX=2
35624 KCIN=PYCOMP(KFIN)
35625
35626 XMI=SMW(IX)
35627 XMI2=XMI**2
35628 AXMI=ABS(XMI)
35629 AEM=PYALEM(XMI2)
35630 AS =PYALPS(XMI2)
35631 C1=AEM/XW
35632 XMI3=ABS(XMI**3)
35633 TANB=RMSS(5)
35634 BETA=ATAN(TANB)
35635 CBETA=COS(BETA)
35636 SBETA=TANB*CBETA
35637 ALFA=RMSS(18)
35638
35639
35640
35641 IF(IMSS(11).EQ.1) THEN
35642 XMP=RMSS(29)
35643 IDG=39+KSUSY1
35644 XMGR=PMAS(PYCOMP(IDG),1)
35645 SINW=SQRT(XW)
35646 COSW=SQRT(1D0-XW)
35647 XFAC=(XMI2/(XMP*XMGR))**2*AXMI/48D0/PI
35648 IF(AXMI.GT.XMGR+XMW) THEN
35649 LKNT=LKNT+1
35650 IDLAM(LKNT,1)=IDG
35651 IDLAM(LKNT,2)=24
35652 IDLAM(LKNT,3)=0
35653 XLAM(LKNT)=XFAC*(.5D0*(VMIX(IX,1)**2+UMIX(IX,1)**2)+
35654 & .5D0*((VMIX(IX,2)*SBETA)**2+(UMIX(IX,2)*CBETA)**2))*
35655 & (1D0-XMW2/XMI2)**4
35656 ENDIF
35657 IF(AXMI.GT.XMGR+PMAS(37,1)) THEN
35658 LKNT=LKNT+1
35659 IDLAM(LKNT,1)=IDG
35660 IDLAM(LKNT,2)=37
35661 IDLAM(LKNT,3)=0
35662 XLAM(LKNT)=XFAC*(.5D0*((VMIX(IX,2)*CBETA)**2+
35663 & (UMIX(IX,2)*SBETA)**2))
35664 & *(1D0-PMAS(37,1)**2/XMI2)**4
35665 ENDIF
35666 ENDIF
35667
35668
35669 IF(IX.EQ.1) GOTO 150
35670 XMJ=SMW(1)
35671 AXMJ=ABS(XMJ)
35672 XMJ2=XMJ**2
35673
35674
35675 IF(AXMI.GE.AXMJ+XMZ) THEN
35676 LKNT=LKNT+1
35677 GL=VMIX(2,1)*VMIX(1,1)+0.5D0*VMIX(2,2)*VMIX(1,2)
35678 GR=UMIX(2,1)*UMIX(1,1)+0.5D0*UMIX(2,2)*UMIX(1,2)
35679 XLAM(LKNT)=PYX2XG(C1/XMW2,XMI,XMJ,XMZ,GL,GR)
35680 IDLAM(LKNT,1)=KFCCHI(1)
35681 IDLAM(LKNT,2)=23
35682 IDLAM(LKNT,3)=0
35683
35684
35685 ELSEIF(AXMI.GE.AXMJ) THEN
35686 XXM(5)=-(VMIX(2,1)*VMIX(1,1)+0.5D0*VMIX(2,2)*VMIX(1,2))
35687 XXM(6)=-(UMIX(2,1)*UMIX(1,1)+0.5D0*UMIX(2,2)*UMIX(1,2))
35688 XXM(9)=XMZ
35689 XXM(10)=PMAS(23,2)
35690 XXM(1)=0D0
35691 XXM(2)=XMJ
35692 XXM(3)=0D0
35693 XXM(4)=XMI
35694 S12MIN=0D0
35695 S12MAX=(AXMJ-AXMI)**2
35696 XXM(7)= (-0.5D0+XW)/(1D0-XW)
35697 XXM(8)= XW/(1D0-XW)
35698 XXM(11)=PMAS(PYCOMP(KSUSY1+12),1)
35699 XXM(12)=VMIX(2,1)*VMIX(1,1)
35700 IF( XXM(11).LT.AXMI ) THEN
35701 XXM(11)=1D6
35702 ENDIF
35703 IF(AXMI.GE.AXMJ+2D0*PMAS(11,1)) THEN
35704 LKNT=LKNT+1
35705 XLAM(LKNT)=C1**2/XMI3/(16D0*PI)*
35706 & PYGAUS(PYXXZ2,S12MIN,S12MAX,PREC)
35707 IDLAM(LKNT,1)=KFCCHI(1)
35708 IDLAM(LKNT,2)=11
35709 IDLAM(LKNT,3)=-11
35710 IF(AXMI.GE.AXMJ+2D0*PMAS(13,1)) THEN
35711 LKNT=LKNT+1
35712 XLAM(LKNT)=XLAM(LKNT-1)
35713 IDLAM(LKNT,1)=KFCCHI(1)
35714 IDLAM(LKNT,2)=13
35715 IDLAM(LKNT,3)=-13
35716 IF(AXMI.GE.AXMJ+2D0*PMAS(15,1)) THEN
35717 LKNT=LKNT+1
35718 XLAM(LKNT)=XLAM(LKNT-1)
35719 IDLAM(LKNT,1)=KFCCHI(1)
35720 IDLAM(LKNT,2)=15
35721 IDLAM(LKNT,3)=-15
35722 ENDIF
35723 ENDIF
35724 ENDIF
35725
35726
35727 100 CONTINUE
35728 XXM(7)= (0.5D0)/(1D0-XW)
35729 XXM(8)= 0D0
35730 XXM(11)=PMAS(PYCOMP(KSUSY1+11),1)
35731 XXM(12)=UMIX(2,1)*UMIX(1,1)
35732 IF( XXM(11).LT.AXMI ) THEN
35733 XXM(11)=1D6
35734 ENDIF
35735 IF(AXMI.GE.AXMJ+2D0*PMAS(12,1)) THEN
35736 LKNT=LKNT+1
35737 XLAM(LKNT)=C1**2/XMI3/(16D0*PI)*
35738 & PYGAUS(PYXXZ2,S12MIN,S12MAX,PREC)
35739 IDLAM(LKNT,1)=KFCCHI(1)
35740 IDLAM(LKNT,2)=12
35741 IDLAM(LKNT,3)=-12
35742 LKNT=LKNT+1
35743 XLAM(LKNT)=XLAM(LKNT-1)
35744 IDLAM(LKNT,1)=KFCCHI(1)
35745 IDLAM(LKNT,2)=14
35746 IDLAM(LKNT,3)=-14
35747 LKNT=LKNT+1
35748 XLAM(LKNT)=XLAM(LKNT-1)
35749 IDLAM(LKNT,1)=KFCCHI(1)
35750 IDLAM(LKNT,2)=16
35751 IDLAM(LKNT,3)=-16
35752 ENDIF
35753
35754
35755 110 CONTINUE
35756 XXM(7)= (-0.5D0+XW/3D0)/(1D0-XW)
35757 XXM(8)= XW/3D0/(1D0-XW)
35758 XXM(11)=PMAS(PYCOMP(KSUSY1+2),1)
35759 XXM(12)=VMIX(2,1)*VMIX(1,1)
35760 IF( XXM(11).LT.AXMI ) GOTO 120
35761 IF(AXMI.GE.AXMJ+2D0*PMAS(1,1)) THEN
35762 LKNT=LKNT+1
35763 XLAM(LKNT)=3D0*C1**2/XMI3/(16D0*PI)*
35764 & PYGAUS(PYXXZ2,S12MIN,S12MAX,PREC)
35765 IDLAM(LKNT,1)=KFCCHI(1)
35766 IDLAM(LKNT,2)=1
35767 IDLAM(LKNT,3)=-1
35768 IF(AXMI.GE.AXMJ+2D0*PMAS(3,1)) THEN
35769 LKNT=LKNT+1
35770 XLAM(LKNT)=XLAM(LKNT-1)
35771 IDLAM(LKNT,1)=KFCCHI(1)
35772 IDLAM(LKNT,2)=3
35773 IDLAM(LKNT,3)=-3
35774 IF(AXMI.GE.AXMJ+2D0*PMAS(5,1)) THEN
35775 LKNT=LKNT+1
35776 XLAM(LKNT)=XLAM(LKNT-1)
35777 IDLAM(LKNT,1)=KFCCHI(1)
35778 IDLAM(LKNT,2)=5
35779 IDLAM(LKNT,3)=-5
35780 ENDIF
35781 ENDIF
35782 ENDIF
35783
35784
35785 120 CONTINUE
35786 XXM(7)= (0.5D0-2D0*XW/3D0)/(1D0-XW)
35787 XXM(8)= -2D0*XW/3D0/(1D0-XW)
35788 XXM(11)=PMAS(PYCOMP(KSUSY1+1),1)
35789 XXM(12)=UMIX(2,1)*UMIX(1,1)
35790 IF( XXM(11).LT.AXMI ) GOTO 130
35791 IF(AXMI.GE.AXMJ+2D0*PMAS(2,1)) THEN
35792 LKNT=LKNT+1
35793 XLAM(LKNT)=3D0*C1**2/XMI3/(16D0*PI)*
35794 & PYGAUS(PYXXZ2,S12MIN,S12MAX,PREC)
35795 IDLAM(LKNT,1)=KFCCHI(1)
35796 IDLAM(LKNT,2)=2
35797 IDLAM(LKNT,3)=-2
35798 IF(AXMI.GE.AXMJ+2D0*PMAS(4,1)) THEN
35799 LKNT=LKNT+1
35800 XLAM(LKNT)=XLAM(LKNT-1)
35801 IDLAM(LKNT,1)=KFCCHI(1)
35802 IDLAM(LKNT,2)=4
35803 IDLAM(LKNT,3)=-4
35804 ENDIF
35805 ENDIF
35806 130 CONTINUE
35807 ENDIF
35808
35809
35810 EH(2)=COS(ALFA)
35811 EH(1)=SIN(ALFA)
35812 EH(3)=-SBETA
35813 DH(2)=-SIN(ALFA)
35814 DH(1)=COS(ALFA)
35815 DH(3)=COS(BETA)
35816 DO 140 IH=1,3
35817 XMH=PMAS(ITH(IH),1)
35818 XMH2=XMH**2
35819
35820 IF(AXMI.GE.AXMJ+XMH) THEN
35821 LKNT=LKNT+1
35822 XL=PYLAMF(XMI2,XMJ2,XMH2)
35823 F21K=(VMIX(2,1)*UMIX(1,2)*EH(IH) -
35824 & VMIX(2,2)*UMIX(1,1)*DH(IH))/SR2
35825 F12K=(VMIX(1,1)*UMIX(2,2)*EH(IH) -
35826 & VMIX(1,2)*UMIX(2,1)*DH(IH))/SR2
35827 XMK=XMJ*ETAH(IH)
35828 XLAM(LKNT)=PYX2XH(C1,XMI,XMK,XMH,F12K,F21K)
35829 IDLAM(LKNT,1)=KFCCHI(1)
35830 IDLAM(LKNT,2)=ITH(IH)
35831 IDLAM(LKNT,3)=0
35832 ENDIF
35833 140 CONTINUE
35834
35835
35836 150 CONTINUE
35837
35838
35839 DO 180 IJ=1,4
35840 XMJ=SMZ(IJ)
35841 AXMJ=ABS(XMJ)
35842 XMJ2=XMJ**2
35843 IF(AXMI.GE.AXMJ+XMW) THEN
35844 LKNT=LKNT+1
35845 GL=ZMIX(IJ,2)*VMIX(IX,1)-ZMIX(IJ,4)*VMIX(IX,2)/SR2
35846 GR=ZMIX(IJ,2)*UMIX(IX,1)+ZMIX(IJ,3)*UMIX(IX,2)/SR2
35847 XLAM(LKNT)=PYX2XG(C1/XMW2,XMI,XMJ,XMW,GL,GR)
35848 IDLAM(LKNT,1)=KFNCHI(IJ)
35849 IDLAM(LKNT,2)=24
35850 IDLAM(LKNT,3)=0
35851
35852
35853 ELSEIF(AXMI.GE.AXMJ) THEN
35854 XMF1=0D0
35855 XMF2=0D0
35856 S12MIN=(XMF1+XMF2)**2
35857 S12MAX=(AXMJ-AXMI)**2
35858 XXM(5)=-1D0/SR2*ZMIX(IJ,4)*VMIX(IX,2)+ZMIX(IJ,2)*VMIX(IX,1)
35859 XXM(6)= 1D0/SR2*ZMIX(IJ,3)*UMIX(IX,2)+ZMIX(IJ,2)*UMIX(IX,1)
35860 FID=11
35861 EI=KCHG(FID,1)/3D0
35862 T3=-0.5D0
35863 XXM(7)=-SR2*(T3*ZMIX(IJ,2)-TANW*(T3-EI)*ZMIX(IJ,1))*UMIX(IX,1)
35864 FID=12
35865 EI=KCHG(FID,1)/3D0
35866 T3=0.5D0
35867 XXM(8)=-SR2*(T3*ZMIX(IJ,2)-TANW*(T3-EI)*ZMIX(IJ,1))*VMIX(IX,1)
35868
35869 XXM(4)=XMI
35870 XXM(1)=XMF1
35871 XXM(2)=XMJ
35872 XXM(3)=XMF2
35873 XXM(9)=PMAS(24,1)
35874 XXM(10)=PMAS(24,2)
35875 XXM(11)=PMAS(PYCOMP(KSUSY1+11),1)
35876 XXM(12)=PMAS(PYCOMP(KSUSY1+12),1)
35877
35878
35879
35880
35881 IF(XXM(11).LT.AXMI) THEN
35882 XXM(11)=1D6
35883 ENDIF
35884 IF(XXM(12).LT.AXMI) THEN
35885 XXM(12)=1D6
35886 ENDIF
35887 IF(AXMI.GE.AXMJ+PMAS(11,1)+PMAS(12,1)) THEN
35888 LKNT=LKNT+1
35889 TEMP=PYGAUS(PYXXW5,S12MIN,S12MAX,PREC)
35890 XLAM(LKNT)=C1**2/XMI3/(16D0*PI)*TEMP
35891 IDLAM(LKNT,1)=KFNCHI(IJ)
35892 IDLAM(LKNT,2)=-11
35893 IDLAM(LKNT,3)=12
35894
35895
35896 IF( IMSS(12).NE. 0 ) GOTO 220
35897 IF(AXMI.GE.AXMJ+PMAS(13,1)+PMAS(14,1)) THEN
35898 LKNT=LKNT+1
35899 XXM(11)=PMAS(PYCOMP(KSUSY1+13),1)
35900 XXM(12)=PMAS(PYCOMP(KSUSY1+14),1)
35901 IF(XXM(11).LT.AXMI) THEN
35902 XXM(11)=1D6
35903 ELSEIF(XXM(12).LT.AXMI) THEN
35904 XXM(12)=1D6
35905 ENDIF
35906 TEMP=PYGAUS(PYXXW5,S12MIN,S12MAX,PREC)
35907 XLAM(LKNT)=C1**2/XMI3/(16D0*PI)*TEMP
35908 IDLAM(LKNT,1)=KFNCHI(IJ)
35909 IDLAM(LKNT,2)=-13
35910 IDLAM(LKNT,3)=14
35911 IF(AXMI.GE.AXMJ+PMAS(15,1)+PMAS(16,1)) THEN
35912 LKNT=LKNT+1
35913 IF(ABS(SFMIX(15,1)).GT.ABS(SFMIX(15,2))) THEN
35914 XXM(11)=PMAS(PYCOMP(KSUSY1+15),1)
35915 ELSE
35916 XXM(11)=PMAS(PYCOMP(KSUSY2+15),1)
35917 ENDIF
35918 XXM(12)=PMAS(PYCOMP(KSUSY1+16),1)
35919 IF(XXM(11).LT.AXMI) THEN
35920 XXM(11)=1D6
35921 ENDIF
35922 IF(XXM(12).LT.AXMI) THEN
35923 XXM(12)=1D6
35924 ENDIF
35925 TEMP=PYGAUS(PYXXW5,S12MIN,S12MAX,PREC)
35926 XLAM(LKNT)=C1**2/XMI3/(16D0*PI)*TEMP
35927 IDLAM(LKNT,1)=KFNCHI(IJ)
35928 IDLAM(LKNT,2)=-15
35929 IDLAM(LKNT,3)=16
35930 ENDIF
35931 ENDIF
35932 ENDIF
35933
35934
35935 160 CONTINUE
35936 FID=1
35937 EI=KCHG(FID,1)/3D0
35938 T3=-0.5D0
35939 XXM(7)=-SR2*(T3*ZMIX(IJ,2)-TANW*(T3-EI)*ZMIX(IJ,1))*UMIX(IX,1)
35940 FID=1
35941 EI=KCHG(FID,1)/3D0
35942 T3=0.5D0
35943 XXM(8)=-SR2*(T3*ZMIX(IJ,2)-TANW*(T3-EI)*ZMIX(IJ,1))*VMIX(IX,1)
35944
35945 XXM(11)=PMAS(PYCOMP(KSUSY1+1),1)
35946 XXM(12)=PMAS(PYCOMP(KSUSY1+2),1)
35947 IF( XXM(11).LT.AXMI .AND. XXM(12).LT.AXMI ) GOTO 170
35948 IF(XXM(11).LT.AXMI) THEN
35949 XXM(11)=1D6
35950 ELSEIF(XXM(12).LT.AXMI) THEN
35951 XXM(12)=1D6
35952 ENDIF
35953 IF(AXMI.GE.AXMJ+PMAS(1,1)+PMAS(2,1)) THEN
35954 LKNT=LKNT+1
35955 XLAM(LKNT)=3D0*C1**2/XMI3/(16D0*PI)*
35956 & PYGAUS(PYXXW5,S12MIN,S12MAX,PREC)
35957 IDLAM(LKNT,1)=KFNCHI(IJ)
35958 IDLAM(LKNT,2)=-1
35959 IDLAM(LKNT,3)=2
35960 IF(AXMI.GE.AXMJ+PMAS(3,1)+PMAS(4,1)) THEN
35961 LKNT=LKNT+1
35962 XLAM(LKNT)=XLAM(LKNT-1)
35963 IDLAM(LKNT,1)=KFNCHI(IJ)
35964 IDLAM(LKNT,2)=-3
35965 IDLAM(LKNT,3)=4
35966 ENDIF
35967 ENDIF
35968 170 CONTINUE
35969 ENDIF
35970 180 CONTINUE
35971
35972
35973 DO 190 IJ=1,4
35974 XMJ=SMZ(IJ)
35975 AXMJ=ABS(XMJ)
35976 XMJ2=XMJ**2
35977 XMHP=PMAS(ITHC,1)
35978 XMHP2=XMHP**2
35979 IF(AXMI.GE.AXMJ+XMHP) THEN
35980 LKNT=LKNT+1
35981 GL=CBETA*(ZMIX(IJ,4)*VMIX(IX,1)+(ZMIX(IJ,2)+
35982 & ZMIX(IJ,1)*TANW)*VMIX(IX,2)/SR2)
35983 GR=SBETA*(ZMIX(IJ,3)*UMIX(IX,1)-(ZMIX(IJ,2)+
35984 & ZMIX(IJ,1)*TANW)*UMIX(IX,2)/SR2)
35985 XLAM(LKNT)=PYX2XH(C1,XMI,XMJ,XMHP,GL,GR)
35986 IDLAM(LKNT,1)=KFNCHI(IJ)
35987 IDLAM(LKNT,2)=ITHC
35988 IDLAM(LKNT,3)=0
35989 ELSE
35990
35991 ENDIF
35992 190 CONTINUE
35993
35994
35995 DO 200 J=1,16
35996 IF(J.GE.7.AND.J.LE.10) GOTO 200
35997 IF(MOD(J,2).EQ.0) THEN
35998 KF1=KSUSY1+J-1
35999 ELSE
36000 KF1=KSUSY1+J+1
36001 ENDIF
36002 KF2=KF1+KSUSY1
36003 XMSF1=PMAS(PYCOMP(KF1),1)
36004 XMSF2=PMAS(PYCOMP(KF2),1)
36005 XMF=PMAS(J,1)
36006 IF(J.LE.6) THEN
36007 FCOL=3D0
36008 ELSE
36009 FCOL=1D0
36010 ENDIF
36011
36012
36013 IF(MOD(J,2).EQ.0) THEN
36014 XMFP=PMAS(J-1,1)
36015 AL=UMIX(IX,1)
36016 BL=-XMF*VMIX(IX,2)/XMW/SBETA/SR2
36017 AR=-XMFP*UMIX(IX,2)/XMW/CBETA/SR2
36018 BR=0D0
36019 ISF=J-1
36020 ELSE
36021 XMFP=PMAS(J+1,1)
36022 AL=VMIX(IX,1)
36023 BL=-XMF*UMIX(IX,2)/XMW/CBETA/SR2
36024 BR=0D0
36025 AR=-XMFP*VMIX(IX,2)/XMW/SBETA/SR2
36026 ISF=J+1
36027 ENDIF
36028
36029
36030 IF(AXMI.GE.XMF+XMSF1) THEN
36031 LKNT=LKNT+1
36032 XMA2=XMSF1**2
36033 XMB2=XMF**2
36034 XL=PYLAMF(XMI2,XMA2,XMB2)
36035 CA=AL*SFMIX(ISF,1)+AR*SFMIX(ISF,2)
36036 CB=BL*SFMIX(ISF,1)+BR*SFMIX(ISF,2)
36037 XLAM(LKNT)=FCOL*C1/8D0/XMI3*SQRT(XL)*( (XMI2+XMB2-XMA2)*
36038 & (CA**2+CB**2)+4D0*CA*CB*XMF*XMI)
36039 IDLAM(LKNT,3)=0
36040 IF(MOD(J,2).EQ.0) THEN
36041 IDLAM(LKNT,1)=-KF1
36042 IDLAM(LKNT,2)=J
36043 ELSE
36044 IDLAM(LKNT,1)=KF1
36045 IDLAM(LKNT,2)=-J
36046 ENDIF
36047 ENDIF
36048
36049
36050 IF(AXMI.GE.XMF+XMSF2) THEN
36051 LKNT=LKNT+1
36052 XMA2=XMSF2**2
36053 XMB2=XMF**2
36054 CA=AL*SFMIX(ISF,3)+AR*SFMIX(ISF,4)
36055 CB=BL*SFMIX(ISF,3)+BR*SFMIX(ISF,4)
36056 XL=PYLAMF(XMI2,XMA2,XMB2)
36057 XLAM(LKNT)=FCOL*C1/8D0/XMI3*SQRT(XL)*( (XMI2+XMB2-XMA2)*
36058 & (CA**2+CB**2)+4D0*CA*CB*XMF*XMI)
36059 IDLAM(LKNT,3)=0
36060 IF(MOD(J,2).EQ.0) THEN
36061 IDLAM(LKNT,1)=-KF2
36062 IDLAM(LKNT,2)=J
36063 ELSE
36064 IDLAM(LKNT,1)=KF2
36065 IDLAM(LKNT,2)=-J
36066 ENDIF
36067 ENDIF
36068 200 CONTINUE
36069
36070
36071
36072 XMJ=PMAS(PYCOMP(KSUSY1+21),1)
36073 IF(AXMI.GE.XMJ) THEN
36074 AXMJ=ABS(XMJ)
36075 S12MIN=0D0
36076 S12MAX=(AXMI-AXMJ)**2
36077 XXM(1)=0D0
36078 XXM(2)=XMJ
36079 XXM(3)=0D0
36080 XXM(4)=XMI
36081 XXM(5)=0D0
36082 XXM(6)=0D0
36083 XXM(9)=1D6
36084 XXM(10)=0D0
36085 XXM(7)=UMIX(IX,1)*SR2
36086 XXM(8)=VMIX(IX,1)*SR2
36087 XXM(11)=PMAS(PYCOMP(KSUSY1+1),1)
36088 XXM(12)=PMAS(PYCOMP(KSUSY1+2),1)
36089 IF( XXM(11).LT.AXMI .OR. XXM(12).LT.AXMI ) GOTO 210
36090 IF(AXMI.GE.AXMJ+PMAS(1,1)+PMAS(2,1)) THEN
36091 LKNT=LKNT+1
36092 XLAM(LKNT)=4D0*C1*AS/XMI3/(16D0*PI)*
36093 & PYGAUS(PYXXW5,S12MIN,S12MAX,PREC)
36094 IDLAM(LKNT,1)=KSUSY1+21
36095 IDLAM(LKNT,2)=-1
36096 IDLAM(LKNT,3)=2
36097 IF(AXMI.GE.AXMJ+PMAS(3,1)+PMAS(4,1)) THEN
36098 LKNT=LKNT+1
36099 XLAM(LKNT)=XLAM(LKNT-1)
36100 IDLAM(LKNT,1)=KSUSY1+21
36101 IDLAM(LKNT,2)=-3
36102 IDLAM(LKNT,3)=4
36103 ENDIF
36104 ENDIF
36105 210 CONTINUE
36106 ENDIF
36107
36108 220 IKNT=LKNT
36109 XLAM(0)=0D0
36110 DO 230 I=1,IKNT
36111 XLAM(0)=XLAM(0)+XLAM(I)
36112 IF(XLAM(I).LT.0D0) THEN
36113 WRITE(MSTU(11),*) ' XLAM(I) = ',XLAM(I),KCIN,
36114 & (IDLAM(I,J),J=1,3)
36115 XLAM(I)=0D0
36116 ENDIF
36117 230 CONTINUE
36118 IF(XLAM(0).EQ.0D0) THEN
36119 XLAM(0)=1D-6
36120 WRITE(MSTU(11),*) ' XLAM(0) = ',XLAM(0)
36121 WRITE(MSTU(11),*) LKNT
36122 WRITE(MSTU(11),*) (XLAM(J),J=1,LKNT)
36123 ENDIF
36124
36125 RETURN
36126 END
36127
36128
36129
36130
36131
36132
36133 FUNCTION PYXXZ5(X)
36134
36135
36136 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
36137 IMPLICIT INTEGER(I-N)
36138 INTEGER PYK,PYCHGE,PYCOMP
36139
36140 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
36141
36142 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
36143 COMMON/PYINTS/XXM(20)
36144 SAVE /PYDAT1/,/PYINTS/
36145
36146
36147 DOUBLE PRECISION PYXXZ5,X
36148 DOUBLE PRECISION XM12,XM22,XM32,S,S23,S13,WPROP2
36149 DOUBLE PRECISION WW,WF1,WF2,WFL1,WFL2
36150 DOUBLE PRECISION SIJ
36151 DOUBLE PRECISION SR2,OL,OR,FLD,FLU,XMV,XMG,XMSU,XMSD
36152 DOUBLE PRECISION LE,RE,LE2,RE2,OL2,OR2,FLI,FLJ,FRI,FRJ
36153 DOUBLE PRECISION S23MIN,S23MAX,S23AVE,S23DEL
36154 INTEGER I
36155 DATA SR2/1.4142136D0/
36156
36157
36158
36159 TINT(X,Y,A,B)=(X-Y)*(-(X**2+X*Y+Y**2)/3D0+(B+A)*(X+Y)/2D0-A*B)
36160
36161 TINT2(X,Y,A,B,C)=(X-Y)*(-0.5D0*(X+Y)+(B+A-C))-
36162 &LOG(ABS((X-C)/(Y-C)))*(C-B)*(C-A)
36163
36164 TINT3(X,Y,A,B,C)=-(X-Y)+(C-A)*(C-B)*(Y-X)/(X-C)/(Y-C)+
36165 &(B+A-2D0*C)*LOG(ABS((X-C)/(Y-C)))
36166
36167 UTINT(X,Y,A,B)=LOG(ABS((X-A)/(B-X)*(B-Y)/(Y-A)))/(B-A)
36168
36169 TPROP(X,Y,A)=LOG(ABS((X-A)/(Y-A)))
36170
36171 XM12=XXM(1)**2
36172 XM22=XXM(2)**2
36173 XM32=XXM(3)**2
36174 S=XXM(4)**2
36175 S13=X
36176
36177 S23AVE=XM22+XM32-0.5D0/X*(X+XM32-XM12)*(X+XM22-S)
36178 S23DEL=0.5D0/X*SQRT( ( (X-XM12-XM32)**2-4D0*XM12*XM32)*
36179 &( (X-XM22-S)**2 -4D0*XM22*S ) )
36180
36181 S23MIN=(S23AVE-S23DEL)
36182 S23MAX=(S23AVE+S23DEL)
36183
36184 XMV=XXM(7)
36185 XMG=XXM(8)
36186 XMSD=XXM(5)**2
36187 XMSU=XXM(6)**2
36188 OL=XXM(9)
36189 OR=XXM(10)
36190 OL2=OL**2
36191 OR2=OR**2
36192 LE=XXM(11)
36193 RE=XXM(12)
36194 LE2=LE**2
36195 RE2=RE**2
36196 FLI=XXM(13)
36197 FLJ=XXM(14)
36198 FRI=XXM(15)
36199 FRJ=XXM(16)
36200
36201 WPROP2=(S13-XMV**2)**2+(XMV*XMG)**2
36202 SIJ=2D0*XXM(2)*XXM(4)*S13
36203
36204 IF(XMV.LE.1000D0) THEN
36205 WW=2D0*(LE2+RE2)*(OL2)*( 2D0*TINT(S23MAX,S23MIN,XM22,S)
36206 & +SIJ*(S23MAX-S23MIN) )/WPROP2
36207 IF(XXM(5).LE.10000D0) THEN
36208 WFL1=2D0*FLI*FLJ*OL*LE*( 2D0*TINT2(S23MAX,S23MIN,XM22,S,XMSD)
36209 & + SIJ*TPROP(S23MAX,S23MIN,XMSD) )
36210 WFL1=WFL1*(S13-XMV**2)/WPROP2
36211 ELSE
36212 WFL1=0D0
36213 ENDIF
36214 IF(XXM(6).LE.10000D0) THEN
36215 WFL2=2D0*FRI*FRJ*OR*RE*( 2D0*TINT2(S23MAX,S23MIN,XM22,S,XMSU)
36216 & + SIJ*TPROP(S23MAX,S23MIN,XMSU) )
36217 WFL2=WFL2*(S13-XMV**2)/WPROP2
36218 ELSE
36219 WFL2=0D0
36220 ENDIF
36221 ELSE
36222 WW=0D0
36223 WFL1=0D0
36224 WFL2=0D0
36225 ENDIF
36226 IF(XXM(5).LE.10000D0) THEN
36227 WF1=0.5D0*(FLI*FLJ)**2*( 2D0*TINT3(S23MAX,S23MIN,XM22,S,XMSD)
36228 & + SIJ*UTINT(S23MAX,S23MIN,XMSD,XM22+S-S13-XMSD) )
36229 ELSE
36230 WF1=0D0
36231 ENDIF
36232 IF(XXM(6).LE.10000D0) THEN
36233 WF2=0.5D0*(FRI*FRJ)**2*( 2D0*TINT3(S23MAX,S23MIN,XM22,S,XMSU)
36234 & + SIJ*UTINT(S23MAX,S23MIN,XMSU,XM22+S-S13-XMSU) )
36235 ELSE
36236 WF2=0D0
36237 ENDIF
36238
36239
36240
36241 PYXXZ5=(WW+WF1+WF2+WFL1+WFL2)
36242 IF(PYXXZ5.LT.0D0) THEN
36243 WRITE(MSTU(11),*) ' NEGATIVE WT IN PYXXZ5 '
36244 WRITE(MSTU(11),*) XXM(1),XXM(2),XXM(3),XXM(4)
36245 WRITE(MSTU(11),*) (XXM(I),I=5,8)
36246 WRITE(MSTU(11),*) (XXM(I),I=9,12)
36247 WRITE(MSTU(11),*) (XXM(I),I=13,16)
36248 WRITE(MSTU(11),*) WW,WF1,WF2,WFL1,WFL2
36249 WRITE(MSTU(11),*) S23MIN,S23MAX
36250 PYXXZ5=0D0
36251 ENDIF
36252
36253 RETURN
36254 END
36255
36256
36257
36258
36259
36260
36261 FUNCTION PYXXW5(X)
36262
36263
36264 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
36265 IMPLICIT INTEGER(I-N)
36266 INTEGER PYK,PYCHGE,PYCOMP
36267
36268 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
36269
36270 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
36271 COMMON/PYINTS/XXM(20)
36272 SAVE /PYDAT1/,/PYINTS/
36273
36274
36275 DOUBLE PRECISION PYXXW5,X
36276 DOUBLE PRECISION XM12,XM22,XM32,S,S23,S13,S12,WPROP2
36277 DOUBLE PRECISION WW,WU,WD,WWU,WWD,WUD
36278 DOUBLE PRECISION SR2,OL,OR,FLD,FLU,XMV,XMG,XMSD,XMSU
36279 DOUBLE PRECISION SIJ
36280 DOUBLE PRECISION S23MIN,S23MAX,S23AVE,S23DEL
36281 INTEGER IK
36282 SAVE IK
36283 DATA IK/0/
36284 DATA SR2/1.4142136D0/
36285
36286
36287
36288 TINT(X,Y,A,B)=(X-Y)*(-(X**2+X*Y+Y**2)/3D0+(B+A)*(X+Y)/2D0-A*B)
36289
36290 TINT2(X,Y,A,B,C)=(X-Y)*(-0.5D0*(X+Y)+(B+A-C))-
36291 &LOG(ABS((X-C)/(Y-C)))*(C-B)*(C-A)
36292
36293 TINT3(X,Y,A,B,C)=-(X-Y)+(C-A)*(C-B)*(Y-X)/(X-C)/(Y-C)+
36294 &(B+A-2D0*C)*LOG(ABS((X-C)/(Y-C)))
36295
36296 UTINT(X,Y,A,B)=LOG(ABS((X-A)/(B-X)*(B-Y)/(Y-A)))/(B-A)
36297
36298 TPROP(X,Y,A)=LOG(ABS((X-A)/(Y-A)))
36299
36300 XM12=XXM(1)**2
36301 XM22=XXM(2)**2
36302 XM32=XXM(3)**2
36303 S=XXM(4)**2
36304 S13=X
36305 IF(XXM(1).EQ.0.AND.XXM(3).EQ.0D0) THEN
36306 S23AVE=0.5D0*(XM22+S-S13)
36307 S23DEL=0.5D0*SQRT( (X-XM22-S)**2-4D0*XM22*S )
36308 ELSE
36309 S23AVE=XM22+XM32-0.5D0/X*(X+XM32-XM12)*(X+XM22-S)
36310 S23DEL=0.5D0/X*SQRT( ( (X-XM12-XM32)**2-4D0*XM12*XM32)*
36311 & ( (X-XM22-S)**2 -4D0*XM22*S ) )
36312 ENDIF
36313 S23MIN=(S23AVE-S23DEL)
36314 S23MAX=(S23AVE+S23DEL)
36315 IF(S23DEL.LT.1D-3) THEN
36316 PYXXW5=0D0
36317 RETURN
36318 ENDIF
36319 XMV=XXM(9)
36320 XMG=XXM(10)
36321 XMSD=XXM(11)**2
36322 XMSU=XXM(12)**2
36323 OL=XXM(5)
36324 OR=XXM(6)
36325 FLD=XXM(7)
36326 FLU=XXM(8)
36327
36328 WPROP2=((S13-XMV**2)**2+(XMV*XMG)**2)
36329 SIJ=S13*XXM(2)*XXM(4)
36330 IF(XMV.LE.1000D0) THEN
36331 WW=(OR**2+OL**2)*TINT(S23MAX,S23MIN,XM22,S)
36332 & -2D0*OL*OR*SIJ*(S23MAX-S23MIN)
36333 WW=WW/WPROP2
36334 IF(XXM(11).LE.10000D0) THEN
36335 WWD=OL*SIJ*TPROP(S23MAX,S23MIN,XMSD)
36336 & -OR*TINT2(S23MAX,S23MIN,XM22,S,XMSD)
36337 WWD=-WWD*SR2*FLD
36338 WWD=WWD*(S13-XMV**2)/WPROP2
36339 ELSE
36340 WWD=0D0
36341 ENDIF
36342 IF(XXM(12).LE.10000D0) THEN
36343 WWU=OR*SIJ*TPROP(S23MAX,S23MIN,XMSU)
36344 & -OL*TINT2(S23MAX,S23MIN,XM22,S,XMSU)
36345 WWU=WWU*SR2*FLU
36346 WWU=WWU*(S13-XMV**2)/WPROP2
36347 ELSE
36348 WWU=0D0
36349 ENDIF
36350 ELSE
36351 WW=0D0
36352 WWD=0D0
36353 WWU=0D0
36354 ENDIF
36355 IF(XXM(12).LE.10000D0) THEN
36356 WU=0.5D0*FLU**2*TINT3(S23MAX,S23MIN,XM22,S,XMSU)
36357 ELSE
36358 WU=0D0
36359 ENDIF
36360 IF(XXM(11).LE.10000D0) THEN
36361 WD=0.5D0*FLD**2*TINT3(S23MAX,S23MIN,XM22,S,XMSD)
36362 ELSE
36363 WD=0D0
36364 ENDIF
36365 IF(XXM(11).LE.10000D0.AND.XXM(12).LE.10000D0) THEN
36366 WUD=FLU*FLD*SIJ*UTINT(S23MAX,S23MIN,XMSD,XM22+S-S13-XMSU)
36367 ELSE
36368 WUD=0D0
36369 ENDIF
36370
36371 PYXXW5=WW+WU+WD+WWU+WWD+WUD
36372
36373 IF(PYXXW5.LT.0D0) THEN
36374 IF(IK.EQ.0) THEN
36375 WRITE(MSTU(11),*) ' NEGATIVE WT IN PYXXW5 '
36376 WRITE(MSTU(11),*) WW,WU,WD
36377 WRITE(MSTU(11),*) WWD,WWU,WUD
36378 WRITE(MSTU(11),*) SQRT(S13)
36379 WRITE(MSTU(11),*) TINT(S23MAX,S23MIN,XM22,S)
36380 IK=1
36381 ENDIF
36382 PYXXW5=0D0
36383 ENDIF
36384
36385 RETURN
36386 END
36387
36388
36389
36390
36391
36392
36393 FUNCTION PYXXGA(C0,XM1,XM2,XMTR,XMTL)
36394
36395
36396 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
36397 IMPLICIT INTEGER(I-N)
36398 INTEGER PYK,PYCHGE,PYCOMP
36399
36400
36401 DOUBLE PRECISION PYXXGA,C0,XM1,XM2,XMTR,XMTL
36402 DOUBLE PRECISION F1,F2
36403
36404 F1=(1D0+XMTR/(1D0-XMTR)*LOG(XMTR))/(1D0-XMTR)
36405 F2=(1D0+XMTL/(1D0-XMTL)*LOG(XMTL))/(1D0-XMTL)
36406 PYXXGA=C0*((XM1**2-XM2**2)/XM1)**3
36407 PYXXGA=PYXXGA*(2D0/3D0*(F1+F2)-13D0/12D0)**2
36408
36409 RETURN
36410 END
36411
36412
36413
36414
36415
36416
36417 FUNCTION PYX2XG(C1,XM1,XM2,XM3,GL,GR)
36418
36419
36420 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
36421 IMPLICIT INTEGER(I-N)
36422 INTEGER PYK,PYCHGE,PYCOMP
36423
36424
36425 DOUBLE PRECISION PYX2XG,XM1,XM2,XM3,GL,GR
36426 DOUBLE PRECISION XL,PYLAMF,C1
36427 DOUBLE PRECISION XMI2,XMJ2,XMV2,XMI3
36428
36429 XMI2=XM1**2
36430 XMI3=ABS(XM1**3)
36431 XMJ2=XM2**2
36432 XMV2=XM3**2
36433 XL=PYLAMF(XMI2,XMJ2,XMV2)
36434 PYX2XG=C1/8D0/XMI3*SQRT(XL)
36435 &*((GL**2+GR**2)*(XL+3D0*XMV2*(XMI2+XMJ2-XMV2))-
36436 &12D0*GL*GR*XM1*XM2*XMV2)
36437
36438 RETURN
36439 END
36440
36441
36442
36443
36444
36445
36446 FUNCTION PYX2XH(C1,XM1,XM2,XM3,GL,GR)
36447
36448
36449 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
36450 IMPLICIT INTEGER(I-N)
36451 INTEGER PYK,PYCHGE,PYCOMP
36452
36453
36454 DOUBLE PRECISION PYX2XH,XM1,XM2,XM3,GL,GR
36455 DOUBLE PRECISION XL,PYLAMF,C1
36456 DOUBLE PRECISION XMI2,XMJ2,XMV2,XMI3
36457
36458 XMI2=XM1**2
36459 XMI3=ABS(XM1**3)
36460 XMJ2=XM2**2
36461 XMV2=XM3**2
36462 XL=PYLAMF(XMI2,XMJ2,XMV2)
36463 PYX2XH=C1/8D0/XMI3*SQRT(XL)
36464 &*((GL**2+GR**2)*(XMI2+XMJ2-XMV2)+
36465 &4D0*GL*GR*XM1*XM2)
36466
36467 RETURN
36468 END
36469
36470
36471
36472
36473
36474
36475 FUNCTION PYXXZ2(X)
36476
36477
36478 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
36479 IMPLICIT INTEGER(I-N)
36480 INTEGER PYK,PYCHGE,PYCOMP
36481
36482 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
36483
36484 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
36485 COMMON/PYINTS/XXM(20)
36486 SAVE /PYDAT1/,/PYINTS/
36487
36488
36489 DOUBLE PRECISION PYXXZ2,X
36490 DOUBLE PRECISION XM12,XM22,XM32,S,S23,S13,S12,WPROP2
36491 DOUBLE PRECISION WW,WU,WD,WWU,WWD,WUD
36492 DOUBLE PRECISION SR2,OL,OR,FLD,FLU,XMV,XMG,XMSL
36493 DOUBLE PRECISION SIJ
36494 DOUBLE PRECISION LE,RE,LE2,RE2,OL2,OR2,CT
36495 DOUBLE PRECISION S23MIN,S23MAX,S23AVE,S23DEL
36496 INTEGER I
36497 DATA SR2/1.4142136D0/
36498
36499
36500
36501 TINT(X,Y,A,B)=(X-Y)*(-(X**2+X*Y+Y**2)/3D0+(B+A)*(X+Y)/2D0-A*B)
36502
36503 TINT2(X,Y,A,B,C)=(X-Y)*(-0.5D0*(X+Y)+(B+A-C))-
36504 &LOG(ABS((X-C)/(Y-C)))*(C-B)*(C-A)
36505
36506 TINT3(X,Y,A,B,C)=-(X-Y)+(C-A)*(C-B)*(Y-X)/(X-C)/(Y-C)+
36507 &(B+A-2D0*C)*LOG(ABS((X-C)/(Y-C)))
36508
36509 TPROP(X,Y,A)=LOG(ABS((X-A)/(Y-A)))
36510
36511 XM12=XXM(1)**2
36512 XM22=XXM(2)**2
36513 XM32=XXM(3)**2
36514 S=XXM(4)**2
36515 S13=X
36516 IF(XXM(1).EQ.0.AND.XXM(3).EQ.0D0) THEN
36517 S23AVE=0.5D0*(XM22+S-S13)
36518 S23DEL=0.5D0*SQRT( (X-XM22-S)**2-4D0*XM22*S )
36519 ELSE
36520 S23AVE=XM22+XM32-0.5D0/X*(X+XM32-XM12)*(X+XM22-S)
36521 S23DEL=0.5D0/X*SQRT( ( (X-XM12-XM32)**2-4D0*XM12*XM32)*
36522 & ( (X-XM22-S)**2 -4D0*XM22*S ) )
36523 ENDIF
36524 S23MIN=(S23AVE-S23DEL)
36525 S23MAX=(S23AVE+S23DEL)
36526 IF(S23DEL.LT.1D-3) THEN
36527 PYXXZ2=0D0
36528 RETURN
36529 ENDIF
36530
36531 XMV=XXM(9)
36532 XMG=XXM(10)
36533 XMSL=XXM(11)**2
36534 OL=XXM(5)
36535 OR=XXM(6)
36536 OL2=OL**2
36537 OR2=OR**2
36538 LE=XXM(7)
36539 RE=XXM(8)
36540 LE2=LE**2
36541 RE2=RE**2
36542 CT=XXM(12)
36543
36544 WPROP2=(S13-XMV**2)**2+(XMV*XMG)**2
36545 SIJ=XXM(2)*XXM(4)*S13
36546 WW=(LE2+RE2)*(OR2+OL2)*2D0*TINT(S23MAX,S23MIN,XM22,S)
36547 &- 4D0*(LE2+RE2)*OL*OR*SIJ*(S23MAX-S23MIN)
36548 WW=WW/WPROP2
36549 IF(XMSL.GT.1D4*S) THEN
36550 WD=0D0
36551 WWD=0D0
36552 ELSE
36553 WD=0.5D0*CT**2*TINT3(S23MAX,S23MIN,XM22,S,XMSL)
36554 WWD=OL*TINT2(S23MAX,S23MIN,XM22,S,XMSL)-
36555 & OR*SIJ*TPROP(S23MAX,S23MIN,XMSL)
36556 WWD=2D0*WWD*LE*CT*(S13-XMV**2)/WPROP2
36557 ENDIF
36558
36559 PYXXZ2=(WW+WD+WWD)
36560 IF(PYXXZ2.LT.0D0) THEN
36561 WRITE(MSTU(11),*) ' NEGATIVE WT IN PYXXZ2 '
36562 WRITE(MSTU(11),*) WW,WD,WWD
36563 WRITE(MSTU(11),*) S23MIN,S23MAX
36564 WRITE(MSTU(11),*) (XXM(I),I=1,4)
36565 WRITE(MSTU(11),*) (XXM(I),I=5,8)
36566 WRITE(MSTU(11),*) (XXM(I),I=9,12)
36567 PYXXZ2=0D0
36568 ENDIF
36569
36570 RETURN
36571 END
36572
36573
36574
36575
36576
36577
36578 SUBROUTINE PYHEXT(KFIN,XLAM,IDLAM,IKNT)
36579
36580
36581 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
36582 IMPLICIT INTEGER(I-N)
36583 INTEGER PYK,PYCHGE,PYCOMP
36584
36585 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
36586
36587 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
36588 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
36589 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
36590 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
36591 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
36592 &SFMIX(16,4)
36593 SAVE /PYDAT1/,/PYDAT2/,/PYPARS/,/PYMSSM/,/PYSSMT/
36594
36595
36596 INTEGER KFIN
36597 DOUBLE PRECISION XMI,XMJ,XMF,XMSF1,XMSF2,XMW,XMW2,
36598 &XMZ,XMZ2,AXMJ,AXMI
36599 DOUBLE PRECISION XMFP,XMF1,XMF2,XMSL,XMG
36600 DOUBLE PRECISION S12MIN,S12MAX
36601 DOUBLE PRECISION XMI2,XMI3,XMJ2,XMH,XMH2,XMHP,XMHP2,XMA2,XMB2
36602 DOUBLE PRECISION PYLAMF,XL,CF,EI
36603 INTEGER IDU,IC,ILR,IFL
36604 DOUBLE PRECISION TANW,XW,AEM,C1,AS
36605 DOUBLE PRECISION PYH2XX,GHLL,GHRR,GHLR
36606 DOUBLE PRECISION XLAM(0:200)
36607 INTEGER IDLAM(200,3)
36608 INTEGER LKNT,IX,IH,J,IJ,I,IKNT,IK
36609 INTEGER ITH(4)
36610 INTEGER KFNCHI(4),KFCCHI(2)
36611 DOUBLE PRECISION ETAH(3),CH(3),DH(3),EH(3)
36612 DOUBLE PRECISION SR2
36613 DOUBLE PRECISION BETA,ALFA
36614 DOUBLE PRECISION CBETA,SBETA,GR,GL,F12K,F21K,TANB
36615 DOUBLE PRECISION PYALEM,PI,PYALPS
36616 DOUBLE PRECISION AL,BL,AR,BR,ALP,ARP,BLP,BRP,ALR
36617 DOUBLE PRECISION XMK,AXMK,XMK2,COSA,SINA,CW,XML
36618 DOUBLE PRECISION XMUZ,ATRIT,ATRIB,ATRIL
36619 DOUBLE PRECISION XMJL,XMJR,XM1,XM2
36620 DATA ITH/25,35,36,37/
36621 DATA ETAH/1D0,1D0,-1D0/
36622 DATA SR2/1.4142136D0/
36623 DATA PI/3.141592654D0/
36624 DATA KFNCHI/1000022,1000023,1000025,1000035/
36625 DATA KFCCHI/1000024,1000037/
36626
36627
36628 LKNT=IKNT
36629
36630 XMW=PMAS(24,1)
36631 XMW2=XMW**2
36632 XMZ=PMAS(23,1)
36633 XMZ2=XMZ**2
36634 XW=PARU(102)
36635 TANW = SQRT(XW/(1D0-XW))
36636 CW=SQRT(1D0-XW)
36637
36638
36639 IH=1
36640 IF(KFIN.EQ.ITH(2)) IH=2
36641 IF(KFIN.EQ.ITH(3)) IH=3
36642 IF(KFIN.EQ.ITH(4)) IH=4
36643
36644 XMI=PMAS(KFIN,1)
36645 XMI2=XMI**2
36646 AXMI=ABS(XMI)
36647 AEM=PYALEM(XMI2)
36648 AS =PYALPS(XMI2)
36649 C1=AEM/XW
36650 XMI3=ABS(XMI**3)
36651
36652 TANB=RMSS(5)
36653 BETA=ATAN(TANB)
36654 CBETA=COS(BETA)
36655 SBETA=TANB*CBETA
36656 ALFA=RMSS(18)
36657 COSA=COS(ALFA)
36658 SINA=SIN(ALFA)
36659 ATRIT=RMSS(16)
36660 ATRIB=RMSS(15)
36661 ATRIL=RMSS(17)
36662 XMUZ=-RMSS(4)
36663
36664 IF(IH.EQ.4) GOTO 180
36665
36666
36667
36668 EH(1)=SINA
36669 EH(2)=COSA
36670 EH(3)=-SBETA
36671 DH(1)=COSA
36672 DH(2)=-SINA
36673 DH(3)=CBETA
36674 DO 110 IJ=1,4
36675 XMJ=SMZ(IJ)
36676 AXMJ=ABS(XMJ)
36677 DO 100 IK=1,IJ
36678 XMK=SMZ(IK)
36679 AXMK=ABS(XMK)
36680 IF(AXMI.GE.AXMJ+AXMK) THEN
36681 LKNT=LKNT+1
36682 F21K=0.5D0*
36683 & EH(IH)*( ZMIX(IK,3)*ZMIX(IJ,2)+ZMIX(IJ,3)*ZMIX(IK,2)
36684 & -TANW*(ZMIX(IK,3)*ZMIX(IJ,1)+ZMIX(IJ,3)*ZMIX(IK,1)) )+
36685 & 0.5D0*DH(IH)*( ZMIX(IK,4)*ZMIX(IJ,2)+ZMIX(IJ,4)*ZMIX(IK,2)
36686 & -TANW*(ZMIX(IK,4)*ZMIX(IJ,1)+ZMIX(IJ,4)*ZMIX(IK,1)) )
36687 F12K=0.5D0*
36688 & EH(IH)*(ZMIX(IJ,3)*ZMIX(IK,2)+ZMIX(IK,3)*ZMIX(IJ,2)
36689 & -TANW*(ZMIX(IJ,3)*ZMIX(IK,1)+ZMIX(IK,3)*ZMIX(IJ,1)))+
36690 & 0.5D0*DH(IH)*( ZMIX(IJ,4)*ZMIX(IK,2)+ZMIX(IK,4)*ZMIX(IJ,2)
36691 & -TANW*(ZMIX(IJ,4)*ZMIX(IK,1)+ZMIX(IK,4)*ZMIX(IJ,1)) )
36692
36693 XML=XMK*ETAH(IH)
36694 XLAM(LKNT)=PYH2XX(C1,XMI,XMJ,XML,F12K,F21K)
36695 IF(IJ.EQ.IK) XLAM(LKNT)=XLAM(LKNT)*0.5D0
36696 IDLAM(LKNT,1)=KFNCHI(IJ)
36697 IDLAM(LKNT,2)=KFNCHI(IK)
36698 IDLAM(LKNT,3)=0
36699 ENDIF
36700 100 CONTINUE
36701 110 CONTINUE
36702
36703
36704 DO 130 IJ=1,2
36705 XMJ=SMW(IJ)
36706 AXMJ=ABS(XMJ)
36707 DO 120 IK=1,2
36708 XMK=SMW(IK)
36709 AXMK=ABS(XMK)
36710 IF(AXMI.GE.AXMJ+AXMK) THEN
36711 LKNT=LKNT+1
36712 F21K=(VMIX(IJ,1)*UMIX(IK,2)*EH(IH) -
36713 & VMIX(IJ,2)*UMIX(IK,1)*DH(IH))/SR2
36714 F12K=(VMIX(IK,1)*UMIX(IJ,2)*EH(IH) -
36715 & VMIX(IK,2)*UMIX(IJ,1)*DH(IH))/SR2
36716 XML=-XMK*ETAH(IH)
36717 XLAM(LKNT)=PYH2XX(C1,XMI,XMJ,XML,F12K,F21K)
36718 IDLAM(LKNT,1)=KFCCHI(IJ)
36719 IDLAM(LKNT,2)=-KFCCHI(IK)
36720 IDLAM(LKNT,3)=0
36721 ENDIF
36722 120 CONTINUE
36723 130 CONTINUE
36724
36725
36726 DO 160 IFL=1,16
36727 IF(IFL.GE.7.AND.IFL.LE.10) GOTO 160
36728 IJ=KSUSY1+IFL
36729 XMJL=PMAS(PYCOMP(IJ),1)
36730 XMJR=PMAS(PYCOMP(IJ+KSUSY1),1)
36731 IF(AXMI.GE.2D0*MIN(XMJL,XMJR)) THEN
36732 XMJ=XMJL
36733 XMJ2=XMJ**2
36734 XL=PYLAMF(XMI2,XMJ2,XMJ2)
36735 XMF=PMAS(IFL,1)
36736 EI=KCHG(IFL,1)/3D0
36737 IDU=2-MOD(IFL,2)
36738
36739 IF(IH.EQ.1) THEN
36740 IF(IDU.EQ.1) THEN
36741 GHLL=-XMZ/CW*(0.5D0+EI*XW)*SIN(ALFA+BETA)+
36742 & XMF**2/XMW*SINA/CBETA
36743 GHRR=XMZ/CW*(EI*XW)*SIN(ALFA+BETA)+
36744 & XMF**2/XMW*SINA/CBETA
36745 IF(IFL.EQ.5) THEN
36746 GHLR=-XMF/2D0/XMW/CBETA*(XMUZ*COSA-
36747 & ATRIB*SINA)
36748 ELSEIF(IFL.EQ.15) THEN
36749 GHLR=-XMF/2D0/XMW/CBETA*(XMUZ*COSA-
36750 & ATRIL*SINA)
36751 ELSE
36752 GHLR=0D0
36753 ENDIF
36754 ELSE
36755 GHLL=XMZ/CW*(0.5D0-EI*XW)*SIN(ALFA+BETA)-
36756 & XMF**2/XMW*COSA/SBETA
36757 GHRR=XMZ/CW*(EI*XW)*SIN(ALFA+BETA)-
36758 & XMF**2/XMW*COSA/SBETA
36759 IF(IFL.EQ.6) THEN
36760 GHLR=XMF/2D0/XMW/SBETA*(XMUZ*SINA-
36761 & ATRIT*COSA)
36762 ELSE
36763 GHLR=0D0
36764 ENDIF
36765 ENDIF
36766
36767 ELSEIF(IH.EQ.2) THEN
36768 IF(IDU.EQ.1) THEN
36769 GHLL=XMZ/CW*(0.5D0+EI*XW)*COS(ALFA+BETA)-
36770 & XMF**2/XMW*COSA/CBETA
36771 GHRR=-XMZ/CW*(EI*XW)*COS(ALFA+BETA)-
36772 & XMF**2/XMW*COSA/CBETA
36773 IF(IFL.EQ.5) THEN
36774 GHLR=-XMF/2D0/XMW/CBETA*(XMUZ*SINA+
36775 & ATRIB*COSA)
36776 ELSEIF(IFL.EQ.15) THEN
36777 GHLR=-XMF/2D0/XMW/CBETA*(XMUZ*SINA+
36778 & ATRIL*COSA)
36779 ELSE
36780 GHLR=0D0
36781 ENDIF
36782 ELSE
36783 GHLL=-XMZ/CW*(0.5D0-EI*XW)*COS(ALFA+BETA)-
36784 & XMF**2/XMW*SINA/SBETA
36785 GHRR=-XMZ/CW*(EI*XW)*COS(ALFA+BETA)-
36786 & XMF**2/XMW*SINA/SBETA
36787 IF(IFL.EQ.6) THEN
36788 GHLR=-XMF/2D0/XMW/SBETA*(XMUZ*COSA+
36789 & ATRIT*SINA)
36790 ELSE
36791 GHLR=0D0
36792 ENDIF
36793 ENDIF
36794
36795 ELSEIF(IH.EQ.3) THEN
36796 GHLL=0D0
36797 GHRR=0D0
36798 GHLR=0D0
36799 IF(IDU.EQ.1) THEN
36800 IF(IFL.EQ.5) THEN
36801 GHLR=XMF/2D0/XMW*(ATRIB*TANB-XMUZ)
36802 ELSEIF(IFL.EQ.15) THEN
36803 GHLR=XMF/2D0/XMW*(ATRIL*TANB-XMUZ)
36804 ENDIF
36805 ELSE
36806 IF(IFL.EQ.6) THEN
36807 GHLR=XMF/2D0/XMW*(ATRIT/TANB-XMUZ)
36808 ENDIF
36809 ENDIF
36810 ENDIF
36811 IF(IH.EQ.3) GOTO 140
36812
36813 AL=SFMIX(IFL,1)**2
36814 AR=SFMIX(IFL,2)**2
36815 ALR=SFMIX(IFL,1)*SFMIX(IFL,2)
36816 IF(IFL.LE.6) THEN
36817 CF=3D0
36818 ELSE
36819 CF=1D0
36820 ENDIF
36821
36822 IF(AXMI.GE.2D0*XMJ) THEN
36823 LKNT=LKNT+1
36824 XLAM(LKNT)=CF*SQRT(XL)/4D0*C1/XMI3*
36825 & (GHLL*AL+GHRR*AR
36826 & +2D0*GHLR*ALR)**2
36827 IDLAM(LKNT,1)=IJ
36828 IDLAM(LKNT,2)=-IJ
36829 IDLAM(LKNT,3)=0
36830 ENDIF
36831
36832 IF(AXMI.GE.2D0*XMJR) THEN
36833 LKNT=LKNT+1
36834 AL=SFMIX(IFL,3)**2
36835 AR=SFMIX(IFL,4)**2
36836 ALR=SFMIX(IFL,3)*SFMIX(IFL,4)
36837 XMJ=XMJR
36838 XMJ2=XMJ**2
36839 XL=PYLAMF(XMI2,XMJ2,XMJ2)
36840 XLAM(LKNT)=CF*SQRT(XL)/4D0*C1/XMI3*
36841 & (GHLL*AL+GHRR*AR
36842 & +2D0*GHLR*ALR)**2
36843 IDLAM(LKNT,1)=IJ+KSUSY1
36844 IDLAM(LKNT,2)=-(IJ+KSUSY1)
36845 IDLAM(LKNT,3)=0
36846 ENDIF
36847 140 CONTINUE
36848
36849 IF(AXMI.GE.XMJL+XMJR) THEN
36850 LKNT=LKNT+1
36851 AL=SFMIX(IFL,1)*SFMIX(IFL,3)
36852 AR=SFMIX(IFL,2)*SFMIX(IFL,4)
36853 ALR=SFMIX(IFL,1)*SFMIX(IFL,4)+SFMIX(IFL,2)*SFMIX(IFL,3)
36854 XMJ=XMJR
36855 XMJ2=XMJ**2
36856 XL=PYLAMF(XMI2,XMJ2,XMJL**2)
36857 XLAM(LKNT)=CF*SQRT(XL)/4D0*C1/XMI3*
36858 & (GHLL*AL+GHRR*AR)**2
36859 IDLAM(LKNT,1)=IJ
36860 IDLAM(LKNT,2)=-(IJ+KSUSY1)
36861 IDLAM(LKNT,3)=0
36862 LKNT=LKNT+1
36863 IDLAM(LKNT,1)=-IJ
36864 IDLAM(LKNT,2)=IJ+KSUSY1
36865 IDLAM(LKNT,3)=0
36866 XLAM(LKNT)=XLAM(LKNT-1)
36867 ENDIF
36868 ENDIF
36869 150 CONTINUE
36870 160 CONTINUE
36871 170 CONTINUE
36872
36873 GOTO 230
36874 180 CONTINUE
36875
36876
36877 DO 200 IJ=1,4
36878 XMJ=SMZ(IJ)
36879 AXMJ=ABS(XMJ)
36880 XMJ2=XMJ**2
36881 DO 190 IK=1,2
36882 XMK=SMW(IK)
36883 AXMK=ABS(XMK)
36884 XMK2=XMK**2
36885 IF(AXMI.GE.AXMJ+AXMK) THEN
36886 LKNT=LKNT+1
36887 GL=CBETA*(ZMIX(IJ,4)*VMIX(IK,1)+(ZMIX(IJ,2)+ZMIX(IJ,1)*
36888 & TANW)*VMIX(IK,2)/SR2)
36889 GR=SBETA*(ZMIX(IJ,3)*UMIX(IK,1)-(ZMIX(IJ,2)+ZMIX(IJ,1)*
36890 & TANW)*UMIX(IK,2)/SR2)
36891 XLAM(LKNT)=PYH2XX(C1,XMI,XMJ,-XMK,GL,GR)
36892 IDLAM(LKNT,1)=KFNCHI(IJ)
36893 IDLAM(LKNT,2)=KFCCHI(IK)
36894 IDLAM(LKNT,3)=0
36895 ENDIF
36896 190 CONTINUE
36897 200 CONTINUE
36898
36899 GL=-XMW/SR2*(SIN(2D0*BETA)-PMAS(6,1)**2/TANB/XMW2)
36900 GR=-PMAS(6,1)/SR2/XMW*(XMUZ-ATRIT/TANB)
36901 AL=0D0
36902 AR=0D0
36903 CF=3D0
36904
36905
36906 XM1=PMAS(PYCOMP(KSUSY1+6),1)
36907 XM2=PMAS(PYCOMP(KSUSY1+5),1)
36908 IF(XMI.GE.XM1+XM2) THEN
36909 XL=PYLAMF(XMI2,XM1**2,XM2**2)
36910 LKNT=LKNT+1
36911 XLAM(LKNT)=CF*SQRT(XL)/4D0*C1/XMI3*
36912 & (GL*SFMIX(6,1)*SFMIX(5,1)+GR*SFMIX(6,2)*SFMIX(5,1))**2
36913 IDLAM(LKNT,1)=KSUSY1+6
36914 IDLAM(LKNT,2)=-(KSUSY1+5)
36915 IDLAM(LKNT,3)=0
36916 ENDIF
36917
36918
36919 XM1=PMAS(PYCOMP(KSUSY2+6),1)
36920 XM2=PMAS(PYCOMP(KSUSY1+5),1)
36921 IF(XMI.GE.XM1+XM2) THEN
36922 XL=PYLAMF(XMI2,XM1**2,XM2**2)
36923 LKNT=LKNT+1
36924 XLAM(LKNT)=CF*SQRT(XL)/4D0*C1/XMI3*
36925 & (GL*SFMIX(6,3)*SFMIX(5,1)+GR*SFMIX(6,4)*SFMIX(5,1))**2
36926 IDLAM(LKNT,1)=KSUSY2+6
36927 IDLAM(LKNT,2)=-(KSUSY1+5)
36928 IDLAM(LKNT,3)=0
36929 ENDIF
36930
36931
36932 XM1=PMAS(PYCOMP(KSUSY1+6),1)
36933 XM2=PMAS(PYCOMP(KSUSY2+5),1)
36934 IF(XMI.GE.XM1+XM2) THEN
36935 XL=PYLAMF(XMI2,XM1**2,XM2**2)
36936 LKNT=LKNT+1
36937 XLAM(LKNT)=CF*SQRT(XL)/4D0*C1/XMI3*
36938 & (GL*SFMIX(6,1)*SFMIX(5,3)+GR*SFMIX(6,2)*SFMIX(5,3))**2
36939 IDLAM(LKNT,1)=KSUSY1+6
36940 IDLAM(LKNT,2)=-(KSUSY2+5)
36941 IDLAM(LKNT,3)=0
36942 ENDIF
36943
36944
36945 XM1=PMAS(PYCOMP(KSUSY2+6),1)
36946 XM2=PMAS(PYCOMP(KSUSY2+5),1)
36947 IF(XMI.GE.XM1+XM2) THEN
36948 XL=PYLAMF(XMI2,XM1**2,XM2**2)
36949 LKNT=LKNT+1
36950 XLAM(LKNT)=CF*SQRT(XL)/4D0*C1/XMI3*
36951 & (GL*SFMIX(6,3)*SFMIX(5,3)+GR*SFMIX(6,4)*SFMIX(5,3))**2
36952 IDLAM(LKNT,1)=KSUSY2+6
36953 IDLAM(LKNT,2)=-(KSUSY2+5)
36954 IDLAM(LKNT,3)=0
36955 ENDIF
36956
36957
36958 GL=-XMW/SR2*SIN(2D0*BETA)
36959 DO 210 IJ=1,3,2
36960 XM1=PMAS(PYCOMP(KSUSY1+IJ),1)
36961 XM2=PMAS(PYCOMP(KSUSY1+IJ+1),1)
36962 IF(XMI.GE.XM1+XM2) THEN
36963 XL=PYLAMF(XMI2,XM1**2,XM2**2)
36964 LKNT=LKNT+1
36965 XLAM(LKNT)=CF*SQRT(XL)/4D0*C1/XMI3*(GL)**2
36966 IDLAM(LKNT,1)=-(KSUSY1+IJ)
36967 IDLAM(LKNT,2)=KSUSY1+IJ+1
36968 IDLAM(LKNT,3)=0
36969 ENDIF
36970 210 CONTINUE
36971
36972
36973 CF=1D0
36974 DO 220 IJ=11,13,2
36975 XM1=PMAS(PYCOMP(KSUSY1+IJ),1)
36976 XM2=PMAS(PYCOMP(KSUSY1+IJ+1),1)
36977 IF(XMI.GE.XM1+XM2) THEN
36978 XL=PYLAMF(XMI2,XM1**2,XM2**2)
36979 LKNT=LKNT+1
36980 XLAM(LKNT)=CF*SQRT(XL)/4D0*C1/XMI3*(GL)**2
36981 IDLAM(LKNT,1)=-(KSUSY1+IJ)
36982 IDLAM(LKNT,2)=KSUSY1+IJ+1
36983 IDLAM(LKNT,3)=0
36984 ENDIF
36985 220 CONTINUE
36986
36987
36988 XM1=PMAS(PYCOMP(KSUSY1+15),1)
36989 XM2=PMAS(PYCOMP(KSUSY1+16),1)
36990 IF(XMI.GE.XM1+XM2) THEN
36991 XL=PYLAMF(XMI2,XM1**2,XM2**2)
36992 LKNT=LKNT+1
36993 XLAM(LKNT)=CF*SQRT(XL)/4D0*C1/XMI3*(GL)**2*SFMIX(15,1)**2
36994 IDLAM(LKNT,1)=-(KSUSY1+15)
36995 IDLAM(LKNT,2)= KSUSY1+16
36996 IDLAM(LKNT,3)=0
36997 ENDIF
36998
36999
37000 XM1=PMAS(PYCOMP(KSUSY2+15),1)
37001 XM2=PMAS(PYCOMP(KSUSY1+16),1)
37002 IF(XMI.GE.XM1+XM2) THEN
37003 XL=PYLAMF(XMI2,XM1**2,XM2**2)
37004 LKNT=LKNT+1
37005 XLAM(LKNT)=CF*SQRT(XL)/4D0*C1/XMI3*(GL)**2*SFMIX(15,3)**2
37006 IDLAM(LKNT,1)=-(KSUSY2+15)
37007 IDLAM(LKNT,2)= KSUSY1+16
37008 IDLAM(LKNT,3)=0
37009 ENDIF
37010
37011 230 CONTINUE
37012 IKNT=LKNT
37013 XLAM(0)=0D0
37014 DO 240 I=1,IKNT
37015 IF(XLAM(I).LE.0D0) XLAM(I)=0D0
37016 XLAM(0)=XLAM(0)+XLAM(I)
37017 240 CONTINUE
37018 IF(XLAM(0).EQ.0D0) XLAM(0)=1D-6
37019
37020 RETURN
37021 END
37022
37023
37024
37025
37026
37027
37028 FUNCTION PYH2XX(C1,XM1,XM2,XM3,GL,GR)
37029
37030
37031 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
37032 IMPLICIT INTEGER(I-N)
37033 INTEGER PYK,PYCHGE,PYCOMP
37034
37035 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
37036 SAVE /PYDAT1/
37037
37038
37039 DOUBLE PRECISION PYH2XX,XM1,XM2,XM3,GL,GR
37040 DOUBLE PRECISION XL,PYLAMF,C1
37041 DOUBLE PRECISION XMI2,XMJ2,XMK2,XMI3
37042
37043 XMI2=XM1**2
37044 XMI3=ABS(XM1**3)
37045 XMJ2=XM2**2
37046 XMK2=XM3**2
37047 XL=PYLAMF(XMI2,XMJ2,XMK2)
37048 PYH2XX=C1/4D0/XMI3*SQRT(XL)
37049 &*((GL**2+GR**2)*(XMI2-XMJ2-XMK2)-
37050 &4D0*GL*GR*XM3*XM2)
37051 IF(PYH2XX.LT.0D0) THEN
37052 WRITE(MSTU(11),*) ' NEGATIVE WIDTH IN PYH2XX '
37053 WRITE(MSTU(11),*) XMI2,XMJ2,XMK2,GL,GR,XM1,XM2,XM3
37054 STOP
37055 ENDIF
37056
37057 RETURN
37058 END
37059
37060
37061
37062
37063
37064
37065
37066 FUNCTION PYGAUS(F, A, B, EPS)
37067
37068
37069 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
37070 IMPLICIT INTEGER(I-N)
37071 INTEGER PYK,PYCHGE,PYCOMP
37072
37073
37074 EXTERNAL F
37075 DOUBLE PRECISION F,W(12), X(12)
37076 DATA X( 1) /9.6028985649753623D-1/, W( 1) /1.0122853629037626D-1/
37077 DATA X( 2) /7.9666647741362674D-1/, W( 2) /2.2238103445337447D-1/
37078 DATA X( 3) /5.2553240991632899D-1/, W( 3) /3.1370664587788729D-1/
37079 DATA X( 4) /1.8343464249564980D-1/, W( 4) /3.6268378337836198D-1/
37080 DATA X( 5) /9.8940093499164993D-1/, W( 5) /2.7152459411754095D-2/
37081 DATA X( 6) /9.4457502307323258D-1/, W( 6) /6.2253523938647893D-2/
37082 DATA X( 7) /8.6563120238783174D-1/, W( 7) /9.5158511682492785D-2/
37083 DATA X( 8) /7.5540440835500303D-1/, W( 8) /1.2462897125553387D-1/
37084 DATA X( 9) /6.1787624440264375D-1/, W( 9) /1.4959598881657673D-1/
37085 DATA X(10) /4.5801677765722739D-1/, W(10) /1.6915651939500254D-1/
37086 DATA X(11) /2.8160355077925891D-1/, W(11) /1.8260341504492359D-1/
37087 DATA X(12) /9.5012509837637440D-2/, W(12) /1.8945061045506850D-1/
37088
37089
37090 H = 0D0
37091 IF(B .EQ. A) GO TO 140
37092 CONST = 5D-3 / ABS(B-A)
37093 BB = A
37094 100 CONTINUE
37095 AA = BB
37096 BB = B
37097 110 CONTINUE
37098 C1 = 0.5D0*(BB+AA)
37099 C2 = 0.5D0*(BB-AA)
37100 S8 = 0D0
37101 DO 120 I = 1, 4
37102 U = C2*X(I)
37103 S8 = S8 + W(I) * (F(C1+U) + F(C1-U))
37104 120 CONTINUE
37105 S16 = 0D0
37106 DO 130 I = 5, 12
37107 U = C2*X(I)
37108 S16 = S16 + W(I) * (F(C1+U) + F(C1-U))
37109 130 CONTINUE
37110 S16 = C2*S16
37111 IF(DABS(S16-C2*S8) .LE. EPS*(1D0+DABS(S16))) THEN
37112 H = H + S16
37113 IF(BB .NE. B) GO TO 100
37114 ELSE
37115 BB = C1
37116 IF(1D0 + CONST*ABS(C2) .NE. 1D0) GO TO 110
37117 H = 0D0
37118 CALL PYERRM(18,'(PYGAUS:) too high accuracy required')
37119 GO TO 140
37120 ENDIF
37121 140 CONTINUE
37122 PYGAUS = H
37123
37124 RETURN
37125 END
37126
37127
37128
37129
37130
37131
37132 FUNCTION PYSIMP(Y,X0,X1,N)
37133
37134
37135 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
37136 IMPLICIT INTEGER(I-N)
37137 INTEGER PYK,PYCHGE,PYCOMP
37138
37139
37140 DOUBLE PRECISION Y,X0,X1,H,S
37141 DIMENSION Y(0:N)
37142
37143 S=0D0
37144 H=(X1-X0)/N
37145 DO 100 I=0,N-2,2
37146 S=S+Y(I)+4D0*Y(I+1)+Y(I+2)
37147 100 CONTINUE
37148 PYSIMP=S*H/3D0
37149
37150 RETURN
37151 END
37152
37153
37154
37155
37156
37157
37158 FUNCTION PYLAMF(X,Y,Z)
37159
37160
37161 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
37162 IMPLICIT INTEGER(I-N)
37163 INTEGER PYK,PYCHGE,PYCOMP
37164
37165
37166 DOUBLE PRECISION PYLAMF,X,Y,Z
37167
37168 PYLAMF=(X-(Y+Z))**2-4D0*Y*Z
37169 IF(PYLAMF.LT.0D0) PYLAMF=0D0
37170
37171 RETURN
37172 END
37173
37174
37175
37176
37177
37178
37179 SUBROUTINE PYTBDY(XM)
37180
37181
37182 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
37183 IMPLICIT INTEGER(I-N)
37184 INTEGER PYK,PYCHGE,PYCOMP
37185
37186 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
37187
37188 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
37189 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
37190 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
37191 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
37192 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
37193 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/
37194
37195
37196 DOUBLE PRECISION XM(5)
37197 DOUBLE PRECISION S12MIN,S12MAX,YJACO1,S23AVE,S23DF1,S23DF2
37198 DOUBLE PRECISION D1,D2,D3,P1,P2,P3,CTHE1,STHE1,CTHE3,STHE3
37199 DOUBLE PRECISION CPHI1,SPHI1
37200 DOUBLE PRECISION S23DEL,EPS
37201 DOUBLE PRECISION GOLDEN,AX,BX,CX,TOL,XMIN,R,C
37202 PARAMETER (R=0.61803399D0,C=1D0-R,TOL=1D-3)
37203 DOUBLE PRECISION F1,F2,X0,X1,X2,X3
37204 DATA EPS/1D-6/
37205
37206
37207 S12MIN=(XM(1)+XM(2))**2
37208 S12MAX=(XM(5)-XM(3))**2
37209 YJACO1=S12MAX-S12MIN
37210
37211
37212 AX=S12MIN
37213 CX=S12MAX
37214 BX=S12MIN+0.5D0*YJACO1
37215 X0=AX
37216 X3=CX
37217 IF(ABS(CX-BX).GT.ABS(BX-AX))THEN
37218 X1=BX
37219 X2=BX+C*(CX-BX)
37220 ELSE
37221 X2=BX
37222 X1=BX-C*(BX-AX)
37223 ENDIF
37224
37225
37226 S23DF1=(X1-XM(2)**2-XM(1)**2)**2
37227 &-(2D0*XM(1)*XM(2))**2
37228 S23DF2=(X1-XM(3)**2-XM(5)**2)**2
37229 &-(2D0*XM(3)*XM(5))**2
37230 S23DF1=S23DF1*EPS
37231 S23DF2=S23DF2*EPS
37232 S23DEL=SQRT(S23DF1*S23DF2)/(2D0*X1)
37233 F1=-2D0*S23DEL/EPS
37234 S23DF1=(X2-XM(2)**2-XM(1)**2)**2
37235 &-(2D0*XM(1)*XM(2))**2
37236 S23DF2=(X2-XM(3)**2-XM(5)**2)**2
37237 &-(2D0*XM(3)*XM(5))**2
37238 S23DF1=S23DF1*EPS
37239 S23DF2=S23DF2*EPS
37240 S23DEL=SQRT(S23DF1*S23DF2)/(2D0*X2)
37241 F2=-2D0*S23DEL/EPS
37242
37243 100 IF(ABS(X3-X0).GT.TOL*(ABS(X1)+ABS(X2)))THEN
37244 IF(F2.LT.F1)THEN
37245 X0=X1
37246 X1=X2
37247 X2=R*X1+C*X3
37248 F1=F2
37249 S23DF1=(X2-XM(2)**2-XM(1)**2)**2
37250 & -(2D0*XM(1)*XM(2))**2
37251 S23DF2=(X2-XM(3)**2-XM(5)**2)**2
37252 & -(2D0*XM(3)*XM(5))**2
37253 S23DF1=S23DF1*EPS
37254 S23DF2=S23DF2*EPS
37255 S23DEL=SQRT(S23DF1*S23DF2)/(2D0*X2)
37256 F2=-2D0*S23DEL/EPS
37257 ELSE
37258 X3=X2
37259 X2=X1
37260 X1=R*X2+C*X0
37261 F2=F1
37262 S23DF1=(X1-XM(2)**2-XM(1)**2)**2
37263 & -(2D0*XM(1)*XM(2))**2
37264 S23DF2=(X1-XM(3)**2-XM(5)**2)**2
37265 & -(2D0*XM(3)*XM(5))**2
37266 S23DF1=S23DF1*EPS
37267 S23DF2=S23DF2*EPS
37268 S23DEL=SQRT(S23DF1*S23DF2)/(2D0*X1)
37269 F1=-2D0*S23DEL/EPS
37270 ENDIF
37271 GOTO 100
37272 ENDIF
37273
37274 IF(F1.LT.F2)THEN
37275 GOLDEN=-F1
37276 XMIN=X1
37277 ELSE
37278 GOLDEN=-F2
37279 XMIN=X2
37280 ENDIF
37281
37282 IKNT=0
37283 110 S12=S12MIN+PYR(0)*YJACO1
37284 IKNT=IKNT+1
37285
37286 S23AVE=XM(2)**2+XM(3)**2-(S12+XM(2)**2-XM(1)**2)
37287 &*(S12+XM(3)**2-XM(5)**2)/(2D0*S12)
37288 S23DF1=(S12-XM(2)**2-XM(1)**2)**2
37289 &-(2D0*XM(1)*XM(2))**2
37290 S23DF2=(S12-XM(3)**2-XM(5)**2)**2
37291 &-(2D0*XM(3)*XM(5))**2
37292 S23DF1=S23DF1*EPS
37293 S23DF2=S23DF2*EPS
37294 S23DEL=SQRT(S23DF1*S23DF2)/(2D0*S12)
37295 S23DEL=S23DEL/EPS
37296 S23MIN=S23AVE-S23DEL
37297 S23MAX=S23AVE+S23DEL
37298 YJACO2=S23MAX-S23MIN
37299 S23=S23MIN+PYR(0)*YJACO2
37300
37301
37302 IF(IKNT.GT.100) THEN
37303 WRITE(MSTU(11),*) ' IKNT > 100 IN PYTBDY '
37304 GOTO 120
37305 ENDIF
37306 IF(YJACO2.LT.PYR(0)*GOLDEN) GOTO 110
37307 120 D3=(XM(5)**2+XM(3)**2-S12)/(2D0*XM(5))
37308 D1=(XM(5)**2+XM(1)**2-S23)/(2D0*XM(5))
37309 D2=XM(5)-D1-D3
37310 P1=SQRT(D1*D1-XM(1)**2)
37311 P2=SQRT(D2*D2-XM(2)**2)
37312 P3=SQRT(D3*D3-XM(3)**2)
37313 CTHE1=2D0*PYR(0)-1D0
37314 ANG1=2D0*PYR(0)*PARU(1)
37315 CPHI1=COS(ANG1)
37316 SPHI1=SIN(ANG1)
37317 ARG=1D0-CTHE1**2
37318 IF(ARG.LT.0D0.AND.ARG.GT.-1D-3) ARG=0D0
37319 STHE1=SQRT(ARG)
37320 P(N+1,1)=P1*STHE1*CPHI1
37321 P(N+1,2)=P1*STHE1*SPHI1
37322 P(N+1,3)=P1*CTHE1
37323 P(N+1,4)=D1
37324
37325
37326 ANG3=2D0*PYR(0)*PARU(1)
37327 CPHI3=COS(ANG3)
37328 SPHI3=SIN(ANG3)
37329 CTHE3=(P2**2-P1**2-P3**2)/2D0/P1/P3
37330 ARG=1D0-CTHE3**2
37331 IF(ARG.LT.0D0.AND.ARG.GT.-1D-3) ARG=0D0
37332 STHE3=SQRT(ARG)
37333 P(N+3,1)=-P3*STHE3*CPHI3*CTHE1*CPHI1
37334 &+P3*STHE3*SPHI3*SPHI1
37335 &+P3*CTHE3*STHE1*CPHI1
37336 P(N+3,2)=-P3*STHE3*CPHI3*CTHE1*SPHI1
37337 &-P3*STHE3*SPHI3*CPHI1
37338 &+P3*CTHE3*STHE1*SPHI1
37339 P(N+3,3)=P3*STHE3*CPHI3*STHE1
37340 &+P3*CTHE3*CTHE1
37341 P(N+3,4)=D3
37342
37343 DO 130 I=1,3
37344 P(N+2,I)=-P(N+1,I)-P(N+3,I)
37345 130 CONTINUE
37346 P(N+2,4)=D2
37347
37348 RETURN
37349 END
37350
37351
37352
37353
37354
37355
37356 SUBROUTINE PY1ENT(IP,KF,PE,THE,PHI)
37357
37358
37359 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
37360 IMPLICIT INTEGER(I-N)
37361 INTEGER PYK,PYCHGE,PYCOMP
37362
37363 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
37364 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
37365 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
37366 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
37367
37368
37369 MSTU(28)=0
37370 IF(MSTU(12).GE.1) CALL PYLIST(0)
37371 IPA=MAX(1,IABS(IP))
37372 IF(IPA.GT.MSTU(4)) CALL PYERRM(21,
37373 &'(PY1ENT:) writing outside PYJETS memory')
37374 KC=PYCOMP(KF)
37375 IF(KC.EQ.0) CALL PYERRM(12,'(PY1ENT:) unknown flavour code')
37376
37377
37378 PM=0D0
37379 IF(MSTU(10).EQ.1) PM=P(IPA,5)
37380 IF(MSTU(10).GE.2) PM=PYMASS(KF)
37381 DO 100 J=1,5
37382 K(IPA,J)=0
37383 P(IPA,J)=0D0
37384 V(IPA,J)=0D0
37385 100 CONTINUE
37386
37387
37388 K(IPA,1)=1
37389 IF(IP.LT.0) K(IPA,1)=2
37390 K(IPA,2)=KF
37391 P(IPA,5)=PM
37392 P(IPA,4)=MAX(PE,PM)
37393 PA=SQRT(P(IPA,4)**2-P(IPA,5)**2)
37394 P(IPA,1)=PA*SIN(THE)*COS(PHI)
37395 P(IPA,2)=PA*SIN(THE)*SIN(PHI)
37396 P(IPA,3)=PA*COS(THE)
37397
37398
37399 N=IPA
37400 IF(IP.EQ.0) CALL PYEXEC
37401
37402 RETURN
37403 END
37404
37405
37406
37407
37408
37409
37410
37411 SUBROUTINE PY2ENT(IP,KF1,KF2,PECM)
37412
37413
37414 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
37415 IMPLICIT INTEGER(I-N)
37416 INTEGER PYK,PYCHGE,PYCOMP
37417
37418 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
37419 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
37420 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
37421 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
37422
37423
37424 MSTU(28)=0
37425 IF(MSTU(12).GE.1) CALL PYLIST(0)
37426 IPA=MAX(1,IABS(IP))
37427 IF(IPA.GT.MSTU(4)-1) CALL PYERRM(21,
37428 &'(PY2ENT:) writing outside PYJETS memory')
37429 KC1=PYCOMP(KF1)
37430 KC2=PYCOMP(KF2)
37431 IF(KC1.EQ.0.OR.KC2.EQ.0) CALL PYERRM(12,
37432 &'(PY2ENT:) unknown flavour code')
37433
37434
37435 PM1=0D0
37436 IF(MSTU(10).EQ.1) PM1=P(IPA,5)
37437 IF(MSTU(10).GE.2) PM1=PYMASS(KF1)
37438 PM2=0D0
37439 IF(MSTU(10).EQ.1) PM2=P(IPA+1,5)
37440 IF(MSTU(10).GE.2) PM2=PYMASS(KF2)
37441 DO 110 I=IPA,IPA+1
37442 DO 100 J=1,5
37443 K(I,J)=0
37444 P(I,J)=0D0
37445 V(I,J)=0D0
37446 100 CONTINUE
37447 110 CONTINUE
37448
37449
37450 KQ1=KCHG(KC1,2)*ISIGN(1,KF1)
37451 KQ2=KCHG(KC2,2)*ISIGN(1,KF2)
37452 IF(MSTU(19).EQ.1) THEN
37453 MSTU(19)=0
37454 ELSE
37455 IF(KQ1+KQ2.NE.0.AND.KQ1+KQ2.NE.4) CALL PYERRM(2,
37456 & '(PY2ENT:) unphysical flavour combination')
37457 ENDIF
37458 K(IPA,2)=KF1
37459 K(IPA+1,2)=KF2
37460
37461
37462 IF(IP.GE.0) THEN
37463 K(IPA,1)=1
37464 IF(KQ1.NE.0.AND.KQ2.NE.0) K(IPA,1)=2
37465 K(IPA+1,1)=1
37466
37467
37468 ELSE
37469 K(IPA,1)=3
37470 K(IPA+1,1)=3
37471 K(IPA,4)=MSTU(5)*(IPA+1)
37472 K(IPA,5)=K(IPA,4)
37473 K(IPA+1,4)=MSTU(5)*IPA
37474 K(IPA+1,5)=K(IPA+1,4)
37475 ENDIF
37476
37477
37478 IF(PECM.LE.PM1+PM2) CALL PYERRM(13,
37479 &'(PY2ENT:) energy smaller than sum of masses')
37480 PA=SQRT(MAX(0D0,(PECM**2-PM1**2-PM2**2)**2-(2D0*PM1*PM2)**2))/
37481 &(2D0*PECM)
37482 P(IPA,3)=PA
37483 P(IPA,4)=SQRT(PM1**2+PA**2)
37484 P(IPA,5)=PM1
37485 P(IPA+1,3)=-PA
37486 P(IPA+1,4)=SQRT(PM2**2+PA**2)
37487 P(IPA+1,5)=PM2
37488
37489
37490 N=IPA+1
37491 IF(IP.EQ.0) CALL PYEXEC
37492
37493 RETURN
37494 END
37495
37496
37497
37498
37499
37500
37501
37502
37503 SUBROUTINE PY3ENT(IP,KF1,KF2,KF3,PECM,X1,X3)
37504
37505
37506 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
37507 IMPLICIT INTEGER(I-N)
37508 INTEGER PYK,PYCHGE,PYCOMP
37509
37510 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
37511 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
37512 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
37513 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
37514
37515
37516 MSTU(28)=0
37517 IF(MSTU(12).GE.1) CALL PYLIST(0)
37518 IPA=MAX(1,IABS(IP))
37519 IF(IPA.GT.MSTU(4)-2) CALL PYERRM(21,
37520 &'(PY3ENT:) writing outside PYJETS memory')
37521 KC1=PYCOMP(KF1)
37522 KC2=PYCOMP(KF2)
37523 KC3=PYCOMP(KF3)
37524 IF(KC1.EQ.0.OR.KC2.EQ.0.OR.KC3.EQ.0) CALL PYERRM(12,
37525 &'(PY3ENT:) unknown flavour code')
37526
37527
37528 PM1=0D0
37529 IF(MSTU(10).EQ.1) PM1=P(IPA,5)
37530 IF(MSTU(10).GE.2) PM1=PYMASS(KF1)
37531 PM2=0D0
37532 IF(MSTU(10).EQ.1) PM2=P(IPA+1,5)
37533 IF(MSTU(10).GE.2) PM2=PYMASS(KF2)
37534 PM3=0D0
37535 IF(MSTU(10).EQ.1) PM3=P(IPA+2,5)
37536 IF(MSTU(10).GE.2) PM3=PYMASS(KF3)
37537 DO 110 I=IPA,IPA+2
37538 DO 100 J=1,5
37539 K(I,J)=0
37540 P(I,J)=0D0
37541 V(I,J)=0D0
37542 100 CONTINUE
37543 110 CONTINUE
37544
37545
37546 KQ1=KCHG(KC1,2)*ISIGN(1,KF1)
37547 KQ2=KCHG(KC2,2)*ISIGN(1,KF2)
37548 KQ3=KCHG(KC3,2)*ISIGN(1,KF3)
37549 IF(MSTU(19).EQ.1) THEN
37550 MSTU(19)=0
37551 ELSEIF(KQ1.EQ.0.AND.KQ2.EQ.0.AND.KQ3.EQ.0) THEN
37552 ELSEIF(KQ1.NE.0.AND.KQ2.EQ.2.AND.(KQ1+KQ3.EQ.0.OR.
37553 & KQ1+KQ3.EQ.4)) THEN
37554 ELSE
37555 CALL PYERRM(2,'(PY3ENT:) unphysical flavour combination')
37556 ENDIF
37557 K(IPA,2)=KF1
37558 K(IPA+1,2)=KF2
37559 K(IPA+2,2)=KF3
37560
37561
37562 IF(IP.GE.0) THEN
37563 K(IPA,1)=1
37564 IF(KQ1.NE.0.AND.(KQ2.NE.0.OR.KQ3.NE.0)) K(IPA,1)=2
37565 K(IPA+1,1)=1
37566 IF(KQ2.NE.0.AND.KQ3.NE.0) K(IPA+1,1)=2
37567 K(IPA+2,1)=1
37568
37569
37570 ELSE
37571 K(IPA,1)=3
37572 K(IPA+1,1)=3
37573 K(IPA+2,1)=3
37574 KCS=4
37575 IF(KQ1.EQ.-1) KCS=5
37576 K(IPA,KCS)=MSTU(5)*(IPA+1)
37577 K(IPA,9-KCS)=MSTU(5)*(IPA+2)
37578 K(IPA+1,KCS)=MSTU(5)*(IPA+2)
37579 K(IPA+1,9-KCS)=MSTU(5)*IPA
37580 K(IPA+2,KCS)=MSTU(5)*IPA
37581 K(IPA+2,9-KCS)=MSTU(5)*(IPA+1)
37582 ENDIF
37583
37584
37585 MKERR=0
37586 IF(0.5D0*X1*PECM.LE.PM1.OR.0.5D0*(2D0-X1-X3)*PECM.LE.PM2.OR.
37587 &0.5D0*X3*PECM.LE.PM3) MKERR=1
37588 PA1=SQRT(MAX(1D-10,(0.5D0*X1*PECM)**2-PM1**2))
37589 PA2=SQRT(MAX(1D-10,(0.5D0*(2D0-X1-X3)*PECM)**2-PM2**2))
37590 PA3=SQRT(MAX(1D-10,(0.5D0*X3*PECM)**2-PM3**2))
37591 CTHE2=(PA3**2-PA1**2-PA2**2)/(2D0*PA1*PA2)
37592 CTHE3=(PA2**2-PA1**2-PA3**2)/(2D0*PA1*PA3)
37593 IF(ABS(CTHE2).GE.1.001D0.OR.ABS(CTHE3).GE.1.001D0) MKERR=1
37594 CTHE3=MAX(-1D0,MIN(1D0,CTHE3))
37595 IF(MKERR.NE.0) CALL PYERRM(13,
37596 &'(PY3ENT:) unphysical kinematical variable setup')
37597
37598
37599 P(IPA,3)=PA1
37600 P(IPA,4)=SQRT(PA1**2+PM1**2)
37601 P(IPA,5)=PM1
37602 P(IPA+2,1)=PA3*SQRT(1D0-CTHE3**2)
37603 P(IPA+2,3)=PA3*CTHE3
37604 P(IPA+2,4)=SQRT(PA3**2+PM3**2)
37605 P(IPA+2,5)=PM3
37606 P(IPA+1,1)=-P(IPA+2,1)
37607 P(IPA+1,3)=-P(IPA,3)-P(IPA+2,3)
37608 P(IPA+1,4)=SQRT(P(IPA+1,1)**2+P(IPA+1,3)**2+PM2**2)
37609 P(IPA+1,5)=PM2
37610
37611
37612 N=IPA+2
37613 IF(IP.EQ.0) CALL PYEXEC
37614
37615 RETURN
37616 END
37617
37618
37619
37620
37621
37622
37623
37624
37625 SUBROUTINE PY4ENT(IP,KF1,KF2,KF3,KF4,PECM,X1,X2,X4,X12,X14)
37626
37627
37628 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
37629 IMPLICIT INTEGER(I-N)
37630 INTEGER PYK,PYCHGE,PYCOMP
37631
37632 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
37633 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
37634 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
37635 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
37636
37637
37638 MSTU(28)=0
37639 IF(MSTU(12).GE.1) CALL PYLIST(0)
37640 IPA=MAX(1,IABS(IP))
37641 IF(IPA.GT.MSTU(4)-3) CALL PYERRM(21,
37642 &'(PY4ENT:) writing outside PYJETS momory')
37643 KC1=PYCOMP(KF1)
37644 KC2=PYCOMP(KF2)
37645 KC3=PYCOMP(KF3)
37646 KC4=PYCOMP(KF4)
37647 IF(KC1.EQ.0.OR.KC2.EQ.0.OR.KC3.EQ.0.OR.KC4.EQ.0) CALL PYERRM(12,
37648 &'(PY4ENT:) unknown flavour code')
37649
37650
37651 PM1=0D0
37652 IF(MSTU(10).EQ.1) PM1=P(IPA,5)
37653 IF(MSTU(10).GE.2) PM1=PYMASS(KF1)
37654 PM2=0D0
37655 IF(MSTU(10).EQ.1) PM2=P(IPA+1,5)
37656 IF(MSTU(10).GE.2) PM2=PYMASS(KF2)
37657 PM3=0D0
37658 IF(MSTU(10).EQ.1) PM3=P(IPA+2,5)
37659 IF(MSTU(10).GE.2) PM3=PYMASS(KF3)
37660 PM4=0D0
37661 IF(MSTU(10).EQ.1) PM4=P(IPA+3,5)
37662 IF(MSTU(10).GE.2) PM4=PYMASS(KF4)
37663 DO 110 I=IPA,IPA+3
37664 DO 100 J=1,5
37665 K(I,J)=0
37666 P(I,J)=0D0
37667 V(I,J)=0D0
37668 100 CONTINUE
37669 110 CONTINUE
37670
37671
37672 KQ1=KCHG(KC1,2)*ISIGN(1,KF1)
37673 KQ2=KCHG(KC2,2)*ISIGN(1,KF2)
37674 KQ3=KCHG(KC3,2)*ISIGN(1,KF3)
37675 KQ4=KCHG(KC4,2)*ISIGN(1,KF4)
37676 IF(MSTU(19).EQ.1) THEN
37677 MSTU(19)=0
37678 ELSEIF(KQ1.EQ.0.AND.KQ2.EQ.0.AND.KQ3.EQ.0.AND.KQ4.EQ.0) THEN
37679 ELSEIF(KQ1.NE.0.AND.KQ2.EQ.2.AND.KQ3.EQ.2.AND.(KQ1+KQ4.EQ.0.OR.
37680 & KQ1+KQ4.EQ.4)) THEN
37681 ELSEIF(KQ1.NE.0.AND.KQ1+KQ2.EQ.0.AND.KQ3.NE.0.AND.KQ3+KQ4.EQ.0D0)
37682 & THEN
37683 ELSE
37684 CALL PYERRM(2,'(PY4ENT:) unphysical flavour combination')
37685 ENDIF
37686 K(IPA,2)=KF1
37687 K(IPA+1,2)=KF2
37688 K(IPA+2,2)=KF3
37689 K(IPA+3,2)=KF4
37690
37691
37692 IF(IP.GE.0) THEN
37693 K(IPA,1)=1
37694 IF(KQ1.NE.0.AND.(KQ2.NE.0.OR.KQ3.NE.0.OR.KQ4.NE.0)) K(IPA,1)=2
37695 K(IPA+1,1)=1
37696 IF(KQ2.NE.0.AND.KQ1+KQ2.NE.0.AND.(KQ3.NE.0.OR.KQ4.NE.0))
37697 & K(IPA+1,1)=2
37698 K(IPA+2,1)=1
37699 IF(KQ3.NE.0.AND.KQ4.NE.0) K(IPA+2,1)=2
37700 K(IPA+3,1)=1
37701
37702
37703
37704 ELSEIF(KQ1+KQ2.NE.0) THEN
37705 K(IPA,1)=3
37706 K(IPA+1,1)=3
37707 K(IPA+2,1)=3
37708 K(IPA+3,1)=3
37709 KCS=4
37710 IF(KQ1.EQ.-1) KCS=5
37711 K(IPA,KCS)=MSTU(5)*(IPA+1)
37712 K(IPA,9-KCS)=MSTU(5)*(IPA+3)
37713 K(IPA+1,KCS)=MSTU(5)*(IPA+2)
37714 K(IPA+1,9-KCS)=MSTU(5)*IPA
37715 K(IPA+2,KCS)=MSTU(5)*(IPA+3)
37716 K(IPA+2,9-KCS)=MSTU(5)*(IPA+1)
37717 K(IPA+3,KCS)=MSTU(5)*IPA
37718 K(IPA+3,9-KCS)=MSTU(5)*(IPA+2)
37719
37720
37721 ELSE
37722 K(IPA,1)=3
37723 K(IPA+1,1)=3
37724 K(IPA+2,1)=3
37725 K(IPA+3,1)=3
37726 K(IPA,4)=MSTU(5)*(IPA+1)
37727 K(IPA,5)=K(IPA,4)
37728 K(IPA+1,4)=MSTU(5)*IPA
37729 K(IPA+1,5)=K(IPA+1,4)
37730 K(IPA+2,4)=MSTU(5)*(IPA+3)
37731 K(IPA+2,5)=K(IPA+2,4)
37732 K(IPA+3,4)=MSTU(5)*(IPA+2)
37733 K(IPA+3,5)=K(IPA+3,4)
37734 ENDIF
37735
37736
37737 MKERR=0
37738 IF(0.5D0*X1*PECM.LE.PM1.OR.0.5D0*X2*PECM.LE.PM2.OR.
37739 &0.5D0*(2D0-X1-X2-X4)*PECM.LE.PM3.OR.0.5D0*X4*PECM.LE.PM4)
37740 &MKERR=1
37741 PA1=SQRT(MAX(1D-10,(0.5D0*X1*PECM)**2-PM1**2))
37742 PA2=SQRT(MAX(1D-10,(0.5D0*X2*PECM)**2-PM2**2))
37743 PA4=SQRT(MAX(1D-10,(0.5D0*X4*PECM)**2-PM4**2))
37744 X24=X1+X2+X4-1D0-X12-X14+(PM3**2-PM1**2-PM2**2-PM4**2)/PECM**2
37745 CTHE4=(X1*X4-2D0*X14)*PECM**2/(4D0*PA1*PA4)
37746 IF(ABS(CTHE4).GE.1.002D0) MKERR=1
37747 CTHE4=MAX(-1D0,MIN(1D0,CTHE4))
37748 STHE4=SQRT(1D0-CTHE4**2)
37749 CTHE2=(X1*X2-2D0*X12)*PECM**2/(4D0*PA1*PA2)
37750 IF(ABS(CTHE2).GE.1.002D0) MKERR=1
37751 CTHE2=MAX(-1D0,MIN(1D0,CTHE2))
37752 STHE2=SQRT(1D0-CTHE2**2)
37753 CPHI2=((X2*X4-2D0*X24)*PECM**2-4D0*PA2*CTHE2*PA4*CTHE4)/
37754 &MAX(1D-8*PECM**2,4D0*PA2*STHE2*PA4*STHE4)
37755 IF(ABS(CPHI2).GE.1.05D0) MKERR=1
37756 CPHI2=MAX(-1D0,MIN(1D0,CPHI2))
37757 IF(MKERR.EQ.1) CALL PYERRM(13,
37758 &'(PY4ENT:) unphysical kinematical variable setup')
37759
37760
37761 P(IPA,3)=PA1
37762 P(IPA,4)=SQRT(PA1**2+PM1**2)
37763 P(IPA,5)=PM1
37764 P(IPA+3,1)=PA4*STHE4
37765 P(IPA+3,3)=PA4*CTHE4
37766 P(IPA+3,4)=SQRT(PA4**2+PM4**2)
37767 P(IPA+3,5)=PM4
37768 P(IPA+1,1)=PA2*STHE2*CPHI2
37769 P(IPA+1,2)=PA2*STHE2*SQRT(1D0-CPHI2**2)*(-1D0)**INT(PYR(0)+0.5D0)
37770 P(IPA+1,3)=PA2*CTHE2
37771 P(IPA+1,4)=SQRT(PA2**2+PM2**2)
37772 P(IPA+1,5)=PM2
37773 P(IPA+2,1)=-P(IPA+1,1)-P(IPA+3,1)
37774 P(IPA+2,2)=-P(IPA+1,2)
37775 P(IPA+2,3)=-P(IPA,3)-P(IPA+1,3)-P(IPA+3,3)
37776 P(IPA+2,4)=SQRT(P(IPA+2,1)**2+P(IPA+2,2)**2+P(IPA+2,3)**2+PM3**2)
37777 P(IPA+2,5)=PM3
37778
37779
37780 N=IPA+3
37781 IF(IP.EQ.0) CALL PYEXEC
37782
37783 RETURN
37784 END
37785
37786
37787
37788
37789
37790
37791
37792 SUBROUTINE PY2FRM(IRAD,ITAU,ICOM)
37793
37794
37795 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
37796 IMPLICIT INTEGER(I-N)
37797 INTEGER PYK,PYCHGE,PYCOMP
37798
37799 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
37800 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
37801 SAVE /PYJETS/,/PYDAT1/
37802
37803 DIMENSION IJOIN(2),INTAU(2)
37804
37805
37806 IF(ICOM.EQ.0) THEN
37807 MSTU(28)=0
37808 CALL PYHEPC(2)
37809 ENDIF
37810
37811
37812 I1=0
37813 I2=0
37814 DO 100 I=1,N
37815 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 100
37816 KFA=IABS(K(I,2))
37817 IF((KFA.GE.1.AND.KFA.LE.6).OR.(KFA.GE.11.AND.KFA.LE.16)) THEN
37818 IF(K(I,2).GT.0) THEN
37819 IF(I1.EQ.0) THEN
37820 I1=I
37821 ELSE
37822 CALL PYERRM(16,'(PY2FRM:) more than one fermion')
37823 ENDIF
37824 ELSE
37825 IF(I2.EQ.0) THEN
37826 I2=I
37827 ELSE
37828 CALL PYERRM(16,'(PY2FRM:) more than one antifermion')
37829 ENDIF
37830 ENDIF
37831 ENDIF
37832 100 CONTINUE
37833
37834
37835 IF(I1.EQ.0.OR.I2.EQ.0) THEN
37836 CALL PYERRM(16,'(PY2FRM:) event contains too few fermions')
37837 ENDIF
37838 IF(I2.LT.I1) THEN
37839 CALL PYERRM(6,'(PY2FRM:) fermions arranged in wrong order')
37840 ENDIF
37841
37842
37843 IF(IABS(K(I1,2)).LT.10.AND.IABS(K(I2,2)).LT.10) THEN
37844 IQL12=1
37845 ELSEIF(IABS(K(I1,2)).GT.10.AND.IABS(K(I2,2)).GT.10) THEN
37846 IQL12=2
37847 ELSE
37848 CALL PYERRM(16,'(PY2FRM:) fermion pair inconsistent')
37849 ENDIF
37850
37851
37852 MSTJ(41)=2
37853 IF(IRAD.EQ.0) MSTJ(41)=1
37854
37855
37856 IP1=I1
37857 IP2=I2
37858 IF(IQL12.EQ.1) THEN
37859 IJOIN(1)=IP1
37860 IJOIN(2)=IP2
37861 CALL PYJOIN(2,IJOIN)
37862 ENDIF
37863 IF(IQL12.EQ.1.OR.IRAD.EQ.1) THEN
37864 PM12S=(P(IP1,4)+P(IP2,4))**2-(P(IP1,1)+P(IP2,1))**2-
37865 & (P(IP1,2)+P(IP2,2))**2-(P(IP1,3)+P(IP2,3))**2
37866 CALL PYSHOW(IP1,IP2,SQRT(MAX(0D0,PM12S)))
37867 ENDIF
37868
37869
37870 IF(ITAU.EQ.0) THEN
37871 NTAU=0
37872 DO 110 I=1,N
37873 IF(IABS(K(I,2)).EQ.15.AND.K(I,1).EQ.1) THEN
37874 NTAU=NTAU+1
37875 INTAU(NTAU)=I
37876 K(I,1)=11
37877 ENDIF
37878 110 CONTINUE
37879 ENDIF
37880 CALL PYEXEC
37881 IF(ITAU.EQ.0) THEN
37882 DO 120 I=1,NTAU
37883 K(INTAU(I),1)=1
37884 120 CONTINUE
37885 ENDIF
37886
37887
37888 IF(ICOM.EQ.0) THEN
37889 MSTU(28)=0
37890 CALL PYHEPC(1)
37891 ENDIF
37892
37893 END
37894
37895
37896
37897
37898
37899
37900
37901 SUBROUTINE PY4FRM(ATOTSQ,A1SQ,A2SQ,ISTRAT,IRAD,ITAU,ICOM)
37902
37903
37904 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
37905 IMPLICIT INTEGER(I-N)
37906 INTEGER PYK,PYCHGE,PYCOMP
37907
37908 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
37909 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
37910 SAVE /PYJETS/,/PYDAT1/
37911
37912 DIMENSION IJOIN(2),INTAU(4)
37913
37914
37915 IF(ICOM.EQ.0) THEN
37916 MSTU(28)=0
37917 CALL PYHEPC(2)
37918 ENDIF
37919
37920
37921 I1=0
37922 I2=0
37923 I3=0
37924 I4=0
37925 DO 100 I=1,N
37926 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 100
37927 KFA=IABS(K(I,2))
37928 IF((KFA.GE.1.AND.KFA.LE.6).OR.(KFA.GE.11.AND.KFA.LE.16)) THEN
37929 IF(K(I,2).GT.0) THEN
37930 IF(I1.EQ.0) THEN
37931 I1=I
37932 ELSEIF(I3.EQ.0) THEN
37933 I3=I
37934 ELSE
37935 CALL PYERRM(16,'(PY4FRM:) more than two fermions')
37936 ENDIF
37937 ELSE
37938 IF(I2.EQ.0) THEN
37939 I2=I
37940 ELSEIF(I4.EQ.0) THEN
37941 I4=I
37942 ELSE
37943 CALL PYERRM(16,'(PY4FRM:) more than two antifermions')
37944 ENDIF
37945 ENDIF
37946 ENDIF
37947 100 CONTINUE
37948
37949
37950 IF(I3.EQ.0.OR.I4.EQ.0) THEN
37951 CALL PYERRM(16,'(PY4FRM:) event contains too few fermions')
37952 ENDIF
37953 IF(I2.LT.I1.OR.I3.LT.I2.OR.I4.LT.I3) THEN
37954 CALL PYERRM(6,'(PY4FRM:) fermions arranged in wrong order')
37955 ENDIF
37956
37957
37958 IF(IABS(K(I1,2)).LT.10.AND.IABS(K(I2,2)).LT.10) THEN
37959 IQL12=1
37960 ELSEIF(IABS(K(I1,2)).GT.10.AND.IABS(K(I2,2)).GT.10) THEN
37961 IQL12=2
37962 ELSE
37963 CALL PYERRM(16,'(PY4FRM:) first fermion pair inconsistent')
37964 ENDIF
37965 IF(IABS(K(I3,2)).LT.10.AND.IABS(K(I4,2)).LT.10) THEN
37966 IQL34=1
37967 ELSEIF(IABS(K(I3,2)).GT.10.AND.IABS(K(I4,2)).GT.10) THEN
37968 IQL34=2
37969 ELSE
37970 CALL PYERRM(16,'(PY4FRM:) second fermion pair inconsistent')
37971 ENDIF
37972
37973
37974 MSTJ(41)=2
37975 IF(IRAD.EQ.0) MSTJ(41)=1
37976
37977
37978 IP1=I1
37979 IP2=I2
37980 IP3=I3
37981 IP4=I4
37982 IF(IQL12.EQ.IQL34) THEN
37983 R1SQ=A1SQ
37984 R2SQ=A2SQ
37985 DELTA=ATOTSQ-A1SQ-A2SQ
37986 IF(ISTRAT.EQ.1) THEN
37987 IF(DELTA.GT.0D0) R1SQ=R1SQ+DELTA
37988 IF(DELTA.LT.0D0) R2SQ=MAX(0D0,R2SQ+DELTA)
37989 ELSEIF(ISTRAT.EQ.2) THEN
37990 IF(DELTA.GT.0D0) R2SQ=R2SQ+DELTA
37991 IF(DELTA.LT.0D0) R1SQ=MAX(0D0,R1SQ+DELTA)
37992 ENDIF
37993 IF(R2SQ.GT.PYR(0)*(R1SQ+R2SQ)) THEN
37994 IP2=I4
37995 IP4=I2
37996 ENDIF
37997 ENDIF
37998
37999
38000 IF(IQL12.EQ.1) THEN
38001 IJOIN(1)=IP1
38002 IJOIN(2)=IP2
38003 CALL PYJOIN(2,IJOIN)
38004 ENDIF
38005 IF(IQL12.EQ.1.OR.IRAD.EQ.1) THEN
38006 PM12S=(P(IP1,4)+P(IP2,4))**2-(P(IP1,1)+P(IP2,1))**2-
38007 & (P(IP1,2)+P(IP2,2))**2-(P(IP1,3)+P(IP2,3))**2
38008 CALL PYSHOW(IP1,IP2,SQRT(MAX(0D0,PM12S)))
38009 ENDIF
38010 IF(IQL34.EQ.1) THEN
38011 IJOIN(1)=IP3
38012 IJOIN(2)=IP4
38013 CALL PYJOIN(2,IJOIN)
38014 ENDIF
38015 IF(IQL34.EQ.1.OR.IRAD.EQ.1) THEN
38016 PM34S=(P(IP3,4)+P(IP4,4))**2-(P(IP3,1)+P(IP4,1))**2-
38017 & (P(IP3,2)+P(IP4,2))**2-(P(IP3,3)+P(IP4,3))**2
38018 CALL PYSHOW(IP3,IP4,SQRT(MAX(0D0,PM34S)))
38019 ENDIF
38020
38021
38022 IF(ITAU.EQ.0) THEN
38023 NTAU=0
38024 DO 110 I=1,N
38025 IF(IABS(K(I,2)).EQ.15.AND.K(I,1).EQ.1) THEN
38026 NTAU=NTAU+1
38027 INTAU(NTAU)=I
38028 K(I,1)=11
38029 ENDIF
38030 110 CONTINUE
38031 ENDIF
38032 CALL PYEXEC
38033 IF(ITAU.EQ.0) THEN
38034 DO 120 I=1,NTAU
38035 K(INTAU(I),1)=1
38036 120 CONTINUE
38037 ENDIF
38038
38039
38040 IF(ICOM.EQ.0) THEN
38041 MSTU(28)=0
38042 CALL PYHEPC(1)
38043 ENDIF
38044
38045 END
38046
38047
38048
38049
38050
38051
38052
38053 SUBROUTINE PY6FRM(P12,P13,P21,P23,P31,P32,PTOP,IRAD,ITAU,ICOM)
38054
38055
38056 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
38057 IMPLICIT INTEGER(I-N)
38058 INTEGER PYK,PYCHGE,PYCOMP
38059
38060 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
38061 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
38062 SAVE /PYJETS/,/PYDAT1/
38063
38064 DIMENSION IJOIN(2),INTAU(6),BETA(3),BETAO(3),BETAN(3)
38065
38066
38067 IF(ICOM.EQ.0) THEN
38068 MSTU(28)=0
38069 CALL PYHEPC(2)
38070 ENDIF
38071
38072
38073 I1=0
38074 I2=0
38075 I3=0
38076 I4=0
38077 I5=0
38078 I6=0
38079 DO 100 I=1,N
38080 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 100
38081 KFA=IABS(K(I,2))
38082 IF((KFA.GE.1.AND.KFA.LE.6).OR.(KFA.GE.11.AND.KFA.LE.16)) THEN
38083 IF(K(I,2).GT.0) THEN
38084 IF(I1.EQ.0) THEN
38085 I1=I
38086 ELSEIF(I3.EQ.0) THEN
38087 I3=I
38088 ELSEIF(I5.EQ.0) THEN
38089 I5=I
38090 ELSE
38091 CALL PYERRM(16,'(PY6FRM:) more than three fermions')
38092 ENDIF
38093 ELSE
38094 IF(I2.EQ.0) THEN
38095 I2=I
38096 ELSEIF(I4.EQ.0) THEN
38097 I4=I
38098 ELSEIF(I6.EQ.0) THEN
38099 I6=I
38100 ELSE
38101 CALL PYERRM(16,'(PY6FRM:) more than three antifermions')
38102 ENDIF
38103 ENDIF
38104 ENDIF
38105 100 CONTINUE
38106
38107
38108 IF(I5.EQ.0.OR.I6.EQ.0) THEN
38109 CALL PYERRM(16,'(PY6FRM:) event contains too few fermions')
38110 ENDIF
38111 IF(I2.LT.I1.OR.I3.LT.I2.OR.I4.LT.I3.OR.I5.LT.I4.OR.I6.LT.I5) THEN
38112 CALL PYERRM(6,'(PY6FRM:) fermions arranged in wrong order')
38113 ENDIF
38114
38115
38116 IF(IABS(K(I1,2)).LT.10.AND.IABS(K(I2,2)).LT.10) THEN
38117 IQL12=1
38118 ELSEIF(IABS(K(I1,2)).GT.10.AND.IABS(K(I2,2)).GT.10) THEN
38119 IQL12=2
38120 ELSE
38121 CALL PYERRM(16,'(PY6FRM:) first fermion pair inconsistent')
38122 ENDIF
38123 IF(IABS(K(I3,2)).LT.10.AND.IABS(K(I4,2)).LT.10) THEN
38124 IQL34=1
38125 ELSEIF(IABS(K(I3,2)).GT.10.AND.IABS(K(I4,2)).GT.10) THEN
38126 IQL34=2
38127 ELSE
38128 CALL PYERRM(16,'(PY6FRM:) second fermion pair inconsistent')
38129 ENDIF
38130 IF(IABS(K(I5,2)).LT.10.AND.IABS(K(I6,2)).LT.10) THEN
38131 IQL56=1
38132 ELSEIF(IABS(K(I5,2)).GT.10.AND.IABS(K(I6,2)).GT.10) THEN
38133 IQL56=2
38134 ELSE
38135 CALL PYERRM(16,'(PY6FRM:) third fermion pair inconsistent')
38136 ENDIF
38137
38138
38139 MSTJ(41)=2
38140 IF(IRAD.EQ.0) MSTJ(41)=1
38141
38142
38143 P12D=P12
38144 P13D=0D0
38145 IF(IQL34.EQ.IQL56) P13D=P13
38146 P21D=0D0
38147 IF(IQL12.EQ.IQL34) P21D=P21
38148 P23D=0D0
38149 IF(IQL12.EQ.IQL34.AND.IQL12.EQ.IQL56) P23D=P23
38150 P31D=0D0
38151 IF(IQL12.EQ.IQL34.AND.IQL12.EQ.IQL56) P31D=P31
38152 P32D=0D0
38153 IF(IQL12.EQ.IQL56) P32D=P32
38154
38155
38156 ITOP=0
38157 IF(PYR(0).LT.PTOP) THEN
38158 ITOP=1
38159
38160
38161 IT=N+1
38162 ITB=N+2
38163 DO 110 J=1,5
38164 K(IT,J)=0
38165 K(ITB,J)=0
38166 P(IT,J)=P(I1,J)+P(I3,J)+P(I4,J)
38167 P(ITB,J)=P(I2,J)+P(I5,J)+P(I6,J)
38168 V(IT,J)=0D0
38169 V(ITB,J)=0D0
38170 110 CONTINUE
38171 K(IT,1)=1
38172 K(ITB,1)=1
38173 K(IT,2)=6
38174 K(ITB,2)=-6
38175 P(IT,5)=SQRT(MAX(0D0,P(IT,4)**2-P(IT,1)**2-P(IT,2)**2-
38176 & P(IT,3)**2))
38177 P(ITB,5)=SQRT(MAX(0D0,P(ITB,4)**2-P(ITB,1)**2-P(ITB,2)**2-
38178 & P(ITB,3)**2))
38179 N=N+2
38180
38181
38182 IJOIN(1)=IT
38183 IJOIN(2)=ITB
38184 CALL PYJOIN(2,IJOIN)
38185 PMTTS=(P(IT,4)+P(ITB,4))**2-(P(IT,1)+P(ITB,1))**2-
38186 & (P(IT,2)+P(ITB,2))**2-(P(IT,3)+P(ITB,3))**2
38187 CALL PYSHOW(IT,ITB,SQRT(MAX(0D0,PMTTS)))
38188
38189
38190 ITNEW=IT
38191 ITBNEW=ITB
38192 DO 120 I=ITB+1,N
38193 IF(K(I,2).EQ.6) ITNEW=I
38194 IF(K(I,2).EQ.-6) ITBNEW=I
38195 120 CONTINUE
38196
38197
38198 DO 200 IT1=1,2
38199 IF(IT1.EQ.1) THEN
38200 ITO=IT
38201 ITN=ITNEW
38202 IBO=I1
38203 IW1=I3
38204 IW2=I4
38205 ELSE
38206 ITO=ITB
38207 ITN=ITBNEW
38208 IBO=I2
38209 IW1=I5
38210 IW2=I6
38211 ENDIF
38212 IF(IABS(K(IBO,2)).NE.5) CALL PYERRM(6,
38213 & '(PY6FRM:) not b in t decay')
38214
38215
38216 DO 130 J=1,3
38217 BETAO(J)=P(ITO,J)/P(ITO,4)
38218 BETAN(J)=P(ITN,J)/P(ITN,4)
38219 130 CONTINUE
38220
38221
38222 N=N+1
38223 IB=N
38224 K(IB,1)=3
38225 K(IB,2)=K(IBO,2)
38226 K(IB,3)=ITN
38227 DO 140 J=1,5
38228 P(IB,J)=P(IBO,J)
38229 V(IB,J)=0D0
38230 140 CONTINUE
38231 CALL PYROBO(IB,IB,0D0,0D0,-BETAO(1),-BETAO(2),-BETAO(3))
38232 CALL PYROBO(IB,IB,0D0,0D0,BETAN(1),BETAN(2),BETAN(3))
38233 K(IB,4)=MSTU(5)*ITN
38234 K(IB,5)=MSTU(5)*ITN
38235 K(ITN,4)=K(ITN,4)+IB
38236 K(ITN,5)=K(ITN,5)+IB
38237 K(ITN,1)=K(ITN,1)+10
38238 K(IBO,1)=K(IBO,1)+10
38239
38240
38241 N=N+1
38242 IW=N
38243 DO 150 J=1,5
38244 K(IW,J)=0
38245 V(IW,J)=0D0
38246 150 CONTINUE
38247 K(IW,1)=1
38248 KCHW=PYCHGE(K(IW1,2))+PYCHGE(K(IW2,2))
38249 IF(IABS(KCHW).EQ.3) THEN
38250 K(IW,2)=ISIGN(24,KCHW)
38251 ELSE
38252 CALL PYERRM(16,'(PY6FRM:) fermion pair inconsistent with W')
38253 ENDIF
38254 K(IW,3)=IW1
38255
38256
38257 DO 160 J=1,4
38258 P(IW,J)=P(IW1,J)+P(IW2,J)
38259 160 CONTINUE
38260 P(IW,5)=SQRT(MAX(0D0,P(IW,4)**2-P(IW,1)**2-P(IW,2)**2-
38261 & P(IW,3)**2))
38262 CALL PYROBO(IW,IW,0D0,0D0,-BETAO(1),-BETAO(2),-BETAO(3))
38263 CALL PYROBO(IW,IW,0D0,0D0,BETAN(1),BETAN(2),BETAN(3))
38264
38265
38266 DO 170 J=1,3
38267 BETA(J)=(P(IB,J)+P(IW,J))/(P(IB,4)+P(IW,4))
38268 170 CONTINUE
38269 CALL PYROBO(IB,IB,0D0,0D0,-BETA(1),-BETA(2),-BETA(3))
38270 CALL PYROBO(IW,IW,0D0,0D0,-BETA(1),-BETA(2),-BETA(3))
38271
38272
38273 PMTS=(P(IB,4)+P(IW,4))**2-(P(IB,1)+P(IW,1))**2-
38274 & (P(IB,2)+P(IW,2))**2-(P(IB,3)+P(IW,3))**2
38275 CALL PYSHOW(IB,IW,SQRT(MAX(0D0,PMTS)))
38276 DO 180 I=IW,N
38277 IF(IABS(K(I,2)).EQ.24) IWM=I
38278 180 CONTINUE
38279
38280
38281 DO 190 J=1,5
38282 K(N+1,J)=K(IW1,J)
38283 P(N+1,J)=P(IW1,J)
38284 V(N+1,J)=V(IW1,J)
38285 K(N+2,J)=K(IW2,J)
38286 P(N+2,J)=P(IW2,J)
38287 V(N+2,J)=V(IW2,J)
38288 190 CONTINUE
38289 K(IW1,1)=K(IW1,1)+10
38290 K(IW2,1)=K(IW2,1)+10
38291 K(IWM,1)=K(IWM,1)+10
38292 K(IWM,4)=N+1
38293 K(IWM,5)=N+2
38294 K(N+1,3)=IWM
38295 K(N+2,3)=IWM
38296 IF(IT1.EQ.1) THEN
38297 I3=N+1
38298 I4=N+2
38299 ELSE
38300 I5=N+1
38301 I6=N+2
38302 ENDIF
38303 N=N+2
38304
38305
38306
38307 CALL PYROBO(N-1,N,0D0,0D0,-BETAO(1),-BETAO(2),-BETAO(3))
38308 CALL PYROBO(N-1,N,0D0,0D0,BETAN(1),BETAN(2),BETAN(3))
38309 CALL PYROBO(N-1,N,0D0,0D0,-BETA(1),-BETA(2),-BETA(3))
38310 CALL PYROBO(N-1,N,0D0,0D0,-P(IW,1)/P(IW,4),
38311 & -P(IW,2)/P(IW,4),-P(IW,3)/P(IW,4))
38312 CALL PYROBO(N-1,N,0D0,0D0,P(IWM,1)/P(IWM,4),
38313 & P(IWM,2)/P(IWM,4),P(IWM,3)/P(IWM,4))
38314 CALL PYROBO(IB,IB,0D0,0D0,BETA(1),BETA(2),BETA(3))
38315 CALL PYROBO(IW,N,0D0,0D0,BETA(1),BETA(2),BETA(3))
38316 200 CONTINUE
38317 ENDIF
38318
38319
38320 IP1=I1
38321 IP3=I3
38322 IP5=I5
38323 PRN=PYR(0)*(P12D+P13D+P21D+P23D+P31D+P32D)
38324 IF(ITOP.EQ.1.OR.PRN.LT.P12D) THEN
38325 IP2=I2
38326 IP4=I4
38327 IP6=I6
38328 ELSEIF(PRN.LT.P12D+P13D) THEN
38329 IP2=I2
38330 IP4=I6
38331 IP6=I4
38332 ELSEIF(PRN.LT.P12D+P13D+P21D) THEN
38333 IP2=I4
38334 IP4=I2
38335 IP6=I6
38336 ELSEIF(PRN.LT.P12D+P13D+P21D+P23D) THEN
38337 IP2=I4
38338 IP4=I6
38339 IP6=I2
38340 ELSEIF(PRN.LT.P12D+P13D+P21D+P23D+P31D) THEN
38341 IP2=I6
38342 IP4=I2
38343 IP6=I4
38344 ELSE
38345 IP2=I6
38346 IP4=I4
38347 IP6=I2
38348 ENDIF
38349
38350
38351
38352 IF(ITOP.EQ.0) THEN
38353 IF(IQL12.EQ.1) THEN
38354 IJOIN(1)=IP1
38355 IJOIN(2)=IP2
38356 CALL PYJOIN(2,IJOIN)
38357 ENDIF
38358 IF(IQL12.EQ.1.OR.IRAD.EQ.1) THEN
38359 PM12S=(P(IP1,4)+P(IP2,4))**2-(P(IP1,1)+P(IP2,1))**2-
38360 & (P(IP1,2)+P(IP2,2))**2-(P(IP1,3)+P(IP2,3))**2
38361 CALL PYSHOW(IP1,IP2,SQRT(MAX(0D0,PM12S)))
38362 ENDIF
38363 ENDIF
38364 IF(IQL34.EQ.1) THEN
38365 IJOIN(1)=IP3
38366 IJOIN(2)=IP4
38367 CALL PYJOIN(2,IJOIN)
38368 ENDIF
38369 IF(IQL34.EQ.1.OR.IRAD.EQ.1) THEN
38370 PM34S=(P(IP3,4)+P(IP4,4))**2-(P(IP3,1)+P(IP4,1))**2-
38371 & (P(IP3,2)+P(IP4,2))**2-(P(IP3,3)+P(IP4,3))**2
38372 CALL PYSHOW(IP3,IP4,SQRT(MAX(0D0,PM34S)))
38373 ENDIF
38374 IF(IQL56.EQ.1) THEN
38375 IJOIN(1)=IP5
38376 IJOIN(2)=IP6
38377 CALL PYJOIN(2,IJOIN)
38378 ENDIF
38379 IF(IQL56.EQ.1.OR.IRAD.EQ.1) THEN
38380 PM56S=(P(IP5,4)+P(IP6,4))**2-(P(IP5,1)+P(IP6,1))**2-
38381 & (P(IP5,2)+P(IP6,2))**2-(P(IP5,3)+P(IP6,3))**2
38382 CALL PYSHOW(IP5,IP6,SQRT(MAX(0D0,PM56S)))
38383 ENDIF
38384
38385
38386 IF(ITAU.EQ.0) THEN
38387 NTAU=0
38388 DO 210 I=1,N
38389 IF(IABS(K(I,2)).EQ.15.AND.K(I,1).EQ.1) THEN
38390 NTAU=NTAU+1
38391 INTAU(NTAU)=I
38392 K(I,1)=11
38393 ENDIF
38394 210 CONTINUE
38395 ENDIF
38396 CALL PYEXEC
38397 IF(ITAU.EQ.0) THEN
38398 DO 220 I=1,NTAU
38399 K(INTAU(I),1)=1
38400 220 CONTINUE
38401 ENDIF
38402
38403
38404 IF(ICOM.EQ.0) THEN
38405 MSTU(28)=0
38406 CALL PYHEPC(1)
38407 ENDIF
38408
38409 END
38410
38411
38412
38413
38414
38415
38416
38417 SUBROUTINE PY4JET(PMAX,IRAD,ICOM)
38418
38419
38420 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
38421 IMPLICIT INTEGER(I-N)
38422 INTEGER PYK,PYCHGE,PYCOMP
38423
38424 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
38425 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
38426 SAVE /PYJETS/,/PYDAT1/
38427
38428 DIMENSION IJOIN(2),PTOT(4),BETA(3)
38429
38430
38431 IF(ICOM.EQ.0) THEN
38432 MSTU(28)=0
38433 CALL PYHEPC(2)
38434 ENDIF
38435
38436
38437 I1=0
38438 I2=0
38439 I3=0
38440 I4=0
38441 DO 100 I=1,N
38442 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 100
38443 KFA=IABS(K(I,2))
38444 IF((KFA.GE.1.AND.KFA.LE.6).OR.KFA.EQ.21) THEN
38445 IF(K(I,2).GT.0.AND.K(I,2).LE.6) THEN
38446 IF(I1.EQ.0) THEN
38447 I1=I
38448 ELSEIF(I3.EQ.0) THEN
38449 I3=I
38450 ELSE
38451 CALL PYERRM(16,'(PY4JET:) more than two quarks')
38452 ENDIF
38453 ELSEIF(K(I,2).LT.0) THEN
38454 IF(I2.EQ.0) THEN
38455 I2=I
38456 ELSEIF(I4.EQ.0) THEN
38457 I4=I
38458 ELSE
38459 CALL PYERRM(16,'(PY4JET:) more than two antiquarks')
38460 ENDIF
38461 ELSE
38462 IF(I3.EQ.0) THEN
38463 I3=I
38464 ELSEIF(I4.EQ.0) THEN
38465 I4=I
38466 ELSE
38467 CALL PYERRM(16,'(PY4JET:) more than two gluons')
38468 ENDIF
38469 ENDIF
38470 ENDIF
38471 100 CONTINUE
38472
38473
38474 IF(I1.EQ.0.OR.I2.EQ.0.OR.I3.EQ.0.OR.I4.EQ.0) THEN
38475 CALL PYERRM(16,'(PY4JET:) event contains too few partons')
38476 ENDIF
38477 IF(I2.LT.I1.OR.I3.LT.I2.OR.I4.LT.I3) THEN
38478 CALL PYERRM(6,'(PY4JET:) partons arranged in wrong order')
38479 ENDIF
38480
38481
38482 IF(IABS(K(I3,2)).LT.10.AND.IABS(K(I4,2)).LT.10) THEN
38483 IQG34=1
38484 ELSEIF(K(I3,2).EQ.21.AND.K(I4,2).EQ.21) THEN
38485 IQG34=2
38486 ELSE
38487 CALL PYERRM(16,'(PY4JET:) second parton pair inconsistent')
38488 ENDIF
38489
38490
38491 DO 110 J=1,4
38492 PTOT(J)=P(I1,J)+P(I2,J)+P(I3,J)+P(I4,J)
38493 110 CONTINUE
38494 ECM=SQRT(MAX(0D0,PTOT(4)**2-PTOT(1)**2-PTOT(2)**2-PTOT(3)**2))
38495 DO 120 J=1,3
38496 BETA(J)=PTOT(J)/PTOT(4)
38497 120 CONTINUE
38498 CALL PYROBO(I1,I1,0D0,0D0,-BETA(1),-BETA(2),-BETA(3))
38499 CALL PYROBO(I2,I2,0D0,0D0,-BETA(1),-BETA(2),-BETA(3))
38500 CALL PYROBO(I3,I3,0D0,0D0,-BETA(1),-BETA(2),-BETA(3))
38501 CALL PYROBO(I4,I4,0D0,0D0,-BETA(1),-BETA(2),-BETA(3))
38502 NSAV=N
38503
38504
38505 IF(IQG34.EQ.1) THEN
38506 W1=PY4JTW(0,I1,I3,I4)
38507 W2=PY4JTW(0,I2,I3,I4)
38508 IF(W1.GT.PYR(0)*(W1+W2)) THEN
38509 CALL PY4JTS(0,I1,I3,I4,I2,QMAX)
38510 ELSE
38511 CALL PY4JTS(0,I2,I3,I4,I1,QMAX)
38512 ENDIF
38513
38514
38515 ELSE
38516 W1=PY4JTW(I1,I3,I2,I4)
38517 W2=PY4JTW(I1,I4,I2,I3)
38518 W3=PY4JTW(0,I3,I1,I4)
38519 W4=PY4JTW(0,I4,I1,I3)
38520 W5=PY4JTW(0,I3,I2,I4)
38521 W6=PY4JTW(0,I4,I2,I3)
38522 W7=PY4JTW(0,I1,I3,I4)
38523 W8=PY4JTW(0,I2,I3,I4)
38524 WR=(W1+W2+W3+W4+W5+W6+W7+W8)*PYR(0)
38525 IF(W1.GT.WR) THEN
38526 CALL PY4JTS(I1,I3,I2,I4,0,QMAX)
38527 ELSEIF(W1+W2.GT.WR) THEN
38528 CALL PY4JTS(I1,I4,I2,I3,0,QMAX)
38529 ELSEIF(W1+W2+W3.GT.WR) THEN
38530 CALL PY4JTS(0,I3,I1,I4,I2,QMAX)
38531 ELSEIF(W1+W2+W3+W4.GT.WR) THEN
38532 CALL PY4JTS(0,I4,I1,I3,I2,QMAX)
38533 ELSEIF(W1+W2+W3+W4+W5.GT.WR) THEN
38534 CALL PY4JTS(0,I3,I2,I4,I1,QMAX)
38535 ELSEIF(W1+W2+W3+W4+W5+W6.GT.WR) THEN
38536 CALL PY4JTS(0,I4,I2,I3,I1,QMAX)
38537 ELSEIF(W1+W2+W3+W4+W5+W6+W7.GT.WR) THEN
38538 CALL PY4JTS(0,I1,I3,I4,I2,QMAX)
38539 ELSE
38540 CALL PY4JTS(0,I2,I3,I4,I1,QMAX)
38541 ENDIF
38542 ENDIF
38543
38544
38545 CALL PYROBO(I1,I1,0D0,0D0,BETA(1),BETA(2),BETA(3))
38546 CALL PYROBO(I2,I2,0D0,0D0,BETA(1),BETA(2),BETA(3))
38547 CALL PYROBO(I3,I3,0D0,0D0,BETA(1),BETA(2),BETA(3))
38548 CALL PYROBO(I4,I4,0D0,0D0,BETA(1),BETA(2),BETA(3))
38549 K(I1,1)=K(I1,1)+10
38550 K(I2,1)=K(I2,1)+10
38551 K(I3,1)=K(I3,1)+10
38552 K(I4,1)=K(I4,1)+10
38553
38554
38555 PHI=PYANGL(P(NSAV+1,1),P(NSAV+1,2))
38556 CALL PYROBO(NSAV+1,NSAV+6,0D0,-PHI,0D0,0D0,0D0)
38557 THE=PYANGL(P(NSAV+1,3),P(NSAV+1,1))
38558 CALL PYROBO(NSAV+1,NSAV+6,-THE,0D0,0D0,0D0,0D0)
38559
38560
38561 DO 140 I=N+1,N+2
38562 DO 130 J=1,5
38563 K(I,J)=0
38564 P(I,J)=0D0
38565 V(I,J)=V(I1,J)
38566 130 CONTINUE
38567 K(I,1)=1
38568 K(I,2)=K(I-6,2)
38569 140 CONTINUE
38570 IF(K(NSAV+1,2).EQ.K(I1,2)) THEN
38571 K(N+1,3)=I1
38572 P(N+1,5)=P(I1,5)
38573 K(N+2,3)=I2
38574 P(N+2,5)=P(I2,5)
38575 ELSE
38576 K(N+1,3)=I2
38577 P(N+1,5)=P(I2,5)
38578 K(N+2,3)=I1
38579 P(N+2,5)=P(I1,5)
38580 ENDIF
38581 PABS=SQRT(MAX(0D0,(ECM**2-P(N+1,5)**2-P(N+2,5)**2)**2-
38582 &(2D0*P(N+1,5)*P(N+2,5))**2))/(2D0*ECM)
38583 P(N+1,3)=PABS
38584 P(N+1,4)=SQRT(PABS**2+P(N+1,5)**2)
38585 P(N+2,3)=-PABS
38586 P(N+2,4)=SQRT(PABS**2+P(N+2,5)**2)
38587 N=N+2
38588
38589
38590
38591 MSTJ(41)=2
38592 IF(IRAD.EQ.0) MSTJ(41)=1
38593 IJOIN(1)=N-1
38594 IJOIN(2)=N
38595 CALL PYJOIN(2,IJOIN)
38596
38597
38598 IF(PMAX.LT.PARJ(82)) THEN
38599 PQMAX=QMAX
38600 ELSE
38601 PQMAX=PMAX
38602 ENDIF
38603 CALL PYSHOW(NSAV+1,-8,PQMAX)
38604
38605
38606 CALL PYROBO(NSAV+1,N,THE,PHI,BETA(1),BETA(2),BETA(3))
38607
38608
38609 CALL PYEXEC
38610
38611
38612 IF(ICOM.EQ.0) THEN
38613 MSTU(28)=0
38614 CALL PYHEPC(1)
38615 ENDIF
38616
38617 RETURN
38618 END
38619
38620
38621
38622
38623
38624
38625 FUNCTION PY4JTW(IA1,IA2,IA3,IA4)
38626
38627
38628 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
38629 IMPLICIT INTEGER(I-N)
38630 INTEGER PYK,PYCHGE,PYCOMP
38631
38632 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
38633 SAVE /PYJETS/
38634
38635
38636
38637 IF(IA1.NE.0) THEN
38638 DO 100 J=1,4
38639 P(N+1,J)=P(IA1,J)+P(IA2,J)
38640 P(N+2,J)=P(IA3,J)+P(IA4,J)
38641 100 CONTINUE
38642 P(N+1,5)=SQRT(MAX(0D0,P(N+1,4)**2-P(N+1,1)**2-P(N+1,2)**2-
38643 & P(N+1,3)**2))
38644 P(N+2,5)=SQRT(MAX(0D0,P(N+2,4)**2-P(N+2,1)**2-P(N+2,2)**2-
38645 & P(N+2,3)**2))
38646 Z1=P(IA1,4)/P(N+1,4)
38647 WT1=(4D0/3D0)*((1D0+Z1**2)/(1D0-Z1))/(P(N+1,5)**2-P(IA1,5)**2)
38648 Z2=P(IA3,4)/P(N+2,4)
38649 WT2=(4D0/3D0)*((1D0+Z2**2)/(1D0-Z2))/(P(N+2,5)**2-P(IA3,5)**2)
38650
38651
38652
38653 ELSE
38654 DO 110 J=1,4
38655 P(N+2,J)=P(IA3,J)+P(IA4,J)
38656 P(N+1,J)=P(N+2,J)+P(IA2,J)
38657 110 CONTINUE
38658 P(N+1,5)=SQRT(MAX(0D0,P(N+1,4)**2-P(N+1,1)**2-P(N+1,2)**2-
38659 & P(N+1,3)**2))
38660 P(N+2,5)=SQRT(MAX(0D0,P(N+2,4)**2-P(N+2,1)**2-P(N+2,2)**2-
38661 & P(N+2,3)**2))
38662 IF(K(IA2,2).EQ.21) THEN
38663 Z1=P(N+2,4)/P(N+1,4)
38664 WT1=(4D0/3D0)*((1D0+Z1**2)/(1D0-Z1))/(P(N+1,5)**2-
38665 & P(IA3,5)**2)
38666 ELSE
38667 Z1=P(IA2,4)/P(N+1,4)
38668 WT1=(4D0/3D0)*((1D0+Z1**2)/(1D0-Z1))/(P(N+1,5)**2-
38669 & P(IA2,5)**2)
38670 ENDIF
38671 Z2=P(IA3,4)/P(N+2,4)
38672 IF(K(IA2,2).EQ.21) THEN
38673 WT2=(4D0/3D0)*((1D0+Z2**2)/(1D0-Z2))/(P(N+2,5)**2-
38674 & P(IA3,5)**2)
38675 ELSEIF(K(IA3,2).EQ.21) THEN
38676 WT2=3D0*((1D0-Z2*(1D0-Z2))**2/(Z2*(1D0-Z2)))/P(N+2,5)**2
38677 ELSE
38678 WT2=0.5D0*(Z2**2+(1D0-Z2)**2)
38679 ENDIF
38680 ENDIF
38681
38682
38683 PY4JTW=WT1*WT2
38684
38685 RETURN
38686 END
38687
38688
38689
38690
38691
38692
38693 SUBROUTINE PY4JTS(IA1,IA2,IA3,IA4,IA5,QMAX)
38694
38695
38696 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
38697 IMPLICIT INTEGER(I-N)
38698 INTEGER PYK,PYCHGE,PYCOMP
38699
38700 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
38701 SAVE /PYJETS/
38702
38703
38704 DO 110 I=N+1,N+6
38705 DO 100 J=1,5
38706 K(I,J)=0
38707 V(I,J)=V(IA2,J)
38708 100 CONTINUE
38709 K(I,1)=16
38710 110 CONTINUE
38711
38712
38713
38714 IF(IA1.NE.0) THEN
38715
38716
38717 K(N+1,2)=K(IA1,2)
38718 K(N+2,2)=K(IA3,2)
38719 K(N+3,2)=K(IA1,2)
38720 K(N+4,2)=K(IA2,2)
38721 K(N+5,2)=K(IA3,2)
38722 K(N+6,2)=K(IA4,2)
38723 K(N+1,3)=IA1
38724 K(N+1,4)=N+3
38725 K(N+1,5)=N+4
38726 K(N+2,3)=IA3
38727 K(N+2,4)=N+5
38728 K(N+2,5)=N+6
38729 K(N+3,3)=N+1
38730 K(N+4,3)=N+1
38731 K(N+5,3)=N+2
38732 K(N+6,3)=N+2
38733
38734
38735 DO 120 J=1,5
38736 P(N+1,J)=P(IA1,J)+P(IA2,J)
38737 P(N+2,J)=P(IA3,J)+P(IA4,J)
38738 P(N+3,J)=P(IA1,J)
38739 P(N+4,J)=P(IA2,J)
38740 P(N+5,J)=P(IA3,J)
38741 P(N+6,J)=P(IA4,J)
38742 120 CONTINUE
38743 P(N+1,5)=SQRT(MAX(0D0,P(N+1,4)**2-P(N+1,1)**2-P(N+1,2)**2-
38744 & P(N+1,3)**2))
38745 P(N+2,5)=SQRT(MAX(0D0,P(N+2,4)**2-P(N+2,1)**2-P(N+2,2)**2-
38746 & P(N+2,3)**2))
38747 QMAX=MIN(P(N+1,5),P(N+2,5))
38748
38749
38750
38751
38752 ELSEIF(K(IA2,2).EQ.21) THEN
38753
38754
38755 K(N+1,2)=K(IA3,2)
38756 K(N+2,2)=K(IA5,2)
38757 K(N+3,2)=K(IA3,2)
38758 K(N+4,2)=K(IA2,2)
38759 K(N+5,2)=K(IA3,2)
38760 K(N+6,2)=K(IA4,2)
38761 K(N+1,3)=IA3
38762 K(N+1,4)=N+3
38763 K(N+1,5)=N+4
38764 K(N+2,3)=IA5
38765 K(N+3,3)=N+1
38766 K(N+3,4)=N+5
38767 K(N+3,5)=N+6
38768 K(N+4,3)=N+1
38769 K(N+5,3)=N+3
38770 K(N+6,3)=N+3
38771
38772
38773 DO 130 J=1,5
38774 P(N+1,J)=P(IA2,J)+P(IA3,J)+P(IA4,J)
38775 P(N+2,J)=P(IA5,J)
38776 P(N+3,J)=P(IA3,J)+P(IA4,J)
38777 P(N+4,J)=P(IA2,J)
38778 P(N+5,J)=P(IA3,J)
38779 P(N+6,J)=P(IA4,J)
38780 130 CONTINUE
38781 P(N+1,5)=SQRT(MAX(0D0,P(N+1,4)**2-P(N+1,1)**2-P(N+1,2)**2-
38782 & P(N+1,3)**2))
38783 P(N+3,5)=SQRT(MAX(0D0,P(N+3,4)**2-P(N+3,1)**2-P(N+3,2)**2-
38784 & P(N+3,3)**2))
38785 QMAX=P(N+3,5)
38786
38787
38788
38789
38790 ELSE
38791
38792
38793 K(N+1,2)=K(IA2,2)
38794 K(N+2,2)=K(IA5,2)
38795 K(N+3,2)=K(IA2,2)
38796 K(N+4,2)=21
38797 K(N+5,2)=K(IA3,2)
38798 K(N+6,2)=K(IA4,2)
38799 K(N+1,3)=IA2
38800 K(N+1,4)=N+3
38801 K(N+1,5)=N+4
38802 K(N+2,3)=IA5
38803 K(N+3,3)=N+1
38804 K(N+4,3)=N+1
38805 K(N+4,4)=N+5
38806 K(N+4,5)=N+6
38807 K(N+5,3)=N+4
38808 K(N+6,3)=N+4
38809
38810
38811 DO 140 J=1,5
38812 P(N+1,J)=P(IA2,J)+P(IA3,J)+P(IA4,J)
38813 P(N+2,J)=P(IA5,J)
38814 P(N+3,J)=P(IA2,J)
38815 P(N+4,J)=P(IA3,J)+P(IA4,J)
38816 P(N+5,J)=P(IA3,J)
38817 P(N+6,J)=P(IA4,J)
38818 140 CONTINUE
38819 P(N+1,5)=SQRT(MAX(0D0,P(N+1,4)**2-P(N+1,1)**2-P(N+1,2)**2-
38820 & P(N+1,3)**2))
38821 P(N+4,5)=SQRT(MAX(0D0,P(N+4,4)**2-P(N+4,1)**2-P(N+4,2)**2-
38822 & P(N+4,3)**2))
38823 QMAX=P(N+4,5)
38824
38825 ENDIF
38826 N=N+6
38827
38828 RETURN
38829 END
38830
38831
38832
38833
38834
38835
38836
38837 SUBROUTINE PYJOIN(NJOIN,IJOIN)
38838
38839
38840 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
38841 IMPLICIT INTEGER(I-N)
38842 INTEGER PYK,PYCHGE,PYCOMP
38843
38844 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
38845 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
38846 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
38847 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
38848
38849 DIMENSION IJOIN(*)
38850
38851
38852 IF(NJOIN.LT.2) GOTO 120
38853 KQSUM=0
38854 DO 100 IJN=1,NJOIN
38855 I=IJOIN(IJN)
38856 IF(I.LE.0.OR.I.GT.N) GOTO 120
38857 IF(K(I,1).LT.1.OR.K(I,1).GT.3) GOTO 120
38858 KC=PYCOMP(K(I,2))
38859 IF(KC.EQ.0) GOTO 120
38860 KQ=KCHG(KC,2)*ISIGN(1,K(I,2))
38861 IF(KQ.EQ.0) GOTO 120
38862 IF(IJN.NE.1.AND.IJN.NE.NJOIN.AND.KQ.NE.2) GOTO 120
38863 IF(KQ.NE.2) KQSUM=KQSUM+KQ
38864 IF(IJN.EQ.1) KQS=KQ
38865 100 CONTINUE
38866 IF(KQSUM.NE.0) GOTO 120
38867
38868
38869 KCS=(9-KQS)/2
38870 IF(KQS.EQ.2) KCS=INT(4.5D0+PYR(0))
38871 DO 110 IJN=1,NJOIN
38872 I=IJOIN(IJN)
38873 K(I,1)=3
38874 IF(IJN.NE.1) IP=IJOIN(IJN-1)
38875 IF(IJN.EQ.1) IP=IJOIN(NJOIN)
38876 IF(IJN.NE.NJOIN) IN=IJOIN(IJN+1)
38877 IF(IJN.EQ.NJOIN) IN=IJOIN(1)
38878 K(I,KCS)=MSTU(5)*IN
38879 K(I,9-KCS)=MSTU(5)*IP
38880 IF(IJN.EQ.1.AND.KQS.NE.2) K(I,9-KCS)=0
38881 IF(IJN.EQ.NJOIN.AND.KQS.NE.2) K(I,KCS)=0
38882 110 CONTINUE
38883
38884
38885 RETURN
38886 120 CALL PYERRM(12,
38887 &'(PYJOIN:) given entries can not be joined by one string')
38888
38889 RETURN
38890 END
38891
38892
38893
38894
38895
38896
38897 SUBROUTINE PYGIVE(CHIN)
38898
38899
38900 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
38901 IMPLICIT INTEGER(I-N)
38902 INTEGER PYK,PYCHGE,PYCOMP
38903
38904 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
38905 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
38906 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
38907 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
38908 COMMON/PYDAT4/CHAF(500,2)
38909 CHARACTER CHAF*16
38910 COMMON/PYDATR/MRPY(6),RRPY(100)
38911 COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
38912 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
38913 COMMON/PYINT1/MINT(400),VINT(400)
38914 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
38915 COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
38916 COMMON/PYINT4/MWID(500),WIDS(500,5)
38917 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
38918 COMMON/PYINT6/PROC(0:500)
38919 CHARACTER PROC*28
38920 COMMON/PYINT7/SIGT(0:6,0:6,0:5)
38921 COMMON/PYINT8/XPVMD(-6:6),XPANL(-6:6),XPANH(-6:6),XPBEH(-6:6),
38922 &XPDIR(-6:6)
38923 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
38924 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYDAT4/,/PYDATR/,
38925 &/PYSUBS/,/PYPARS/,/PYINT1/,/PYINT2/,/PYINT3/,/PYINT4/,
38926 &/PYINT5/,/PYINT6/,/PYINT7/,/PYINT8/,/PYMSSM/
38927
38928 CHARACTER CHIN*(*),CHFIX*104,CHBIT*104,CHOLD*8,CHNEW*8,CHOLD2*28,
38929 &CHNEW2*28,CHNAM*6,CHVAR(49)*6,CHALP(2)*26,CHIND*8,CHINI*10,
38930 &CHINR*16
38931 DIMENSION MSVAR(49,8)
38932
38933
38934
38935 DATA CHVAR/'N','K','P','V','MSTU','PARU','MSTJ','PARJ','KCHG',
38936 &'PMAS','PARF','VCKM','MDCY','MDME','BRAT','KFDP','CHAF','MRPY',
38937 &'RRPY','MSEL','MSUB','KFIN','CKIN','MSTP','PARP','MSTI','PARI',
38938 &'MINT','VINT','ISET','KFPR','COEF','ICOL','XSFX','ISIG','SIGH',
38939 &'MWID','WIDS','NGEN','XSEC','PROC','SIGT','XPVMD','XPANL',
38940 &'XPANH','XPBEH','XPDIR','IMSS','RMSS'/
38941 DATA ((MSVAR(I,J),J=1,8),I=1,49)/ 1,7*0, 1,2,1,4000,1,5,2*0,
38942 &2,2,1,4000,1,5,2*0, 2,2,1,4000,1,5,2*0, 1,1,1,200,4*0,
38943 &2,1,1,200,4*0, 1,1,1,200,4*0, 2,1,1,200,4*0,
38944 &1,2,1,500,1,4,2*0, 2,2,1,500,1,4,2*0, 2,1,1,2000,4*0,
38945 &2,2,1,4,1,4,2*0, 1,2,1,500,1,3,2*0, 1,2,1,4000,1,2,2*0,
38946 &2,1,1,4000,4*0, 1,2,1,4000,1,5,2*0, 3,2,1,500,1,2,2*0,
38947 &1,1,1,6,4*0, 2,1,1,100,4*0,
38948 &1,7*0, 1,1,1,500,4*0, 1,2,1,2,-40,40,2*0, 2,1,1,200,4*0,
38949 &1,1,1,200,4*0, 2,1,1,200,4*0, 1,1,1,200,4*0, 2,1,1,200,4*0,
38950 &1,1,1,400,4*0, 2,1,1,400,4*0, 1,1,1,500,4*0,
38951 &1,2,1,500,1,2,2*0, 2,2,1,500,1,20,2*0, 1,3,1,40,1,4,1,2,
38952 &2,2,1,2,-40,40,2*0, 1,2,1,1000,1,3,2*0, 2,1,1,1000,4*0,
38953 &1,1,1,500,4*0, 2,2,1,500,1,5,2*0, 1,2,0,500,1,3,2*0,
38954 &2,2,0,500,1,3,2*0, 4,1,0,500,4*0, 2,3,0,6,0,6,0,5,
38955 &2,1,-6,6,4*0, 2,1,-6,6,4*0, 2,1,-6,6,4*0,
38956 &2,1,-6,6,4*0, 2,1,-6,6,4*0, 1,1,0,99,4*0, 2,1,0,99,4*0/
38957 DATA CHALP/'abcdefghijklmnopqrstuvwxyz',
38958 &'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
38959
38960
38961 IF(MSTU(12).GE.1) CALL PYLIST(0)
38962 CHBIT=CHIN//' '
38963 LBIT=101
38964 100 LBIT=LBIT-1
38965 IF(CHBIT(LBIT:LBIT).EQ.' ') GOTO 100
38966 LTOT=0
38967 DO 110 LCOM=1,LBIT
38968 IF(CHBIT(LCOM:LCOM).EQ.' ') GOTO 110
38969 LTOT=LTOT+1
38970 CHFIX(LTOT:LTOT)=CHBIT(LCOM:LCOM)
38971 110 CONTINUE
38972 LLOW=0
38973 120 LHIG=LLOW+1
38974 130 LHIG=LHIG+1
38975 IF(LHIG.LE.LTOT.AND.CHFIX(LHIG:LHIG).NE.';') GOTO 130
38976 LBIT=LHIG-LLOW-1
38977 CHBIT(1:LBIT)=CHFIX(LLOW+1:LHIG-1)
38978
38979
38980 LNAM=1
38981 140 LNAM=LNAM+1
38982 IF(CHBIT(LNAM:LNAM).NE.'('.AND.CHBIT(LNAM:LNAM).NE.'='.AND.
38983 &LNAM.LE.6) GOTO 140
38984 CHNAM=CHBIT(1:LNAM-1)//' '
38985 DO 160 LCOM=1,LNAM-1
38986 DO 150 LALP=1,26
38987 IF(CHNAM(LCOM:LCOM).EQ.CHALP(1)(LALP:LALP)) CHNAM(LCOM:LCOM)=
38988 & CHALP(2)(LALP:LALP)
38989 150 CONTINUE
38990 160 CONTINUE
38991 IVAR=0
38992 DO 170 IV=1,49
38993 IF(CHNAM.EQ.CHVAR(IV)) IVAR=IV
38994 170 CONTINUE
38995 IF(IVAR.EQ.0) THEN
38996 CALL PYERRM(18,'(PYGIVE:) do not recognize variable '//CHNAM)
38997 LLOW=LHIG
38998 IF(LLOW.LT.LTOT) GOTO 120
38999 RETURN
39000 ENDIF
39001
39002
39003 I1=0
39004 I2=0
39005 I3=0
39006 NINDX=0
39007 IF(CHBIT(LNAM:LNAM).EQ.'(') THEN
39008 LIND=LNAM
39009 180 LIND=LIND+1
39010 IF(CHBIT(LIND:LIND).NE.')'.AND.CHBIT(LIND:LIND).NE.',') GOTO 180
39011 CHIND=' '
39012 IF((CHBIT(LNAM+1:LNAM+1).EQ.'C'.OR.CHBIT(LNAM+1:LNAM+1).EQ.'c')
39013 & .AND.(IVAR.EQ.9.OR.IVAR.EQ.10.OR.IVAR.EQ.13.OR.IVAR.EQ.17))
39014 & THEN
39015 CHIND(LNAM-LIND+11:8)=CHBIT(LNAM+2:LIND-1)
39016 READ(CHIND,'(I8)') KF
39017 I1=PYCOMP(KF)
39018 ELSEIF(CHBIT(LNAM+1:LNAM+1).EQ.'C'.OR.CHBIT(LNAM+1:LNAM+1).EQ.
39019 & 'c') THEN
39020 CALL PYERRM(18,'(PYGIVE:) not allowed to use C index for '//
39021 & CHNAM)
39022 LLOW=LHIG
39023 IF(LLOW.LT.LTOT) GOTO 120
39024 RETURN
39025 ELSE
39026 CHIND(LNAM-LIND+10:8)=CHBIT(LNAM+1:LIND-1)
39027 READ(CHIND,'(I8)') I1
39028 ENDIF
39029 LNAM=LIND
39030 IF(CHBIT(LNAM:LNAM).EQ.')') LNAM=LNAM+1
39031 NINDX=1
39032 ENDIF
39033 IF(CHBIT(LNAM:LNAM).EQ.',') THEN
39034 LIND=LNAM
39035 190 LIND=LIND+1
39036 IF(CHBIT(LIND:LIND).NE.')'.AND.CHBIT(LIND:LIND).NE.',') GOTO 190
39037 CHIND=' '
39038 CHIND(LNAM-LIND+10:8)=CHBIT(LNAM+1:LIND-1)
39039 READ(CHIND,'(I8)') I2
39040 LNAM=LIND
39041 IF(CHBIT(LNAM:LNAM).EQ.')') LNAM=LNAM+1
39042 NINDX=2
39043 ENDIF
39044 IF(CHBIT(LNAM:LNAM).EQ.',') THEN
39045 LIND=LNAM
39046 200 LIND=LIND+1
39047 IF(CHBIT(LIND:LIND).NE.')'.AND.CHBIT(LIND:LIND).NE.',') GOTO 200
39048 CHIND=' '
39049 CHIND(LNAM-LIND+10:8)=CHBIT(LNAM+1:LIND-1)
39050 READ(CHIND,'(I8)') I3
39051 LNAM=LIND+1
39052 NINDX=3
39053 ENDIF
39054
39055
39056 IERR=0
39057 IF(NINDX.NE.MSVAR(IVAR,2)) IERR=1
39058 IF(NINDX.GE.1.AND.(I1.LT.MSVAR(IVAR,3).OR.I1.GT.MSVAR(IVAR,4)))
39059 &IERR=2
39060 IF(NINDX.GE.2.AND.(I2.LT.MSVAR(IVAR,5).OR.I2.GT.MSVAR(IVAR,6)))
39061 &IERR=3
39062 IF(NINDX.EQ.3.AND.(I3.LT.MSVAR(IVAR,7).OR.I3.GT.MSVAR(IVAR,8)))
39063 &IERR=4
39064 IF(CHBIT(LNAM:LNAM).NE.'=') IERR=5
39065 IF(IERR.GE.1) THEN
39066 CALL PYERRM(18,'(PYGIVE:) unallowed indices for '//
39067 & CHBIT(1:LNAM-1))
39068 LLOW=LHIG
39069 IF(LLOW.LT.LTOT) GOTO 120
39070 RETURN
39071 ENDIF
39072
39073
39074 IF(IVAR.EQ.1) THEN
39075 IOLD=N
39076 ELSEIF(IVAR.EQ.2) THEN
39077 IOLD=K(I1,I2)
39078 ELSEIF(IVAR.EQ.3) THEN
39079 ROLD=P(I1,I2)
39080 ELSEIF(IVAR.EQ.4) THEN
39081 ROLD=V(I1,I2)
39082 ELSEIF(IVAR.EQ.5) THEN
39083 IOLD=MSTU(I1)
39084 ELSEIF(IVAR.EQ.6) THEN
39085 ROLD=PARU(I1)
39086 ELSEIF(IVAR.EQ.7) THEN
39087 IOLD=MSTJ(I1)
39088 ELSEIF(IVAR.EQ.8) THEN
39089 ROLD=PARJ(I1)
39090 ELSEIF(IVAR.EQ.9) THEN
39091 IOLD=KCHG(I1,I2)
39092 ELSEIF(IVAR.EQ.10) THEN
39093 ROLD=PMAS(I1,I2)
39094 ELSEIF(IVAR.EQ.11) THEN
39095 ROLD=PARF(I1)
39096 ELSEIF(IVAR.EQ.12) THEN
39097 ROLD=VCKM(I1,I2)
39098 ELSEIF(IVAR.EQ.13) THEN
39099 IOLD=MDCY(I1,I2)
39100 ELSEIF(IVAR.EQ.14) THEN
39101 IOLD=MDME(I1,I2)
39102 ELSEIF(IVAR.EQ.15) THEN
39103 ROLD=BRAT(I1)
39104 ELSEIF(IVAR.EQ.16) THEN
39105 IOLD=KFDP(I1,I2)
39106 ELSEIF(IVAR.EQ.17) THEN
39107 CHOLD=CHAF(I1,I2)
39108 ELSEIF(IVAR.EQ.18) THEN
39109 IOLD=MRPY(I1)
39110 ELSEIF(IVAR.EQ.19) THEN
39111 ROLD=RRPY(I1)
39112 ELSEIF(IVAR.EQ.20) THEN
39113 IOLD=MSEL
39114 ELSEIF(IVAR.EQ.21) THEN
39115 IOLD=MSUB(I1)
39116 ELSEIF(IVAR.EQ.22) THEN
39117 IOLD=KFIN(I1,I2)
39118 ELSEIF(IVAR.EQ.23) THEN
39119 ROLD=CKIN(I1)
39120 ELSEIF(IVAR.EQ.24) THEN
39121 IOLD=MSTP(I1)
39122 ELSEIF(IVAR.EQ.25) THEN
39123 ROLD=PARP(I1)
39124 ELSEIF(IVAR.EQ.26) THEN
39125 IOLD=MSTI(I1)
39126 ELSEIF(IVAR.EQ.27) THEN
39127 ROLD=PARI(I1)
39128 ELSEIF(IVAR.EQ.28) THEN
39129 IOLD=MINT(I1)
39130 ELSEIF(IVAR.EQ.29) THEN
39131 ROLD=VINT(I1)
39132 ELSEIF(IVAR.EQ.30) THEN
39133 IOLD=ISET(I1)
39134 ELSEIF(IVAR.EQ.31) THEN
39135 IOLD=KFPR(I1,I2)
39136 ELSEIF(IVAR.EQ.32) THEN
39137 ROLD=COEF(I1,I2)
39138 ELSEIF(IVAR.EQ.33) THEN
39139 IOLD=ICOL(I1,I2,I3)
39140 ELSEIF(IVAR.EQ.34) THEN
39141 ROLD=XSFX(I1,I2)
39142 ELSEIF(IVAR.EQ.35) THEN
39143 IOLD=ISIG(I1,I2)
39144 ELSEIF(IVAR.EQ.36) THEN
39145 ROLD=SIGH(I1)
39146 ELSEIF(IVAR.EQ.37) THEN
39147 IOLD=MWID(I1)
39148 ELSEIF(IVAR.EQ.38) THEN
39149 ROLD=WIDS(I1,I2)
39150 ELSEIF(IVAR.EQ.39) THEN
39151 IOLD=NGEN(I1,I2)
39152 ELSEIF(IVAR.EQ.40) THEN
39153 ROLD=XSEC(I1,I2)
39154 ELSEIF(IVAR.EQ.41) THEN
39155 CHOLD2=PROC(I1)
39156 ELSEIF(IVAR.EQ.42) THEN
39157 ROLD=SIGT(I1,I2,I3)
39158 ELSEIF(IVAR.EQ.43) THEN
39159 ROLD=XPVMD(I1)
39160 ELSEIF(IVAR.EQ.44) THEN
39161 ROLD=XPANL(I1)
39162 ELSEIF(IVAR.EQ.45) THEN
39163 ROLD=XPANH(I1)
39164 ELSEIF(IVAR.EQ.46) THEN
39165 ROLD=XPBEH(I1)
39166 ELSEIF(IVAR.EQ.47) THEN
39167 ROLD=XPDIR(I1)
39168 ELSEIF(IVAR.EQ.48) THEN
39169 IOLD=IMSS(I1)
39170 ELSEIF(IVAR.EQ.49) THEN
39171 ROLD=RMSS(I1)
39172 ENDIF
39173
39174
39175 IF(LNAM.GE.LBIT) THEN
39176 CHBIT(LNAM:14)=' '
39177 CHBIT(15:60)=' has the value '
39178 IF(MSVAR(IVAR,1).EQ.1) THEN
39179 WRITE(CHBIT(51:60),'(I10)') IOLD
39180 ELSEIF(MSVAR(IVAR,1).EQ.2) THEN
39181 WRITE(CHBIT(47:60),'(F14.5)') ROLD
39182 ELSEIF(MSVAR(IVAR,1).EQ.3) THEN
39183 CHBIT(53:60)=CHOLD
39184 ELSE
39185 CHBIT(33:60)=CHOLD
39186 ENDIF
39187 IF(MSTU(13).GE.1) WRITE(MSTU(11),5000) CHBIT(1:60)
39188 LLOW=LHIG
39189 IF(LLOW.LT.LTOT) GOTO 120
39190 RETURN
39191 ENDIF
39192
39193
39194 IF(MSVAR(IVAR,1).EQ.1) THEN
39195 CHINI=' '
39196 CHINI(LNAM-LBIT+11:10)=CHBIT(LNAM+1:LBIT)
39197 READ(CHINI,'(I10)') INEW
39198 ELSEIF(MSVAR(IVAR,1).EQ.2) THEN
39199 CHINR=' '
39200 CHINR(LNAM-LBIT+17:16)=CHBIT(LNAM+1:LBIT)
39201 READ(CHINR,*) RNEW
39202 ELSEIF(MSVAR(IVAR,1).EQ.3) THEN
39203 CHNEW=CHBIT(LNAM+1:LBIT)//' '
39204 ELSE
39205 CHNEW2=CHBIT(LNAM+1:LBIT)//' '
39206 ENDIF
39207
39208
39209 IF(IVAR.EQ.1) THEN
39210 N=INEW
39211 ELSEIF(IVAR.EQ.2) THEN
39212 K(I1,I2)=INEW
39213 ELSEIF(IVAR.EQ.3) THEN
39214 P(I1,I2)=RNEW
39215 ELSEIF(IVAR.EQ.4) THEN
39216 V(I1,I2)=RNEW
39217 ELSEIF(IVAR.EQ.5) THEN
39218 MSTU(I1)=INEW
39219 ELSEIF(IVAR.EQ.6) THEN
39220 PARU(I1)=RNEW
39221 ELSEIF(IVAR.EQ.7) THEN
39222 MSTJ(I1)=INEW
39223 ELSEIF(IVAR.EQ.8) THEN
39224 PARJ(I1)=RNEW
39225 ELSEIF(IVAR.EQ.9) THEN
39226 KCHG(I1,I2)=INEW
39227 ELSEIF(IVAR.EQ.10) THEN
39228 PMAS(I1,I2)=RNEW
39229 ELSEIF(IVAR.EQ.11) THEN
39230 PARF(I1)=RNEW
39231 ELSEIF(IVAR.EQ.12) THEN
39232 VCKM(I1,I2)=RNEW
39233 ELSEIF(IVAR.EQ.13) THEN
39234 MDCY(I1,I2)=INEW
39235 ELSEIF(IVAR.EQ.14) THEN
39236 MDME(I1,I2)=INEW
39237 ELSEIF(IVAR.EQ.15) THEN
39238 BRAT(I1)=RNEW
39239 ELSEIF(IVAR.EQ.16) THEN
39240 KFDP(I1,I2)=INEW
39241 ELSEIF(IVAR.EQ.17) THEN
39242 CHAF(I1,I2)=CHNEW
39243 ELSEIF(IVAR.EQ.18) THEN
39244 MRPY(I1)=INEW
39245 ELSEIF(IVAR.EQ.19) THEN
39246 RRPY(I1)=RNEW
39247 ELSEIF(IVAR.EQ.20) THEN
39248 MSEL=INEW
39249 ELSEIF(IVAR.EQ.21) THEN
39250 MSUB(I1)=INEW
39251 ELSEIF(IVAR.EQ.22) THEN
39252 KFIN(I1,I2)=INEW
39253 ELSEIF(IVAR.EQ.23) THEN
39254 CKIN(I1)=RNEW
39255 ELSEIF(IVAR.EQ.24) THEN
39256 MSTP(I1)=INEW
39257 ELSEIF(IVAR.EQ.25) THEN
39258 PARP(I1)=RNEW
39259 ELSEIF(IVAR.EQ.26) THEN
39260 MSTI(I1)=INEW
39261 ELSEIF(IVAR.EQ.27) THEN
39262 PARI(I1)=RNEW
39263 ELSEIF(IVAR.EQ.28) THEN
39264 MINT(I1)=INEW
39265 ELSEIF(IVAR.EQ.29) THEN
39266 VINT(I1)=RNEW
39267 ELSEIF(IVAR.EQ.30) THEN
39268 ISET(I1)=INEW
39269 ELSEIF(IVAR.EQ.31) THEN
39270 KFPR(I1,I2)=INEW
39271 ELSEIF(IVAR.EQ.32) THEN
39272 COEF(I1,I2)=RNEW
39273 ELSEIF(IVAR.EQ.33) THEN
39274 ICOL(I1,I2,I3)=INEW
39275 ELSEIF(IVAR.EQ.34) THEN
39276 XSFX(I1,I2)=RNEW
39277 ELSEIF(IVAR.EQ.35) THEN
39278 ISIG(I1,I2)=INEW
39279 ELSEIF(IVAR.EQ.36) THEN
39280 SIGH(I1)=RNEW
39281 ELSEIF(IVAR.EQ.37) THEN
39282 MWID(I1)=INEW
39283 ELSEIF(IVAR.EQ.38) THEN
39284 WIDS(I1,I2)=RNEW
39285 ELSEIF(IVAR.EQ.39) THEN
39286 NGEN(I1,I2)=INEW
39287 ELSEIF(IVAR.EQ.40) THEN
39288 XSEC(I1,I2)=RNEW
39289 ELSEIF(IVAR.EQ.41) THEN
39290 PROC(I1)=CHNEW2
39291 ELSEIF(IVAR.EQ.42) THEN
39292 SIGT(I1,I2,I3)=RNEW
39293 ELSEIF(IVAR.EQ.43) THEN
39294 XPVMD(I1)=RNEW
39295 ELSEIF(IVAR.EQ.44) THEN
39296 XPANL(I1)=RNEW
39297 ELSEIF(IVAR.EQ.45) THEN
39298 XPANH(I1)=RNEW
39299 ELSEIF(IVAR.EQ.46) THEN
39300 XPBEH(I1)=RNEW
39301 ELSEIF(IVAR.EQ.47) THEN
39302 XPDIR(I1)=RNEW
39303 ELSEIF(IVAR.EQ.48) THEN
39304 IMSS(I1)=INEW
39305 ELSEIF(IVAR.EQ.49) THEN
39306 RMSS(I1)=RNEW
39307 ENDIF
39308
39309
39310 CHBIT(LNAM:14)=' '
39311 CHBIT(15:60)=' changed from to '
39312 IF(MSVAR(IVAR,1).EQ.1) THEN
39313 WRITE(CHBIT(33:42),'(I10)') IOLD
39314 WRITE(CHBIT(51:60),'(I10)') INEW
39315 IF(MSTU(13).GE.1) WRITE(MSTU(11),5000) CHBIT(1:60)
39316 ELSEIF(MSVAR(IVAR,1).EQ.2) THEN
39317 WRITE(CHBIT(29:42),'(F14.5)') ROLD
39318 WRITE(CHBIT(47:60),'(F14.5)') RNEW
39319 IF(MSTU(13).GE.1) WRITE(MSTU(11),5000) CHBIT(1:60)
39320 ELSEIF(MSVAR(IVAR,1).EQ.3) THEN
39321 CHBIT(35:42)=CHOLD
39322 CHBIT(53:60)=CHNEW
39323 IF(MSTU(13).GE.1) WRITE(MSTU(11),5000) CHBIT(1:60)
39324 ELSE
39325 CHBIT(15:88)=' changed from '//CHOLD2//' to '//CHNEW2
39326 IF(MSTU(13).GE.1) WRITE(MSTU(11),5100) CHBIT(1:88)
39327 ENDIF
39328 LLOW=LHIG
39329 IF(LLOW.LT.LTOT) GOTO 120
39330
39331
39332 5000 FORMAT(5X,A60)
39333 5100 FORMAT(5X,A88)
39334
39335 RETURN
39336 END
39337
39338
39339
39340
39341
39342
39343 SUBROUTINE PYEXEC
39344
39345
39346 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
39347 IMPLICIT INTEGER(I-N)
39348 INTEGER PYK,PYCHGE,PYCOMP
39349
39350 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
39351 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
39352 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
39353 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
39354 COMMON/PYINT4/MWID(500),WIDS(500,5)
39355 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYINT4/
39356
39357 DIMENSION PS(2,6),IJOIN(100)
39358
39359
39360 MSTU(24)=0
39361 IF(MSTU(12).GE.1) CALL PYLIST(0)
39362 MSTU(31)=MSTU(31)+1
39363 MSTU(1)=0
39364 MSTU(2)=0
39365 MSTU(3)=0
39366 IF(MSTU(17).LE.0) MSTU(90)=0
39367 MCONS=1
39368
39369
39370 NSAV=N
39371 DO 110 I=1,2
39372 DO 100 J=1,6
39373 PS(I,J)=0D0
39374 100 CONTINUE
39375 110 CONTINUE
39376 DO 130 I=1,N
39377 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 130
39378 DO 120 J=1,4
39379 PS(1,J)=PS(1,J)+P(I,J)
39380 120 CONTINUE
39381 PS(1,6)=PS(1,6)+PYCHGE(K(I,2))
39382 130 CONTINUE
39383 PARU(21)=PS(1,4)
39384
39385
39386 CALL PYPREP(0)
39387
39388
39389 MBE=0
39390 140 MBE=MBE+1
39391 IP=0
39392 150 IP=IP+1
39393 KC=0
39394 IF(K(IP,1).GT.0.AND.K(IP,1).LE.10) KC=PYCOMP(K(IP,2))
39395 IF(KC.EQ.0) THEN
39396
39397
39398
39399 ELSEIF(MWID(KC).NE.0) THEN
39400 IBEG=IP
39401 IF(KCHG(KC,2).NE.0.AND.K(I,1).NE.3) THEN
39402 IBEG=IP+1
39403 160 IBEG=IBEG-1
39404 IF(IBEG.GE.2.AND.K(IBEG,1).EQ.2) GOTO 160
39405 IF(K(IBEG,1).NE.2) IBEG=IBEG+1
39406 IEND=IP-1
39407 170 IEND=IEND+1
39408 IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 170
39409 IF(IEND.LT.N.AND.KCHG(PYCOMP(K(IEND,2)),2).EQ.0) GOTO 170
39410 NJOIN=0
39411 DO 180 I=IBEG,IEND
39412 IF(KCHG(PYCOMP(K(IEND,2)),2).NE.0) THEN
39413 NJOIN=NJOIN+1
39414 IJOIN(NJOIN)=I
39415 ENDIF
39416 180 CONTINUE
39417 ENDIF
39418 CALL PYRESD(IP)
39419 CALL PYPREP(IBEG)
39420
39421
39422
39423 ELSEIF(KCHG(KC,2).EQ.0) THEN
39424 IF(MSTJ(21).GE.1.AND.MDCY(KC,1).GE.1.AND.(MSTJ(51).LE.0.OR.MBE
39425 & .EQ.2.OR.PMAS(KC,2).GE.PARJ(91).OR.IABS(K(IP,2)).EQ.311))
39426 & CALL PYDECY(IP)
39427
39428
39429 IF(MSTJ(92).GT.0) THEN
39430 IP1=MSTJ(92)
39431 QMAX=SQRT(MAX(0D0,(P(IP1,4)+P(IP1+1,4))**2-(P(IP1,1)+P(IP1+1,
39432 & 1))**2-(P(IP1,2)+P(IP1+1,2))**2-(P(IP1,3)+P(IP1+1,3))**2))
39433 CALL PYSHOW(IP1,IP1+1,QMAX)
39434 CALL PYPREP(IP1)
39435 MSTJ(92)=0
39436 ELSEIF(MSTJ(92).LT.0) THEN
39437 IP1=-MSTJ(92)
39438 CALL PYSHOW(IP1,-3,P(IP,5))
39439 CALL PYPREP(IP1)
39440 MSTJ(92)=0
39441 ENDIF
39442
39443
39444 ELSEIF(K(IP,1).EQ.1.OR.K(IP,1).EQ.2) THEN
39445 MFRAG=MSTJ(1)
39446 IF(MFRAG.GE.1.AND.K(IP,1).EQ.1) MFRAG=2
39447 IF(MSTJ(21).GE.2.AND.K(IP,1).EQ.2.AND.N.GT.IP) THEN
39448 IF(K(IP+1,1).EQ.1.AND.K(IP+1,3).EQ.K(IP,3).AND.
39449 & K(IP,3).GT.0.AND.K(IP,3).LT.IP) THEN
39450 IF(KCHG(PYCOMP(K(K(IP,3),2)),2).EQ.0) MFRAG=MIN(1,MFRAG)
39451 ENDIF
39452 ENDIF
39453 IF(MFRAG.EQ.1) CALL PYSTRF(IP)
39454 IF(MFRAG.EQ.2) CALL PYINDF(IP)
39455 IF(MFRAG.EQ.2.AND.K(IP,1).EQ.1) MCONS=0
39456 IF(MFRAG.EQ.2.AND.(MSTJ(3).LE.0.OR.MOD(MSTJ(3),5).EQ.0)) MCONS=0
39457 ENDIF
39458
39459
39460 IF(MSTU(24).NE.0.AND.MSTU(21).GE.2) THEN
39461 ELSEIF(IP.LT.N.AND.N.LT.MSTU(4)-20-MSTU(32)) THEN
39462 GOTO 150
39463 ELSEIF(IP.LT.N) THEN
39464 CALL PYERRM(11,'(PYEXEC:) no more memory left in PYJETS')
39465 ENDIF
39466
39467
39468 IF(MBE.EQ.1.AND.MSTJ(51).GE.1) THEN
39469 CALL PYBOEI(NSAV)
39470 GOTO 140
39471 ENDIF
39472
39473
39474 DO 200 I=1,N
39475 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 200
39476 DO 190 J=1,4
39477 PS(2,J)=PS(2,J)+P(I,J)
39478 190 CONTINUE
39479 PS(2,6)=PS(2,6)+PYCHGE(K(I,2))
39480 200 CONTINUE
39481 PDEV=(ABS(PS(2,1)-PS(1,1))+ABS(PS(2,2)-PS(1,2))+ABS(PS(2,3)-
39482 &PS(1,3))+ABS(PS(2,4)-PS(1,4)))/(1D0+ABS(PS(2,4))+ABS(PS(1,4)))
39483 IF(MCONS.EQ.1.AND.PDEV.GT.PARU(11)) CALL PYERRM(15,
39484 &'(PYEXEC:) four-momentum was not conserved')
39485 IF(MCONS.EQ.1.AND.ABS(PS(2,6)-PS(1,6)).GT.0.1D0) CALL PYERRM(15,
39486 &'(PYEXEC:) charge was not conserved')
39487
39488 RETURN
39489 END
39490
39491
39492
39493
39494
39495
39496
39497
39498 SUBROUTINE PYPREP(IP)
39499
39500
39501 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
39502 INTEGER PYK,PYCHGE,PYCOMP
39503
39504 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
39505 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
39506 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
39507 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
39508 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/
39509
39510 DIMENSION DPS(5),DPC(5),UE(3),PG(5),
39511 &E1(3),E2(3),E3(3),E4(3),ECL(3)
39512
39513
39514 FOUR(I,J)=P(I,4)*P(J,4)-P(I,1)*P(J,1)-P(I,2)*P(J,2)-P(I,3)*P(J,3)
39515
39516
39517 I1=N
39518 DO 130 MQGST=1,2
39519 DO 120 I=MAX(1,IP),N
39520 IF(K(I,1).NE.3) GOTO 120
39521 KC=PYCOMP(K(I,2))
39522 IF(KC.EQ.0) GOTO 120
39523 KQ=KCHG(KC,2)
39524 IF(KQ.EQ.0.OR.(MQGST.EQ.1.AND.KQ.EQ.2)) GOTO 120
39525
39526
39527 KCS=4
39528 IF(KQ*ISIGN(1,K(I,2)).LT.0) KCS=5
39529 IA=I
39530 NSTP=0
39531 100 NSTP=NSTP+1
39532 IF(NSTP.GT.4*N) THEN
39533 CALL PYERRM(14,'(PYPREP:) caught in infinite loop')
39534 RETURN
39535 ENDIF
39536
39537
39538 IF(K(IA,1).EQ.3) THEN
39539 IF(I1.GE.MSTU(4)-MSTU(32)-5) THEN
39540 CALL PYERRM(11,'(PYPREP:) no more memory left in PYJETS')
39541 RETURN
39542 ENDIF
39543 I1=I1+1
39544 K(I1,1)=2
39545 IF(NSTP.GE.2.AND.KCHG(PYCOMP(K(IA,2)),2).NE.2) K(I1,1)=1
39546 K(I1,2)=K(IA,2)
39547 K(I1,3)=IA
39548 K(I1,4)=0
39549 K(I1,5)=0
39550 DO 110 J=1,5
39551 P(I1,J)=P(IA,J)
39552 V(I1,J)=V(IA,J)
39553 110 CONTINUE
39554 K(IA,1)=K(IA,1)+10
39555 IF(K(I1,1).EQ.1) GOTO 120
39556 ENDIF
39557
39558
39559 IB=IA
39560 IF(MOD(K(IB,KCS)/MSTU(5)**2,2).EQ.0.AND.MOD(K(IB,KCS),MSTU(5))
39561 & .NE.0) THEN
39562 IA=MOD(K(IB,KCS),MSTU(5))
39563 K(IB,KCS)=K(IB,KCS)+MSTU(5)**2
39564 MREV=0
39565 ELSE
39566 IF(K(IB,KCS).GE.2*MSTU(5)**2.OR.MOD(K(IB,KCS)/MSTU(5),
39567 & MSTU(5)).EQ.0) KCS=9-KCS
39568 IA=MOD(K(IB,KCS)/MSTU(5),MSTU(5))
39569 K(IB,KCS)=K(IB,KCS)+2*MSTU(5)**2
39570 MREV=1
39571 ENDIF
39572 IF(IA.LE.0.OR.IA.GT.N) THEN
39573 CALL PYERRM(12,'(PYPREP:) colour rearrangement failed')
39574 RETURN
39575 ENDIF
39576 IF(MOD(K(IA,4)/MSTU(5),MSTU(5)).EQ.IB.OR.MOD(K(IA,5)/MSTU(5),
39577 & MSTU(5)).EQ.IB) THEN
39578 IF(MREV.EQ.1) KCS=9-KCS
39579 IF(MOD(K(IA,KCS)/MSTU(5),MSTU(5)).NE.IB) KCS=9-KCS
39580 K(IA,KCS)=K(IA,KCS)+2*MSTU(5)**2
39581 ELSE
39582 IF(MREV.EQ.0) KCS=9-KCS
39583 IF(MOD(K(IA,KCS),MSTU(5)).NE.IB) KCS=9-KCS
39584 K(IA,KCS)=K(IA,KCS)+MSTU(5)**2
39585 ENDIF
39586 IF(IA.NE.I) GOTO 100
39587 K(I1,1)=1
39588 120 CONTINUE
39589 130 CONTINUE
39590 N=I1
39591
39592
39593 IF(MSTJ(14).LT.0) RETURN
39594 IF(MSTJ(14).EQ.0) GOTO 540
39595
39596
39597 NS=N
39598 140 NSIN=N-NS
39599 PDMIN=1D0+PARJ(32)
39600 IC=0
39601 DO 190 I=MAX(1,IP),N
39602 IF(K(I,1).NE.1.AND.K(I,1).NE.2) THEN
39603 ELSEIF(K(I,1).EQ.2.AND.IC.EQ.0) THEN
39604 NSIN=NSIN+1
39605 IC=I
39606 DO 150 J=1,4
39607 DPS(J)=P(I,J)
39608 150 CONTINUE
39609 MSTJ(93)=1
39610 DPS(5)=PYMASS(K(I,2))
39611 ELSEIF(K(I,1).EQ.2) THEN
39612 DO 160 J=1,4
39613 DPS(J)=DPS(J)+P(I,J)
39614 160 CONTINUE
39615 ELSEIF(IC.NE.0.AND.KCHG(PYCOMP(K(I,2)),2).NE.0) THEN
39616 DO 170 J=1,4
39617 DPS(J)=DPS(J)+P(I,J)
39618 170 CONTINUE
39619 MSTJ(93)=1
39620 DPS(5)=DPS(5)+PYMASS(K(I,2))
39621 PD=SQRT(MAX(0D0,DPS(4)**2-DPS(1)**2-DPS(2)**2-DPS(3)**2))-
39622 & DPS(5)
39623 IF(PD.LT.PDMIN) THEN
39624 PDMIN=PD
39625 DO 180 J=1,5
39626 DPC(J)=DPS(J)
39627 180 CONTINUE
39628 IC1=IC
39629 IC2=I
39630 ENDIF
39631 IC=0
39632 ELSE
39633 NSIN=NSIN+1
39634 ENDIF
39635 190 CONTINUE
39636
39637
39638 IF(PDMIN.GE.PARJ(32)) GOTO 540
39639
39640
39641 NSAV=N
39642 PECM=SQRT(MAX(0D0,DPC(4)**2-DPC(1)**2-DPC(2)**2-DPC(3)**2))
39643 K(N+1,1)=11
39644 K(N+1,2)=91
39645 K(N+1,3)=IC1
39646 P(N+1,1)=DPC(1)
39647 P(N+1,2)=DPC(2)
39648 P(N+1,3)=DPC(3)
39649 P(N+1,4)=DPC(4)
39650 P(N+1,5)=PECM
39651
39652
39653 NBODY=2
39654 K(N+1,4)=N+2
39655 K(N+1,5)=N+3
39656 K(N+2,1)=1
39657 K(N+3,1)=1
39658 IF(MSTU(16).NE.2) THEN
39659 K(N+2,3)=N+1
39660 K(N+3,3)=N+1
39661 ELSE
39662 K(N+2,3)=IC1
39663 K(N+3,3)=IC2
39664 ENDIF
39665 K(N+2,4)=0
39666 K(N+3,4)=0
39667 K(N+2,5)=0
39668 K(N+3,5)=0
39669 V(N+1,5)=0D0
39670 V(N+2,5)=0D0
39671 V(N+3,5)=0D0
39672
39673
39674 NTRY = 0
39675 200 NTRY = NTRY + 1
39676
39677 IF(IABS(K(IC1,2)).NE.21) THEN
39678 KC1=PYCOMP(K(IC1,2))
39679 KC2=PYCOMP(K(IC2,2))
39680 IF(KC1.EQ.0.OR.KC2.EQ.0) GOTO 540
39681 KQ1=KCHG(KC1,2)*ISIGN(1,K(IC1,2))
39682 KQ2=KCHG(KC2,2)*ISIGN(1,K(IC2,2))
39683 IF(KQ1+KQ2.NE.0) GOTO 540
39684
39685 210 K1=K(IC1,2)
39686 IF(IABS(K(IC2,2)).GT.10) K1=K(IC2,2)
39687 MSTU(125)=0
39688 CALL PYDCYK(K1,0,KFLN,K(N+2,2))
39689 CALL PYDCYK(K(IC1,2)+K(IC2,2)-K1,-KFLN,KFLDMP,K(N+3,2))
39690 IF(K(N+2,2).EQ.0.OR.K(N+3,2).EQ.0) GOTO 210
39691
39692 ELSE
39693 IF(IABS(K(IC2,2)).NE.21) GOTO 540
39694
39695 MSTU(125)=0
39696 220 CALL PYDCYK(1+INT((2D0+PARJ(2))*PYR(0)),0,KFLN,KFDMP)
39697 CALL PYDCYK(KFLN,0,KFLM,K(N+2,2))
39698 CALL PYDCYK(-KFLN,-KFLM,KFLDMP,K(N+3,2))
39699 IF(K(N+2,2).EQ.0.OR.K(N+3,2).EQ.0) GOTO 220
39700 ENDIF
39701 P(N+2,5)=PYMASS(K(N+2,2))
39702 P(N+3,5)=PYMASS(K(N+3,2))
39703
39704
39705
39706 IF(P(N+2,5)+P(N+3,5)+PARJ(64).GE.PECM) THEN
39707 IF(NTRY.LT.MSTJ(17)) THEN
39708 GOTO 200
39709 ELSEIF(NSIN.EQ.1) THEN
39710 GOTO 540
39711 ELSE
39712 GOTO 290
39713 END IF
39714 END IF
39715
39716
39717
39718
39719 DO 230 J=1,4
39720 P(N+2,J)=P(IC1,J)
39721 230 CONTINUE
39722 DO 250 I=IC1+1,IC2-1
39723 IF((K(I,1).EQ.1.OR.K(I,1).EQ.2).AND.
39724 & KCHG(PYCOMP(K(I,2)),2).NE.0) THEN
39725 FRAC1=FOUR(IC2,I)/(FOUR(IC1,I)+FOUR(IC2,I))
39726 DO 240 J=1,4
39727 P(N+2,J)=P(N+2,J)+FRAC1*P(I,J)
39728 240 CONTINUE
39729 ENDIF
39730 250 CONTINUE
39731 CALL PYROBO(N+2,N+2,0D0,0D0,-DPC(1)/DPC(4),-DPC(2)/DPC(4),
39732 &-DPC(3)/DPC(4))
39733 THE1=PYANGL(P(N+2,3),SQRT(P(N+2,1)**2+P(N+2,2)**2))
39734 PHI1=PYANGL(P(N+2,1),P(N+2,2))
39735
39736
39737 PA=SQRT((PECM**2-(P(N+2,5)+P(N+3,5))**2)*(PECM**2-
39738 &(P(N+2,5)-P(N+3,5))**2))/(2D0*PECM)
39739 260 UE(3)=PYR(0)
39740 PT2=(1D0-UE(3)**2)*PA**2
39741 IF(MSTJ(16).LE.0) THEN
39742 PREV=0.5D0
39743 ELSE
39744 IF(EXP(-PT2/(2D0*PARJ(21)**2)).LT.PYR(0)) GOTO 260
39745 PR1=P(N+2,5)**2+PT2
39746 PR2=P(N+3,5)**2+PT2
39747 ALAMBD=SQRT(MAX(0D0,(PECM**2-PR1-PR2)**2-4D0*PR1*PR2))
39748 PREVCF=PARJ(42)
39749 IF(MSTJ(11).EQ.2) PREVCF=PARJ(39)
39750 PREV=1D0/(1D0+EXP(MIN(50D0,PREVCF*ALAMBD)))
39751 ENDIF
39752 IF(PYR(0).LT.PREV) UE(3)=-UE(3)
39753 PHI=PARU(2)*PYR(0)
39754 UE(1)=SQRT(1D0-UE(3)**2)*COS(PHI)
39755 UE(2)=SQRT(1D0-UE(3)**2)*SIN(PHI)
39756 DO 270 J=1,3
39757 P(N+2,J)=PA*UE(J)
39758 P(N+3,J)=-PA*UE(J)
39759 270 CONTINUE
39760 P(N+2,4)=SQRT(PA**2+P(N+2,5)**2)
39761 P(N+3,4)=SQRT(PA**2+P(N+3,5)**2)
39762
39763
39764 CALL PYROBO(N+2,N+3,THE1,PHI1,DPC(1)/DPC(4),DPC(2)/DPC(4),
39765 &DPC(3)/DPC(4))
39766 DO 280 J=1,4
39767 V(N+1,J)=V(IC1,J)
39768 V(N+2,J)=V(IC1,J)
39769 V(N+3,J)=V(IC2,J)
39770 280 CONTINUE
39771 N=N+3
39772 GOTO 520
39773
39774
39775 290 NBODY=1
39776 K(N+1,5)=N+2
39777 DO 300 J=1,4
39778 V(N+1,J)=V(IC1,J)
39779 V(N+2,J)=V(IC1,J)
39780 300 CONTINUE
39781
39782
39783 310 IF(IABS(K(IC1,2)).GT.100.AND.IABS(K(IC2,2)).GT.100) THEN
39784 GOTO 540
39785 ELSEIF(IABS(K(IC1,2)).NE.21) THEN
39786 CALL PYKFDI(K(IC1,2),K(IC2,2),KFLDMP,K(N+2,2))
39787 ELSE
39788 KFLN=1+INT((2D0+PARJ(2))*PYR(0))
39789 CALL PYKFDI(KFLN,-KFLN,KFLDMP,K(N+2,2))
39790 ENDIF
39791 IF(K(N+2,2).EQ.0) GOTO 310
39792 P(N+2,5)=PYMASS(K(N+2,2))
39793
39794
39795 IF (MSTJ(16).LE.0) GOTO 480
39796
39797
39798
39799 DGLOMI=1D30
39800 IBEG=0
39801 I0=0
39802 DO 340 I1=MAX(1,IP),N-1
39803 IF(I1.GE.IC1-1.AND.I1.LE.IC2) THEN
39804 I0=0
39805 ELSEIF(K(I1,1).EQ.2) THEN
39806 IF(I0.EQ.0) I0=I1
39807 I2=I1
39808 320 I2=I2+1
39809 IF(KCHG(PYCOMP(K(I2,2)),2).EQ.0) GOTO 320
39810
39811
39812 DO 330 J=1,3
39813 E1(J)=P(I1,J)/P(I1,4)
39814 E2(J)=P(I2,J)/P(I2,4)
39815 ECL(J)=P(N+1,J)/P(N+1,4)
39816 E3(J)=E2(J)-E1(J)
39817 E4(J)=ECL(J)-E1(J)
39818 330 CONTINUE
39819
39820
39821 E3S=E3(1)**2+E3(2)**2+E3(3)**2
39822 E4S=E4(1)**2+E4(2)**2+E4(3)**2
39823 E34=E3(1)*E4(1)+E3(2)*E4(2)+E3(3)*E4(3)
39824 IF(E34.LE.0D0) THEN
39825 DDMIN=E4S
39826 ELSEIF(E34.LT.E3S) THEN
39827 DDMIN=E4S-E34**2/E3S
39828 ELSE
39829 DDMIN=E4S-2D0*E34+E3S
39830 ENDIF
39831
39832
39833 IF(DDMIN.LT.DGLOMI) THEN
39834 DGLOMI=DDMIN
39835 IBEG=I0
39836 IPCS=I1
39837 ENDIF
39838 ELSEIF(K(I1,1).EQ.1.AND.KCHG(PYCOMP(K(I1,2)),2).NE.0) THEN
39839 I0=0
39840 ENDIF
39841 340 CONTINUE
39842
39843
39844 IF (IBEG.EQ.0) GOTO 480
39845
39846
39847 IF (P(N+1,5).GE.P(N+2,5)) THEN
39848
39849
39850 FRAC=P(N+2,5)/P(N+1,5)
39851 DO 350 J=1,5
39852 P(N+2,J)=FRAC*P(N+1,J)
39853 PG(J)=(1D0-FRAC)*P(N+1,J)
39854 350 CONTINUE
39855
39856
39857 N=N+2
39858 I=IBEG-1
39859 360 I=I+1
39860 IF(K(I,1).NE.1.AND.K(I,1).NE.2) GOTO 360
39861 IF(KCHG(PYCOMP(K(I,2)),2).EQ.0) GOTO 360
39862 N=N+1
39863 DO 370 J=1,5
39864 K(N,J)=K(I,J)
39865 P(N,J)=P(I,J)
39866 V(N,J)=V(I,J)
39867 370 CONTINUE
39868 K(I,1)=K(I,1)+10
39869 K(I,4)=N
39870 K(I,5)=N
39871 K(N,3)=I
39872 IF(I.EQ.IPCS) THEN
39873 N=N+1
39874 DO 380 J=1,5
39875 K(N,J)=K(N-1,J)
39876 P(N,J)=PG(J)
39877 V(N,J)=V(N-1,J)
39878 380 CONTINUE
39879 K(N,2)=21
39880 K(N,3)=NSAV+1
39881 ENDIF
39882 IF(K(I,1).EQ.12) GOTO 360
39883 GOTO 520
39884
39885
39886
39887 ELSE
39888
39889
39890 N=N+2
39891 I=IBEG-1
39892 390 I=I+1
39893 IF(K(I,1).NE.1.AND.K(I,1).NE.2) GOTO 390
39894 IF(KCHG(PYCOMP(K(I,2)),2).EQ.0) GOTO 390
39895 N=N+1
39896 DO 400 J=1,5
39897 K(N,J)=K(I,J)
39898 P(N,J)=P(I,J)
39899 V(N,J)=V(I,J)
39900 400 CONTINUE
39901 K(I,1)=K(I,1)+10
39902 K(I,4)=N
39903 K(I,5)=N
39904 K(N,3)=I
39905 IF(I.EQ.IPCS) I1=N
39906 IF(K(I,1).EQ.12) GOTO 390
39907 I2=I1+1
39908
39909
39910 DO 410 J=1,4
39911 P(NSAV+2,J)=P(NSAV+1,J)
39912 410 CONTINUE
39913
39914
39915 420 IF(MSTJ(16).EQ.1) THEN
39916 ALPHA=1D0
39917 BETA=1D0
39918 ELSE
39919 ALPHA=FOUR(NSAV+1,I2)/FOUR(I1,I2)
39920 BETA=FOUR(NSAV+1,I1)/FOUR(I1,I2)
39921 ENDIF
39922 DO 430 J=1,4
39923 PG(J)=ALPHA*P(I1,J)+BETA*P(I2,J)
39924 430 CONTINUE
39925 PG(5)=SQRT(MAX(1D-20,PG(4)**2-PG(1)**2-PG(2)**2-PG(3)**2))
39926
39927
39928 PMSCOL=P(NSAV+2,4)**2-P(NSAV+2,1)**2-P(NSAV+2,2)**2-
39929 & P(NSAV+2,3)**2
39930 PCLPG=(P(NSAV+2,4)*PG(4)-P(NSAV+2,1)*PG(1)-
39931 & P(NSAV+2,2)*PG(2)-P(NSAV+2,3)*PG(3))/PG(5)**2
39932 DELTA=SQRT(PCLPG**2+(P(NSAV+2,5)**2-PMSCOL)/PG(5)**2)-PCLPG
39933
39934
39935 ITER=0
39936 IF(DELTA*ALPHA.GT.1D0.AND.I1.GT.NSAV+3) THEN
39937 ITER=1
39938 DO 440 J=1,4
39939 P(NSAV+2,J)=P(NSAV+2,J)+P(I1,J)
39940 P(I1,J)=0D0
39941 440 CONTINUE
39942 P(I1,5)=0D0
39943 I1=I1-1
39944 ENDIF
39945 IF(DELTA*BETA.GT.1D0.AND.I2.LT.N) THEN
39946 ITER=1
39947 DO 450 J=1,4
39948 P(NSAV+2,J)=P(NSAV+2,J)+P(I2,J)
39949 P(I2,J)=0D0
39950 450 CONTINUE
39951 P(I2,5)=0D0
39952 I2=I2+1
39953 ENDIF
39954 IF(ITER.EQ.1) GOTO 420
39955
39956
39957 IF((1D0-DELTA*ALPHA)*P(I1,4).LT.P(I1,5).OR.
39958 & (1D0-DELTA*BETA)*P(I2,4).LT.P(I2,5)) THEN
39959 DO 460 I=NSAV+3,N
39960 IM=K(I,3)
39961 K(IM,1)=K(IM,1)-10
39962 K(IM,4)=0
39963 K(IM,5)=0
39964 460 CONTINUE
39965 N=NSAV
39966 GOTO 480
39967 ENDIF
39968
39969
39970 DO 470 J=1,4
39971 P(NSAV+2,J)=P(NSAV+2,J)+DELTA*PG(J)
39972 P(I1,J)=(1D0-DELTA*ALPHA)*P(I1,J)
39973 P(I2,J)=(1D0-DELTA*BETA)*P(I2,J)
39974 470 CONTINUE
39975 P(I1,5)=(1D0-DELTA*ALPHA)*P(I1,5)
39976 P(I2,5)=(1D0-DELTA*BETA)*P(I2,5)
39977
39978
39979 GOTO 520
39980 ENDIF
39981
39982
39983 480 CONTINUE
39984
39985 IR=0
39986 HA=0D0
39987 HSM=0D0
39988 DO 500 MCOMB=1,3
39989 IF(IR.NE.0) GOTO 500
39990 DO 490 I=MAX(1,IP),N
39991 IF(K(I,1).LE.0.OR.K(I,1).GT.10.OR.(I.GE.IC1.AND.I.LE.IC2
39992 & .AND.K(I,1).GE.1.AND.K(I,1).LE.2)) GOTO 490
39993 IF(MCOMB.EQ.1) KCI=PYCOMP(K(I,2))
39994 IF(MCOMB.EQ.1.AND.KCI.EQ.0) GOTO 490
39995 IF(MCOMB.EQ.1.AND.KCHG(KCI,2).EQ.0.AND.I.LE.NS) GOTO 490
39996 IF(MCOMB.EQ.2.AND.IABS(K(I,2)).GT.10.AND.IABS(K(I,2)).LE.100)
39997 & GOTO 490
39998 HCR=DPC(4)*P(I,4)-DPC(1)*P(I,1)-DPC(2)*P(I,2)-DPC(3)*P(I,3)
39999 HSR=2D0*HCR+PECM**2-P(N+2,5)**2-2D0*P(N+2,5)*P(I,5)
40000 IF(HSR.GT.HSM) THEN
40001 IR=I
40002 HA=HCR
40003 HSM=HSR
40004 ENDIF
40005 490 CONTINUE
40006 500 CONTINUE
40007
40008
40009 IF(IR.NE.0) THEN
40010 HB=PECM**2+HA
40011 HC=P(N+2,5)**2+HA
40012 HD=P(IR,5)**2+HA
40013 HK2=0.5D0*(HB*SQRT(MAX(0D0,((HB+HC)**2-4D0*(HB+HD)*P(N+2,5)**2)/
40014 & (HA**2-(PECM*P(IR,5))**2)))-(HB+HC))/(HB+HD)
40015 HK1=(0.5D0*(P(N+2,5)**2-PECM**2)+HD*HK2)/HB
40016 DO 510 J=1,4
40017 P(N+2,J)=(1D0+HK1)*DPC(J)-HK2*P(IR,J)
40018 P(IR,J)=(1D0+HK2)*P(IR,J)-HK1*DPC(J)
40019 510 CONTINUE
40020 N=N+2
40021 ELSE
40022 CALL PYERRM(3,'(PYPREP:) no match for collapsing cluster')
40023 RETURN
40024 ENDIF
40025
40026
40027 520 DO 530 I=IC1,IC2
40028 IF((K(I,1).EQ.1.OR.K(I,1).EQ.2).AND.
40029 & KCHG(PYCOMP(K(I,2)),2).NE.0) THEN
40030 K(I,1)=K(I,1)+10
40031 IF(MSTU(16).NE.2) THEN
40032 K(I,4)=NSAV+1
40033 K(I,5)=NSAV+1
40034 ELSE
40035 K(I,4)=NSAV+2
40036 K(I,5)=NSAV+1+NBODY
40037 ENDIF
40038 ENDIF
40039 530 CONTINUE
40040 IF(N.LT.MSTU(4)-MSTU(32)-5) GOTO 140
40041
40042
40043 540 NP=0
40044 KFN=0
40045 KQS=0
40046 DO 550 J=1,5
40047 DPS(J)=0D0
40048 550 CONTINUE
40049 DO 580 I=MAX(1,IP),N
40050 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 580
40051 KC=PYCOMP(K(I,2))
40052 IF(KC.EQ.0) GOTO 580
40053 KQ=KCHG(KC,2)*ISIGN(1,K(I,2))
40054 IF(KQ.EQ.0) GOTO 580
40055 NP=NP+1
40056 IF(KQ.NE.2) THEN
40057 KFN=KFN+1
40058 KQS=KQS+KQ
40059 MSTJ(93)=1
40060 DPS(5)=DPS(5)+PYMASS(K(I,2))
40061 ENDIF
40062 DO 560 J=1,4
40063 DPS(J)=DPS(J)+P(I,J)
40064 560 CONTINUE
40065 IF(K(I,1).EQ.1) THEN
40066 IF(NP.NE.1.AND.(KFN.EQ.1.OR.KFN.GE.3.OR.KQS.NE.0)) CALL
40067 & PYERRM(2,'(PYPREP:) unphysical flavour combination')
40068 IF(NP.NE.1.AND.DPS(4)**2-DPS(1)**2-DPS(2)**2-DPS(3)**2.LT.
40069 & (0.9D0*PARJ(32)+DPS(5))**2) THEN
40070 CALL PYERRM(3,'(PYPREP:) too small mass in jet system')
40071 END IF
40072 NP=0
40073 KFN=0
40074 KQS=0
40075 DO 570 J=1,5
40076 DPS(J)=0D0
40077 570 CONTINUE
40078 ENDIF
40079 580 CONTINUE
40080
40081 RETURN
40082 END
40083
40084
40085
40086
40087
40088
40089
40090 SUBROUTINE PYSTRF(IP)
40091
40092
40093 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
40094 IMPLICIT INTEGER(I-N)
40095 INTEGER PYK,PYCHGE,PYCOMP
40096
40097 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
40098 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
40099 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
40100 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
40101
40102 DIMENSION DPS(5),KFL(3),PMQ(3),PX(3),PY(3),GAM(3),IE(2),PR(2),
40103 &IN(9),DHM(4),DHG(4),DP(5,5),IRANK(2),MJU(4),IJU(3),PJU(5,5),
40104 &TJU(5),KFJH(2),NJS(2),KFJS(2),PJS(4,5),MSTU9T(8),PARU9T(8),
40105 &INMO(9),PM2QMO(2),XTMO(2)
40106
40107
40108 FOUR(I,J)=P(I,4)*P(J,4)-P(I,1)*P(J,1)-P(I,2)*P(J,2)-P(I,3)*P(J,3)
40109 DFOUR(I,J)=DP(I,4)*DP(J,4)-DP(I,1)*DP(J,1)-DP(I,2)*DP(J,2)-
40110 &DP(I,3)*DP(J,3)
40111
40112
40113 MSTJ(91)=0
40114 NSAV=N
40115 MSTU90=MSTU(90)
40116 NP=0
40117 KQSUM=0
40118 DO 100 J=1,5
40119 DPS(J)=0D0
40120 100 CONTINUE
40121 MJU(1)=0
40122 MJU(2)=0
40123 I=IP-1
40124 110 I=I+1
40125 IF(I.GT.MIN(N,MSTU(4)-MSTU(32))) THEN
40126 CALL PYERRM(12,'(PYSTRF:) failed to reconstruct jet system')
40127 IF(MSTU(21).GE.1) RETURN
40128 ENDIF
40129 IF(K(I,1).NE.1.AND.K(I,1).NE.2.AND.K(I,1).NE.41) GOTO 110
40130 KC=PYCOMP(K(I,2))
40131 IF(KC.EQ.0) GOTO 110
40132 KQ=KCHG(KC,2)*ISIGN(1,K(I,2))
40133 IF(KQ.EQ.0) GOTO 110
40134 IF(N+5*NP+11.GT.MSTU(4)-MSTU(32)-5) THEN
40135 CALL PYERRM(11,'(PYSTRF:) no more memory left in PYJETS')
40136 IF(MSTU(21).GE.1) RETURN
40137 ENDIF
40138
40139
40140 NP=NP+1
40141 DO 120 J=1,5
40142 K(N+NP,J)=K(I,J)
40143 P(N+NP,J)=P(I,J)
40144 IF(J.NE.4) DPS(J)=DPS(J)+P(I,J)
40145 120 CONTINUE
40146 DPS(4)=DPS(4)+SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2+P(I,5)**2)
40147 K(N+NP,3)=I
40148 IF(KQ.NE.2) KQSUM=KQSUM+KQ
40149 IF(K(I,1).EQ.41) THEN
40150 KQSUM=KQSUM+2*KQ
40151 IF(KQSUM.EQ.KQ) MJU(1)=N+NP
40152 IF(KQSUM.NE.KQ) MJU(2)=N+NP
40153 ENDIF
40154 IF(K(I,1).EQ.2.OR.K(I,1).EQ.41) GOTO 110
40155 IF(KQSUM.NE.0) THEN
40156 CALL PYERRM(12,'(PYSTRF:) unphysical flavour combination')
40157 IF(MSTU(21).GE.1) RETURN
40158 ENDIF
40159
40160
40161 IF(ABS(DPS(3)).LT.0.99D0*DPS(4)) THEN
40162 MBST=0
40163 MSTU(33)=1
40164 CALL PYROBO(N+1,N+NP,0D0,0D0,-DPS(1)/DPS(4),-DPS(2)/DPS(4),
40165 & -DPS(3)/DPS(4))
40166 ELSE
40167 MBST=1
40168 HHBZ=SQRT(MAX(1D-6,DPS(4)+DPS(3))/MAX(1D-6,DPS(4)-DPS(3)))
40169 DO 130 I=N+1,N+NP
40170 HHPMT=P(I,1)**2+P(I,2)**2+P(I,5)**2
40171 IF(P(I,3).GT.0D0) THEN
40172 HHPEZ=MAX(1D-10,(P(I,4)+P(I,3))/HHBZ)
40173 P(I,3)=0.5D0*(HHPEZ-HHPMT/HHPEZ)
40174 P(I,4)=0.5D0*(HHPEZ+HHPMT/HHPEZ)
40175 ELSE
40176 HHPEZ=MAX(1D-10,(P(I,4)-P(I,3))*HHBZ)
40177 P(I,3)=-0.5D0*(HHPEZ-HHPMT/HHPEZ)
40178 P(I,4)=0.5D0*(HHPEZ+HHPMT/HHPEZ)
40179 ENDIF
40180 130 CONTINUE
40181 ENDIF
40182
40183
40184 NTRYR=0
40185 PARU12=PARU(12)
40186 PARU13=PARU(13)
40187 MJU(3)=MJU(1)
40188 MJU(4)=MJU(2)
40189 NR=NP
40190 140 IF(NR.GE.3) THEN
40191 PDRMIN=2D0*PARU12
40192 DO 150 I=N+1,N+NR
40193 IF(I.EQ.N+NR.AND.IABS(K(N+1,2)).NE.21) GOTO 150
40194 I1=I+1
40195 IF(I.EQ.N+NR) I1=N+1
40196 IF(K(I,1).EQ.41.OR.K(I1,1).EQ.41) GOTO 150
40197 IF(MJU(1).NE.0.AND.I1.LT.MJU(1).AND.IABS(K(I1,2)).NE.21)
40198 & GOTO 150
40199 IF(MJU(2).NE.0.AND.I.GT.MJU(2).AND.IABS(K(I,2)).NE.21)
40200 & GOTO 150
40201 PAP=SQRT((P(I,1)**2+P(I,2)**2+P(I,3)**2)*(P(I1,1)**2+
40202 & P(I1,2)**2+P(I1,3)**2))
40203 PVP=P(I,1)*P(I1,1)+P(I,2)*P(I1,2)+P(I,3)*P(I1,3)
40204 PDR=4D0*(PAP-PVP)**2/MAX(1D-6,PARU13**2*PAP+2D0*(PAP-PVP))
40205 IF(PDR.LT.PDRMIN) THEN
40206 IR=I
40207 PDRMIN=PDR
40208 ENDIF
40209 150 CONTINUE
40210
40211
40212 IF(PDRMIN.LT.PARU12.AND.IR.EQ.N+NR) THEN
40213 DO 160 J=1,4
40214 P(N+1,J)=P(N+1,J)+P(N+NR,J)
40215 160 CONTINUE
40216 P(N+1,5)=SQRT(MAX(0D0,P(N+1,4)**2-P(N+1,1)**2-P(N+1,2)**2-
40217 & P(N+1,3)**2))
40218 NR=NR-1
40219 GOTO 140
40220 ELSEIF(PDRMIN.LT.PARU12) THEN
40221 DO 170 J=1,4
40222 P(IR,J)=P(IR,J)+P(IR+1,J)
40223 170 CONTINUE
40224 P(IR,5)=SQRT(MAX(0D0,P(IR,4)**2-P(IR,1)**2-P(IR,2)**2-
40225 & P(IR,3)**2))
40226 DO 190 I=IR+1,N+NR-1
40227 K(I,2)=K(I+1,2)
40228 DO 180 J=1,5
40229 P(I,J)=P(I+1,J)
40230 180 CONTINUE
40231 190 CONTINUE
40232 IF(IR.EQ.N+NR-1) K(IR,2)=K(N+NR,2)
40233 NR=NR-1
40234 IF(MJU(1).GT.IR) MJU(1)=MJU(1)-1
40235 IF(MJU(2).GT.IR) MJU(2)=MJU(2)-1
40236 GOTO 140
40237 ENDIF
40238 ENDIF
40239 NTRYR=NTRYR+1
40240
40241
40242
40243 NRS=MAX(5*NR+11,NP)
40244 NTRY=0
40245 200 NTRY=NTRY+1
40246 IF(NTRY.GT.100.AND.NTRYR.LE.4) THEN
40247 PARU12=4D0*PARU12
40248 PARU13=2D0*PARU13
40249 GOTO 140
40250 ELSEIF(NTRY.GT.100) THEN
40251 CALL PYERRM(14,'(PYSTRF:) caught in infinite loop')
40252 IF(MSTU(21).GE.1) RETURN
40253 ENDIF
40254 I=N+NRS
40255 MSTU(90)=MSTU90
40256 IF(MJU(1).EQ.0.AND.MJU(2).EQ.0) GOTO 580
40257 IF(MSTJ(12).GE.4) CALL PYERRM(29,'(PYSTRF:) sorry,'//
40258 & ' junction strings not handled by MSTJ(12)>3 options')
40259 DO 570 JT=1,2
40260 NJS(JT)=0
40261 IF(MJU(JT).EQ.0) GOTO 570
40262 JS=3-2*JT
40263
40264
40265 DO 220 IU=1,3
40266 IJU(IU)=0
40267 DO 210 J=1,5
40268 PJU(IU,J)=0D0
40269 210 CONTINUE
40270 220 CONTINUE
40271 IU=0
40272 DO 240 I1=N+1+(JT-1)*(NR-1),N+NR+(JT-1)*(1-NR),JS
40273 IF(K(I1,2).NE.21.AND.IU.LE.2) THEN
40274 IU=IU+1
40275 IJU(IU)=I1
40276 ENDIF
40277 DO 230 J=1,4
40278 PJU(IU,J)=PJU(IU,J)+P(I1,J)
40279 230 CONTINUE
40280 240 CONTINUE
40281 DO 250 IU=1,3
40282 PJU(IU,5)=SQRT(PJU(IU,1)**2+PJU(IU,2)**2+PJU(IU,3)**2)
40283 250 CONTINUE
40284 IF(K(IJU(3),2)/100.NE.10*K(IJU(1),2)+K(IJU(2),2).AND.
40285 & K(IJU(3),2)/100.NE.10*K(IJU(2),2)+K(IJU(1),2)) THEN
40286 CALL PYERRM(12,'(PYSTRF:) unphysical flavour combination')
40287 IF(MSTU(21).GE.1) RETURN
40288 ENDIF
40289
40290
40291 T12=(PJU(1,1)*PJU(2,1)+PJU(1,2)*PJU(2,2)+PJU(1,3)*PJU(2,3))/
40292 & (PJU(1,5)*PJU(2,5))
40293 T13=(PJU(1,1)*PJU(3,1)+PJU(1,2)*PJU(3,2)+PJU(1,3)*PJU(3,3))/
40294 & (PJU(1,5)*PJU(3,5))
40295 T23=(PJU(2,1)*PJU(3,1)+PJU(2,2)*PJU(3,2)+PJU(2,3)*PJU(3,3))/
40296 & (PJU(2,5)*PJU(3,5))
40297 T11=SQRT((2D0/3D0)*(1D0-T12)*(1D0-T13)/(1D0-T23))
40298 T22=SQRT((2D0/3D0)*(1D0-T12)*(1D0-T23)/(1D0-T13))
40299 TSQ=SQRT((2D0*T11*T22+T12-1D0)*(1D0+T12))
40300 T1F=(TSQ-T22*(1D0+T12))/(1D0-T12**2)
40301 T2F=(TSQ-T11*(1D0+T12))/(1D0-T12**2)
40302 DO 260 J=1,3
40303 TJU(J)=-(T1F*PJU(1,J)/PJU(1,5)+T2F*PJU(2,J)/PJU(2,5))
40304 260 CONTINUE
40305 TJU(4)=SQRT(1D0+TJU(1)**2+TJU(2)**2+TJU(3)**2)
40306 DO 270 IU=1,3
40307 PJU(IU,5)=TJU(4)*PJU(IU,4)-TJU(1)*PJU(IU,1)-TJU(2)*PJU(IU,2)-
40308 & TJU(3)*PJU(IU,3)
40309 270 CONTINUE
40310
40311
40312 IF(PJU(1,5)+PJU(2,5).GT.PJU(1,4)+PJU(2,4)) THEN
40313 DO 280 J=1,3
40314 TJU(J)=0D0
40315 280 CONTINUE
40316 TJU(4)=1D0
40317 PJU(1,5)=PJU(1,4)
40318 PJU(2,5)=PJU(2,4)
40319 PJU(3,5)=PJU(3,4)
40320 ENDIF
40321
40322
40323 ISTA=I
40324 DO 550 IU=1,2
40325 NS=IJU(IU+1)-IJU(IU)
40326
40327
40328 DO 310 IS=1,NS
40329 IS1=IJU(IU)+IS-1
40330 IS2=IJU(IU)+IS
40331 DO 290 J=1,5
40332 DP(1,J)=0.5D0*P(IS1,J)
40333 IF(IS.EQ.1) DP(1,J)=P(IS1,J)
40334 DP(2,J)=0.5D0*P(IS2,J)
40335 IF(IS.EQ.NS) DP(2,J)=-PJU(IU,J)
40336 290 CONTINUE
40337 IF(IS.EQ.NS) DP(2,4)=SQRT(PJU(IU,1)**2+PJU(IU,2)**2+
40338 & PJU(IU,3)**2)
40339 IF(IS.EQ.NS) DP(2,5)=0D0
40340 DP(3,5)=DFOUR(1,1)
40341 DP(4,5)=DFOUR(2,2)
40342 DHKC=DFOUR(1,2)
40343 IF(DP(3,5)+2D0*DHKC+DP(4,5).LE.0D0) THEN
40344 DP(1,4)=SQRT(DP(1,1)**2+DP(1,2)**2+DP(1,3)**2)
40345 DP(2,4)=SQRT(DP(2,1)**2+DP(2,2)**2+DP(2,3)**2)
40346 DP(3,5)=0D0
40347 DP(4,5)=0D0
40348 DHKC=DFOUR(1,2)
40349 ENDIF
40350 DHKS=SQRT(DHKC**2-DP(3,5)*DP(4,5))
40351 DHK1=0.5D0*((DP(4,5)+DHKC)/DHKS-1D0)
40352 DHK2=0.5D0*((DP(3,5)+DHKC)/DHKS-1D0)
40353 IN1=N+NR+4*IS-3
40354 P(IN1,5)=SQRT(DP(3,5)+2D0*DHKC+DP(4,5))
40355 DO 300 J=1,4
40356 P(IN1,J)=(1D0+DHK1)*DP(1,J)-DHK2*DP(2,J)
40357 P(IN1+1,J)=(1D0+DHK2)*DP(2,J)-DHK1*DP(1,J)
40358 300 CONTINUE
40359 310 CONTINUE
40360
40361
40362 ISAV=I
40363 MSTU91=MSTU(90)
40364 320 NTRY=NTRY+1
40365 IF(NTRY.GT.100.AND.NTRYR.LE.4) THEN
40366 PARU12=4D0*PARU12
40367 PARU13=2D0*PARU13
40368 GOTO 140
40369 ELSEIF(NTRY.GT.100) THEN
40370 CALL PYERRM(14,'(PYSTRF:) caught in infinite loop')
40371 IF(MSTU(21).GE.1) RETURN
40372 ENDIF
40373 I=ISAV
40374 MSTU(90)=MSTU91
40375 IRANKJ=0
40376 IE(1)=K(N+1+(JT/2)*(NP-1),3)
40377 IN(4)=N+NR+1
40378 IN(5)=IN(4)+1
40379 IN(6)=N+NR+4*NS+1
40380 DO 340 JQ=1,2
40381 DO 330 IN1=N+NR+2+JQ,N+NR+4*NS-2+JQ,4
40382 P(IN1,1)=2-JQ
40383 P(IN1,2)=JQ-1
40384 P(IN1,3)=1D0
40385 330 CONTINUE
40386 340 CONTINUE
40387 KFL(1)=K(IJU(IU),2)
40388 PX(1)=0D0
40389 PY(1)=0D0
40390 GAM(1)=0D0
40391 DO 350 J=1,5
40392 PJU(IU+3,J)=0D0
40393 350 CONTINUE
40394
40395
40396 DO 360 J=1,4
40397 DP(1,J)=P(IN(4),J)
40398 DP(2,J)=P(IN(4)+1,J)
40399 DP(3,J)=0D0
40400 DP(4,J)=0D0
40401 360 CONTINUE
40402 DP(1,4)=SQRT(DP(1,1)**2+DP(1,2)**2+DP(1,3)**2)
40403 DP(2,4)=SQRT(DP(2,1)**2+DP(2,2)**2+DP(2,3)**2)
40404 DP(5,1)=DP(1,1)/DP(1,4)-DP(2,1)/DP(2,4)
40405 DP(5,2)=DP(1,2)/DP(1,4)-DP(2,2)/DP(2,4)
40406 DP(5,3)=DP(1,3)/DP(1,4)-DP(2,3)/DP(2,4)
40407 IF(DP(5,1)**2.LE.DP(5,2)**2+DP(5,3)**2) DP(3,1)=1D0
40408 IF(DP(5,1)**2.GT.DP(5,2)**2+DP(5,3)**2) DP(3,3)=1D0
40409 IF(DP(5,2)**2.LE.DP(5,1)**2+DP(5,3)**2) DP(4,2)=1D0
40410 IF(DP(5,2)**2.GT.DP(5,1)**2+DP(5,3)**2) DP(4,3)=1D0
40411 DHC12=DFOUR(1,2)
40412 DHCX1=DFOUR(3,1)/DHC12
40413 DHCX2=DFOUR(3,2)/DHC12
40414 DHCXX=1D0/SQRT(1D0+2D0*DHCX1*DHCX2*DHC12)
40415 DHCY1=DFOUR(4,1)/DHC12
40416 DHCY2=DFOUR(4,2)/DHC12
40417 DHCYX=DHCXX*(DHCX1*DHCY2+DHCX2*DHCY1)*DHC12
40418 DHCYY=1D0/SQRT(1D0+2D0*DHCY1*DHCY2*DHC12-DHCYX**2)
40419 DO 370 J=1,4
40420 DP(3,J)=DHCXX*(DP(3,J)-DHCX2*DP(1,J)-DHCX1*DP(2,J))
40421 P(IN(6),J)=DP(3,J)
40422 P(IN(6)+1,J)=DHCYY*(DP(4,J)-DHCY2*DP(1,J)-DHCY1*DP(2,J)-
40423 & DHCYX*DP(3,J))
40424 370 CONTINUE
40425
40426
40427 380 I=I+1
40428 IF(2*I-NSAV.GE.MSTU(4)-MSTU(32)-5) THEN
40429 CALL PYERRM(11,'(PYSTRF:) no more memory left in PYJETS')
40430 IF(MSTU(21).GE.1) RETURN
40431 ENDIF
40432 IRANKJ=IRANKJ+1
40433 K(I,1)=1
40434 K(I,3)=IE(1)
40435 K(I,4)=0
40436 K(I,5)=0
40437
40438
40439 390 CALL PYKFDI(KFL(1),0,KFL(3),K(I,2))
40440 IF(K(I,2).EQ.0) GOTO 320
40441 IF(IRANKJ.EQ.1.AND.IABS(KFL(1)).LE.10.AND.
40442 & IABS(KFL(3)).GT.10) THEN
40443 IF(PYR(0).GT.PARJ(19)) GOTO 390
40444 ENDIF
40445 P(I,5)=PYMASS(K(I,2))
40446 CALL PYPTDI(KFL(1),PX(3),PY(3))
40447 PR(1)=P(I,5)**2+(PX(1)+PX(3))**2+(PY(1)+PY(3))**2
40448 CALL PYZDIS(KFL(1),KFL(3),PR(1),Z)
40449 IF(IABS(KFL(1)).GE.4.AND.IABS(KFL(1)).LE.8.AND.
40450 & MSTU(90).LT.8) THEN
40451 MSTU(90)=MSTU(90)+1
40452 MSTU(90+MSTU(90))=I
40453 PARU(90+MSTU(90))=Z
40454 ENDIF
40455 GAM(3)=(1D0-Z)*(GAM(1)+PR(1)/Z)
40456 DO 400 J=1,3
40457 IN(J)=IN(3+J)
40458 400 CONTINUE
40459
40460
40461 IF(IN(1)+1.EQ.IN(2).AND.Z*P(IN(1)+2,3)*P(IN(2)+2,3)*
40462 & P(IN(1),5)**2.GE.PR(1)) THEN
40463 P(IN(1)+2,4)=Z*P(IN(1)+2,3)
40464 P(IN(2)+2,4)=PR(1)/(P(IN(1)+2,4)*P(IN(1),5)**2)
40465 DO 410 J=1,4
40466 P(I,J)=(PX(1)+PX(3))*P(IN(3),J)+(PY(1)+PY(3))*P(IN(3)+1,J)
40467 410 CONTINUE
40468 GOTO 500
40469 ELSEIF(IN(1)+1.EQ.IN(2)) THEN
40470 P(IN(2)+2,4)=P(IN(2)+2,3)
40471 P(IN(2)+2,1)=1D0
40472 IN(2)=IN(2)+4
40473 IF(IN(2).GT.N+NR+4*NS) GOTO 320
40474 IF(FOUR(IN(1),IN(2)).LE.1D-2) THEN
40475 P(IN(1)+2,4)=P(IN(1)+2,3)
40476 P(IN(1)+2,1)=0D0
40477 IN(1)=IN(1)+4
40478 ENDIF
40479 ENDIF
40480
40481
40482 420 IF(IN(1).GT.N+NR+4*NS.OR.IN(2).GT.N+NR+4*NS.OR.
40483 & IN(1).GT.IN(2)) GOTO 320
40484 IF(IN(1).NE.IN(4).OR.IN(2).NE.IN(5)) THEN
40485 DO 430 J=1,4
40486 DP(1,J)=P(IN(1),J)
40487 DP(2,J)=P(IN(2),J)
40488 DP(3,J)=0D0
40489 DP(4,J)=0D0
40490 430 CONTINUE
40491 DP(1,4)=SQRT(DP(1,1)**2+DP(1,2)**2+DP(1,3)**2)
40492 DP(2,4)=SQRT(DP(2,1)**2+DP(2,2)**2+DP(2,3)**2)
40493 DHC12=DFOUR(1,2)
40494 IF(DHC12.LE.1D-2) THEN
40495 P(IN(1)+2,4)=P(IN(1)+2,3)
40496 P(IN(1)+2,1)=0D0
40497 IN(1)=IN(1)+4
40498 GOTO 420
40499 ENDIF
40500 IN(3)=N+NR+4*NS+5
40501 DP(5,1)=DP(1,1)/DP(1,4)-DP(2,1)/DP(2,4)
40502 DP(5,2)=DP(1,2)/DP(1,4)-DP(2,2)/DP(2,4)
40503 DP(5,3)=DP(1,3)/DP(1,4)-DP(2,3)/DP(2,4)
40504 IF(DP(5,1)**2.LE.DP(5,2)**2+DP(5,3)**2) DP(3,1)=1D0
40505 IF(DP(5,1)**2.GT.DP(5,2)**2+DP(5,3)**2) DP(3,3)=1D0
40506 IF(DP(5,2)**2.LE.DP(5,1)**2+DP(5,3)**2) DP(4,2)=1D0
40507 IF(DP(5,2)**2.GT.DP(5,1)**2+DP(5,3)**2) DP(4,3)=1D0
40508 DHCX1=DFOUR(3,1)/DHC12
40509 DHCX2=DFOUR(3,2)/DHC12
40510 DHCXX=1D0/SQRT(1D0+2D0*DHCX1*DHCX2*DHC12)
40511 DHCY1=DFOUR(4,1)/DHC12
40512 DHCY2=DFOUR(4,2)/DHC12
40513 DHCYX=DHCXX*(DHCX1*DHCY2+DHCX2*DHCY1)*DHC12
40514 DHCYY=1D0/SQRT(1D0+2D0*DHCY1*DHCY2*DHC12-DHCYX**2)
40515 DO 440 J=1,4
40516 DP(3,J)=DHCXX*(DP(3,J)-DHCX2*DP(1,J)-DHCX1*DP(2,J))
40517 P(IN(3),J)=DP(3,J)
40518 P(IN(3)+1,J)=DHCYY*(DP(4,J)-DHCY2*DP(1,J)-DHCY1*DP(2,J)-
40519 & DHCYX*DP(3,J))
40520 440 CONTINUE
40521
40522 PXP=-(PX(3)*FOUR(IN(6),IN(3))+PY(3)*FOUR(IN(6)+1,IN(3)))
40523 PYP=-(PX(3)*FOUR(IN(6),IN(3)+1)+PY(3)*FOUR(IN(6)+1,IN(3)+1))
40524 IF(ABS(PXP**2+PYP**2-PX(3)**2-PY(3)**2).LT.0.01D0) THEN
40525 PX(3)=PXP
40526 PY(3)=PYP
40527 ENDIF
40528 ENDIF
40529
40530
40531 DO 470 J=1,4
40532 DHG(J)=0D0
40533 P(I,J)=PX(1)*P(IN(6),J)+PY(1)*P(IN(6)+1,J)+PX(3)*P(IN(3),J)+
40534 & PY(3)*P(IN(3)+1,J)
40535 DO 450 IN1=IN(4),IN(1)-4,4
40536 P(I,J)=P(I,J)+P(IN1+2,3)*P(IN1,J)
40537 450 CONTINUE
40538 DO 460 IN2=IN(5),IN(2)-4,4
40539 P(I,J)=P(I,J)+P(IN2+2,3)*P(IN2,J)
40540 460 CONTINUE
40541 470 CONTINUE
40542 DHM(1)=FOUR(I,I)
40543 DHM(2)=2D0*FOUR(I,IN(1))
40544 DHM(3)=2D0*FOUR(I,IN(2))
40545 DHM(4)=2D0*FOUR(IN(1),IN(2))
40546
40547
40548 DO 490 IN2=IN(1)+1,IN(2),4
40549 DO 480 IN1=IN(1),IN2-1,4
40550 DHC=2D0*FOUR(IN1,IN2)
40551 DHG(1)=DHG(1)+P(IN1+2,1)*P(IN2+2,1)*DHC
40552 IF(IN1.EQ.IN(1)) DHG(2)=DHG(2)-P(IN2+2,1)*DHC
40553 IF(IN2.EQ.IN(2)) DHG(3)=DHG(3)+P(IN1+2,1)*DHC
40554 IF(IN1.EQ.IN(1).AND.IN2.EQ.IN(2)) DHG(4)=DHG(4)-DHC
40555 480 CONTINUE
40556 490 CONTINUE
40557
40558
40559 DHS1=DHM(3)*DHG(4)-DHM(4)*DHG(3)
40560 IF(ABS(DHS1).LT.1D-4) GOTO 320
40561 DHS2=DHM(4)*(GAM(3)-DHG(1))-DHM(2)*DHG(3)-DHG(4)*
40562 & (P(I,5)**2-DHM(1))+DHG(2)*DHM(3)
40563 DHS3=DHM(2)*(GAM(3)-DHG(1))-DHG(2)*(P(I,5)**2-DHM(1))
40564 P(IN(2)+2,4)=0.5D0*(SQRT(MAX(0D0,DHS2**2-4D0*DHS1*DHS3))/
40565 & ABS(DHS1)-DHS2/DHS1)
40566 IF(DHM(2)+DHM(4)*P(IN(2)+2,4).LE.0D0) GOTO 320
40567 P(IN(1)+2,4)=(P(I,5)**2-DHM(1)-DHM(3)*P(IN(2)+2,4))/
40568 & (DHM(2)+DHM(4)*P(IN(2)+2,4))
40569
40570
40571 IF(P(IN(2)+2,4).GT.P(IN(2)+2,3)) THEN
40572 P(IN(2)+2,4)=P(IN(2)+2,3)
40573 P(IN(2)+2,1)=1D0
40574 IN(2)=IN(2)+4
40575 IF(IN(2).GT.N+NR+4*NS) GOTO 320
40576 IF(FOUR(IN(1),IN(2)).LE.1D-2) THEN
40577 P(IN(1)+2,4)=P(IN(1)+2,3)
40578 P(IN(1)+2,1)=0D0
40579 IN(1)=IN(1)+4
40580 ENDIF
40581 GOTO 420
40582 ELSEIF(P(IN(1)+2,4).GT.P(IN(1)+2,3)) THEN
40583 P(IN(1)+2,4)=P(IN(1)+2,3)
40584 P(IN(1)+2,1)=0D0
40585 IN(1)=IN(1)+JS
40586 GOTO 890
40587 ENDIF
40588
40589
40590 500 DO 510 J=1,4
40591 P(I,J)=P(I,J)+P(IN(1)+2,4)*P(IN(1),J)+
40592 & P(IN(2)+2,4)*P(IN(2),J)
40593 PJU(IU+3,J)=PJU(IU+3,J)+P(I,J)
40594 510 CONTINUE
40595 IF(P(I,4).LT.P(I,5)) GOTO 320
40596 PJU(IU+3,5)=TJU(4)*PJU(IU+3,4)-TJU(1)*PJU(IU+3,1)-
40597 & TJU(2)*PJU(IU+3,2)-TJU(3)*PJU(IU+3,3)
40598 IF(PJU(IU+3,5).LT.PJU(IU,5)) THEN
40599 KFL(1)=-KFL(3)
40600 PX(1)=-PX(3)
40601 PY(1)=-PY(3)
40602 GAM(1)=GAM(3)
40603 IF(IN(3).NE.IN(6)) THEN
40604 DO 520 J=1,4
40605 P(IN(6),J)=P(IN(3),J)
40606 P(IN(6)+1,J)=P(IN(3)+1,J)
40607 520 CONTINUE
40608 ENDIF
40609 DO 530 JQ=1,2
40610 IN(3+JQ)=IN(JQ)
40611 P(IN(JQ)+2,3)=P(IN(JQ)+2,3)-P(IN(JQ)+2,4)
40612 P(IN(JQ)+2,1)=P(IN(JQ)+2,1)-(3-2*JQ)*P(IN(JQ)+2,4)
40613 530 CONTINUE
40614 GOTO 380
40615 ENDIF
40616
40617
40618 IF(IABS(KFL(1)).GT.10) GOTO 320
40619 I=I-1
40620 KFJH(IU)=KFL(1)
40621 DO 540 J=1,4
40622 PJU(IU+3,J)=PJU(IU+3,J)-P(I+1,J)
40623 540 CONTINUE
40624 550 CONTINUE
40625
40626
40627 NJS(JT)=I-ISTA
40628 KFJS(JT)=K(K(MJU(JT+2),3),2)
40629 KFLS=2*INT(PYR(0)+3D0*PARJ(4)/(1D0+3D0*PARJ(4)))+1
40630 IF(KFJH(1).EQ.KFJH(2)) KFLS=3
40631 IF(ISTA.NE.I) KFJS(JT)=ISIGN(1000*MAX(IABS(KFJH(1)),
40632 & IABS(KFJH(2)))+100*MIN(IABS(KFJH(1)),IABS(KFJH(2)))+
40633 & KFLS,KFJH(1))
40634 DO 560 J=1,4
40635 PJS(JT,J)=PJU(1,J)+PJU(2,J)+P(MJU(JT),J)
40636 PJS(JT+2,J)=PJU(4,J)+PJU(5,J)
40637 560 CONTINUE
40638 PJS(JT,5)=SQRT(MAX(0D0,PJS(JT,4)**2-PJS(JT,1)**2-PJS(JT,2)**2-
40639 & PJS(JT,3)**2))
40640 570 CONTINUE
40641
40642
40643 580 IF(MJU(1).NE.0.AND.MJU(2).NE.0) THEN
40644 NS=MJU(2)-MJU(1)
40645 NB=MJU(1)-N
40646 ELSEIF(MJU(1).NE.0) THEN
40647 NS=N+NR-MJU(1)
40648 NB=MJU(1)-N
40649 ELSEIF(MJU(2).NE.0) THEN
40650 NS=MJU(2)-N
40651 NB=1
40652 ELSEIF(IABS(K(N+1,2)).NE.21) THEN
40653 NS=NR-1
40654 NB=1
40655 ELSE
40656 NS=NR+1
40657 W2SUM=0D0
40658 DO 590 IS=1,NR
40659 P(N+NR+IS,1)=0.5D0*FOUR(N+IS,N+IS+1-NR*(IS/NR))
40660 W2SUM=W2SUM+P(N+NR+IS,1)
40661 590 CONTINUE
40662 W2RAN=PYR(0)*W2SUM
40663 NB=0
40664 600 NB=NB+1
40665 W2SUM=W2SUM-P(N+NR+NB,1)
40666 IF(W2SUM.GT.W2RAN.AND.NB.LT.NR) GOTO 600
40667 ENDIF
40668
40669
40670 DO 630 IS=1,NS
40671 IS1=N+IS+NB-1-NR*((IS+NB-2)/NR)
40672 IS2=N+IS+NB-NR*((IS+NB-1)/NR)
40673 DO 610 J=1,5
40674 DP(1,J)=P(IS1,J)
40675 IF(IABS(K(IS1,2)).EQ.21) DP(1,J)=0.5D0*DP(1,J)
40676 IF(IS1.EQ.MJU(1)) DP(1,J)=PJS(1,J)-PJS(3,J)
40677 DP(2,J)=P(IS2,J)
40678 IF(IABS(K(IS2,2)).EQ.21) DP(2,J)=0.5D0*DP(2,J)
40679 IF(IS2.EQ.MJU(2)) DP(2,J)=PJS(2,J)-PJS(4,J)
40680 610 CONTINUE
40681 DP(3,5)=DFOUR(1,1)
40682 DP(4,5)=DFOUR(2,2)
40683 DHKC=DFOUR(1,2)
40684 IF(DP(3,5)+2D0*DHKC+DP(4,5).LE.0D0) THEN
40685 DP(3,5)=DP(1,5)**2
40686 DP(4,5)=DP(2,5)**2
40687 DP(1,4)=SQRT(DP(1,1)**2+DP(1,2)**2+DP(1,3)**2+DP(1,5)**2)
40688 DP(2,4)=SQRT(DP(2,1)**2+DP(2,2)**2+DP(2,3)**2+DP(2,5)**2)
40689 DHKC=DFOUR(1,2)
40690 ENDIF
40691 DHKS=SQRT(DHKC**2-DP(3,5)*DP(4,5))
40692 DHK1=0.5D0*((DP(4,5)+DHKC)/DHKS-1D0)
40693 DHK2=0.5D0*((DP(3,5)+DHKC)/DHKS-1D0)
40694 IN1=N+NR+4*IS-3
40695 P(IN1,5)=SQRT(DP(3,5)+2D0*DHKC+DP(4,5))
40696 DO 620 J=1,4
40697 P(IN1,J)=(1D0+DHK1)*DP(1,J)-DHK2*DP(2,J)
40698 P(IN1+1,J)=(1D0+DHK2)*DP(2,J)-DHK1*DP(1,J)
40699 620 CONTINUE
40700 630 CONTINUE
40701
40702
40703 ISAV=I
40704 MSTU91=MSTU(90)
40705 640 NTRY=NTRY+1
40706 IF(NTRY.GT.100.AND.NTRYR.LE.4) THEN
40707 PARU12=4D0*PARU12
40708 PARU13=2D0*PARU13
40709 GOTO 140
40710 ELSEIF(NTRY.GT.100) THEN
40711 CALL PYERRM(14,'(PYSTRF:) caught in infinite loop')
40712 IF(MSTU(21).GE.1) RETURN
40713 ENDIF
40714 I=ISAV
40715 MSTU(90)=MSTU91
40716 DO 660 J=1,4
40717 P(N+NRS,J)=0D0
40718 DO 650 IS=1,NR
40719 P(N+NRS,J)=P(N+NRS,J)+P(N+IS,J)
40720 650 CONTINUE
40721 660 CONTINUE
40722 DO 680 JT=1,2
40723 IRANK(JT)=0
40724 IF(MJU(JT).NE.0) IRANK(JT)=NJS(JT)
40725 IF(NS.GT.NR) IRANK(JT)=1
40726 IE(JT)=K(N+1+(JT/2)*(NP-1),3)
40727 IN(3*JT+1)=N+NR+1+4*(JT/2)*(NS-1)
40728 IN(3*JT+2)=IN(3*JT+1)+1
40729 IN(3*JT+3)=N+NR+4*NS+2*JT-1
40730 DO 670 IN1=N+NR+2+JT,N+NR+4*NS-2+JT,4
40731 P(IN1,1)=2-JT
40732 P(IN1,2)=JT-1
40733 P(IN1,3)=1D0
40734 670 CONTINUE
40735 680 CONTINUE
40736
40737 NRVMO=0
40738 XBMO=1D0
40739 MSTU(121)=0
40740 MSTU(122)=0
40741
40742
40743 IF(NS.LT.NR) THEN
40744 PX(1)=0D0
40745 PY(1)=0D0
40746 IF(NS.EQ.1.AND.MJU(1)+MJU(2).EQ.0) CALL PYPTDI(0,PX(1),PY(1))
40747 PX(2)=-PX(1)
40748 PY(2)=-PY(1)
40749 DO 690 JT=1,2
40750 KFL(JT)=K(IE(JT),2)
40751 IF(MJU(JT).NE.0) KFL(JT)=KFJS(JT)
40752 MSTJ(93)=1
40753 PMQ(JT)=PYMASS(KFL(JT))
40754 GAM(JT)=0D0
40755 690 CONTINUE
40756
40757
40758 ELSE
40759 KFL(3)=INT(1D0+(2D0+PARJ(2))*PYR(0))*(-1)**INT(PYR(0)+0.5D0)
40760 IBMO=0
40761 700 CALL PYKFDI(KFL(3),0,KFL(1),KDUMP)
40762
40763
40764 IF(IABS(KFL(1)).GT.10)THEN
40765 IBMO=1
40766 MSTU(121)=0
40767 GOTO 700
40768 ENDIF
40769 IF(IBMO.EQ.1) MSTU(121)=-1
40770 KFL(2)=-KFL(1)
40771 CALL PYPTDI(KFL(1),PX(1),PY(1))
40772 PX(2)=-PX(1)
40773 PY(2)=-PY(1)
40774 PR3=MIN(25D0,0.1D0*P(N+NR+1,5)**2)
40775 710 CALL PYZDIS(KFL(1),KFL(2),PR3,Z)
40776 ZR=PR3/(Z*P(N+NR+1,5)**2)
40777 IF(ZR.GE.1D0) GOTO 710
40778 DO 720 JT=1,2
40779 MSTJ(93)=1
40780 PMQ(JT)=PYMASS(KFL(JT))
40781 GAM(JT)=PR3*(1D0-Z)/Z
40782 IN1=N+NR+3+4*(JT/2)*(NS-1)
40783 P(IN1,JT)=1D0-Z
40784 P(IN1,3-JT)=JT-1
40785 P(IN1,3)=(2-JT)*(1D0-Z)+(JT-1)*Z
40786 P(IN1+1,JT)=ZR
40787 P(IN1+1,3-JT)=2-JT
40788 P(IN1+1,3)=(2-JT)*(1D0-ZR)+(JT-1)*ZR
40789 720 CONTINUE
40790 ENDIF
40791
40792 DO 730 JT=1,2
40793 XTMO(JT)=1D0
40794 PM2QMO(JT)=PMQ(JT)**2
40795 IF(IABS(KFL(JT)).GT.10) PM2QMO(JT)=0D0
40796 730 CONTINUE
40797
40798
40799 DO 770 JT=1,2
40800 IF(JT.EQ.1.OR.NS.EQ.NR-1) THEN
40801 IN1=IN(3*JT+1)
40802 IN3=IN(3*JT+3)
40803 DO 740 J=1,4
40804 DP(1,J)=P(IN1,J)
40805 DP(2,J)=P(IN1+1,J)
40806 DP(3,J)=0D0
40807 DP(4,J)=0D0
40808 740 CONTINUE
40809 DP(1,4)=SQRT(DP(1,1)**2+DP(1,2)**2+DP(1,3)**2)
40810 DP(2,4)=SQRT(DP(2,1)**2+DP(2,2)**2+DP(2,3)**2)
40811 DP(5,1)=DP(1,1)/DP(1,4)-DP(2,1)/DP(2,4)
40812 DP(5,2)=DP(1,2)/DP(1,4)-DP(2,2)/DP(2,4)
40813 DP(5,3)=DP(1,3)/DP(1,4)-DP(2,3)/DP(2,4)
40814 IF(DP(5,1)**2.LE.DP(5,2)**2+DP(5,3)**2) DP(3,1)=1D0
40815 IF(DP(5,1)**2.GT.DP(5,2)**2+DP(5,3)**2) DP(3,3)=1D0
40816 IF(DP(5,2)**2.LE.DP(5,1)**2+DP(5,3)**2) DP(4,2)=1D0
40817 IF(DP(5,2)**2.GT.DP(5,1)**2+DP(5,3)**2) DP(4,3)=1D0
40818 DHC12=DFOUR(1,2)
40819 DHCX1=DFOUR(3,1)/DHC12
40820 DHCX2=DFOUR(3,2)/DHC12
40821 DHCXX=1D0/SQRT(1D0+2D0*DHCX1*DHCX2*DHC12)
40822 DHCY1=DFOUR(4,1)/DHC12
40823 DHCY2=DFOUR(4,2)/DHC12
40824 DHCYX=DHCXX*(DHCX1*DHCY2+DHCX2*DHCY1)*DHC12
40825 DHCYY=1D0/SQRT(1D0+2D0*DHCY1*DHCY2*DHC12-DHCYX**2)
40826 DO 750 J=1,4
40827 DP(3,J)=DHCXX*(DP(3,J)-DHCX2*DP(1,J)-DHCX1*DP(2,J))
40828 P(IN3,J)=DP(3,J)
40829 P(IN3+1,J)=DHCYY*(DP(4,J)-DHCY2*DP(1,J)-DHCY1*DP(2,J)-
40830 & DHCYX*DP(3,J))
40831 750 CONTINUE
40832 ELSE
40833 DO 760 J=1,4
40834 P(IN3+2,J)=P(IN3,J)
40835 P(IN3+3,J)=P(IN3+1,J)
40836 760 CONTINUE
40837 ENDIF
40838 770 CONTINUE
40839
40840
40841 IF(MJU(1)+MJU(2).GT.0) THEN
40842 DO 790 JT=1,2
40843 IF(NJS(JT).EQ.0) GOTO 790
40844 DO 780 J=1,4
40845 P(N+NRS,J)=P(N+NRS,J)-PJS(JT+2,J)
40846 780 CONTINUE
40847 790 CONTINUE
40848 ENDIF
40849
40850
40851 800 I=I+1
40852 IF(2*I-NSAV.GE.MSTU(4)-MSTU(32)-5) THEN
40853 CALL PYERRM(11,'(PYSTRF:) no more memory left in PYJETS')
40854 IF(MSTU(21).GE.1) RETURN
40855 ENDIF
40856
40857 IF(MSTU(121).LE.0)THEN
40858 JT=1.5D0+PYR(0)
40859 IF(IABS(KFL(3-JT)).GT.10) JT=3-JT
40860 IF(IABS(KFL(3-JT)).GE.4.AND.IABS(KFL(3-JT)).LE.8) JT=3-JT
40861 ENDIF
40862 JR=3-JT
40863 JS=3-2*JT
40864 IRANK(JT)=IRANK(JT)+1
40865 K(I,1)=1
40866 K(I,3)=IE(JT)
40867 K(I,4)=0
40868 K(I,5)=0
40869
40870
40871 810 CONTINUE
40872 CALL PYKFDI(KFL(JT),0,KFL(3),K(I,2))
40873 IF(K(I,2).EQ.0) GOTO 640
40874 MU90MO=MSTU(90)
40875 IF(MSTU(121).EQ.-1) GOTO 840
40876 IF(IRANK(JT).EQ.1.AND.IABS(KFL(JT)).LE.10.AND.
40877 &IABS(KFL(3)).GT.10) THEN
40878 IF(PYR(0).GT.PARJ(19)) GOTO 810
40879 ENDIF
40880 P(I,5)=PYMASS(K(I,2))
40881 CALL PYPTDI(KFL(JT),PX(3),PY(3))
40882 PR(JT)=P(I,5)**2+(PX(JT)+PX(3))**2+(PY(JT)+PY(3))**2
40883
40884
40885 MSTJ(93)=1
40886 PMQ(3)=PYMASS(KFL(3))
40887 PARJST=PARJ(33)
40888 IF(MSTJ(11).EQ.2) PARJST=PARJ(34)
40889 WMIN=PARJST+PMQ(1)+PMQ(2)+PARJ(36)*PMQ(3)
40890 IF(IABS(KFL(JT)).GT.10.AND.IABS(KFL(3)).GT.10) WMIN=
40891 &WMIN-0.5D0*PARJ(36)*PMQ(3)
40892 WREM2=FOUR(N+NRS,N+NRS)
40893 IF(WREM2.LT.0.10D0) GOTO 640
40894 IF(WREM2.LT.MAX(WMIN*(1D0+(2D0*PYR(0)-1D0)*PARJ(37)),
40895 &PARJ(32)+PMQ(1)+PMQ(2))**2) GOTO 1010
40896
40897
40898 CALL PYZDIS(KFL(JT),KFL(3),PR(JT),Z)
40899 IF(IABS(KFL(JT)).GE.4.AND.IABS(KFL(JT)).LE.8.AND.
40900 &MSTU(90).LT.8) THEN
40901 MSTU(90)=MSTU(90)+1
40902 MSTU(90+MSTU(90))=I
40903 PARU(90+MSTU(90))=Z
40904 ENDIF
40905 KFL1A=IABS(KFL(1))
40906 KFL2A=IABS(KFL(2))
40907 IF(MAX(MOD(KFL1A,10),MOD(KFL1A/1000,10),MOD(KFL2A,10),
40908 &MOD(KFL2A/1000,10)).GE.4) THEN
40909 PR(JR)=(PMQ(JR)+PMQ(3))**2+(PX(JR)-PX(3))**2+(PY(JR)-PY(3))**2
40910 PW12=SQRT(MAX(0D0,(WREM2-PR(1)-PR(2))**2-4D0*PR(1)*PR(2)))
40911 Z=(WREM2+PR(JT)-PR(JR)+PW12*(2D0*Z-1D0))/(2D0*WREM2)
40912 PR(JR)=(PMQ(JR)+PARJST)**2+(PX(JR)-PX(3))**2+(PY(JR)-PY(3))**2
40913 IF((1D0-Z)*(WREM2-PR(JT)/Z).LT.PR(JR)) GOTO 1010
40914 ENDIF
40915 GAM(3)=(1D0-Z)*(GAM(JT)+PR(JT)/Z)
40916
40917
40918 XTMO3=(1D0-Z)*XTMO(JT)
40919 IF(IABS(KFL(3)).LE.10) NRVMO=0
40920 IF(IABS(KFL(3)).GT.10.AND.MSTJ(12).GE.4) THEN
40921 GTSTMO=1D0
40922 PTSTMO=1D0
40923 RTSTMO=PYR(0)
40924 IF(IABS(KFL(JT)).LE.10)THEN
40925 XBMO=MIN(XTMO3,1D0-(2D-10))
40926 GBMO=GAM(3)
40927 PMMO=0D0
40928 PGMO=GBMO+LOG(1D0-XBMO)*PM2QMO(JT)
40929 GTSTMO=1D0-PARF(192)**PGMO
40930 ELSE
40931 IF(IRANK(JT).EQ.1) THEN
40932 GBMO=GAM(JT)
40933 PMMO=0D0
40934 XBMO=1D0
40935 ENDIF
40936 IF(XBMO.LT.1D0-(1D-10))THEN
40937 PGNMO=GBMO*XTMO3/XBMO+PM2QMO(JT)*LOG(1D0-XTMO3)
40938 GTSTMO=(1D0-PARF(192)**PGNMO)/(1D0-PARF(192)**PGMO)
40939 PGMO=PGNMO
40940 ENDIF
40941 IF(MSTJ(12).GE.5)THEN
40942 PMNMO=SQRT((XBMO-XTMO3)*(GAM(3)/XTMO3-GBMO/XBMO))
40943 PMMO=PMMO+PMAS(PYCOMP(K(I,2)),1)-PMAS(PYCOMP(K(I,2)),3)
40944 PTSTMO=EXP((PMMO-PMNMO)*PARF(193))
40945 PMMO=PMNMO
40946 ENDIF
40947 ENDIF
40948
40949
40950 IF(PTSTMO*GTSTMO.GT.RTSTMO) THEN
40951 IF(IRANK(JT).EQ.1.OR.IABS(KFL(JT)).LE.10) THEN
40952 NRVMO=I-N-NR
40953 IF(I+NRVMO.GT.MSTU(4)-MSTU(32)-5) THEN
40954 CALL PYERRM(11,
40955 & '(PYSTRF:) no more memory left in PYJETS')
40956 IF(MSTU(21).GE.1) RETURN
40957 ENDIF
40958 IMO=I
40959 KFLMO=KFL(JT)
40960 PMQMO=PMQ(JT)
40961 PXMO=PX(JT)
40962 PYMO=PY(JT)
40963 GAMMO=GAM(JT)
40964 IRMO=IRANK(JT)
40965 XMO=XTMO(JT)
40966 DO 830 J=1,9
40967 IF(J.LE.5) THEN
40968 DO 820 LINE=1,I-N-NR
40969 P(MSTU(4)-MSTU(32)-LINE,J)=P(N+NR+LINE,J)
40970 K(MSTU(4)-MSTU(32)-LINE,J)=K(N+NR+LINE,J)
40971 820 CONTINUE
40972 ENDIF
40973 INMO(J)=IN(J)
40974 830 CONTINUE
40975 ENDIF
40976 ELSE
40977
40978 MSTU(121)=-1
40979 IF(PTSTMO.GT.RTSTMO) MSTU(121)=-2
40980 ENDIF
40981 ENDIF
40982
40983
40984
40985 840 IF(MSTU(121).LT.0) THEN
40986 IF(MSTU(121).EQ.-2) MSTU(121)=0
40987 MSTU(90)=MU90MO
40988 NRVMO=0
40989 IF(IRANK(JT).EQ.1.OR.IABS(KFL(JT)).LE.10) GOTO 810
40990 I=IMO
40991 KFL(JT)=KFLMO
40992 PMQ(JT)=PMQMO
40993 PX(JT)=PXMO
40994 PY(JT)=PYMO
40995 GAM(JT)=GAMMO
40996 IRANK(JT)=IRMO
40997 XTMO(JT)=XMO
40998 DO 860 J=1,9
40999 IF(J.LE.5) THEN
41000 DO 850 LINE=1,I-N-NR
41001 P(N+NR+LINE,J)=P(MSTU(4)-MSTU(32)-LINE,J)
41002 K(N+NR+LINE,J)=K(MSTU(4)-MSTU(32)-LINE,J)
41003 850 CONTINUE
41004 ENDIF
41005 IN(J)=INMO(J)
41006 860 CONTINUE
41007 GOTO 810
41008 ENDIF
41009 XTMO(JT)=XTMO3
41010
41011
41012 DO 870 J=1,3
41013 IN(J)=IN(3*JT+J)
41014 870 CONTINUE
41015
41016
41017 IF(IN(1)+1.EQ.IN(2).AND.Z*P(IN(1)+2,3)*P(IN(2)+2,3)*
41018 &P(IN(1),5)**2.GE.PR(JT)) THEN
41019 P(IN(JT)+2,4)=Z*P(IN(JT)+2,3)
41020 P(IN(JR)+2,4)=PR(JT)/(P(IN(JT)+2,4)*P(IN(1),5)**2)
41021 DO 880 J=1,4
41022 P(I,J)=(PX(JT)+PX(3))*P(IN(3),J)+(PY(JT)+PY(3))*P(IN(3)+1,J)
41023 880 CONTINUE
41024 GOTO 970
41025 ELSEIF(IN(1)+1.EQ.IN(2)) THEN
41026 P(IN(JR)+2,4)=P(IN(JR)+2,3)
41027 P(IN(JR)+2,JT)=1D0
41028 IN(JR)=IN(JR)+4*JS
41029 IF(JS*IN(JR).GT.JS*IN(4*JR)) GOTO 640
41030 IF(FOUR(IN(1),IN(2)).LE.1D-2) THEN
41031 P(IN(JT)+2,4)=P(IN(JT)+2,3)
41032 P(IN(JT)+2,JT)=0D0
41033 IN(JT)=IN(JT)+4*JS
41034 ENDIF
41035 ENDIF
41036
41037
41038 890 IF(JS*IN(1).GT.JS*IN(3*JR+1).OR.JS*IN(2).GT.JS*IN(3*JR+2).OR.
41039 &IN(1).GT.IN(2)) GOTO 640
41040 IF(IN(1).NE.IN(3*JT+1).OR.IN(2).NE.IN(3*JT+2)) THEN
41041 DO 900 J=1,4
41042 DP(1,J)=P(IN(1),J)
41043 DP(2,J)=P(IN(2),J)
41044 DP(3,J)=0D0
41045 DP(4,J)=0D0
41046 900 CONTINUE
41047 DP(1,4)=SQRT(DP(1,1)**2+DP(1,2)**2+DP(1,3)**2)
41048 DP(2,4)=SQRT(DP(2,1)**2+DP(2,2)**2+DP(2,3)**2)
41049 DHC12=DFOUR(1,2)
41050 IF(DHC12.LE.1D-2) THEN
41051 P(IN(JT)+2,4)=P(IN(JT)+2,3)
41052 P(IN(JT)+2,JT)=0D0
41053 IN(JT)=IN(JT)+4*JS
41054 GOTO 890
41055 ENDIF
41056 IN(3)=N+NR+4*NS+5
41057 DP(5,1)=DP(1,1)/DP(1,4)-DP(2,1)/DP(2,4)
41058 DP(5,2)=DP(1,2)/DP(1,4)-DP(2,2)/DP(2,4)
41059 DP(5,3)=DP(1,3)/DP(1,4)-DP(2,3)/DP(2,4)
41060 IF(DP(5,1)**2.LE.DP(5,2)**2+DP(5,3)**2) DP(3,1)=1D0
41061 IF(DP(5,1)**2.GT.DP(5,2)**2+DP(5,3)**2) DP(3,3)=1D0
41062 IF(DP(5,2)**2.LE.DP(5,1)**2+DP(5,3)**2) DP(4,2)=1D0
41063 IF(DP(5,2)**2.GT.DP(5,1)**2+DP(5,3)**2) DP(4,3)=1D0
41064 DHCX1=DFOUR(3,1)/DHC12
41065 DHCX2=DFOUR(3,2)/DHC12
41066 DHCXX=1D0/SQRT(1D0+2D0*DHCX1*DHCX2*DHC12)
41067 DHCY1=DFOUR(4,1)/DHC12
41068 DHCY2=DFOUR(4,2)/DHC12
41069 DHCYX=DHCXX*(DHCX1*DHCY2+DHCX2*DHCY1)*DHC12
41070 DHCYY=1D0/SQRT(1D0+2D0*DHCY1*DHCY2*DHC12-DHCYX**2)
41071 DO 910 J=1,4
41072 DP(3,J)=DHCXX*(DP(3,J)-DHCX2*DP(1,J)-DHCX1*DP(2,J))
41073 P(IN(3),J)=DP(3,J)
41074 P(IN(3)+1,J)=DHCYY*(DP(4,J)-DHCY2*DP(1,J)-DHCY1*DP(2,J)-
41075 & DHCYX*DP(3,J))
41076 910 CONTINUE
41077
41078 PXP=-(PX(3)*FOUR(IN(3*JT+3),IN(3))+PY(3)*
41079 & FOUR(IN(3*JT+3)+1,IN(3)))
41080 PYP=-(PX(3)*FOUR(IN(3*JT+3),IN(3)+1)+PY(3)*
41081 & FOUR(IN(3*JT+3)+1,IN(3)+1))
41082 IF(ABS(PXP**2+PYP**2-PX(3)**2-PY(3)**2).LT.0.01D0) THEN
41083 PX(3)=PXP
41084 PY(3)=PYP
41085 ENDIF
41086 ENDIF
41087
41088
41089 DO 940 J=1,4
41090 DHG(J)=0D0
41091 P(I,J)=PX(JT)*P(IN(3*JT+3),J)+PY(JT)*P(IN(3*JT+3)+1,J)+
41092 & PX(3)*P(IN(3),J)+PY(3)*P(IN(3)+1,J)
41093 DO 920 IN1=IN(3*JT+1),IN(1)-4*JS,4*JS
41094 P(I,J)=P(I,J)+P(IN1+2,3)*P(IN1,J)
41095 920 CONTINUE
41096 DO 930 IN2=IN(3*JT+2),IN(2)-4*JS,4*JS
41097 P(I,J)=P(I,J)+P(IN2+2,3)*P(IN2,J)
41098 930 CONTINUE
41099 940 CONTINUE
41100 DHM(1)=FOUR(I,I)
41101 DHM(2)=2D0*FOUR(I,IN(1))
41102 DHM(3)=2D0*FOUR(I,IN(2))
41103 DHM(4)=2D0*FOUR(IN(1),IN(2))
41104
41105
41106 DO 960 IN2=IN(1)+1,IN(2),4
41107 DO 950 IN1=IN(1),IN2-1,4
41108 DHC=2D0*FOUR(IN1,IN2)
41109 DHG(1)=DHG(1)+P(IN1+2,JT)*P(IN2+2,JT)*DHC
41110 IF(IN1.EQ.IN(1)) DHG(2)=DHG(2)-JS*P(IN2+2,JT)*DHC
41111 IF(IN2.EQ.IN(2)) DHG(3)=DHG(3)+JS*P(IN1+2,JT)*DHC
41112 IF(IN1.EQ.IN(1).AND.IN2.EQ.IN(2)) DHG(4)=DHG(4)-DHC
41113 950 CONTINUE
41114 960 CONTINUE
41115
41116
41117 DHS1=DHM(JR+1)*DHG(4)-DHM(4)*DHG(JR+1)
41118 IF(ABS(DHS1).LT.1D-4) GOTO 640
41119 DHS2=DHM(4)*(GAM(3)-DHG(1))-DHM(JT+1)*DHG(JR+1)-DHG(4)*
41120 &(P(I,5)**2-DHM(1))+DHG(JT+1)*DHM(JR+1)
41121 DHS3=DHM(JT+1)*(GAM(3)-DHG(1))-DHG(JT+1)*(P(I,5)**2-DHM(1))
41122 P(IN(JR)+2,4)=0.5D0*(SQRT(MAX(0D0,DHS2**2-4D0*DHS1*DHS3))/
41123 &ABS(DHS1)-DHS2/DHS1)
41124 IF(DHM(JT+1)+DHM(4)*P(IN(JR)+2,4).LE.0D0) GOTO 640
41125 P(IN(JT)+2,4)=(P(I,5)**2-DHM(1)-DHM(JR+1)*P(IN(JR)+2,4))/
41126 &(DHM(JT+1)+DHM(4)*P(IN(JR)+2,4))
41127
41128
41129 IF(P(IN(JR)+2,4).GT.P(IN(JR)+2,3)) THEN
41130 P(IN(JR)+2,4)=P(IN(JR)+2,3)
41131 P(IN(JR)+2,JT)=1D0
41132 IN(JR)=IN(JR)+4*JS
41133 IF(JS*IN(JR).GT.JS*IN(4*JR)) GOTO 640
41134 IF(FOUR(IN(1),IN(2)).LE.1D-2) THEN
41135 P(IN(JT)+2,4)=P(IN(JT)+2,3)
41136 P(IN(JT)+2,JT)=0D0
41137 IN(JT)=IN(JT)+4*JS
41138 ENDIF
41139 GOTO 890
41140 ELSEIF(P(IN(JT)+2,4).GT.P(IN(JT)+2,3)) THEN
41141 P(IN(JT)+2,4)=P(IN(JT)+2,3)
41142 P(IN(JT)+2,JT)=0D0
41143 IN(JT)=IN(JT)+4*JS
41144 GOTO 890
41145 ENDIF
41146
41147
41148 970 DO 980 J=1,4
41149 P(I,J)=P(I,J)+P(IN(1)+2,4)*P(IN(1),J)+P(IN(2)+2,4)*P(IN(2),J)
41150 P(N+NRS,J)=P(N+NRS,J)-P(I,J)
41151 980 CONTINUE
41152 IF(P(I,4).LT.P(I,5)) GOTO 640
41153 KFL(JT)=-KFL(3)
41154 PMQ(JT)=PMQ(3)
41155 PX(JT)=-PX(3)
41156 PY(JT)=-PY(3)
41157 GAM(JT)=GAM(3)
41158 IF(IN(3).NE.IN(3*JT+3)) THEN
41159 DO 990 J=1,4
41160 P(IN(3*JT+3),J)=P(IN(3),J)
41161 P(IN(3*JT+3)+1,J)=P(IN(3)+1,J)
41162 990 CONTINUE
41163 ENDIF
41164 DO 1000 JQ=1,2
41165 IN(3*JT+JQ)=IN(JQ)
41166 P(IN(JQ)+2,3)=P(IN(JQ)+2,3)-P(IN(JQ)+2,4)
41167 P(IN(JQ)+2,JT)=P(IN(JQ)+2,JT)-JS*(3-2*JQ)*P(IN(JQ)+2,4)
41168 1000 CONTINUE
41169 GOTO 800
41170
41171
41172 1010 I=I+1
41173 K(I,1)=1
41174 K(I,3)=IE(JR)
41175 K(I,4)=0
41176 K(I,5)=0
41177 CALL PYKFDI(KFL(JR),-KFL(3),KFLDMP,K(I,2))
41178 IF(K(I,2).EQ.0) GOTO 640
41179 P(I,5)=PYMASS(K(I,2))
41180 PR(JR)=P(I,5)**2+(PX(JR)-PX(3))**2+(PY(JR)-PY(3))**2
41181
41182
41183 JQ=1
41184 IF(P(IN(4)+2,3)*P(IN(5)+2,3)*FOUR(IN(4),IN(5)).LT.
41185 &P(IN(7)+2,3)*P(IN(8)+2,3)*FOUR(IN(7),IN(8))) JQ=2
41186 DHC12=FOUR(IN(3*JQ+1),IN(3*JQ+2))
41187 DHR1=FOUR(N+NRS,IN(3*JQ+2))/DHC12
41188 DHR2=FOUR(N+NRS,IN(3*JQ+1))/DHC12
41189 IF(IN(4).NE.IN(7).OR.IN(5).NE.IN(8)) THEN
41190 PX(3-JQ)=-FOUR(N+NRS,IN(3*JQ+3))-PX(JQ)
41191 PY(3-JQ)=-FOUR(N+NRS,IN(3*JQ+3)+1)-PY(JQ)
41192 PR(3-JQ)=P(I+(JT+JQ-3)**2-1,5)**2+(PX(3-JQ)+(2*JQ-3)*JS*
41193 & PX(3))**2+(PY(3-JQ)+(2*JQ-3)*JS*PY(3))**2
41194 ENDIF
41195
41196
41197 WREM2=WREM2+(PX(1)+PX(2))**2+(PY(1)+PY(2))**2
41198 FD=(SQRT(PR(1))+SQRT(PR(2)))/SQRT(WREM2)
41199 IF(MJU(1)+MJU(2).NE.0.AND.I.EQ.ISAV+2.AND.FD.GE.1D0) GOTO 200
41200 IF(FD.GE.1D0) GOTO 640
41201 FA=WREM2+PR(JT)-PR(JR)
41202 FB=SQRT(MAX(0D0,FA**2-4D0*WREM2*PR(JT)))
41203 PREVCF=PARJ(42)
41204 IF(MSTJ(11).EQ.2) PREVCF=PARJ(39)
41205 PREV=1D0/(1D0+EXP(MIN(50D0,PREVCF*FB)))
41206 FB=SIGN(FB,JS*(PYR(0)-PREV))
41207 KFL1A=IABS(KFL(1))
41208 KFL2A=IABS(KFL(2))
41209 IF(MAX(MOD(KFL1A,10),MOD(KFL1A/1000,10),MOD(KFL2A,10),
41210 &MOD(KFL2A/1000,10)).GE.6) FB=SIGN(SQRT(MAX(0D0,FA**2-
41211 &4D0*WREM2*PR(JT))),DBLE(JS))
41212 DO 1020 J=1,4
41213 P(I-1,J)=(PX(JT)+PX(3))*P(IN(3*JQ+3),J)+(PY(JT)+PY(3))*
41214 & P(IN(3*JQ+3)+1,J)+0.5D0*(DHR1*(FA+FB)*P(IN(3*JQ+1),J)+
41215 & DHR2*(FA-FB)*P(IN(3*JQ+2),J))/WREM2
41216 P(I,J)=P(N+NRS,J)-P(I-1,J)
41217 1020 CONTINUE
41218 IF(P(I-1,4).LT.P(I-1,5).OR.P(I,4).LT.P(I,5)) GOTO 640
41219
41220
41221 N=I-NRS+1
41222 DO 1030 I=NSAV+1,NSAV+NP
41223 IM=K(I,3)
41224 K(IM,1)=K(IM,1)+10
41225 IF(MSTU(16).NE.2) THEN
41226 K(IM,4)=NSAV+1
41227 K(IM,5)=NSAV+1
41228 ELSE
41229 K(IM,4)=NSAV+2
41230 K(IM,5)=N
41231 ENDIF
41232 1030 CONTINUE
41233
41234
41235 NSAV=NSAV+1
41236 K(NSAV,1)=11
41237 K(NSAV,2)=92
41238 K(NSAV,3)=IP
41239 K(NSAV,4)=NSAV+1
41240 K(NSAV,5)=N
41241 DO 1040 J=1,4
41242 P(NSAV,J)=DPS(J)
41243 V(NSAV,J)=V(IP,J)
41244 1040 CONTINUE
41245 P(NSAV,5)=SQRT(MAX(0D0,DPS(4)**2-DPS(1)**2-DPS(2)**2-DPS(3)**2))
41246 V(NSAV,5)=0D0
41247 DO 1060 I=NSAV+1,N
41248 DO 1050 J=1,5
41249 K(I,J)=K(I+NRS-1,J)
41250 P(I,J)=P(I+NRS-1,J)
41251 V(I,J)=0D0
41252 1050 CONTINUE
41253 1060 CONTINUE
41254 MSTU91=MSTU(90)
41255 DO 1070 IZ=MSTU90+1,MSTU91
41256 MSTU9T(IZ)=MSTU(90+IZ)-NRS+1-NSAV+N
41257 PARU9T(IZ)=PARU(90+IZ)
41258 1070 CONTINUE
41259 MSTU(90)=MSTU90
41260
41261
41262 DO 1090 I=NSAV+1,N
41263 DO 1080 J=1,5
41264 K(I-NSAV+N,J)=K(I,J)
41265 P(I-NSAV+N,J)=P(I,J)
41266 1080 CONTINUE
41267 1090 CONTINUE
41268 I1=NSAV
41269 DO 1120 I=N+1,2*N-NSAV
41270 IF(K(I,3).NE.IE(1)) GOTO 1120
41271 I1=I1+1
41272 DO 1100 J=1,5
41273 K(I1,J)=K(I,J)
41274 P(I1,J)=P(I,J)
41275 1100 CONTINUE
41276 IF(MSTU(16).NE.2) K(I1,3)=NSAV
41277 DO 1110 IZ=MSTU90+1,MSTU91
41278 IF(MSTU9T(IZ).EQ.I) THEN
41279 MSTU(90)=MSTU(90)+1
41280 MSTU(90+MSTU(90))=I1
41281 PARU(90+MSTU(90))=PARU9T(IZ)
41282 ENDIF
41283 1110 CONTINUE
41284 1120 CONTINUE
41285 DO 1150 I=2*N-NSAV,N+1,-1
41286 IF(K(I,3).EQ.IE(1)) GOTO 1150
41287 I1=I1+1
41288 DO 1130 J=1,5
41289 K(I1,J)=K(I,J)
41290 P(I1,J)=P(I,J)
41291 1130 CONTINUE
41292 IF(MSTU(16).NE.2) K(I1,3)=NSAV
41293 DO 1140 IZ=MSTU90+1,MSTU91
41294 IF(MSTU9T(IZ).EQ.I) THEN
41295 MSTU(90)=MSTU(90)+1
41296 MSTU(90+MSTU(90))=I1
41297 PARU(90+MSTU(90))=PARU9T(IZ)
41298 ENDIF
41299 1140 CONTINUE
41300 1150 CONTINUE
41301
41302
41303 IF(MBST.EQ.0) THEN
41304 MSTU(33)=1
41305 CALL PYROBO(NSAV+1,N,0D0,0D0,DPS(1)/DPS(4),DPS(2)/DPS(4),
41306 & DPS(3)/DPS(4))
41307 ELSE
41308 DO 1160 I=NSAV+1,N
41309 HHPMT=P(I,1)**2+P(I,2)**2+P(I,5)**2
41310 IF(P(I,3).GT.0D0) THEN
41311 HHPEZ=(P(I,4)+P(I,3))*HHBZ
41312 P(I,3)=0.5D0*(HHPEZ-HHPMT/HHPEZ)
41313 P(I,4)=0.5D0*(HHPEZ+HHPMT/HHPEZ)
41314 ELSE
41315 HHPEZ=(P(I,4)-P(I,3))/HHBZ
41316 P(I,3)=-0.5D0*(HHPEZ-HHPMT/HHPEZ)
41317 P(I,4)=0.5D0*(HHPEZ+HHPMT/HHPEZ)
41318 ENDIF
41319 1160 CONTINUE
41320 ENDIF
41321 DO 1180 I=NSAV+1,N
41322 DO 1170 J=1,4
41323 V(I,J)=V(IP,J)
41324 1170 CONTINUE
41325 1180 CONTINUE
41326
41327 RETURN
41328 END
41329
41330
41331
41332
41333
41334
41335
41336 SUBROUTINE PYINDF(IP)
41337
41338
41339 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
41340 IMPLICIT INTEGER(I-N)
41341 INTEGER PYK,PYCHGE,PYCOMP
41342
41343 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
41344 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
41345 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
41346 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
41347
41348 DIMENSION DPS(5),PSI(4),NFI(3),NFL(3),IFET(3),KFLF(3),
41349 &KFLO(2),PXO(2),PYO(2),WO(2)
41350
41351
41352 IF(MSTJ(12).GT.3) CALL PYERRM(9,'(PYINDF:) MSTJ(12)>3 options'//
41353 &' are not treated as expected in independent fragmentation')
41354
41355
41356 NSAV=N
41357 MSTU90=MSTU(90)
41358 NJET=0
41359 KQSUM=0
41360 DO 100 J=1,5
41361 DPS(J)=0D0
41362 100 CONTINUE
41363 I=IP-1
41364 110 I=I+1
41365 IF(I.GT.MIN(N,MSTU(4)-MSTU(32))) THEN
41366 CALL PYERRM(12,'(PYINDF:) failed to reconstruct jet system')
41367 IF(MSTU(21).GE.1) RETURN
41368 ENDIF
41369 IF(K(I,1).NE.1.AND.K(I,1).NE.2) GOTO 110
41370 KC=PYCOMP(K(I,2))
41371 IF(KC.EQ.0) GOTO 110
41372 KQ=KCHG(KC,2)*ISIGN(1,K(I,2))
41373 IF(KQ.EQ.0) GOTO 110
41374 NJET=NJET+1
41375 IF(KQ.NE.2) KQSUM=KQSUM+KQ
41376 DO 120 J=1,5
41377 K(NSAV+NJET,J)=K(I,J)
41378 P(NSAV+NJET,J)=P(I,J)
41379 DPS(J)=DPS(J)+P(I,J)
41380 120 CONTINUE
41381 K(NSAV+NJET,3)=I
41382 IF(K(I,1).EQ.2.OR.(MSTJ(3).LE.5.AND.N.GT.I.AND.
41383 &K(I+1,1).EQ.2)) GOTO 110
41384 IF(NJET.NE.1.AND.KQSUM.NE.0) THEN
41385 CALL PYERRM(12,'(PYINDF:) unphysical flavour combination')
41386 IF(MSTU(21).GE.1) RETURN
41387 ENDIF
41388
41389
41390 IF(NJET.NE.1) THEN
41391 MSTU(33)=1
41392 CALL PYROBO(NSAV+1,NSAV+NJET,0D0,0D0,-DPS(1)/DPS(4),
41393 & -DPS(2)/DPS(4),-DPS(3)/DPS(4))
41394 ENDIF
41395 PECM=0D0
41396 DO 130 J=1,3
41397 NFI(J)=0
41398 130 CONTINUE
41399 DO 140 I=NSAV+1,NSAV+NJET
41400 PECM=PECM+P(I,4)
41401 KFA=IABS(K(I,2))
41402 IF(KFA.LE.3) THEN
41403 NFI(KFA)=NFI(KFA)+ISIGN(1,K(I,2))
41404 ELSEIF(KFA.GT.1000) THEN
41405 KFLA=MOD(KFA/1000,10)
41406 KFLB=MOD(KFA/100,10)
41407 IF(KFLA.LE.3) NFI(KFLA)=NFI(KFLA)+ISIGN(1,K(I,2))
41408 IF(KFLB.LE.3) NFI(KFLB)=NFI(KFLB)+ISIGN(1,K(I,2))
41409 ENDIF
41410 140 CONTINUE
41411
41412
41413 NTRY=0
41414 150 NTRY=NTRY+1
41415 IF(NTRY.GT.200) THEN
41416 CALL PYERRM(14,'(PYINDF:) caught in infinite loop')
41417 IF(MSTU(21).GE.1) RETURN
41418 ENDIF
41419 N=NSAV+NJET
41420 MSTU(90)=MSTU90
41421 DO 160 J=1,3
41422 NFL(J)=NFI(J)
41423 IFET(J)=0
41424 KFLF(J)=0
41425 160 CONTINUE
41426
41427
41428 DO 230 IP1=NSAV+1,NSAV+NJET
41429 MSTJ(91)=0
41430 NSAV1=N
41431 MSTU91=MSTU(90)
41432
41433
41434 KFLH=IABS(K(IP1,2))
41435 IF(KFLH.GT.10) KFLH=MOD(KFLH/1000,10)
41436 KFLO(2)=0
41437 WF=P(IP1,4)+SQRT(P(IP1,1)**2+P(IP1,2)**2+P(IP1,3)**2)
41438
41439
41440 170 IF(IABS(K(IP1,2)).NE.21) THEN
41441 NSTR=1
41442 KFLO(1)=K(IP1,2)
41443 CALL PYPTDI(0,PXO(1),PYO(1))
41444 WO(1)=WF
41445
41446
41447 ELSEIF(MSTJ(2).LE.2) THEN
41448 NSTR=1
41449 IF(MSTJ(2).EQ.2) MSTJ(91)=1
41450 KFLO(1)=INT(1D0+(2D0+PARJ(2))*PYR(0))*(-1)**INT(PYR(0)+0.5D0)
41451 CALL PYPTDI(0,PXO(1),PYO(1))
41452 WO(1)=WF
41453
41454
41455
41456 ELSE
41457 NSTR=2
41458 IF(MSTJ(2).EQ.4) MSTJ(91)=1
41459 KFLO(1)=INT(1D0+(2D0+PARJ(2))*PYR(0))*(-1)**INT(PYR(0)+0.5D0)
41460 KFLO(2)=-KFLO(1)
41461 CALL PYPTDI(0,PXO(1),PYO(1))
41462 PXO(2)=-PXO(1)
41463 PYO(2)=-PYO(1)
41464 WO(1)=WF*PYR(0)**(1D0/3D0)
41465 WO(2)=WF-WO(1)
41466 ENDIF
41467
41468
41469 DO 220 ISTR=1,NSTR
41470 180 I=N
41471 MSTU(90)=MSTU91
41472 IRANK=0
41473 KFL1=KFLO(ISTR)
41474 PX1=PXO(ISTR)
41475 PY1=PYO(ISTR)
41476 W=WO(ISTR)
41477
41478
41479 190 I=I+1
41480 IF(I.GE.MSTU(4)-MSTU(32)-NJET-5) THEN
41481 CALL PYERRM(11,'(PYINDF:) no more memory left in PYJETS')
41482 IF(MSTU(21).GE.1) RETURN
41483 ENDIF
41484 IRANK=IRANK+1
41485 K(I,1)=1
41486 K(I,3)=IP1
41487 K(I,4)=0
41488 K(I,5)=0
41489 200 CALL PYKFDI(KFL1,0,KFL2,K(I,2))
41490 IF(K(I,2).EQ.0) GOTO 180
41491 IF(IRANK.EQ.1.AND.IABS(KFL1).LE.10.AND.IABS(KFL2).GT.10) THEN
41492 IF(PYR(0).GT.PARJ(19)) GOTO 200
41493 ENDIF
41494
41495
41496 P(I,5)=PYMASS(K(I,2))
41497 CALL PYPTDI(KFL1,PX2,PY2)
41498 P(I,1)=PX1+PX2
41499 P(I,2)=PY1+PY2
41500 PR=P(I,5)**2+P(I,1)**2+P(I,2)**2
41501 CALL PYZDIS(KFL1,KFL2,PR,Z)
41502 MZSAV=0
41503 IF(IABS(KFL1).GE.4.AND.IABS(KFL1).LE.8.AND.MSTU(90).LT.8) THEN
41504 MZSAV=1
41505 MSTU(90)=MSTU(90)+1
41506 MSTU(90+MSTU(90))=I
41507 PARU(90+MSTU(90))=Z
41508 ENDIF
41509 P(I,3)=0.5D0*(Z*W-PR/MAX(1D-4,Z*W))
41510 P(I,4)=0.5D0*(Z*W+PR/MAX(1D-4,Z*W))
41511 IF(MSTJ(3).GE.1.AND.IRANK.EQ.1.AND.KFLH.GE.4.AND.
41512 & P(I,3).LE.0.001D0) THEN
41513 IF(W.GE.P(I,5)+0.5D0*PARJ(32)) GOTO 180
41514 P(I,3)=0.0001D0
41515 P(I,4)=SQRT(PR)
41516 Z=P(I,4)/W
41517 ENDIF
41518
41519
41520 KFL1=-KFL2
41521 PX1=-PX2
41522 PY1=-PY2
41523 W=(1D0-Z)*W
41524 DO 210 J=1,5
41525 V(I,J)=0D0
41526 210 CONTINUE
41527
41528
41529 IF(MSTJ(3).GE.0.AND.P(I,3).LT.0D0) THEN
41530 I=I-1
41531 IF(MZSAV.EQ.1) MSTU(90)=MSTU(90)-1
41532 ENDIF
41533 IF(W.GT.PARJ(31)) GOTO 190
41534 N=I
41535 220 CONTINUE
41536 IF(MOD(MSTJ(3),5).EQ.4.AND.N.EQ.NSAV1) WF=WF+0.1D0*PARJ(32)
41537 IF(MOD(MSTJ(3),5).EQ.4.AND.N.EQ.NSAV1) GOTO 170
41538
41539
41540 THE=PYANGL(P(IP1,3),SQRT(P(IP1,1)**2+P(IP1,2)**2))
41541 PHI=PYANGL(P(IP1,1),P(IP1,2))
41542 MSTU(33)=1
41543 CALL PYROBO(NSAV1+1,N,THE,PHI,0D0,0D0,0D0)
41544 K(K(IP1,3),4)=NSAV1+1
41545 K(K(IP1,3),5)=N
41546
41547
41548 230 CONTINUE
41549 IF(NJET.EQ.1.OR.MSTJ(3).LE.0) GOTO 490
41550 IF(MOD(MSTJ(3),5).NE.0.AND.N-NSAV-NJET.LT.2) GOTO 150
41551
41552
41553 DO 240 I=NSAV+NJET+1,N
41554 KFA=IABS(K(I,2))
41555 KFLA=MOD(KFA/1000,10)
41556 KFLB=MOD(KFA/100,10)
41557 KFLC=MOD(KFA/10,10)
41558 IF(KFLA.EQ.0) THEN
41559 IF(KFLB.LE.3) NFL(KFLB)=NFL(KFLB)-ISIGN(1,K(I,2))*(-1)**KFLB
41560 IF(KFLC.LE.3) NFL(KFLC)=NFL(KFLC)+ISIGN(1,K(I,2))*(-1)**KFLB
41561 ELSE
41562 IF(KFLA.LE.3) NFL(KFLA)=NFL(KFLA)-ISIGN(1,K(I,2))
41563 IF(KFLB.LE.3) NFL(KFLB)=NFL(KFLB)-ISIGN(1,K(I,2))
41564 IF(KFLC.LE.3) NFL(KFLC)=NFL(KFLC)-ISIGN(1,K(I,2))
41565 ENDIF
41566 240 CONTINUE
41567 NREQ=(IABS(NFL(1))+IABS(NFL(2))+IABS(NFL(3))-IABS(NFL(1)+
41568 &NFL(2)+NFL(3)))/2+IABS(NFL(1)+NFL(2)+NFL(3))/3
41569 IF(NREQ.EQ.0) GOTO 320
41570
41571
41572 NREM=0
41573 250 IREM=0
41574 P2MIN=PECM**2
41575 DO 260 I=NSAV+NJET+1,N
41576 P2=P(I,1)**2+P(I,2)**2+P(I,3)**2
41577 IF(K(I,1).EQ.1.AND.P2.LT.P2MIN) IREM=I
41578 IF(K(I,1).EQ.1.AND.P2.LT.P2MIN) P2MIN=P2
41579 260 CONTINUE
41580 IF(IREM.EQ.0) GOTO 150
41581 K(IREM,1)=7
41582 KFA=IABS(K(IREM,2))
41583 KFLA=MOD(KFA/1000,10)
41584 KFLB=MOD(KFA/100,10)
41585 KFLC=MOD(KFA/10,10)
41586 IF(KFLA.GE.4.OR.KFLB.GE.4) K(IREM,1)=8
41587 IF(K(IREM,1).EQ.8) GOTO 250
41588 IF(KFLA.EQ.0) THEN
41589 ISGN=ISIGN(1,K(IREM,2))*(-1)**KFLB
41590 IF(KFLB.LE.3) NFL(KFLB)=NFL(KFLB)+ISGN
41591 IF(KFLC.LE.3) NFL(KFLC)=NFL(KFLC)-ISGN
41592 ELSE
41593 IF(KFLA.LE.3) NFL(KFLA)=NFL(KFLA)+ISIGN(1,K(IREM,2))
41594 IF(KFLB.LE.3) NFL(KFLB)=NFL(KFLB)+ISIGN(1,K(IREM,2))
41595 IF(KFLC.LE.3) NFL(KFLC)=NFL(KFLC)+ISIGN(1,K(IREM,2))
41596 ENDIF
41597 NREM=NREM+1
41598 NREQ=(IABS(NFL(1))+IABS(NFL(2))+IABS(NFL(3))-IABS(NFL(1)+
41599 &NFL(2)+NFL(3)))/2+IABS(NFL(1)+NFL(2)+NFL(3))/3
41600 IF(NREQ.GT.NREM) GOTO 250
41601 DO 270 I=NSAV+NJET+1,N
41602 IF(K(I,1).EQ.8) K(I,1)=1
41603 270 CONTINUE
41604
41605
41606 280 NFET=2
41607 IF(NFL(1)+NFL(2)+NFL(3).NE.0) NFET=3
41608 IF(NREQ.LT.NREM) NFET=1
41609 IF(IABS(NFL(1))+IABS(NFL(2))+IABS(NFL(3)).EQ.0) NFET=0
41610 DO 290 J=1,NFET
41611 IFET(J)=1+(IABS(NFL(1))+IABS(NFL(2))+IABS(NFL(3)))*PYR(0)
41612 KFLF(J)=ISIGN(1,NFL(1))
41613 IF(IFET(J).GT.IABS(NFL(1))) KFLF(J)=ISIGN(2,NFL(2))
41614 IF(IFET(J).GT.IABS(NFL(1))+IABS(NFL(2))) KFLF(J)=ISIGN(3,NFL(3))
41615 290 CONTINUE
41616 IF(NFET.EQ.2.AND.(IFET(1).EQ.IFET(2).OR.KFLF(1)*KFLF(2).GT.0))
41617 &GOTO 280
41618 IF(NFET.EQ.3.AND.(IFET(1).EQ.IFET(2).OR.IFET(1).EQ.IFET(3).OR.
41619 &IFET(2).EQ.IFET(3).OR.KFLF(1)*KFLF(2).LT.0.OR.KFLF(1)*KFLF(3)
41620 &.LT.0.OR.KFLF(1)*(NFL(1)+NFL(2)+NFL(3)).LT.0)) GOTO 280
41621 IF(NFET.EQ.0) KFLF(1)=1+INT((2D0+PARJ(2))*PYR(0))
41622 IF(NFET.EQ.0) KFLF(2)=-KFLF(1)
41623 IF(NFET.EQ.1) KFLF(2)=ISIGN(1+INT((2D0+PARJ(2))*PYR(0)),-KFLF(1))
41624 IF(NFET.LE.2) KFLF(3)=0
41625 IF(KFLF(3).NE.0) THEN
41626 KFLFC=ISIGN(1000*MAX(IABS(KFLF(1)),IABS(KFLF(3)))+
41627 & 100*MIN(IABS(KFLF(1)),IABS(KFLF(3)))+1,KFLF(1))
41628 IF(KFLF(1).EQ.KFLF(3).OR.(1D0+3D0*PARJ(4))*PYR(0).GT.1D0)
41629 & KFLFC=KFLFC+ISIGN(2,KFLFC)
41630 ELSE
41631 KFLFC=KFLF(1)
41632 ENDIF
41633 CALL PYKFDI(KFLFC,KFLF(2),KFLDMP,KF)
41634 IF(KF.EQ.0) GOTO 280
41635 DO 300 J=1,MAX(2,NFET)
41636 NFL(IABS(KFLF(J)))=NFL(IABS(KFLF(J)))-ISIGN(1,KFLF(J))
41637 300 CONTINUE
41638
41639
41640 NPOS=MIN(1+INT(PYR(0)*NREM),NREM)
41641 DO 310 I=NSAV+NJET+1,N
41642 IF(K(I,1).EQ.7) NPOS=NPOS-1
41643 IF(K(I,1).EQ.1.OR.NPOS.NE.0) GOTO 310
41644 K(I,1)=1
41645 K(I,2)=KF
41646 P(I,5)=PYMASS(K(I,2))
41647 P(I,4)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2+P(I,5)**2)
41648 310 CONTINUE
41649 NREM=NREM-1
41650 NREQ=(IABS(NFL(1))+IABS(NFL(2))+IABS(NFL(3))-IABS(NFL(1)+
41651 &NFL(2)+NFL(3)))/2+IABS(NFL(1)+NFL(2)+NFL(3))/3
41652 IF(NREM.GT.0) GOTO 280
41653
41654
41655 320 IF(MOD(MSTJ(3),5).NE.0.AND.MOD(MSTJ(3),5).NE.4) THEN
41656 DO 340 J=1,3
41657 PSI(J)=0D0
41658 DO 330 I=NSAV+NJET+1,N
41659 PSI(J)=PSI(J)+P(I,J)
41660 330 CONTINUE
41661 340 CONTINUE
41662 PSI(4)=PSI(1)**2+PSI(2)**2+PSI(3)**2
41663 PWS=0D0
41664 DO 350 I=NSAV+NJET+1,N
41665 IF(MOD(MSTJ(3),5).EQ.1) PWS=PWS+P(I,4)
41666 IF(MOD(MSTJ(3),5).EQ.2) PWS=PWS+SQRT(P(I,5)**2+(PSI(1)*P(I,1)+
41667 & PSI(2)*P(I,2)+PSI(3)*P(I,3))**2/PSI(4))
41668 IF(MOD(MSTJ(3),5).EQ.3) PWS=PWS+1D0
41669 350 CONTINUE
41670 DO 370 I=NSAV+NJET+1,N
41671 IF(MOD(MSTJ(3),5).EQ.1) PW=P(I,4)
41672 IF(MOD(MSTJ(3),5).EQ.2) PW=SQRT(P(I,5)**2+(PSI(1)*P(I,1)+
41673 & PSI(2)*P(I,2)+PSI(3)*P(I,3))**2/PSI(4))
41674 IF(MOD(MSTJ(3),5).EQ.3) PW=1D0
41675 DO 360 J=1,3
41676 P(I,J)=P(I,J)-PSI(J)*PW/PWS
41677 360 CONTINUE
41678 P(I,4)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2+P(I,5)**2)
41679 370 CONTINUE
41680
41681
41682 ELSEIF(MOD(MSTJ(3),5).EQ.4) THEN
41683 DO 390 I=N+1,N+NJET
41684 K(I,1)=0
41685 DO 380 J=1,5
41686 P(I,J)=0D0
41687 380 CONTINUE
41688 390 CONTINUE
41689 DO 410 I=NSAV+NJET+1,N
41690 IR1=K(I,3)
41691 IR2=N+IR1-NSAV
41692 K(IR2,1)=K(IR2,1)+1
41693 PLS=(P(I,1)*P(IR1,1)+P(I,2)*P(IR1,2)+P(I,3)*P(IR1,3))/
41694 & (P(IR1,1)**2+P(IR1,2)**2+P(IR1,3)**2)
41695 DO 400 J=1,3
41696 P(IR2,J)=P(IR2,J)+P(I,J)-PLS*P(IR1,J)
41697 400 CONTINUE
41698 P(IR2,4)=P(IR2,4)+P(I,4)
41699 P(IR2,5)=P(IR2,5)+PLS
41700 410 CONTINUE
41701 PSS=0D0
41702 DO 420 I=N+1,N+NJET
41703 IF(K(I,1).NE.0) PSS=PSS+P(I,4)/(PECM*(0.8D0*P(I,5)+0.2D0))
41704 420 CONTINUE
41705 DO 440 I=NSAV+NJET+1,N
41706 IR1=K(I,3)
41707 IR2=N+IR1-NSAV
41708 PLS=(P(I,1)*P(IR1,1)+P(I,2)*P(IR1,2)+P(I,3)*P(IR1,3))/
41709 & (P(IR1,1)**2+P(IR1,2)**2+P(IR1,3)**2)
41710 DO 430 J=1,3
41711 P(I,J)=P(I,J)-P(IR2,J)/K(IR2,1)+(1D0/(P(IR2,5)*PSS)-1D0)*
41712 & PLS*P(IR1,J)
41713 430 CONTINUE
41714 P(I,4)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2+P(I,5)**2)
41715 440 CONTINUE
41716 ENDIF
41717
41718
41719 IF(MOD(MSTJ(3),5).NE.0) THEN
41720 PMS=0D0
41721 PES=0D0
41722 PQS=0D0
41723 DO 450 I=NSAV+NJET+1,N
41724 PMS=PMS+P(I,5)
41725 PES=PES+P(I,4)
41726 PQS=PQS+P(I,5)**2/P(I,4)
41727 450 CONTINUE
41728 IF(PMS.GE.PECM) GOTO 150
41729 NECO=0
41730 460 NECO=NECO+1
41731 PFAC=(PECM-PQS)/(PES-PQS)
41732 PES=0D0
41733 PQS=0D0
41734 DO 480 I=NSAV+NJET+1,N
41735 DO 470 J=1,3
41736 P(I,J)=PFAC*P(I,J)
41737 470 CONTINUE
41738 P(I,4)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2+P(I,5)**2)
41739 PES=PES+P(I,4)
41740 PQS=PQS+P(I,5)**2/P(I,4)
41741 480 CONTINUE
41742 IF(NECO.LT.10.AND.ABS(PECM-PES).GT.2D-6*PECM) GOTO 460
41743 ENDIF
41744
41745
41746 490 DO 500 I=NSAV+NJET+1,N
41747 IF(MSTU(16).NE.2) K(I,3)=NSAV+1
41748 IF(MSTU(16).EQ.2) K(I,3)=K(K(I,3),3)
41749 500 CONTINUE
41750 DO 510 I=NSAV+1,NSAV+NJET
41751 I1=K(I,3)
41752 K(I1,1)=K(I1,1)+10
41753 IF(MSTU(16).NE.2) THEN
41754 K(I1,4)=NSAV+1
41755 K(I1,5)=NSAV+1
41756 ELSE
41757 K(I1,4)=K(I1,4)-NJET+1
41758 K(I1,5)=K(I1,5)-NJET+1
41759 IF(K(I1,5).LT.K(I1,4)) THEN
41760 K(I1,4)=0
41761 K(I1,5)=0
41762 ENDIF
41763 ENDIF
41764 510 CONTINUE
41765
41766
41767 NSAV=NSAV+1
41768 K(NSAV,1)=11
41769 K(NSAV,2)=93
41770 K(NSAV,3)=IP
41771 K(NSAV,4)=NSAV+1
41772 K(NSAV,5)=N-NJET+1
41773 DO 520 J=1,4
41774 P(NSAV,J)=DPS(J)
41775 V(NSAV,J)=V(IP,J)
41776 520 CONTINUE
41777 P(NSAV,5)=SQRT(MAX(0D0,DPS(4)**2-DPS(1)**2-DPS(2)**2-DPS(3)**2))
41778 V(NSAV,5)=0D0
41779 DO 540 I=NSAV+NJET,N
41780 DO 530 J=1,5
41781 K(I-NJET+1,J)=K(I,J)
41782 P(I-NJET+1,J)=P(I,J)
41783 V(I-NJET+1,J)=V(I,J)
41784 530 CONTINUE
41785 540 CONTINUE
41786 N=N-NJET+1
41787 DO 550 IZ=MSTU90+1,MSTU(90)
41788 MSTU(90+IZ)=MSTU(90+IZ)-NJET+1
41789 550 CONTINUE
41790
41791
41792 IF(NJET.NE.1) CALL PYROBO(NSAV+1,N,0D0,0D0,DPS(1)/DPS(4),
41793 &DPS(2)/DPS(4),DPS(3)/DPS(4))
41794 DO 570 I=NSAV+1,N
41795 DO 560 J=1,4
41796 V(I,J)=V(IP,J)
41797 560 CONTINUE
41798 570 CONTINUE
41799
41800 RETURN
41801 END
41802
41803
41804
41805
41806
41807
41808 SUBROUTINE PYDECY(IP)
41809
41810
41811 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
41812 IMPLICIT INTEGER(I-N)
41813 INTEGER PYK,PYCHGE,PYCOMP
41814
41815 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
41816 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
41817 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
41818 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
41819 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/
41820
41821 DIMENSION VDCY(4),KFLO(4),KFL1(4),PV(10,5),RORD(10),UE(3),BE(3),
41822 &WTCOR(10),PTAU(4),PCMTAU(4),DBETAU(3)
41823 CHARACTER CIDC*4
41824 DATA WTCOR/2D0,5D0,15D0,60D0,250D0,1500D0,1.2D4,1.2D5,150D0,16D0/
41825
41826
41827 PAWT(A,B,C)=SQRT((A**2-(B+C)**2)*(A**2-(B-C)**2))/(2D0*A)
41828 FOUR(I,J)=P(I,4)*P(J,4)-P(I,1)*P(J,1)-P(I,2)*P(J,2)-P(I,3)*P(J,3)
41829
41830
41831 NTRY=0
41832 NSAV=N
41833 KFA=IABS(K(IP,2))
41834 KFS=ISIGN(1,K(IP,2))
41835 KC=PYCOMP(KFA)
41836 MSTJ(92)=0
41837
41838
41839 IF(K(IP,1).EQ.5) THEN
41840 V(IP,5)=0D0
41841 ELSEIF(K(IP,1).NE.4) THEN
41842 V(IP,5)=-PMAS(KC,4)*LOG(PYR(0))
41843 ENDIF
41844 DO 100 J=1,4
41845 VDCY(J)=V(IP,J)+V(IP,5)*P(IP,J)/P(IP,5)
41846 100 CONTINUE
41847
41848
41849 MOUT=0
41850 IF(MSTJ(22).EQ.2) THEN
41851 IF(PMAS(KC,4).GT.PARJ(71)) MOUT=1
41852 ELSEIF(MSTJ(22).EQ.3) THEN
41853 IF(VDCY(1)**2+VDCY(2)**2+VDCY(3)**2.GT.PARJ(72)**2) MOUT=1
41854 ELSEIF(MSTJ(22).EQ.4) THEN
41855 IF(VDCY(1)**2+VDCY(2)**2.GT.PARJ(73)**2) MOUT=1
41856 IF(ABS(VDCY(3)).GT.PARJ(74)) MOUT=1
41857 ENDIF
41858 IF(MOUT.EQ.1.AND.K(IP,1).NE.5) THEN
41859 K(IP,1)=4
41860 RETURN
41861 ENDIF
41862
41863
41864 IF(KFA.EQ.15.AND.MSTJ(28).GE.1) THEN
41865
41866
41867 ITAU=IP
41868 DO 110 J=1,4
41869 PTAU(J)=P(ITAU,J)
41870 PCMTAU(J)=P(ITAU,J)
41871 110 CONTINUE
41872
41873
41874 IMTAU=ITAU
41875 120 IMTAU=K(IMTAU,3)
41876
41877 IF(IMTAU.EQ.0) THEN
41878
41879 KFORIG=0
41880 IORIG=0
41881
41882 ELSEIF(K(IMTAU,2).EQ.K(ITAU,2)) THEN
41883
41884 IF(K(K(IMTAU,4),2).EQ.22) THEN
41885 DO 130 J=1,4
41886 PCMTAU(J)=PCMTAU(J)+P(K(IMTAU,4),J)
41887 130 CONTINUE
41888 ELSEIF(K(K(IMTAU,5),2).EQ.22) THEN
41889 DO 140 J=1,4
41890 PCMTAU(J)=PCMTAU(J)+P(K(IMTAU,5),J)
41891 140 CONTINUE
41892 ENDIF
41893 GOTO 120
41894
41895 ELSEIF(IABS(K(IMTAU,2)).GT.100) THEN
41896
41897
41898 KFORIG=-ISIGN(24,K(ITAU,2))
41899 IORIG=0
41900 DO 160 II=K(IMTAU,4),K(IMTAU,5)
41901 IF(K(II,2)*ISIGN(1,K(ITAU,2)).EQ.-16) THEN
41902 DO 150 J=1,4
41903 PCMTAU(J)=PCMTAU(J)+P(II,J)
41904 150 CONTINUE
41905 ENDIF
41906 160 CONTINUE
41907
41908 ELSE
41909
41910
41911 KFORIG=K(IMTAU,2)
41912 IORIG=IMTAU
41913 DO 170 II=IMTAU+1,IP-1
41914 IF(K(II,2).EQ.KFORIG.AND.K(II,3).EQ.IORIG.AND.
41915 & ABS(P(II,5)-P(IORIG,5)).LT.1D-5*P(IORIG,5)) IORIG=II
41916 170 CONTINUE
41917 DO 180 J=1,4
41918 PCMTAU(J)=P(IORIG,J)
41919 180 CONTINUE
41920 ENDIF
41921
41922
41923
41924 DO 190 J=1,3
41925 DBETAU(J)=PCMTAU(J)/PCMTAU(4)
41926 190 CONTINUE
41927 IF(KFORIG.NE.0) CALL PYROBO(ITAU,ITAU,0D0,0D0,-DBETAU(1),
41928 & -DBETAU(2),-DBETAU(3))
41929 PHITAU=PYANGL(P(ITAU,1),P(ITAU,2))
41930 CALL PYROBO(ITAU,ITAU,0D0,-PHITAU,0D0,0D0,0D0)
41931 THETAU=PYANGL(P(ITAU,3),P(ITAU,1))
41932 CALL PYROBO(ITAU,ITAU,-THETAU,0D0,0D0,0D0,0D0)
41933
41934
41935 IF(KFORIG.NE.0.OR.MSTJ(28).EQ.2) THEN
41936 CALL PYTAUD(ITAU,IORIG,KFORIG,NDECAY)
41937 DO 200 II=NSAV+1,NSAV+NDECAY
41938 K(II,1)=1
41939 K(II,3)=IP
41940 K(II,4)=0
41941 K(II,5)=0
41942 200 CONTINUE
41943 N=NSAV+NDECAY
41944 ENDIF
41945
41946
41947 DO 210 J=1,4
41948 P(ITAU,J)=PTAU(J)
41949 210 CONTINUE
41950 IF(KFORIG.NE.0.OR.MSTJ(28).EQ.2) THEN
41951 CALL PYROBO(NSAV+1,N,THETAU,PHITAU,0D0,0D0,0D0)
41952 IF(KFORIG.NE.0) CALL PYROBO(NSAV+1,N,0D0,0D0,DBETAU(1),
41953 & DBETAU(2),DBETAU(3))
41954
41955
41956 MMAT=0
41957 MBST=0
41958 ND=0
41959 GOTO 630
41960 ENDIF
41961 ENDIF
41962
41963
41964 MMIX=0
41965 IF((KFA.EQ.511.OR.KFA.EQ.531).AND.MSTJ(26).GE.1) THEN
41966 XBBMIX=PARJ(76)
41967 IF(KFA.EQ.531) XBBMIX=PARJ(77)
41968 IF(SIN(0.5D0*XBBMIX*V(IP,5)/PMAS(KC,4))**2.GT.PYR(0)) MMIX=1
41969 IF(MMIX.EQ.1) KFS=-KFS
41970 ENDIF
41971
41972
41973 KCA=KC
41974 IF(MDCY(KC,2).GT.0) THEN
41975 MDMDCY=MDME(MDCY(KC,2),2)
41976 IF(MDMDCY.GT.80.AND.MDMDCY.LE.90) KCA=MDMDCY
41977 ENDIF
41978 IF(MDCY(KCA,2).LE.0.OR.MDCY(KCA,3).LE.0) THEN
41979 CALL PYERRM(9,'(PYDECY:) no decay channel defined')
41980 RETURN
41981 ENDIF
41982 IF(MOD(KFA/1000,10).EQ.0.AND.KCA.EQ.85) KFS=-KFS
41983 IF(KCHG(KC,3).EQ.0) THEN
41984 KFSP=1
41985 KFSN=0
41986 IF(PYR(0).GT.0.5D0) KFS=-KFS
41987 ELSEIF(KFS.GT.0) THEN
41988 KFSP=1
41989 KFSN=0
41990 ELSE
41991 KFSP=0
41992 KFSN=1
41993 ENDIF
41994
41995
41996 220 NOPE=0
41997 BRSU=0D0
41998 DO 230 IDL=MDCY(KCA,2),MDCY(KCA,2)+MDCY(KCA,3)-1
41999 IF(MDME(IDL,1).NE.1.AND.KFSP*MDME(IDL,1).NE.2.AND.
42000 & KFSN*MDME(IDL,1).NE.3) GOTO 230
42001 IF(MDME(IDL,2).GT.100) GOTO 230
42002 NOPE=NOPE+1
42003 BRSU=BRSU+BRAT(IDL)
42004 230 CONTINUE
42005 IF(NOPE.EQ.0) THEN
42006 CALL PYERRM(2,'(PYDECY:) all decay channels closed by user')
42007 RETURN
42008 ENDIF
42009
42010
42011 240 RBR=BRSU*PYR(0)
42012 IDL=MDCY(KCA,2)-1
42013 250 IDL=IDL+1
42014 IF(MDME(IDL,1).NE.1.AND.KFSP*MDME(IDL,1).NE.2.AND.
42015 &KFSN*MDME(IDL,1).NE.3) THEN
42016 IF(IDL.LT.MDCY(KCA,2)+MDCY(KCA,3)-1) GOTO 250
42017 ELSEIF(MDME(IDL,2).GT.100) THEN
42018 IF(IDL.LT.MDCY(KCA,2)+MDCY(KCA,3)-1) GOTO 250
42019 ELSE
42020 IDC=IDL
42021 RBR=RBR-BRAT(IDL)
42022 IF(IDL.LT.MDCY(KCA,2)+MDCY(KCA,3)-1.AND.RBR.GT.0D0) GOTO 250
42023 ENDIF
42024
42025
42026 MMAT=MDME(IDC,2)
42027 260 NTRY=NTRY+1
42028 IF(MOD(NTRY,200).EQ.0) THEN
42029 WRITE(CIDC,'(I4)') IDC
42030
42031 IF(KFA.NE.113.AND.KFA.NE.115.AND.KFA.NE.215)
42032 & CALL PYERRM(4,'(PYDECY:) caught in loop for decay channel'//
42033 & CIDC)
42034 GOTO 240
42035 ENDIF
42036 IF(NTRY.GT.1000) THEN
42037 CALL PYERRM(14,'(PYDECY:) caught in infinite loop')
42038 IF(MSTU(21).GE.1) RETURN
42039 ENDIF
42040 I=N
42041 NP=0
42042 NQ=0
42043 MBST=0
42044 IF(MMAT.GE.11.AND.P(IP,4).GT.20D0*P(IP,5)) MBST=1
42045 DO 270 J=1,4
42046 PV(1,J)=0D0
42047 IF(MBST.EQ.0) PV(1,J)=P(IP,J)
42048 270 CONTINUE
42049 IF(MBST.EQ.1) PV(1,4)=P(IP,5)
42050 PV(1,5)=P(IP,5)
42051 PS=0D0
42052 PSQ=0D0
42053 MREM=0
42054 MHADDY=0
42055 IF(KFA.GT.80) MHADDY=1
42056
42057 IRNDMO=0
42058 JTMO=0
42059 MSTU(121)=0
42060 MSTU(125)=10
42061
42062
42063 JTMAX=5
42064 IF(MDME(IDC+1,2).EQ.101) JTMAX=10
42065 DO 280 JT=1,JTMAX
42066 IF(JT.LE.5) KP=KFDP(IDC,JT)
42067 IF(JT.GE.6) KP=KFDP(IDC+1,JT-5)
42068 IF(KP.EQ.0) GOTO 280
42069 KPA=IABS(KP)
42070 KCP=PYCOMP(KPA)
42071 IF(KPA.GT.80) MHADDY=1
42072 IF(KCHG(KCP,3).EQ.0.AND.KPA.NE.81.AND.KPA.NE.82) THEN
42073 KFP=KP
42074 ELSEIF(KPA.NE.81.AND.KPA.NE.82) THEN
42075 KFP=KFS*KP
42076 ELSEIF(KPA.EQ.81.AND.MOD(KFA/1000,10).EQ.0) THEN
42077 KFP=-KFS*MOD(KFA/10,10)
42078 ELSEIF(KPA.EQ.81.AND.MOD(KFA/100,10).GE.MOD(KFA/10,10)) THEN
42079 KFP=KFS*(100*MOD(KFA/10,100)+3)
42080 ELSEIF(KPA.EQ.81) THEN
42081 KFP=KFS*(1000*MOD(KFA/10,10)+100*MOD(KFA/100,10)+1)
42082 ELSEIF(KP.EQ.82) THEN
42083 CALL PYDCYK(-KFS*INT(1D0+(2D0+PARJ(2))*PYR(0)),0,KFP,KDUMP)
42084 IF(KFP.EQ.0) GOTO 260
42085 KFP=-KFP
42086 IRNDMO=1
42087 MSTJ(93)=1
42088 IF(PV(1,5).LT.PARJ(32)+2D0*PYMASS(KFP)) GOTO 260
42089 ELSEIF(KP.EQ.-82) THEN
42090 KFP=MSTU(124)
42091 ENDIF
42092 IF(KPA.EQ.81.OR.KPA.EQ.82) KCP=PYCOMP(KFP)
42093
42094
42095 KFPA=IABS(KFP)
42096 KQP=KCHG(KCP,2)
42097 IF(MMAT.GE.11.AND.MMAT.LE.30.AND.KQP.NE.0) THEN
42098 NQ=NQ+1
42099 KFLO(NQ)=KFP
42100
42101 IF(KP.EQ.82.AND.MSTU(121).GT.0) JTMO=NQ
42102 MSTJ(93)=2
42103 PSQ=PSQ+PYMASS(KFLO(NQ))
42104 ELSEIF((MMAT.EQ.42.OR.MMAT.EQ.43.OR.MMAT.EQ.48).AND.NP.EQ.3.AND.
42105 & MOD(NQ,2).EQ.1) THEN
42106 NQ=NQ-1
42107 PS=PS-P(I,5)
42108 K(I,1)=1
42109 KFI=K(I,2)
42110 CALL PYKFDI(KFP,KFI,KFLDMP,K(I,2))
42111 IF(K(I,2).EQ.0) GOTO 260
42112 MSTJ(93)=1
42113 P(I,5)=PYMASS(K(I,2))
42114 PS=PS+P(I,5)
42115 ELSE
42116 I=I+1
42117 NP=NP+1
42118 IF(MMAT.NE.33.AND.KQP.NE.0) NQ=NQ+1
42119 IF(MMAT.EQ.33.AND.KQP.NE.0.AND.KQP.NE.2) NQ=NQ+1
42120 K(I,1)=1+MOD(NQ,2)
42121 IF(MMAT.EQ.4.AND.JT.LE.2.AND.KFP.EQ.21) K(I,1)=2
42122 IF(MMAT.EQ.4.AND.JT.EQ.3) K(I,1)=1
42123 K(I,2)=KFP
42124 K(I,3)=IP
42125 K(I,4)=0
42126 K(I,5)=0
42127 P(I,5)=PYMASS(KFP)
42128 PS=PS+P(I,5)
42129 ENDIF
42130 280 CONTINUE
42131
42132
42133 IF(MHADDY.EQ.0) THEN
42134 IF(PS+PARJ(64).GT.PV(1,5)) GOTO 240
42135 ENDIF
42136
42137
42138 290 IF(MMAT.GE.11.AND.MMAT.LE.30) THEN
42139 PSP=PS
42140 CNDE=PARJ(61)*LOG(MAX((PV(1,5)-PS-PSQ)/PARJ(62),1.1D0))
42141 IF(MMAT.EQ.12) CNDE=CNDE+PARJ(63)
42142 300 NTRY=NTRY+1
42143
42144 IF(IRNDMO.EQ.0) THEN
42145 MSTU(121)=0
42146 JTMO=0
42147 ELSEIF(IRNDMO.EQ.1) THEN
42148 IRNDMO=2
42149 ELSE
42150 GOTO 260
42151 ENDIF
42152 IF(NTRY.GT.1000) THEN
42153 CALL PYERRM(14,'(PYDECY:) caught in infinite loop')
42154 IF(MSTU(21).GE.1) RETURN
42155 ENDIF
42156 IF(MMAT.LE.20) THEN
42157 GAUSS=SQRT(-2D0*CNDE*LOG(MAX(1D-10,PYR(0))))*
42158 & SIN(PARU(2)*PYR(0))
42159 ND=0.5D0+0.5D0*NP+0.25D0*NQ+CNDE+GAUSS
42160 IF(ND.LT.NP+NQ/2.OR.ND.LT.2.OR.ND.GT.10) GOTO 300
42161 IF(MMAT.EQ.13.AND.ND.EQ.2) GOTO 300
42162 IF(MMAT.EQ.14.AND.ND.LE.3) GOTO 300
42163 IF(MMAT.EQ.15.AND.ND.LE.4) GOTO 300
42164 ELSE
42165 ND=MMAT-20
42166 ENDIF
42167
42168 MSTU(125)=ND-NQ/2
42169 IF(MSTU(121).GT.MSTU(125)) GOTO 300
42170
42171
42172 DO 310 JT=1,NQ
42173 KFL1(JT)=KFLO(JT)
42174 310 CONTINUE
42175 IF(ND.EQ.NP+NQ/2) GOTO 330
42176 DO 320 I=N+NP+1,N+ND-NQ/2
42177
42178 JT=JTMO
42179 IF(JT.EQ.0) JT=1+INT((NQ-1)*PYR(0))
42180 CALL PYDCYK(KFL1(JT),0,KFL2,K(I,2))
42181 IF(K(I,2).EQ.0) GOTO 300
42182 MSTU(125)=MSTU(125)-1
42183 JTMO=0
42184 IF(MSTU(121).GT.0) JTMO=JT
42185 KFL1(JT)=-KFL2
42186 320 CONTINUE
42187 330 JT=2
42188 JT2=3
42189 JT3=4
42190 IF(NQ.EQ.4.AND.PYR(0).LT.PARJ(66)) JT=4
42191 IF(JT.EQ.4.AND.ISIGN(1,KFL1(1)*(10-IABS(KFL1(1))))*
42192 & ISIGN(1,KFL1(JT)*(10-IABS(KFL1(JT)))).GT.0) JT=3
42193 IF(JT.EQ.3) JT2=2
42194 IF(JT.EQ.4) JT3=2
42195 CALL PYDCYK(KFL1(1),KFL1(JT),KFLDMP,K(N+ND-NQ/2+1,2))
42196 IF(K(N+ND-NQ/2+1,2).EQ.0) GOTO 300
42197 IF(NQ.EQ.4) CALL PYDCYK(KFL1(JT2),KFL1(JT3),KFLDMP,K(N+ND,2))
42198 IF(NQ.EQ.4.AND.K(N+ND,2).EQ.0) GOTO 300
42199
42200
42201 PS=PSP
42202 DO 340 I=N+NP+1,N+ND
42203 K(I,1)=1
42204 K(I,3)=IP
42205 K(I,4)=0
42206 K(I,5)=0
42207 P(I,5)=PYMASS(K(I,2))
42208 PS=PS+P(I,5)
42209 340 CONTINUE
42210 IF(PS+PARJ(64).GT.PV(1,5)) GOTO 300
42211
42212
42213 ELSEIF((MMAT.EQ.31.OR.MMAT.EQ.33.OR.MMAT.EQ.44)
42214 & .AND.NP.GE.3) THEN
42215 PS=PS-P(N+NP,5)
42216 PQT=(P(N+NP,5)+PARJ(65))/PV(1,5)
42217 DO 350 J=1,5
42218 P(N+NP,J)=PQT*PV(1,J)
42219 PV(1,J)=(1D0-PQT)*PV(1,J)
42220 350 CONTINUE
42221 IF(PS+PARJ(64).GT.PV(1,5)) GOTO 260
42222 ND=NP-1
42223 MREM=1
42224
42225
42226 ELSE
42227 IF(NP.GE.2.AND.PS+PARJ(64).GT.PV(1,5)) GOTO 260
42228 ND=NP
42229 ENDIF
42230
42231
42232 NM=0
42233 KFAS=0
42234 MSGN=0
42235 IF(MMAT.EQ.3) THEN
42236 IM=K(IP,3)
42237 IF(IM.LT.0.OR.IM.GE.IP) IM=0
42238 IF(IM.NE.0) KFAM=IABS(K(IM,2))
42239 IF(IM.NE.0) THEN
42240 DO 360 IL=MAX(IP-2,IM+1),MIN(IP+2,N)
42241 IF(K(IL,3).EQ.IM) NM=NM+1
42242 IF(K(IL,3).EQ.IM.AND.IL.NE.IP) ISIS=IL
42243 360 CONTINUE
42244 IF(NM.NE.2.OR.KFAM.LE.100.OR.MOD(KFAM,10).NE.1.OR.
42245 & MOD(KFAM/1000,10).NE.0) NM=0
42246 IF(NM.EQ.2) THEN
42247 KFAS=IABS(K(ISIS,2))
42248 IF((KFAS.LE.100.OR.MOD(KFAS,10).NE.1.OR.
42249 & MOD(KFAS/1000,10).NE.0).AND.KFAS.NE.22) NM=0
42250 ENDIF
42251 ENDIF
42252 ENDIF
42253
42254
42255 IF(ND.EQ.1) THEN
42256 DO 370 J=1,4
42257 P(N+1,J)=P(IP,J)
42258 370 CONTINUE
42259 GOTO 630
42260 ENDIF
42261
42262
42263 PV(ND,5)=P(N+ND,5)
42264 IF(ND.GE.3) THEN
42265 WTMAX=1D0/WTCOR(ND-2)
42266 PMAX=PV(1,5)-PS+P(N+ND,5)
42267 PMIN=0D0
42268 DO 380 IL=ND-1,1,-1
42269 PMAX=PMAX+P(N+IL,5)
42270 PMIN=PMIN+P(N+IL+1,5)
42271 WTMAX=WTMAX*PAWT(PMAX,PMIN,P(N+IL,5))
42272 380 CONTINUE
42273 ENDIF
42274
42275
42276 390 IF(ND.EQ.2) THEN
42277 ELSEIF(MMAT.EQ.2) THEN
42278 PMES=4D0*PMAS(11,1)**2
42279 PMRHO2=PMAS(131,1)**2
42280 PGRHO2=PMAS(131,2)**2
42281 400 PMST=PMES*(P(IP,5)**2/PMES)**PYR(0)
42282 WT=(1+0.5D0*PMES/PMST)*SQRT(MAX(0D0,1D0-PMES/PMST))*
42283 & (1D0-PMST/P(IP,5)**2)**3*(1D0+PGRHO2/PMRHO2)/
42284 & ((1D0-PMST/PMRHO2)**2+PGRHO2/PMRHO2)
42285 IF(WT.LT.PYR(0)) GOTO 400
42286 PV(2,5)=MAX(2.00001D0*PMAS(11,1),SQRT(PMST))
42287
42288
42289 ELSE
42290 410 RORD(1)=1D0
42291 DO 440 IL1=2,ND-1
42292 RSAV=PYR(0)
42293 DO 420 IL2=IL1-1,1,-1
42294 IF(RSAV.LE.RORD(IL2)) GOTO 430
42295 RORD(IL2+1)=RORD(IL2)
42296 420 CONTINUE
42297 430 RORD(IL2+1)=RSAV
42298 440 CONTINUE
42299 RORD(ND)=0D0
42300 WT=1D0
42301 DO 450 IL=ND-1,1,-1
42302 PV(IL,5)=PV(IL+1,5)+P(N+IL,5)+(RORD(IL)-RORD(IL+1))*
42303 & (PV(1,5)-PS)
42304 WT=WT*PAWT(PV(IL,5),PV(IL+1,5),P(N+IL,5))
42305 450 CONTINUE
42306 IF(WT.LT.PYR(0)*WTMAX) GOTO 410
42307 ENDIF
42308
42309
42310 460 DO 480 IL=1,ND-1
42311 PA=PAWT(PV(IL,5),PV(IL+1,5),P(N+IL,5))
42312 UE(3)=2D0*PYR(0)-1D0
42313 PHI=PARU(2)*PYR(0)
42314 UE(1)=SQRT(1D0-UE(3)**2)*COS(PHI)
42315 UE(2)=SQRT(1D0-UE(3)**2)*SIN(PHI)
42316 DO 470 J=1,3
42317 P(N+IL,J)=PA*UE(J)
42318 PV(IL+1,J)=-PA*UE(J)
42319 470 CONTINUE
42320 P(N+IL,4)=SQRT(PA**2+P(N+IL,5)**2)
42321 PV(IL+1,4)=SQRT(PA**2+PV(IL+1,5)**2)
42322 480 CONTINUE
42323
42324
42325 DO 490 J=1,4
42326 P(N+ND,J)=PV(ND,J)
42327 490 CONTINUE
42328 DO 530 IL=ND-1,1,-1
42329 DO 500 J=1,3
42330 BE(J)=PV(IL,J)/PV(IL,4)
42331 500 CONTINUE
42332 GA=PV(IL,4)/PV(IL,5)
42333 DO 520 I=N+IL,N+ND
42334 BEP=BE(1)*P(I,1)+BE(2)*P(I,2)+BE(3)*P(I,3)
42335 DO 510 J=1,3
42336 P(I,J)=P(I,J)+GA*(GA*BEP/(1D0+GA)+P(I,4))*BE(J)
42337 510 CONTINUE
42338 P(I,4)=GA*(P(I,4)+BEP)
42339 520 CONTINUE
42340 530 CONTINUE
42341
42342
42343 NTRY=NTRY+1
42344 IF(NTRY.GT.800) GOTO 560
42345
42346
42347 IF(MMAT.EQ.1) THEN
42348 WT=(P(N+1,5)*P(N+2,5)*P(N+3,5))**2-(P(N+1,5)*FOUR(N+2,N+3))**2
42349 & -(P(N+2,5)*FOUR(N+1,N+3))**2-(P(N+3,5)*FOUR(N+1,N+2))**2
42350 & +2D0*FOUR(N+1,N+2)*FOUR(N+1,N+3)*FOUR(N+2,N+3)
42351 IF(MAX(WT*WTCOR(9)/P(IP,5)**6,0.001D0).LT.PYR(0)) GOTO 390
42352
42353
42354 ELSEIF(MMAT.EQ.2) THEN
42355 FOUR12=FOUR(N+1,N+2)
42356 FOUR13=FOUR(N+1,N+3)
42357 WT=(PMST-0.5D0*PMES)*(FOUR12**2+FOUR13**2)+
42358 & PMES*(FOUR12*FOUR13+FOUR12**2+FOUR13**2)
42359 IF(WT.LT.PYR(0)*0.25D0*PMST*(P(IP,5)**2-PMST)**2) GOTO 460
42360
42361
42362
42363
42364 ELSEIF(MMAT.EQ.3.AND.NM.EQ.2) THEN
42365 FOUR10=FOUR(IP,IM)
42366 FOUR12=FOUR(IP,N+1)
42367 FOUR02=FOUR(IM,N+1)
42368 PMS1=P(IP,5)**2
42369 PMS0=P(IM,5)**2
42370 PMS2=P(N+1,5)**2
42371 IF(KFAS.NE.22) HNUM=(FOUR10*FOUR12-PMS1*FOUR02)**2
42372 IF(KFAS.EQ.22) HNUM=PMS1*(2D0*FOUR10*FOUR12*FOUR02-
42373 & PMS1*FOUR02**2-PMS0*FOUR12**2-PMS2*FOUR10**2+PMS1*PMS0*PMS2)
42374 HNUM=MAX(1D-6*PMS1**2*PMS0*PMS2,HNUM)
42375 HDEN=(FOUR10**2-PMS1*PMS0)*(FOUR12**2-PMS1*PMS2)
42376 IF(HNUM.LT.PYR(0)*HDEN) GOTO 460
42377
42378
42379 ELSEIF(MMAT.EQ.4) THEN
42380 HX1=2D0*FOUR(IP,N+1)/P(IP,5)**2
42381 HX2=2D0*FOUR(IP,N+2)/P(IP,5)**2
42382 HX3=2D0*FOUR(IP,N+3)/P(IP,5)**2
42383 WT=((1D0-HX1)/(HX2*HX3))**2+((1D0-HX2)/(HX1*HX3))**2+
42384 & ((1D0-HX3)/(HX1*HX2))**2
42385 IF(WT.LT.2D0*PYR(0)) GOTO 390
42386 IF(K(IP+1,2).EQ.22.AND.(1D0-HX1)*P(IP,5)**2.LT.4D0*PARJ(32)**2)
42387 & GOTO 390
42388
42389
42390 ELSEIF(MMAT.EQ.41) THEN
42391 HX1=2D0*FOUR(IP,N+1)/P(IP,5)**2
42392 HXM=MIN(0.75D0,2D0*(1D0-PS/P(IP,5)))
42393 IF(HX1*(3D0-2D0*HX1).LT.PYR(0)*HXM*(3D0-2D0*HXM)) GOTO 390
42394
42395
42396 ELSEIF((MMAT.EQ.42.OR.MMAT.EQ.43.OR.MMAT.EQ.44.OR.MMAT.EQ.48)
42397 & .AND.ND.EQ.3) THEN
42398 IF(MBST.EQ.0) WT=FOUR(IP,N+1)*FOUR(N+2,N+3)
42399 IF(MBST.EQ.1) WT=P(IP,5)*P(N+1,4)*FOUR(N+2,N+3)
42400 IF(WT.LT.PYR(0)*P(IP,5)*PV(1,5)**3/WTCOR(10)) GOTO 390
42401 ELSEIF(MMAT.EQ.42.OR.MMAT.EQ.43.OR.MMAT.EQ.44.OR.MMAT.EQ.48) THEN
42402 DO 550 J=1,4
42403 P(N+NP+1,J)=0D0
42404 DO 540 IS=N+3,N+NP
42405 P(N+NP+1,J)=P(N+NP+1,J)+P(IS,J)
42406 540 CONTINUE
42407 550 CONTINUE
42408 IF(MBST.EQ.0) WT=FOUR(IP,N+1)*FOUR(N+2,N+NP+1)
42409 IF(MBST.EQ.1) WT=P(IP,5)*P(N+1,4)*FOUR(N+2,N+NP+1)
42410 IF(WT.LT.PYR(0)*P(IP,5)*PV(1,5)**3/WTCOR(10)) GOTO 390
42411 ENDIF
42412
42413
42414 560 IF(MREM.EQ.1) THEN
42415 DO 570 J=1,5
42416 PV(1,J)=PV(1,J)/(1D0-PQT)
42417 570 CONTINUE
42418 ND=ND+1
42419 MREM=0
42420 ENDIF
42421
42422
42423
42424 IF(MMAT.EQ.31.AND.ND.EQ.3) THEN
42425 MSTJ(93)=1
42426 PM2=PYMASS(K(N+2,2))
42427 MSTJ(93)=1
42428 PM3=PYMASS(K(N+3,2))
42429 IF(P(N+2,5)**2+P(N+3,5)**2+2D0*FOUR(N+2,N+3).GE.
42430 & (PARJ(32)+PM2+PM3)**2) GOTO 630
42431 K(N+2,1)=1
42432 KFTEMP=K(N+2,2)
42433 CALL PYKFDI(KFTEMP,K(N+3,2),KFLDMP,K(N+2,2))
42434 IF(K(N+2,2).EQ.0) GOTO 260
42435 P(N+2,5)=PYMASS(K(N+2,2))
42436 PS=P(N+1,5)+P(N+2,5)
42437 PV(2,5)=P(N+2,5)
42438 MMAT=0
42439 ND=2
42440 GOTO 460
42441 ELSEIF(MMAT.EQ.44) THEN
42442 MSTJ(93)=1
42443 PM3=PYMASS(K(N+3,2))
42444 MSTJ(93)=1
42445 PM4=PYMASS(K(N+4,2))
42446 IF(P(N+3,5)**2+P(N+4,5)**2+2D0*FOUR(N+3,N+4).GE.
42447 & (PARJ(32)+PM3+PM4)**2) GOTO 600
42448 K(N+3,1)=1
42449 KFTEMP=K(N+3,2)
42450 CALL PYKFDI(KFTEMP,K(N+4,2),KFLDMP,K(N+3,2))
42451 IF(K(N+3,2).EQ.0) GOTO 260
42452 P(N+3,5)=PYMASS(K(N+3,2))
42453 DO 580 J=1,3
42454 P(N+3,J)=P(N+3,J)+P(N+4,J)
42455 580 CONTINUE
42456 P(N+3,4)=SQRT(P(N+3,1)**2+P(N+3,2)**2+P(N+3,3)**2+P(N+3,5)**2)
42457 HA=P(N+1,4)**2-P(N+2,4)**2
42458 HB=HA-(P(N+1,5)**2-P(N+2,5)**2)
42459 HC=(P(N+1,1)-P(N+2,1))**2+(P(N+1,2)-P(N+2,2))**2+
42460 & (P(N+1,3)-P(N+2,3))**2
42461 HD=(PV(1,4)-P(N+3,4))**2
42462 HE=HA**2-2D0*HD*(P(N+1,4)**2+P(N+2,4)**2)+HD**2
42463 HF=HD*HC-HB**2
42464 HG=HD*HC-HA*HB
42465 HH=(SQRT(HG**2+HE*HF)-HG)/(2D0*HF)
42466 DO 590 J=1,3
42467 PCOR=HH*(P(N+1,J)-P(N+2,J))
42468 P(N+1,J)=P(N+1,J)+PCOR
42469 P(N+2,J)=P(N+2,J)-PCOR
42470 590 CONTINUE
42471 P(N+1,4)=SQRT(P(N+1,1)**2+P(N+1,2)**2+P(N+1,3)**2+P(N+1,5)**2)
42472 P(N+2,4)=SQRT(P(N+2,1)**2+P(N+2,2)**2+P(N+2,3)**2+P(N+2,5)**2)
42473 ND=ND-1
42474 ENDIF
42475
42476
42477 600 IF((MMAT.EQ.42.OR.MMAT.EQ.43.OR.MMAT.EQ.44.OR.MMAT.EQ.48)
42478 &.AND.IABS(K(N+1,2)).LT.10) THEN
42479 PMR=SQRT(MAX(0D0,P(N+1,5)**2+P(N+2,5)**2+2D0*FOUR(N+1,N+2)))
42480 MSTJ(93)=1
42481 PM1=PYMASS(K(N+1,2))
42482 MSTJ(93)=1
42483 PM2=PYMASS(K(N+2,2))
42484 IF(PMR.GT.PARJ(32)+PM1+PM2) GOTO 610
42485 KFLDUM=INT(1.5D0+PYR(0))
42486 CALL PYKFDI(K(N+1,2),-ISIGN(KFLDUM,K(N+1,2)),KFLDMP,KF1)
42487 CALL PYKFDI(K(N+2,2),-ISIGN(KFLDUM,K(N+2,2)),KFLDMP,KF2)
42488 IF(KF1.EQ.0.OR.KF2.EQ.0) GOTO 260
42489 PSM=PYMASS(KF1)+PYMASS(KF2)
42490 IF((MMAT.EQ.42.OR.MMAT.EQ.48).AND.PMR.GT.PARJ(64)+PSM) GOTO 610
42491 IF(MMAT.GE.43.AND.PMR.GT.0.2D0*PARJ(32)+PSM) GOTO 610
42492 IF(MMAT.EQ.48) GOTO 390
42493 IF(ND.EQ.4.OR.KFA.EQ.15) GOTO 260
42494 K(N+1,1)=1
42495 KFTEMP=K(N+1,2)
42496 CALL PYKFDI(KFTEMP,K(N+2,2),KFLDMP,K(N+1,2))
42497 IF(K(N+1,2).EQ.0) GOTO 260
42498 P(N+1,5)=PYMASS(K(N+1,2))
42499 K(N+2,2)=K(N+3,2)
42500 P(N+2,5)=P(N+3,5)
42501 PS=P(N+1,5)+P(N+2,5)
42502 IF(PS+PARJ(64).GT.PV(1,5)) GOTO 260
42503 PV(2,5)=P(N+3,5)
42504 MMAT=0
42505 ND=2
42506 GOTO 460
42507 ENDIF
42508
42509
42510 610 IF((MMAT.EQ.42.OR.MMAT.EQ.48).AND.IABS(K(N+1,2)).LT.10) THEN
42511 KFLO(1)=K(N+1,2)
42512 KFLO(2)=K(N+2,2)
42513 K(N+1,1)=K(N+3,1)
42514 K(N+1,2)=K(N+3,2)
42515 DO 620 J=1,5
42516 PV(1,J)=P(N+1,J)+P(N+2,J)
42517 P(N+1,J)=P(N+3,J)
42518 620 CONTINUE
42519 PV(1,5)=PMR
42520 N=N+1
42521 NP=0
42522 NQ=2
42523 PS=0D0
42524 MSTJ(93)=2
42525 PSQ=PYMASS(KFLO(1))
42526 MSTJ(93)=2
42527 PSQ=PSQ+PYMASS(KFLO(2))
42528 MMAT=11
42529 GOTO 290
42530 ENDIF
42531
42532
42533 630 N=N+ND
42534 IF(MBST.EQ.1) THEN
42535 DO 640 J=1,3
42536 BE(J)=P(IP,J)/P(IP,4)
42537 640 CONTINUE
42538 GA=P(IP,4)/P(IP,5)
42539 DO 660 I=NSAV+1,N
42540 BEP=BE(1)*P(I,1)+BE(2)*P(I,2)+BE(3)*P(I,3)
42541 DO 650 J=1,3
42542 P(I,J)=P(I,J)+GA*(GA*BEP/(1D0+GA)+P(I,4))*BE(J)
42543 650 CONTINUE
42544 P(I,4)=GA*(P(I,4)+BEP)
42545 660 CONTINUE
42546 ENDIF
42547
42548
42549 DO 680 I=NSAV+1,N
42550 DO 670 J=1,4
42551 V(I,J)=VDCY(J)
42552 670 CONTINUE
42553 V(I,5)=0D0
42554 680 CONTINUE
42555
42556
42557 IF(MSTJ(23).GE.1.AND.MMAT.EQ.4.AND.K(NSAV+1,2).EQ.21) THEN
42558 K(NSAV+1,1)=3
42559 K(NSAV+2,1)=3
42560 K(NSAV+3,1)=3
42561 K(NSAV+1,4)=MSTU(5)*(NSAV+2)
42562 K(NSAV+1,5)=MSTU(5)*(NSAV+3)
42563 K(NSAV+2,4)=MSTU(5)*(NSAV+3)
42564 K(NSAV+2,5)=MSTU(5)*(NSAV+1)
42565 K(NSAV+3,4)=MSTU(5)*(NSAV+1)
42566 K(NSAV+3,5)=MSTU(5)*(NSAV+2)
42567 MSTJ(92)=-(NSAV+1)
42568 ELSEIF(MSTJ(23).GE.1.AND.MMAT.EQ.4) THEN
42569 K(NSAV+2,1)=3
42570 K(NSAV+3,1)=3
42571 K(NSAV+2,4)=MSTU(5)*(NSAV+3)
42572 K(NSAV+2,5)=MSTU(5)*(NSAV+3)
42573 K(NSAV+3,4)=MSTU(5)*(NSAV+2)
42574 K(NSAV+3,5)=MSTU(5)*(NSAV+2)
42575 MSTJ(92)=NSAV+2
42576 ELSEIF(MSTJ(23).GE.1.AND.(MMAT.EQ.32.OR.MMAT.EQ.44).AND.
42577 & IABS(K(NSAV+1,2)).LE.10.AND.IABS(K(NSAV+2,2)).LE.10) THEN
42578 K(NSAV+1,1)=3
42579 K(NSAV+2,1)=3
42580 K(NSAV+1,4)=MSTU(5)*(NSAV+2)
42581 K(NSAV+1,5)=MSTU(5)*(NSAV+2)
42582 K(NSAV+2,4)=MSTU(5)*(NSAV+1)
42583 K(NSAV+2,5)=MSTU(5)*(NSAV+1)
42584 MSTJ(92)=NSAV+1
42585 ELSEIF(MSTJ(23).GE.1.AND.(MMAT.EQ.32.OR.MMAT.EQ.44).AND.
42586 & IABS(K(NSAV+1,2)).LE.20.AND.IABS(K(NSAV+2,2)).LE.20) THEN
42587 MSTJ(92)=NSAV+1
42588 ELSEIF(MSTJ(23).GE.1.AND.MMAT.EQ.33.AND.IABS(K(NSAV+2,2)).EQ.21)
42589 & THEN
42590 K(NSAV+1,1)=3
42591 K(NSAV+2,1)=3
42592 K(NSAV+3,1)=3
42593 KCP=PYCOMP(K(NSAV+1,2))
42594 KQP=KCHG(KCP,2)*ISIGN(1,K(NSAV+1,2))
42595 JCON=4
42596 IF(KQP.LT.0) JCON=5
42597 K(NSAV+1,JCON)=MSTU(5)*(NSAV+2)
42598 K(NSAV+2,9-JCON)=MSTU(5)*(NSAV+1)
42599 K(NSAV+2,JCON)=MSTU(5)*(NSAV+3)
42600 K(NSAV+3,9-JCON)=MSTU(5)*(NSAV+2)
42601 MSTJ(92)=NSAV+1
42602 ELSEIF(MSTJ(23).GE.1.AND.MMAT.EQ.33) THEN
42603 K(NSAV+1,1)=3
42604 K(NSAV+3,1)=3
42605 K(NSAV+1,4)=MSTU(5)*(NSAV+3)
42606 K(NSAV+1,5)=MSTU(5)*(NSAV+3)
42607 K(NSAV+3,4)=MSTU(5)*(NSAV+1)
42608 K(NSAV+3,5)=MSTU(5)*(NSAV+1)
42609 MSTJ(92)=NSAV+1
42610 ENDIF
42611
42612
42613 IF(K(IP,1).EQ.5) K(IP,1)=15
42614 IF(K(IP,1).LE.10) K(IP,1)=11
42615 IF(MMIX.EQ.1.AND.MSTJ(26).EQ.2.AND.K(IP,1).EQ.11) K(IP,1)=12
42616 K(IP,4)=NSAV+1
42617 K(IP,5)=N
42618
42619 RETURN
42620 END
42621
42622
42623
42624
42625
42626
42627
42628
42629 SUBROUTINE PYDCYK(KFL1,KFL2,KFL3,KF)
42630
42631
42632 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
42633 IMPLICIT INTEGER(I-N)
42634 INTEGER PYK,PYCHGE,PYCOMP
42635
42636 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
42637 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
42638 SAVE /PYDAT1/,/PYDAT2/
42639
42640
42641
42642 IF(MSTJ(12).LT.2) THEN
42643 CALL PYKFDI(KFL1,KFL2,KFL3,KF)
42644 MSTU(124)=KFL3
42645 RETURN
42646 ENDIF
42647
42648 KFL3=0
42649 KF=0
42650 IF(KFL1.EQ.0) RETURN
42651 KF1A=IABS(KFL1)
42652 KF2A=IABS(KFL2)
42653
42654 NSTO=130
42655 NMAX=MIN(MSTU(125),10)
42656
42657
42658 IRANK=1
42659 IF(KF1A.GT.10.AND.KF1A.LT.10000) IRANK=0
42660
42661 IF(KF2A.GT.0)THEN
42662
42663 IF(MSTU(121).GT.0) THEN
42664 MSTU(121)=0
42665 RETURN
42666 ENDIF
42667 CALL PYKFDI(KFL1,KFL2,KFL3,KF)
42668 ELSEIF(KF1A.GT.10.AND.MSTU(121).GT.0)THEN
42669
42670 KF=MSTU(NSTO+MSTU(121))
42671 KFL3=-KFL1
42672 MSTU(121)=MSTU(121)-1
42673 ELSE
42674
42675 100 CALL PYKFDI(KFL1,0,KFL3,KF)
42676 IF(MSTU(121).EQ.-1) GOTO 100
42677 MSTU(124)=KFL3
42678 IF(KF.EQ.0.OR.IABS(KFL3).LE.10) RETURN
42679
42680
42681 IF(MSTJ(12).LT.4) THEN
42682 IF(MSTU(121).EQ.0) RETURN
42683 NMES=1
42684 KFPREV=-KFL3
42685 CALL PYKFDI(KFPREV,0,KFL3,KFM)
42686
42687 IF(IABS(KFL3).LE.10)THEN
42688 KFL3=-KFPREV
42689 RETURN
42690 ENDIF
42691 GOTO 120
42692 ENDIF
42693
42694
42695 GB=2D0
42696 IF(IRANK.NE.0)THEN
42697 CALL PYZDIS(1,2103,5D0,Z)
42698 GB=5D0*(1D0-Z)/Z
42699 IF(1D0-PARF(192)**GB.LT.PYR(0)) THEN
42700 MSTU(121)=0
42701 GOTO 100
42702 ENDIF
42703 ENDIF
42704 IF(MSTU(121).EQ.0) RETURN
42705
42706
42707 NMES=MSTU(121)
42708 CALL PYPTDI(1,PX3,PY3)
42709 X=1D0
42710 POPM=0D0
42711 G=GB
42712 POPG=GB
42713
42714
42715 110 KFPREV=-KFL3
42716 PX1=-PX3
42717 PY1=-PY3
42718 CALL PYKFDI(KFPREV,0,KFL3,KFM)
42719 IF(MSTU(121).EQ.-1) GOTO 100
42720 CALL PYPTDI(KFL3,PX3,PY3)
42721 PM=PYMASS(KFM)**2+(PX1+PX3)**2+(PY1+PY3)**2
42722 CALL PYZDIS(KFPREV,KFL3,PM,Z)
42723 G=(1D0-Z)*(G+PM/Z)
42724 X=(1D0-Z)*X
42725
42726 PTST=1D0
42727 GTST=1D0
42728 RTST=PYR(0)
42729 IF(MSTJ(12).GT.4)THEN
42730 POPMN=SQRT((1D0-X)*(G/X-GB))
42731 POPM=POPM+PMAS(PYCOMP(KFM),1)-PMAS(PYCOMP(KFM),3)
42732 PTST=EXP((POPM-POPMN)*PARF(193))
42733 POPM=POPMN
42734 ENDIF
42735 IF(IRANK.NE.0)THEN
42736 POPGN=X*GB
42737 GTST=(1D0-PARF(192)**POPGN)/(1D0-PARF(192)**POPG)
42738 POPG=POPGN
42739 ENDIF
42740 IF(RTST.GT.PTST*GTST)THEN
42741 MSTU(121)=0
42742 IF(RTST.GT.PTST) MSTU(121)=-1
42743 GOTO 100
42744 ENDIF
42745
42746
42747 120 IF(NMES.LE.NMAX) MSTU(NSTO+MSTU(121)+1)=KFM
42748 IF(MSTU(121).GT.0) GOTO 110
42749
42750
42751 IF(NMES.GT.NMAX)THEN
42752 KF=0
42753 KFL3=0
42754 RETURN
42755 ENDIF
42756 MSTU(121)=NMES
42757 ENDIF
42758
42759 RETURN
42760 END
42761
42762
42763
42764
42765
42766
42767 SUBROUTINE PYKFDI(KFL1,KFL2,KFL3,KF)
42768
42769
42770 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
42771 IMPLICIT INTEGER(I-N)
42772 INTEGER PYK,PYCHGE,PYCOMP
42773
42774 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
42775 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
42776 SAVE /PYDAT1/,/PYDAT2/
42777
42778 DIMENSION PD(7)
42779
42780 IF(MSTU(123).EQ.0.AND.MSTJ(12).GT.0) CALL PYKFIN
42781
42782
42783 KF1A=IABS(KFL1)
42784 KF2A=IABS(KFL2)
42785 KFL3=0
42786 KF=0
42787 IF(KF1A.EQ.0) RETURN
42788 IF(KF2A.NE.0)THEN
42789 IF(KF1A.LE.10.AND.KF2A.LE.10.AND.KFL1*KFL2.GT.0) RETURN
42790 IF(KF1A.GT.10.AND.KF2A.GT.10) RETURN
42791 IF((KF1A.GT.10.OR.KF2A.GT.10).AND.KFL1*KFL2.LT.0) RETURN
42792 ENDIF
42793
42794
42795 IF(MSTJ(15).EQ.1) THEN
42796 IF(MSTJ(12).GE.5) CALL PYERRM(29,
42797 & '(PYKFDI:) Sorry, option MSTJ(15)=1 not available' //
42798 & ' together with MSTJ(12)>=5 modification')
42799 KTAB1=-1
42800 IF(KF1A.GE.1.AND.KF1A.LE.6) KTAB1=KF1A
42801 KFL1A=MOD(KF1A/1000,10)
42802 KFL1B=MOD(KF1A/100,10)
42803 KFL1S=MOD(KF1A,10)
42804 IF(KFL1A.GE.1.AND.KFL1A.LE.4.AND.KFL1B.GE.1.AND.KFL1B.LE.4)
42805 & KTAB1=6+KFL1A*(KFL1A-2)+2*KFL1B+(KFL1S-1)/2
42806 IF(KFL1A.GE.1.AND.KFL1A.LE.4.AND.KFL1A.EQ.KFL1B) KTAB1=KTAB1-1
42807 IF(KF1A.GE.1.AND.KF1A.LE.6) KFL1A=KF1A
42808 KTAB2=0
42809 IF(KF2A.NE.0) THEN
42810 KTAB2=-1
42811 IF(KF2A.GE.1.AND.KF2A.LE.6) KTAB2=KF2A
42812 KFL2A=MOD(KF2A/1000,10)
42813 KFL2B=MOD(KF2A/100,10)
42814 KFL2S=MOD(KF2A,10)
42815 IF(KFL2A.GE.1.AND.KFL2A.LE.4.AND.KFL2B.GE.1.AND.KFL2B.LE.4)
42816 & KTAB2=6+KFL2A*(KFL2A-2)+2*KFL2B+(KFL2S-1)/2
42817 IF(KFL2A.GE.1.AND.KFL2A.LE.4.AND.KFL2A.EQ.KFL2B) KTAB2=KTAB2-1
42818 ENDIF
42819 IF(KTAB1.GE.0.AND.KTAB2.GE.0) GOTO 140
42820 ENDIF
42821
42822
42823 100 IRANK=1
42824 KFDIQ=MAX(KF1A,KF2A)
42825 IF(KFDIQ.GT.10.AND.KFDIQ.LT.10000) IRANK=0
42826
42827
42828 IF(KF2A.GT.0)THEN
42829 MBARY=0
42830 IF(KFDIQ.GT.10) THEN
42831 IF(IRANK.EQ.0.AND.MSTJ(12).LT.5)
42832 & CALL PYNMES(KFDIQ)
42833 IF(MSTU(121).NE.0) THEN
42834 MSTU(121)=0
42835 RETURN
42836 ENDIF
42837 MBARY=2
42838 ENDIF
42839 KFQOLD=KF1A
42840 KFQVER=KF2A
42841 GOTO 130
42842 ENDIF
42843
42844
42845 KFIN=KFL1
42846 KFQOLD=KF1A
42847 KFQPOP=KF1A/10000
42848 IF(KF1A.GT.10)THEN
42849 KFIN=-KFL1
42850 KFL1A=MOD(KF1A/1000,10)
42851 KFL1B=MOD(KF1A/100,10)
42852 IF(IRANK.EQ.0)THEN
42853 QAWT=1D0
42854 IF(KFL1A.GE.3) QAWT=PARF(136+KFL1A/4)
42855 IF(KFL1B.GE.3) QAWT=QAWT/PARF(136+KFL1B/4)
42856 KFQPOP=KFL1A+(KFL1B-KFL1A)*INT(1D0/(QAWT+1D0)+PYR(0))
42857 ENDIF
42858 IF(KFQPOP.NE.KFL1B.AND.KFQPOP.NE.KFL1A) THEN
42859 MSTU(121)=0
42860 RETURN
42861 ENDIF
42862 KFQOLD=KFL1A+KFL1B-KFQPOP
42863 ENDIF
42864
42865
42866
42867 110 MBARY=0
42868 IF(KF1A.LE.10.AND.MSTJ(12).GT.0)THEN
42869 IF(MSTU(121).EQ.-1.OR.(1D0+PARJ(1))*PYR(0).GT.1D0)THEN
42870 MBARY=1
42871 CALL PYNMES(0)
42872 ENDIF
42873 ELSEIF(KF1A.GT.10)THEN
42874 MBARY=2
42875 IF(IRANK.EQ.0) CALL PYNMES(KF1A)
42876 IF(MSTU(121).GT.0) MBARY=-1
42877 ENDIF
42878
42879
42880 IF(MBARY.EQ.0.OR.MBARY.EQ.2)THEN
42881 KFQVER=1+INT((2D0+PARJ(2))*PYR(0))
42882 KFL3=ISIGN(KFQVER,-KFIN)
42883 GOTO 130
42884 ENDIF
42885
42886
42887 IDW=160
42888 IF(MBARY.EQ.1)THEN
42889 IF(MSTU(121).EQ.0) IDW=150
42890 SQWT=PARF(IDW+1)
42891 IF(MSTU(121).GT.0) SQWT=SQWT*PARF(135)*PARF(138)**MSTU(121)
42892 KFQPOP=1+INT((2D0+SQWT)*PYR(0))
42893
42894 IF(KFQPOP.GE.3.AND.MSTJ(12).GE.5)THEN
42895 PARF(194)=PARF(138)*PARF(139)
42896 PARF(193)=PARJ(8)+PARJ(9)
42897 ENDIF
42898 ENDIF
42899
42900
42901 IF(MBARY.EQ.-1.AND.MSTJ(12).GE.5)THEN
42902 IDW=MSTU(122)
42903 MSTU(121)=MSTU(121)-1
42904 IF(IDW.EQ.170) THEN
42905 IF(MSTU(121).EQ.0)THEN
42906 IPOS=3*MIN(KFQPOP-1,2)+MIN(KFQOLD-1,2)
42907 ELSE
42908 IPOS=3*3+3*MAX(0,MIN(KFQPOP-2,1))+MIN(KFQOLD-1,2)
42909 ENDIF
42910 ELSE
42911 IF(MSTU(121).EQ.0)THEN
42912 IPOS=3*5+5*MIN(KFQPOP-1,3)+MIN(KFQOLD-1,4)
42913 ELSE
42914 IPOS=3*5+5*4+MIN(KFQOLD-1,4)
42915 ENDIF
42916 ENDIF
42917 IPOS=200+30*IPOS+1
42918
42919 IMES=-1
42920 RMES=PYR(0)*PARF(194)
42921 120 IMES=IMES+1
42922 RMES=RMES-PARF(IPOS+IMES)
42923 IF(IMES.EQ.30) THEN
42924 MSTU(121)=-1
42925 KF=-111
42926 RETURN
42927 ENDIF
42928 IF(RMES.GT.0D0) GOTO 120
42929 KMUL=IMES/5
42930 KFJ=2*KMUL+1
42931 IF(KMUL.EQ.2) KFJ=10003
42932 IF(KMUL.EQ.3) KFJ=10001
42933 IF(KMUL.EQ.4) KFJ=20003
42934 IF(KMUL.EQ.5) KFJ=5
42935 IDIAG=0
42936 KFQVER=MOD(IMES,5)+1
42937 IF(KFQVER.GE.KFQOLD) KFQVER=KFQVER+1
42938 IF(KFQVER.GT.3)THEN
42939 IDIAG=KFQVER-3
42940 KFQVER=KFQOLD
42941 ENDIF
42942 ELSE
42943 IF(MBARY.EQ.-1) IDW=170
42944 SQWT=PARF(IDW+2)
42945 IF(KFQPOP.EQ.3) SQWT=PARF(IDW+3)
42946 IF(KFQPOP.GT.3) SQWT=PARF(IDW+3)*(1D0/PARF(IDW+5)+1D0)/2D0
42947 KFQVER=MIN(3,1+INT((2D0+SQWT)*PYR(0)))
42948 IF(KFQPOP.LT.3.AND.KFQVER.LT.3)THEN
42949 KFQVER=KFQPOP
42950 IF(PYR(0).GT.PARF(IDW+4)) KFQVER=3-KFQPOP
42951 ENDIF
42952 ENDIF
42953
42954
42955 KFLDS=3
42956 IF(KFQPOP.NE.KFQVER)THEN
42957 SWT=PARF(IDW+7)
42958 IF(KFQVER.EQ.3) SWT=PARF(IDW+6)
42959 IF(KFQPOP.GE.3) SWT=PARF(IDW+5)
42960 IF((1D0+SWT)*PYR(0).LT.1D0) KFLDS=1
42961 ENDIF
42962 KFDIQ=900*MAX(KFQVER,KFQPOP)+100*(KFQVER+KFQPOP)+KFLDS
42963 & +10000*KFQPOP
42964 KFL3=ISIGN(KFDIQ,KFIN)
42965
42966
42967 130 IF(MBARY.LE.0)THEN
42968 KFLA=MAX(KFQOLD,KFQVER)
42969 KFLB=MIN(KFQOLD,KFQVER)
42970 KFS=ISIGN(1,KFL1)
42971 IF(KFLA.NE.KFQOLD) KFS=-KFS
42972
42973 IF(MBARY.EQ.-1.AND.MSTJ(12).GE.5)THEN
42974 IF(IDIAG.GT.0) KF=110*IDIAG+KFJ
42975 IF(IDIAG.EQ.0) KF=(100*KFLA+10*KFLB+KFJ)*KFS*(-1)**KFLA
42976 RETURN
42977 ENDIF
42978 IF(KFLA.LE.2) KMUL=INT(PARJ(11)+PYR(0))
42979 IF(KFLA.EQ.3) KMUL=INT(PARJ(12)+PYR(0))
42980 IF(KFLA.GE.4) KMUL=INT(PARJ(13)+PYR(0))
42981 IF(KMUL.EQ.0.AND.PARJ(14).GT.0D0)THEN
42982 IF(PYR(0).LT.PARJ(14)) KMUL=2
42983 ELSEIF(KMUL.EQ.1.AND.PARJ(15)+PARJ(16)+PARJ(17).GT.0D0)THEN
42984 RMUL=PYR(0)
42985 IF(RMUL.LT.PARJ(15)) KMUL=3
42986 IF(KMUL.EQ.1.AND.RMUL.LT.PARJ(15)+PARJ(16)) KMUL=4
42987 IF(KMUL.EQ.1.AND.RMUL.LT.PARJ(15)+PARJ(16)+PARJ(17)) KMUL=5
42988 ENDIF
42989 KFLS=3
42990 IF(KMUL.EQ.0.OR.KMUL.EQ.3) KFLS=1
42991 IF(KMUL.EQ.5) KFLS=5
42992 IF(KFLA.NE.KFLB)THEN
42993 KF=(100*KFLA+10*KFLB+KFLS)*KFS*(-1)**KFLA
42994 ELSE
42995 RMIX=PYR(0)
42996 IMIX=2*KFLA+10*KMUL
42997 IF(KFLA.LE.3) KF=110*(1+INT(RMIX+PARF(IMIX-1))+
42998 & INT(RMIX+PARF(IMIX)))+KFLS
42999 IF(KFLA.GE.4) KF=110*KFLA+KFLS
43000 ENDIF
43001 IF(KMUL.EQ.2.OR.KMUL.EQ.3) KF=KF+ISIGN(10000,KF)
43002 IF(KMUL.EQ.4) KF=KF+ISIGN(20000,KF)
43003
43004
43005
43006 IF(KF.EQ.221.OR.KF.EQ.331)THEN
43007 IF(PYR(0).GT.PARJ(25+KF/300))THEN
43008 IF(KF2A.GT.0) GOTO 130
43009 IF(MSTJ(12).LT.4) IRANK=0
43010 GOTO 110
43011 ENDIF
43012 ENDIF
43013 MSTU(121)=0
43014
43015
43016 ELSE
43017 KFLA=KFQVER
43018 IF(KF1A.LE.10) KFLA=KFQOLD
43019 KFLB=MOD(KFDIQ/1000,10)
43020 KFLC=MOD(KFDIQ/100,10)
43021 KFLDS=MOD(KFDIQ,10)
43022 KFLD=MAX(KFLA,KFLB,KFLC)
43023 KFLF=MIN(KFLA,KFLB,KFLC)
43024 KFLE=KFLA+KFLB+KFLC-KFLD-KFLF
43025
43026
43027 KBARY=3
43028 KDMAX=5
43029 KFLG=KFLB
43030 IF(KFLB.NE.KFLC)THEN
43031 KBARY=2*KFLDS-1
43032 KDMAX=1+KFLDS/2
43033 IF(KFLB.GT.2) KDMAX=KDMAX+2
43034 ENDIF
43035 IF(KFLA.NE.KFLB.AND.KFLA.NE.KFLC)THEN
43036 KBARY=KBARY+1
43037 KFLG=KFLA
43038 ENDIF
43039
43040 SU6MAX=PARF(140+KDMAX)
43041 SU6DEC=PARJ(18)
43042 SU6S =PARF(146)
43043 IF(MSTJ(12).GE.5.AND.IRANK.EQ.0) THEN
43044 SU6MAX=1D0
43045 SU6DEC=1D0
43046 SU6S =1D0
43047 ENDIF
43048 SU6OCT=PARF(60+KBARY)
43049 IF(KFLG.GT.MAX(KFLA+KFLB-KFLG,2))THEN
43050 SU6OCT=SU6OCT*4*SU6S/(3*SU6S+1)
43051 IF(KBARY.EQ.2) SU6OCT=PARF(60+KBARY)*4/(3*SU6S+1)
43052 ELSE
43053 IF(KBARY.EQ.6) SU6OCT=SU6OCT*(3+SU6S)/(3*SU6S+1)
43054 ENDIF
43055 SU6WT=SU6OCT+SU6DEC*PARF(70+KBARY)
43056
43057
43058 IF(SU6WT.LT.PYR(0)*SU6MAX.AND.KF2A.EQ.0)THEN
43059 MSTU(121)=0
43060 IF(MSTJ(12).LE.2.AND.MBARY.EQ.1) MSTU(121)=-1
43061 GOTO 110
43062 ENDIF
43063
43064
43065 KSIG=1
43066 KFLS=2
43067 IF(SU6WT*PYR(0).GT.SU6OCT) KFLS=4
43068 IF(KFLS.EQ.2.AND.KFLD.GT.KFLE.AND.KFLE.GT.KFLF)THEN
43069 KSIG=KFLDS/3
43070 IF(KFLA.NE.KFLD) KSIG=INT(3*SU6S/(3*SU6S+KFLDS**2)+PYR(0))
43071 ENDIF
43072 KF=ISIGN(1000*KFLD+100*KFLE+10*KFLF+KFLS,KFL1)
43073 IF(KSIG.EQ.0) KF=ISIGN(1000*KFLD+100*KFLF+10*KFLE+KFLS,KFL1)
43074 ENDIF
43075 RETURN
43076
43077
43078 140 IF(KTAB2.EQ.0.AND.MSTJ(12).LE.0) THEN
43079 KT3L=1
43080 KT3U=6
43081 ELSEIF(KTAB2.EQ.0.AND.KTAB1.GE.7.AND.MSTJ(12).LE.1) THEN
43082 KT3L=1
43083 KT3U=6
43084 ELSEIF(KTAB2.EQ.0) THEN
43085 KT3L=1
43086 KT3U=22
43087 ELSE
43088 KT3L=KTAB2
43089 KT3U=KTAB2
43090 ENDIF
43091 RFL=0D0
43092 DO 160 KTS=0,2
43093 DO 150 KT3=KT3L,KT3U
43094 RFL=RFL+PARF(120+80*KTAB1+25*KTS+KT3)
43095 150 CONTINUE
43096 160 CONTINUE
43097 RFL=PYR(0)*RFL
43098 DO 180 KTS=0,2
43099 KTABS=KTS
43100 DO 170 KT3=KT3L,KT3U
43101 KTAB3=KT3
43102 RFL=RFL-PARF(120+80*KTAB1+25*KTS+KT3)
43103 IF(RFL.LE.0D0) GOTO 190
43104 170 CONTINUE
43105 180 CONTINUE
43106 190 CONTINUE
43107
43108
43109 IF(KTAB3.LE.6) THEN
43110 KFL3A=KTAB3
43111 KFL3B=0
43112 KFL3=ISIGN(KFL3A,KFL1*(2*KTAB1-13))
43113 ELSE
43114 KFL3A=1
43115 IF(KTAB3.GE.8) KFL3A=2
43116 IF(KTAB3.GE.11) KFL3A=3
43117 IF(KTAB3.GE.16) KFL3A=4
43118 KFL3B=(KTAB3-6-KFL3A*(KFL3A-2))/2
43119 KFL3=1000*KFL3A+100*KFL3B+1
43120 IF(KFL3A.EQ.KFL3B.OR.KTAB3.NE.6+KFL3A*(KFL3A-2)+2*KFL3B) KFL3=
43121 & KFL3+2
43122 KFL3=ISIGN(KFL3,KFL1*(13-2*KTAB1))
43123 ENDIF
43124
43125
43126 IF(KFL3A.EQ.KFL1A.AND.KFL3B.EQ.KFL1B.AND.(KFL3A.LE.3.OR.
43127 &KFL3B.NE.0)) THEN
43128 RFL=PYR(0)*(PARF(143+80*KTAB1+25*KTABS)+PARF(144+80*KTAB1+
43129 & 25*KTABS)+PARF(145+80*KTAB1+25*KTABS))
43130 KF=110+2*KTABS+1
43131 IF(RFL.GT.PARF(143+80*KTAB1+25*KTABS)) KF=220+2*KTABS+1
43132 IF(RFL.GT.PARF(143+80*KTAB1+25*KTABS)+PARF(144+80*KTAB1+
43133 & 25*KTABS)) KF=330+2*KTABS+1
43134 ELSEIF(KTAB1.LE.6.AND.KTAB3.LE.6) THEN
43135 KFLA=MAX(KTAB1,KTAB3)
43136 KFLB=MIN(KTAB1,KTAB3)
43137 KFS=ISIGN(1,KFL1)
43138 IF(KFLA.NE.KF1A) KFS=-KFS
43139 KF=(100*KFLA+10*KFLB+2*KTABS+1)*KFS*(-1)**KFLA
43140 ELSEIF(KTAB1.GE.7.AND.KTAB3.GE.7) THEN
43141 KFS=ISIGN(1,KFL1)
43142 IF(KFL1A.EQ.KFL3A) THEN
43143 KFLA=MAX(KFL1B,KFL3B)
43144 KFLB=MIN(KFL1B,KFL3B)
43145 IF(KFLA.NE.KFL1B) KFS=-KFS
43146 ELSEIF(KFL1A.EQ.KFL3B) THEN
43147 KFLA=KFL3A
43148 KFLB=KFL1B
43149 KFS=-KFS
43150 ELSEIF(KFL1B.EQ.KFL3A) THEN
43151 KFLA=KFL1A
43152 KFLB=KFL3B
43153 ELSEIF(KFL1B.EQ.KFL3B) THEN
43154 KFLA=MAX(KFL1A,KFL3A)
43155 KFLB=MIN(KFL1A,KFL3A)
43156 IF(KFLA.NE.KFL1A) KFS=-KFS
43157 ELSE
43158 CALL PYERRM(2,'(PYKFDI:) no matching flavours for qq -> qq')
43159 GOTO 100
43160 ENDIF
43161 KF=(100*KFLA+10*KFLB+2*KTABS+1)*KFS*(-1)**KFLA
43162
43163
43164 ELSE
43165 IF(KTAB1.GE.7) THEN
43166 KFLA=KFL3A
43167 KFLB=KFL1A
43168 KFLC=KFL1B
43169 ELSE
43170 KFLA=KFL1A
43171 KFLB=KFL3A
43172 KFLC=KFL3B
43173 ENDIF
43174 KFLD=MAX(KFLA,KFLB,KFLC)
43175 KFLF=MIN(KFLA,KFLB,KFLC)
43176 KFLE=KFLA+KFLB+KFLC-KFLD-KFLF
43177 IF(KTABS.EQ.0) KF=ISIGN(1000*KFLD+100*KFLF+10*KFLE+2,KFL1)
43178 IF(KTABS.GE.1) KF=ISIGN(1000*KFLD+100*KFLE+10*KFLF+2*KTABS,KFL1)
43179 ENDIF
43180
43181
43182 IF(KFL2.NE.0) KFL3=0
43183 KC=PYCOMP(KF)
43184 IF(KC.EQ.0) THEN
43185 CALL PYERRM(2,'(PYKFDI:) user-defined flavour probabilities '//
43186 & 'failed')
43187 GOTO 100
43188 ENDIF
43189
43190 RETURN
43191 END
43192
43193
43194
43195
43196
43197
43198
43199 SUBROUTINE PYNMES(KFDIQ)
43200
43201
43202 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
43203 IMPLICIT INTEGER(I-N)
43204 INTEGER PYK,PYCHGE,PYCOMP
43205
43206 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
43207 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
43208 SAVE /PYDAT1/,/PYDAT2/
43209
43210 MSTU(121)=0
43211 IF(MSTJ(12).LT.2) RETURN
43212
43213
43214 IF(MSTJ(12).LT.5)THEN
43215 POPWT=PARF(131)
43216 IF(KFDIQ.NE.0) THEN
43217 KFDIQA=IABS(KFDIQ)
43218 KFA=MOD(KFDIQA/1000,10)
43219 KFB=MOD(KFDIQA/100,10)
43220 KFS=MOD(KFDIQA,10)
43221 POPWT=PARF(132)
43222 IF(KFA.EQ.3) POPWT=PARF(133)
43223 IF(KFB.EQ.3) POPWT=PARF(134)
43224 IF(KFS.EQ.1) POPWT=POPWT*SQRT(PARJ(4))
43225 ENDIF
43226 MSTU(121)=INT(POPWT/(1D0+POPWT)+PYR(0))
43227 RETURN
43228 ENDIF
43229
43230
43231 MSTU(122)=170
43232 PARF(193)=PARJ(8)
43233 PARF(194)=PARF(139)
43234 IF(KFDIQ.NE.0) THEN
43235 MSTU(122)=180
43236 PARF(193)=PARJ(10)
43237 PARF(194)=PARF(140)
43238 ENDIF
43239 IF(PARF(194).LT.1D-5.OR.PARF(194).GT.1D0-1D-5) THEN
43240 IF(PARF(194).GT.1D0-1D-5) CALL PYERRM(9,
43241 & '(PYNMES:) Neglecting too large popcorn possibility')
43242 RETURN
43243 ENDIF
43244
43245
43246 100 RTST=PYR(0)
43247 MSTU(121)=-1
43248 110 MSTU(121)=MSTU(121)+1
43249 RTST=RTST/PARF(194)
43250 IF(RTST.LT.1D0) GOTO 110
43251 IF(KFDIQ.EQ.0.AND.PYR(0)*(2D0+PARF(135)*PARF(161)).GT.
43252 & (2D0+PARF(135)*PARF(161)*PARF(138)**MSTU(121))) GOTO 100
43253 RETURN
43254 END
43255
43256
43257
43258
43259
43260
43261 SUBROUTINE PYKFIN
43262
43263
43264 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
43265 IMPLICIT INTEGER(I-N)
43266 INTEGER PYK,PYCHGE,PYCOMP
43267
43268 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
43269 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
43270 SAVE /PYDAT1/,/PYDAT2/
43271
43272 DIMENSION SU6(12),SU6M(7),QBB(7),QBM(7),DMB(14)
43273
43274
43275 MSTU(123)=1
43276
43277 IUD1=1
43278 IUU1=2
43279 IUS0=3
43280 ISU0=4
43281 IUS1=5
43282 ISU1=6
43283 ISS1=7
43284
43285
43286
43287 PARF(146)=1D0
43288 IF(MSTJ(12).GE.5) PARF(146)=3D0*PARJ(18)/(2D0*PARJ(18)+1D0)
43289 IF(PARJ(18).LT.1D0-1D-5.AND.MSTJ(12).LT.5) CALL PYERRM(9,
43290 & '(PYKFIN:) PARJ(18)<1 combined with 0<MSTJ(12)<5 option')
43291 DO 100 I=1,6
43292 SU6(I)=PARF(60+I)
43293 SU6(6+I)=SU6(I)*4*PARF(146)/(3*PARF(146)+1)
43294 100 CONTINUE
43295 SU6(8)=SU6(2)*4/(3*PARF(146)+1)
43296 SU6(6)=SU6(6)*(3+PARF(146))/(3*PARF(146)+1)
43297 DO 110 I=1,6
43298 SU6(I)=SU6(I)+PARJ(18)*PARF(70+I)
43299 SU6(6+I)=SU6(6+I)+PARJ(18)*PARF(70+I)
43300 110 CONTINUE
43301
43302
43303 SU6MUD =MAX(SU6(1) , SU6(8) )
43304 SU6M(IUD1)=MAX(SU6(5) , SU6(12))
43305 SU6M(ISU0)=MAX(SU6(7) ,SU6(2),SU6MUD )
43306 SU6M(IUU1)=MAX(SU6(3) ,SU6(4),SU6(10))
43307 SU6M(ISU1)=MAX(SU6(11),SU6(6),SU6M(IUD1))
43308 SU6M(IUS0)=SU6M(ISU0)
43309 SU6M(ISS1)=SU6M(IUU1)
43310 SU6M(IUS1)=SU6M(ISU1)
43311
43312
43313 PARF(141)=SU6MUD
43314 PARF(142)=SU6M(IUD1)
43315 PARF(143)=SU6M(ISU0)
43316 PARF(144)=SU6M(ISU1)
43317 PARF(145)=SU6M(ISS1)
43318
43319
43320
43321 PUD0=(2D0*SU6(1)+PARJ(2)*SU6(8))
43322 DMB(ISU0)=(SU6(7)+SU6(2)+PARJ(2)*SU6(1))/PUD0
43323 DMB(IUS0)=DMB(ISU0)
43324 DMB(ISS1)=(2D0*SU6(4)+PARJ(2)*SU6(3))/PUD0
43325 DMB(IUU1)=(SU6(3)+SU6(4)+PARJ(2)*SU6(10))/PUD0
43326 DMB(ISU1)=(SU6(11)+SU6(6)+PARJ(2)*SU6(5))/PUD0
43327 DMB(IUS1)=DMB(ISU1)
43328 DMB(IUD1)=(2D0*SU6(5)+PARJ(2)*SU6(12))/PUD0
43329
43330
43331
43332 IF(MSTJ(12).GE.5) THEN
43333 PMUD0=PYMASS(2101)
43334 PMUD1=PYMASS(2103)-PMUD0
43335 PMUS0=PYMASS(3201)-PMUD0
43336 PMUS1=PYMASS(3203)-PMUS0-PMUD0
43337 PMSS1=PYMASS(3303)-PMUS0-PMUD0
43338 QBB(ISU0)=EXP(-(PARJ(9)+PARJ(8))*PMUS0-PARJ(9)*PARF(191))
43339 QBB(IUS0)=EXP(-PARJ(8)*PMUS0)
43340 QBB(ISS1)=EXP(-(PARJ(9)+PARJ(8))*PMSS1)*QBB(ISU0)
43341 QBB(IUU1)=EXP(-PARJ(8)*PMUD1)
43342 QBB(ISU1)=EXP(-(PARJ(9)+PARJ(8))*PMUS1)*QBB(ISU0)
43343 QBB(IUS1)=EXP(-PARJ(8)*PMUS1)*QBB(IUS0)
43344 QBB(IUD1)=QBB(IUU1)
43345 ELSE
43346 PAR2M=SQRT(PARJ(2))
43347 PAR3M=SQRT(PARJ(3))
43348 PAR4M=SQRT(PARJ(4))
43349 QBB(ISU0)=PAR2M*PAR3M
43350 QBB(IUS0)=PAR3M
43351 QBB(ISS1)=PAR2M*PARJ(3)*PAR4M
43352 QBB(IUU1)=PAR4M
43353 QBB(ISU1)=PAR4M*QBB(ISU0)
43354 QBB(IUS1)=PAR4M*QBB(IUS0)
43355 QBB(IUD1)=PAR4M
43356 ENDIF
43357
43358
43359 QBM(ISU0)=QBB(ISU0)
43360 QBM(IUS0)=PARJ(2)*QBB(IUS0)
43361 QBM(ISS1)=PARJ(2)*6D0*QBB(ISS1)
43362 QBM(IUU1)=6D0*QBB(IUU1)
43363 QBM(ISU1)=3D0*QBB(ISU1)
43364 QBM(IUS1)=PARJ(2)*3D0*QBB(IUS1)
43365 QBM(IUD1)=3D0*QBB(IUD1)
43366
43367
43368 DO 120 I=1,7
43369 QBB(I)=QBB(I)*QBM(I)
43370 120 CONTINUE
43371
43372 IF(MSTJ(12).GE.5)THEN
43373
43374 DMB(7+ISU0)=EXP(-PARJ(10)*PMUS0)
43375 DMB(7+IUS0)=PARJ(2)*DMB(7+ISU0)
43376 DMB(7+ISS1)=6D0*PARJ(2)*EXP(-PARJ(10)*PMSS1)*DMB(7+ISU0)
43377 DMB(7+IUU1)=6D0*EXP(-PARJ(10)*PMUD1)
43378 DMB(7+ISU1)=3D0*EXP(-PARJ(10)*PMUS1)*DMB(7+ISU0)
43379 DMB(7+IUS1)=PARJ(2)*DMB(7+ISU1)
43380 DMB(7+IUD1)=DMB(7+IUU1)/2D0
43381
43382
43383
43384
43385
43386 WU=1D0+QBM(IUD1)+QBM(IUS0)+QBM(IUS1)+QBM(IUU1)
43387 PARF(135)=(2D0*(QBM(ISU0)+QBM(ISU1))+QBM(ISS1))/WU
43388 WU=1D0+DMB(7+IUD1)+DMB(7+IUS0)+DMB(7+IUS1)+DMB(7+IUU1)
43389 PARF(136)=(2D0*(DMB(7+ISU0)+DMB(7+ISU1))+DMB(7+ISS1))/WU
43390 PARF(137)=(DMB(7+ISU0)+DMB(7+ISU1))*
43391 & (2D0+DMB(7+ISS1)/(2D0*DMB(7+ISU1)))/WU
43392 ELSE
43393
43394
43395 DO 130 I=1,7
43396 IF(MSTJ(12).LT.3) DMB(I)=1D0
43397 DMB(7+I)=1D0
43398 130 CONTINUE
43399
43400
43401 QBM(IUS0)=QBM(IUS0)*PARJ(7)
43402 QBM(ISS1)=QBM(ISS1)*PARJ(7)
43403 QBM(IUS1)=QBM(IUS1)*PARJ(7)
43404
43405
43406
43407
43408
43409 WU=1D0+QBM(IUD1)+QBM(IUS0)+QBM(IUS1)+QBM(IUU1)
43410 PARF(135)=(2D0*(QBM(ISU0)+QBM(ISU1))+QBM(ISS1))/WU
43411 PARF(136)=PARF(135)*PARJ(6)*QBM(ISU0)/QBM(IUS0)
43412 PARF(137)=(1D0+QBM(IUD1))*(2D0+QBM(IUS0))/WU
43413 ENDIF
43414
43415
43416
43417 DO 140 I=1,7
43418 DMB(7+I)=DMB(7+I)*DMB(I)
43419 DMB(I)=DMB(I)*QBM(I)
43420 QBM(I)=QBM(I)*SU6M(I)/SU6MUD
43421 QBB(I)=QBB(I)*SU6M(I)/SU6MUD
43422 140 CONTINUE
43423
43424
43425
43426 IF(MSTJ(12).LT.5)THEN
43427
43428 PARF(138)=PARJ(6)
43429 WS=PARF(135)*PARF(138)
43430 WQ=WU*PARJ(5)/3D0
43431 PARF(132)=WQ*QBM(IUD1)/QBB(IUD1)
43432 PARF(133)=WQ*
43433 & (QBM(IUS1)/QBB(IUS1)+WS*QBM(ISU1)/QBB(ISU1))/2D0
43434 PARF(134)=WQ*WS*QBM(ISS1)/QBB(ISS1)
43435 PARF(131)=WQ*(1D0+QBM(IUD1)+QBM(IUU1)+QBM(IUS0)+QBM(IUS1)+
43436 & WS*(QBM(ISU0)+QBM(ISU1)+QBM(ISS1)/2D0))/
43437 & (1D0+QBB(IUD1)+QBB(IUU1)+
43438 & 2D0*(QBB(IUS0)+QBB(IUS1))+QBB(ISS1)/2D0)
43439 ELSE
43440
43441
43442 DO 150 IPOS=201,1400
43443 PARF(IPOS)=0D0
43444 150 CONTINUE
43445 DO 160 I=138,140
43446 PARF(I)=0D0
43447 160 CONTINUE
43448 IPOS=200
43449 PARF(193)=PARJ(8)
43450 DO 240 MR=0,7,7
43451 IF(MR.EQ.7) PARF(193)=PARJ(10)
43452 SQWT=2D0*(DMB(MR+IUS0)+DMB(MR+IUS1))/
43453 & (1D0+DMB(MR+IUD1)+DMB(MR+IUU1))
43454 QQWT=DMB(MR+IUU1)/(1D0+DMB(MR+IUD1)+DMB(MR+IUU1))
43455 DO 230 NMES=0,1
43456 IF(NMES.EQ.1) SQWT=PARJ(2)
43457 DO 220 KFQPOP=1,4
43458 IF(MR.EQ.0.AND.KFQPOP.GT.3) GOTO 220
43459 IF(NMES.EQ.0.AND.KFQPOP.GE.3)THEN
43460 SQWT=DMB(MR+ISS1)/(DMB(MR+ISU0)+DMB(MR+ISU1))
43461 QQWT=0.5D0
43462 IF(MR.EQ.0) PARF(193)=PARJ(8)+PARJ(9)
43463 IF(KFQPOP.EQ.4) SQWT=SQWT*(1D0/DMB(7+ISU1)+1D0)/2D0
43464 ENDIF
43465 DO 210 KFQOLD =1,5
43466 IF(MR.EQ.0.AND.KFQOLD.GT.3) GOTO 210
43467 IF(NMES.EQ.1) THEN
43468 IF(MR.EQ.0.AND.KFQPOP.EQ.1) GOTO 210
43469 IF(MR.EQ.7.AND.KFQPOP.NE.1) GOTO 210
43470 ENDIF
43471 WTTOT=0D0
43472 WTFAIL=0D0
43473 DO 190 KMUL=0,5
43474 PJWT=PARJ(12+KMUL)
43475 IF(KMUL.EQ.0) PJWT=1D0-PARJ(14)
43476 IF(KMUL.EQ.1) PJWT=1D0-PARJ(15)-PARJ(16)-PARJ(17)
43477 IF(PJWT.LE.0D0) GOTO 190
43478 IF(PJWT.GT.1D0) PJWT=1D0
43479 IMES=5*KMUL
43480 IMIX=2*KFQOLD+10*KMUL
43481 KFJ=2*KMUL+1
43482 IF(KMUL.EQ.2) KFJ=10003
43483 IF(KMUL.EQ.3) KFJ=10001
43484 IF(KMUL.EQ.4) KFJ=20003
43485 IF(KMUL.EQ.5) KFJ=5
43486 DO 180 KFQVER =1,3
43487 KFLA=MAX(KFQOLD,KFQVER)
43488 KFLB=MIN(KFQOLD,KFQVER)
43489 SWT=PARJ(11+KFLA/3+KFLA/4)
43490 IF(KMUL.EQ.0.OR.KMUL.EQ.2) SWT=1D0-SWT
43491 SWT=SWT*PJWT
43492 QWT=SQWT/(2D0+SQWT)
43493 IF(KFQVER.LT.3)THEN
43494 IF(KFQVER.EQ.KFQPOP) QWT=(1D0-QWT)*QQWT
43495 IF(KFQVER.NE.KFQPOP) QWT=(1D0-QWT)*(1D0-QQWT)
43496 ENDIF
43497 IF(KFQVER.NE.KFQOLD)THEN
43498 IMES=IMES+1
43499 KFM=100*KFLA+10*KFLB+KFJ
43500 PMM=PMAS(PYCOMP(KFM),1)-PMAS(PYCOMP(KFM),3)
43501 PARF(IPOS+IMES)=QWT*SWT*EXP(-PARF(193)*PMM)
43502 WTTOT=WTTOT+PARF(IPOS+IMES)
43503 ELSE
43504 DO 170 ID=3,5
43505 IF(ID.EQ.3) DWT=1D0-PARF(IMIX-1)
43506 IF(ID.EQ.4) DWT=PARF(IMIX-1)-PARF(IMIX)
43507 IF(ID.EQ.5) DWT=PARF(IMIX)
43508 KFM=110*(ID-2)+KFJ
43509 PMM=PMAS(PYCOMP(KFM),1)-PMAS(PYCOMP(KFM),3)
43510 PARF(IPOS+5*KMUL+ID)=QWT*SWT*DWT*EXP(-PARF(193)*PMM)
43511 IF(KMUL.EQ.0.AND.ID.GT.3) THEN
43512 WTFAIL=WTFAIL+QWT*SWT*DWT*(1D0-PARJ(21+ID))
43513 PARF(IPOS+5*KMUL+ID)=
43514 & PARF(IPOS+5*KMUL+ID)*PARJ(21+ID)
43515 ENDIF
43516 WTTOT=WTTOT+PARF(IPOS+5*KMUL+ID)
43517 170 CONTINUE
43518 ENDIF
43519 180 CONTINUE
43520 190 CONTINUE
43521 DO 200 IMES=1,30
43522 PARF(IPOS+IMES)=PARF(IPOS+IMES)/(1D0-WTFAIL)
43523 200 CONTINUE
43524 IF(MR.EQ.7) PARF(140)=
43525 & MAX(PARF(140),WTTOT/(1D0-WTFAIL))
43526 IF(MR.EQ.0) PARF(139-KFQPOP/3)=
43527 & MAX(PARF(139-KFQPOP/3),WTTOT/(1D0-WTFAIL))
43528 IPOS=IPOS+30
43529 210 CONTINUE
43530 220 CONTINUE
43531 230 CONTINUE
43532 240 CONTINUE
43533 IF(PARF(139).GT.1D-10) PARF(138)=PARF(138)/PARF(139)
43534 MSTU(121)=0
43535
43536 ENDIF
43537
43538
43539 PARF(151)=(2D0*(QBB(ISU0)+QBB(ISU1))+QBB(ISS1))/
43540 & (1D0+QBB(IUD1)+QBB(IUU1)+QBB(IUS0)+QBB(IUS1))
43541 PARF(152)=2D0*(QBB(IUS0)+QBB(IUS1))/(1D0+QBB(IUD1)+QBB(IUU1))
43542 PARF(153)=QBB(ISS1)/(QBB(ISU0)+QBB(ISU1))
43543 PARF(154)=QBB(IUU1)/(1D0+QBB(IUD1)+QBB(IUU1))
43544 PARF(155)=QBB(ISU1)/QBB(ISU0)
43545 PARF(156)=QBB(IUS1)/QBB(IUS0)
43546 PARF(157)=QBB(IUD1)
43547
43548 PARF(161)=(2D0*(QBM(ISU0)+QBM(ISU1))+QBM(ISS1))/
43549 & (1D0+QBM(IUD1)+QBM(IUU1)+QBM(IUS0)+QBM(IUS1))
43550 PARF(162)=2D0*(QBM(IUS0)+QBM(IUS1))/(1D0+QBM(IUD1)+QBM(IUU1))
43551 PARF(163)=QBM(ISS1)/(QBM(ISU0)+QBM(ISU1))
43552 PARF(164)=QBM(IUU1)/(1D0+QBM(IUD1)+QBM(IUU1))
43553 PARF(165)=QBM(ISU1)/QBM(ISU0)
43554 PARF(166)=QBM(IUS1)/QBM(IUS0)
43555 PARF(167)=QBM(IUD1)
43556
43557 PARF(171)=(2D0*(DMB(ISU0)+DMB(ISU1))+DMB(ISS1))/
43558 & (1D0+DMB(IUD1)+DMB(IUU1)+DMB(IUS0)+DMB(IUS1))
43559 PARF(172)=2D0*(DMB(IUS0)+DMB(IUS1))/(1D0+DMB(IUD1)+DMB(IUU1))
43560 PARF(173)=DMB(ISS1)/(DMB(ISU0)+DMB(ISU1))
43561 PARF(174)=DMB(IUU1)/(1D0+DMB(IUD1)+DMB(IUU1))
43562 PARF(175)=DMB(ISU1)/DMB(ISU0)
43563 PARF(176)=DMB(IUS1)/DMB(IUS0)
43564 PARF(177)=DMB(IUD1)
43565
43566 PARF(185)=DMB(7+ISU1)/DMB(7+ISU0)
43567 PARF(186)=DMB(7+IUS1)/DMB(7+IUS0)
43568 PARF(187)=DMB(7+IUD1)
43569
43570 RETURN
43571 END
43572
43573
43574
43575
43576
43577
43578
43579 SUBROUTINE PYPTDI(KFL,PX,PY)
43580
43581
43582 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
43583 IMPLICIT INTEGER(I-N)
43584 INTEGER PYK,PYCHGE,PYCOMP
43585
43586 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
43587 SAVE /PYDAT1/
43588
43589
43590 KFLA=IABS(KFL)
43591 PT=PARJ(21)*SQRT(-LOG(MAX(1D-10,PYR(0))))
43592 IF(PARJ(23).GT.PYR(0)) PT=PARJ(24)*PT
43593 IF(MSTJ(91).EQ.1) PT=PARJ(22)*PT
43594 IF(KFLA.EQ.0.AND.MSTJ(13).LE.0) PT=0D0
43595 PHI=PARU(2)*PYR(0)
43596 PX=PT*COS(PHI)
43597 PY=PT*SIN(PHI)
43598
43599 RETURN
43600 END
43601
43602
43603
43604
43605
43606
43607 SUBROUTINE PYZDIS(KFL1,KFL2,PR,Z)
43608
43609
43610 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
43611 IMPLICIT INTEGER(I-N)
43612 INTEGER PYK,PYCHGE,PYCOMP
43613
43614 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
43615 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
43616 SAVE /PYDAT1/,/PYDAT2/
43617
43618
43619 KFLA=IABS(KFL1)
43620 KFLB=IABS(KFL2)
43621 KFLH=KFLA
43622 IF(KFLA.GE.10) KFLH=MOD(KFLA/1000,10)
43623
43624
43625 IF(MSTJ(11).EQ.1.OR.(MSTJ(11).EQ.3.AND.KFLH.LE.3).OR.
43626 &MSTJ(11).GE.4) THEN
43627 FA=PARJ(41)
43628 IF(MSTJ(91).EQ.1) FA=PARJ(43)
43629 IF(KFLB.GE.10) FA=FA+PARJ(45)
43630 FBB=PARJ(42)
43631 IF(MSTJ(91).EQ.1) FBB=PARJ(44)
43632 FB=FBB*PR
43633 FC=1D0
43634 IF(KFLA.GE.10) FC=FC-PARJ(45)
43635 IF(KFLB.GE.10) FC=FC+PARJ(45)
43636 IF(MSTJ(11).GE.4.AND.KFLH.GE.4.AND.KFLH.LE.5) THEN
43637 FRED=PARJ(46)
43638 IF(MSTJ(11).EQ.5.AND.KFLH.EQ.5) FRED=PARJ(47)
43639 FC=FC+FRED*FBB*PARF(100+KFLH)**2
43640 ELSEIF(MSTJ(11).GE.4.AND.KFLH.GE.6.AND.KFLH.LE.8) THEN
43641 FRED=PARJ(46)
43642 IF(MSTJ(11).EQ.5) FRED=PARJ(48)
43643 FC=FC+FRED*FBB*PMAS(KFLH,1)**2
43644 ENDIF
43645 MC=1
43646 IF(ABS(FC-1D0).GT.0.01D0) MC=2
43647
43648
43649 IF(FA.LT.0.02D0) THEN
43650 MA=1
43651 ZMAX=1D0
43652 IF(FC.GT.FB) ZMAX=FB/FC
43653 ELSEIF(ABS(FC-FA).LT.0.01D0) THEN
43654 MA=2
43655 ZMAX=FB/(FB+FC)
43656 ELSE
43657 MA=3
43658 ZMAX=0.5D0*(FB+FC-SQRT((FB-FC)**2+4D0*FA*FB))/(FC-FA)
43659 IF(ZMAX.GT.0.9999D0.AND.FB.GT.100D0) ZMAX=MIN(ZMAX,1D0-FA/FB)
43660 ENDIF
43661
43662
43663 MMAX=2
43664 IF(ZMAX.LT.0.1D0) THEN
43665 MMAX=1
43666 ZDIV=2.75D0*ZMAX
43667 IF(MC.EQ.1) THEN
43668 FINT=1D0-LOG(ZDIV)
43669 ELSE
43670 ZDIVC=ZDIV**(1D0-FC)
43671 FINT=1D0+(1D0-1D0/ZDIVC)/(FC-1D0)
43672 ENDIF
43673 ELSEIF(ZMAX.GT.0.85D0.AND.FB.GT.1D0) THEN
43674 MMAX=3
43675 FSCB=SQRT(4D0+(FC/FB)**2)
43676 ZDIV=FSCB-1D0/ZMAX-(FC/FB)*LOG(ZMAX*0.5D0*(FSCB+FC/FB))
43677 IF(MA.GE.2) ZDIV=ZDIV+(FA/FB)*LOG(1D0-ZMAX)
43678 ZDIV=MIN(ZMAX,MAX(0D0,ZDIV))
43679 FINT=1D0+FB*(1D0-ZDIV)
43680 ENDIF
43681
43682
43683 100 Z=PYR(0)
43684 FPRE=1D0
43685 IF(MMAX.EQ.1) THEN
43686 IF(FINT*PYR(0).LE.1D0) THEN
43687 Z=ZDIV*Z
43688 ELSEIF(MC.EQ.1) THEN
43689 Z=ZDIV**Z
43690 FPRE=ZDIV/Z
43691 ELSE
43692 Z=(ZDIVC+Z*(1D0-ZDIVC))**(1D0/(1D0-FC))
43693 FPRE=(ZDIV/Z)**FC
43694 ENDIF
43695 ELSEIF(MMAX.EQ.3) THEN
43696 IF(FINT*PYR(0).LE.1D0) THEN
43697 Z=ZDIV+LOG(Z)/FB
43698 FPRE=EXP(FB*(Z-ZDIV))
43699 ELSE
43700 Z=ZDIV+Z*(1D0-ZDIV)
43701 ENDIF
43702 ENDIF
43703
43704
43705 IF(Z.LE.0D0.OR.Z.GE.1D0) GOTO 100
43706 FEXP=FC*LOG(ZMAX/Z)+FB*(1D0/ZMAX-1D0/Z)
43707 IF(MA.GE.2) FEXP=FEXP+FA*LOG((1D0-Z)/(1D0-ZMAX))
43708 FVAL=EXP(MAX(-50D0,MIN(50D0,FEXP)))
43709 IF(FVAL.LT.PYR(0)*FPRE) GOTO 100
43710
43711
43712 ELSE
43713 FC=PARJ(50+MAX(1,KFLH))
43714 IF(MSTJ(91).EQ.1) FC=PARJ(59)
43715 110 Z=PYR(0)
43716 IF(FC.GE.0D0.AND.FC.LE.1D0) THEN
43717 IF(FC.GT.PYR(0)) Z=1D0-Z**(1D0/3D0)
43718 ELSEIF(FC.GT.-1.AND.FC.LT.0D0) THEN
43719 IF(-4D0*FC*Z*(1D0-Z)**2.LT.PYR(0)*((1D0-Z)**2-FC*Z)**2)
43720 & GOTO 110
43721 ELSE
43722 IF(FC.GT.0D0) Z=1D0-Z**(1D0/FC)
43723 IF(FC.LT.0D0) Z=Z**(-1D0/FC)
43724 ENDIF
43725 ENDIF
43726
43727 RETURN
43728 END
43729
43730
43731
43732
43733
43734
43735 SUBROUTINE PYSHOW(IP1,IP2,QMAX)
43736
43737
43738 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
43739 IMPLICIT INTEGER(I-N)
43740 INTEGER PYK,PYCHGE,PYCOMP
43741
43742 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
43743 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
43744 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
43745 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
43746
43747 DIMENSION PMTH(5,50),PS(5),PMA(4),PMSD(4),IEP(4),IPA(4),
43748 &KFLA(4),KFLD(4),KFL(4),ITRY(4),ISI(4),ISL(4),DP(4),DPT(5,4),
43749 &KSH(0:40),KCII(2),NIIS(2),IIIS(2,2),THEIIS(2,2),PHIIIS(2,2),
43750 &ISII(2),ISSET(3)
43751
43752
43753 IF(MSTJ(41).LE.0) THEN
43754 RETURN
43755 ELSEIF(MSTJ(41).EQ.1) THEN
43756 IF(QMAX.LE.PARJ(82).AND.IP2.GT.-5) RETURN
43757 ELSE
43758 IF(QMAX.LE.MIN(PARJ(82),PARJ(83),PARJ(90)).AND.IP2.GT.-5)
43759 & RETURN
43760 ENDIF
43761
43762
43763 DO 100 IFL=0,40
43764 KSH(IFL)=0
43765 100 CONTINUE
43766 KSH(21)=1
43767 PMTH(1,21)=PYMASS(21)
43768 PMTH(2,21)=SQRT(PMTH(1,21)**2+0.25D0*PARJ(82)**2)
43769 PMTH(3,21)=2D0*PMTH(2,21)
43770 PMTH(4,21)=PMTH(3,21)
43771 PMTH(5,21)=PMTH(3,21)
43772 PMTH(1,22)=PYMASS(22)
43773 PMTH(2,22)=SQRT(PMTH(1,22)**2+0.25D0*PARJ(83)**2)
43774 PMTH(3,22)=2D0*PMTH(2,22)
43775 PMTH(4,22)=PMTH(3,22)
43776 PMTH(5,22)=PMTH(3,22)
43777 PMQTH1=PARJ(82)
43778 IF(MSTJ(41).GE.2) PMQTH1=MIN(PARJ(82),PARJ(83))
43779 PMQT1E=MIN(PMQTH1,PARJ(90))
43780 PMQTH2=PMTH(2,21)
43781 IF(MSTJ(41).GE.2) PMQTH2=MIN(PMTH(2,21),PMTH(2,22))
43782 PMQT2E=MIN(PMQTH2,0.5D0*PARJ(90))
43783 DO 110 IFL=1,8
43784 KSH(IFL)=1
43785 PMTH(1,IFL)=PYMASS(IFL)
43786 PMTH(2,IFL)=SQRT(PMTH(1,IFL)**2+0.25D0*PMQTH1**2)
43787 PMTH(3,IFL)=PMTH(2,IFL)+PMQTH2
43788 PMTH(4,IFL)=SQRT(PMTH(1,IFL)**2+0.25D0*PARJ(82)**2)+PMTH(2,21)
43789 PMTH(5,IFL)=SQRT(PMTH(1,IFL)**2+0.25D0*PARJ(83)**2)+PMTH(2,22)
43790 110 CONTINUE
43791 DO 120 IFL=11,17,2
43792 IF(MSTJ(41).GE.2) KSH(IFL)=1
43793 PMTH(1,IFL)=PYMASS(IFL)
43794 PMTH(2,IFL)=SQRT(PMTH(1,IFL)**2+0.25D0*PARJ(90)**2)
43795 PMTH(3,IFL)=PMTH(2,IFL)+0.5D0*PARJ(90)
43796 PMTH(4,IFL)=PMTH(3,IFL)
43797 PMTH(5,IFL)=PMTH(3,IFL)
43798 120 CONTINUE
43799 PT2MIN=MAX(0.5D0*PARJ(82),1.1D0*PARJ(81))**2
43800 ALAMS=PARJ(81)**2
43801 ALFM=LOG(PT2MIN/ALAMS)
43802
43803
43804 MPSPD=0
43805 IF(IP1.GT.0.AND.IP1.LE.MIN(N,MSTU(4)-MSTU(32)).AND.IP2.EQ.0) THEN
43806 NPA=1
43807 IPA(1)=IP1
43808 ELSEIF(MIN(IP1,IP2).GT.0.AND.MAX(IP1,IP2).LE.MIN(N,MSTU(4)-
43809 & MSTU(32))) THEN
43810 NPA=2
43811 IPA(1)=IP1
43812 IPA(2)=IP2
43813 ELSEIF(IP1.GT.0.AND.IP1.LE.MIN(N,MSTU(4)-MSTU(32)).AND.IP2.LT.0
43814 & .AND.IP2.GE.-3) THEN
43815 NPA=IABS(IP2)
43816 DO 130 I=1,NPA
43817 IPA(I)=IP1+I-1
43818 130 CONTINUE
43819 ELSEIF(IP1.GT.0.AND.IP1.LE.MIN(N,MSTU(4)-MSTU(32)).AND.
43820 &IP2.EQ.-8) THEN
43821 MPSPD=1
43822 NPA=2
43823 IPA(1)=IP1+6
43824 IPA(2)=IP1+7
43825 ELSE
43826 CALL PYERRM(12,
43827 & '(PYSHOW:) failed to reconstruct showering system')
43828 IF(MSTU(21).GE.1) RETURN
43829 ENDIF
43830
43831
43832 IREJ=0
43833 DO 140 J=1,5
43834 PS(J)=0D0
43835 140 CONTINUE
43836 PM=0D0
43837 DO 160 I=1,NPA
43838 KFLA(I)=IABS(K(IPA(I),2))
43839 PMA(I)=P(IPA(I),5)
43840
43841 IFLA=KFLA(I)
43842 IF(KFLA(I).GE.6.AND.KFLA(I).LE.8) THEN
43843 IFLA=37+KFLA(I)+ISIGN(2,K(IPA(I),2))
43844 PMTH(1,IFLA)=PMA(I)
43845 PMTH(2,IFLA)=SQRT(PMTH(1,IFLA)**2+0.25D0*PMQTH1**2)
43846 PMTH(3,IFLA)=PMTH(2,IFLA)+PMQTH2
43847 PMTH(4,IFLA)=SQRT(PMTH(1,IFLA)**2+0.25D0*PARJ(82)**2)+
43848 & PMTH(2,21)
43849 PMTH(5,IFLA)=SQRT(PMTH(1,IFLA)**2+0.25D0*PARJ(83)**2)+
43850 & PMTH(2,22)
43851 ENDIF
43852 IF(KFLA(I).LE.40) THEN
43853 IF(KSH(KFLA(I)).EQ.1) PMA(I)=PMTH(3,IFLA)
43854 ENDIF
43855 PM=PM+PMA(I)
43856 IF(KFLA(I).GT.40) THEN
43857 IREJ=IREJ+1
43858 ELSE
43859 IF(KSH(KFLA(I)).EQ.0.OR.PMA(I).GT.QMAX) IREJ=IREJ+1
43860 ENDIF
43861 DO 150 J=1,4
43862 PS(J)=PS(J)+P(IPA(I),J)
43863 150 CONTINUE
43864 160 CONTINUE
43865 IF(IREJ.EQ.NPA.AND.IP2.GT.-5) RETURN
43866 PS(5)=SQRT(MAX(0D0,PS(4)**2-PS(1)**2-PS(2)**2-PS(3)**2))
43867 IF(NPA.EQ.1) PS(5)=PS(4)
43868 IF(PS(5).LE.PM+PMQT1E) RETURN
43869
43870
43871 M3JC=0
43872 IF(NPA.EQ.2.AND.MSTJ(47).GE.1.AND.MPSPD.EQ.0) THEN
43873 IF(KFLA(1).GE.1.AND.KFLA(1).LE.8.AND.KFLA(2).GE.1.AND.
43874 & KFLA(2).LE.8) M3JC=1
43875 IF((KFLA(1).EQ.11.OR.KFLA(1).EQ.13.OR.KFLA(1).EQ.15.OR.
43876 & KFLA(1).EQ.17).AND.KFLA(2).EQ.KFLA(1)) M3JC=1
43877 IF((KFLA(1).EQ.11.OR.KFLA(1).EQ.13.OR.KFLA(1).EQ.15.OR.
43878 & KFLA(1).EQ.17).AND.KFLA(2).EQ.KFLA(1)+1) M3JC=1
43879 IF((KFLA(1).EQ.12.OR.KFLA(1).EQ.14.OR.KFLA(1).EQ.16.OR.
43880 & KFLA(1).EQ.18).AND.KFLA(2).EQ.KFLA(1)-1) M3JC=1
43881 IF(MSTJ(47).EQ.2.OR.MSTJ(47).EQ.4) M3JC=1
43882 M3JCM=0
43883 IF(M3JC.EQ.1.AND.MSTJ(47).GE.3.AND.KFLA(1).EQ.KFLA(2)) THEN
43884 M3JCM=1
43885 PQMES=PMTH(1,KFLA(1))**2
43886 QME=4D0*PQMES/PS(5)**2
43887 RESCZ=MIN(1D0,LOG(PMTH(2,KFLA(1))/PS(5))/
43888 & LOG(PMTH(2,21)/PS(5)))
43889 ENDIF
43890 ENDIF
43891
43892
43893 MIIS=0
43894 IF(MSTJ(50).GE.1.AND.MSTJ(50).LE.3.AND.NPA.EQ.2.AND.MPSPD.EQ.0)
43895 &MIIS=MSTJ(50)
43896 IF(MIIS.NE.0) THEN
43897 DO 180 I=1,2
43898 KCII(I)=0
43899 KCA=PYCOMP(KFLA(I))
43900 IF(KCA.NE.0) KCII(I)=KCHG(KCA,2)*ISIGN(1,K(IPA(I),2))
43901 NIIS(I)=0
43902 IF(KCII(I).NE.0) THEN
43903 DO 170 J=1,2
43904 ICSI=MOD(K(IPA(I),3+J)/MSTU(5),MSTU(5))
43905 IF(ICSI.GT.0.AND.ICSI.NE.IPA(1).AND.ICSI.NE.IPA(2).AND.
43906 & (KCII(I).EQ.(-1)**(J+1).OR.KCII(I).EQ.2)) THEN
43907 NIIS(I)=NIIS(I)+1
43908 IIIS(I,NIIS(I))=ICSI
43909 ENDIF
43910 170 CONTINUE
43911 ENDIF
43912 180 CONTINUE
43913 IF(NIIS(1)+NIIS(2).EQ.0) MIIS=0
43914 ENDIF
43915
43916
43917
43918 IF(MIIS.NE.0) THEN
43919 DO 200 I=1,2
43920 DO 190 J=1,5
43921 K(N+I,J)=K(IPA(I),J)
43922 P(N+I,J)=P(IPA(I),J)
43923 V(N+I,J)=0D0
43924 190 CONTINUE
43925 200 CONTINUE
43926 DO 220 I=3,2+NIIS(1)
43927 DO 210 J=1,5
43928 K(N+I,J)=K(IIIS(1,I-2),J)
43929 P(N+I,J)=P(IIIS(1,I-2),J)
43930 V(N+I,J)=0D0
43931 210 CONTINUE
43932 220 CONTINUE
43933 DO 240 I=3+NIIS(1),2+NIIS(1)+NIIS(2)
43934 DO 230 J=1,5
43935 K(N+I,J)=K(IIIS(2,I-2-NIIS(1)),J)
43936 P(N+I,J)=P(IIIS(2,I-2-NIIS(1)),J)
43937 V(N+I,J)=0D0
43938 230 CONTINUE
43939 240 CONTINUE
43940 CALL PYROBO(N+1,N+2+NIIS(1)+NIIS(2),0D0,0D0,-PS(1)/PS(4),
43941 & -PS(2)/PS(4),-PS(3)/PS(4))
43942 PHI=PYANGL(P(N+1,1),P(N+1,2))
43943 CALL PYROBO(N+1,N+2+NIIS(1)+NIIS(2),0D0,-PHI,0D0,0D0,0D0)
43944 THE=PYANGL(P(N+1,3),P(N+1,1))
43945 CALL PYROBO(N+1,N+2+NIIS(1)+NIIS(2),-THE,0D0,0D0,0D0,0D0)
43946 DO 250 I=3,2+NIIS(1)
43947 THEIIS(1,I-2)=PYANGL(P(N+I,3),SQRT(P(N+I,1)**2+P(N+I,2)**2))
43948 PHIIIS(1,I-2)=PYANGL(P(N+I,1),P(N+I,2))
43949 250 CONTINUE
43950 DO 260 I=3+NIIS(1),2+NIIS(1)+NIIS(2)
43951 THEIIS(2,I-2-NIIS(1))=PARU(1)-PYANGL(P(N+I,3),
43952 & SQRT(P(N+I,1)**2+P(N+I,2)**2))
43953 PHIIIS(2,I-2-NIIS(1))=PYANGL(P(N+I,1),P(N+I,2))
43954 260 CONTINUE
43955 ENDIF
43956
43957
43958 NS=N
43959 IF(N.GT.MSTU(4)-MSTU(32)-5) THEN
43960 CALL PYERRM(11,'(PYSHOW:) no more memory left in PYJETS')
43961 IF(MSTU(21).GE.1) RETURN
43962 ENDIF
43963 265 N=NS
43964 IF(NPA.GE.2) THEN
43965 K(N+1,1)=11
43966 K(N+1,2)=21
43967 K(N+1,3)=0
43968 K(N+1,4)=0
43969 K(N+1,5)=0
43970 P(N+1,1)=0D0
43971 P(N+1,2)=0D0
43972 P(N+1,3)=0D0
43973 P(N+1,4)=PS(5)
43974 P(N+1,5)=PS(5)
43975 V(N+1,5)=PS(5)**2
43976 N=N+1
43977 ENDIF
43978
43979
43980 NEP=NPA
43981 IM=NS
43982 IF(NPA.EQ.1) IM=NS-1
43983 270 IM=IM+1
43984 IF(N.GT.NS) THEN
43985 IF(IM.GT.N) GOTO 510
43986 KFLM=IABS(K(IM,2))
43987 IF(KFLM.GT.40) GOTO 270
43988 IF(KSH(KFLM).EQ.0) GOTO 270
43989 IFLM=KFLM
43990 IF(KFLM.GE.6.AND.KFLM.LE.8) IFLM=37+KFLM+ISIGN(2,K(IM,2))
43991 IF(P(IM,5).LT.PMTH(2,IFLM)) GOTO 270
43992 IGM=K(IM,3)
43993 ELSE
43994 IGM=-1
43995 ENDIF
43996 IF(N+NEP.GT.MSTU(4)-MSTU(32)-5) THEN
43997 CALL PYERRM(11,'(PYSHOW:) no more memory left in PYJETS')
43998 IF(MSTU(21).GE.1) RETURN
43999 ENDIF
44000
44001
44002
44003 IAU=0
44004 IF(IGM.GT.0) THEN
44005 IF(K(IM-1,3).EQ.IGM) IAU=IM-1
44006 IF(N.GE.IM+1.AND.K(IM+1,3).EQ.IGM) IAU=IM+1
44007 ENDIF
44008 IF(IGM.GE.0) THEN
44009 K(IM,4)=N+1
44010 DO 280 I=1,NEP
44011 K(N+I,3)=IM
44012 280 CONTINUE
44013 ELSE
44014 K(N+1,3)=IPA(1)
44015 ENDIF
44016 IF(IGM.LE.0) THEN
44017 DO 290 I=1,NEP
44018 K(N+I,2)=K(IPA(I),2)
44019 290 CONTINUE
44020 ELSEIF(KFLM.NE.21) THEN
44021 K(N+1,2)=K(IM,2)
44022 K(N+2,2)=K(IM,5)
44023 ELSEIF(K(IM,5).EQ.21) THEN
44024 K(N+1,2)=21
44025 K(N+2,2)=21
44026 ELSE
44027 K(N+1,2)=K(IM,5)
44028 K(N+2,2)=-K(IM,5)
44029 ENDIF
44030
44031
44032 DO 300 IP=1,NEP
44033 K(N+IP,1)=3
44034 K(N+IP,4)=0
44035 K(N+IP,5)=0
44036 KFLD(IP)=IABS(K(N+IP,2))
44037 IF(KCHG(PYCOMP(KFLD(IP)),2).EQ.0) K(N+IP,1)=1
44038 ITRY(IP)=0
44039 ISL(IP)=0
44040 ISI(IP)=0
44041 IF(KFLD(IP).LE.40) THEN
44042 IF(KSH(KFLD(IP)).EQ.1) ISI(IP)=1
44043 ENDIF
44044 300 CONTINUE
44045 ISLM=0
44046
44047
44048 IF(IGM.LE.0) THEN
44049 DO 310 I=1,NPA
44050 IF(NPA.GE.3) P(N+I,4)=(PS(4)*P(IPA(I),4)-PS(1)*P(IPA(I),1)-
44051 & PS(2)*P(IPA(I),2)-PS(3)*P(IPA(I),3))/PS(5)
44052 P(N+I,5)=MIN(QMAX,PS(5))
44053 IF(IP2.LE.-5) P(N+I,5)=MAX(P(N+I,5),
44054 & 2D0*PMTH(3,IABS(K(N+I,2))))
44055 IF(NPA.GE.3) P(N+I,5)=MIN(P(N+I,5),P(N+I,4))
44056 IF(ISI(I).EQ.0) P(N+I,5)=P(IPA(I),5)
44057 310 CONTINUE
44058 ELSE
44059 IF(MSTJ(43).LE.2) PEM=V(IM,2)
44060 IF(MSTJ(43).GE.3) PEM=P(IM,4)
44061 P(N+1,5)=MIN(P(IM,5),V(IM,1)*PEM)
44062 P(N+2,5)=MIN(P(IM,5),(1D0-V(IM,1))*PEM)
44063 IF(K(N+2,2).EQ.22) P(N+2,5)=PMTH(1,22)
44064 ENDIF
44065 DO 320 I=1,NEP
44066 PMSD(I)=P(N+I,5)
44067 IF(ISI(I).EQ.1) THEN
44068 IFLD=KFLD(I)
44069 IF(KFLD(I).GE.6.AND.KFLD(I).LE.8) IFLD=37+KFLD(I)+
44070 & ISIGN(2,K(N+I,2))
44071 IF(P(N+I,5).LE.PMTH(3,IFLD)) P(N+I,5)=PMTH(1,IFLD)
44072 ENDIF
44073 V(N+I,5)=P(N+I,5)**2
44074 320 CONTINUE
44075
44076
44077 330 INUM=0
44078 IF(NEP.EQ.1) INUM=1
44079 DO 340 I=1,NEP
44080 IF(INUM.EQ.0.AND.ISL(I).EQ.1) INUM=I
44081 340 CONTINUE
44082 DO 350 I=1,NEP
44083 IF(INUM.EQ.0.AND.ITRY(I).EQ.0.AND.ISI(I).EQ.1) THEN
44084 IFLD=KFLD(I)
44085 IF(KFLD(I).GE.6.AND.KFLD(I).LE.8) IFLD=37+KFLD(I)+
44086 & ISIGN(2,K(N+I,2))
44087 IF(P(N+I,5).GE.PMTH(2,IFLD)) INUM=I
44088 ENDIF
44089 350 CONTINUE
44090 IF(INUM.EQ.0) THEN
44091 RMAX=0D0
44092 DO 360 I=1,NEP
44093 IF(ISI(I).EQ.1.AND.PMSD(I).GE.PMQT2E) THEN
44094 RPM=P(N+I,5)/PMSD(I)
44095 IFLD=KFLD(I)
44096 IF(KFLD(I).GE.6.AND.KFLD(I).LE.8) IFLD=37+KFLD(I)+
44097 & ISIGN(2,K(N+I,2))
44098 IF(RPM.GT.RMAX.AND.P(N+I,5).GE.PMTH(2,IFLD)) THEN
44099 RMAX=RPM
44100 INUM=I
44101 ENDIF
44102 ENDIF
44103 360 CONTINUE
44104 ENDIF
44105
44106
44107 INUM=MAX(1,INUM)
44108 INUMT=INUM
44109 IF(MPSPD.EQ.1.AND.IGM.EQ.0.AND.ITRY(INUMT).GE.1) THEN
44110 IF(K(IP1-1+INUM,4).GT.0) INUM=3-INUM
44111 ELSEIF(MPSPD.EQ.1.AND.IM.EQ.NS+2.AND.ITRY(INUMT).GE.1) THEN
44112 IF(KFLD(INUMT).NE.21.AND.K(IP1+2,4).GT.0) INUM=3-INUM
44113 IF(KFLD(INUMT).EQ.21.AND.K(IP1+3,4).GT.0) INUM=3-INUM
44114 ENDIF
44115
44116
44117 IEP(1)=N+INUM
44118 DO 370 I=2,NEP
44119 IEP(I)=IEP(I-1)+1
44120 IF(IEP(I).GT.N+NEP) IEP(I)=N+1
44121 370 CONTINUE
44122 DO 380 I=1,NEP
44123 KFL(I)=IABS(K(IEP(I),2))
44124 380 CONTINUE
44125 ITRY(INUM)=ITRY(INUM)+1
44126 IF(ITRY(INUM).GT.200) THEN
44127 CALL PYERRM(14,'(PYSHOW:) caught in infinite loop')
44128 IF(MSTU(21).GE.1) RETURN
44129 ENDIF
44130 Z=0.5D0
44131 IF(KFL(1).GT.40) GOTO 430
44132 IF(KSH(KFL(1)).EQ.0) GOTO 430
44133 IFL=KFL(1)
44134 IF(KFL(1).GE.6.AND.KFL(1).LE.8) IFL=37+KFL(1)+
44135 &ISIGN(2,K(IEP(1),2))
44136 IF(P(IEP(1),5).LT.PMTH(2,IFL)) GOTO 430
44137
44138
44139 IPSPD=0
44140 IF(MPSPD.EQ.1.AND.IGM.EQ.0) THEN
44141 IF(K(IP1-1+INUM,4).GT.0) IPSPD=IP1-1+INUM
44142 ELSEIF(MPSPD.EQ.1.AND.IM.EQ.NS+2) THEN
44143 IF(KFL(1).NE.21.AND.K(IP1+2,4).GT.0) IPSPD=IP1+2
44144 IF(KFL(1).EQ.21.AND.K(IP1+3,4).GT.0) IPSPD=IP1+3
44145 ENDIF
44146 ISSET(INUM)=0
44147 IF(IPSPD.NE.0) ISSET(INUM)=1
44148
44149
44150 IF(MIIS.GE.1.AND.IEP(1).LE.NS+3) THEN
44151 III=IEP(1)-NS-1
44152 ISII(III)=0
44153 IF(IABS(KCII(III)).EQ.1.AND.NIIS(III).EQ.1) THEN
44154 ISII(III)=1
44155 ELSEIF(KCII(III).EQ.2.AND.NIIS(III).EQ.1) THEN
44156 IF(PYR(0).GT.0.5D0) ISII(III)=1
44157 ELSEIF(KCII(III).EQ.2.AND.NIIS(III).EQ.2) THEN
44158 ISII(III)=1
44159 IF(PYR(0).GT.0.5D0) ISII(III)=2
44160 ENDIF
44161 ENDIF
44162
44163
44164 IF(NEP.EQ.1) THEN
44165 PMED=PS(4)
44166 ELSEIF(IGM.EQ.0.OR.MSTJ(43).LE.2) THEN
44167 PMED=P(IM,5)
44168 ELSE
44169 IF(INUM.EQ.1) PMED=V(IM,1)*PEM
44170 IF(INUM.EQ.2) PMED=(1D0-V(IM,1))*PEM
44171 ENDIF
44172 IF(MOD(MSTJ(43),2).EQ.1) THEN
44173 ZC=PMTH(2,21)/PMED
44174 ZCE=PMTH(2,22)/PMED
44175 IF(KFL(1).GE.11.AND.KFL(1).LE.18) ZCE=0.5D0*PARJ(90)/PMED
44176 ELSE
44177 ZC=0.5D0*(1D0-SQRT(MAX(0D0,1D0-(2D0*PMTH(2,21)/PMED)**2)))
44178 IF(ZC.LT.1D-6) ZC=(PMTH(2,21)/PMED)**2
44179 PMTMPE=PMTH(2,22)
44180 IF(KFL(1).GE.11.AND.KFL(1).LE.18) PMTMPE=0.5D0*PARJ(90)
44181 ZCE=0.5D0*(1D0-SQRT(MAX(0D0,1D0-(2D0*PMTMPE/PMED)**2)))
44182 IF(ZCE.LT.1D-6) ZCE=(PMTMPE/PMED)**2
44183 ENDIF
44184 ZC=MIN(ZC,0.491D0)
44185 ZCE=MIN(ZCE,0.49991D0)
44186 IF(((MSTJ(41).EQ.1.AND.ZC.GT.0.49D0).OR.(MSTJ(41).GE.2.AND.
44187 &MIN(ZC,ZCE).GT.0.4999D0)).AND.IPSPD.EQ.0) THEN
44188 P(IEP(1),5)=PMTH(1,IFL)
44189 V(IEP(1),5)=P(IEP(1),5)**2
44190 GOTO 430
44191 ENDIF
44192
44193
44194 IF(MSTJ(49).EQ.0.AND.KFL(1).EQ.21) THEN
44195 FBR=6D0*LOG((1D0-ZC)/ZC)+MSTJ(45)*0.5D0
44196 ELSEIF(MSTJ(49).EQ.0) THEN
44197 FBR=(8D0/3D0)*LOG((1D0-ZC)/ZC)
44198
44199
44200 ELSEIF(MSTJ(49).EQ.1.AND.KFL(1).EQ.21) THEN
44201 FBR=(PARJ(87)+MSTJ(45)*PARJ(88))*(1D0-2D0*ZC)
44202 ELSEIF(MSTJ(49).EQ.1) THEN
44203 FBR=(1D0-2D0*ZC)/3D0
44204 IF(IGM.EQ.0.AND.M3JC.EQ.1) FBR=4D0*FBR
44205
44206
44207 ELSEIF(KFL(1).EQ.21) THEN
44208 FBR=6D0*MSTJ(45)*(0.5D0-ZC)
44209 ELSE
44210 FBR=2D0*LOG((1D0-ZC)/ZC)
44211 ENDIF
44212
44213
44214 IF(KFL(1).GE.11.AND.KFL(1).LE.18) FBR=0D0
44215
44216
44217 IF(MSTJ(41).GE.2.AND.KFL(1).GE.1.AND.KFL(1).LE.18) THEN
44218 FBRE=(KCHG(KFL(1),1)/3D0)**2*2D0*LOG((1D0-ZCE)/ZCE)
44219 IF(MSTJ(41).EQ.10) FBRE=PARJ(84)*FBRE
44220 ENDIF
44221
44222
44223 390 PMS=V(IEP(1),5)
44224 IF(IGM.GE.0) THEN
44225 PM2=0D0
44226 DO 400 I=2,NEP
44227 PM=P(IEP(I),5)
44228 IF(KFL(I).LE.40) THEN
44229 IFLI=KFL(I)
44230 IF(KFL(I).GE.6.AND.KFL(I).LE.8) IFLI=37+KFL(I)+
44231 & ISIGN(2,K(IEP(I),2))
44232 IF(KSH(KFL(I)).EQ.1) PM=PMTH(2,IFLI)
44233 ENDIF
44234 PM2=PM2+PM
44235 400 CONTINUE
44236 PMS=MIN(PMS,(P(IM,5)-PM2)**2)
44237 ENDIF
44238
44239
44240 B0=27D0/6D0
44241 DO 410 IFF=4,MSTJ(45)
44242 IF(PMS.GT.4D0*PMTH(2,IFF)**2) B0=(33D0-2D0*IFF)/6D0
44243 410 CONTINUE
44244
44245 IF(IPSPD.NE.0) THEN
44246 PMSQCD=P(IPSPD,5)**2
44247 ELSEIF(FBR.LT.1D-3) THEN
44248 PMSQCD=0D0
44249 ELSEIF(MSTJ(44).LE.0) THEN
44250 PMSQCD=PMS*EXP(MAX(-50D0,LOG(PYR(0))*PARU(2)/(PARU(111)*FBR)))
44251 ELSEIF(MSTJ(44).EQ.1) THEN
44252 PMSQCD=4D0*ALAMS*(0.25D0*PMS/ALAMS)**(PYR(0)**(B0/FBR))
44253 ELSE
44254 PMSQCD=PMS*EXP(MAX(-50D0,ALFM*B0*LOG(PYR(0))/FBR))
44255 ENDIF
44256 IF(ZC.GT.0.49D0.OR.PMSQCD.LE.PMTH(4,IFL)**2) PMSQCD=
44257 & PMTH(2,IFL)**2
44258 V(IEP(1),5)=PMSQCD
44259 MCE=1
44260
44261
44262 IF(MSTJ(41).GE.2.AND.KFL(1).GE.1.AND.KFL(1).LE.18.AND.
44263 &IPSPD.EQ.0) THEN
44264 PMSQED=PMS*EXP(MAX(-50D0,LOG(PYR(0))*PARU(2)/(PARU(101)*FBRE)))
44265 IF(ZCE.GT.0.4999D0.OR.PMSQED.LE.PMTH(5,IFL)**2) PMSQED=
44266 & PMTH(2,IFL)**2
44267 IF(PMSQED.GT.PMSQCD) THEN
44268 V(IEP(1),5)=PMSQED
44269 MCE=2
44270 ENDIF
44271 ENDIF
44272
44273
44274 P(IEP(1),5)=SQRT(V(IEP(1),5))
44275 IF(P(IEP(1),5).LE.PMTH(3,IFL)) THEN
44276 P(IEP(1),5)=PMTH(1,IFL)
44277 V(IEP(1),5)=P(IEP(1),5)**2
44278 GOTO 430
44279 ENDIF
44280
44281
44282 IF(IPSPD.NE.0) THEN
44283 IPSGD1=K(IPSPD,4)
44284 IPSGD2=K(IPSPD,5)
44285 PMSGD1=P(IPSGD1,5)**2
44286 PMSGD2=P(IPSGD2,5)**2
44287 ALAMPS=SQRT(MAX(1D-10,(PMSQCD-PMSGD1-PMSGD2)**2-
44288 & 4D0*PMSGD1*PMSGD2))
44289 Z=0.5D0*(PMSQCD*(2D0*P(IPSGD1,4)/P(IPSPD,4)-1D0)+ALAMPS-
44290 & PMSGD1+PMSGD2)/ALAMPS
44291 Z=MAX(0.00001D0,MIN(0.99999D0,Z))
44292 IF(KFL(1).NE.21) THEN
44293 K(IEP(1),5)=21
44294 ELSE
44295 K(IEP(1),5)=IABS(K(IPSGD1,2))
44296 ENDIF
44297
44298
44299 ELSEIF(MCE.EQ.2) THEN
44300 Z=1D0-(1D0-ZCE)*(ZCE/(1D0-ZCE))**PYR(0)
44301 IF(1D0+Z**2.LT.2D0*PYR(0)) GOTO 390
44302 K(IEP(1),5)=22
44303
44304
44305 ELSEIF(MSTJ(49).NE.1.AND.KFL(1).NE.21) THEN
44306 Z=1D0-(1D0-ZC)*(ZC/(1D0-ZC))**PYR(0)
44307 IF(IGM.EQ.0.AND.M3JCM.EQ.1) Z=1D0-(1D0-Z)**RESCZ
44308 IF(1D0+Z**2.LT.2D0*PYR(0)) GOTO 390
44309 K(IEP(1),5)=21
44310 ELSEIF(MSTJ(49).EQ.0.AND.MSTJ(45)*0.5D0.LT.PYR(0)*FBR) THEN
44311 Z=(1D0-ZC)*(ZC/(1D0-ZC))**PYR(0)
44312 IF(PYR(0).GT.0.5D0) Z=1D0-Z
44313 IF((1D0-Z*(1D0-Z))**2.LT.PYR(0)) GOTO 390
44314 K(IEP(1),5)=21
44315 ELSEIF(MSTJ(49).NE.1) THEN
44316 Z=PYR(0)
44317 IF(Z**2+(1D0-Z)**2.LT.PYR(0)) GOTO 390
44318 KFLB=1+INT(MSTJ(45)*PYR(0))
44319 PMQ=4D0*PMTH(2,KFLB)**2/V(IEP(1),5)
44320 IF(PMQ.GE.1D0) GOTO 390
44321 IF(MSTJ(44).LE.2) THEN
44322 IF(Z.LT.ZC.OR.Z.GT.1D0-ZC) GOTO 390
44323 PMQ0=4D0*PMTH(2,21)**2/V(IEP(1),5)
44324 IF(MOD(MSTJ(43),2).EQ.0.AND.(1D0+0.5D0*PMQ)*SQRT(1D0-PMQ)
44325 & .LT.PYR(0)*(1D0+0.5D0*PMQ0)*SQRT(1D0-PMQ0)) GOTO 390
44326 ELSE
44327 IF((1D0+0.5D0*PMQ)*SQRT(1D0-PMQ).LT.PYR(0)) GOTO 390
44328 ENDIF
44329 K(IEP(1),5)=KFLB
44330
44331
44332 ELSEIF(KFL(1).NE.21) THEN
44333 Z=1D0-SQRT(ZC**2+PYR(0)*(1D0-2D0*ZC))
44334 K(IEP(1),5)=21
44335 ELSEIF(PYR(0)*(PARJ(87)+MSTJ(45)*PARJ(88)).LE.PARJ(87)) THEN
44336 Z=ZC+(1D0-2D0*ZC)*PYR(0)
44337 K(IEP(1),5)=21
44338 ELSE
44339 Z=ZC+(1D0-2D0*ZC)*PYR(0)
44340 KFLB=1+INT(MSTJ(45)*PYR(0))
44341 PMQ=4D0*PMTH(2,KFLB)**2/V(IEP(1),5)
44342 IF(PMQ.GE.1D0) GOTO 390
44343 K(IEP(1),5)=KFLB
44344 ENDIF
44345
44346
44347 IF(MCE.EQ.1.AND.MSTJ(44).GE.2.AND.IPSPD.EQ.0) THEN
44348 IF(KFL(1).EQ.21.AND.K(IEP(1),5).LT.10.AND.MSTJ(44).EQ.3) THEN
44349 IF(ALFM/LOG(V(IEP(1),5)*0.25D0/ALAMS).LT.PYR(0)) GOTO 390
44350 ELSE
44351 IF(Z*(1D0-Z)*V(IEP(1),5).LT.PT2MIN) GOTO 390
44352 IF(ALFM/LOG(V(IEP(1),5)*Z*(1D0-Z)/ALAMS).LT.PYR(0)) GOTO 390
44353 ENDIF
44354 ENDIF
44355
44356
44357 IF(KFL(1).EQ.21) THEN
44358 KFLGD1=IABS(K(IEP(1),5))
44359 KFLGD2=KFLGD1
44360 ELSE
44361 KFLGD1=KFL(1)
44362 KFLGD2=IABS(K(IEP(1),5))
44363 ENDIF
44364 IF(NEP.EQ.1) THEN
44365 PED=PS(4)
44366 ELSEIF(NEP.GE.3) THEN
44367 PED=P(IEP(1),4)
44368 ELSEIF(IGM.EQ.0.OR.MSTJ(43).LE.2) THEN
44369 PED=0.5D0*(V(IM,5)+V(IEP(1),5)-PM2**2)/P(IM,5)
44370 ELSE
44371 IF(IEP(1).EQ.N+1) PED=V(IM,1)*PEM
44372 IF(IEP(1).EQ.N+2) PED=(1D0-V(IM,1))*PEM
44373 ENDIF
44374 IF(MOD(MSTJ(43),2).EQ.1) THEN
44375 IFLGD1=KFLGD1
44376 IF(KFLGD1.GE.6.AND.KFLGD1.LE.8) IFLGD1=IFL
44377 PMQTH3=0.5D0*PARJ(82)
44378 IF(KFLGD2.EQ.22) PMQTH3=0.5D0*PARJ(83)
44379 IF(KFL(1).GE.11.AND.KFL(1).LE.18) PMQTH3=0.5D0*PARJ(90)
44380 PMQ1=(PMTH(1,IFLGD1)**2+PMQTH3**2)/V(IEP(1),5)
44381 PMQ2=(PMTH(1,KFLGD2)**2+PMQTH3**2)/V(IEP(1),5)
44382 ZD=SQRT(MAX(0D0,(1D0-V(IEP(1),5)/PED**2)*((1D0-PMQ1-PMQ2)**2-
44383 & 4D0*PMQ1*PMQ2)))
44384 ZH=1D0+PMQ1-PMQ2
44385 ELSE
44386 ZD=SQRT(MAX(0D0,1D0-V(IEP(1),5)/PED**2))
44387 ZH=1D0
44388 ENDIF
44389 IF(KFL(1).EQ.21.AND.K(IEP(1),5).LT.10.AND.MSTJ(44).EQ.3) THEN
44390 ELSEIF(IPSPD.NE.0) THEN
44391 ELSE
44392 ZL=0.5D0*(ZH-ZD)
44393 ZU=0.5D0*(ZH+ZD)
44394 IF(Z.LT.ZL.OR.Z.GT.ZU) GOTO 390
44395 ENDIF
44396 IF(KFL(1).EQ.21) V(IEP(1),3)=LOG(ZU*(1D0-ZL)/MAX(1D-20,ZL*
44397 &(1D0-ZU)))
44398 IF(KFL(1).NE.21) V(IEP(1),3)=LOG((1D0-ZL)/MAX(1D-10,1D0-ZU))
44399
44400
44401 IF(MSTJ(40).NE.0.AND.KFL(1).NE.21.AND.IPSPD.EQ.0) THEN
44402 IF(IGM.EQ.0) THEN
44403 EGLU=0.5D0*PS(5)*(1D0-Z)*(1D0+V(IEP(1),5)/V(NS+1,5))
44404 ELSE
44405 EGLU=PMED*(1D0-Z)
44406 ENDIF
44407 CHI=PARJ(89)**2/(PARJ(89)**2+EGLU**2)
44408 IF(MSTJ(40).EQ.1) THEN
44409 IF(CHI.LT.PYR(0)) GOTO 390
44410 ELSEIF(MSTJ(40).EQ.2) THEN
44411 IF(1D0-CHI.LT.PYR(0)) GOTO 390
44412 ENDIF
44413 ENDIF
44414
44415
44416 IF(IGM.EQ.0.AND.M3JC.EQ.1) THEN
44417 X1=Z*(1D0+V(IEP(1),5)/V(NS+1,5))
44418 X2=1D0-V(IEP(1),5)/V(NS+1,5)
44419 X3=(1D0-X1)+(1D0-X2)
44420 IF(MCE.EQ.2) THEN
44421 KI1=K(IPA(INUM),2)
44422 KI2=K(IPA(3-INUM),2)
44423 QF1=KCHG(IABS(KI1),1)*ISIGN(1,KI1)/3D0
44424 QF2=KCHG(IABS(KI2),1)*ISIGN(1,KI2)/3D0
44425 WSHOW=QF1**2*(1D0-X1)/X3*(1D0+(X1/(2D0-X2))**2)+
44426 & QF2**2*(1D0-X2)/X3*(1D0+(X2/(2D0-X1))**2)
44427 WME=(QF1*(1D0-X1)/X3-QF2*(1D0-X2)/X3)**2*(X1**2+X2**2)
44428 ELSEIF(MSTJ(49).NE.1.AND.M3JCM.NE.1) THEN
44429 WSHOW=1D0+(1D0-X1)/X3*(X1/(2D0-X2))**2+
44430 & (1D0-X2)/X3*(X2/(2D0-X1))**2
44431 WME=X1**2+X2**2
44432 ELSEIF(MSTJ(49).NE.1) THEN
44433 X1=(1D0+(V(IEP(1),5)-PQMES)/V(NS+1,5))*
44434 & (Z+(1D0-Z)*PQMES/V(IEP(1),5))
44435 X2=1D0-(V(IEP(1),5)-PQMES)/V(NS+1,5)
44436 X3=(1D0-X1)+(1D0-X2)
44437 Z1SH=(X1-(PQMES/V(NS+1,5))*(X3/MAX(1D-10,1D0-X2)))/(2D0-X2)
44438 Z2SH=(X2-(PQMES/V(NS+1,5))*(X3/MAX(1D-10,1D0-X1)))/(2D0-X1)
44439 WSHOW=(((1D0-X1)/(2D0-X2))*(1D0+Z1SH**2)/MAX(1D-10,1D0-Z1SH)+
44440 & ((1D0-X2)/(2D0-X1))*(1D0+Z2SH**2)/MAX(1D-10,1D0-Z2SH))/RESCZ
44441 WME=X1**2+X2**2-QME*X3-0.5D0*QME**2-
44442 & (0.5D0*QME+0.25D0*QME**2)*((1D0-X2)/MAX(1D-10,1D0-X1)+
44443 & (1D0-X1)/MAX(1D-10,1D0-X2))
44444 ELSE
44445 WSHOW=4D0*X3*((1D0-X1)/(2D0-X2)**2+(1D0-X2)/(2D0-X1)**2)
44446 WME=X3**2
44447 IF(MSTJ(102).GE.2) WME=X3**2-2D0*(1D0+X3)*(1D0-X1)*(1D0-X2)*
44448 & PARJ(171)
44449 ENDIF
44450 IF(WME.LT.PYR(0)*WSHOW) GOTO 390
44451
44452
44453 ELSEIF(MCE.EQ.1.AND.IGM.GT.0.AND.MSTJ(42).GE.2.AND.IPSPD.EQ.0)
44454 &THEN
44455 PEMAO=V(IM,1)*P(IM,4)
44456 IF(IEP(1).EQ.N+2) PEMAO=(1D0-V(IM,1))*P(IM,4)
44457 IF(KFL(1).EQ.21.AND.K(IEP(1),5).LE.10.AND.MSTJ(42).EQ.4) THEN
44458 MAOD=0
44459 ELSEIF(KFL(1).EQ.21.AND.K(IEP(1),5).LE.10.AND.MSTJ(42).EQ.3)
44460 & THEN
44461 MAOD=1
44462 PMDAO=PMTH(2,K(IEP(1),5))
44463 THE2ID=Z*(1D0-Z)*PEMAO**2/(V(IEP(1),5)-4D0*PMDAO**2)
44464 ELSE
44465 MAOD=1
44466 THE2ID=Z*(1D0-Z)*PEMAO**2/V(IEP(1),5)
44467 ENDIF
44468 MAOM=1
44469 IAOM=IM
44470 420 IF(K(IAOM,5).EQ.22) THEN
44471 IAOM=K(IAOM,3)
44472 IF(K(IAOM,3).LE.NS) MAOM=0
44473 IF(MAOM.EQ.1) GOTO 420
44474 ENDIF
44475 IF(MAOM.EQ.1.AND.MAOD.EQ.1) THEN
44476 THE2IM=V(IAOM,1)*(1D0-V(IAOM,1))*P(IAOM,4)**2/V(IAOM,5)
44477 IF(THE2ID.LT.THE2IM) GOTO 390
44478 ENDIF
44479 ENDIF
44480
44481
44482 IF(MSTJ(48).EQ.1.AND.IPSPD.EQ.0) THEN
44483 IF(NEP.EQ.1.AND.IM.EQ.NS) THEN
44484 THE2ID=Z*(1D0-Z)*PS(4)**2/V(IEP(1),5)
44485 IF(PARJ(85)**2*THE2ID.LT.1D0) GOTO 390
44486 ELSEIF(NEP.EQ.2.AND.IEP(1).EQ.NS+2) THEN
44487 THE2ID=Z*(1D0-Z)*(0.5D0*P(IM,4))**2/V(IEP(1),5)
44488 IF(PARJ(85)**2*THE2ID.LT.1D0) GOTO 390
44489 ELSEIF(NEP.EQ.2.AND.IEP(1).EQ.NS+3) THEN
44490 THE2ID=Z*(1D0-Z)*(0.5D0*P(IM,4))**2/V(IEP(1),5)
44491 IF(PARJ(86)**2*THE2ID.LT.1D0) GOTO 390
44492 ENDIF
44493 ENDIF
44494
44495
44496
44497 IF(MIIS.GE.2.AND.IEP(1).LE.NS+3) THEN
44498 THE2D=MAX((1D0-Z)/Z,Z/(1D0-Z))*V(IEP(1),5)/(0.5D0*P(IM,4))**2
44499 IF(IEP(1).EQ.NS+2.AND.ISII(1).GE.1) THEN
44500 IF(THE2D.GT.THEIIS(1,ISII(1))**2) GOTO 390
44501 ELSEIF(IEP(1).EQ.NS+3.AND.ISII(2).GE.1) THEN
44502 IF(THE2D.GT.THEIIS(2,ISII(2))**2) GOTO 390
44503 ENDIF
44504 ENDIF
44505
44506
44507 430 V(IEP(1),1)=Z
44508 ISL(1)=0
44509 ISL(2)=0
44510 IF(NEP.EQ.1) GOTO 460
44511 IF(NEP.EQ.2.AND.P(IEP(1),5)+P(IEP(2),5).GE.P(IM,5)) GOTO 330
44512 DO 440 I=1,NEP
44513 IF(ITRY(I).EQ.0.AND.KFLD(I).LE.40) THEN
44514 IF(KSH(KFLD(I)).EQ.1) THEN
44515 IFLD=KFLD(I)
44516 IF(KFLD(I).GE.6.AND.KFLD(I).LE.8) IFLD=37+KFLD(I)+
44517 & ISIGN(2,K(N+I,2))
44518 IF(P(N+I,5).GE.PMTH(2,IFLD)) GOTO 330
44519 ENDIF
44520 ENDIF
44521 440 CONTINUE
44522
44523
44524 IF(NEP.EQ.3) THEN
44525 PA1S=(P(N+1,4)+P(N+1,5))*(P(N+1,4)-P(N+1,5))
44526 PA2S=(P(N+2,4)+P(N+2,5))*(P(N+2,4)-P(N+2,5))
44527 PA3S=(P(N+3,4)+P(N+3,5))*(P(N+3,4)-P(N+3,5))
44528 PTS=0.25D0*(2D0*PA1S*PA2S+2D0*PA1S*PA3S+2D0*PA2S*PA3S-
44529 & PA1S**2-PA2S**2-PA3S**2)/PA1S
44530 IF(PTS.LE.0D0) GOTO 330
44531 ELSEIF(IGM.EQ.0.OR.MSTJ(43).LE.2.OR.MOD(MSTJ(43),2).EQ.0) THEN
44532 DO 450 I1=N+1,N+2
44533 KFLDA=IABS(K(I1,2))
44534 IF(KFLDA.GT.40) GOTO 450
44535 IF(KSH(KFLDA).EQ.0) GOTO 450
44536 IFLDA=KFLDA
44537 IF(KFLDA.GE.6.AND.KFLDA.LE.8) IFLDA=37+KFLDA+
44538 & ISIGN(2,K(I1,2))
44539 IF(P(I1,5).LT.PMTH(2,IFLDA)) GOTO 450
44540 IF(KFLDA.EQ.21) THEN
44541 KFLGD1=IABS(K(I1,5))
44542 KFLGD2=KFLGD1
44543 ELSE
44544 KFLGD1=KFLDA
44545 KFLGD2=IABS(K(I1,5))
44546 ENDIF
44547 I2=2*N+3-I1
44548 IF(IGM.EQ.0.OR.MSTJ(43).LE.2) THEN
44549 PED=0.5D0*(V(IM,5)+V(I1,5)-V(I2,5))/P(IM,5)
44550 ELSE
44551 IF(I1.EQ.N+1) ZM=V(IM,1)
44552 IF(I1.EQ.N+2) ZM=1D0-V(IM,1)
44553 PML=SQRT((V(IM,5)-V(N+1,5)-V(N+2,5))**2-
44554 & 4D0*V(N+1,5)*V(N+2,5))
44555 PED=PEM*(0.5D0*(V(IM,5)-PML+V(I1,5)-V(I2,5))+PML*ZM)/
44556 & V(IM,5)
44557 ENDIF
44558 IF(MOD(MSTJ(43),2).EQ.1) THEN
44559 PMQTH3=0.5D0*PARJ(82)
44560 IF(KFLGD2.EQ.22) PMQTH3=0.5D0*PARJ(83)
44561 IF(KFLDA.GE.11.AND.KFLDA.LE.18) PMQTH3=0.5D0*PARJ(90)
44562 IFLGD1=KFLGD1
44563 IF(KFLGD1.GE.6.AND.KFLGD1.LE.8) IFLGD1=IFLDA
44564 PMQ1=(PMTH(1,IFLGD1)**2+PMQTH3**2)/V(I1,5)
44565 PMQ2=(PMTH(1,KFLGD2)**2+PMQTH3**2)/V(I1,5)
44566 ZD=SQRT(MAX(0D0,(1D0-V(I1,5)/PED**2)*((1D0-PMQ1-PMQ2)**2-
44567 & 4D0*PMQ1*PMQ2)))
44568 ZH=1D0+PMQ1-PMQ2
44569 ELSE
44570 ZD=SQRT(MAX(0D0,1D0-V(I1,5)/PED**2))
44571 ZH=1D0
44572 ENDIF
44573 IF(KFLDA.EQ.21.AND.KFLGD1.LT.10.AND.MSTJ(44).EQ.3) THEN
44574 ELSE
44575 ZL=0.5D0*(ZH-ZD)
44576 ZU=0.5D0*(ZH+ZD)
44577 IF(I1.EQ.N+1.AND.(V(I1,1).LT.ZL.OR.V(I1,1).GT.ZU).AND.
44578 & ISSET(1).EQ.0) THEN
44579 ISL(1)=1
44580 ELSEIF(I1.EQ.N+2.AND.(V(I1,1).LT.ZL.OR.V(I1,1).GT.ZU).AND.
44581 & ISSET(2).EQ.0) THEN
44582 ISL(2)=1
44583 ENDIF
44584 ENDIF
44585 IF(KFLDA.EQ.21) V(I1,4)=LOG(ZU*(1D0-ZL)/MAX(1D-20,
44586 & ZL*(1D0-ZU)))
44587 IF(KFLDA.NE.21) V(I1,4)=LOG((1D0-ZL)/MAX(1D-10,1D0-ZU))
44588 450 CONTINUE
44589 IF(ISL(1).EQ.1.AND.ISL(2).EQ.1.AND.ISLM.NE.0) THEN
44590 ISL(3-ISLM)=0
44591 ISLM=3-ISLM
44592 ELSEIF(ISL(1).EQ.1.AND.ISL(2).EQ.1) THEN
44593 ZDR1=MAX(0D0,V(N+1,3)/MAX(1D-6,V(N+1,4))-1D0)
44594 ZDR2=MAX(0D0,V(N+2,3)/MAX(1D-6,V(N+2,4))-1D0)
44595 IF(ZDR2.GT.PYR(0)*(ZDR1+ZDR2)) ISL(1)=0
44596 IF(ISL(1).EQ.1) ISL(2)=0
44597 IF(ISL(1).EQ.0) ISLM=1
44598 IF(ISL(2).EQ.0) ISLM=2
44599 ENDIF
44600 IF(ISL(1).EQ.1.OR.ISL(2).EQ.1) GOTO 330
44601 ENDIF
44602 IFLD1=KFLD(1)
44603 IF(KFLD(1).GE.6.AND.KFLD(1).LE.8) IFLD1=37+KFLD(1)+
44604 &ISIGN(2,K(N+1,2))
44605 IFLD2=KFLD(2)
44606 IF(KFLD(2).GE.6.AND.KFLD(2).LE.8) IFLD2=37+KFLD(2)+
44607 &ISIGN(2,K(N+2,2))
44608 IF(IGM.GT.0) THEN
44609 IF(MOD(MSTJ(43),2).EQ.1.AND.(P(N+1,5).GE.
44610 & PMTH(2,IFLD1).OR.P(N+2,5).GE.PMTH(2,IFLD2))) THEN
44611 PMQ1=V(N+1,5)/V(IM,5)
44612 PMQ2=V(N+2,5)/V(IM,5)
44613 ZD=SQRT(MAX(0D0,(1D0-V(IM,5)/PEM**2)*((1D0-PMQ1-PMQ2)**2-
44614 & 4D0*PMQ1*PMQ2)))
44615 ZH=1D0+PMQ1-PMQ2
44616 ZL=0.5D0*(ZH-ZD)
44617 ZU=0.5D0*(ZH+ZD)
44618 IF(V(IM,1).LT.ZL.OR.V(IM,1).GT.ZU) GOTO 330
44619 ENDIF
44620 ENDIF
44621
44622
44623 460 MAZIP=0
44624 MAZIC=0
44625 IF(NEP.EQ.1) THEN
44626 P(N+1,1)=0D0
44627 P(N+1,2)=0D0
44628 P(N+1,3)=SQRT(MAX(0D0,(P(IPA(1),4)+P(N+1,5))*(P(IPA(1),4)-
44629 & P(N+1,5))))
44630 P(N+1,4)=P(IPA(1),4)
44631 V(N+1,2)=P(N+1,4)
44632 ELSEIF(IGM.EQ.0.AND.NEP.EQ.2) THEN
44633 PED1=0.5D0*(V(IM,5)+V(N+1,5)-V(N+2,5))/P(IM,5)
44634 P(N+1,1)=0D0
44635 P(N+1,2)=0D0
44636 P(N+1,3)=SQRT(MAX(0D0,(PED1+P(N+1,5))*(PED1-P(N+1,5))))
44637 P(N+1,4)=PED1
44638 P(N+2,1)=0D0
44639 P(N+2,2)=0D0
44640 P(N+2,3)=-P(N+1,3)
44641 P(N+2,4)=P(IM,5)-PED1
44642 V(N+1,2)=P(N+1,4)
44643 V(N+2,2)=P(N+2,4)
44644 ELSEIF(NEP.EQ.3) THEN
44645 P(N+1,1)=0D0
44646 P(N+1,2)=0D0
44647 P(N+1,3)=SQRT(MAX(0D0,PA1S))
44648 P(N+2,1)=SQRT(PTS)
44649 P(N+2,2)=0D0
44650 P(N+2,3)=0.5D0*(PA3S-PA2S-PA1S)/P(N+1,3)
44651 P(N+3,1)=-P(N+2,1)
44652 P(N+3,2)=0D0
44653 P(N+3,3)=-(P(N+1,3)+P(N+2,3))
44654 V(N+1,2)=P(N+1,4)
44655 V(N+2,2)=P(N+2,4)
44656 V(N+3,2)=P(N+3,4)
44657
44658
44659 ELSE
44660 ZM=V(IM,1)
44661 LOOPPT=0
44662 465 LOOPPT=LOOPPT+1
44663 PZM=SQRT(MAX(0D0,(PEM+P(IM,5))*(PEM-P(IM,5))))
44664 PMLS=(V(IM,5)-V(N+1,5)-V(N+2,5))**2-4D0*V(N+1,5)*V(N+2,5)
44665 IF(PZM.LE.0D0) THEN
44666 PTS=0D0
44667 ELSEIF(K(IM,2).EQ.21.AND.IABS(K(N+1,2)).LE.10.AND.
44668 & MSTJ(44).EQ.3) THEN
44669 PTS=PMLS*ZM*(1D0-ZM)/V(IM,5)
44670 ELSEIF(MOD(MSTJ(43),2).EQ.1) THEN
44671 PTS=(PEM**2*(ZM*(1D0-ZM)*V(IM,5)-(1D0-ZM)*V(N+1,5)-
44672 & ZM*V(N+2,5))-0.25D0*PMLS)/PZM**2
44673 ELSE
44674 PTS=PMLS*(ZM*(1D0-ZM)*PEM**2/V(IM,5)-0.25D0)/PZM**2
44675 ENDIF
44676 IF(PTS.LT.0D0.AND.LOOPPT.LT.10) THEN
44677 ZM=0.05D0+0.9D0*ZM
44678 GOTO 465
44679 ELSEIF(PTS.LT.0D0) THEN
44680 GOTO 265
44681 ENDIF
44682 PT=SQRT(MAX(0D0,PTS))
44683
44684
44685 HAZIP=0D0
44686 IF(MSTJ(49).NE.1.AND.MOD(MSTJ(46),2).EQ.1.AND.K(IM,2).EQ.21
44687 & .AND.IAU.NE.0) THEN
44688 IF(K(IGM,3).NE.0) MAZIP=1
44689 ZAU=V(IGM,1)
44690 IF(IAU.EQ.IM+1) ZAU=1D0-V(IGM,1)
44691 IF(MAZIP.EQ.0) ZAU=0D0
44692 IF(K(IGM,2).NE.21) THEN
44693 HAZIP=2D0*ZAU/(1D0+ZAU**2)
44694 ELSE
44695 HAZIP=(ZAU/(1D0-ZAU*(1D0-ZAU)))**2
44696 ENDIF
44697 IF(K(N+1,2).NE.21) THEN
44698 HAZIP=HAZIP*(-2D0*ZM*(1D0-ZM))/(1D0-2D0*ZM*(1D0-ZM))
44699 ELSE
44700 HAZIP=HAZIP*(ZM*(1D0-ZM)/(1D0-ZM*(1D0-ZM)))**2
44701 ENDIF
44702 ENDIF
44703
44704
44705
44706 HAZIC=0D0
44707 IF(MSTJ(49).NE.2.AND.MSTJ(46).GE.2.AND.(K(N+1,2).EQ.21.OR.
44708 & K(N+2,2).EQ.21).AND.IAU.NE.0) THEN
44709 IF(K(IGM,3).NE.0) MAZIC=N+1
44710 IF(K(IGM,3).NE.0.AND.K(N+1,2).NE.21) MAZIC=N+2
44711 IF(K(IGM,3).NE.0.AND.K(N+1,2).EQ.21.AND.K(N+2,2).EQ.21.AND.
44712 & ZM.GT.0.5D0) MAZIC=N+2
44713 IF(K(IAU,2).EQ.22) MAZIC=0
44714 ZS=ZM
44715 IF(MAZIC.EQ.N+2) ZS=1D0-ZM
44716 ZGM=V(IGM,1)
44717 IF(IAU.EQ.IM-1) ZGM=1D0-V(IGM,1)
44718 IF(MAZIC.EQ.0) ZGM=1D0
44719 IF(MAZIC.NE.0) HAZIC=(P(IM,5)/P(IGM,5))*
44720 & SQRT((1D0-ZS)*(1D0-ZGM)/(ZS*ZGM))
44721 HAZIC=MIN(0.95D0,HAZIC)
44722 ENDIF
44723 ENDIF
44724
44725
44726 470 IF(NEP.EQ.2.AND.IGM.GT.0) THEN
44727 IF(K(IM,2).EQ.21.AND.IABS(K(N+1,2)).LE.10.AND.
44728 & MSTJ(44).EQ.3) THEN
44729 P(N+1,4)=0.5D0*(PEM*(V(IM,5)+V(N+1,5)-V(N+2,5))+
44730 & PZM*SQRT(MAX(0D0,PMLS))*(2D0*ZM-1D0))/V(IM,5)
44731 ELSEIF(MOD(MSTJ(43),2).EQ.1) THEN
44732 P(N+1,4)=PEM*V(IM,1)
44733 ELSE
44734 P(N+1,4)=PEM*(0.5D0*(V(IM,5)-SQRT(PMLS)+V(N+1,5)-V(N+2,5))+
44735 & SQRT(PMLS)*ZM)/V(IM,5)
44736 ENDIF
44737
44738
44739 PHI=PARU(2)*PYR(0)
44740 IF(MPSPD.EQ.1.AND.IGM.EQ.NS+1) THEN
44741 IPSPD=IP1+IM-NS-2
44742 IF(K(IPSPD,4).GT.0) THEN
44743 IPSGD1=K(IPSPD,4)
44744 IF(IM.EQ.NS+2) THEN
44745 PHI=PYANGL(P(IPSGD1,1),P(IPSGD1,2))
44746 ELSE
44747 PHI=PYANGL(-P(IPSGD1,1),P(IPSGD1,2))
44748 ENDIF
44749 ENDIF
44750 ELSEIF(MPSPD.EQ.1.AND.IGM.EQ.NS+2) THEN
44751 IPSPD=IP1+IM-NS-2
44752 IF(K(IPSPD,4).GT.0) THEN
44753 IPSGD1=K(IPSPD,4)
44754 PHIPSM=PYANGL(P(IPSPD,1),P(IPSPD,2))
44755 THEPSM=PYANGL(P(IPSPD,3),SQRT(P(IPSPD,1)**2+P(IPSPD,2)**2))
44756 CALL PYROBO(IPSGD1,IPSGD1,0D0,-PHIPSM,0D0,0D0,0D0)
44757 CALL PYROBO(IPSGD1,IPSGD1,-THEPSM,0D0,0D0,0D0,0D0)
44758 PHI=PYANGL(P(IPSGD1,1),P(IPSGD1,2))
44759 CALL PYROBO(IPSGD1,IPSGD1,THEPSM,PHIPSM,0D0,0D0,0D0)
44760 ENDIF
44761 ENDIF
44762
44763
44764 P(N+1,1)=PT*COS(PHI)
44765 P(N+1,2)=PT*SIN(PHI)
44766 IF(K(IM,2).EQ.21.AND.IABS(K(N+1,2)).LE.10.AND.
44767 & MSTJ(44).EQ.3) THEN
44768 P(N+1,3)=0.5D0*(PZM*(V(IM,5)+V(N+1,5)-V(N+2,5))+
44769 & PEM*SQRT(MAX(0D0,PMLS))*(2D0*ZM-1D0))/V(IM,5)
44770 ELSEIF(PZM.GT.0D0) THEN
44771 P(N+1,3)=0.5D0*(V(N+2,5)-V(N+1,5)-V(IM,5)+
44772 & 2D0*PEM*P(N+1,4))/PZM
44773 ELSE
44774 P(N+1,3)=0D0
44775 ENDIF
44776 P(N+2,1)=-P(N+1,1)
44777 P(N+2,2)=-P(N+1,2)
44778 P(N+2,3)=PZM-P(N+1,3)
44779 P(N+2,4)=PEM-P(N+1,4)
44780 IF(MSTJ(43).LE.2) THEN
44781 V(N+1,2)=(PEM*P(N+1,4)-PZM*P(N+1,3))/P(IM,5)
44782 V(N+2,2)=(PEM*P(N+2,4)-PZM*P(N+2,3))/P(IM,5)
44783 ENDIF
44784 ENDIF
44785
44786
44787 IF(IGM.GT.0) THEN
44788 IF(MSTJ(43).LE.2) THEN
44789 BEX=P(IGM,1)/P(IGM,4)
44790 BEY=P(IGM,2)/P(IGM,4)
44791 BEZ=P(IGM,3)/P(IGM,4)
44792 GA=P(IGM,4)/P(IGM,5)
44793 GABEP=GA*(GA*(BEX*P(IM,1)+BEY*P(IM,2)+BEZ*P(IM,3))/(1D0+GA)-
44794 & P(IM,4))
44795 ELSE
44796 BEX=0D0
44797 BEY=0D0
44798 BEZ=0D0
44799 GA=1D0
44800 GABEP=0D0
44801 ENDIF
44802 PTIMB=SQRT((P(IM,1)+GABEP*BEX)**2+(P(IM,2)+GABEP*BEY)**2)
44803 THE=PYANGL(P(IM,3)+GABEP*BEZ,PTIMB)
44804 IF(PTIMB.GT.1D-4) THEN
44805 PHI=PYANGL(P(IM,1)+GABEP*BEX,P(IM,2)+GABEP*BEY)
44806 ELSE
44807 PHI=0D0
44808 ENDIF
44809 DO 480 I=N+1,N+2
44810 DP(1)=COS(THE)*COS(PHI)*P(I,1)-SIN(PHI)*P(I,2)+
44811 & SIN(THE)*COS(PHI)*P(I,3)
44812 DP(2)=COS(THE)*SIN(PHI)*P(I,1)+COS(PHI)*P(I,2)+
44813 & SIN(THE)*SIN(PHI)*P(I,3)
44814 DP(3)=-SIN(THE)*P(I,1)+COS(THE)*P(I,3)
44815 DP(4)=P(I,4)
44816 DBP=BEX*DP(1)+BEY*DP(2)+BEZ*DP(3)
44817 DGABP=GA*(GA*DBP/(1D0+GA)+DP(4))
44818 P(I,1)=DP(1)+DGABP*BEX
44819 P(I,2)=DP(2)+DGABP*BEY
44820 P(I,3)=DP(3)+DGABP*BEZ
44821 P(I,4)=GA*(DP(4)+DBP)
44822 480 CONTINUE
44823 ENDIF
44824
44825
44826 IF(MAZIP.NE.0.OR.MAZIC.NE.0) THEN
44827 DO 490 J=1,3
44828 DPT(1,J)=P(IM,J)
44829 DPT(2,J)=P(IAU,J)
44830 DPT(3,J)=P(N+1,J)
44831 490 CONTINUE
44832 DPMA=DPT(1,1)*DPT(2,1)+DPT(1,2)*DPT(2,2)+DPT(1,3)*DPT(2,3)
44833 DPMD=DPT(1,1)*DPT(3,1)+DPT(1,2)*DPT(3,2)+DPT(1,3)*DPT(3,3)
44834 DPMM=DPT(1,1)**2+DPT(1,2)**2+DPT(1,3)**2
44835 DO 500 J=1,3
44836 DPT(4,J)=DPT(2,J)-DPMA*DPT(1,J)/MAX(1D-10,DPMM)
44837 DPT(5,J)=DPT(3,J)-DPMD*DPT(1,J)/MAX(1D-10,DPMM)
44838 500 CONTINUE
44839 DPT(4,4)=SQRT(DPT(4,1)**2+DPT(4,2)**2+DPT(4,3)**2)
44840 DPT(5,4)=SQRT(DPT(5,1)**2+DPT(5,2)**2+DPT(5,3)**2)
44841 IF(MIN(DPT(4,4),DPT(5,4)).GT.0.1D0*PARJ(82)) THEN
44842 CAD=(DPT(4,1)*DPT(5,1)+DPT(4,2)*DPT(5,2)+
44843 & DPT(4,3)*DPT(5,3))/(DPT(4,4)*DPT(5,4))
44844 IF(MAZIP.NE.0) THEN
44845 IF(1D0+HAZIP*(2D0*CAD**2-1D0).LT.PYR(0)*(1D0+ABS(HAZIP)))
44846 & GOTO 470
44847 ENDIF
44848 IF(MAZIC.NE.0) THEN
44849 IF(MAZIC.EQ.N+2) CAD=-CAD
44850 IF((1D0-HAZIC)*(1D0-HAZIC*CAD)/(1D0+HAZIC**2-2D0*HAZIC*CAD)
44851 & .LT.PYR(0)) GOTO 470
44852 ENDIF
44853 ENDIF
44854 ENDIF
44855
44856
44857 IF(MOD(MIIS,2).EQ.1.AND.IGM.EQ.NS+1.AND.(K(N+1,2).EQ.21.OR.
44858 &K(N+2,2).EQ.21)) THEN
44859 III=IM-NS-1
44860 IF(ISII(III).GE.1) THEN
44861 IAZIID=N+1
44862 IF(K(N+1,2).NE.21) IAZIID=N+2
44863 IF(K(N+1,2).EQ.21.AND.K(N+2,2).EQ.21.AND.
44864 & P(N+1,4).GT.P(N+2,4)) IAZIID=N+2
44865 THEIID=PYANGL(P(IAZIID,3),SQRT(P(IAZIID,1)**2+P(IAZIID,2)**2))
44866 IF(III.EQ.2) THEIID=PARU(1)-THEIID
44867 PHIIID=PYANGL(P(IAZIID,1),P(IAZIID,2))
44868 HAZII=MIN(0.95D0,THEIID/THEIIS(III,ISII(III)))
44869 CAD=COS(PHIIID-PHIIIS(III,ISII(III)))
44870 PHIREL=ABS(PHIIID-PHIIIS(III,ISII(III)))
44871 IF(PHIREL.GT.PARU(1)) PHIREL=PARU(2)-PHIREL
44872 IF((1D0-HAZII)*(1D0-HAZII*CAD)/(1D0+HAZII**2-2D0*HAZII*CAD)
44873 & .LT.PYR(0)) GOTO 470
44874 ENDIF
44875 ENDIF
44876
44877
44878 IF(IGM.GE.0) K(IM,1)=14
44879 N=N+NEP
44880 NEP=2
44881 IF(N.GT.MSTU(4)-MSTU(32)-5) THEN
44882 CALL PYERRM(11,'(PYSHOW:) no more memory left in PYJETS')
44883 IF(MSTU(21).GE.1) N=NS
44884 IF(MSTU(21).GE.1) RETURN
44885 ENDIF
44886 GOTO 270
44887
44888
44889 510 IF(NPA.GE.2) THEN
44890 K(NS+1,1)=11
44891 K(NS+1,2)=94
44892 K(NS+1,3)=IP1
44893 IF(IP2.GT.0.AND.IP2.LT.IP1) K(NS+1,3)=IP2
44894 K(NS+1,4)=NS+2
44895 K(NS+1,5)=NS+1+NPA
44896 IIM=1
44897 ELSE
44898 IIM=0
44899 ENDIF
44900
44901
44902 DO 520 I=NS+1+IIM,N
44903 IF(K(I,1).LE.10.AND.K(I,2).EQ.22) THEN
44904 K(I,1)=1
44905 ELSEIF(K(I,1).LE.10.AND.IABS(K(I,2)).GE.11.AND.
44906 & IABS(K(I,2)).LE.18) THEN
44907 K(I,1)=1
44908 ELSEIF(K(I,1).LE.10) THEN
44909 K(I,4)=MSTU(5)*(K(I,4)/MSTU(5))
44910 K(I,5)=MSTU(5)*(K(I,5)/MSTU(5))
44911 ELSEIF(K(MOD(K(I,4),MSTU(5))+1,2).NE.22) THEN
44912 ID1=MOD(K(I,4),MSTU(5))
44913 IF(K(I,2).GE.1.AND.K(I,2).LE.8) ID1=MOD(K(I,4),MSTU(5))+1
44914 ID2=2*MOD(K(I,4),MSTU(5))+1-ID1
44915 K(I,4)=MSTU(5)*(K(I,4)/MSTU(5))+ID1
44916 K(I,5)=MSTU(5)*(K(I,5)/MSTU(5))+ID2
44917 K(ID1,4)=K(ID1,4)+MSTU(5)*I
44918 K(ID1,5)=K(ID1,5)+MSTU(5)*ID2
44919 K(ID2,4)=K(ID2,4)+MSTU(5)*ID1
44920 K(ID2,5)=K(ID2,5)+MSTU(5)*I
44921 ELSE
44922 ID1=MOD(K(I,4),MSTU(5))
44923 ID2=ID1+1
44924 K(I,4)=MSTU(5)*(K(I,4)/MSTU(5))+ID1
44925 K(I,5)=MSTU(5)*(K(I,5)/MSTU(5))+ID1
44926 IF(IABS(K(I,2)).LE.10.OR.K(ID1,1).GE.11) THEN
44927 K(ID1,4)=K(ID1,4)+MSTU(5)*I
44928 K(ID1,5)=K(ID1,5)+MSTU(5)*I
44929 ELSE
44930 K(ID1,4)=0
44931 K(ID1,5)=0
44932 ENDIF
44933 K(ID2,4)=0
44934 K(ID2,5)=0
44935 ENDIF
44936 520 CONTINUE
44937
44938
44939 IF(NPA.GE.2) THEN
44940 BEX=PS(1)/PS(4)
44941 BEY=PS(2)/PS(4)
44942 BEZ=PS(3)/PS(4)
44943 GA=PS(4)/PS(5)
44944 GABEP=GA*(GA*(BEX*P(IPA(1),1)+BEY*P(IPA(1),2)+BEZ*P(IPA(1),3))
44945 & /(1D0+GA)-P(IPA(1),4))
44946 ELSE
44947 BEX=0D0
44948 BEY=0D0
44949 BEZ=0D0
44950 GABEP=0D0
44951 ENDIF
44952 THE=PYANGL(P(IPA(1),3)+GABEP*BEZ,SQRT((P(IPA(1),1)
44953 &+GABEP*BEX)**2+(P(IPA(1),2)+GABEP*BEY)**2))
44954 PHI=PYANGL(P(IPA(1),1)+GABEP*BEX,P(IPA(1),2)+GABEP*BEY)
44955 IF(NPA.EQ.3) THEN
44956 CHI=PYANGL(COS(THE)*COS(PHI)*(P(IPA(2),1)+GABEP*BEX)+COS(THE)*
44957 & SIN(PHI)*(P(IPA(2),2)+GABEP*BEY)-SIN(THE)*(P(IPA(2),3)+GABEP*
44958 & BEZ),-SIN(PHI)*(P(IPA(2),1)+GABEP*BEX)+COS(PHI)*(P(IPA(2),2)+
44959 & GABEP*BEY))
44960 MSTU(33)=1
44961 CALL PYROBO(NS+1,N,0D0,CHI,0D0,0D0,0D0)
44962 ENDIF
44963 MSTU(33)=1
44964 CALL PYROBO(NS+1,N,THE,PHI,BEX,BEY,BEZ)
44965
44966
44967 DO 540 I=NS+1,N
44968 DO 530 J=1,5
44969 V(I,J)=V(IP1,J)
44970 530 CONTINUE
44971 540 CONTINUE
44972
44973
44974 IF(N.LE.NS+NPA+IIM) THEN
44975 N=NS
44976 ELSE
44977 DO 550 IP=1,NPA
44978 K(IPA(IP),1)=14
44979 K(IPA(IP),4)=K(IPA(IP),4)+NS+IIM+IP
44980 K(IPA(IP),5)=K(IPA(IP),5)+NS+IIM+IP
44981 K(NS+IIM+IP,3)=IPA(IP)
44982 IF(IIM.EQ.1.AND.MSTU(16).NE.2) K(NS+IIM+IP,3)=NS+1
44983 IF(K(NS+IIM+IP,1).NE.1) THEN
44984 K(NS+IIM+IP,4)=MSTU(5)*IPA(IP)+K(NS+IIM+IP,4)
44985 K(NS+IIM+IP,5)=MSTU(5)*IPA(IP)+K(NS+IIM+IP,5)
44986 ENDIF
44987 550 CONTINUE
44988 ENDIF
44989
44990 RETURN
44991 END
44992
44993
44994
44995
44996
44997
44998
44999
45000 SUBROUTINE PYBOEI(NSAV)
45001
45002
45003 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
45004 IMPLICIT INTEGER(I-N)
45005 INTEGER PYK,PYCHGE,PYCOMP
45006 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
45007
45008 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
45009 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
45010 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
45011 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
45012
45013 DIMENSION DPS(4),KFBE(9),NBE(0:10),BEI(100),BEI3(100),
45014 &BEIW(100),BEI3W(100)
45015 DATA KFBE/211,-211,111,321,-321,130,310,221,331/
45016
45017 SDIP(I,J)=((P(I,4)+P(J,4))**2-(P(I,3)+P(J,3))**2-
45018 &(P(I,2)+P(J,2))**2-(P(I,1)+P(J,1))**2)
45019
45020
45021 IF((MSTJ(51).NE.1.AND.MSTJ(51).NE.2).OR.N-NSAV.LE.1) RETURN
45022 DO 100 J=1,4
45023 DPS(J)=0D0
45024 100 CONTINUE
45025 DO 120 I=1,N
45026 KFA=IABS(K(I,2))
45027 IF(K(I,1).LE.10.AND.((KFA.GT.10.AND.KFA.LE.20).OR.KFA.EQ.22)
45028 & .AND.K(I,3).GT.0) THEN
45029 KFMA=IABS(K(K(I,3),2))
45030 IF(KFMA.GT.10.AND.KFMA.LE.80) K(I,1)=-K(I,1)
45031 ENDIF
45032 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 120
45033 DO 110 J=1,4
45034 DPS(J)=DPS(J)+P(I,J)
45035 110 CONTINUE
45036 120 CONTINUE
45037 CALL PYROBO(0,0,0D0,0D0,-DPS(1)/DPS(4),-DPS(2)/DPS(4),
45038 &-DPS(3)/DPS(4))
45039 PECM=0D0
45040 DO 130 I=1,N
45041 IF(K(I,1).GE.1.AND.K(I,1).LE.10) PECM=PECM+P(I,4)
45042 130 CONTINUE
45043
45044
45045 IWP=0
45046 IWN=0
45047 NBE(0)=N+MSTU(3)
45048 NMAX=NBE(0)
45049 SMMIN=PECM
45050 DO 180 IBE=1,MIN(10,MSTJ(52)+1)
45051 NBE(IBE)=NBE(IBE-1)
45052 DO 170 I=NSAV+1,N
45053 IF(IBE.EQ.MIN(10,MSTJ(52)+1)) THEN
45054 DO 140 IIBE=1,IBE-1
45055 IF(K(I,2).EQ.KFBE(IIBE)) GOTO 170
45056 140 CONTINUE
45057 ELSE
45058 IF(K(I,2).NE.KFBE(IBE)) GOTO 170
45059 ENDIF
45060 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 170
45061 IF(NBE(IBE).GE.MSTU(4)-MSTU(32)-5) THEN
45062 CALL PYERRM(11,'(PYBOEI:) no more memory left in PYJETS')
45063 RETURN
45064 ENDIF
45065 NBE(IBE)=NBE(IBE)+1
45066 NMAX=NBE(IBE)
45067 K(NBE(IBE),1)=I
45068 K(NBE(IBE),5)=0
45069 SMMIN=MIN(SMMIN,P(I,5))
45070 IF(MSTJ(53).NE.0.OR.MSTJ(56).GT.0) THEN
45071 IM=I
45072 150 IF(K(IM,3).GT.0) THEN
45073 IM=K(IM,3)
45074 IF(ABS(K(IM,2)).NE.24) GOTO 150
45075 K(NBE(IBE),5)=K(IM,2)
45076 IF(IWP.EQ.0.AND.K(IM,2).EQ.24) IWP=IM
45077 IF(IWN.EQ.0.AND.K(IM,2).EQ.-24) IWN=IM
45078 ENDIF
45079 ENDIF
45080 DO 160 J=1,3
45081 P(NBE(IBE),J)=0D0
45082 V(NBE(IBE),J)=0D0
45083 160 CONTINUE
45084 P(NBE(IBE),5)=-1.0D0
45085 170 CONTINUE
45086 180 CONTINUE
45087 IF(NBE(MIN(9,MSTJ(52)))-NBE(0).LE.1) GOTO 500
45088
45089
45090 SIGW=PARJ(93)
45091 IF(IWP.GT.0.AND.IWN.GT.0.AND.MSTJ(56).GT.0) THEN
45092 DMW=PMAS(24,1)
45093 DGW=PMAS(24,2)
45094 DMP=P(IWP,5)
45095 DMN=P(IWN,5)
45096 TAUPD=DMP/SQRT((DMP**2-DMW**2)**2+(DGW*(DMP**2)/DMW)**2)
45097 TAUND=DMN/SQRT((DMN**2-DMW**2)**2+(DGW*(DMN**2)/DMW)**2)
45098 TAUP=-TAUPD*LOG(PYR(IDUM))
45099 TAUN=-TAUND*LOG(PYR(IDUM))
45100 DXP=TAUP*PYP(IWP,8)/DMP
45101 DXN=TAUN*PYP(IWN,8)/DMN
45102 DX=DXP+DXN
45103 SIGW=1.0D0/(1.0D0/PARJ(93)+REAL(MSTJ(56))*DX)
45104 ELSE
45105 SIGW=PARJ(93)
45106 ENDIF
45107
45108 IF(MSTJ(57).EQ.1.AND.MSTJ(54).LT.0) THEN
45109 DO 210 IBE=1,MIN(9,MSTJ(52))
45110 DO 200 I1M=NBE(IBE-1)+1,NBE(IBE)-1
45111 Q2MIN=PECM**2
45112 I1=K(I1M,1)
45113 DO 190 I2M=NBE(IBE-1)+1,NBE(IBE)-1
45114 IF(I2M.EQ.I1M) GOTO 190
45115 I2=K(I2M,1)
45116 Q2=(P(I1,4)+P(I2,4))**2-(P(I1,1)+P(I2,1))**2-
45117 & (P(I1,2)+P(I2,2))**2-(P(I1,3)+P(I2,3))**2-
45118 & (P(I1,5)+P(I2,5))**2
45119 IF(Q2.GT.0.0D0.AND.Q2.LT.Q2MIN) THEN
45120 Q2MIN=Q2
45121 ENDIF
45122 190 CONTINUE
45123 P(I1M,5)=Q2MIN
45124 200 CONTINUE
45125 210 CONTINUE
45126 ENDIF
45127
45128
45129 DO 390 IBE=1,MIN(9,MSTJ(52))
45130 IF(IBE.NE.1.AND.IBE.NE.4.AND.IBE.LE.7) GOTO 260
45131 IF(IBE.EQ.1.AND.MAX(NBE(1)-NBE(0),NBE(2)-NBE(1),NBE(3)-NBE(2))
45132 & .LE.1) GOTO 260
45133 IF(IBE.EQ.4.AND.MAX(NBE(4)-NBE(3),NBE(5)-NBE(4),NBE(6)-NBE(5),
45134 & NBE(7)-NBE(6)).LE.1) GOTO 260
45135 IF(IBE.GE.8.AND.NBE(IBE)-NBE(IBE-1).LE.1) GOTO 260
45136 IF(IBE.EQ.1) PMHQ=2D0*PYMASS(211)
45137 IF(IBE.EQ.4) PMHQ=2D0*PYMASS(321)
45138 IF(IBE.EQ.8) PMHQ=2D0*PYMASS(221)
45139 IF(IBE.EQ.9) PMHQ=2D0*PYMASS(331)
45140 QDEL=0.1D0*MIN(PMHQ,PARJ(93))
45141 QDEL3=0.1D0*MIN(PMHQ,PARJ(93)*3.0D0)
45142 QDELW=0.1D0*MIN(PMHQ,SIGW)
45143 QDEL3W=0.1D0*MIN(PMHQ,SIGW*3.0D0)
45144 IF(MSTJ(51).EQ.1) THEN
45145 NBIN=MIN(100,NINT(9D0*PARJ(93)/QDEL))
45146 NBIN3=MIN(100,NINT(27D0*PARJ(93)/QDEL3))
45147 NBINW=MIN(100,NINT(9D0*SIGW/QDELW))
45148 NBIN3W=MIN(100,NINT(27D0*SIGW/QDEL3W))
45149 BEEX=EXP(0.5D0*QDEL/PARJ(93))
45150 BEEX3=EXP(0.5D0*QDEL3/(3.0D0*PARJ(93)))
45151 BEEXW=EXP(0.5D0*QDELW/SIGW)
45152 BEEX3W=EXP(0.5D0*QDEL3W/(3.0D0*SIGW))
45153 BERT=EXP(-QDEL/PARJ(93))
45154 BERT3=EXP(-QDEL3/(3.0D0*PARJ(93)))
45155 BERTW=EXP(-QDELW/SIGW)
45156 BERT3W=EXP(-QDEL3W/(3.0D0*SIGW))
45157 ELSE
45158 NBIN=MIN(100,NINT(3D0*PARJ(93)/QDEL))
45159 NBIN3=MIN(100,NINT(9D0*PARJ(93)/QDEL3))
45160 NBINW=MIN(100,NINT(3D0*SIGW/QDELW))
45161 NBIN3W=MIN(100,NINT(9D0*SIGW/QDEL3W))
45162 ENDIF
45163 DO 220 IBIN=1,NBIN
45164 QBIN=QDEL*(IBIN-0.5D0)
45165 BEI(IBIN)=QDEL*(QBIN**2+QDEL**2/12D0)/SQRT(QBIN**2+PMHQ**2)
45166 IF(MSTJ(51).EQ.1) THEN
45167 BEEX=BEEX*BERT
45168 BEI(IBIN)=BEI(IBIN)*BEEX
45169 ELSE
45170 BEI(IBIN)=BEI(IBIN)*EXP(-(QBIN/PARJ(93))**2)
45171 ENDIF
45172 IF(IBIN.GE.2) BEI(IBIN)=BEI(IBIN)+BEI(IBIN-1)
45173 220 CONTINUE
45174 DO 230 IBIN=1,NBIN3
45175 QBIN=QDEL3*(IBIN-0.5D0)
45176 BEI3(IBIN)=QDEL3*(QBIN**2+QDEL3**2/12D0)/SQRT(QBIN**2+PMHQ**2)
45177 IF(MSTJ(51).EQ.1) THEN
45178 BEEX3=BEEX3*BERT3
45179 BEI3(IBIN)=BEI3(IBIN)*BEEX3
45180 ELSE
45181 BEI3(IBIN)=BEI3(IBIN)*EXP(-(QBIN/(3.0D0*PARJ(93)))**2)
45182 ENDIF
45183 IF(IBIN.GE.2) BEI3(IBIN)=BEI3(IBIN)+BEI3(IBIN-1)
45184 230 CONTINUE
45185 DO 240 IBIN=1,NBINW
45186 QBIN=QDELW*(IBIN-0.5D0)
45187 BEIW(IBIN)=QDELW*(QBIN**2+QDELW**2/12D0)/SQRT(QBIN**2+PMHQ**2)
45188 IF(MSTJ(51).EQ.1) THEN
45189 BEEXW=BEEXW*BERTW
45190 BEIW(IBIN)=BEIW(IBIN)*BEEXW
45191 ELSE
45192 BEIW(IBIN)=BEIW(IBIN)*EXP(-(QBIN/SIGW)**2)
45193 ENDIF
45194 IF(IBIN.GE.2) BEIW(IBIN)=BEIW(IBIN)+BEIW(IBIN-1)
45195 240 CONTINUE
45196 DO 250 IBIN=1,NBIN3W
45197 QBIN=QDEL3W*(IBIN-0.5D0)
45198 BEI3W(IBIN)=QDEL3W*(QBIN**2+QDEL3W**2/12D0)/
45199 & SQRT(QBIN**2+PMHQ**2)
45200 IF(MSTJ(51).EQ.1) THEN
45201 BEEX3W=BEEX3W*BERT3W
45202 BEI3W(IBIN)=BEI3W(IBIN)*BEEX3W
45203 ELSE
45204 BEI3W(IBIN)=BEI3W(IBIN)*EXP(-(QBIN/(3.0D0*SIGW))**2)
45205 ENDIF
45206 IF(IBIN.GE.2) BEI3W(IBIN)=BEI3W(IBIN)+BEI3W(IBIN-1)
45207 250 CONTINUE
45208
45209
45210 260 DO 380 I1M=NBE(IBE-1)+1,NBE(IBE)-1
45211 I1=K(I1M,1)
45212 DO 370 I2M=I1M+1,NBE(IBE)
45213 IF(MSTJ(53).EQ.1.AND.K(I1M,5).NE.K(I2M,5)) GOTO 370
45214 IF(MSTJ(53).EQ.2.AND.K(I1M,5).EQ.K(I2M,5)) GOTO 370
45215 I2=K(I2M,1)
45216 Q2OLD=(P(I1,4)+P(I2,4))**2-(P(I1,1)+P(I2,1))**2-(P(I1,2)+
45217 & P(I2,2))**2-(P(I1,3)+P(I2,3))**2-(P(I1,5)+P(I2,5))**2
45218 IF(Q2OLD.LE.0.0D0) GOTO 370
45219 QOLD=SQRT(Q2OLD)
45220
45221
45222 QMOV=0.0D0
45223 QMOV3=0.0D0
45224 QMOVW=0.0D0
45225 QMOV3W=0.0D0
45226 IF(QOLD.LT.1D-3*QDEL) THEN
45227 GOTO 270
45228 ELSEIF(QOLD.LE.QDEL) THEN
45229 QMOV=QOLD/3D0
45230 ELSEIF(QOLD.LT.(NBIN-0.1D0)*QDEL) THEN
45231 RBIN=QOLD/QDEL
45232 IBIN=RBIN
45233 RINP=(RBIN**3-IBIN**3)/(3*IBIN*(IBIN+1)+1)
45234 QMOV=(BEI(IBIN)+RINP*(BEI(IBIN+1)-BEI(IBIN)))*
45235 & SQRT(Q2OLD+PMHQ**2)/Q2OLD
45236 ELSE
45237 QMOV=BEI(NBIN)*SQRT(Q2OLD+PMHQ**2)/Q2OLD
45238 ENDIF
45239 270 Q2NEW=Q2OLD*(QOLD/(QOLD+3D0*PARJ(92)*QMOV))**(2D0/3D0)
45240 IF(QOLD.LT.1D-3*QDEL3) THEN
45241 GOTO 280
45242 ELSEIF(QOLD.LE.QDEL3) THEN
45243 QMOV3=QOLD/3D0
45244 ELSEIF(QOLD.LT.(NBIN3-0.1D0)*QDEL3) THEN
45245 RBIN3=QOLD/QDEL3
45246 IBIN3=RBIN3
45247 RINP3=(RBIN3**3-IBIN3**3)/(3*IBIN3*(IBIN3+1)+1)
45248 QMOV3=(BEI3(IBIN3)+RINP3*(BEI3(IBIN3+1)-BEI3(IBIN3)))*
45249 & SQRT(Q2OLD+PMHQ**2)/Q2OLD
45250 ELSE
45251 QMOV3=BEI3(NBIN3)*SQRT(Q2OLD+PMHQ**2)/Q2OLD
45252 ENDIF
45253 280 Q2NEW3=Q2OLD*(QOLD/(QOLD+3D0*PARJ(92)*QMOV3))**(2D0/3D0)
45254 RSCALE=1.0D0
45255 IF(MSTJ(54).EQ.2)
45256 & RSCALE=1.0D0-EXP(-(QOLD/(2D0*PARJ(93)))**2)
45257 IF(MSTJ(56).LE.0.OR.IWP.EQ.0.OR.IWN.EQ.0.OR.
45258 & K(I1M,5).EQ.K(I2M,5)) GOTO 310
45259
45260 IF(QOLD.LT.1D-3*QDELW) THEN
45261 GOTO 290
45262 ELSEIF(QOLD.LE.QDELW) THEN
45263 QMOVW=QOLD/3D0
45264 ELSEIF(QOLD.LT.(NBINW-0.1D0)*QDELW) THEN
45265 RBINW=QOLD/QDELW
45266 IBINW=RBINW
45267 RINPW=(RBINW**3-IBINW**3)/(3*IBINW*(IBINW+1)+1)
45268 QMOVW=(BEIW(IBINW)+RINPW*(BEIW(IBINW+1)-BEIW(IBINW)))*
45269 & SQRT(Q2OLD+PMHQ**2)/Q2OLD
45270 ELSE
45271 QMOVW=BEIW(NBINW)*SQRT(Q2OLD+PMHQ**2)/Q2OLD
45272 ENDIF
45273 290 Q2NEW=Q2OLD*(QOLD/(QOLD+3D0*PARJ(92)*QMOVW))**(2D0/3D0)
45274 IF(QOLD.LT.1D-3*QDEL3W) THEN
45275 GOTO 300
45276 ELSEIF(QOLD.LE.QDEL3W) THEN
45277 QMOV3W=QOLD/3D0
45278 ELSEIF(QOLD.LT.(NBIN3W-0.1D0)*QDEL3W) THEN
45279 RBIN3W=QOLD/QDEL3W
45280 IBIN3W=RBIN3W
45281 RINP3W=(RBIN3W**3-IBIN3W**3)/(3*IBIN3W*(IBIN3W+1)+1)
45282 QMOV3W=(BEI3W(IBIN3W)+RINP3W*(BEI3W(IBIN3W+1)-
45283 & BEI3W(IBIN3W)))*SQRT(Q2OLD+PMHQ**2)/Q2OLD
45284 ELSE
45285 QMOV3W=BEI3W(NBIN3W)*SQRT(Q2OLD+PMHQ**2)/Q2OLD
45286 ENDIF
45287 300 Q2NEW3=Q2OLD*(QOLD/(QOLD+3D0*PARJ(92)*QMOV3W))**(2D0/3D0)
45288 IF(MSTJ(54).EQ.2)
45289 & RSCALE=1.0D0-EXP(-(QOLD/(2D0*SIGW))**2)
45290
45291 310 CALL PYBESQ(I1,I2,NMAX,Q2OLD,Q2NEW)
45292 DO 320 J=1,3
45293 P(I1M,J)=P(I1M,J)+P(NMAX+1,J)
45294 P(I2M,J)=P(I2M,J)+P(NMAX+2,J)
45295 320 CONTINUE
45296 IF(MSTJ(54).GE.1) THEN
45297 CALL PYBESQ(I1,I2,NMAX,Q2OLD,Q2NEW3)
45298 DO 330 J=1,3
45299 V(I1M,J)=V(I1M,J)+P(NMAX+1,J)*RSCALE
45300 V(I2M,J)=V(I2M,J)+P(NMAX+2,J)*RSCALE
45301 330 CONTINUE
45302 ELSEIF(MSTJ(54).LE.-1) THEN
45303 EDEL=P(I1,4)+P(I2,4)-
45304 & SQRT(MAX(Q2NEW-Q2OLD+(P(I1,4)+P(I2,4))**2,0.0D0))
45305 A2=(P(I1,1)-P(I2,1))**2+(P(I1,2)-P(I2,2))**2+
45306 & (P(I1,3)-P(I2,3))**2
45307 WMAX=-1.0D20
45308 MI3=0
45309 MI4=0
45310 S12=SDIP(I1,I2)
45311 SM1=(P(I1,5)+SMMIN)**2
45312 DO 350 I3M=NBE(0)+1,NBE(MIN(10,MSTJ(52)+1))
45313 IF(I3M.EQ.I1M.OR.I3M.EQ.I2M) GOTO 350
45314 IF(MSTJ(53).EQ.1.AND.K(I3M,5).NE.K(I1M,5)) GOTO 350
45315 IF(MSTJ(53).EQ.-2.AND.K(I1M,5).EQ.K(I2M,5).AND.
45316 & K(I3M,5).NE.K(I1M,5)) GOTO 350
45317 I3=K(I3M,1)
45318 IF(K(I3,2).EQ.K(I1,2)) GOTO 350
45319 S13=SDIP(I1,I3)
45320 S23=SDIP(I2,I3)
45321 SM3=(P(I3,5)+SMMIN)**2
45322 IF(MSTJ(54).EQ.-2) THEN
45323 WI=(MIN(S12*SM3,S13*MIN(SM1,SM3),
45324 & S23*MIN(SM1,SM3))*SM1)
45325 ELSE
45326 WI=((P(I1,4)+P(I2,4)+P(I3,4))**2-
45327 & (P(I1,3)+P(I2,3)+P(I3,3))**2-
45328 & (P(I1,2)+P(I2,2)+P(I3,2))**2-
45329 & (P(I1,1)+P(I2,1)+P(I3,1))**2)
45330 ENDIF
45331 IF(MSTJ(57).EQ.1.AND.P(I3M,5).GT.0) THEN
45332 IF (WMAX*WI.GE.(1.0D0-EXP(-P(I3M,5)/(PARJ(93)**2))))
45333 & GOTO 350
45334 ELSE
45335 IF(WMAX*WI.GE.1.0) GOTO 350
45336 ENDIF
45337 DO 340 I4M=I3M+1,NBE(MIN(10,MSTJ(52)+1))
45338 IF(I4M.EQ.I1M.OR.I4M.EQ.I2M) GOTO 340
45339 IF(MSTJ(53).EQ.1.AND.K(I4M,5).NE.K(I1M,5)) GOTO 340
45340 IF(MSTJ(53).EQ.-2.AND.K(I1M,5).EQ.K(I2M,5).AND.
45341 & K(I4M,5).NE.K(I1M,5)) GOTO 340
45342 I4=K(I4M,1)
45343 IF(K(I3,2).EQ.K(I4,2).OR.K(I4,2).EQ.K(I1,2))
45344 & GOTO 340
45345 IF((P(I3,4)+P(I4,4)+EDEL)**2.LT.
45346 & (P(I3,1)+P(I4,1))**2+(P(I3,2)+P(I4,2))**2+
45347 & (P(I3,3)+P(I4,3))**2+(P(I3,5)+P(I4,5))**2)
45348 & GOTO 340
45349 IF(MSTJ(54).EQ.-2) THEN
45350 S14=SDIP(I1,I4)
45351 S24=SDIP(I2,I4)
45352 S34=SDIP(I3,I4)
45353 W=S12*MIN(MIN(S23,S24),MIN(S13,S14))*S34
45354 W=MIN(W,S13*MIN(MIN(S23,S34),S12)*S24)
45355 W=MIN(W,S14*MIN(MIN(S24,S34),S12)*S23)
45356 W=MIN(W,MIN(S23,S24)*S13*S14)
45357 W=1.0D0/W
45358 ELSE
45359
45360 S1234=(P(I1,4)+P(I2,4)+P(I3,4)+P(I4,4))**2-
45361 & (P(I1,3)+P(I2,3)+P(I3,3)+P(I4,3))**2-
45362 & (P(I1,2)+P(I2,2)+P(I3,2)+P(I4,2))**2-
45363 & (P(I1,1)+P(I2,1)+P(I3,1)+P(I4,1))**2
45364 W=1.0D0/S1234
45365 IF(W.LE.WMAX) GOTO 340
45366 ENDIF
45367 IF(MSTJ(57).EQ.1.AND.P(I3M,5).GT.0)
45368 & W=W*(1.0D0-EXP(-P(I3M,5)/(PARJ(93)**2)))
45369 IF(MSTJ(57).EQ.1.AND.P(I4M,5).GT.0)
45370 & W=W*(1.0D0-EXP(-P(I4M,5)/(PARJ(93)**2)))
45371 IF(W.LE.WMAX) GOTO 340
45372 MI3=I3M
45373 MI4=I4M
45374 WMAX=W
45375 340 CONTINUE
45376 350 CONTINUE
45377 IF(MI4.EQ.0) GOTO 370
45378 I3=K(MI3,1)
45379 I4=K(MI4,1)
45380 EOLD=P(I3,4)+P(I4,4)
45381 ENEW=EOLD+EDEL
45382 P2=(P(I3,1)+P(I4,1))**2+(P(I3,2)+P(I4,2))**2+
45383 & (P(I3,3)+P(I4,3))**2
45384 Q2NEWP=MAX(0.0D0,ENEW**2-P2-(P(I3,5)+P(I4,5))**2)
45385 Q2OLDP=MAX(0.0D0,EOLD**2-P2-(P(I3,5)+P(I4,5))**2)
45386 CALL PYBESQ(I3,I4,NMAX,Q2OLDP,Q2NEWP)
45387 DO 360 J=1,3
45388 V(MI3,J)=V(MI3,J)+P(NMAX+1,J)
45389 V(MI4,J)=V(MI4,J)+P(NMAX+2,J)
45390 360 CONTINUE
45391 ENDIF
45392 370 CONTINUE
45393 380 CONTINUE
45394 390 CONTINUE
45395
45396
45397 ESUMP=0.0D0
45398 ESUM=0.0D0
45399 PROD=0.0D0
45400 DO 420 IM=NBE(0)+1,NBE(MIN(10,MSTJ(52)+1))
45401 I=K(IM,1)
45402 ESUMP=ESUMP+P(I,4)
45403 DO 400 J=1,3
45404 P(I,J)=P(I,J)+P(IM,J)
45405 400 CONTINUE
45406 P(I,4)=SQRT(P(I,5)**2+P(I,1)**2+P(I,2)**2+P(I,3)**2)
45407 ESUM=ESUM+P(I,4)
45408 DO 410 J=1,3
45409 PROD=PROD+V(IM,J)*P(I,J)/P(I,4)
45410 410 CONTINUE
45411 420 CONTINUE
45412
45413 PARJ(96)=0.0D0
45414 IF(MSTJ(54).NE.0.AND.PROD.NE.0.0D0) THEN
45415 430 ALPHA=(ESUMP-ESUM)/PROD
45416 PARJ(96)=PARJ(96)+ALPHA
45417 PROD=0.0D0
45418 ESUM=0.0D0
45419 DO 460 IM=NBE(0)+1,NBE(MIN(10,MSTJ(52)+1))
45420 I=K(IM,1)
45421 DO 440 J=1,3
45422 P(I,J)=P(I,J)+ALPHA*V(IM,J)
45423 440 CONTINUE
45424 P(I,4)=SQRT(P(I,5)**2+P(I,1)**2+P(I,2)**2+P(I,3)**2)
45425 ESUM=ESUM+P(I,4)
45426 DO 450 J=1,3
45427 PROD=PROD+V(IM,J)*P(I,J)/P(I,4)
45428 450 CONTINUE
45429 460 CONTINUE
45430 IF(PROD.NE.0.0D0.AND.ABS(ESUMP-ESUM)/PECM.GT.0.00001D0)
45431 & GOTO 430
45432 ENDIF
45433
45434
45435 PES=0D0
45436 PQS=0D0
45437 DO 470 I=1,N
45438 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 470
45439 PES=PES+P(I,4)
45440 PQS=PQS+P(I,5)**2/P(I,4)
45441 470 CONTINUE
45442 PARJ(95)=PES-PECM
45443 FAC=(PECM-PQS)/(PES-PQS)
45444 DO 490 I=1,N
45445 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 490
45446 DO 480 J=1,3
45447 P(I,J)=FAC*P(I,J)
45448 480 CONTINUE
45449 P(I,4)=SQRT(P(I,5)**2+P(I,1)**2+P(I,2)**2+P(I,3)**2)
45450 490 CONTINUE
45451
45452
45453 500 CALL PYROBO(0,0,0D0,0D0,DPS(1)/DPS(4),DPS(2)/DPS(4),DPS(3)/DPS(4))
45454 DO 510 I=1,N
45455 IF(K(I,1).LT.0) K(I,1)=-K(I,1)
45456 510 CONTINUE
45457
45458 RETURN
45459 END
45460
45461
45462
45463
45464
45465
45466
45467
45468 SUBROUTINE PYBESQ(I1,I2,NI,Q2OLD,Q2NEW)
45469
45470
45471 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
45472 IMPLICIT INTEGER(I-N)
45473 INTEGER PYK,PYCHGE,PYCOMP
45474 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
45475
45476 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
45477 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
45478 SAVE /PYJETS/,/PYDAT1/
45479
45480 DIMENSION DP(5)
45481 SAVE HC1
45482
45483 IF(MSTJ(55).EQ.0) THEN
45484 DQ2=Q2NEW-Q2OLD
45485 DP2=(P(I1,1)-P(I2,1))**2+(P(I1,2)-P(I2,2))**2+
45486 & (P(I1,3)-P(I2,3))**2
45487 DP12=P(I1,1)**2+P(I1,2)**2+P(I1,3)**2
45488 & -P(I2,1)**2-P(I2,2)**2-P(I2,3)**2
45489 SE=P(I1,4)+P(I2,4)
45490 DE=P(I1,4)-P(I2,4)
45491 DQ2SE=DQ2+SE**2
45492 DA=SE*DE*DP12-DP2*DQ2SE
45493 DB=DP2*DQ2SE-DP12**2
45494 HA=(DA+SQRT(MAX(DA**2+DQ2*(DQ2+SE**2-DE**2)*DB,0D0)))/(2D0*DB)
45495 DO 100 J=1,3
45496 PD=HA*(P(I1,J)-P(I2,J))
45497 P(NI+1,J)=PD
45498 P(NI+2,J)=-PD
45499 100 CONTINUE
45500 RETURN
45501 ENDIF
45502
45503 K(NI+1,1)=1
45504 K(NI+2,1)=1
45505 DO 110 J=1,5
45506 P(NI+1,J)=P(I1,J)
45507 P(NI+2,J)=P(I2,J)
45508 DP(J)=P(I1,J)+P(I2,J)
45509 110 CONTINUE
45510
45511
45512 CALL PYROBO(NI+1,NI+2,0.0D0,0.0D0,
45513 &-DP(1)/DP(4),-DP(2)/DP(4),-DP(3)/DP(4))
45514 PHI=PYANGL(P(NI+1,1),P(NI+1,2))
45515 THE=PYANGL(P(NI+1,3),SQRT(P(NI+1,1)**2+P(NI+1,2)**2))
45516 S=Q2NEW+(P(I1,5)+P(I2,5))**2
45517 PZ=0.5D0*SQRT(Q2NEW*(S-(P(I1,5)-P(I2,5))**2)/S)
45518 P(NI+1,1)=0.0D0
45519 P(NI+1,2)=0.0D0
45520 P(NI+1,3)=PZ
45521 P(NI+1,4)=SQRT(PZ**2+P(I1,5)**2)
45522 P(NI+2,1)=0.0D0
45523 P(NI+2,2)=0.0D0
45524 P(NI+2,3)=-PZ
45525 P(NI+2,4)=SQRT(PZ**2+P(I2,5)**2)
45526 DP(4)=SQRT(DP(1)**2+DP(2)**2+DP(3)**2+S)
45527 CALL PYROBO(NI+1,NI+2,THE,PHI,
45528 &DP(1)/DP(4),DP(2)/DP(4),DP(3)/DP(4))
45529
45530 DO 120 J=1,3
45531 P(NI+1,J)=P(NI+1,J)-P(I1,J)
45532 P(NI+2,J)=P(NI+2,J)-P(I2,J)
45533 120 CONTINUE
45534
45535 RETURN
45536 END
45537
45538
45539
45540
45541
45542
45543 FUNCTION PYMASS(KF)
45544
45545
45546 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
45547 IMPLICIT INTEGER(I-N)
45548 INTEGER PYK,PYCHGE,PYCOMP
45549
45550 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
45551 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
45552 SAVE /PYDAT1/,/PYDAT2/
45553
45554
45555 PYMASS=0D0
45556 KFA=IABS(KF)
45557 KC=PYCOMP(KF)
45558 IF(KC.EQ.0) THEN
45559 MSTJ(93)=0
45560 RETURN
45561 ENDIF
45562
45563
45564 IF((MSTJ(93).EQ.1.OR.MSTJ(93).EQ.2).AND.
45565 &(KFA.LE.10.OR.MOD(KFA/10,10).EQ.0)) THEN
45566 PARF(106)=PMAS(6,1)
45567 PARF(107)=PMAS(7,1)
45568 PARF(108)=PMAS(8,1)
45569 IF(KFA.LE.10) THEN
45570 PYMASS=PARF(100+KFA)
45571 IF(MSTJ(93).EQ.2) PYMASS=MAX(0D0,PYMASS-PARF(121))
45572 ELSEIF(MSTJ(93).EQ.1) THEN
45573 PYMASS=PARF(100+MOD(KFA/1000,10))+PARF(100+MOD(KFA/100,10))
45574 ELSE
45575 PYMASS=MAX(0D0,PMAS(KC,1)-PARF(122)-2D0*PARF(112)/3D0)
45576 ENDIF
45577
45578
45579 ELSE
45580 PYMASS=PMAS(KC,1)
45581 ENDIF
45582
45583
45584
45585 IF(MSTJ(24).GE.1.AND.PMAS(KC,2).GT.1D-4) THEN
45586 IF(MSTJ(24).EQ.1.OR.(MSTJ(24).EQ.2.AND.KFA.GT.100)) THEN
45587 PYMASS=PYMASS+0.5D0*PMAS(KC,2)*TAN((2D0*PYR(0)-1D0)*
45588 & ATAN(2D0*PMAS(KC,3)/PMAS(KC,2)))
45589 ELSE
45590 PM0=PYMASS
45591 PMLOW=ATAN((MAX(0D0,PM0-PMAS(KC,3))**2-PM0**2)/
45592 & (PM0*PMAS(KC,2)))
45593 PMUPP=ATAN(((PM0+PMAS(KC,3))**2-PM0**2)/(PM0*PMAS(KC,2)))
45594 PYMASS=SQRT(MAX(0D0,PM0**2+PM0*PMAS(KC,2)*TAN(PMLOW+
45595 & (PMUPP-PMLOW)*PYR(0))))
45596 ENDIF
45597 ENDIF
45598 MSTJ(93)=0
45599
45600 RETURN
45601 END
45602
45603
45604
45605
45606
45607
45608
45609 FUNCTION PYMRUN(KF,Q2)
45610
45611
45612 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
45613 IMPLICIT INTEGER(I-N)
45614 INTEGER PYK,PYCHGE,PYCOMP
45615
45616 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
45617 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
45618 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
45619 SAVE /PYDAT1/,/PYDAT2/,/PYPARS/
45620
45621
45622 KFA=IABS(KF)
45623 IF(KFA.EQ.0.OR.KFA.GT.5) THEN
45624 PYMRUN=PYMASS(KF)
45625
45626
45627 ELSEIF(MSTP(37).NE.1.OR.MSTP(2).LE.0) THEN
45628 PYMRUN=PARF(90+KFA)
45629
45630
45631 ELSE
45632 AS=PYALPS(Q2)
45633 PYMRUN=PARF(90+KFA)*
45634 & (LOG(MAX(4D0,PARP(37)**2*PARF(90+KFA)**2/PARU(117)**2))/
45635 & LOG(MAX(4D0,Q2/PARU(117)**2)))**(12D0/(33D0-2D0*MSTU(118)))
45636 ENDIF
45637
45638 RETURN
45639 END
45640
45641
45642
45643
45644
45645
45646 SUBROUTINE PYNAME(KF,CHAU)
45647
45648
45649 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
45650 IMPLICIT INTEGER(I-N)
45651 INTEGER PYK,PYCHGE,PYCOMP
45652
45653 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
45654 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
45655 COMMON/PYDAT4/CHAF(500,2)
45656 CHARACTER CHAF*16
45657 SAVE /PYDAT1/,/PYDAT2/,/PYDAT4/
45658
45659 CHARACTER CHAU*16
45660
45661
45662 CHAU=' '
45663 KC=PYCOMP(KF)
45664 IF(KC.NE.0) CHAU=CHAF(KC,(3-ISIGN(1,KF))/2)
45665
45666
45667 RETURN
45668 END
45669
45670
45671
45672
45673
45674
45675 FUNCTION PYCHGE(KF)
45676
45677
45678 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
45679 IMPLICIT INTEGER(I-N)
45680 INTEGER PYK,PYCHGE,PYCOMP
45681
45682 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
45683 SAVE /PYDAT2/
45684
45685
45686 PYCHGE=0
45687 KC=PYCOMP(KF)
45688 IF(KC.NE.0) PYCHGE=KCHG(KC,1)*ISIGN(1,KF)
45689
45690 RETURN
45691 END
45692
45693
45694
45695
45696
45697
45698
45699 FUNCTION PYCOMP(KF)
45700
45701
45702 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
45703 IMPLICIT INTEGER(I-N)
45704 INTEGER PYK,PYCHGE,PYCOMP
45705
45706 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
45707 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
45708 SAVE /PYDAT1/,/PYDAT2/
45709
45710 DIMENSION KFORD(100:500),KCORD(101:500)
45711 SAVE KFORD,KCORD,NFORD,KFLAST,KCLAST
45712
45713
45714 IF(MSTU(20).EQ.0) THEN
45715 NFORD=100
45716 KFORD(100)=0
45717 DO 120 I=101,500
45718 KFA=KCHG(I,4)
45719 IF(KFA.LE.100) GOTO 120
45720 NFORD=NFORD+1
45721 DO 100 I1=NFORD-1,0,-1
45722 IF(KFA.GE.KFORD(I1)) GOTO 110
45723 KFORD(I1+1)=KFORD(I1)
45724 KCORD(I1+1)=KCORD(I1)
45725 100 CONTINUE
45726 110 KFORD(I1+1)=KFA
45727 KCORD(I1+1)=I
45728 120 CONTINUE
45729 MSTU(20)=1
45730 KFLAST=0
45731 KCLAST=0
45732 ENDIF
45733
45734
45735 IF(KF.EQ.KFLAST) THEN
45736 PYCOMP=KCLAST
45737 RETURN
45738 ENDIF
45739
45740
45741 PYCOMP=0
45742 KFA=IABS(KF)
45743 IF(MOD(KFA/10,10).EQ.0.AND.KFA.LT.100000
45744 & .AND.MOD(KFA/1000,10).GT.0) KFA=MOD(KFA,10000)
45745
45746
45747 IF(KFA.GT.KFORD(NFORD)) THEN
45748 ELSEIF(KFA.LE.100) THEN
45749 PYCOMP=KFA
45750
45751
45752 ELSE
45753 IMIN=100
45754 IMAX=NFORD+1
45755 130 IAVG=(IMIN+IMAX)/2
45756 IF(KFORD(IAVG).GT.KFA) THEN
45757 IMAX=IAVG
45758 IF(IMAX.GT.IMIN+1) GOTO 130
45759 ELSEIF(KFORD(IAVG).LT.KFA) THEN
45760 IMIN=IAVG
45761 IF(IMAX.GT.IMIN+1) GOTO 130
45762 ELSE
45763 PYCOMP=KCORD(IAVG)
45764 ENDIF
45765 ENDIF
45766
45767
45768 IF(PYCOMP.NE.0.AND.KF.LT.0) THEN
45769 IF(KCHG(PYCOMP,3).EQ.0) PYCOMP=0
45770 ENDIF
45771
45772
45773 KFLAST=KF
45774 KCLAST=PYCOMP
45775
45776 RETURN
45777 END
45778
45779
45780
45781
45782
45783
45784 SUBROUTINE PYERRM(MERR,CHMESS)
45785
45786
45787 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
45788 IMPLICIT INTEGER(I-N)
45789 INTEGER PYK,PYCHGE,PYCOMP
45790
45791 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
45792 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
45793 SAVE /PYJETS/,/PYDAT1/
45794
45795 CHARACTER CHMESS*(*)
45796
45797
45798 IF(MERR.LE.10) THEN
45799 MSTU(27)=MSTU(27)+1
45800 MSTU(28)=MERR
45801 IF(MSTU(25).EQ.1.AND.MSTU(27).LE.MSTU(26)) WRITE(MSTU(11),5000)
45802 & MERR,MSTU(31),CHMESS
45803
45804
45805 ELSEIF(MERR.LE.20) THEN
45806 MSTU(23)=MSTU(23)+1
45807 MSTU(24)=MERR-10
45808 IF(MSTU(21).GE.1.AND.MSTU(23).LE.MSTU(22)) WRITE(MSTU(11),5100)
45809 & MERR-10,MSTU(31),CHMESS
45810 IF(MSTU(21).GE.2.AND.MSTU(23).GT.MSTU(22)) THEN
45811 WRITE(MSTU(11),5100) MERR-10,MSTU(31),CHMESS
45812 WRITE(MSTU(11),5200)
45813 IF(MERR.NE.17) CALL PYLIST(2)
45814 STOP
45815 ENDIF
45816
45817
45818 ELSE
45819 WRITE(MSTU(11),5300) MERR-20,MSTU(31),CHMESS
45820 STOP
45821 ENDIF
45822
45823
45824 5000 FORMAT(/5X,'Advisory warning type',I2,' given after',I9,
45825 &' PYEXEC calls:'/5X,A)
45826 5100 FORMAT(/5X,'Error type',I2,' has occured after',I9,
45827 &' PYEXEC calls:'/5X,A)
45828 5200 FORMAT(5X,'Execution will be stopped after listing of last ',
45829 &'event!')
45830 5300 FORMAT(/5X,'Fatal error type',I2,' has occured after',I9,
45831 &' PYEXEC calls:'/5X,A/5X,'Execution will now be stopped!')
45832
45833 RETURN
45834 END
45835
45836
45837
45838
45839
45840
45841 FUNCTION PYALEM(Q2)
45842
45843
45844 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
45845 IMPLICIT INTEGER(I-N)
45846 INTEGER PYK,PYCHGE,PYCOMP
45847
45848 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
45849 SAVE /PYDAT1/
45850
45851
45852
45853
45854
45855 AEMPI=PARU(101)/(3D0*PARU(1))
45856 IF(MSTU(101).LE.0.OR.Q2.LT.2D-6) THEN
45857 RPIGG=0D0
45858 ELSEIF(MSTU(101).EQ.2.AND.Q2.LT.PARU(104)) THEN
45859 RPIGG=0D0
45860 ELSEIF(MSTU(101).EQ.2) THEN
45861 RPIGG=1D0-PARU(101)/PARU(103)
45862 ELSEIF(Q2.LT.0.09D0) THEN
45863 RPIGG=AEMPI*(13.4916D0+LOG(Q2))+0.00835D0*LOG(1D0+Q2)
45864 ELSEIF(Q2.LT.9D0) THEN
45865 RPIGG=AEMPI*(16.3200D0+2D0*LOG(Q2))+
45866 & 0.00238D0*LOG(1D0+3.927D0*Q2)
45867 ELSEIF(Q2.LT.1D4) THEN
45868 RPIGG=AEMPI*(13.4955D0+3D0*LOG(Q2))+0.00165D0+
45869 & 0.00299D0*LOG(1D0+Q2)
45870 ELSE
45871 RPIGG=AEMPI*(13.4955D0+3D0*LOG(Q2))+0.00221D0+
45872 & 0.00293D0*LOG(1D0+Q2)
45873 ENDIF
45874
45875
45876 PYALEM=PARU(101)/(1D0-RPIGG)
45877 PARU(108)=PYALEM
45878
45879 RETURN
45880 END
45881
45882
45883
45884
45885
45886
45887 FUNCTION PYALPS(Q2)
45888
45889
45890 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
45891 IMPLICIT INTEGER(I-N)
45892 INTEGER PYK,PYCHGE,PYCOMP
45893
45894 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
45895 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
45896 SAVE /PYDAT1/,/PYDAT2/
45897
45898
45899 IF(MSTU(111).LE.0) THEN
45900 PYALPS=PARU(111)
45901 MSTU(118)=MSTU(112)
45902 PARU(117)=0.2D0
45903 IF(Q2.GT.0.04D0) PARU(117)=SQRT(Q2)*EXP(-6D0*PARU(1)/
45904 & ((33D0-2D0*MSTU(112))*PARU(111)))
45905 PARU(118)=PARU(111)
45906 RETURN
45907 ENDIF
45908
45909
45910 Q2EFF=Q2
45911 IF(MSTU(115).GE.2) Q2EFF=MAX(Q2,PARU(114))
45912 NF=MSTU(112)
45913 ALAM2=PARU(112)**2
45914 100 IF(NF.GT.MAX(2,MSTU(113))) THEN
45915 Q2THR=PARU(113)*PMAS(NF,1)**2
45916 IF(Q2EFF.LT.Q2THR) THEN
45917 NF=NF-1
45918 ALAM2=ALAM2*(Q2THR/ALAM2)**(2D0/(33D0-2D0*NF))
45919 GOTO 100
45920 ENDIF
45921 ENDIF
45922 110 IF(NF.LT.MIN(8,MSTU(114))) THEN
45923 Q2THR=PARU(113)*PMAS(NF+1,1)**2
45924 IF(Q2EFF.GT.Q2THR) THEN
45925 NF=NF+1
45926 ALAM2=ALAM2*(ALAM2/Q2THR)**(2D0/(33D0-2D0*NF))
45927 GOTO 110
45928 ENDIF
45929 ENDIF
45930 IF(MSTU(115).EQ.1) Q2EFF=Q2EFF+ALAM2
45931 PARU(117)=SQRT(ALAM2)
45932
45933
45934 B0=(33D0-2D0*NF)/6D0
45935 ALGQ=LOG(MAX(1.0001D0,Q2EFF/ALAM2))
45936 IF(MSTU(111).EQ.1) THEN
45937 PYALPS=MIN(PARU(115),PARU(2)/(B0*ALGQ))
45938 ELSE
45939 B1=(153D0-19D0*NF)/6D0
45940 PYALPS=MIN(PARU(115),PARU(2)/(B0*ALGQ)*(1D0-B1*LOG(ALGQ)/
45941 & (B0**2*ALGQ)))
45942 ENDIF
45943 MSTU(118)=NF
45944 PARU(118)=PYALPS
45945
45946 RETURN
45947 END
45948
45949
45950
45951
45952
45953
45954 FUNCTION PYANGL(X,Y)
45955
45956
45957 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
45958 IMPLICIT INTEGER(I-N)
45959 INTEGER PYK,PYCHGE,PYCOMP
45960
45961 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
45962 SAVE /PYDAT1/
45963
45964 PYANGL=0D0
45965 R=SQRT(X**2+Y**2)
45966 IF(R.LT.1D-20) RETURN
45967 IF(ABS(X)/R.LT.0.8D0) THEN
45968 PYANGL=SIGN(ACOS(X/R),Y)
45969 ELSE
45970 PYANGL=ASIN(Y/R)
45971 IF(X.LT.0D0.AND.PYANGL.GE.0D0) THEN
45972 PYANGL=PARU(1)-PYANGL
45973 ELSEIF(X.LT.0D0) THEN
45974 PYANGL=-PARU(1)-PYANGL
45975 ENDIF
45976 ENDIF
45977
45978 RETURN
45979 END
45980
45981
45982
45983
45984
45985
45986
45987 FUNCTION PYR(IDUMMY)
45988
45989
45990 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
45991 IMPLICIT INTEGER(I-N)
45992 INTEGER PYK,PYCHGE,PYCOMP
45993
45994 COMMON/PYDATR/MRPY(6),RRPY(100)
45995 SAVE /PYDATR/
45996
45997 EQUIVALENCE (MRPY1,MRPY(1)),(MRPY2,MRPY(2)),(MRPY3,MRPY(3)),
45998 &(MRPY4,MRPY(4)),(MRPY5,MRPY(5)),(MRPY6,MRPY(6)),
45999 &(RRPY98,RRPY(98)),(RRPY99,RRPY(99)),(RRPY00,RRPY(100))
46000
46001
46002 IF(MRPY2.EQ.0) THEN
46003 IJ=MOD(MRPY1/30082,31329)
46004 KL=MOD(MRPY1,30082)
46005 I=MOD(IJ/177,177)+2
46006 J=MOD(IJ,177)+2
46007 K=MOD(KL/169,178)+1
46008 L=MOD(KL,169)
46009 DO 110 II=1,97
46010 S=0D0
46011 T=0.5D0
46012 DO 100 JJ=1,48
46013 M=MOD(MOD(I*J,179)*K,179)
46014 I=J
46015 J=K
46016 K=M
46017 L=MOD(53*L+1,169)
46018 IF(MOD(L*M,64).GE.32) S=S+T
46019 T=0.5D0*T
46020 100 CONTINUE
46021 RRPY(II)=S
46022 110 CONTINUE
46023 TWOM24=1D0
46024 DO 120 I24=1,24
46025 TWOM24=0.5D0*TWOM24
46026 120 CONTINUE
46027 RRPY98=362436D0*TWOM24
46028 RRPY99=7654321D0*TWOM24
46029 RRPY00=16777213D0*TWOM24
46030 MRPY2=1
46031 MRPY3=0
46032 MRPY4=97
46033 MRPY5=33
46034 ENDIF
46035
46036
46037 130 RUNI=RRPY(MRPY4)-RRPY(MRPY5)
46038 IF(RUNI.LT.0D0) RUNI=RUNI+1D0
46039 RRPY(MRPY4)=RUNI
46040 MRPY4=MRPY4-1
46041 IF(MRPY4.EQ.0) MRPY4=97
46042 MRPY5=MRPY5-1
46043 IF(MRPY5.EQ.0) MRPY5=97
46044 RRPY98=RRPY98-RRPY99
46045 IF(RRPY98.LT.0D0) RRPY98=RRPY98+RRPY00
46046 RUNI=RUNI-RRPY98
46047 IF(RUNI.LT.0D0) RUNI=RUNI+1D0
46048 IF(RUNI.LE.0D0.OR.RUNI.GE.1D0) GOTO 130
46049
46050
46051 MRPY3=MRPY3+1
46052 IF(MRPY3.EQ.1000000000) THEN
46053 MRPY2=MRPY2+1
46054 MRPY3=0
46055 ENDIF
46056 PYR=RUNI
46057
46058 RETURN
46059 END
46060
46061
46062
46063
46064
46065
46066
46067 SUBROUTINE PYRGET(LFN,MOVE)
46068
46069
46070 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
46071 IMPLICIT INTEGER(I-N)
46072 INTEGER PYK,PYCHGE,PYCOMP
46073
46074 COMMON/PYDATR/MRPY(6),RRPY(100)
46075 SAVE /PYDATR/
46076
46077 CHARACTER CHERR*8
46078
46079
46080 IF(MOVE.LT.0) THEN
46081 NBCK=MIN(MRPY(6),-MOVE)
46082 DO 100 IBCK=1,NBCK
46083 BACKSPACE(LFN,ERR=110,IOSTAT=IERR)
46084 100 CONTINUE
46085 MRPY(6)=MRPY(6)-NBCK
46086 ENDIF
46087
46088
46089 WRITE(LFN,ERR=110,IOSTAT=IERR) (MRPY(I1),I1=1,5),
46090 &(RRPY(I2),I2=1,100)
46091 MRPY(6)=MRPY(6)+1
46092 RETURN
46093
46094
46095 110 WRITE(CHERR,'(I8)') IERR
46096 CALL PYERRM(18,'(PYRGET:) error when accessing file, IOSTAT ='//
46097 &CHERR)
46098
46099 RETURN
46100 END
46101
46102
46103
46104
46105
46106
46107
46108 SUBROUTINE PYRSET(LFN,MOVE)
46109
46110
46111 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
46112 IMPLICIT INTEGER(I-N)
46113 INTEGER PYK,PYCHGE,PYCOMP
46114
46115 COMMON/PYDATR/MRPY(6),RRPY(100)
46116 SAVE /PYDATR/
46117
46118 CHARACTER CHERR*8
46119
46120
46121 IF(MOVE.LT.0) THEN
46122 NBCK=MIN(MRPY(6),-MOVE)
46123 DO 100 IBCK=1,NBCK
46124 BACKSPACE(LFN,ERR=120,IOSTAT=IERR)
46125 100 CONTINUE
46126 MRPY(6)=MRPY(6)-NBCK
46127 ENDIF
46128
46129
46130 NFOR=1+MAX(0,MOVE)
46131 DO 110 IFOR=1,NFOR
46132 READ(LFN,ERR=120,IOSTAT=IERR) (MRPY(I1),I1=1,5),
46133 & (RRPY(I2),I2=1,100)
46134 110 CONTINUE
46135 MRPY(6)=MRPY(6)+NFOR
46136 RETURN
46137
46138
46139 120 WRITE(CHERR,'(I8)') IERR
46140 CALL PYERRM(18,'(PYRSET:) error when accessing file, IOSTAT ='//
46141 &CHERR)
46142
46143 RETURN
46144 END
46145
46146
46147
46148
46149
46150
46151 SUBROUTINE PYROBO(IMI,IMA,THE,PHI,BEX,BEY,BEZ)
46152
46153
46154 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
46155 IMPLICIT INTEGER(I-N)
46156 INTEGER PYK,PYCHGE,PYCOMP
46157
46158 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
46159 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
46160 SAVE /PYJETS/,/PYDAT1/
46161
46162 DIMENSION ROT(3,3),PR(3),VR(3),DP(4),DV(4)
46163
46164
46165 IMIN=IMI
46166 IF(IMIN.LE.0) IMIN=1
46167 IF(MSTU(1).GT.0) IMIN=MSTU(1)
46168 IMAX=IMA
46169 IF(IMAX.LE.0) IMAX=N
46170 IF(MSTU(2).GT.0) IMAX=MSTU(2)
46171 IF(IMIN.GT.MSTU(4).OR.IMAX.GT.MSTU(4)) THEN
46172 CALL PYERRM(11,'(PYROBO:) range outside PYJETS memory')
46173 RETURN
46174 ENDIF
46175
46176
46177 IF(MSTU(33).NE.0) THEN
46178 DO 110 I=MIN(IMIN,MSTU(4)),MIN(IMAX,MSTU(4))
46179 DO 100 J=1,5
46180 V(I,J)=0D0
46181 100 CONTINUE
46182 110 CONTINUE
46183 MSTU(33)=0
46184 ENDIF
46185
46186
46187 IF(THE**2+PHI**2.GT.1D-20) THEN
46188 ROT(1,1)=COS(THE)*COS(PHI)
46189 ROT(1,2)=-SIN(PHI)
46190 ROT(1,3)=SIN(THE)*COS(PHI)
46191 ROT(2,1)=COS(THE)*SIN(PHI)
46192 ROT(2,2)=COS(PHI)
46193 ROT(2,3)=SIN(THE)*SIN(PHI)
46194 ROT(3,1)=-SIN(THE)
46195 ROT(3,2)=0D0
46196 ROT(3,3)=COS(THE)
46197 DO 140 I=IMIN,IMAX
46198 IF(K(I,1).LE.0) GOTO 140
46199 DO 120 J=1,3
46200 PR(J)=P(I,J)
46201 VR(J)=V(I,J)
46202 120 CONTINUE
46203 DO 130 J=1,3
46204 P(I,J)=ROT(J,1)*PR(1)+ROT(J,2)*PR(2)+ROT(J,3)*PR(3)
46205 V(I,J)=ROT(J,1)*VR(1)+ROT(J,2)*VR(2)+ROT(J,3)*VR(3)
46206 130 CONTINUE
46207 140 CONTINUE
46208 ENDIF
46209
46210
46211 IF(BEX**2+BEY**2+BEZ**2.GT.1D-20) THEN
46212 DBX=BEX
46213 DBY=BEY
46214 DBZ=BEZ
46215 DB=SQRT(DBX**2+DBY**2+DBZ**2)
46216 EPS1=1D0-1D-12
46217 IF(DB.GT.EPS1) THEN
46218
46219 CALL PYERRM(3,'(PYROBO:) boost vector too large')
46220 DBX=DBX*(EPS1/DB)
46221 DBY=DBY*(EPS1/DB)
46222 DBZ=DBZ*(EPS1/DB)
46223 DB=EPS1
46224 ENDIF
46225 DGA=1D0/SQRT(1D0-DB**2)
46226 DO 160 I=IMIN,IMAX
46227 IF(K(I,1).LE.0) GOTO 160
46228 DO 150 J=1,4
46229 DP(J)=P(I,J)
46230 DV(J)=V(I,J)
46231 150 CONTINUE
46232 DBP=DBX*DP(1)+DBY*DP(2)+DBZ*DP(3)
46233 DGABP=DGA*(DGA*DBP/(1D0+DGA)+DP(4))
46234 P(I,1)=DP(1)+DGABP*DBX
46235 P(I,2)=DP(2)+DGABP*DBY
46236 P(I,3)=DP(3)+DGABP*DBZ
46237 P(I,4)=DGA*(DP(4)+DBP)
46238 DBV=DBX*DV(1)+DBY*DV(2)+DBZ*DV(3)
46239 DGABV=DGA*(DGA*DBV/(1D0+DGA)+DV(4))
46240 V(I,1)=DV(1)+DGABV*DBX
46241 V(I,2)=DV(2)+DGABV*DBY
46242 V(I,3)=DV(3)+DGABV*DBZ
46243 V(I,4)=DGA*(DV(4)+DBV)
46244 160 CONTINUE
46245 ENDIF
46246
46247 RETURN
46248 END
46249
46250
46251
46252
46253
46254
46255
46256 SUBROUTINE PYEDIT(MEDIT)
46257
46258
46259 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
46260 IMPLICIT INTEGER(I-N)
46261 INTEGER PYK,PYCHGE,PYCOMP
46262
46263 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
46264 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
46265 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
46266 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
46267
46268 DIMENSION NS(2),PTS(2),PLS(2)
46269
46270
46271 IF((MEDIT.GE.0.AND.MEDIT.LE.3).OR.MEDIT.EQ.5) THEN
46272 IMAX=N
46273 IF(MSTU(2).GT.0) IMAX=MSTU(2)
46274 I1=MAX(1,MSTU(1))-1
46275 DO 110 I=MAX(1,MSTU(1)),IMAX
46276 IF(K(I,1).EQ.0.OR.K(I,1).GT.20) GOTO 110
46277 IF(MEDIT.EQ.1) THEN
46278 IF(K(I,1).GT.10) GOTO 110
46279 ELSEIF(MEDIT.EQ.2) THEN
46280 IF(K(I,1).GT.10) GOTO 110
46281 KC=PYCOMP(K(I,2))
46282 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.KC.EQ.18)
46283 & GOTO 110
46284 ELSEIF(MEDIT.EQ.3) THEN
46285 IF(K(I,1).GT.10) GOTO 110
46286 KC=PYCOMP(K(I,2))
46287 IF(KC.EQ.0) GOTO 110
46288 IF(KCHG(KC,2).EQ.0.AND.PYCHGE(K(I,2)).EQ.0) GOTO 110
46289 ELSEIF(MEDIT.EQ.5) THEN
46290 IF(K(I,1).EQ.13.OR.K(I,1).EQ.14) GOTO 110
46291 KC=PYCOMP(K(I,2))
46292 IF(KC.EQ.0) GOTO 110
46293 IF(K(I,1).GE.11.AND.KCHG(KC,2).EQ.0) GOTO 110
46294 ENDIF
46295
46296
46297 I1=I1+1
46298 DO 100 J=1,5
46299 K(I1,J)=K(I,J)
46300 P(I1,J)=P(I,J)
46301 V(I1,J)=V(I,J)
46302 100 CONTINUE
46303 K(I1,3)=0
46304 110 CONTINUE
46305 IF(I1.LT.N) MSTU(3)=0
46306 IF(I1.LT.N) MSTU(70)=0
46307 N=I1
46308
46309
46310 ELSEIF(MEDIT.GE.11.AND.MEDIT.LE.15) THEN
46311 I1=0
46312 DO 120 I=1,N
46313 K(I,3)=MOD(K(I,3),MSTU(5))
46314 IF(MEDIT.EQ.11.AND.K(I,1).LT.0) GOTO 120
46315 IF(MEDIT.EQ.12.AND.K(I,1).EQ.0) GOTO 120
46316 IF(MEDIT.EQ.13.AND.(K(I,1).EQ.11.OR.K(I,1).EQ.12.OR.
46317 & K(I,1).EQ.15).AND.K(I,2).NE.94) GOTO 120
46318 IF(MEDIT.EQ.14.AND.(K(I,1).EQ.13.OR.K(I,1).EQ.14.OR.
46319 & K(I,2).EQ.94)) GOTO 120
46320 IF(MEDIT.EQ.15.AND.K(I,1).GE.21) GOTO 120
46321 I1=I1+1
46322 K(I,3)=K(I,3)+MSTU(5)*I1
46323 120 CONTINUE
46324
46325
46326 DO 140 I=1,N
46327 IF(K(I,1).LE.0.OR.K(I,1).GT.20.OR.K(I,3)/MSTU(5).EQ.0)
46328 & GOTO 140
46329 ID=I
46330 130 IM=MOD(K(ID,3),MSTU(5))
46331 IF(MEDIT.EQ.13.AND.IM.GT.0.AND.IM.LE.N) THEN
46332 IF((K(IM,1).EQ.11.OR.K(IM,1).EQ.12.OR.K(IM,1).EQ.15).AND.
46333 & K(IM,2).NE.94) THEN
46334 ID=IM
46335 GOTO 130
46336 ENDIF
46337 ELSEIF(MEDIT.EQ.14.AND.IM.GT.0.AND.IM.LE.N) THEN
46338 IF(K(IM,1).EQ.13.OR.K(IM,1).EQ.14.OR.K(IM,2).EQ.94) THEN
46339 ID=IM
46340 GOTO 130
46341 ENDIF
46342 ENDIF
46343 K(I,3)=MSTU(5)*(K(I,3)/MSTU(5))
46344 IF(IM.NE.0) K(I,3)=K(I,3)+K(IM,3)/MSTU(5)
46345 IF(K(I,1).NE.3.AND.K(I,1).NE.13.AND.K(I,1).NE.14) THEN
46346 IF(K(I,4).GT.0.AND.K(I,4).LE.MSTU(4)) K(I,4)=
46347 & K(K(I,4),3)/MSTU(5)
46348 IF(K(I,5).GT.0.AND.K(I,5).LE.MSTU(4)) K(I,5)=
46349 & K(K(I,5),3)/MSTU(5)
46350 ELSE
46351 KCM=MOD(K(I,4)/MSTU(5),MSTU(5))
46352 IF(KCM.GT.0.AND.KCM.LE.MSTU(4)) KCM=K(KCM,3)/MSTU(5)
46353 KCD=MOD(K(I,4),MSTU(5))
46354 IF(KCD.GT.0.AND.KCD.LE.MSTU(4)) KCD=K(KCD,3)/MSTU(5)
46355 K(I,4)=MSTU(5)**2*(K(I,4)/MSTU(5)**2)+MSTU(5)*KCM+KCD
46356 KCM=MOD(K(I,5)/MSTU(5),MSTU(5))
46357 IF(KCM.GT.0.AND.KCM.LE.MSTU(4)) KCM=K(KCM,3)/MSTU(5)
46358 KCD=MOD(K(I,5),MSTU(5))
46359 IF(KCD.GT.0.AND.KCD.LE.MSTU(4)) KCD=K(KCD,3)/MSTU(5)
46360 K(I,5)=MSTU(5)**2*(K(I,5)/MSTU(5)**2)+MSTU(5)*KCM+KCD
46361 ENDIF
46362 140 CONTINUE
46363
46364
46365 I1=0
46366 MSTU90=MSTU(90)
46367 MSTU(90)=0
46368 DO 170 I=1,N
46369 IF(K(I,3)/MSTU(5).EQ.0) GOTO 170
46370 I1=I1+1
46371 DO 150 J=1,5
46372 K(I1,J)=K(I,J)
46373 P(I1,J)=P(I,J)
46374 V(I1,J)=V(I,J)
46375 150 CONTINUE
46376 K(I1,3)=MOD(K(I1,3),MSTU(5))
46377 DO 160 IZ=1,MSTU90
46378 IF(I.EQ.MSTU(90+IZ)) THEN
46379 MSTU(90)=MSTU(90)+1
46380 MSTU(90+MSTU(90))=I1
46381 PARU(90+MSTU(90))=PARU(90+IZ)
46382 ENDIF
46383 160 CONTINUE
46384 170 CONTINUE
46385 IF(I1.LT.N) MSTU(3)=0
46386 IF(I1.LT.N) MSTU(70)=0
46387 N=I1
46388
46389
46390 ELSEIF(MEDIT.EQ.16) THEN
46391 DO 220 I=1,N
46392 IF(K(I,1).LE.10.OR.K(I,1).GT.20) GOTO 220
46393 IF(K(I,4).NE.0.OR.K(I,5).NE.0) GOTO 220
46394
46395 DO 180 I1=I+1,N
46396 IF(K(I1,3).NE.I) THEN
46397 ELSEIF(K(I,4).EQ.0) THEN
46398 K(I,4)=I1
46399 ELSE
46400 K(I,5)=I1
46401 ENDIF
46402 180 CONTINUE
46403 IF(K(I,5).EQ.0) K(I,5)=K(I,4)
46404 IF(K(I,4).NE.0) GOTO 220
46405
46406 IM=K(I,3)
46407 IF(IM.LE.0.OR.IM.GE.I) GOTO 220
46408 IF(K(IM,1).LE.20.OR.K(IM,1).GT.30) GOTO 220
46409 IF(K(IM,2).NE.K(I,2).OR.ABS(P(IM,5)-P(I,5)).GT.1D-2) GOTO 220
46410 DO 190 I1=I+1,N
46411 IF(K(I1,3).NE.IM) THEN
46412 ELSEIF(K(I,4).EQ.0) THEN
46413 K(I,4)=I1
46414 ELSE
46415 K(I,5)=I1
46416 ENDIF
46417 190 CONTINUE
46418 IF(K(I,5).EQ.0) K(I,5)=K(I,4)
46419 IF(K(I,4).NE.0) GOTO 220
46420
46421
46422 ID1=IM
46423 ID2=IM
46424 DO 200 I1=IM+1,I-1
46425 IF(K(I1,3).EQ.IM.AND.K(I1,1).GT.20.AND.K(I1,1).LE.30) THEN
46426 ID2=I1
46427 IF(ID1.EQ.IM) ID1=I1
46428 ENDIF
46429 200 CONTINUE
46430 DO 210 I1=I+1,N
46431 IF(K(I1,3).NE.ID1.AND.K(I1,3).NE.ID2) THEN
46432 ELSEIF(K(I,4).EQ.0) THEN
46433 K(I,4)=I1
46434 ELSE
46435 K(I,5)=I1
46436 ENDIF
46437 210 CONTINUE
46438 IF(K(I,5).EQ.0) K(I,5)=K(I,4)
46439 220 CONTINUE
46440
46441
46442 ELSEIF(MEDIT.EQ.21) THEN
46443 IF(2*N.GE.MSTU(4)) THEN
46444 CALL PYERRM(11,'(PYEDIT:) no more memory left in PYJETS')
46445 RETURN
46446 ENDIF
46447 DO 240 I=1,N
46448 DO 230 J=1,5
46449 K(MSTU(4)-I,J)=K(I,J)
46450 P(MSTU(4)-I,J)=P(I,J)
46451 V(MSTU(4)-I,J)=V(I,J)
46452 230 CONTINUE
46453 240 CONTINUE
46454 MSTU(32)=N
46455
46456
46457 ELSEIF(MEDIT.EQ.22) THEN
46458 DO 260 I=1,MSTU(32)
46459 DO 250 J=1,5
46460 K(I,J)=K(MSTU(4)-I,J)
46461 P(I,J)=P(MSTU(4)-I,J)
46462 V(I,J)=V(MSTU(4)-I,J)
46463 250 CONTINUE
46464 260 CONTINUE
46465 N=MSTU(32)
46466
46467
46468 ELSEIF(MEDIT.EQ.23) THEN
46469 I1=0
46470 DO 270 I=1,N
46471 KH=K(I,3)
46472 IF(KH.GE.1) THEN
46473 IF(K(KH,1).GT.20) KH=0
46474 ENDIF
46475 IF(KH.NE.0) GOTO 280
46476 I1=I1+1
46477 IF(K(I,1).GT.10.AND.K(I,1).LE.20) K(I,1)=K(I,1)-10
46478 270 CONTINUE
46479 280 N=I1
46480
46481
46482 ELSEIF(MEDIT.EQ.31.OR.MEDIT.EQ.32) THEN
46483 CALL PYROBO(1,N+MSTU(3),0D0,-PYANGL(P(MSTU(61),1),
46484 & P(MSTU(61),2)),0D0,0D0,0D0)
46485 CALL PYROBO(1,N+MSTU(3),-PYANGL(P(MSTU(61),3),
46486 & P(MSTU(61),1)),0D0,0D0,0D0,0D0)
46487 CALL PYROBO(1,N+MSTU(3),0D0,-PYANGL(P(MSTU(61)+1,1),
46488 & P(MSTU(61)+1,2)),0D0,0D0,0D0)
46489 IF(MEDIT.EQ.31) RETURN
46490
46491
46492 DO 290 IS=1,2
46493 NS(IS)=0
46494 PTS(IS)=0D0
46495 PLS(IS)=0D0
46496 290 CONTINUE
46497 DO 300 I=1,N
46498 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 300
46499 IF(MSTU(41).GE.2) THEN
46500 KC=PYCOMP(K(I,2))
46501 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
46502 & KC.EQ.18) GOTO 300
46503 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.PYCHGE(K(I,2))
46504 & .EQ.0) GOTO 300
46505 ENDIF
46506 IS=2D0-SIGN(0.5D0,P(I,3))
46507 NS(IS)=NS(IS)+1
46508 PTS(IS)=PTS(IS)+SQRT(P(I,1)**2+P(I,2)**2)
46509 300 CONTINUE
46510 IF(NS(1)*PTS(2)**2.LT.NS(2)*PTS(1)**2)
46511 & CALL PYROBO(1,N+MSTU(3),PARU(1),0D0,0D0,0D0,0D0)
46512
46513
46514 DO 310 I=1,N
46515 IF(P(I,3).GE.0D0) GOTO 310
46516 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 310
46517 IF(MSTU(41).GE.2) THEN
46518 KC=PYCOMP(K(I,2))
46519 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
46520 & KC.EQ.18) GOTO 310
46521 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.PYCHGE(K(I,2))
46522 & .EQ.0) GOTO 310
46523 ENDIF
46524 IS=2D0-SIGN(0.5D0,P(I,1))
46525 PLS(IS)=PLS(IS)-P(I,3)
46526 310 CONTINUE
46527 IF(PLS(2).GT.PLS(1)) CALL PYROBO(1,N+MSTU(3),0D0,PARU(1),
46528 & 0D0,0D0,0D0)
46529 ENDIF
46530
46531 RETURN
46532 END
46533
46534
46535
46536
46537
46538
46539
46540 SUBROUTINE PYLIST(MLIST)
46541
46542
46543 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
46544 IMPLICIT INTEGER(I-N)
46545 INTEGER PYK,PYCHGE,PYCOMP
46546
46547 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
46548
46549 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
46550 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
46551 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
46552 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
46553 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/
46554
46555 CHARACTER CHAP*16,CHAC*16,CHAN*16,CHAD(5)*16,CHDL(7)*4
46556 DIMENSION PS(6)
46557 DATA CHDL/'(())',' ','()','!!','<>','==','(==)'/
46558
46559
46560 IF(MLIST.EQ.0.OR.MSTU(12).EQ.1) THEN
46561 CALL PYLOGO
46562 MSTU(12)=0
46563 IF(MLIST.EQ.0) RETURN
46564 ENDIF
46565
46566
46567 IF(MLIST.GE.1.AND.MLIST.LE.3) THEN
46568 IF(MLIST.EQ.1) WRITE(MSTU(11),5100)
46569 IF(MLIST.EQ.2) WRITE(MSTU(11),5200)
46570 IF(MLIST.EQ.3) WRITE(MSTU(11),5300)
46571 LMX=12
46572 IF(MLIST.GE.2) LMX=16
46573 ISTR=0
46574 IMAX=N
46575 IF(MSTU(2).GT.0) IMAX=MSTU(2)
46576 DO 120 I=MAX(1,MSTU(1)),MAX(IMAX,N+MAX(0,MSTU(3)))
46577 IF((I.GT.IMAX.AND.I.LE.N).OR.K(I,1).LT.0) GOTO 120
46578
46579
46580 CALL PYNAME(K(I,2),CHAP)
46581 LEN=0
46582 DO 100 LEM=1,16
46583 IF(CHAP(LEM:LEM).NE.' ') LEN=LEM
46584 100 CONTINUE
46585 MDL=(K(I,1)+19)/10
46586 LDL=0
46587 IF(MDL.EQ.2.OR.MDL.GE.8) THEN
46588 CHAC=CHAP
46589 IF(LEN.GT.LMX) CHAC(LMX:LMX)='?'
46590 ELSE
46591 LDL=1
46592 IF(MDL.EQ.1.OR.MDL.EQ.7) LDL=2
46593 IF(LEN.EQ.0) THEN
46594 CHAC=CHDL(MDL)(1:2*LDL)//' '
46595 ELSE
46596 CHAC=CHDL(MDL)(1:LDL)//CHAP(1:MIN(LEN,LMX-2*LDL))//
46597 & CHDL(MDL)(LDL+1:2*LDL)//' '
46598 IF(LEN+2*LDL.GT.LMX) CHAC(LMX:LMX)='?'
46599 ENDIF
46600 ENDIF
46601
46602
46603 IF(K(I,1).EQ.1.OR.K(I,1).EQ.2.OR.K(I,1).EQ.11.OR.K(I,1).EQ.12)
46604 & THEN
46605 KC=PYCOMP(K(I,2))
46606 KCC=0
46607 IF(KC.NE.0) KCC=KCHG(KC,2)
46608 IF(IABS(K(I,2)).EQ.39) THEN
46609 IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='X'
46610 ELSEIF(KCC.NE.0.AND.ISTR.EQ.0) THEN
46611 ISTR=1
46612 IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='A'
46613 ELSEIF(KCC.NE.0.AND.(K(I,1).EQ.2.OR.K(I,1).EQ.12)) THEN
46614 IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='I'
46615 ELSEIF(KCC.NE.0) THEN
46616 ISTR=0
46617 IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='V'
46618 ENDIF
46619 ENDIF
46620
46621
46622 IF(MLIST.EQ.1.AND.ABS(P(I,4)).LT.9999D0) THEN
46623 WRITE(MSTU(11),5400) I,CHAC(1:12),(K(I,J1),J1=1,3),
46624 & (P(I,J2),J2=1,5)
46625 ELSEIF(MLIST.EQ.1.AND.ABS(P(I,4)).LT.99999D0) THEN
46626 WRITE(MSTU(11),5500) I,CHAC(1:12),(K(I,J1),J1=1,3),
46627 & (P(I,J2),J2=1,5)
46628 ELSEIF(MLIST.EQ.1) THEN
46629 WRITE(MSTU(11),5600) I,CHAC(1:12),(K(I,J1),J1=1,3),
46630 & (P(I,J2),J2=1,5)
46631 ELSEIF(MSTU(5).EQ.10000.AND.(K(I,1).EQ.3.OR.K(I,1).EQ.13.OR.
46632 & K(I,1).EQ.14)) THEN
46633 WRITE(MSTU(11),5700) I,CHAC,(K(I,J1),J1=1,3),
46634 & K(I,4)/100000000,MOD(K(I,4)/10000,10000),MOD(K(I,4),10000),
46635 & K(I,5)/100000000,MOD(K(I,5)/10000,10000),MOD(K(I,5),10000),
46636 & (P(I,J2),J2=1,5)
46637 ELSE
46638 WRITE(MSTU(11),5800) I,CHAC,(K(I,J1),J1=1,5),
46639 & (P(I,J2),J2=1,5)
46640 ENDIF
46641 IF(MLIST.EQ.3) WRITE(MSTU(11),5900) (V(I,J),J=1,5)
46642
46643
46644 IF(MSTU(70).GE.1) THEN
46645 ISEP=0
46646 DO 110 J=1,MIN(10,MSTU(70))
46647 IF(I.EQ.MSTU(70+J)) ISEP=1
46648 110 CONTINUE
46649 IF(ISEP.EQ.1.AND.MLIST.EQ.1) WRITE(MSTU(11),6000)
46650 IF(ISEP.EQ.1.AND.MLIST.GE.2) WRITE(MSTU(11),6100)
46651 ENDIF
46652 120 CONTINUE
46653
46654
46655 DO 130 J=1,6
46656 PS(J)=PYP(0,J)
46657 130 CONTINUE
46658 IF(MLIST.EQ.1.AND.ABS(PS(4)).LT.9999D0) THEN
46659 WRITE(MSTU(11),6200) PS(6),(PS(J),J=1,5)
46660 ELSEIF(MLIST.EQ.1.AND.ABS(PS(4)).LT.99999D0) THEN
46661 WRITE(MSTU(11),6300) PS(6),(PS(J),J=1,5)
46662 ELSEIF(MLIST.EQ.1) THEN
46663 WRITE(MSTU(11),6400) PS(6),(PS(J),J=1,5)
46664 ELSE
46665 WRITE(MSTU(11),6500) PS(6),(PS(J),J=1,5)
46666 ENDIF
46667
46668
46669 ELSEIF(MLIST.EQ.11) THEN
46670 WRITE(MSTU(11),6600)
46671 DO 140 KF=1,80
46672 CALL PYNAME(KF,CHAP)
46673 CALL PYNAME(-KF,CHAN)
46674 IF(CHAP.NE.' '.AND.CHAN.EQ.' ') WRITE(MSTU(11),6700) KF,CHAP
46675 IF(CHAN.NE.' ') WRITE(MSTU(11),6700) KF,CHAP,-KF,CHAN
46676 140 CONTINUE
46677 DO 170 KFLS=1,3,2
46678 DO 160 KFLA=1,5
46679 DO 150 KFLB=1,KFLA-(3-KFLS)/2
46680 KF=1000*KFLA+100*KFLB+KFLS
46681 CALL PYNAME(KF,CHAP)
46682 CALL PYNAME(-KF,CHAN)
46683 WRITE(MSTU(11),6700) KF,CHAP,-KF,CHAN
46684 150 CONTINUE
46685 160 CONTINUE
46686 170 CONTINUE
46687 KF=130
46688 CALL PYNAME(KF,CHAP)
46689 WRITE(MSTU(11),6700) KF,CHAP
46690 KF=310
46691 CALL PYNAME(KF,CHAP)
46692 WRITE(MSTU(11),6700) KF,CHAP
46693 DO 200 KMUL=0,5
46694 KFLS=3
46695 IF(KMUL.EQ.0.OR.KMUL.EQ.3) KFLS=1
46696 IF(KMUL.EQ.5) KFLS=5
46697 KFLR=0
46698 IF(KMUL.EQ.2.OR.KMUL.EQ.3) KFLR=1
46699 IF(KMUL.EQ.4) KFLR=2
46700 DO 190 KFLB=1,5
46701 DO 180 KFLC=1,KFLB-1
46702 KF=10000*KFLR+100*KFLB+10*KFLC+KFLS
46703 CALL PYNAME(KF,CHAP)
46704 CALL PYNAME(-KF,CHAN)
46705 WRITE(MSTU(11),6700) KF,CHAP,-KF,CHAN
46706 180 CONTINUE
46707 KF=10000*KFLR+110*KFLB+KFLS
46708 CALL PYNAME(KF,CHAP)
46709 WRITE(MSTU(11),6700) KF,CHAP
46710 190 CONTINUE
46711 200 CONTINUE
46712 KF=100443
46713 CALL PYNAME(KF,CHAP)
46714 WRITE(MSTU(11),6700) KF,CHAP
46715 KF=100553
46716 CALL PYNAME(KF,CHAP)
46717 WRITE(MSTU(11),6700) KF,CHAP
46718 DO 240 KFLSP=1,3
46719 KFLS=2+2*(KFLSP/3)
46720 DO 230 KFLA=1,5
46721 DO 220 KFLB=1,KFLA
46722 DO 210 KFLC=1,KFLB
46723 IF(KFLSP.EQ.1.AND.(KFLA.EQ.KFLB.OR.KFLB.EQ.KFLC))
46724 & GOTO 210
46725 IF(KFLSP.EQ.2.AND.KFLA.EQ.KFLC) GOTO 210
46726 IF(KFLSP.EQ.1) KF=1000*KFLA+100*KFLC+10*KFLB+KFLS
46727 IF(KFLSP.GE.2) KF=1000*KFLA+100*KFLB+10*KFLC+KFLS
46728 CALL PYNAME(KF,CHAP)
46729 CALL PYNAME(-KF,CHAN)
46730 WRITE(MSTU(11),6700) KF,CHAP,-KF,CHAN
46731 210 CONTINUE
46732 220 CONTINUE
46733 230 CONTINUE
46734 240 CONTINUE
46735 DO 250 KF=KSUSY1+1,KSUSY1+40
46736 CALL PYNAME(KF,CHAP)
46737 CALL PYNAME(-KF,CHAN)
46738 IF(CHAP.NE.' '.AND.CHAN.EQ.' ') WRITE(MSTU(11),6700) KF,CHAP
46739 IF(CHAN.NE.' ') WRITE(MSTU(11),6700) KF,CHAP,-KF,CHAN
46740 250 CONTINUE
46741 DO 260 KF=KSUSY2+1,KSUSY2+40
46742 CALL PYNAME(KF,CHAP)
46743 CALL PYNAME(-KF,CHAN)
46744 IF(CHAP.NE.' '.AND.CHAN.EQ.' ') WRITE(MSTU(11),6700) KF,CHAP
46745 IF(CHAN.NE.' ') WRITE(MSTU(11),6700) KF,CHAP,-KF,CHAN
46746 260 CONTINUE
46747 DO 270 KF=KEXCIT+1,KEXCIT+40
46748 CALL PYNAME(KF,CHAP)
46749 CALL PYNAME(-KF,CHAN)
46750 IF(CHAP.NE.' '.AND.CHAN.EQ.' ') WRITE(MSTU(11),6700) KF,CHAP
46751 IF(CHAN.NE.' ') WRITE(MSTU(11),6700) KF,CHAP,-KF,CHAN
46752 270 CONTINUE
46753
46754
46755 ELSEIF(MLIST.EQ.12) THEN
46756 WRITE(MSTU(11),6800)
46757 DO 300 KC=1,MSTU(6)
46758 KF=KCHG(KC,4)
46759 IF(KF.EQ.0) GOTO 300
46760 IF(KF.LT.MSTU(1).OR.(MSTU(2).GT.0.AND.KF.GT.MSTU(2)))
46761 & GOTO 300
46762
46763
46764 CALL PYNAME(KF,CHAP)
46765 IF(KF.LE.100.AND.CHAP.EQ.' '.AND.MDCY(KC,2).EQ.0) GOTO 300
46766 CALL PYNAME(-KF,CHAN)
46767 WRITE(MSTU(11),6900) KF,KC,CHAP,CHAN,(KCHG(KC,J1),J1=1,3),
46768 & (PMAS(KC,J2),J2=1,4),MDCY(KC,1)
46769
46770
46771
46772 DO 290 IDC=MDCY(KC,2),MDCY(KC,2)+MDCY(KC,3)-1
46773 DO 280 J=1,5
46774 CALL PYNAME(KFDP(IDC,J),CHAD(J))
46775 280 CONTINUE
46776 WRITE(MSTU(11),7000) IDC,MDME(IDC,1),MDME(IDC,2),BRAT(IDC),
46777 & (CHAD(J),J=1,5)
46778 290 CONTINUE
46779 300 CONTINUE
46780
46781
46782 ELSEIF(MLIST.EQ.13) THEN
46783 WRITE(MSTU(11),7100)
46784 DO 310 I=1,200
46785 WRITE(MSTU(11),7200) I,MSTU(I),PARU(I),MSTJ(I),PARJ(I),PARF(I)
46786 310 CONTINUE
46787 ENDIF
46788
46789
46790 5100 FORMAT(///28X,'Event listing (summary)'//4X,'I particle/jet KS',
46791 &5X,'KF orig p_x p_y p_z E m'/)
46792 5200 FORMAT(///28X,'Event listing (standard)'//4X,'I particle/jet',
46793 &' K(I,1) K(I,2) K(I,3) K(I,4) K(I,5) P(I,1)',
46794 &' P(I,2) P(I,3) P(I,4) P(I,5)'/)
46795 5300 FORMAT(///28X,'Event listing (with vertices)'//4X,'I particle/j',
46796 &'et K(I,1) K(I,2) K(I,3) K(I,4) K(I,5) P(I,1)',
46797 &' P(I,2) P(I,3) P(I,4) P(I,5)'/73X,
46798 &'V(I,1) V(I,2) V(I,3) V(I,4) V(I,5)'/)
46799 5400 FORMAT(1X,I4,1X,A12,1X,I2,I8,1X,I4,5F9.3)
46800 5500 FORMAT(1X,I4,1X,A12,1X,I2,I8,1X,I4,5F9.2)
46801 5600 FORMAT(1X,I4,1X,A12,1X,I2,I8,1X,I4,5F9.1)
46802 5700 FORMAT(1X,I4,2X,A16,1X,I3,1X,I9,1X,I4,2(3X,I1,2I4),5F13.5)
46803 5800 FORMAT(1X,I4,2X,A16,1X,I3,1X,I9,1X,I4,2(3X,I9),5F13.5)
46804 5900 FORMAT(66X,5(1X,F12.3))
46805 6000 FORMAT(1X,78('='))
46806 6100 FORMAT(1X,130('='))
46807 6200 FORMAT(19X,'sum:',F6.2,5X,5F9.3)
46808 6300 FORMAT(19X,'sum:',F6.2,5X,5F9.2)
46809 6400 FORMAT(19X,'sum:',F6.2,5X,5F9.1)
46810 6500 FORMAT(19X,'sum charge:',F6.2,3X,'sum momentum and inv. mass:',
46811 &5F13.5)
46812 6600 FORMAT(///20X,'List of KF codes in program'/)
46813 6700 FORMAT(4X,I9,4X,A16,6X,I9,4X,A16)
46814 6800 FORMAT(///30X,'Particle/parton data table'//8X,'KF',5X,'KC',4X,
46815 &'particle',8X,'antiparticle',6X,'chg col anti',8X,'mass',7X,
46816 &'width',7X,'w-cut',5X,'lifetime',1X,'decay'/11X,'IDC',1X,'on/off',
46817 &1X,'ME',3X,'Br.rat.',4X,'decay products')
46818 6900 FORMAT(/1X,I9,3X,I4,4X,A16,A16,3I5,1X,F12.5,2(1X,F11.5),
46819 &1X,1P,E13.5,3X,I2)
46820 7000 FORMAT(10X,I4,2X,I3,2X,I3,2X,F10.6,4X,5A16)
46821 7100 FORMAT(///20X,'Parameter value table'//4X,'I',3X,'MSTU(I)',
46822 &8X,'PARU(I)',3X,'MSTJ(I)',8X,'PARJ(I)',8X,'PARF(I)')
46823 7200 FORMAT(1X,I4,1X,I9,1X,F14.5,1X,I9,1X,F14.5,1X,F14.5)
46824
46825 RETURN
46826 END
46827
46828
46829
46830
46831
46832
46833 SUBROUTINE PYLOGO
46834
46835
46836 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
46837 IMPLICIT INTEGER(I-N)
46838 INTEGER PYK,PYCHGE,PYCOMP
46839
46840 PARAMETER (IREFER=17)
46841
46842 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
46843 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
46844 SAVE /PYDAT1/,/PYPARS/
46845
46846 INTEGER IDATI(6)
46847 CHARACTER MONTH(12)*3, LOGO(48)*32, REFER(2*IREFER)*36, LINE*79,
46848 &VERS*1, SUBV*3, DATE*2, YEAR*4, HOUR*2, MINU*2, SECO*2
46849
46850
46851 DATA MONTH/'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep',
46852 &'Oct','Nov','Dec'/
46853 DATA (LOGO(J),J=1,19)/
46854 &' *......* ',
46855 &' *:::!!:::::::::::* ',
46856 &' *::::::!!::::::::::::::* ',
46857 &' *::::::::!!::::::::::::::::* ',
46858 &' *:::::::::!!:::::::::::::::::* ',
46859 &' *:::::::::!!:::::::::::::::::* ',
46860 &' *::::::::!!::::::::::::::::*! ',
46861 &' *::::::!!::::::::::::::* !! ',
46862 &' !! *:::!!:::::::::::* !! ',
46863 &' !! !* -><- * !! ',
46864 &' !! !! !! ',
46865 &' !! !! !! ',
46866 &' !! !! ',
46867 &' !! ep !! ',
46868 &' !! !! ',
46869 &' !! pp !! ',
46870 &' !! e+e- !! ',
46871 &' !! !! ',
46872 &' !! '/
46873 DATA (LOGO(J),J=20,38)/
46874 &'Welcome to the Lund Monte Carlo!',
46875 &' ',
46876 &'PPP Y Y TTTTT H H III A ',
46877 &'P P Y Y T H H I A A ',
46878 &'PPP Y T HHHHH I AAAAA',
46879 &'P Y T H H I A A',
46880 &'P Y T H H III A A',
46881 &' ',
46882 &'This is PYTHIA version x.xxx ',
46883 &'Last date of change: xx xxx 199x',
46884 &' ',
46885 &'Now is xx xxx 199x at xx:xx:xx ',
46886 &' ',
46887 &'Disclaimer: this program comes ',
46888 &'without any guarantees. Beware ',
46889 &'of errors and use common sense ',
46890 &'when interpreting results. ',
46891 &' ',
46892 &'Copyright T. Sjostrand (2000) '/
46893 DATA (REFER(J),J=1,18)/
46894 &'An archive of program versions and d',
46895 &'ocumentation is found on the web: ',
46896 &'http://www.thep.lu.se/~torbjorn/Pyth',
46897 &'ia.html ',
46898 &' ',
46899 &' ',
46900 &'When you cite this program, currentl',
46901 &'y the official reference is ',
46902 &'T. Sjostrand, Computer Physics Commu',
46903 &'n. 82 (1994) 74. ',
46904 &'The supersymmetry extensions are des',
46905 &'cribed in ',
46906 &'S. Mrenna, Computer Physics Commun. ',
46907 &'101 (1997) 232 ',
46908 &'Also remember that the program, to a',
46909 &' large extent, represents original ',
46910 &'physics research. Other publications',
46911 &' of special relevance to your '/
46912 DATA (REFER(J),J=19,2*IREFER)/
46913 &'studies may therefore deserve separa',
46914 &'te mention. ',
46915 &' ',
46916 &' ',
46917 &'Main author: Torbjorn Sjostrand; Dep',
46918 &'artment of Theoretical Physics 2, ',
46919 &' Lund University, Solvegatan 14A, S',
46920 &'-223 62 Lund, Sweden; ',
46921 &' phone: + 46 - 46 - 222 48 16; e-ma',
46922 &'il: torbjorn@thep.lu.se ',
46923 &'SUSY author: Stephen Mrenna, Physics',
46924 &' Department, UC Davis, ',
46925 &' One Shields Avenue, Davis, CA 9561',
46926 &'6, USA; ',
46927 &' phone: + 1 - 530 - 752 - 2661; e-m',
46928 &'ail: mrenna@physics.ucdavis.edu '/
46929
46930
46931 IF(MSTP(183)/10.NE.199.AND.MSTP(183)/10.NE.200) THEN
46932 WRITE(*,'(1X,A)')
46933 & 'Error: PYDATA has not been linked.'
46934 WRITE(*,'(1X,A)') 'Execution stopped!'
46935 STOP
46936
46937
46938 ELSE
46939 WRITE(VERS,'(I1)') MSTP(181)
46940 LOGO(28)(24:24)=VERS
46941 WRITE(SUBV,'(I3)') MSTP(182)
46942 LOGO(28)(26:28)=SUBV
46943 IF(MSTP(182).LT.100) LOGO(28)(26:26)='0'
46944 WRITE(DATE,'(I2)') MSTP(185)
46945 LOGO(29)(22:23)=DATE
46946 LOGO(29)(25:27)=MONTH(MSTP(184))
46947 WRITE(YEAR,'(I4)') MSTP(183)
46948 LOGO(29)(29:32)=YEAR
46949 CALL PYTIME(IDATI)
46950 IF(IDATI(1).LE.0) THEN
46951 LOGO(31)=' '
46952 ELSE
46953 WRITE(DATE,'(I2)') IDATI(3)
46954 LOGO(31)(8:9)=DATE
46955 LOGO(31)(11:13)=MONTH(MAX(1,MIN(12,IDATI(2))))
46956 WRITE(YEAR,'(I4)') IDATI(1)
46957 LOGO(31)(15:18)=YEAR
46958 WRITE(HOUR,'(I2)') IDATI(4)
46959 LOGO(31)(23:24)=HOUR
46960 WRITE(MINU,'(I2)') IDATI(5)
46961 LOGO(31)(26:27)=MINU
46962 IF(IDATI(5).LT.10) LOGO(31)(26:26)='0'
46963 WRITE(SECO,'(I2)') IDATI(6)
46964 LOGO(31)(29:30)=SECO
46965 IF(IDATI(6).LT.10) LOGO(31)(29:29)='0'
46966 ENDIF
46967 ENDIF
46968
46969
46970 DO 100 ILIN=1,29+IREFER
46971 LINE=' '
46972 IF(ILIN.EQ.1) THEN
46973 LINE(1:1)='1'
46974 ELSE
46975 LINE(2:3)='**'
46976 LINE(78:79)='**'
46977 ENDIF
46978
46979
46980 IF(ILIN.EQ.2.OR.ILIN.EQ.3.OR.ILIN.GE.28+IREFER) THEN
46981 LINE(4:77)='***********************************************'//
46982 & '***************************'
46983 ELSEIF(ILIN.GE.6.AND.ILIN.LE.24) THEN
46984 LINE(6:37)=LOGO(ILIN-5)
46985 LINE(44:75)=LOGO(ILIN+14)
46986 ELSEIF(ILIN.GE.26.AND.ILIN.LE.25+IREFER) THEN
46987 LINE(5:40)=REFER(2*ILIN-51)
46988 LINE(41:76)=REFER(2*ILIN-50)
46989 ENDIF
46990
46991
46992 WRITE(MSTU(11),'(A79)') LINE
46993 100 CONTINUE
46994
46995 RETURN
46996 END
46997
46998
46999
47000
47001
47002
47003
47004 SUBROUTINE PYUPDA(MUPDA,LFN)
47005
47006
47007 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
47008 IMPLICIT INTEGER(I-N)
47009 INTEGER PYK,PYCHGE,PYCOMP
47010
47011 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
47012 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
47013 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
47014 COMMON/PYDAT4/CHAF(500,2)
47015 CHARACTER CHAF*16
47016 COMMON/PYINT4/MWID(500),WIDS(500,5)
47017 SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYDAT4/,/PYINT4/
47018
47019 CHARACTER CHINL*120,CHKF*9,CHVAR(22)*9,CHLIN*72,
47020 &CHBLK(20)*72,CHOLD*16,CHTMP*16,CHNEW*16,CHCOM*24
47021 DATA CHVAR/ 'KCHG(I,1)','KCHG(I,2)','KCHG(I,3)','KCHG(I,4)',
47022 &'PMAS(I,1)','PMAS(I,2)','PMAS(I,3)','PMAS(I,4)','MDCY(I,1)',
47023 &'MDCY(I,2)','MDCY(I,3)','MDME(I,1)','MDME(I,2)','BRAT(I) ',
47024 &'KFDP(I,1)','KFDP(I,2)','KFDP(I,3)','KFDP(I,4)','KFDP(I,5)',
47025 &'CHAF(I,1)','CHAF(I,2)','MWID(I) '/
47026
47027
47028 IF(MSTU(12).GE.1) CALL PYLIST(0)
47029
47030
47031 IF(MUPDA.EQ.1) THEN
47032 DO 110 KC=1,500
47033 WRITE(LFN,5000) KCHG(KC,4),(CHAF(KC,J1),J1=1,2),
47034 & (KCHG(KC,J2),J2=1,3),(PMAS(KC,J3),J3=1,4),
47035 & MWID(KC),MDCY(KC,1)
47036 DO 100 IDC=MDCY(KC,2),MDCY(KC,2)+MDCY(KC,3)-1
47037 WRITE(LFN,5100) MDME(IDC,1),MDME(IDC,2),BRAT(IDC),
47038 & (KFDP(IDC,J),J=1,5)
47039 100 CONTINUE
47040 110 CONTINUE
47041
47042
47043
47044 ELSEIF(MUPDA.EQ.2.OR.MUPDA.EQ.3) THEN
47045
47046
47047 KCC=100
47048 NDC=0
47049 CHKF=' '
47050 IF(MUPDA.EQ.2) THEN
47051 DO 120 I=1,MSTU(6)
47052 KCHG(I,4)=0
47053 120 CONTINUE
47054 ELSE
47055 DO 130 KC=1,MSTU(6)
47056 IF(KC.GT.100.AND.KCHG(KC,4).GT.100) KCC=KC
47057 NDC=MAX(NDC,MDCY(KC,2)+MDCY(KC,3)-1)
47058 130 CONTINUE
47059 ENDIF
47060
47061
47062
47063 140 READ(LFN,5200,END=190) CHINL
47064
47065
47066 IF(CHINL(2:10).NE.' ') THEN
47067 CHKF=CHINL(2:10)
47068 READ(CHKF,5300) KF
47069 IF(MUPDA.EQ.2) THEN
47070 IF(KF.LE.100) THEN
47071 KC=KF
47072 ELSE
47073 KCC=KCC+1
47074 KC=KCC
47075 ENDIF
47076 ELSE
47077 KCREP=0
47078 IF(KF.LE.100) THEN
47079 KCREP=KF
47080 ELSE
47081 DO 150 KCR=101,KCC
47082 IF(KCHG(KCR,4).EQ.KF) KCREP=KCR
47083 150 CONTINUE
47084 ENDIF
47085
47086 IF(KCREP.NE.0.AND.MDCY(KCREP,3).GT.0) THEN
47087 IDCREP=MDCY(KCREP,2)
47088 NDCREP=MDCY(KCREP,3)
47089 DO 160 I=1,KCC
47090 IF(MDCY(I,2).GT.IDCREP) MDCY(I,2)=MDCY(I,2)-NDCREP
47091 160 CONTINUE
47092 DO 180 I=IDCREP,NDC-NDCREP
47093 MDME(I,1)=MDME(I+NDCREP,1)
47094 MDME(I,2)=MDME(I+NDCREP,2)
47095 BRAT(I)=BRAT(I+NDCREP)
47096 DO 170 J=1,5
47097 KFDP(I,J)=KFDP(I+NDCREP,J)
47098 170 CONTINUE
47099 180 CONTINUE
47100 NDC=NDC-NDCREP
47101 KC=KCREP
47102 ELSEIF(KCREP.NE.0) THEN
47103 KC=KCREP
47104 ELSE
47105 KCC=KCC+1
47106 KC=KCC
47107 ENDIF
47108 ENDIF
47109
47110
47111 IF(KC.GT.MSTU(6)) CALL PYERRM(27,
47112 & '(PYUPDA:) Particle arrays full by KF ='//CHKF)
47113 READ(CHINL,5000) KCHG(KC,4),(CHAF(KC,J1),J1=1,2),
47114 & (KCHG(KC,J2),J2=1,3),(PMAS(KC,J3),J3=1,4),
47115 & MWID(KC),MDCY(KC,1)
47116 MDCY(KC,2)=0
47117 MDCY(KC,3)=0
47118
47119
47120 ELSE
47121 NDC=NDC+1
47122 IF(NDC.GT.MSTU(7)) CALL PYERRM(27,
47123 & '(PYUPDA:) Decay data arrays full by KF ='//CHKF)
47124 IF(MDCY(KC,2).EQ.0) MDCY(KC,2)=NDC
47125 MDCY(KC,3)=MDCY(KC,3)+1
47126 READ(CHINL,5100) MDME(NDC,1),MDME(NDC,2),BRAT(NDC),
47127 & (KFDP(NDC,J),J=1,5)
47128 ENDIF
47129
47130
47131 GOTO 140
47132 190 CONTINUE
47133 MSTU(20)=0
47134
47135
47136 DO 220 KC=1,MSTU(6)
47137 KF=KCHG(KC,4)
47138 IF(KF.EQ.0) GOTO 220
47139 WRITE(CHKF,5300) KF
47140 IF(MIN(PMAS(KC,1),PMAS(KC,2),PMAS(KC,3),PMAS(KC,1)-PMAS(KC,3),
47141 & PMAS(KC,4)).LT.0D0.OR.MDCY(KC,3).LT.0) CALL PYERRM(17,
47142 & '(PYUPDA:) Mass/width/life/(# channels) wrong for KF ='//CHKF)
47143 BRSUM=0D0
47144 DO 210 IDC=MDCY(KC,2),MDCY(KC,2)+MDCY(KC,3)-1
47145 IF(MDME(IDC,2).GT.80) GOTO 210
47146 KQ=KCHG(KC,1)
47147 PMS=PMAS(KC,1)-PMAS(KC,3)-PARJ(64)
47148 MERR=0
47149 DO 200 J=1,5
47150 KP=KFDP(IDC,J)
47151 IF(KP.EQ.0.OR.KP.EQ.81.OR.IABS(KP).EQ.82) THEN
47152 IF(KP.EQ.81) KQ=0
47153 ELSEIF(PYCOMP(KP).EQ.0) THEN
47154 MERR=3
47155 ELSE
47156 KQ=KQ-PYCHGE(KP)
47157 KPC=PYCOMP(KP)
47158 PMS=PMS-PMAS(KPC,1)
47159 IF(MSTJ(24).GT.0) PMS=PMS+0.5D0*MIN(PMAS(KPC,2),
47160 & PMAS(KPC,3))
47161 ENDIF
47162 200 CONTINUE
47163 IF(KQ.NE.0) MERR=MAX(2,MERR)
47164 IF(MWID(KC).EQ.0.AND.KF.NE.311.AND.PMS.LT.0D0)
47165 & MERR=MAX(1,MERR)
47166 IF(MERR.EQ.3) CALL PYERRM(17,
47167 & '(PYUPDA:) Unknown particle code in decay of KF ='//CHKF)
47168 IF(MERR.EQ.2) CALL PYERRM(17,
47169 & '(PYUPDA:) Charge not conserved in decay of KF ='//CHKF)
47170 IF(MERR.EQ.1) CALL PYERRM(7,
47171 & '(PYUPDA:) Kinematically unallowed decay of KF ='//CHKF)
47172 BRSUM=BRSUM+BRAT(IDC)
47173 210 CONTINUE
47174 WRITE(CHTMP,5500) BRSUM
47175 IF(ABS(BRSUM).GT.0.0005D0.AND.ABS(BRSUM-1D0).GT.0.0005D0)
47176 & CALL PYERRM(7,'(PYUPDA:) Sum of branching ratios is '//
47177 & CHTMP(9:16)//' for KF ='//CHKF)
47178 220 CONTINUE
47179
47180
47181 ELSEIF(MUPDA.EQ.4) THEN
47182
47183
47184 KCC=0
47185 NDC=0
47186 DO 230 I=1,MSTU(6)
47187 IF(KCHG(I,4).NE.0) THEN
47188 KCC=I
47189 NDC=MAX(NDC,MDCY(I,2)+MDCY(I,3)-1)
47190 ENDIF
47191 230 CONTINUE
47192
47193
47194 DO 300 IVAR=1,22
47195 NDIM=MSTU(6)
47196 IF(IVAR.GE.12.AND.IVAR.LE.19) NDIM=MSTU(7)
47197 NLIN=1
47198 CHLIN=' '
47199 CHLIN(7:35)='DATA ('//CHVAR(IVAR)//',I= 1, )/'
47200 LLIN=35
47201 CHOLD='START'
47202
47203
47204 DO 280 IDIM=1,NDIM
47205 IF(IVAR.EQ.1) WRITE(CHTMP,5400) KCHG(IDIM,1)
47206 IF(IVAR.EQ.2) WRITE(CHTMP,5400) KCHG(IDIM,2)
47207 IF(IVAR.EQ.3) WRITE(CHTMP,5400) KCHG(IDIM,3)
47208 IF(IVAR.EQ.4) WRITE(CHTMP,5400) KCHG(IDIM,4)
47209 IF(IVAR.EQ.5) WRITE(CHTMP,5500) PMAS(IDIM,1)
47210 IF(IVAR.EQ.6) WRITE(CHTMP,5500) PMAS(IDIM,2)
47211 IF(IVAR.EQ.7) WRITE(CHTMP,5500) PMAS(IDIM,3)
47212 IF(IVAR.EQ.8) WRITE(CHTMP,5500) PMAS(IDIM,4)
47213 IF(IVAR.EQ.9) WRITE(CHTMP,5400) MDCY(IDIM,1)
47214 IF(IVAR.EQ.10) WRITE(CHTMP,5400) MDCY(IDIM,2)
47215 IF(IVAR.EQ.11) WRITE(CHTMP,5400) MDCY(IDIM,3)
47216 IF(IVAR.EQ.12) WRITE(CHTMP,5400) MDME(IDIM,1)
47217 IF(IVAR.EQ.13) WRITE(CHTMP,5400) MDME(IDIM,2)
47218 IF(IVAR.EQ.14) WRITE(CHTMP,5600) BRAT(IDIM)
47219 IF(IVAR.EQ.15) WRITE(CHTMP,5400) KFDP(IDIM,1)
47220 IF(IVAR.EQ.16) WRITE(CHTMP,5400) KFDP(IDIM,2)
47221 IF(IVAR.EQ.17) WRITE(CHTMP,5400) KFDP(IDIM,3)
47222 IF(IVAR.EQ.18) WRITE(CHTMP,5400) KFDP(IDIM,4)
47223 IF(IVAR.EQ.19) WRITE(CHTMP,5400) KFDP(IDIM,5)
47224 IF(IVAR.EQ.20) CHTMP=CHAF(IDIM,1)
47225 IF(IVAR.EQ.21) CHTMP=CHAF(IDIM,2)
47226 IF(IVAR.EQ.22) WRITE(CHTMP,5400) MWID(IDIM)
47227
47228
47229 IF(IVAR.LE.4) THEN
47230 IF(IDIM.GT.KCC) CHTMP=' 0'
47231 ELSEIF(IVAR.LE.8) THEN
47232 IF(IDIM.GT.KCC) CHTMP=' 0.0'
47233 ELSEIF(IVAR.LE.11) THEN
47234 IF(IDIM.GT.KCC) CHTMP=' 0'
47235 ELSEIF(IVAR.LE.13) THEN
47236 IF(IDIM.GT.NDC) CHTMP=' 0'
47237 ELSEIF(IVAR.LE.14) THEN
47238 IF(IDIM.GT.NDC) CHTMP=' 0.0'
47239 ELSEIF(IVAR.LE.19) THEN
47240 IF(IDIM.GT.NDC) CHTMP=' 0'
47241 ELSEIF(IVAR.LE.21) THEN
47242 IF(IDIM.GT.KCC) CHTMP=' '
47243 ELSE
47244 IF(IDIM.GT.KCC) CHTMP=' 0'
47245 ENDIF
47246
47247
47248 LLOW=1
47249 LHIG=1
47250 DO 240 LL=1,16
47251 IF(CHTMP(17-LL:17-LL).NE.' ') LLOW=17-LL
47252 IF(CHTMP(LL:LL).NE.' ') LHIG=LL
47253 240 CONTINUE
47254 CHNEW=CHTMP(LLOW:LHIG)//' '
47255 LNEW=1+LHIG-LLOW
47256 IF((IVAR.GE.5.AND.IVAR.LE.8).OR.IVAR.EQ.14) THEN
47257 LNEW=LNEW+1
47258 250 LNEW=LNEW-1
47259 IF(LNEW.GE.2.AND.CHNEW(LNEW:LNEW).EQ.'0') GOTO 250
47260 IF(CHNEW(LNEW:LNEW).EQ.'.') LNEW=LNEW-1
47261 IF(LNEW.EQ.0) THEN
47262 CHNEW(1:3)='0D0'
47263 LNEW=3
47264 ELSE
47265 CHNEW(LNEW+1:LNEW+2)='D0'
47266 LNEW=LNEW+2
47267 ENDIF
47268 ELSEIF(IVAR.EQ.20.OR.IVAR.EQ.21) THEN
47269 DO 260 LL=LNEW,1,-1
47270 IF(CHNEW(LL:LL).EQ.'''') THEN
47271 CHTMP=CHNEW
47272 CHNEW=CHTMP(1:LL)//''''//CHTMP(LL+1:11)
47273 LNEW=LNEW+1
47274 ENDIF
47275 260 CONTINUE
47276 LNEW=MIN(14,LNEW)
47277 CHTMP=CHNEW
47278 CHNEW(1:LNEW+2)=''''//CHTMP(1:LNEW)//''''
47279 LNEW=LNEW+2
47280 ENDIF
47281
47282
47283 IF(CHNEW.NE.CHOLD) THEN
47284 NRPT=1
47285 CHOLD=CHNEW
47286 CHCOM=CHNEW
47287 LCOM=LNEW
47288 ELSE
47289 LRPT=LNEW+1
47290 IF(NRPT.GE.2) LRPT=LNEW+3
47291 IF(NRPT.GE.10) LRPT=LNEW+4
47292 IF(NRPT.GE.100) LRPT=LNEW+5
47293 IF(NRPT.GE.1000) LRPT=LNEW+6
47294 LLIN=LLIN-LRPT
47295 NRPT=NRPT+1
47296 WRITE(CHTMP,5400) NRPT
47297 LRPT=1
47298 IF(NRPT.GE.10) LRPT=2
47299 IF(NRPT.GE.100) LRPT=3
47300 IF(NRPT.GE.1000) LRPT=4
47301 CHCOM(1:LRPT+1+LNEW)=CHTMP(17-LRPT:16)//'*'//CHNEW(1:LNEW)
47302 LCOM=LRPT+1+LNEW
47303 ENDIF
47304
47305
47306
47307 IF(LLIN+LCOM.LE.70) THEN
47308 CHLIN(LLIN+1:LLIN+LCOM+1)=CHCOM(1:LCOM)//','
47309 LLIN=LLIN+LCOM+1
47310 ELSEIF(NLIN.LE.19) THEN
47311 CHLIN(LLIN+1:72)=' '
47312 CHBLK(NLIN)=CHLIN
47313 NLIN=NLIN+1
47314 CHLIN(6:6+LCOM+1)='&'//CHCOM(1:LCOM)//','
47315 LLIN=6+LCOM+1
47316 ELSE
47317 CHLIN(LLIN:72)='/'//' '
47318 CHBLK(NLIN)=CHLIN
47319 WRITE(CHTMP,5400) IDIM-NRPT
47320 CHBLK(1)(30:33)=CHTMP(13:16)
47321 DO 270 ILIN=1,NLIN
47322 WRITE(LFN,5700) CHBLK(ILIN)
47323 270 CONTINUE
47324 NLIN=1
47325 CHLIN=' '
47326 CHLIN(7:35+LCOM+1)='DATA ('//CHVAR(IVAR)//
47327 & ',I= , )/'//CHCOM(1:LCOM)//','
47328 WRITE(CHTMP,5400) IDIM-NRPT+1
47329 CHLIN(25:28)=CHTMP(13:16)
47330 LLIN=35+LCOM+1
47331 ENDIF
47332 280 CONTINUE
47333
47334
47335 CHLIN(LLIN:72)='/'//' '
47336 CHBLK(NLIN)=CHLIN
47337 WRITE(CHTMP,5400) NDIM
47338 CHBLK(1)(30:33)=CHTMP(13:16)
47339 DO 290 ILIN=1,NLIN
47340 WRITE(LFN,5700) CHBLK(ILIN)
47341 290 CONTINUE
47342 300 CONTINUE
47343 ENDIF
47344
47345
47346 5000 FORMAT(1X,I9,2X,A16,2X,A16,3I3,3F12.5,1P,E13.5,2I3)
47347 5100 FORMAT(10X,2I5,F12.6,5I10)
47348 5200 FORMAT(A120)
47349 5300 FORMAT(I9)
47350 5400 FORMAT(I16)
47351 5500 FORMAT(F16.5)
47352 5600 FORMAT(F16.6)
47353 5700 FORMAT(A72)
47354
47355 RETURN
47356 END
47357
47358
47359
47360
47361
47362
47363 FUNCTION PYK(I,J)
47364
47365
47366 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
47367 IMPLICIT INTEGER(I-N)
47368 INTEGER PYK,PYCHGE,PYCOMP
47369
47370 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
47371 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
47372 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
47373 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
47374
47375
47376
47377 PYK=0
47378 IF(I.LT.0.OR.I.GT.MSTU(4).OR.J.LE.0) THEN
47379 ELSEIF(I.EQ.0.AND.J.EQ.1) THEN
47380 PYK=N
47381 ELSEIF(I.EQ.0.AND.(J.EQ.2.OR.J.EQ.6)) THEN
47382 DO 100 I1=1,N
47383 IF(J.EQ.2.AND.K(I1,1).GE.1.AND.K(I1,1).LE.10) PYK=PYK+1
47384 IF(J.EQ.6.AND.K(I1,1).GE.1.AND.K(I1,1).LE.10) PYK=PYK+
47385 & PYCHGE(K(I1,2))
47386 100 CONTINUE
47387 ELSEIF(I.EQ.0) THEN
47388
47389
47390 ELSEIF(J.LE.5) THEN
47391 PYK=K(I,J)
47392 ELSEIF(J.EQ.6) THEN
47393 PYK=PYCHGE(K(I,2))
47394
47395
47396 ELSEIF(J.LE.8) THEN
47397 IF(K(I,1).GE.1.AND.K(I,1).LE.10) PYK=1
47398 IF(J.EQ.8) PYK=PYK*K(I,2)
47399 ELSEIF(J.LE.12) THEN
47400 KFA=IABS(K(I,2))
47401 KC=PYCOMP(KFA)
47402 KQ=0
47403 IF(KC.NE.0) KQ=KCHG(KC,2)
47404 IF(J.EQ.9.AND.KC.NE.0.AND.KQ.NE.0) PYK=K(I,2)
47405 IF(J.EQ.10.AND.KC.NE.0.AND.KQ.EQ.0) PYK=K(I,2)
47406 IF(J.EQ.11) PYK=KC
47407 IF(J.EQ.12) PYK=KQ*ISIGN(1,K(I,2))
47408
47409
47410 ELSEIF(J.EQ.13) THEN
47411 KFA=IABS(K(I,2))
47412 PYK=MOD(KFA/100,10)*(-1)**MOD(KFA/100,10)
47413 IF(KFA.LT.10) PYK=KFA
47414 IF(MOD(KFA/1000,10).NE.0) PYK=MOD(KFA/1000,10)
47415 PYK=PYK*ISIGN(1,K(I,2))
47416
47417
47418 ELSEIF(J.LE.15) THEN
47419 I2=I
47420 I1=I
47421 110 PYK=PYK+1
47422 I2=I1
47423 I1=K(I1,3)
47424 IF(I1.GT.0) THEN
47425 IF(K(I1,1).GT.0.AND.K(I1,1).LE.20) GOTO 110
47426 ENDIF
47427 IF(J.EQ.15) PYK=I2
47428 ELSEIF(J.EQ.16) THEN
47429 KFA=IABS(K(I,2))
47430 IF(K(I,1).LE.20.AND.((KFA.GE.11.AND.KFA.LE.20).OR.KFA.EQ.22.OR.
47431 & (KFA.GT.100.AND.MOD(KFA/10,10).NE.0))) THEN
47432 I1=I
47433 120 I2=I1
47434 I1=K(I1,3)
47435 IF(I1.GT.0) THEN
47436 KFAM=IABS(K(I1,2))
47437 ILP=1
47438 IF(KFAM.NE.0.AND.KFAM.LE.10) ILP=0
47439 IF(KFAM.EQ.21.OR.KFAM.EQ.91.OR.KFAM.EQ.92.OR.KFAM.EQ.93)
47440 & ILP=0
47441 IF(KFAM.GT.100.AND.MOD(KFAM/10,10).EQ.0) ILP=0
47442 IF(ILP.EQ.1) GOTO 120
47443 ENDIF
47444 IF(K(I1,1).EQ.12) THEN
47445 DO 130 I3=I1+1,I2
47446 IF(K(I3,3).EQ.K(I2,3).AND.K(I3,2).NE.91.AND.K(I3,2).NE.92
47447 & .AND.K(I3,2).NE.93) PYK=PYK+1
47448 130 CONTINUE
47449 ELSE
47450 I3=I2
47451 140 PYK=PYK+1
47452 I3=I3+1
47453 IF(I3.LT.N.AND.K(I3,3).EQ.K(I2,3)) GOTO 140
47454 ENDIF
47455 ENDIF
47456
47457
47458 ELSEIF(J.EQ.17) THEN
47459 I1=I
47460 150 PYK=PYK+1
47461 I3=I1
47462 I1=K(I1,3)
47463 I0=MAX(1,I1)
47464 KC=PYCOMP(K(I0,2))
47465 IF(I1.EQ.0.OR.K(I0,1).LE.0.OR.K(I0,1).GT.20.OR.KC.EQ.0) THEN
47466 IF(PYK.EQ.1) PYK=-1
47467 IF(PYK.GT.1) PYK=0
47468 RETURN
47469 ENDIF
47470 IF(KCHG(KC,2).EQ.0) GOTO 150
47471 IF(K(I1,1).NE.12) PYK=0
47472 IF(K(I1,1).NE.12) RETURN
47473 I2=I1
47474 160 I2=I2+1
47475 IF(I2.LT.N.AND.K(I2,1).NE.11) GOTO 160
47476 K3M=K(I3-1,3)
47477 IF(K3M.GE.I1.AND.K3M.LE.I2) PYK=0
47478 K3P=K(I3+1,3)
47479 IF(I3.LT.N.AND.K3P.GE.I1.AND.K3P.LE.I2) PYK=0
47480
47481
47482 ELSEIF(J.EQ.18) THEN
47483 IF(K(I,1).EQ.11.OR.K(I,1).EQ.12) PYK=MAX(0,K(I,5)-K(I,4)+1)
47484 IF(K(I,4).EQ.0.OR.K(I,5).EQ.0) PYK=0
47485 ELSEIF(J.LE.22) THEN
47486 IF(K(I,1).NE.3.AND.K(I,1).NE.13.AND.K(I,1).NE.14) RETURN
47487 IF(J.EQ.19) PYK=MOD(K(I,4)/MSTU(5),MSTU(5))
47488 IF(J.EQ.20) PYK=MOD(K(I,5)/MSTU(5),MSTU(5))
47489 IF(J.EQ.21) PYK=MOD(K(I,4),MSTU(5))
47490 IF(J.EQ.22) PYK=MOD(K(I,5),MSTU(5))
47491 ELSE
47492 ENDIF
47493
47494 RETURN
47495 END
47496
47497
47498
47499
47500
47501
47502 FUNCTION PYP(I,J)
47503
47504
47505 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
47506 IMPLICIT INTEGER(I-N)
47507 INTEGER PYK,PYCHGE,PYCOMP
47508
47509 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
47510 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
47511 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
47512 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
47513
47514 DIMENSION PSUM(4)
47515
47516
47517
47518 PYP=0D0
47519 IF(I.LT.0.OR.I.GT.MSTU(4).OR.J.LE.0) THEN
47520 ELSEIF(I.EQ.0.AND.J.LE.4) THEN
47521 DO 100 I1=1,N
47522 IF(K(I1,1).GT.0.AND.K(I1,1).LE.10) PYP=PYP+P(I1,J)
47523 100 CONTINUE
47524 ELSEIF(I.EQ.0.AND.J.EQ.5) THEN
47525 DO 120 J1=1,4
47526 PSUM(J1)=0D0
47527 DO 110 I1=1,N
47528 IF(K(I1,1).GT.0.AND.K(I1,1).LE.10) PSUM(J1)=PSUM(J1)+
47529 & P(I1,J1)
47530 110 CONTINUE
47531 120 CONTINUE
47532 PYP=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-PSUM(3)**2))
47533 ELSEIF(I.EQ.0.AND.J.EQ.6) THEN
47534 DO 130 I1=1,N
47535 IF(K(I1,1).GT.0.AND.K(I1,1).LE.10) PYP=PYP+PYCHGE(K(I1,2))/3D0
47536 130 CONTINUE
47537 ELSEIF(I.EQ.0) THEN
47538
47539
47540 ELSEIF(J.LE.5) THEN
47541 PYP=P(I,J)
47542
47543
47544 ELSEIF(J.LE.12) THEN
47545 IF(J.EQ.6) PYP=PYCHGE(K(I,2))/3D0
47546 IF(J.EQ.7.OR.J.EQ.8) PYP=P(I,1)**2+P(I,2)**2+P(I,3)**2
47547 IF(J.EQ.9.OR.J.EQ.10) PYP=P(I,1)**2+P(I,2)**2
47548 IF(J.EQ.11.OR.J.EQ.12) PYP=P(I,5)**2+P(I,1)**2+P(I,2)**2
47549 IF(J.EQ.8.OR.J.EQ.10.OR.J.EQ.12) PYP=SQRT(PYP)
47550
47551
47552 ELSEIF(J.LE.16) THEN
47553 IF(J.LE.14) PYP=PYANGL(P(I,3),SQRT(P(I,1)**2+P(I,2)**2))
47554 IF(J.GE.15) PYP=PYANGL(P(I,1),P(I,2))
47555 IF(J.EQ.14.OR.J.EQ.16) PYP=PYP*180D0/PARU(1)
47556
47557
47558 ELSEIF(J.LE.19) THEN
47559 PMR=0D0
47560 IF(J.EQ.17) PMR=P(I,5)
47561 IF(J.EQ.18) PMR=PYMASS(211)
47562 PR=MAX(1D-20,PMR**2+P(I,1)**2+P(I,2)**2)
47563 PYP=SIGN(LOG(MIN((SQRT(PR+P(I,3)**2)+ABS(P(I,3)))/SQRT(PR),
47564 & 1D20)),P(I,3))
47565
47566
47567 ELSEIF(J.LE.25) THEN
47568 IF(J.EQ.20) PYP=2D0*SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2)/PARU(21)
47569 IF(J.EQ.21) PYP=2D0*P(I,3)/PARU(21)
47570 IF(J.EQ.22) PYP=2D0*SQRT(P(I,1)**2+P(I,2)**2)/PARU(21)
47571 IF(J.EQ.23) PYP=2D0*P(I,4)/PARU(21)
47572 IF(J.EQ.24) PYP=(P(I,4)+P(I,3))/PARU(21)
47573 IF(J.EQ.25) PYP=(P(I,4)-P(I,3))/PARU(21)
47574 ENDIF
47575
47576 RETURN
47577 END
47578
47579
47580
47581
47582
47583
47584
47585 SUBROUTINE PYSPHE(SPH,APL)
47586
47587
47588 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
47589 IMPLICIT INTEGER(I-N)
47590 INTEGER PYK,PYCHGE,PYCOMP
47591
47592 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
47593 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
47594 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
47595 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
47596
47597 DIMENSION SM(3,3),SV(3,3)
47598
47599
47600 NP=0
47601 DO 110 J1=1,3
47602 DO 100 J2=J1,3
47603 SM(J1,J2)=0D0
47604 100 CONTINUE
47605 110 CONTINUE
47606 PS=0D0
47607 DO 140 I=1,N
47608 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 140
47609 IF(MSTU(41).GE.2) THEN
47610 KC=PYCOMP(K(I,2))
47611 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
47612 & KC.EQ.18) GOTO 140
47613 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.PYCHGE(K(I,2)).EQ.0)
47614 & GOTO 140
47615 ENDIF
47616 NP=NP+1
47617 PA=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2)
47618 PWT=1D0
47619 IF(ABS(PARU(41)-2D0).GT.0.001D0) PWT=
47620 & MAX(1D-10,PA)**(PARU(41)-2D0)
47621 DO 130 J1=1,3
47622 DO 120 J2=J1,3
47623 SM(J1,J2)=SM(J1,J2)+PWT*P(I,J1)*P(I,J2)
47624 120 CONTINUE
47625 130 CONTINUE
47626 PS=PS+PWT*PA**2
47627 140 CONTINUE
47628
47629
47630 IF(NP.LE.1) THEN
47631 CALL PYERRM(8,'(PYSPHE:) too few particles for analysis')
47632 SPH=-1D0
47633 APL=-1D0
47634 RETURN
47635 ENDIF
47636 DO 160 J1=1,3
47637 DO 150 J2=J1,3
47638 SM(J1,J2)=SM(J1,J2)/PS
47639 150 CONTINUE
47640 160 CONTINUE
47641
47642
47643 SQ=(SM(1,1)*SM(2,2)+SM(1,1)*SM(3,3)+SM(2,2)*SM(3,3)-
47644 &SM(1,2)**2-SM(1,3)**2-SM(2,3)**2)/3D0-1D0/9D0
47645 SR=-0.5D0*(SQ+1D0/9D0+SM(1,1)*SM(2,3)**2+SM(2,2)*SM(1,3)**2+
47646 &SM(3,3)*SM(1,2)**2-SM(1,1)*SM(2,2)*SM(3,3))+
47647 &SM(1,2)*SM(1,3)*SM(2,3)+1D0/27D0
47648 SP=COS(ACOS(MAX(MIN(SR/SQRT(-SQ**3),1D0),-1D0))/3D0)
47649 P(N+1,4)=1D0/3D0+SQRT(-SQ)*MAX(2D0*SP,SQRT(3D0*(1D0-SP**2))-SP)
47650 P(N+3,4)=1D0/3D0+SQRT(-SQ)*MIN(2D0*SP,-SQRT(3D0*(1D0-SP**2))-SP)
47651 P(N+2,4)=1D0-P(N+1,4)-P(N+3,4)
47652 IF(P(N+2,4).LT.1D-5) THEN
47653 CALL PYERRM(8,'(PYSPHE:) all particles back-to-back')
47654 SPH=-1D0
47655 APL=-1D0
47656 RETURN
47657 ENDIF
47658
47659
47660 DO 240 I=1,3,2
47661 DO 180 J1=1,3
47662 SV(J1,J1)=SM(J1,J1)-P(N+I,4)
47663 DO 170 J2=J1+1,3
47664 SV(J1,J2)=SM(J1,J2)
47665 SV(J2,J1)=SM(J1,J2)
47666 170 CONTINUE
47667 180 CONTINUE
47668 SMAX=0D0
47669 DO 200 J1=1,3
47670 DO 190 J2=1,3
47671 IF(ABS(SV(J1,J2)).LE.SMAX) GOTO 190
47672 JA=J1
47673 JB=J2
47674 SMAX=ABS(SV(J1,J2))
47675 190 CONTINUE
47676 200 CONTINUE
47677 SMAX=0D0
47678 DO 220 J3=JA+1,JA+2
47679 J1=J3-3*((J3-1)/3)
47680 RL=SV(J1,JB)/SV(JA,JB)
47681 DO 210 J2=1,3
47682 SV(J1,J2)=SV(J1,J2)-RL*SV(JA,J2)
47683 IF(ABS(SV(J1,J2)).LE.SMAX) GOTO 210
47684 JC=J1
47685 SMAX=ABS(SV(J1,J2))
47686 210 CONTINUE
47687 220 CONTINUE
47688 JB1=JB+1-3*(JB/3)
47689 JB2=JB+2-3*((JB+1)/3)
47690 P(N+I,JB1)=-SV(JC,JB2)
47691 P(N+I,JB2)=SV(JC,JB1)
47692 P(N+I,JB)=-(SV(JA,JB1)*P(N+I,JB1)+SV(JA,JB2)*P(N+I,JB2))/
47693 & SV(JA,JB)
47694 PA=SQRT(P(N+I,1)**2+P(N+I,2)**2+P(N+I,3)**2)
47695 SGN=(-1D0)**INT(PYR(0)+0.5D0)
47696 DO 230 J=1,3
47697 P(N+I,J)=SGN*P(N+I,J)/PA
47698 230 CONTINUE
47699 240 CONTINUE
47700
47701
47702 SGN=(-1D0)**INT(PYR(0)+0.5D0)
47703 P(N+2,1)=SGN*(P(N+1,2)*P(N+3,3)-P(N+1,3)*P(N+3,2))
47704 P(N+2,2)=SGN*(P(N+1,3)*P(N+3,1)-P(N+1,1)*P(N+3,3))
47705 P(N+2,3)=SGN*(P(N+1,1)*P(N+3,2)-P(N+1,2)*P(N+3,1))
47706 DO 260 I=1,3
47707 K(N+I,1)=31
47708 K(N+I,2)=95
47709 K(N+I,3)=I
47710 K(N+I,4)=0
47711 K(N+I,5)=0
47712 P(N+I,5)=0D0
47713 DO 250 J=1,5
47714 V(I,J)=0D0
47715 250 CONTINUE
47716 260 CONTINUE
47717
47718
47719 SPH=1.5D0*(P(N+2,4)+P(N+3,4))
47720 APL=1.5D0*P(N+3,4)
47721 MSTU(61)=N+1
47722 MSTU(62)=NP
47723 IF(MSTU(43).LE.1) MSTU(3)=3
47724 IF(MSTU(43).GE.2) N=N+3
47725
47726 RETURN
47727 END
47728
47729
47730
47731
47732
47733
47734
47735 SUBROUTINE PYTHRU(THR,OBL)
47736
47737
47738 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
47739 IMPLICIT INTEGER(I-N)
47740 INTEGER PYK,PYCHGE,PYCOMP
47741
47742 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
47743 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
47744 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
47745 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
47746
47747 DIMENSION TDI(3),TPR(3)
47748
47749
47750 NP=0
47751 PS=0D0
47752 DO 100 I=1,N
47753 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 100
47754 IF(MSTU(41).GE.2) THEN
47755 KC=PYCOMP(K(I,2))
47756 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
47757 & KC.EQ.18) GOTO 100
47758 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.PYCHGE(K(I,2)).EQ.0)
47759 & GOTO 100
47760 ENDIF
47761 IF(N+NP+MSTU(44)+15.GE.MSTU(4)-MSTU(32)-5) THEN
47762 CALL PYERRM(11,'(PYTHRU:) no more memory left in PYJETS')
47763 THR=-2D0
47764 OBL=-2D0
47765 RETURN
47766 ENDIF
47767 NP=NP+1
47768 K(N+NP,1)=23
47769 P(N+NP,1)=P(I,1)
47770 P(N+NP,2)=P(I,2)
47771 P(N+NP,3)=P(I,3)
47772 P(N+NP,4)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2)
47773 P(N+NP,5)=1D0
47774 IF(ABS(PARU(42)-1D0).GT.0.001D0) P(N+NP,5)=
47775 & P(N+NP,4)**(PARU(42)-1D0)
47776 PS=PS+P(N+NP,4)*P(N+NP,5)
47777 100 CONTINUE
47778
47779
47780 IF(NP.LE.1) THEN
47781 CALL PYERRM(8,'(PYTHRU:) too few particles for analysis')
47782 THR=-1D0
47783 OBL=-1D0
47784 RETURN
47785 ENDIF
47786
47787
47788 DO 320 ILD=1,2
47789 IF(ILD.EQ.2) THEN
47790 K(N+NP+1,1)=31
47791 PHI=PYANGL(P(N+NP+1,1),P(N+NP+1,2))
47792 MSTU(33)=1
47793 CALL PYROBO(N+1,N+NP+1,0D0,-PHI,0D0,0D0,0D0)
47794 THE=PYANGL(P(N+NP+1,3),P(N+NP+1,1))
47795 CALL PYROBO(N+1,N+NP+1,-THE,0D0,0D0,0D0,0D0)
47796 ENDIF
47797
47798
47799 DO 110 ILF=N+NP+4,N+NP+MSTU(44)+4
47800 P(ILF,4)=0D0
47801 110 CONTINUE
47802 DO 160 I=N+1,N+NP
47803 IF(ILD.EQ.2) P(I,4)=SQRT(P(I,1)**2+P(I,2)**2)
47804 DO 130 ILF=N+NP+MSTU(44)+3,N+NP+4,-1
47805 IF(P(I,4).LE.P(ILF,4)) GOTO 140
47806 DO 120 J=1,5
47807 P(ILF+1,J)=P(ILF,J)
47808 120 CONTINUE
47809 130 CONTINUE
47810 ILF=N+NP+3
47811 140 DO 150 J=1,5
47812 P(ILF+1,J)=P(I,J)
47813 150 CONTINUE
47814 160 CONTINUE
47815
47816
47817 DO 170 ILG=N+NP+MSTU(44)+5,N+NP+MSTU(44)+15
47818 P(ILG,4)=0D0
47819 170 CONTINUE
47820 NC=2**(MIN(MSTU(44),NP)-1)
47821 DO 250 ILC=1,NC
47822 DO 180 J=1,3
47823 TDI(J)=0D0
47824 180 CONTINUE
47825 DO 200 ILF=1,MIN(MSTU(44),NP)
47826 SGN=P(N+NP+ILF+3,5)
47827 IF(2**ILF*((ILC+2**(ILF-1)-1)/2**ILF).GE.ILC) SGN=-SGN
47828 DO 190 J=1,4-ILD
47829 TDI(J)=TDI(J)+SGN*P(N+NP+ILF+3,J)
47830 190 CONTINUE
47831 200 CONTINUE
47832 TDS=TDI(1)**2+TDI(2)**2+TDI(3)**2
47833 DO 220 ILG=N+NP+MSTU(44)+MIN(ILC,10)+4,N+NP+MSTU(44)+5,-1
47834 IF(TDS.LE.P(ILG,4)) GOTO 230
47835 DO 210 J=1,4
47836 P(ILG+1,J)=P(ILG,J)
47837 210 CONTINUE
47838 220 CONTINUE
47839 ILG=N+NP+MSTU(44)+4
47840 230 DO 240 J=1,3
47841 P(ILG+1,J)=TDI(J)
47842 240 CONTINUE
47843 P(ILG+1,4)=TDS
47844 250 CONTINUE
47845
47846
47847 P(N+NP+ILD,4)=0D0
47848 ILG=0
47849 260 ILG=ILG+1
47850 THP=0D0
47851 270 THPS=THP
47852 DO 280 J=1,3
47853 IF(THP.LE.1D-10) TDI(J)=P(N+NP+MSTU(44)+4+ILG,J)
47854 IF(THP.GT.1D-10) TDI(J)=TPR(J)
47855 TPR(J)=0D0
47856 280 CONTINUE
47857 DO 300 I=N+1,N+NP
47858 SGN=SIGN(P(I,5),TDI(1)*P(I,1)+TDI(2)*P(I,2)+TDI(3)*P(I,3))
47859 DO 290 J=1,4-ILD
47860 TPR(J)=TPR(J)+SGN*P(I,J)
47861 290 CONTINUE
47862 300 CONTINUE
47863 THP=SQRT(TPR(1)**2+TPR(2)**2+TPR(3)**2)/PS
47864 IF(THP.GE.THPS+PARU(48)) GOTO 270
47865
47866
47867 IF(THP.LT.P(N+NP+ILD,4)-PARU(48).AND.ILG.LT.MIN(10,NC)) GOTO 260
47868 IF(THP.GT.P(N+NP+ILD,4)+PARU(48)) THEN
47869 IAGR=0
47870 SGN=(-1D0)**INT(PYR(0)+0.5D0)
47871 DO 310 J=1,3
47872 P(N+NP+ILD,J)=SGN*TPR(J)/(PS*THP)
47873 310 CONTINUE
47874 P(N+NP+ILD,4)=THP
47875 P(N+NP+ILD,5)=0D0
47876 ENDIF
47877 IAGR=IAGR+1
47878 IF(IAGR.LT.MSTU(45).AND.ILG.LT.MIN(10,NC)) GOTO 260
47879 320 CONTINUE
47880
47881
47882 SGN=(-1D0)**INT(PYR(0)+0.5D0)
47883 P(N+NP+3,1)=-SGN*P(N+NP+2,2)
47884 P(N+NP+3,2)=SGN*P(N+NP+2,1)
47885 P(N+NP+3,3)=0D0
47886 THP=0D0
47887 DO 330 I=N+1,N+NP
47888 THP=THP+P(I,5)*ABS(P(N+NP+3,1)*P(I,1)+P(N+NP+3,2)*P(I,2))
47889 330 CONTINUE
47890 P(N+NP+3,4)=THP/PS
47891 P(N+NP+3,5)=0D0
47892
47893
47894 DO 350 ILD=1,3
47895 K(N+ILD,1)=31
47896 K(N+ILD,2)=96
47897 K(N+ILD,3)=ILD
47898 K(N+ILD,4)=0
47899 K(N+ILD,5)=0
47900 DO 340 J=1,5
47901 P(N+ILD,J)=P(N+NP+ILD,J)
47902 V(N+ILD,J)=0D0
47903 340 CONTINUE
47904 350 CONTINUE
47905 CALL PYROBO(N+1,N+3,THE,PHI,0D0,0D0,0D0)
47906
47907
47908 THR=P(N+1,4)
47909 OBL=P(N+2,4)-P(N+3,4)
47910 MSTU(61)=N+1
47911 MSTU(62)=NP
47912 IF(MSTU(43).LE.1) MSTU(3)=3
47913 IF(MSTU(43).GE.2) N=N+3
47914
47915 RETURN
47916 END
47917
47918
47919
47920
47921
47922
47923 SUBROUTINE PYCLUS(NJET)
47924
47925
47926 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
47927 IMPLICIT INTEGER(I-N)
47928 INTEGER PYK,PYCHGE,PYCOMP
47929
47930 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
47931 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
47932 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
47933 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
47934
47935 DIMENSION PS(5)
47936 SAVE NSAV,NP,PS,PSS,RINIT,NPRE,NREM
47937
47938
47939 R2T(I1,I2)=(P(I1,5)*P(I2,5)-P(I1,1)*P(I2,1)-P(I1,2)*P(I2,2)-
47940 &P(I1,3)*P(I2,3))*2D0*P(I1,5)*P(I2,5)/(0.0001D0+P(I1,5)+P(I2,5))**2
47941 R2M(I1,I2)=2D0*P(I1,4)*P(I2,4)*(1D0-(P(I1,1)*P(I2,1)+P(I1,2)*
47942 &P(I2,2)+P(I1,3)*P(I2,3))/(P(I1,5)*P(I2,5)))
47943 R2D(I1,I2)=2D0*MIN(P(I1,4),P(I2,4))**2*(1D0-(P(I1,1)*P(I2,1)+
47944 &P(I1,2)*P(I2,2)+P(I1,3)*P(I2,3))/(P(I1,5)*P(I2,5)))
47945
47946
47947 IF(MSTU(48).LE.0) THEN
47948 NP=0
47949 DO 100 J=1,5
47950 PS(J)=0D0
47951 100 CONTINUE
47952 PSS=0D0
47953 PIMASS=PMAS(PYCOMP(211),1)
47954 ELSE
47955 NJET=NSAV
47956 IF(MSTU(43).GE.2) N=N-NJET
47957 DO 110 I=N+1,N+NJET
47958 P(I,5)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2)
47959 110 CONTINUE
47960 IF(MSTU(46).LE.3.OR.MSTU(46).EQ.5) THEN
47961 R2ACC=PARU(44)**2
47962 ELSE
47963 R2ACC=PARU(45)*PS(5)**2
47964 ENDIF
47965 NLOOP=0
47966 GOTO 300
47967 ENDIF
47968
47969
47970 DO 140 I=1,N
47971 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 140
47972 IF(MSTU(41).GE.2) THEN
47973 KC=PYCOMP(K(I,2))
47974 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
47975 & KC.EQ.18) GOTO 140
47976 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.PYCHGE(K(I,2)).EQ.0)
47977 & GOTO 140
47978 ENDIF
47979 IF(N+2*NP.GE.MSTU(4)-MSTU(32)-5) THEN
47980 CALL PYERRM(11,'(PYCLUS:) no more memory left in PYJETS')
47981 NJET=-1
47982 RETURN
47983 ENDIF
47984
47985
47986 NP=NP+1
47987 K(N+NP,3)=I
47988 DO 120 J=1,5
47989 P(N+NP,J)=P(I,J)
47990 120 CONTINUE
47991 IF(MSTU(42).EQ.0) P(N+NP,5)=0D0
47992 IF(MSTU(42).EQ.1.AND.K(I,2).NE.22) P(N+NP,5)=PIMASS
47993 P(N+NP,4)=SQRT(P(N+NP,5)**2+P(I,1)**2+P(I,2)**2+P(I,3)**2)
47994 P(N+NP,5)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2)
47995 DO 130 J=1,4
47996 PS(J)=PS(J)+P(N+NP,J)
47997 130 CONTINUE
47998 PSS=PSS+P(N+NP,5)
47999 140 CONTINUE
48000 DO 160 I=N+1,N+NP
48001 K(I+NP,3)=K(I,3)
48002 DO 150 J=1,5
48003 P(I+NP,J)=P(I,J)
48004 150 CONTINUE
48005 160 CONTINUE
48006 PS(5)=SQRT(MAX(0D0,PS(4)**2-PS(1)**2-PS(2)**2-PS(3)**2))
48007
48008
48009 IF(NP.LT.MSTU(47)) THEN
48010 CALL PYERRM(8,'(PYCLUS:) too few particles for analysis')
48011 NJET=-1
48012 RETURN
48013 ENDIF
48014
48015
48016 NLOOP=0
48017 IF(MSTU(46).LE.3.OR.MSTU(46).EQ.5) THEN
48018 R2ACC=PARU(44)**2
48019 ELSE
48020 R2ACC=PARU(45)*PS(5)**2
48021 ENDIF
48022 RINIT=1.25D0*PARU(43)
48023 IF(NP.LE.MSTU(47)+2) RINIT=0D0
48024 170 RINIT=0.8D0*RINIT
48025 NPRE=0
48026 NREM=NP
48027 DO 180 I=N+NP+1,N+2*NP
48028 K(I,4)=0
48029 180 CONTINUE
48030
48031
48032 IF(MSTU(46).LE.2) THEN
48033 DO 190 J=1,4
48034 P(N+1,J)=0D0
48035 190 CONTINUE
48036 DO 210 I=N+NP+1,N+2*NP
48037 IF(P(I,5).GT.2D0*RINIT) GOTO 210
48038 NREM=NREM-1
48039 K(I,4)=1
48040 DO 200 J=1,4
48041 P(N+1,J)=P(N+1,J)+P(I,J)
48042 200 CONTINUE
48043 210 CONTINUE
48044 P(N+1,5)=SQRT(P(N+1,1)**2+P(N+1,2)**2+P(N+1,3)**2)
48045 IF(P(N+1,5).GT.2D0*RINIT) NPRE=1
48046 IF(RINIT.GE.0.2D0*PARU(43).AND.NPRE+NREM.LT.MSTU(47)) GOTO 170
48047 IF(NREM.EQ.0) GOTO 170
48048 ENDIF
48049
48050
48051 220 NPRE=NPRE+1
48052 PMAX=0D0
48053 DO 230 I=N+NP+1,N+2*NP
48054 IF(K(I,4).NE.0.OR.P(I,5).LE.PMAX) GOTO 230
48055 IMAX=I
48056 PMAX=P(I,5)
48057 230 CONTINUE
48058 DO 240 J=1,5
48059 P(N+NPRE,J)=P(IMAX,J)
48060 240 CONTINUE
48061 NREM=NREM-1
48062 K(IMAX,4)=NPRE
48063
48064
48065 IF(MSTU(46).LE.2) THEN
48066 DO 260 I=N+NP+1,N+2*NP
48067 IF(K(I,4).NE.0) GOTO 260
48068 R2=R2T(I,IMAX)
48069 IF(R2.GT.RINIT**2) GOTO 260
48070 NREM=NREM-1
48071 K(I,4)=NPRE
48072 DO 250 J=1,4
48073 P(N+NPRE,J)=P(N+NPRE,J)+P(I,J)
48074 250 CONTINUE
48075 260 CONTINUE
48076 P(N+NPRE,5)=SQRT(P(N+NPRE,1)**2+P(N+NPRE,2)**2+P(N+NPRE,3)**2)
48077
48078
48079
48080 ELSE
48081 270 IMIN=0
48082 R2MIN=RINIT**2
48083 DO 280 I=N+NP+1,N+2*NP
48084 IF(K(I,4).NE.0) GOTO 280
48085 IF(MSTU(46).LE.4) THEN
48086 R2=R2M(I,N+NPRE)
48087 ELSE
48088 R2=R2D(I,N+NPRE)
48089 ENDIF
48090 IF(R2.GE.R2MIN) GOTO 280
48091 IMIN=I
48092 R2MIN=R2
48093 280 CONTINUE
48094 IF(IMIN.NE.0) THEN
48095 DO 290 J=1,4
48096 P(N+NPRE,J)=P(N+NPRE,J)+P(IMIN,J)
48097 290 CONTINUE
48098 P(N+NPRE,5)=SQRT(P(N+NPRE,1)**2+P(N+NPRE,2)**2+P(N+NPRE,3)**2)
48099 NREM=NREM-1
48100 K(IMIN,4)=NPRE
48101 GOTO 270
48102 ENDIF
48103 ENDIF
48104
48105
48106 IF(RINIT.GE.0.2D0*PARU(43).AND.NPRE+NREM.LT.MSTU(47)) GOTO 170
48107 IF(NREM.GT.0) GOTO 220
48108 NJET=NPRE
48109
48110
48111 300 TSAV=0D0
48112 PSJT=0D0
48113 310 IF(MSTU(46).LE.1) THEN
48114 DO 330 I=N+1,N+NJET
48115 DO 320 J=1,4
48116 V(I,J)=0D0
48117 320 CONTINUE
48118 330 CONTINUE
48119 DO 360 I=N+NP+1,N+2*NP
48120 R2MIN=PSS**2
48121 DO 340 IJET=N+1,N+NJET
48122 IF(P(IJET,5).LT.RINIT) GOTO 340
48123 R2=R2T(I,IJET)
48124 IF(R2.GE.R2MIN) GOTO 340
48125 IMIN=IJET
48126 R2MIN=R2
48127 340 CONTINUE
48128 K(I,4)=IMIN-N
48129 DO 350 J=1,4
48130 V(IMIN,J)=V(IMIN,J)+P(I,J)
48131 350 CONTINUE
48132 360 CONTINUE
48133 PSJT=0D0
48134 DO 380 I=N+1,N+NJET
48135 DO 370 J=1,4
48136 P(I,J)=V(I,J)
48137 370 CONTINUE
48138 P(I,5)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2)
48139 PSJT=PSJT+P(I,5)
48140 380 CONTINUE
48141 ENDIF
48142
48143
48144 R2MIN=2D0*MAX(R2ACC,PS(5)**2)
48145 DO 400 ITRY1=N+1,N+NJET-1
48146 DO 390 ITRY2=ITRY1+1,N+NJET
48147 IF(MSTU(46).LE.2) THEN
48148 R2=R2T(ITRY1,ITRY2)
48149 ELSEIF(MSTU(46).LE.4) THEN
48150 R2=R2M(ITRY1,ITRY2)
48151 ELSE
48152 R2=R2D(ITRY1,ITRY2)
48153 ENDIF
48154 IF(R2.GE.R2MIN) GOTO 390
48155 IMIN1=ITRY1
48156 IMIN2=ITRY2
48157 R2MIN=R2
48158 390 CONTINUE
48159 400 CONTINUE
48160
48161
48162 IF(NJET.GT.MSTU(47).AND.R2MIN.LT.R2ACC) THEN
48163 IREC=MIN(IMIN1,IMIN2)
48164 IDEL=MAX(IMIN1,IMIN2)
48165 DO 410 J=1,4
48166 P(IREC,J)=P(IMIN1,J)+P(IMIN2,J)
48167 410 CONTINUE
48168 P(IREC,5)=SQRT(P(IREC,1)**2+P(IREC,2)**2+P(IREC,3)**2)
48169 DO 430 I=IDEL+1,N+NJET
48170 DO 420 J=1,5
48171 P(I-1,J)=P(I,J)
48172 420 CONTINUE
48173 430 CONTINUE
48174 IF(MSTU(46).GE.2) THEN
48175 DO 440 I=N+NP+1,N+2*NP
48176 IORI=N+K(I,4)
48177 IF(IORI.EQ.IDEL) K(I,4)=IREC-N
48178 IF(IORI.GT.IDEL) K(I,4)=K(I,4)-1
48179 440 CONTINUE
48180 ENDIF
48181 NJET=NJET-1
48182 GOTO 300
48183
48184
48185 ELSEIF(NJET.EQ.MSTU(47).AND.MSTU(46).LE.1.AND.NLOOP.LE.2) THEN
48186 DO 450 I=N+1,N+NJET
48187 K(I,5)=0
48188 450 CONTINUE
48189 DO 460 I=N+NP+1,N+2*NP
48190 K(N+K(I,4),5)=K(N+K(I,4),5)+1
48191 460 CONTINUE
48192 IEMP=0
48193 DO 470 I=N+1,N+NJET
48194 IF(K(I,5).EQ.0) IEMP=I
48195 470 CONTINUE
48196 IF(IEMP.NE.0) THEN
48197 NLOOP=NLOOP+1
48198 ISPL=0
48199 R2MAX=0D0
48200 DO 480 I=N+NP+1,N+2*NP
48201 IF(K(N+K(I,4),5).LE.1.OR.P(I,5).LT.RINIT) GOTO 480
48202 IJET=N+K(I,4)
48203 R2=R2T(I,IJET)
48204 IF(R2.LE.R2MAX) GOTO 480
48205 ISPL=I
48206 R2MAX=R2
48207 480 CONTINUE
48208 IF(ISPL.NE.0) THEN
48209 IJET=N+K(ISPL,4)
48210 DO 490 J=1,4
48211 P(IEMP,J)=P(ISPL,J)
48212 P(IJET,J)=P(IJET,J)-P(ISPL,J)
48213 490 CONTINUE
48214 P(IEMP,5)=P(ISPL,5)
48215 P(IJET,5)=SQRT(P(IJET,1)**2+P(IJET,2)**2+P(IJET,3)**2)
48216 IF(NLOOP.LE.2) GOTO 300
48217 ENDIF
48218 ENDIF
48219 ENDIF
48220
48221
48222 IF(MSTU(46).LE.1.AND.NLOOP.LE.2.AND.PSJT/PSS.GT.TSAV+PARU(48))
48223 &THEN
48224 TSAV=PSJT/PSS
48225 GOTO 310
48226 ENDIF
48227
48228
48229 DO 510 I=N+1,N+NJET
48230 DO 500 J=1,5
48231 V(I,J)=P(I,J)
48232 500 CONTINUE
48233 510 CONTINUE
48234 DO 540 INEW=N+1,N+NJET
48235 PEMAX=0D0
48236 DO 520 ITRY=N+1,N+NJET
48237 IF(V(ITRY,4).LE.PEMAX) GOTO 520
48238 IMAX=ITRY
48239 PEMAX=V(ITRY,4)
48240 520 CONTINUE
48241 K(INEW,1)=31
48242 K(INEW,2)=97
48243 K(INEW,3)=INEW-N
48244 K(INEW,4)=0
48245 DO 530 J=1,5
48246 P(INEW,J)=V(IMAX,J)
48247 530 CONTINUE
48248 V(IMAX,4)=-1D0
48249 K(IMAX,5)=INEW
48250 540 CONTINUE
48251
48252
48253 DO 550 I=N+NP+1,N+2*NP
48254 IORI=K(N+K(I,4),5)
48255 K(I,4)=IORI-N
48256 IF(K(K(I,3),1).NE.3) K(K(I,3),4)=IORI-N
48257 K(IORI,4)=K(IORI,4)+1
48258 550 CONTINUE
48259 IEMP=0
48260 PSJT=0D0
48261 DO 570 I=N+1,N+NJET
48262 K(I,5)=0
48263 PSJT=PSJT+P(I,5)
48264 P(I,5)=SQRT(MAX(P(I,4)**2-P(I,5)**2,0D0))
48265 DO 560 J=1,5
48266 V(I,J)=0D0
48267 560 CONTINUE
48268 IF(K(I,4).EQ.0) IEMP=I
48269 570 CONTINUE
48270
48271
48272 MSTU(61)=N+1
48273 MSTU(62)=NP
48274 MSTU(63)=NPRE
48275 PARU(61)=PS(5)
48276 PARU(62)=PSJT/PSS
48277 PARU(63)=SQRT(R2MIN)
48278 IF(NJET.LE.1) PARU(63)=0D0
48279 IF(IEMP.NE.0) THEN
48280 CALL PYERRM(8,'(PYCLUS:) failed to reconstruct as requested')
48281 NJET=-1
48282 RETURN
48283 ENDIF
48284 IF(MSTU(43).LE.1) MSTU(3)=MAX(0,NJET)
48285 IF(MSTU(43).GE.2) N=N+MAX(0,NJET)
48286 NSAV=NJET
48287
48288 RETURN
48289 END
48290
48291
48292
48293
48294
48295
48296
48297 SUBROUTINE PYCELL(NJET)
48298
48299
48300 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
48301 IMPLICIT INTEGER(I-N)
48302 INTEGER PYK,PYCHGE,PYCOMP
48303
48304 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
48305 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
48306 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
48307 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
48308
48309
48310 PTLRAT=1D0/SINH(PARU(51))**2
48311 NP=0
48312 NC=N
48313 DO 110 I=1,N
48314 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 110
48315 IF(P(I,1)**2+P(I,2)**2.LE.PTLRAT*P(I,3)**2) GOTO 110
48316 IF(MSTU(41).GE.2) THEN
48317 KC=PYCOMP(K(I,2))
48318 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
48319 & KC.EQ.18) GOTO 110
48320 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.PYCHGE(K(I,2)).EQ.0)
48321 & GOTO 110
48322 ENDIF
48323 NP=NP+1
48324 PT=SQRT(P(I,1)**2+P(I,2)**2)
48325 ETA=SIGN(LOG((SQRT(PT**2+P(I,3)**2)+ABS(P(I,3)))/PT),P(I,3))
48326 IETA=MAX(1,MIN(MSTU(51),1+INT(MSTU(51)*0.5D0*
48327 & (ETA/PARU(51)+1D0))))
48328 PHI=PYANGL(P(I,1),P(I,2))
48329 IPHI=MAX(1,MIN(MSTU(52),1+INT(MSTU(52)*0.5D0*
48330 & (PHI/PARU(1)+1D0))))
48331 IETPH=MSTU(52)*IETA+IPHI
48332
48333
48334 DO 100 IC=N+1,NC
48335 IF(IETPH.EQ.K(IC,3)) THEN
48336 K(IC,4)=K(IC,4)+1
48337 P(IC,5)=P(IC,5)+PT
48338 GOTO 110
48339 ENDIF
48340 100 CONTINUE
48341 IF(NC.GE.MSTU(4)-MSTU(32)-5) THEN
48342 CALL PYERRM(11,'(PYCELL:) no more memory left in PYJETS')
48343 NJET=-2
48344 RETURN
48345 ENDIF
48346 NC=NC+1
48347 K(NC,3)=IETPH
48348 K(NC,4)=1
48349 K(NC,5)=2
48350 P(NC,1)=(PARU(51)/MSTU(51))*(2*IETA-1-MSTU(51))
48351 P(NC,2)=(PARU(1)/MSTU(52))*(2*IPHI-1-MSTU(52))
48352 P(NC,5)=PT
48353 110 CONTINUE
48354
48355
48356 IF(MSTU(53).GE.1) THEN
48357 DO 130 IC=N+1,NC
48358 PEI=P(IC,5)
48359 IF(MSTU(53).EQ.2) PEI=P(IC,5)*COSH(P(IC,1))
48360 120 PEF=PEI+PARU(55)*SQRT(-2D0*LOG(MAX(1D-10,PYR(0)))*PEI)*
48361 & COS(PARU(2)*PYR(0))
48362 IF(PEF.LT.0D0.OR.PEF.GT.PARU(56)*PEI) GOTO 120
48363 P(IC,5)=PEF
48364 IF(MSTU(53).EQ.2) P(IC,5)=PEF/COSH(P(IC,1))
48365 130 CONTINUE
48366 ENDIF
48367
48368
48369 IF(PARU(58).GT.0D0) THEN
48370 NCC=NC
48371 NC=N
48372 DO 140 IC=N+1,NCC
48373 IF(P(IC,5).GT.PARU(58)) THEN
48374 NC=NC+1
48375 K(NC,3)=K(IC,3)
48376 K(NC,4)=K(IC,4)
48377 K(NC,5)=K(IC,5)
48378 P(NC,1)=P(IC,1)
48379 P(NC,2)=P(IC,2)
48380 P(NC,5)=P(IC,5)
48381 ENDIF
48382 140 CONTINUE
48383 ENDIF
48384
48385
48386 NJ=NC
48387 150 ETMAX=0D0
48388 DO 160 IC=N+1,NC
48389 IF(K(IC,5).NE.2) GOTO 160
48390 IF(P(IC,5).LE.ETMAX) GOTO 160
48391 ICMAX=IC
48392 ETA=P(IC,1)
48393 PHI=P(IC,2)
48394 ETMAX=P(IC,5)
48395 160 CONTINUE
48396 IF(ETMAX.LT.PARU(52)) GOTO 220
48397 IF(NJ.GE.MSTU(4)-MSTU(32)-5) THEN
48398 CALL PYERRM(11,'(PYCELL:) no more memory left in PYJETS')
48399 NJET=-2
48400 RETURN
48401 ENDIF
48402 K(ICMAX,5)=1
48403 NJ=NJ+1
48404 K(NJ,4)=0
48405 K(NJ,5)=1
48406 P(NJ,1)=ETA
48407 P(NJ,2)=PHI
48408 P(NJ,3)=0D0
48409 P(NJ,4)=0D0
48410 P(NJ,5)=0D0
48411
48412
48413 DO 170 IC=N+1,NC
48414 IF(K(IC,5).EQ.0) GOTO 170
48415 IF(ABS(P(IC,1)-ETA).GT.PARU(54)) GOTO 170
48416 DPHIA=ABS(P(IC,2)-PHI)
48417 IF(DPHIA.GT.PARU(54).AND.DPHIA.LT.PARU(2)-PARU(54)) GOTO 170
48418 PHIC=P(IC,2)
48419 IF(DPHIA.GT.PARU(1)) PHIC=PHIC+SIGN(PARU(2),PHI)
48420 IF((P(IC,1)-ETA)**2+(PHIC-PHI)**2.GT.PARU(54)**2) GOTO 170
48421 K(IC,5)=-K(IC,5)
48422 K(NJ,4)=K(NJ,4)+K(IC,4)
48423 P(NJ,3)=P(NJ,3)+P(IC,5)*P(IC,1)
48424 P(NJ,4)=P(NJ,4)+P(IC,5)*PHIC
48425 P(NJ,5)=P(NJ,5)+P(IC,5)
48426 170 CONTINUE
48427
48428
48429 IF(P(NJ,5).LT.PARU(53)) THEN
48430 NJ=NJ-1
48431 DO 180 IC=N+1,NC
48432 IF(K(IC,5).LT.0) K(IC,5)=-K(IC,5)
48433 180 CONTINUE
48434 ELSEIF(MSTU(54).LE.2) THEN
48435 P(NJ,3)=P(NJ,3)/P(NJ,5)
48436 P(NJ,4)=P(NJ,4)/P(NJ,5)
48437 IF(ABS(P(NJ,4)).GT.PARU(1)) P(NJ,4)=P(NJ,4)-SIGN(PARU(2),
48438 & P(NJ,4))
48439 DO 190 IC=N+1,NC
48440 IF(K(IC,5).LT.0) K(IC,5)=0
48441 190 CONTINUE
48442 ELSE
48443 DO 200 J=1,4
48444 P(NJ,J)=0D0
48445 200 CONTINUE
48446 DO 210 IC=N+1,NC
48447 IF(K(IC,5).GE.0) GOTO 210
48448 P(NJ,1)=P(NJ,1)+P(IC,5)*COS(P(IC,2))
48449 P(NJ,2)=P(NJ,2)+P(IC,5)*SIN(P(IC,2))
48450 P(NJ,3)=P(NJ,3)+P(IC,5)*SINH(P(IC,1))
48451 P(NJ,4)=P(NJ,4)+P(IC,5)*COSH(P(IC,1))
48452 K(IC,5)=0
48453 210 CONTINUE
48454 ENDIF
48455 GOTO 150
48456
48457
48458 220 DO 250 I=1,NJ-NC
48459 ETMAX=0D0
48460 DO 230 IJ=NC+1,NJ
48461 IF(K(IJ,5).EQ.0) GOTO 230
48462 IF(P(IJ,5).LT.ETMAX) GOTO 230
48463 IJMAX=IJ
48464 ETMAX=P(IJ,5)
48465 230 CONTINUE
48466 K(IJMAX,5)=0
48467 K(N+I,1)=31
48468 K(N+I,2)=98
48469 K(N+I,3)=I
48470 K(N+I,4)=K(IJMAX,4)
48471 K(N+I,5)=0
48472 DO 240 J=1,5
48473 P(N+I,J)=P(IJMAX,J)
48474 V(N+I,J)=0D0
48475 240 CONTINUE
48476 250 CONTINUE
48477 NJET=NJ-NC
48478
48479
48480 IF(MSTU(54).EQ.2) THEN
48481 DO 260 I=N+1,N+NJET
48482 ETA=P(I,3)
48483 P(I,1)=P(I,5)*COS(P(I,4))
48484 P(I,2)=P(I,5)*SIN(P(I,4))
48485 P(I,3)=P(I,5)*SINH(ETA)
48486 P(I,4)=P(I,5)*COSH(ETA)
48487 P(I,5)=0D0
48488 260 CONTINUE
48489 ELSEIF(MSTU(54).GE.3) THEN
48490 DO 270 I=N+1,N+NJET
48491 P(I,5)=SQRT(MAX(0D0,P(I,4)**2-P(I,1)**2-P(I,2)**2-P(I,3)**2))
48492 270 CONTINUE
48493 ENDIF
48494
48495
48496 MSTU(61)=N+1
48497 MSTU(62)=NP
48498 MSTU(63)=NC-N
48499 IF(MSTU(43).LE.1) MSTU(3)=MAX(0,NJET)
48500 IF(MSTU(43).GE.2) N=N+MAX(0,NJET)
48501
48502 RETURN
48503 END
48504
48505
48506
48507
48508
48509
48510
48511 SUBROUTINE PYJMAS(PMH,PML)
48512
48513
48514 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
48515 IMPLICIT INTEGER(I-N)
48516 INTEGER PYK,PYCHGE,PYCOMP
48517
48518 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
48519 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
48520 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
48521 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
48522
48523 DIMENSION SM(3,3),SAX(3),PS(3,5)
48524
48525
48526 NP=0
48527 DO 120 J1=1,3
48528 DO 100 J2=J1,3
48529 SM(J1,J2)=0D0
48530 100 CONTINUE
48531 DO 110 J2=1,4
48532 PS(J1,J2)=0D0
48533 110 CONTINUE
48534 120 CONTINUE
48535 PSS=0D0
48536 PIMASS=PMAS(PYCOMP(211),1)
48537
48538
48539 DO 170 I=1,N
48540 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 170
48541 IF(MSTU(41).GE.2) THEN
48542 KC=PYCOMP(K(I,2))
48543 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
48544 & KC.EQ.18) GOTO 170
48545 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.PYCHGE(K(I,2)).EQ.0)
48546 & GOTO 170
48547 ENDIF
48548 IF(N+NP+1.GE.MSTU(4)-MSTU(32)-5) THEN
48549 CALL PYERRM(11,'(PYJMAS:) no more memory left in PYJETS')
48550 PMH=-2D0
48551 PML=-2D0
48552 RETURN
48553 ENDIF
48554 NP=NP+1
48555 DO 130 J=1,5
48556 P(N+NP,J)=P(I,J)
48557 130 CONTINUE
48558 IF(MSTU(42).EQ.0) P(N+NP,5)=0D0
48559 IF(MSTU(42).EQ.1.AND.K(I,2).NE.22) P(N+NP,5)=PIMASS
48560 P(N+NP,4)=SQRT(P(N+NP,5)**2+P(I,1)**2+P(I,2)**2+P(I,3)**2)
48561
48562
48563 DO 150 J1=1,3
48564 DO 140 J2=J1,3
48565 SM(J1,J2)=SM(J1,J2)+P(I,J1)*P(I,J2)
48566 140 CONTINUE
48567 150 CONTINUE
48568 PSS=PSS+(P(I,1)**2+P(I,2)**2+P(I,3)**2)
48569 DO 160 J=1,4
48570 PS(3,J)=PS(3,J)+P(N+NP,J)
48571 160 CONTINUE
48572 170 CONTINUE
48573
48574
48575 IF(NP.LE.1) THEN
48576 CALL PYERRM(8,'(PYJMAS:) too few particles for analysis')
48577 PMH=-1D0
48578 PML=-1D0
48579 RETURN
48580 ENDIF
48581 PARU(61)=SQRT(MAX(0D0,PS(3,4)**2-PS(3,1)**2-PS(3,2)**2-
48582 &PS(3,3)**2))
48583
48584
48585 DO 190 J1=1,3
48586 DO 180 J2=J1,3
48587 SM(J1,J2)=SM(J1,J2)/PSS
48588 180 CONTINUE
48589 190 CONTINUE
48590 SQ=(SM(1,1)*SM(2,2)+SM(1,1)*SM(3,3)+SM(2,2)*SM(3,3)-
48591 &SM(1,2)**2-SM(1,3)**2-SM(2,3)**2)/3D0-1D0/9D0
48592 SR=-0.5D0*(SQ+1D0/9D0+SM(1,1)*SM(2,3)**2+SM(2,2)*SM(1,3)**2+
48593 &SM(3,3)*SM(1,2)**2-SM(1,1)*SM(2,2)*SM(3,3))+
48594 &SM(1,2)*SM(1,3)*SM(2,3)+1D0/27D0
48595 SP=COS(ACOS(MAX(MIN(SR/SQRT(-SQ**3),1D0),-1D0))/3D0)
48596 SMA=1D0/3D0+SQRT(-SQ)*MAX(2D0*SP,SQRT(3D0*(1D0-SP**2))-SP)
48597
48598
48599 DO 210 J1=1,3
48600 SM(J1,J1)=SM(J1,J1)-SMA
48601 DO 200 J2=J1+1,3
48602 SM(J2,J1)=SM(J1,J2)
48603 200 CONTINUE
48604 210 CONTINUE
48605 SMAX=0D0
48606 DO 230 J1=1,3
48607 DO 220 J2=1,3
48608 IF(ABS(SM(J1,J2)).LE.SMAX) GOTO 220
48609 JA=J1
48610 JB=J2
48611 SMAX=ABS(SM(J1,J2))
48612 220 CONTINUE
48613 230 CONTINUE
48614 SMAX=0D0
48615 DO 250 J3=JA+1,JA+2
48616 J1=J3-3*((J3-1)/3)
48617 RL=SM(J1,JB)/SM(JA,JB)
48618 DO 240 J2=1,3
48619 SM(J1,J2)=SM(J1,J2)-RL*SM(JA,J2)
48620 IF(ABS(SM(J1,J2)).LE.SMAX) GOTO 240
48621 JC=J1
48622 SMAX=ABS(SM(J1,J2))
48623 240 CONTINUE
48624 250 CONTINUE
48625 JB1=JB+1-3*(JB/3)
48626 JB2=JB+2-3*((JB+1)/3)
48627 SAX(JB1)=-SM(JC,JB2)
48628 SAX(JB2)=SM(JC,JB1)
48629 SAX(JB)=-(SM(JA,JB1)*SAX(JB1)+SM(JA,JB2)*SAX(JB2))/SM(JA,JB)
48630
48631
48632 DO 270 I=N+1,N+NP
48633 PSAX=P(I,1)*SAX(1)+P(I,2)*SAX(2)+P(I,3)*SAX(3)
48634 IS=1
48635 IF(PSAX.LT.0D0) IS=2
48636 K(I,3)=IS
48637 DO 260 J=1,4
48638 PS(IS,J)=PS(IS,J)+P(I,J)
48639 260 CONTINUE
48640 270 CONTINUE
48641 PMS=MAX(1D-10,PS(1,4)**2-PS(1,1)**2-PS(1,2)**2-PS(1,3)**2)+
48642 &MAX(1D-10,PS(2,4)**2-PS(2,1)**2-PS(2,2)**2-PS(2,3)**2)
48643
48644
48645 280 PMD=0D0
48646 IM=0
48647 DO 290 J=1,4
48648 PS(3,J)=PS(1,J)-PS(2,J)
48649 290 CONTINUE
48650 DO 300 I=N+1,N+NP
48651 PPS=P(I,4)*PS(3,4)-P(I,1)*PS(3,1)-P(I,2)*PS(3,2)-P(I,3)*PS(3,3)
48652 IF(K(I,3).EQ.1) PMDI=2D0*(P(I,5)**2-PPS)
48653 IF(K(I,3).EQ.2) PMDI=2D0*(P(I,5)**2+PPS)
48654 IF(PMDI.LT.PMD) THEN
48655 PMD=PMDI
48656 IM=I
48657 ENDIF
48658 300 CONTINUE
48659
48660
48661 IF(PMD.LT.-PARU(48)*PMS) THEN
48662 PMS=PMS+PMD
48663 IS=K(IM,3)
48664 DO 310 J=1,4
48665 PS(IS,J)=PS(IS,J)-P(IM,J)
48666 PS(3-IS,J)=PS(3-IS,J)+P(IM,J)
48667 310 CONTINUE
48668 K(IM,3)=3-IS
48669 GOTO 280
48670 ENDIF
48671
48672
48673 MSTU(61)=N+1
48674 MSTU(62)=NP
48675 PS(1,5)=SQRT(MAX(0D0,PS(1,4)**2-PS(1,1)**2-PS(1,2)**2-PS(1,3)**2))
48676 PS(2,5)=SQRT(MAX(0D0,PS(2,4)**2-PS(2,1)**2-PS(2,2)**2-PS(2,3)**2))
48677 PMH=MAX(PS(1,5),PS(2,5))
48678 PML=MIN(PS(1,5),PS(2,5))
48679
48680 RETURN
48681 END
48682
48683
48684
48685
48686
48687
48688 SUBROUTINE PYFOWO(H10,H20,H30,H40)
48689
48690
48691 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
48692 IMPLICIT INTEGER(I-N)
48693 INTEGER PYK,PYCHGE,PYCOMP
48694
48695 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
48696 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
48697 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
48698 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
48699
48700
48701 NP=0
48702 H0=0D0
48703 HD=0D0
48704 DO 110 I=1,N
48705 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 110
48706 IF(MSTU(41).GE.2) THEN
48707 KC=PYCOMP(K(I,2))
48708 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
48709 & KC.EQ.18) GOTO 110
48710 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.PYCHGE(K(I,2)).EQ.0)
48711 & GOTO 110
48712 ENDIF
48713 IF(N+NP.GE.MSTU(4)-MSTU(32)-5) THEN
48714 CALL PYERRM(11,'(PYFOWO:) no more memory left in PYJETS')
48715 H10=-1D0
48716 H20=-1D0
48717 H30=-1D0
48718 H40=-1D0
48719 RETURN
48720 ENDIF
48721 NP=NP+1
48722 DO 100 J=1,3
48723 P(N+NP,J)=P(I,J)
48724 100 CONTINUE
48725 P(N+NP,4)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2)
48726 H0=H0+P(N+NP,4)
48727 HD=HD+P(N+NP,4)**2
48728 110 CONTINUE
48729 H0=H0**2
48730
48731
48732 IF(NP.LE.1) THEN
48733 CALL PYERRM(8,'(PYFOWO:) too few particles for analysis')
48734 H10=-1D0
48735 H20=-1D0
48736 H30=-1D0
48737 H40=-1D0
48738 RETURN
48739 ENDIF
48740
48741
48742 H10=0D0
48743 H20=0D0
48744 H30=0D0
48745 H40=0D0
48746 DO 130 I1=N+1,N+NP
48747 DO 120 I2=I1+1,N+NP
48748 CTHE=(P(I1,1)*P(I2,1)+P(I1,2)*P(I2,2)+P(I1,3)*P(I2,3))/
48749 & (P(I1,4)*P(I2,4))
48750 H10=H10+P(I1,4)*P(I2,4)*CTHE
48751 H20=H20+P(I1,4)*P(I2,4)*(1.5D0*CTHE**2-0.5D0)
48752 H30=H30+P(I1,4)*P(I2,4)*(2.5D0*CTHE**3-1.5D0*CTHE)
48753 H40=H40+P(I1,4)*P(I2,4)*(4.375D0*CTHE**4-3.75D0*CTHE**2+
48754 & 0.375D0)
48755 120 CONTINUE
48756 130 CONTINUE
48757
48758
48759 MSTU(61)=N+1
48760 MSTU(62)=NP
48761 H10=(HD+2D0*H10)/H0
48762 H20=(HD+2D0*H20)/H0
48763 H30=(HD+2D0*H30)/H0
48764 H40=(HD+2D0*H40)/H0
48765
48766 RETURN
48767 END
48768
48769
48770
48771
48772
48773
48774
48775
48776 SUBROUTINE PYTABU(MTABU)
48777
48778
48779 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
48780 IMPLICIT INTEGER(I-N)
48781 INTEGER PYK,PYCHGE,PYCOMP
48782
48783 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
48784 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
48785 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
48786 COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
48787 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/
48788
48789 DIMENSION KFIS(100,2),NPIS(100,0:10),KFFS(400),NPFS(400,4),
48790 &FEVFM(10,4),FM1FM(3,10,4),FM2FM(3,10,4),FMOMA(4),FMOMS(4),
48791 &FEVEE(50),FE1EC(50),FE2EC(50),FE1EA(25),FE2EA(25),
48792 &KFDM(8),KFDC(200,0:8),NPDC(200)
48793 SAVE NEVIS,NKFIS,KFIS,NPIS,NEVFS,NPRFS,NFIFS,NCHFS,NKFFS,
48794 &KFFS,NPFS,NEVFM,NMUFM,FM1FM,FM2FM,NEVEE,FE1EC,FE2EC,FE1EA,
48795 &FE2EA,NEVDC,NKFDC,NREDC,KFDC,NPDC
48796 CHARACTER CHAU*16,CHIS(2)*12,CHDC(8)*12
48797 DATA NEVIS/0/,NKFIS/0/,NEVFS/0/,NPRFS/0/,NFIFS/0/,NCHFS/0/,
48798 &NKFFS/0/,NEVFM/0/,NMUFM/0/,FM1FM/120*0D0/,FM2FM/120*0D0/,
48799 &NEVEE/0/,FE1EC/50*0D0/,FE2EC/50*0D0/,FE1EA/25*0D0/,FE2EA/25*0D0/,
48800 &NEVDC/0/,NKFDC/0/,NREDC/0/
48801
48802
48803 IF(MTABU.EQ.10) THEN
48804 NEVIS=0
48805 NKFIS=0
48806
48807
48808 ELSEIF(MTABU.EQ.11) THEN
48809 NEVIS=NEVIS+1
48810 KFM1=2*IABS(MSTU(161))
48811 IF(MSTU(161).GT.0) KFM1=KFM1-1
48812 KFM2=2*IABS(MSTU(162))
48813 IF(MSTU(162).GT.0) KFM2=KFM2-1
48814 KFMN=MIN(KFM1,KFM2)
48815 KFMX=MAX(KFM1,KFM2)
48816 DO 100 I=1,NKFIS
48817 IF(KFMN.EQ.KFIS(I,1).AND.KFMX.EQ.KFIS(I,2)) THEN
48818 IKFIS=-I
48819 GOTO 110
48820 ELSEIF(KFMN.LT.KFIS(I,1).OR.(KFMN.EQ.KFIS(I,1).AND.
48821 & KFMX.LT.KFIS(I,2))) THEN
48822 IKFIS=I
48823 GOTO 110
48824 ENDIF
48825 100 CONTINUE
48826 IKFIS=NKFIS+1
48827 110 IF(IKFIS.LT.0) THEN
48828 IKFIS=-IKFIS
48829 ELSE
48830 IF(NKFIS.GE.100) RETURN
48831 DO 130 I=NKFIS,IKFIS,-1
48832 KFIS(I+1,1)=KFIS(I,1)
48833 KFIS(I+1,2)=KFIS(I,2)
48834 DO 120 J=0,10
48835 NPIS(I+1,J)=NPIS(I,J)
48836 120 CONTINUE
48837 130 CONTINUE
48838 NKFIS=NKFIS+1
48839 KFIS(IKFIS,1)=KFMN
48840 KFIS(IKFIS,2)=KFMX
48841 DO 140 J=0,10
48842 NPIS(IKFIS,J)=0
48843 140 CONTINUE
48844 ENDIF
48845 NPIS(IKFIS,0)=NPIS(IKFIS,0)+1
48846
48847
48848 NP=0
48849 DO 160 I=1,N
48850 IF(K(I,1).LE.0.OR.K(I,1).GT.12) THEN
48851 ELSEIF(IABS(K(I,2)).GT.80.AND.IABS(K(I,2)).LE.100) THEN
48852 ELSEIF(IABS(K(I,2)).GT.100.AND.MOD(IABS(K(I,2))/10,10).NE.0)
48853 & THEN
48854 ELSE
48855 IM=I
48856 150 IM=K(IM,3)
48857 IF(IM.LE.0.OR.IM.GT.N) THEN
48858 NP=NP+1
48859 ELSEIF(K(IM,1).LE.0.OR.K(IM,1).GT.20) THEN
48860 NP=NP+1
48861 ELSEIF(IABS(K(IM,2)).GT.80.AND.IABS(K(IM,2)).LE.100) THEN
48862 ELSEIF(IABS(K(IM,2)).GT.100.AND.MOD(IABS(K(IM,2))/10,10)
48863 & .NE.0) THEN
48864 ELSE
48865 GOTO 150
48866 ENDIF
48867 ENDIF
48868 160 CONTINUE
48869 NPCO=MAX(NP,1)
48870 IF(NP.GE.6) NPCO=6
48871 IF(NP.GE.8) NPCO=7
48872 IF(NP.GE.11) NPCO=8
48873 IF(NP.GE.16) NPCO=9
48874 IF(NP.GE.26) NPCO=10
48875 NPIS(IKFIS,NPCO)=NPIS(IKFIS,NPCO)+1
48876 MSTU(62)=NP
48877
48878
48879 ELSEIF(MTABU.EQ.12) THEN
48880 FAC=1D0/MAX(1,NEVIS)
48881 WRITE(MSTU(11),5000) NEVIS
48882 DO 170 I=1,NKFIS
48883 KFMN=KFIS(I,1)
48884 IF(KFMN.EQ.0) KFMN=KFIS(I,2)
48885 KFM1=(KFMN+1)/2
48886 IF(2*KFM1.EQ.KFMN) KFM1=-KFM1
48887 CALL PYNAME(KFM1,CHAU)
48888 CHIS(1)=CHAU(1:12)
48889 IF(CHAU(13:13).NE.' ') CHIS(1)(12:12)='?'
48890 KFMX=KFIS(I,2)
48891 IF(KFIS(I,1).EQ.0) KFMX=0
48892 KFM2=(KFMX+1)/2
48893 IF(2*KFM2.EQ.KFMX) KFM2=-KFM2
48894 CALL PYNAME(KFM2,CHAU)
48895 CHIS(2)=CHAU(1:12)
48896 IF(CHAU(13:13).NE.' ') CHIS(2)(12:12)='?'
48897 WRITE(MSTU(11),5100) CHIS(1),CHIS(2),FAC*NPIS(I,0),
48898 & (NPIS(I,J)/DBLE(NPIS(I,0)),J=1,10)
48899 170 CONTINUE
48900
48901
48902 ELSEIF(MTABU.EQ.13) THEN
48903 FAC=1D0/MAX(1,NEVIS)
48904 DO 190 I=1,NKFIS
48905 KFMN=KFIS(I,1)
48906 IF(KFMN.EQ.0) KFMN=KFIS(I,2)
48907 KFM1=(KFMN+1)/2
48908 IF(2*KFM1.EQ.KFMN) KFM1=-KFM1
48909 KFMX=KFIS(I,2)
48910 IF(KFIS(I,1).EQ.0) KFMX=0
48911 KFM2=(KFMX+1)/2
48912 IF(2*KFM2.EQ.KFMX) KFM2=-KFM2
48913 K(I,1)=32
48914 K(I,2)=99
48915 K(I,3)=KFM1
48916 K(I,4)=KFM2
48917 K(I,5)=NPIS(I,0)
48918 DO 180 J=1,5
48919 P(I,J)=FAC*NPIS(I,J)
48920 V(I,J)=FAC*NPIS(I,J+5)
48921 180 CONTINUE
48922 190 CONTINUE
48923 N=NKFIS
48924 DO 200 J=1,5
48925 K(N+1,J)=0
48926 P(N+1,J)=0D0
48927 V(N+1,J)=0D0
48928 200 CONTINUE
48929 K(N+1,1)=32
48930 K(N+1,2)=99
48931 K(N+1,5)=NEVIS
48932 MSTU(3)=1
48933
48934
48935 ELSEIF(MTABU.EQ.20) THEN
48936 NEVFS=0
48937 NPRFS=0
48938 NFIFS=0
48939 NCHFS=0
48940 NKFFS=0
48941
48942
48943 ELSEIF(MTABU.EQ.21) THEN
48944 NEVFS=NEVFS+1
48945 MSTU(62)=0
48946 DO 260 I=1,N
48947 IF(K(I,1).LE.0.OR.K(I,1).GT.20.OR.K(I,1).EQ.13) GOTO 260
48948 MSTU(62)=MSTU(62)+1
48949 KC=PYCOMP(K(I,2))
48950 MPRI=0
48951 IF(K(I,3).LE.0.OR.K(I,3).GT.N) THEN
48952 MPRI=1
48953 ELSEIF(K(K(I,3),1).LE.0.OR.K(K(I,3),1).GT.20) THEN
48954 MPRI=1
48955 ELSEIF(K(K(I,3),2).GE.91.AND.K(K(I,3),2).LE.93) THEN
48956 MPRI=1
48957 ELSEIF(KC.EQ.0) THEN
48958 ELSEIF(K(K(I,3),1).EQ.13) THEN
48959 IM=K(K(I,3),3)
48960 IF(IM.LE.0.OR.IM.GT.N) THEN
48961 MPRI=1
48962 ELSEIF(K(IM,1).LE.0.OR.K(IM,1).GT.20) THEN
48963 MPRI=1
48964 ENDIF
48965 ELSEIF(KCHG(KC,2).EQ.0) THEN
48966 KCM=PYCOMP(K(K(I,3),2))
48967 IF(KCM.NE.0) THEN
48968 IF(KCHG(KCM,2).NE.0) MPRI=1
48969 ENDIF
48970 ENDIF
48971 IF(KC.NE.0.AND.MPRI.EQ.1) THEN
48972 IF(KCHG(KC,2).EQ.0) NPRFS=NPRFS+1
48973 ENDIF
48974 IF(K(I,1).LE.10) THEN
48975 NFIFS=NFIFS+1
48976 IF(PYCHGE(K(I,2)).NE.0) NCHFS=NCHFS+1
48977 ENDIF
48978
48979
48980 KFA=IABS(K(I,2))
48981 KFS=3-ISIGN(1,K(I,2))-MPRI
48982 DO 210 IP=1,NKFFS
48983 IF(KFA.EQ.KFFS(IP)) THEN
48984 IKFFS=-IP
48985 GOTO 220
48986 ELSEIF(KFA.LT.KFFS(IP)) THEN
48987 IKFFS=IP
48988 GOTO 220
48989 ENDIF
48990 210 CONTINUE
48991 IKFFS=NKFFS+1
48992 220 IF(IKFFS.LT.0) THEN
48993 IKFFS=-IKFFS
48994 ELSE
48995 IF(NKFFS.GE.400) RETURN
48996 DO 240 IP=NKFFS,IKFFS,-1
48997 KFFS(IP+1)=KFFS(IP)
48998 DO 230 J=1,4
48999 NPFS(IP+1,J)=NPFS(IP,J)
49000 230 CONTINUE
49001 240 CONTINUE
49002 NKFFS=NKFFS+1
49003 KFFS(IKFFS)=KFA
49004 DO 250 J=1,4
49005 NPFS(IKFFS,J)=0
49006 250 CONTINUE
49007 ENDIF
49008 NPFS(IKFFS,KFS)=NPFS(IKFFS,KFS)+1
49009 260 CONTINUE
49010
49011
49012 ELSEIF(MTABU.EQ.22) THEN
49013 FAC=1D0/MAX(1,NEVFS)
49014 WRITE(MSTU(11),5200) NEVFS,FAC*NPRFS,FAC*NFIFS,FAC*NCHFS
49015 DO 270 I=1,NKFFS
49016 CALL PYNAME(KFFS(I),CHAU)
49017 KC=PYCOMP(KFFS(I))
49018 MDCYF=0
49019 IF(KC.NE.0) MDCYF=MDCY(KC,1)
49020 WRITE(MSTU(11),5300) KFFS(I),CHAU,MDCYF,(FAC*NPFS(I,J),J=1,4),
49021 & FAC*(NPFS(I,1)+NPFS(I,2)+NPFS(I,3)+NPFS(I,4))
49022 270 CONTINUE
49023
49024
49025 ELSEIF(MTABU.EQ.23) THEN
49026 FAC=1D0/MAX(1,NEVFS)
49027 DO 290 I=1,NKFFS
49028 K(I,1)=32
49029 K(I,2)=99
49030 K(I,3)=KFFS(I)
49031 K(I,4)=0
49032 K(I,5)=NPFS(I,1)+NPFS(I,2)+NPFS(I,3)+NPFS(I,4)
49033 DO 280 J=1,4
49034 P(I,J)=FAC*NPFS(I,J)
49035 V(I,J)=0D0
49036 280 CONTINUE
49037 P(I,5)=FAC*K(I,5)
49038 V(I,5)=0D0
49039 290 CONTINUE
49040 N=NKFFS
49041 DO 300 J=1,5
49042 K(N+1,J)=0
49043 P(N+1,J)=0D0
49044 V(N+1,J)=0D0
49045 300 CONTINUE
49046 K(N+1,1)=32
49047 K(N+1,2)=99
49048 K(N+1,5)=NEVFS
49049 P(N+1,1)=FAC*NPRFS
49050 P(N+1,2)=FAC*NFIFS
49051 P(N+1,3)=FAC*NCHFS
49052 MSTU(3)=1
49053
49054
49055 ELSEIF(MTABU.EQ.30) THEN
49056 NEVFM=0
49057 NMUFM=0
49058 DO 330 IM=1,3
49059 DO 320 IB=1,10
49060 DO 310 IP=1,4
49061 FM1FM(IM,IB,IP)=0D0
49062 FM2FM(IM,IB,IP)=0D0
49063 310 CONTINUE
49064 320 CONTINUE
49065 330 CONTINUE
49066
49067
49068 ELSEIF(MTABU.EQ.31) THEN
49069 NEVFM=NEVFM+1
49070 NLOW=N+MSTU(3)
49071 NUPP=NLOW
49072 DO 410 I=1,N
49073 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 410
49074 IF(MSTU(41).GE.2) THEN
49075 KC=PYCOMP(K(I,2))
49076 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
49077 & KC.EQ.18) GOTO 410
49078 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.
49079 & PYCHGE(K(I,2)).EQ.0) GOTO 410
49080 ENDIF
49081 PMR=0D0
49082 IF(MSTU(42).EQ.1.AND.K(I,2).NE.22) PMR=PYMASS(211)
49083 IF(MSTU(42).GE.2) PMR=P(I,5)
49084 PR=MAX(1D-20,PMR**2+P(I,1)**2+P(I,2)**2)
49085 YETA=SIGN(LOG(MIN((SQRT(PR+P(I,3)**2)+ABS(P(I,3)))/SQRT(PR),
49086 & 1D20)),P(I,3))
49087 IF(ABS(YETA).GT.PARU(57)) GOTO 410
49088 PHI=PYANGL(P(I,1),P(I,2))
49089 IYETA=512D0*(YETA+PARU(57))/(2D0*PARU(57))
49090 IYETA=MAX(0,MIN(511,IYETA))
49091 IPHI=512D0*(PHI+PARU(1))/PARU(2)
49092 IPHI=MAX(0,MIN(511,IPHI))
49093 IYEP=0
49094 DO 340 IB=0,9
49095 IYEP=IYEP+4**IB*(2*MOD(IYETA/2**IB,2)+MOD(IPHI/2**IB,2))
49096 340 CONTINUE
49097
49098
49099 IF(NUPP.GT.MSTU(4)-5-MSTU(32)) THEN
49100 CALL PYERRM(11,'(PYTABU:) no more memory left in PYJETS')
49101 RETURN
49102 ENDIF
49103 NUPP=NUPP+1
49104 IF(NUPP.EQ.NLOW+1) THEN
49105 K(NUPP,1)=IYETA
49106 K(NUPP,2)=IPHI
49107 K(NUPP,3)=IYEP
49108 ELSE
49109 DO 350 I1=NUPP-1,NLOW+1,-1
49110 IF(IYETA.GE.K(I1,1)) GOTO 360
49111 K(I1+1,1)=K(I1,1)
49112 350 CONTINUE
49113 360 K(I1+1,1)=IYETA
49114 DO 370 I1=NUPP-1,NLOW+1,-1
49115 IF(IPHI.GE.K(I1,2)) GOTO 380
49116 K(I1+1,2)=K(I1,2)
49117 370 CONTINUE
49118 380 K(I1+1,2)=IPHI
49119 DO 390 I1=NUPP-1,NLOW+1,-1
49120 IF(IYEP.GE.K(I1,3)) GOTO 400
49121 K(I1+1,3)=K(I1,3)
49122 390 CONTINUE
49123 400 K(I1+1,3)=IYEP
49124 ENDIF
49125 410 CONTINUE
49126 K(NUPP+1,1)=2**10
49127 K(NUPP+1,2)=2**10
49128 K(NUPP+1,3)=4**10
49129
49130
49131 DO 480 IM=1,3
49132 DO 430 IB=1,10
49133 DO 420 IP=1,4
49134 FEVFM(IB,IP)=0D0
49135 420 CONTINUE
49136 430 CONTINUE
49137 DO 450 IB=1,10
49138 IF(IM.LE.2) IBIN=2**(10-IB)
49139 IF(IM.EQ.3) IBIN=4**(10-IB)
49140 IAGR=K(NLOW+1,IM)/IBIN
49141 NAGR=1
49142 DO 440 I=NLOW+2,NUPP+1
49143 ICUT=K(I,IM)/IBIN
49144 IF(ICUT.EQ.IAGR) THEN
49145 NAGR=NAGR+1
49146 ELSE
49147 IF(NAGR.EQ.1) THEN
49148 ELSEIF(NAGR.EQ.2) THEN
49149 FEVFM(IB,1)=FEVFM(IB,1)+2D0
49150 ELSEIF(NAGR.EQ.3) THEN
49151 FEVFM(IB,1)=FEVFM(IB,1)+6D0
49152 FEVFM(IB,2)=FEVFM(IB,2)+6D0
49153 ELSEIF(NAGR.EQ.4) THEN
49154 FEVFM(IB,1)=FEVFM(IB,1)+12D0
49155 FEVFM(IB,2)=FEVFM(IB,2)+24D0
49156 FEVFM(IB,3)=FEVFM(IB,3)+24D0
49157 ELSE
49158 FEVFM(IB,1)=FEVFM(IB,1)+NAGR*(NAGR-1D0)
49159 FEVFM(IB,2)=FEVFM(IB,2)+NAGR*(NAGR-1D0)*(NAGR-2D0)
49160 FEVFM(IB,3)=FEVFM(IB,3)+NAGR*(NAGR-1D0)*(NAGR-2D0)*
49161 & (NAGR-3D0)
49162 FEVFM(IB,4)=FEVFM(IB,4)+NAGR*(NAGR-1D0)*(NAGR-2D0)*
49163 & (NAGR-3D0)*(NAGR-4D0)
49164 ENDIF
49165 IAGR=ICUT
49166 NAGR=1
49167 ENDIF
49168 440 CONTINUE
49169 450 CONTINUE
49170
49171
49172 DO 470 IB=10,1,-1
49173 DO 460 IP=1,4
49174 IF(FEVFM(1,IP).LT.0.5D0) THEN
49175 FEVFM(IB,IP)=0D0
49176 ELSEIF(IM.LE.2) THEN
49177 FEVFM(IB,IP)=2D0**((IB-1)*IP)*FEVFM(IB,IP)/FEVFM(1,IP)
49178 ELSE
49179 FEVFM(IB,IP)=4D0**((IB-1)*IP)*FEVFM(IB,IP)/FEVFM(1,IP)
49180 ENDIF
49181 FM1FM(IM,IB,IP)=FM1FM(IM,IB,IP)+FEVFM(IB,IP)
49182 FM2FM(IM,IB,IP)=FM2FM(IM,IB,IP)+FEVFM(IB,IP)**2
49183 460 CONTINUE
49184 470 CONTINUE
49185 480 CONTINUE
49186 NMUFM=NMUFM+(NUPP-NLOW)
49187 MSTU(62)=NUPP-NLOW
49188
49189
49190 ELSEIF(MTABU.EQ.32) THEN
49191 FAC=1D0/MAX(1,NEVFM)
49192 IF(MSTU(42).LE.0) WRITE(MSTU(11),5400) NEVFM,'eta'
49193 IF(MSTU(42).EQ.1) WRITE(MSTU(11),5400) NEVFM,'ypi'
49194 IF(MSTU(42).GE.2) WRITE(MSTU(11),5400) NEVFM,'y '
49195 DO 510 IM=1,3
49196 WRITE(MSTU(11),5500)
49197 DO 500 IB=1,10
49198 BYETA=2D0*PARU(57)
49199 IF(IM.NE.2) BYETA=BYETA/2**(IB-1)
49200 BPHI=PARU(2)
49201 IF(IM.NE.1) BPHI=BPHI/2**(IB-1)
49202 IF(IM.LE.2) BNAVE=FAC*NMUFM/DBLE(2**(IB-1))
49203 IF(IM.EQ.3) BNAVE=FAC*NMUFM/DBLE(4**(IB-1))
49204 DO 490 IP=1,4
49205 FMOMA(IP)=FAC*FM1FM(IM,IB,IP)
49206 FMOMS(IP)=SQRT(MAX(0D0,FAC*(FAC*FM2FM(IM,IB,IP)-
49207 & FMOMA(IP)**2)))
49208 490 CONTINUE
49209 WRITE(MSTU(11),5600) BYETA,BPHI,BNAVE,(FMOMA(IP),FMOMS(IP),
49210 & IP=1,4)
49211 500 CONTINUE
49212 510 CONTINUE
49213
49214
49215 ELSEIF(MTABU.EQ.33) THEN
49216 FAC=1D0/MAX(1,NEVFM)
49217 DO 540 IM=1,3
49218 DO 530 IB=1,10
49219 I=10*(IM-1)+IB
49220 K(I,1)=32
49221 K(I,2)=99
49222 K(I,3)=1
49223 IF(IM.NE.2) K(I,3)=2**(IB-1)
49224 K(I,4)=1
49225 IF(IM.NE.1) K(I,4)=2**(IB-1)
49226 K(I,5)=0
49227 P(I,1)=2D0*PARU(57)/K(I,3)
49228 V(I,1)=PARU(2)/K(I,4)
49229 DO 520 IP=1,4
49230 P(I,IP+1)=FAC*FM1FM(IM,IB,IP)
49231 V(I,IP+1)=SQRT(MAX(0D0,FAC*(FAC*FM2FM(IM,IB,IP)-
49232 & P(I,IP+1)**2)))
49233 520 CONTINUE
49234 530 CONTINUE
49235 540 CONTINUE
49236 N=30
49237 DO 550 J=1,5
49238 K(N+1,J)=0
49239 P(N+1,J)=0D0
49240 V(N+1,J)=0D0
49241 550 CONTINUE
49242 K(N+1,1)=32
49243 K(N+1,2)=99
49244 K(N+1,5)=NEVFM
49245 MSTU(3)=1
49246
49247
49248 ELSEIF(MTABU.EQ.40) THEN
49249 NEVEE=0
49250 DO 560 J=1,25
49251 FE1EC(J)=0D0
49252 FE2EC(J)=0D0
49253 FE1EC(51-J)=0D0
49254 FE2EC(51-J)=0D0
49255 FE1EA(J)=0D0
49256 FE2EA(J)=0D0
49257 560 CONTINUE
49258
49259
49260 ELSEIF(MTABU.EQ.41) THEN
49261 NEVEE=NEVEE+1
49262 NLOW=N+MSTU(3)
49263 NUPP=NLOW
49264 ECM=0D0
49265 DO 570 I=1,N
49266 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 570
49267 IF(MSTU(41).GE.2) THEN
49268 KC=PYCOMP(K(I,2))
49269 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
49270 & KC.EQ.18) GOTO 570
49271 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.
49272 & PYCHGE(K(I,2)).EQ.0) GOTO 570
49273 ENDIF
49274 PMR=0D0
49275 IF(MSTU(42).EQ.1.AND.K(I,2).NE.22) PMR=PYMASS(211)
49276 IF(MSTU(42).GE.2) PMR=P(I,5)
49277 IF(NUPP.GT.MSTU(4)-5-MSTU(32)) THEN
49278 CALL PYERRM(11,'(PYTABU:) no more memory left in PYJETS')
49279 RETURN
49280 ENDIF
49281 NUPP=NUPP+1
49282 P(NUPP,1)=P(I,1)
49283 P(NUPP,2)=P(I,2)
49284 P(NUPP,3)=P(I,3)
49285 P(NUPP,4)=SQRT(PMR**2+P(I,1)**2+P(I,2)**2+P(I,3)**2)
49286 P(NUPP,5)=MAX(1D-10,SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2))
49287 ECM=ECM+P(NUPP,4)
49288 570 CONTINUE
49289 IF(NUPP.EQ.NLOW) RETURN
49290
49291
49292 FAC=(2D0/ECM**2)*50D0/PARU(1)
49293 DO 580 J=1,50
49294 FEVEE(J)=0D0
49295 580 CONTINUE
49296 DO 600 I1=NLOW+2,NUPP
49297 DO 590 I2=NLOW+1,I1-1
49298 CTHE=(P(I1,1)*P(I2,1)+P(I1,2)*P(I2,2)+P(I1,3)*P(I2,3))/
49299 & (P(I1,5)*P(I2,5))
49300 THE=ACOS(MAX(-1D0,MIN(1D0,CTHE)))
49301 ITHE=MAX(1,MIN(50,1+INT(50D0*THE/PARU(1))))
49302 FEVEE(ITHE)=FEVEE(ITHE)+FAC*P(I1,4)*P(I2,4)
49303 590 CONTINUE
49304 600 CONTINUE
49305 DO 610 J=1,25
49306 FE1EC(J)=FE1EC(J)+FEVEE(J)
49307 FE2EC(J)=FE2EC(J)+FEVEE(J)**2
49308 FE1EC(51-J)=FE1EC(51-J)+FEVEE(51-J)
49309 FE2EC(51-J)=FE2EC(51-J)+FEVEE(51-J)**2
49310 FE1EA(J)=FE1EA(J)+(FEVEE(51-J)-FEVEE(J))
49311 FE2EA(J)=FE2EA(J)+(FEVEE(51-J)-FEVEE(J))**2
49312 610 CONTINUE
49313 MSTU(62)=NUPP-NLOW
49314
49315
49316 ELSEIF(MTABU.EQ.42) THEN
49317 FAC=1D0/MAX(1,NEVEE)
49318 WRITE(MSTU(11),5700) NEVEE
49319 DO 620 J=1,25
49320 FEEC1=FAC*FE1EC(J)
49321 FEES1=SQRT(MAX(0D0,FAC*(FAC*FE2EC(J)-FEEC1**2)))
49322 FEEC2=FAC*FE1EC(51-J)
49323 FEES2=SQRT(MAX(0D0,FAC*(FAC*FE2EC(51-J)-FEEC2**2)))
49324 FEECA=FAC*FE1EA(J)
49325 FEESA=SQRT(MAX(0D0,FAC*(FAC*FE2EA(J)-FEECA**2)))
49326 WRITE(MSTU(11),5800) 3.6D0*(J-1),3.6D0*J,FEEC1,FEES1,
49327 & FEEC2,FEES2,FEECA,FEESA
49328 620 CONTINUE
49329
49330
49331 ELSEIF(MTABU.EQ.43) THEN
49332 FAC=1D0/MAX(1,NEVEE)
49333 DO 630 I=1,25
49334 K(I,1)=32
49335 K(I,2)=99
49336 K(I,3)=0
49337 K(I,4)=0
49338 K(I,5)=0
49339 P(I,1)=FAC*FE1EC(I)
49340 V(I,1)=SQRT(MAX(0D0,FAC*(FAC*FE2EC(I)-P(I,1)**2)))
49341 P(I,2)=FAC*FE1EC(51-I)
49342 V(I,2)=SQRT(MAX(0D0,FAC*(FAC*FE2EC(51-I)-P(I,2)**2)))
49343 P(I,3)=FAC*FE1EA(I)
49344 V(I,3)=SQRT(MAX(0D0,FAC*(FAC*FE2EA(I)-P(I,3)**2)))
49345 P(I,4)=PARU(1)*(I-1)/50D0
49346 P(I,5)=PARU(1)*I/50D0
49347 V(I,4)=3.6D0*(I-1)
49348 V(I,5)=3.6D0*I
49349 630 CONTINUE
49350 N=25
49351 DO 640 J=1,5
49352 K(N+1,J)=0
49353 P(N+1,J)=0D0
49354 V(N+1,J)=0D0
49355 640 CONTINUE
49356 K(N+1,1)=32
49357 K(N+1,2)=99
49358 K(N+1,5)=NEVEE
49359 MSTU(3)=1
49360
49361
49362 ELSEIF(MTABU.EQ.50) THEN
49363 NEVDC=0
49364 NKFDC=0
49365 NREDC=0
49366
49367
49368 ELSEIF(MTABU.EQ.51) THEN
49369 NEVDC=NEVDC+1
49370 NDS=0
49371 DO 670 I=1,N
49372 IF(K(I,1).LE.0.OR.K(I,1).GE.6) GOTO 670
49373 NDS=NDS+1
49374 IF(NDS.GT.8) THEN
49375 NREDC=NREDC+1
49376 RETURN
49377 ENDIF
49378 KFM=2*IABS(K(I,2))
49379 IF(K(I,2).LT.0) KFM=KFM-1
49380 DO 650 IDS=NDS-1,1,-1
49381 IIN=IDS+1
49382 IF(KFM.LT.KFDM(IDS)) GOTO 660
49383 KFDM(IDS+1)=KFDM(IDS)
49384 650 CONTINUE
49385 IIN=1
49386 660 KFDM(IIN)=KFM
49387 670 CONTINUE
49388
49389
49390 DO 690 IDC=1,NKFDC
49391 IF(NDS.LT.KFDC(IDC,0)) THEN
49392 IKFDC=IDC
49393 GOTO 700
49394 ELSEIF(NDS.EQ.KFDC(IDC,0)) THEN
49395 DO 680 I=1,NDS
49396 IF(KFDM(I).LT.KFDC(IDC,I)) THEN
49397 IKFDC=IDC
49398 GOTO 700
49399 ELSEIF(KFDM(I).GT.KFDC(IDC,I)) THEN
49400 GOTO 690
49401 ENDIF
49402 680 CONTINUE
49403 IKFDC=-IDC
49404 GOTO 700
49405 ENDIF
49406 690 CONTINUE
49407 IKFDC=NKFDC+1
49408 700 IF(IKFDC.LT.0) THEN
49409 IKFDC=-IKFDC
49410 ELSEIF(NKFDC.GE.200) THEN
49411 NREDC=NREDC+1
49412 RETURN
49413 ELSE
49414 DO 720 IDC=NKFDC,IKFDC,-1
49415 NPDC(IDC+1)=NPDC(IDC)
49416 DO 710 I=0,8
49417 KFDC(IDC+1,I)=KFDC(IDC,I)
49418 710 CONTINUE
49419 720 CONTINUE
49420 NKFDC=NKFDC+1
49421 KFDC(IKFDC,0)=NDS
49422 DO 730 I=1,NDS
49423 KFDC(IKFDC,I)=KFDM(I)
49424 730 CONTINUE
49425 NPDC(IKFDC)=0
49426 ENDIF
49427 NPDC(IKFDC)=NPDC(IKFDC)+1
49428
49429
49430 ELSEIF(MTABU.EQ.52) THEN
49431 FAC=1D0/MAX(1,NEVDC)
49432 WRITE(MSTU(11),5900) NEVDC
49433 DO 750 IDC=1,NKFDC
49434 DO 740 I=1,KFDC(IDC,0)
49435 KFM=KFDC(IDC,I)
49436 KF=(KFM+1)/2
49437 IF(2*KF.NE.KFM) KF=-KF
49438 CALL PYNAME(KF,CHAU)
49439 CHDC(I)=CHAU(1:12)
49440 IF(CHAU(13:13).NE.' ') CHDC(I)(12:12)='?'
49441 740 CONTINUE
49442 WRITE(MSTU(11),6000) FAC*NPDC(IDC),(CHDC(I),I=1,KFDC(IDC,0))
49443 750 CONTINUE
49444 IF(NREDC.NE.0) WRITE(MSTU(11),6100) FAC*NREDC
49445
49446
49447 ELSEIF(MTABU.EQ.53) THEN
49448 FAC=1D0/MAX(1,NEVDC)
49449 DO 780 IDC=1,NKFDC
49450 K(IDC,1)=32
49451 K(IDC,2)=99
49452 K(IDC,3)=0
49453 K(IDC,4)=0
49454 K(IDC,5)=KFDC(IDC,0)
49455 DO 760 J=1,5
49456 P(IDC,J)=0D0
49457 V(IDC,J)=0D0
49458 760 CONTINUE
49459 DO 770 I=1,KFDC(IDC,0)
49460 KFM=KFDC(IDC,I)
49461 KF=(KFM+1)/2
49462 IF(2*KF.NE.KFM) KF=-KF
49463 IF(I.LE.5) P(IDC,I)=KF
49464 IF(I.GE.6) V(IDC,I-5)=KF
49465 770 CONTINUE
49466 V(IDC,5)=FAC*NPDC(IDC)
49467 780 CONTINUE
49468 N=NKFDC
49469 DO 790 J=1,5
49470 K(N+1,J)=0
49471 P(N+1,J)=0D0
49472 V(N+1,J)=0D0
49473 790 CONTINUE
49474 K(N+1,1)=32
49475 K(N+1,2)=99
49476 K(N+1,5)=NEVDC
49477 V(N+1,5)=FAC*NREDC
49478 MSTU(3)=1
49479 ENDIF
49480
49481
49482 5000 FORMAT(///20X,'Event statistics - initial state'/
49483 &20X,'based on an analysis of ',I6,' events'//
49484 &3X,'Main flavours after',8X,'Fraction',4X,'Subfractions ',
49485 &'according to fragmenting system multiplicity'/
49486 &4X,'hard interaction',24X,'1',7X,'2',7X,'3',7X,'4',7X,'5',
49487 &6X,'6-7',5X,'8-10',3X,'11-15',3X,'16-25',4X,'>25'/)
49488 5100 FORMAT(3X,A12,1X,A12,F10.5,1X,10F8.4)
49489 5200 FORMAT(///20X,'Event statistics - final state'/
49490 &20X,'based on an analysis of ',I7,' events'//
49491 &5X,'Mean primary multiplicity =',F10.4/
49492 &5X,'Mean final multiplicity =',F10.4/
49493 &5X,'Mean charged multiplicity =',F10.4//
49494 &5X,'Number of particles produced per event (directly and via ',
49495 &'decays/branchings)'/
49496 &8X,'KF Particle/jet MDCY',10X,'Particles',13X,'Antiparticles',
49497 &8X,'Total'/35X,'prim seco prim seco'/)
49498 5300 FORMAT(1X,I9,4X,A16,I2,5(1X,F11.6))
49499 5400 FORMAT(///20X,'Factorial moments analysis of multiplicity'/
49500 &20X,'based on an analysis of ',I6,' events'//
49501 &3X,'delta-',A3,' delta-phi <n>/bin',10X,'<F2>',18X,'<F3>',
49502 &18X,'<F4>',18X,'<F5>'/35X,4(' value error '))
49503 5500 FORMAT(10X)
49504 5600 FORMAT(2X,2F10.4,F12.4,4(F12.4,F10.4))
49505 5700 FORMAT(///20X,'Energy-Energy Correlation and Asymmetry'/
49506 &20X,'based on an analysis of ',I6,' events'//
49507 &2X,'theta range',8X,'EEC(theta)',8X,'EEC(180-theta)',7X,
49508 &'EECA(theta)'/2X,'in degrees ',3(' value error')/)
49509 5800 FORMAT(2X,F4.1,' - ',F4.1,3(F11.4,F9.4))
49510 5900 FORMAT(///20X,'Decay channel analysis - final state'/
49511 &20X,'based on an analysis of ',I6,' events'//
49512 &2X,'Probability',10X,'Complete final state'/)
49513 6000 FORMAT(2X,F9.5,5X,8(A12,1X))
49514 6100 FORMAT(2X,F9.5,5X,'into other channels (more than 8 particles ',
49515 &'or table overflow)')
49516
49517 RETURN
49518 END
49519
49520
49521
49522
49523
49524
49525 SUBROUTINE PYEEVT(KFL,ECM)
49526
49527
49528 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
49529 IMPLICIT INTEGER(I-N)
49530 INTEGER PYK,PYCHGE,PYCOMP
49531
49532 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
49533 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
49534 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
49535 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
49536
49537
49538 IF(MSTU(12).GE.1) CALL PYLIST(0)
49539 IF(KFL.LT.0.OR.KFL.GT.8) THEN
49540 CALL PYERRM(16,'(PYEEVT:) called with unknown flavour code')
49541 IF(MSTU(21).GE.1) RETURN
49542 ENDIF
49543 IF(KFL.LE.5) ECMMIN=PARJ(127)+2.02D0*PARF(100+MAX(1,KFL))
49544 IF(KFL.GE.6) ECMMIN=PARJ(127)+2.02D0*PMAS(KFL,1)
49545 IF(ECM.LT.ECMMIN) THEN
49546 CALL PYERRM(16,'(PYEEVT:) called with too small CM energy')
49547 IF(MSTU(21).GE.1) RETURN
49548 ENDIF
49549
49550
49551 IF(MSTJ(109).EQ.2.AND.MSTJ(110).NE.1) THEN
49552 CALL PYERRM(6,
49553 & '(PYEEVT:) MSTJ(109) value requires MSTJ(110) = 1')
49554 MSTJ(110)=1
49555 ENDIF
49556 IF(MSTJ(109).EQ.2.AND.MSTJ(111).NE.0) THEN
49557 CALL PYERRM(6,
49558 & '(PYEEVT:) MSTJ(109) value requires MSTJ(111) = 0')
49559 MSTJ(111)=0
49560 ENDIF
49561
49562
49563 MSTU(111)=MSTJ(108)
49564 IF(MSTJ(108).EQ.2.AND.(MSTJ(101).EQ.0.OR.MSTJ(101).EQ.1))
49565 &MSTU(111)=1
49566 PARU(112)=PARJ(121)
49567 IF(MSTU(111).EQ.2) PARU(112)=PARJ(122)
49568 IF(MSTJ(116).GT.0.AND.(MSTJ(116).GE.2.OR.ABS(ECM-PARJ(151)).GE.
49569 &PARJ(139).OR.10*MSTJ(102)+KFL.NE.MSTJ(119))) CALL PYXTEE(KFL,ECM,
49570 &XTOT)
49571 IF(MSTJ(116).GE.3) MSTJ(116)=1
49572 PARJ(171)=0D0
49573
49574
49575 NTRY=0
49576 100 NTRY=NTRY+1
49577 IF(NTRY.GT.100) THEN
49578 CALL PYERRM(14,'(PYEEVT:) caught in an infinite loop')
49579 RETURN
49580 ENDIF
49581 MSTU(24)=0
49582 NC=0
49583 IF(MSTJ(115).GE.2) THEN
49584 NC=NC+2
49585 CALL PY1ENT(NC-1,11,0.5D0*ECM,0D0,0D0)
49586 K(NC-1,1)=21
49587 CALL PY1ENT(NC,-11,0.5D0*ECM,PARU(1),0D0)
49588 K(NC,1)=21
49589 ENDIF
49590
49591
49592 MK=0
49593 ECMC=ECM
49594 IF(MSTJ(107).GE.1.AND.MSTJ(116).GE.1) CALL PYRADK(ECM,MK,PAK,
49595 &THEK,PHIK,ALPK)
49596 IF(MK.EQ.1) ECMC=SQRT(ECM*(ECM-2D0*PAK))
49597 IF(MSTJ(115).GE.1.AND.MK.EQ.1) THEN
49598 NC=NC+1
49599 CALL PY1ENT(NC,22,PAK,THEK,PHIK)
49600 K(NC,3)=MIN(MSTJ(115)/2,1)
49601 ENDIF
49602
49603
49604 IF(MSTJ(115).GE.3) THEN
49605 NC=NC+1
49606 KF=22
49607 IF(MSTJ(102).EQ.2) KF=23
49608 MSTU10=MSTU(10)
49609 MSTU(10)=1
49610 P(NC,5)=ECMC
49611 CALL PY1ENT(NC,KF,ECMC,0D0,0D0)
49612 K(NC,1)=21
49613 K(NC,3)=1
49614 MSTU(10)=MSTU10
49615 ENDIF
49616
49617
49618 CALL PYXKFL(KFL,ECM,ECMC,KFLC)
49619 IF(KFLC.EQ.0) GOTO 100
49620 CALL PYXJET(ECMC,NJET,CUT)
49621 KFLN=21
49622 IF(NJET.EQ.4) CALL PYX4JT(NJET,CUT,KFLC,ECMC,KFLN,X1,X2,X4,
49623 &X12,X14)
49624 IF(NJET.EQ.3) CALL PYX3JT(NJET,CUT,KFLC,ECMC,X1,X3)
49625 IF(NJET.EQ.2) MSTJ(120)=1
49626
49627
49628 IF(NJET.EQ.2.AND.MSTJ(101).NE.5) CALL PY2ENT(NC+1,KFLC,-KFLC,ECMC)
49629 IF(NJET.EQ.2.AND.MSTJ(101).EQ.5) CALL PY2ENT(-(NC+1),KFLC,-KFLC,
49630 &ECMC)
49631 IF(NJET.EQ.3) CALL PY3ENT(NC+1,KFLC,21,-KFLC,ECMC,X1,X3)
49632 IF(NJET.EQ.4.AND.KFLN.EQ.21) CALL PY4ENT(NC+1,KFLC,KFLN,KFLN,
49633 &-KFLC,ECMC,X1,X2,X4,X12,X14)
49634 IF(NJET.EQ.4.AND.KFLN.NE.21) CALL PY4ENT(NC+1,KFLC,-KFLN,KFLN,
49635 &-KFLC,ECMC,X1,X2,X4,X12,X14)
49636 IF(MSTU(24).NE.0) GOTO 100
49637 DO 110 IP=NC+1,N
49638 K(IP,3)=K(IP,3)+MIN(MSTJ(115)/2,1)+(MSTJ(115)/3)*(NC-1)
49639 110 CONTINUE
49640
49641
49642 IF(MSTJ(106).EQ.1) THEN
49643 CALL PYXDIF(NC,NJET,KFLC,ECMC,CHI,THE,PHI)
49644 CALL PYROBO(NC+1,N,0D0,CHI,0D0,0D0,0D0)
49645 CALL PYROBO(NC+1,N,THE,PHI,0D0,0D0,0D0)
49646 ENDIF
49647
49648
49649 IF(MK.EQ.1) THEN
49650 DBEK=-PAK/(ECM-PAK)
49651 NMIN=NC+1-MSTJ(115)/3
49652 CALL PYROBO(NMIN,N,0D0,-PHIK,0D0,0D0,0D0)
49653 CALL PYROBO(NMIN,N,ALPK,0D0,DBEK*SIN(THEK),0D0,DBEK*COS(THEK))
49654 CALL PYROBO(NMIN,N,0D0,PHIK,0D0,0D0,0D0)
49655 ENDIF
49656
49657
49658 IF(MSTJ(101).EQ.5) THEN
49659 CALL PYSHOW(N-1,N,ECMC)
49660 MSTJ14=MSTJ(14)
49661 IF(MSTJ(105).EQ.-1) MSTJ(14)=-1
49662 IF(MSTJ(105).GE.0) MSTU(28)=0
49663 CALL PYPREP(0)
49664 MSTJ(14)=MSTJ14
49665 IF(MSTJ(105).GE.0.AND.MSTU(28).NE.0) GOTO 100
49666 ENDIF
49667
49668
49669 IF(MSTJ(105).EQ.1) CALL PYEXEC
49670 MSTU(161)=KFLC
49671 MSTU(162)=-KFLC
49672
49673 RETURN
49674 END
49675
49676
49677
49678
49679
49680
49681
49682 SUBROUTINE PYXTEE(KFL,ECM,XTOT)
49683
49684
49685 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
49686 IMPLICIT INTEGER(I-N)
49687 INTEGER PYK,PYCHGE,PYCOMP
49688
49689 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
49690 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
49691 SAVE /PYDAT1/,/PYDAT2/
49692
49693
49694 PARJ(151)=ECM
49695 MSTJ(119)=10*MSTJ(102)+KFL
49696 IF(MSTJ(111).EQ.0) THEN
49697 Q2R=ECM**2
49698 ELSEIF(MSTU(111).EQ.0) THEN
49699 PARJ(168)=MIN(1D0,MAX(PARJ(128),EXP(-12D0*PARU(1)/
49700 & ((33D0-2D0*MSTU(112))*PARU(111)))))
49701 Q2R=PARJ(168)*ECM**2
49702 ELSE
49703 PARJ(168)=MIN(1D0,MAX(PARJ(128),PARU(112)/ECM,
49704 & (2D0*PARU(112)/ECM)**2))
49705 Q2R=PARJ(168)*ECM**2
49706 ENDIF
49707 ALSPI=PYALPS(Q2R)/PARU(1)
49708
49709
49710 IF(MSTJ(101).EQ.0.OR.MSTJ(109).EQ.1) THEN
49711 RQCD=1D0
49712 ELSEIF(IABS(MSTJ(101)).EQ.1.AND.MSTJ(109).EQ.0) THEN
49713 RQCD=1D0+ALSPI
49714 ELSEIF(MSTJ(109).EQ.0) THEN
49715 RQCD=1D0+ALSPI+(1.986D0-0.115D0*MSTU(118))*ALSPI**2
49716 IF(MSTJ(111).EQ.1) RQCD=MAX(1D0,RQCD+(33D0-2D0*MSTU(112))/12D0*
49717 & LOG(PARJ(168))*ALSPI**2)
49718 ELSEIF(IABS(MSTJ(101)).EQ.1) THEN
49719 RQCD=1D0+(3D0/4D0)*ALSPI
49720 ELSE
49721 RQCD=1D0+(3D0/4D0)*ALSPI-(3D0/32D0+0.519D0*MSTU(118))*ALSPI**2
49722 ENDIF
49723
49724
49725 IF(MSTJ(102).GE.3) THEN
49726 RVA=3D0*(3D0+(4D0*PARU(102)-1D0)**2)+6D0*RQCD*(2D0+
49727 & (1D0-8D0*PARU(102)/3D0)**2+(4D0*PARU(102)/3D0-1D0)**2)
49728 DO 100 KFLC=5,6
49729 VQ=1D0
49730 IF(MOD(MSTJ(103),2).EQ.1) VQ=SQRT(MAX(0D0,1D0-
49731 & (2D0*PYMASS(KFLC)/ ECM)**2))
49732 IF(KFLC.EQ.5) VF=4D0*PARU(102)/3D0-1D0
49733 IF(KFLC.EQ.6) VF=1D0-8D0*PARU(102)/3D0
49734 RVA=RVA+3D0*RQCD*(0.5D0*VQ*(3D0-VQ**2)*VF**2+VQ**3)
49735 100 CONTINUE
49736 PARJ(124)=PARU(101)*PARJ(123)*RVA/(48D0*PARU(102)*
49737 & (1D0-PARU(102)))
49738 ENDIF
49739
49740
49741 POLL=1D0-PARJ(131)*PARJ(132)
49742 IF(MSTJ(102).GE.2) THEN
49743 SFF=1D0/(16D0*PARU(102)*(1D0-PARU(102)))
49744 SFW=ECM**4/((ECM**2-PARJ(123)**2)**2+(PARJ(123)*PARJ(124))**2)
49745 SFI=SFW*(1D0-(PARJ(123)/ECM)**2)
49746 VE=4D0*PARU(102)-1D0
49747 SF1I=SFF*(VE*POLL+PARJ(132)-PARJ(131))
49748 SF1W=SFF**2*((VE**2+1D0)*POLL+2D0*VE*(PARJ(132)-PARJ(131)))
49749 HF1I=SFI*SF1I
49750 HF1W=SFW*SF1W
49751 ENDIF
49752
49753
49754 RTOT=0D0
49755 RQQ=0D0
49756 RQV=0D0
49757 RVA=0D0
49758 DO 110 KFLC=1,MAX(MSTJ(104),KFL)
49759 IF(KFL.GT.0.AND.KFLC.NE.KFL) GOTO 110
49760 MSTJ(93)=1
49761 PMQ=PYMASS(KFLC)
49762 IF(ECM.LT.2D0*PMQ+PARJ(127)) GOTO 110
49763 QF=KCHG(KFLC,1)/3D0
49764 VQ=1D0
49765 IF(MOD(MSTJ(103),2).EQ.1) VQ=SQRT(1D0-(2D0*PMQ/ECM)**2)
49766
49767
49768 RQQ=RQQ+3D0*QF**2*POLL
49769 IF(MSTJ(102).LE.1) THEN
49770 RTOT=RTOT+3D0*0.5D0*VQ*(3D0-VQ**2)*QF**2*POLL
49771 ELSE
49772 VF=SIGN(1D0,QF)-4D0*QF*PARU(102)
49773 RQV=RQV-6D0*QF*VF*SF1I
49774 RVA=RVA+3D0*(VF**2+1D0)*SF1W
49775 RTOT=RTOT+3D0*(0.5D0*VQ*(3D0-VQ**2)*(QF**2*POLL-
49776 & 2D0*QF*VF*HF1I+VF**2*HF1W)+VQ**3*HF1W)
49777 ENDIF
49778 110 CONTINUE
49779 RSUM=RQQ
49780 IF(MSTJ(102).GE.2) RSUM=RQQ+SFI*RQV+SFW*RVA
49781
49782
49783 PARJ(141)=RQQ
49784 PARJ(142)=RTOT
49785 PARJ(143)=RTOT*RQCD
49786 PARJ(144)=PARJ(143)
49787 PARJ(145)=PARJ(141)*86.8D0/ECM**2
49788 PARJ(146)=PARJ(142)*86.8D0/ECM**2
49789 PARJ(147)=PARJ(143)*86.8D0/ECM**2
49790 PARJ(148)=PARJ(147)
49791 PARJ(157)=RSUM*RQCD
49792 PARJ(158)=0D0
49793 PARJ(159)=0D0
49794 XTOT=PARJ(147)
49795 IF(MSTJ(107).LE.0) RETURN
49796
49797
49798 XKL=PARJ(135)
49799 XKU=MIN(PARJ(136),1D0-(2D0*PARJ(127)/ECM)**2)
49800 ALE=2D0*LOG(ECM/PYMASS(11))-1D0
49801 SIGV=ALE/3D0+2D0*LOG(ECM**2/(PYMASS(13)*PYMASS(15)))/3D0-4D0/3D0+
49802 &1.526D0*LOG(ECM**2/0.932D0)
49803
49804
49805 IF(MSTJ(102).LE.1) THEN
49806 SIGV=1.5D0*ALE-0.5D0+PARU(1)**2/3D0+2D0*SIGV
49807 SIGS=ALE*(2D0*LOG(XKL)-LOG(1D0-XKL)-XKL)
49808 SIGH=ALE*(2D0*LOG(XKU/XKL)-LOG((1D0-XKU)/(1D0-XKL))-(XKU-XKL))
49809
49810
49811 ELSE
49812 SZM=1D0-(PARJ(123)/ECM)**2
49813 SZW=PARJ(123)*PARJ(124)/ECM**2
49814 PARJ(161)=-RQQ/RSUM
49815 PARJ(162)=-(RQQ+RQV+RVA)/RSUM
49816 PARJ(163)=(RQV*(1D0-0.5D0*SZM-SFI)+RVA*(1.5D0-SZM-SFW))/RSUM
49817 PARJ(164)=(RQV*SZW**2*(1D0-2D0*SFW)+RVA*(2D0*SFI+SZW**2-
49818 & 4D0+3D0*SZM-SZM**2))/(SZW*RSUM)
49819 SIGV=1.5D0*ALE-0.5D0+PARU(1)**2/3D0+((2D0*RQQ+SFI*RQV)/
49820 & RSUM)*SIGV+(SZW*SFW*RQV/RSUM)*PARU(1)*20D0/9D0
49821 SIGS=ALE*(2D0*LOG(XKL)+PARJ(161)*LOG(1D0-XKL)+PARJ(162)*XKL+
49822 & PARJ(163)*LOG(((XKL-SZM)**2+SZW**2)/(SZM**2+SZW**2))+
49823 & PARJ(164)*(ATAN((XKL-SZM)/SZW)-ATAN(-SZM/SZW)))
49824 SIGH=ALE*(2D0*LOG(XKU/XKL)+PARJ(161)*LOG((1D0-XKU)/
49825 & (1D0-XKL))+PARJ(162)*(XKU-XKL)+PARJ(163)*
49826 & LOG(((XKU-SZM)**2+SZW**2)/((XKL-SZM)**2+SZW**2))+
49827 & PARJ(164)*(ATAN((XKU-SZM)/SZW)-ATAN((XKL-SZM)/SZW)))
49828 ENDIF
49829
49830
49831 PARJ(160)=SIGH/(PARU(1)/PARU(101)+SIGV+SIGS+SIGH)
49832 PARJ(157)=RSUM*(1D0+(PARU(101)/PARU(1))*(SIGV+SIGS+SIGH))*RQCD
49833 PARJ(144)=PARJ(157)
49834 PARJ(148)=PARJ(144)*86.8D0/ECM**2
49835 XTOT=PARJ(148)
49836
49837 RETURN
49838 END
49839
49840
49841
49842
49843
49844
49845 SUBROUTINE PYRADK(ECM,MK,PAK,THEK,PHIK,ALPK)
49846
49847
49848 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
49849 IMPLICIT INTEGER(I-N)
49850 INTEGER PYK,PYCHGE,PYCOMP
49851
49852 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
49853 SAVE /PYDAT1/
49854
49855
49856 FXK(XX)=2D0*LOG(XX)+PARJ(161)*LOG(1D0-XX)+PARJ(162)*XX+
49857 &PARJ(163)*LOG((XX-SZM)**2+SZW**2)+PARJ(164)*ATAN((XX-SZM)/SZW)
49858
49859
49860 MK=0
49861 PAK=0D0
49862 IF(PARJ(160).LT.PYR(0)) RETURN
49863 MK=1
49864
49865
49866 XKL=PARJ(135)
49867 XKU=MIN(PARJ(136),1D0-(2D0*PARJ(127)/ECM)**2)
49868 IF(MSTJ(102).LE.1) THEN
49869 100 XK=1D0/(1D0+(1D0/XKL-1D0)*((1D0/XKU-1D0)/(1D0/XKL-1D0))**PYR(0))
49870 IF(1D0+(1D0-XK)**2.LT.2D0*PYR(0)) GOTO 100
49871
49872
49873 ELSE
49874 SZM=1D0-(PARJ(123)/ECM)**2
49875 SZW=PARJ(123)*PARJ(124)/ECM**2
49876 FXKL=FXK(XKL)
49877 FXKU=FXK(XKU)
49878 FXKD=1D-4*(FXKU-FXKL)
49879 FXKR=FXKL+PYR(0)*(FXKU-FXKL)
49880 NXK=0
49881 110 NXK=NXK+1
49882 XK=0.5D0*(XKL+XKU)
49883 FXKV=FXK(XK)
49884 IF(FXKV.GT.FXKR) THEN
49885 XKU=XK
49886 FXKU=FXKV
49887 ELSE
49888 XKL=XK
49889 FXKL=FXKV
49890 ENDIF
49891 IF(NXK.LT.15.AND.FXKU-FXKL.GT.FXKD) GOTO 110
49892 XK=XKL+(XKU-XKL)*(FXKR-FXKL)/(FXKU-FXKL)
49893 ENDIF
49894 PAK=0.5D0*ECM*XK
49895
49896
49897 PME=2D0*(PYMASS(11)/ECM)**2
49898 120 CTHM=PME*(2D0/PME)**PYR(0)
49899 IF(1D0-(XK**2*CTHM*(1D0-0.5D0*CTHM)+2D0*(1D0-XK)*PME/MAX(PME,
49900 &CTHM*(1D0-0.5D0*CTHM)))/(1D0+(1D0-XK)**2).LT.PYR(0)) GOTO 120
49901 CTHE=1D0-CTHM
49902 IF(PYR(0).GT.0.5D0) CTHE=-CTHE
49903 STHE=SQRT(MAX(0D0,(CTHM-PME)*(2D0-CTHM)))
49904 THEK=PYANGL(CTHE,STHE)
49905 PHIK=PARU(2)*PYR(0)
49906
49907
49908 SGN=1D0
49909 IF(0.5D0*(2D0-XK*(1D0-CTHE))**2/((2D0-XK)**2+(XK*CTHE)**2).GT.
49910 &PYR(0)) SGN=-1D0
49911 ALPK=ASIN(SGN*STHE*(XK-SGN*(2D0*SQRT(1D0-XK)-2D0+XK)*CTHE)/
49912 &(2D0-XK*(1D0-SGN*CTHE)))
49913
49914 RETURN
49915 END
49916
49917
49918
49919
49920
49921
49922 SUBROUTINE PYXKFL(KFL,ECM,ECMC,KFLC)
49923
49924
49925 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
49926 IMPLICIT INTEGER(I-N)
49927 INTEGER PYK,PYCHGE,PYCOMP
49928
49929 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
49930 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
49931 SAVE /PYDAT1/,/PYDAT2/
49932
49933
49934 IF(MSTJ(102).LE.1) THEN
49935 RFMAX=4D0/9D0
49936 ELSE
49937 POLL=1D0-PARJ(131)*PARJ(132)
49938 SFF=1D0/(16D0*PARU(102)*(1D0-PARU(102)))
49939 SFW=ECMC**4/((ECMC**2-PARJ(123)**2)**2+(PARJ(123)*PARJ(124))**2)
49940 SFI=SFW*(1D0-(PARJ(123)/ECMC)**2)
49941 VE=4D0*PARU(102)-1D0
49942 HF1I=SFI*SFF*(VE*POLL+PARJ(132)-PARJ(131))
49943 HF1W=SFW*SFF**2*((VE**2+1D0)*POLL+2D0*VE*(PARJ(132)-PARJ(131)))
49944 RFMAX=MAX(4D0/9D0*POLL-4D0/3D0*(1D0-8D0*PARU(102)/3D0)*HF1I+
49945 & ((1D0-8D0*PARU(102)/3D0)**2+1D0)*HF1W,1D0/9D0*POLL+2D0/3D0*
49946 & (-1D0+4D0*PARU(102)/3D0)*HF1I+((-1D0+4D0*PARU(102)/3D0)**2+
49947 & 1D0)*HF1W)
49948 ENDIF
49949
49950
49951 NTRY=0
49952 100 NTRY=NTRY+1
49953 IF(NTRY.GT.100) THEN
49954 CALL PYERRM(14,'(PYXKFL:) caught in an infinite loop')
49955 KFLC=0
49956 RETURN
49957 ENDIF
49958 KFLC=KFL
49959 IF(KFL.LE.0) KFLC=1+INT(MSTJ(104)*PYR(0))
49960 MSTJ(93)=1
49961 PMQ=PYMASS(KFLC)
49962 IF(ECM.LT.2D0*PMQ+PARJ(127)) GOTO 100
49963 QF=KCHG(KFLC,1)/3D0
49964 VQ=1D0
49965 IF(MOD(MSTJ(103),2).EQ.1) VQ=SQRT(MAX(0D0,1D0-(2D0*PMQ/ECMC)**2))
49966
49967
49968 IF(MSTJ(102).LE.1) THEN
49969 RF=QF**2
49970 RFV=0.5D0*VQ*(3D0-VQ**2)*QF**2
49971 ELSE
49972 VF=SIGN(1D0,QF)-4D0*QF*PARU(102)
49973 RF=QF**2*POLL-2D0*QF*VF*HF1I+(VF**2+1D0)*HF1W
49974 RFV=0.5D0*VQ*(3D0-VQ**2)*(QF**2*POLL-2D0*QF*VF*HF1I+VF**2*HF1W)+
49975 & VQ**3*HF1W
49976 IF(RFV.GT.0D0) PARJ(171)=MIN(1D0,VQ**3*HF1W/RFV)
49977 ENDIF
49978
49979
49980 IF(KFL.LE.0.AND.RF.LT.PYR(0)*RFMAX) GOTO 100
49981 PARJ(158)=PARJ(158)+1D0
49982 IF(ECMC.LT.2D0*PMQ+PARJ(127).OR.RFV.LT.PYR(0)*RF) KFLC=0
49983 IF(MSTJ(107).LE.0.AND.KFLC.EQ.0) GOTO 100
49984 IF(KFLC.NE.0) PARJ(159)=PARJ(159)+1D0
49985 PARJ(144)=PARJ(157)*PARJ(159)/PARJ(158)
49986 PARJ(148)=PARJ(144)*86.8D0/ECM**2
49987
49988 RETURN
49989 END
49990
49991
49992
49993
49994
49995
49996 SUBROUTINE PYXJET(ECM,NJET,CUT)
49997
49998
49999 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
50000 IMPLICIT INTEGER(I-N)
50001 INTEGER PYK,PYCHGE,PYCOMP
50002
50003 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
50004 SAVE /PYDAT1/
50005
50006 DIMENSION ZHUT(5)
50007 DATA ZHUT/3.0922D0, 6.2291D0, 7.4782D0, 7.8440D0, 8.2560D0/
50008
50009
50010 IF(MSTJ(101).EQ.0.OR.MSTJ(101).EQ.5) THEN
50011 CUT=0D0
50012
50013
50014 ELSEIF(MSTJ(109).EQ.0.OR.MSTJ(109).EQ.2) THEN
50015 CF=4D0/3D0
50016 IF(MSTJ(109).EQ.2) CF=1D0
50017 IF(MSTJ(111).EQ.0) THEN
50018 Q2=ECM**2
50019 Q2R=ECM**2
50020 ELSEIF(MSTU(111).EQ.0) THEN
50021 PARJ(169)=MIN(1D0,PARJ(129))
50022 Q2=PARJ(169)*ECM**2
50023 PARJ(168)=MIN(1D0,MAX(PARJ(128),EXP(-12D0*PARU(1)/
50024 & ((33D0-2D0*MSTU(112))*PARU(111)))))
50025 Q2R=PARJ(168)*ECM**2
50026 ELSE
50027 PARJ(169)=MIN(1D0,MAX(PARJ(129),(2D0*PARU(112)/ECM)**2))
50028 Q2=PARJ(169)*ECM**2
50029 PARJ(168)=MIN(1D0,MAX(PARJ(128),PARU(112)/ECM,
50030 & (2D0*PARU(112)/ECM)**2))
50031 Q2R=PARJ(168)*ECM**2
50032 ENDIF
50033
50034
50035 ALSPI=(3D0/4D0)*CF*PYALPS(Q2R)/PARU(1)
50036 IF(IABS(MSTJ(101)).EQ.1) THEN
50037 RQCD=1D0+ALSPI
50038 ELSEIF(MSTJ(109).EQ.0) THEN
50039 RQCD=1D0+ALSPI+(1.986D0-0.115D0*MSTU(118))*ALSPI**2
50040 IF(MSTJ(111).EQ.1) RQCD=MAX(1D0,RQCD+
50041 & (33D0-2D0*MSTU(112))/12D0*LOG(PARJ(168))*ALSPI**2)
50042 ELSE
50043 RQCD=1D0+ALSPI-(3D0/32D0+0.519D0*MSTU(118))*(4D0*ALSPI/3D0)**2
50044 ENDIF
50045
50046
50047 ALSPI=(3D0/4D0)*CF*PYALPS(Q2)/PARU(1)
50048 CUT=MAX(0.001D0,PARJ(125),(PARJ(126)/ECM)**2)
50049 IF(IABS(MSTJ(101)).LE.1.OR.(MSTJ(109).EQ.0.AND.MSTJ(111).EQ.0))
50050 & CUT=MAX(CUT,EXP(-SQRT(0.75D0/ALSPI))/2D0)
50051 IF(MSTJ(110).EQ.2) CUT=MAX(0.01D0,MIN(0.05D0,CUT))
50052
50053
50054 100 IF(MSTJ(101).EQ.0.OR.CUT.GE.0.25D0) THEN
50055 PARJ(152)=0D0
50056 ELSE
50057 PARJ(152)=(2D0*ALSPI/3D0)*((3D0-6D0*CUT+2D0*LOG(CUT))*
50058 & LOG(CUT/(1D0-2D0*CUT))+(2.5D0+1.5D0*CUT-6.571D0)*
50059 & (1D0-3D0*CUT)+5.833D0*(1D0-3D0*CUT)**2-3.894D0*
50060 & (1D0-3D0*CUT)**3+1.342D0*(1D0-3D0*CUT)**4)/RQCD
50061 IF(MSTJ(109).EQ.2.AND.(MSTJ(101).EQ.2.OR.MSTJ(101).LE.-2))
50062 & PARJ(152)=0D0
50063 ENDIF
50064
50065
50066 IF(IABS(MSTJ(101)).LE.1.OR.MSTJ(101).EQ.3.OR.MSTJ(109).EQ.2.OR.
50067 & CUT.GE.0.25D0) THEN
50068 PARJ(153)=0D0
50069 ELSEIF(MSTJ(110).LE.1) THEN
50070 CT=LOG(1D0/CUT-2D0)
50071 PARJ(153)=ALSPI**2*CT**2*(2.419D0+0.5989D0*CT+0.6782D0*CT**2-
50072 & 0.2661D0*CT**3+0.01159D0*CT**4)/RQCD
50073
50074
50075 ELSEIF(MSTJ(110).EQ.2) THEN
50076 IZA=0
50077 DO 110 IY=1,5
50078 IF(ABS(CUT-0.01D0*IY).LT.0.0001D0) IZA=IY
50079 110 CONTINUE
50080 IF(IZA.NE.0) THEN
50081 ZHURAT=ZHUT(IZA)
50082 ELSE
50083 IZ=100D0*CUT
50084 ZHURAT=ZHUT(IZ)+(100D0*CUT-IZ)*(ZHUT(IZ+1)-ZHUT(IZ))
50085 ENDIF
50086 PARJ(153)=ALSPI*PARJ(152)*ZHURAT
50087 ENDIF
50088
50089
50090 IF(MSTJ(111).EQ.1.AND.IABS(MSTJ(101)).GE.2.AND.MSTJ(101).NE.3
50091 & .AND.CUT.LT.0.25D0) PARJ(153)=PARJ(153)+
50092 & (33D0-2D0*MSTU(112))/12D0*LOG(PARJ(169))*ALSPI*PARJ(152)
50093
50094
50095 IF(IABS(MSTJ(101)).LE.1.OR.CUT.GE.0.125D0) THEN
50096 PARJ(154)=0D0
50097 ELSE
50098 CT=LOG(1D0/CUT-5D0)
50099 IF(CUT.LE.0.018D0) THEN
50100 XQQGG=6.349D0-4.330D0*CT+0.8304D0*CT**2
50101 IF(MSTJ(109).EQ.2) XQQGG=(4D0/3D0)**2*(3.035D0-2.091D0*CT+
50102 & 0.4059D0*CT**2)
50103 XQQQQ=1.25D0*(-0.1080D0+0.01486D0*CT+0.009364D0*CT**2)
50104 IF(MSTJ(109).EQ.2) XQQQQ=8D0*XQQQQ
50105 ELSE
50106 XQQGG=-0.09773D0+0.2959D0*CT-0.2764D0*CT**2+0.08832D0*CT**3
50107 IF(MSTJ(109).EQ.2) XQQGG=(4D0/3D0)**2*(-0.04079D0+
50108 & 0.1340D0*CT-0.1326D0*CT**2+0.04365D0*CT**3)
50109 XQQQQ=1.25D0*(0.003661D0-0.004888D0*CT-0.001081D0*CT**2+
50110 & 0.002093D0*CT**3)
50111 IF(MSTJ(109).EQ.2) XQQQQ=8D0*XQQQQ
50112 ENDIF
50113 PARJ(154)=ALSPI**2*CT**2*(XQQGG+XQQQQ)/RQCD
50114 PARJ(155)=XQQQQ/(XQQGG+XQQQQ)
50115 ENDIF
50116
50117
50118 IF(MSTJ(111).EQ.1.AND.PARJ(152)+PARJ(153).LT.0D0.AND.
50119 & PARJ(169).LT.0.99D0) THEN
50120 PARJ(169)=MIN(1D0,1.2D0*PARJ(169))
50121 Q2=PARJ(169)*ECM**2
50122 ALSPI=(3D0/4D0)*CF*PYALPS(Q2)/PARU(1)
50123 GOTO 100
50124 ENDIF
50125
50126
50127 IF(PARJ(152)+PARJ(153)+PARJ(154).GE.1) THEN
50128 IF(MSTJ(110).EQ.2.AND.CUT.GT.0.0499D0.AND.MSTJ(111).EQ.1.AND.
50129 & PARJ(169).LT.0.99D0) THEN
50130 PARJ(169)=MIN(1D0,1.2D0*PARJ(169))
50131 Q2=PARJ(169)*ECM**2
50132 ALSPI=(3D0/4D0)*CF*PYALPS(Q2)/PARU(1)
50133 GOTO 100
50134 ELSEIF(MSTJ(110).EQ.2.AND.CUT.GT.0.0499D0) THEN
50135 CALL PYERRM(26,
50136 & '(PYXJET:) no allowed y cut value for Zhu parametrization')
50137 ENDIF
50138 CUT=0.26D0*(4D0*CUT)**(PARJ(152)+PARJ(153)+
50139 & PARJ(154))**(-1D0/3D0)
50140 IF(MSTJ(110).EQ.2) CUT=MAX(0.01D0,MIN(0.05D0,CUT))
50141 GOTO 100
50142 ENDIF
50143
50144
50145 ELSE
50146 ALSPI=PYALPS(ECM**2)/PARU(1)
50147 CUT=MAX(0.001D0,PARJ(125),(PARJ(126)/ECM)**2,EXP(-3D0/ALSPI))
50148 PARJ(152)=0D0
50149 IF(CUT.LT.0.25D0) PARJ(152)=(ALSPI/3D0)*((1D0-2D0*CUT)*
50150 & LOG((1D0-2D0*CUT)/CUT)+0.5D0*(9D0*CUT**2-1D0))
50151 PARJ(153)=0D0
50152 PARJ(154)=0D0
50153 ENDIF
50154
50155
50156 PARJ(150)=CUT
50157 IF(MSTJ(101).EQ.0.OR.MSTJ(101).EQ.5) THEN
50158 NJET=2
50159 ELSEIF(MSTJ(101).LE.0) THEN
50160 NJET=MIN(4,2-MSTJ(101))
50161 ELSE
50162 RNJ=PYR(0)
50163 NJET=2
50164 IF(PARJ(152)+PARJ(153)+PARJ(154).GT.RNJ) NJET=3
50165 IF(PARJ(154).GT.RNJ) NJET=4
50166 ENDIF
50167
50168 RETURN
50169 END
50170
50171
50172
50173
50174
50175
50176 SUBROUTINE PYX3JT(NJET,CUT,KFL,ECM,X1,X2)
50177
50178
50179 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
50180 IMPLICIT INTEGER(I-N)
50181 INTEGER PYK,PYCHGE,PYCOMP
50182
50183 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
50184 SAVE /PYDAT1/
50185
50186 DIMENSION ZHUP(5,12)
50187
50188
50189 DATA ((ZHUP(IC1,IC2),IC2=1,12),IC1=1,5)/
50190 &18.29D0, 89.56D0, 4.541D0, -52.09D0, -109.8D0, 24.90D0,
50191 &11.63D0, 3.683D0, 17.50D0,0.002440D0, -1.362D0,-0.3537D0,
50192 &11.42D0, 6.299D0, -22.55D0, -8.915D0, 59.25D0, -5.855D0,
50193 &-32.85D0, -1.054D0, -16.90D0,0.006489D0,-0.8156D0,0.01095D0,
50194 &7.847D0, -3.964D0, -35.83D0, 1.178D0, 29.39D0, 0.2806D0,
50195 &47.82D0, -12.36D0, -56.72D0, 0.04054D0,-0.4365D0, 0.6062D0,
50196 &5.441D0, -56.89D0, -50.27D0, 15.13D0, 114.3D0, -18.19D0,
50197 &97.05D0, -1.890D0, -139.9D0, 0.08153D0,-0.4984D0, 0.9439D0,
50198 &-17.65D0, 51.44D0, -58.32D0, 70.95D0, -255.7D0, -78.99D0,
50199 &476.9D0, 29.65D0, -239.3D0, 0.4745D0, -1.174D0, 6.081D0/
50200
50201
50202 DILOG(X)=X+X**2/4D0+X**3/9D0+X**4/16D0+X**5/25D0+X**6/36D0+
50203 &X**7/49D0
50204
50205
50206 MSTJ(120)=2
50207 MSTJ(121)=0
50208 PMQ=PYMASS(KFL)
50209 QME=(2D0*PMQ/ECM)**2
50210 IF(MSTJ(109).NE.1) THEN
50211 CUTL=LOG(CUT)
50212 CUTD=LOG(1D0/CUT-2D0)
50213 IF(MSTJ(109).EQ.0) THEN
50214 CF=4D0/3D0
50215 CN=3D0
50216 TR=2D0
50217 WTMX=MIN(20D0,37D0-6D0*CUTD)
50218 IF(MSTJ(110).EQ.2) WTMX=2D0*(7.5D0+80D0*CUT)
50219 ELSE
50220 CF=1D0
50221 CN=0D0
50222 TR=12D0
50223 WTMX=0D0
50224 ENDIF
50225
50226
50227 ALS2PI=PARU(118)/PARU(2)
50228 WTOPT=0D0
50229 IF(MSTJ(111).EQ.1) WTOPT=(33D0-2D0*MSTU(112))/6D0*
50230 & LOG(PARJ(169))*ALS2PI
50231 WTMAX=MAX(0D0,1D0+WTOPT+ALS2PI*WTMX)
50232
50233
50234 100 NJET=3
50235 110 Y13L=CUTL+CUTD*PYR(0)
50236 Y23L=CUTL+CUTD*PYR(0)
50237 Y13=EXP(Y13L)
50238 Y23=EXP(Y23L)
50239 Y12=1D0-Y13-Y23
50240 IF(Y12.LE.CUT) GOTO 110
50241 IF(Y13**2+Y23**2+2D0*Y12.LE.2D0*PYR(0)) GOTO 110
50242
50243
50244 IF(MSTJ(101).EQ.2.AND.MSTJ(110).LE.1) THEN
50245 Y12L=LOG(Y12)
50246 Y13M=LOG(1D0-Y13)
50247 Y23M=LOG(1D0-Y23)
50248 Y12M=LOG(1D0-Y12)
50249 IF(Y13.LE.0.5D0) Y13I=DILOG(Y13)
50250 IF(Y13.GE.0.5D0) Y13I=1.644934D0-Y13L*Y13M-DILOG(1D0-Y13)
50251 IF(Y23.LE.0.5D0) Y23I=DILOG(Y23)
50252 IF(Y23.GE.0.5D0) Y23I=1.644934D0-Y23L*Y23M-DILOG(1D0-Y23)
50253 IF(Y12.LE.0.5D0) Y12I=DILOG(Y12)
50254 IF(Y12.GE.0.5D0) Y12I=1.644934D0-Y12L*Y12M-DILOG(1D0-Y12)
50255 WT1=(Y13**2+Y23**2+2D0*Y12)/(Y13*Y23)
50256 WT2=CF*(-2D0*(CUTL-Y12L)**2-3D0*CUTL-1D0+3.289868D0+
50257 & 2D0*(2D0*CUTL-Y12L)*CUT/Y12)+
50258 & CN*((CUTL-Y12L)**2-(CUTL-Y13L)**2-(CUTL-Y23L)**2-
50259 & 11D0*CUTL/6D0+67D0/18D0+1.644934D0-(2D0*CUTL-Y12L)*CUT/Y12+
50260 & (2D0*CUTL-Y13L)*CUT/Y13+(2D0*CUTL-Y23L)*CUT/Y23)+
50261 & TR*(2D0*CUTL/3D0-10D0/9D0)+
50262 & CF*(Y12/(Y12+Y13)+Y12/(Y12+Y23)+(Y12+Y23)/Y13+(Y12+Y13)/Y23+
50263 & Y13L*(4D0*Y12**2+2D0*Y12*Y13+4D0*Y12*Y23+Y13*Y23)/
50264 & (Y12+Y23)**2+Y23L*(4D0*Y12**2+2D0*Y12*Y23+4D0*Y12*Y13+
50265 & Y13*Y23)/(Y12+Y13)**2)/WT1+
50266 & CN*(Y13L*Y13/(Y12+Y23)+Y23L*Y23/(Y12+Y13))/WT1+(CN-2D0*CF)*
50267 & ((Y12**2+(Y12+Y13)**2)*(Y12L*Y23L-Y12L*Y12M-Y23L*
50268 & Y23M+1.644934D0-Y12I-Y23I)/(Y13*Y23)+(Y12**2+(Y12+Y23)**2)*
50269 & (Y12L*Y13L-Y12L*Y12M-Y13L*Y13M+1.644934D0-Y12I-Y13I)/
50270 & (Y13*Y23)+(Y13**2+Y23**2)/(Y13*Y23*(Y13+Y23))-
50271 & 2D0*Y12L*Y12**2/(Y13+Y23)**2-4D0*Y12L*Y12/(Y13+Y23))/WT1-
50272 & CN*(Y13L*Y23L-Y13L*Y13M-Y23L*Y23M+1.644934D0-Y13I-Y23I)
50273 IF(1D0+WTOPT+ALS2PI*WT2.LE.0D0) MSTJ(121)=1
50274 IF(1D0+WTOPT+ALS2PI*WT2.LE.WTMAX*PYR(0)) GOTO 110
50275 PARJ(156)=(WTOPT+ALS2PI*WT2)/(1D0+WTOPT+ALS2PI*WT2)
50276
50277 ELSEIF(MSTJ(101).EQ.2.AND.MSTJ(110).EQ.2) THEN
50278
50279 ZX=(Y23-Y13)**2
50280 ZY=1D0-Y12
50281 IZA=0
50282 DO 120 IY=1,5
50283 IF(ABS(CUT-0.01D0*IY).LT.0.0001D0) IZA=IY
50284 120 CONTINUE
50285 IF(IZA.NE.0) THEN
50286 IZ=IZA
50287 WT2=ZHUP(IZ,1)+ZHUP(IZ,2)*ZX+ZHUP(IZ,3)*ZX**2+(ZHUP(IZ,4)+
50288 & ZHUP(IZ,5)*ZX)*ZY+(ZHUP(IZ,6)+ZHUP(IZ,7)*ZX)*ZY**2+
50289 & (ZHUP(IZ,8)+ZHUP(IZ,9)*ZX)*ZY**3+ZHUP(IZ,10)/(ZX-ZY**2)+
50290 & ZHUP(IZ,11)/(1D0-ZY)+ZHUP(IZ,12)/ZY
50291 ELSE
50292 IZ=100D0*CUT
50293 WTL=ZHUP(IZ,1)+ZHUP(IZ,2)*ZX+ZHUP(IZ,3)*ZX**2+(ZHUP(IZ,4)+
50294 & ZHUP(IZ,5)*ZX)*ZY+(ZHUP(IZ,6)+ZHUP(IZ,7)*ZX)*ZY**2+
50295 & (ZHUP(IZ,8)+ZHUP(IZ,9)*ZX)*ZY**3+ZHUP(IZ,10)/(ZX-ZY**2)+
50296 & ZHUP(IZ,11)/(1D0-ZY)+ZHUP(IZ,12)/ZY
50297 IZ=IZ+1
50298 WTU=ZHUP(IZ,1)+ZHUP(IZ,2)*ZX+ZHUP(IZ,3)*ZX**2+(ZHUP(IZ,4)+
50299 & ZHUP(IZ,5)*ZX)*ZY+(ZHUP(IZ,6)+ZHUP(IZ,7)*ZX)*ZY**2+
50300 & (ZHUP(IZ,8)+ZHUP(IZ,9)*ZX)*ZY**3+ZHUP(IZ,10)/(ZX-ZY**2)+
50301 & ZHUP(IZ,11)/(1D0-ZY)+ZHUP(IZ,12)/ZY
50302 WT2=WTL+(WTU-WTL)*(100D0*CUT+1D0-IZ)
50303 ENDIF
50304 IF(1D0+WTOPT+2D0*ALS2PI*WT2.LE.0D0) MSTJ(121)=1
50305 IF(1D0+WTOPT+2D0*ALS2PI*WT2.LE.WTMAX*PYR(0)) GOTO 110
50306 PARJ(156)=(WTOPT+2D0*ALS2PI*WT2)/(1D0+WTOPT+2D0*ALS2PI*WT2)
50307 ENDIF
50308
50309
50310 X1=1D0-Y23
50311 X2=1D0-Y13
50312 X3=1D0-Y12
50313 IF(4D0*Y23*Y13*Y12/X3**2.LE.QME) NJET=2
50314 IF(MOD(MSTJ(103),4).GE.2.AND.IABS(MSTJ(101)).LE.1.AND.QME*X3+
50315 & 0.5D0*QME**2+(0.5D0*QME+0.25D0*QME**2)*((1D0-X2)/(1D0-X1)+
50316 & (1D0-X1)/(1D0-X2)).GT.(X1**2+X2**2)*PYR(0)) NJET=2
50317 IF(MSTJ(101).EQ.-1.AND.NJET.EQ.2) GOTO 100
50318
50319
50320 ELSE
50321 130 NJET=3
50322 140 X3=SQRT(4D0*CUT**2+PYR(0)*((1D0-CUT)**2-4D0*CUT**2))
50323 IF(LOG((X3-CUT)/CUT).LE.PYR(0)*LOG((1D0-2D0*CUT)/CUT)) GOTO 140
50324 YD=SIGN(2D0*CUT*((X3-CUT)/CUT)**PYR(0)-X3,PYR(0)-0.5D0)
50325 X1=1D0-0.5D0*(X3+YD)
50326 X2=1D0-0.5D0*(X3-YD)
50327 IF(4D0*(1D0-X1)*(1D0-X2)*(1D0-X3)/X3**2.LE.QME) NJET=2
50328 IF(MSTJ(102).GE.2) THEN
50329 IF(X3**2-2D0*(1D0+X3)*(1D0-X1)*(1D0-X2)*PARJ(171).LT.
50330 & X3**2*PYR(0)) NJET=2
50331 ENDIF
50332 IF(MSTJ(101).EQ.-1.AND.NJET.EQ.2) GOTO 130
50333 ENDIF
50334
50335 RETURN
50336 END
50337
50338
50339
50340
50341
50342
50343 SUBROUTINE PYX4JT(NJET,CUT,KFL,ECM,KFLN,X1,X2,X4,X12,X14)
50344
50345
50346 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
50347 IMPLICIT INTEGER(I-N)
50348 INTEGER PYK,PYCHGE,PYCOMP
50349
50350 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
50351 SAVE /PYDAT1/
50352
50353 DIMENSION WTA(4),WTB(4),WTC(4),WTD(4),WTE(4)
50354
50355
50356 PMQ=PYMASS(KFL)
50357 QME=(2D0*PMQ/ECM)**2
50358 CT=LOG(1D0/CUT-5D0)
50359 IF(MSTJ(109).EQ.0) THEN
50360 CF=4D0/3D0
50361 CN=3D0
50362 TR=2.5D0
50363 ELSE
50364 CF=1D0
50365 CN=0D0
50366 TR=15D0
50367 ENDIF
50368
50369
50370 100 NJET=4
50371 IT=1
50372 IF(PARJ(155).GT.PYR(0)) IT=2
50373 IF(MSTJ(101).LE.-3) IT=-MSTJ(101)-2
50374 IF(IT.EQ.1) WTMX=0.7D0/CUT**2
50375 IF(IT.EQ.1.AND.MSTJ(109).EQ.2) WTMX=0.6D0/CUT**2
50376 IF(IT.EQ.2) WTMX=0.1125D0*CF*TR/CUT**2
50377 ID=1
50378
50379
50380 110 Y134=3D0*CUT+(1D0-6D0*CUT)*PYR(0)
50381 Y234=3D0*CUT+(1D0-6D0*CUT)*PYR(0)
50382 IF(IT.EQ.1) Y34=(1D0-5D0*CUT)*EXP(-CT*PYR(0))
50383 IF(IT.EQ.2) Y34=CUT+(1D0-6D0*CUT)*PYR(0)
50384 IF(Y34.LE.Y134+Y234-1D0.OR.Y34.GE.Y134*Y234) GOTO 110
50385 VT=PYR(0)
50386 CP=COS(PARU(1)*PYR(0))
50387 Y14=(Y134-Y34)*VT
50388 Y13=Y134-Y14-Y34
50389 VB=Y34*(1D0-Y134-Y234+Y34)/((Y134-Y34)*(Y234-Y34))
50390 Y24=0.5D0*(Y234-Y34)*(1D0-4D0*SQRT(MAX(0D0,VT*(1D0-VT)*
50391 &VB*(1D0-VB)))*CP-(1D0-2D0*VT)*(1D0-2D0*VB))
50392 Y23=Y234-Y34-Y24
50393 Y12=1D0-Y134-Y23-Y24
50394 IF(MIN(Y12,Y13,Y14,Y23,Y24).LE.CUT) GOTO 110
50395 Y123=Y12+Y13+Y23
50396 Y124=Y12+Y14+Y24
50397
50398
50399 IC=0
50400 WTTOT=0D0
50401 120 IC=IC+1
50402 IF(IT.EQ.1) THEN
50403 WTA(IC)=(Y12*Y34**2-Y13*Y24*Y34+Y14*Y23*Y34+3D0*Y12*Y23*Y34+
50404 & 3D0*Y12*Y14*Y34+4D0*Y12**2*Y34-Y13*Y23*Y24+2D0*Y12*Y23*Y24-
50405 & Y13*Y14*Y24-2D0*Y12*Y13*Y24+2D0*Y12**2*Y24+Y14*Y23**2+2D0*Y12*
50406 & Y23**2+Y14**2*Y23+4D0*Y12*Y14*Y23+4D0*Y12**2*Y23+2D0*Y12*Y14**2+
50407 & 2D0*Y12*Y13*Y14+4D0*Y12**2*Y14+2D0*Y12**2*Y13+2D0*Y12**3)/
50408 & (2D0*Y13*Y134*Y234*Y24)+(Y24*Y34+Y12*Y34+Y13*Y24-
50409 & Y14*Y23+Y12*Y13)/(Y13*Y134**2)+2D0*Y23*(1D0-Y13)/
50410 & (Y13*Y134*Y24)+Y34/(2D0*Y13*Y24)
50411 WTB(IC)=(Y12*Y24*Y34+Y12*Y14*Y34-Y13*Y24**2+Y13*Y14*Y24+2D0*Y12*
50412 & Y14*Y24)/(Y13*Y134*Y23*Y14)+Y12*(1D0+Y34)*Y124/(Y134*Y234*Y14*
50413 & Y24)-(2D0*Y13*Y24+Y14**2+Y13*Y23+2D0*Y12*Y13)/(Y13*Y134*Y14)+
50414 & Y12*Y123*Y124/(2D0*Y13*Y14*Y23*Y24)
50415 WTC(IC)=-(5D0*Y12*Y34**2+2D0*Y12*Y24*Y34+2D0*Y12*Y23*Y34+
50416 & 2D0*Y12*Y14*Y34+2D0*Y12*Y13*Y34+4D0*Y12**2*Y34-Y13*Y24**2+
50417 & Y14*Y23*Y24+Y13*Y23*Y24+Y13*Y14*Y24-Y12*Y14*Y24-Y13**2*Y24-
50418 & 3D0*Y12*Y13*Y24-Y14*Y23**2-Y14**2*Y23+Y13*Y14*Y23-
50419 & 3D0*Y12*Y14*Y23-Y12*Y13*Y23)/(4D0*Y134*Y234*Y34**2)+
50420 & (3D0*Y12*Y34**2-3D0*Y13*Y24*Y34+3D0*Y12*Y24*Y34+
50421 & 3D0*Y14*Y23*Y34-Y13*Y24**2-Y12*Y23*Y34+6D0*Y12*Y14*Y34+
50422 & 2D0*Y12*Y13*Y34-2D0*Y12**2*Y34+Y14*Y23*Y24-3D0*Y13*Y23*Y24-
50423 & 2D0*Y13*Y14*Y24+4D0*Y12*Y14*Y24+2D0*Y12*Y13*Y24+
50424 & 3D0*Y14*Y23**2+2D0*Y14**2*Y23+2D0*Y14**2*Y12+
50425 & 2D0*Y12**2*Y14+6D0*Y12*Y14*Y23-2D0*Y12*Y13**2-
50426 & 2D0*Y12**2*Y13)/(4D0*Y13*Y134*Y234*Y34)
50427 WTC(IC)=WTC(IC)+(2D0*Y12*Y34**2-2D0*Y13*Y24*Y34+Y12*Y24*Y34+
50428 & 4D0*Y13*Y23*Y34+4D0*Y12*Y14*Y34+2D0*Y12*Y13*Y34+2D0*Y12**2*Y34-
50429 & Y13*Y24**2+3D0*Y14*Y23*Y24+4D0*Y13*Y23*Y24-2D0*Y13*Y14*Y24+
50430 & 4D0*Y12*Y14*Y24+2D0*Y12*Y13*Y24+2D0*Y14*Y23**2+4D0*Y13*Y23**2+
50431 & 2D0*Y13*Y14*Y23+2D0*Y12*Y14*Y23+4D0*Y12*Y13*Y23+2D0*Y12*Y14**2+
50432 & 4D0*Y12**2*Y13+4D0*Y12*Y13*Y14+2D0*Y12**2*Y14)/
50433 & (4D0*Y13*Y134*Y24*Y34)-(Y12*Y34**2-2D0*Y14*Y24*Y34-
50434 & 2D0*Y13*Y24*Y34-Y14*Y23*Y34+Y13*Y23*Y34+Y12*Y14*Y34+
50435 & 2D0*Y12*Y13*Y34-2D0*Y14**2*Y24-4D0*Y13*Y14*Y24-
50436 & 4D0*Y13**2*Y24-Y14**2*Y23-Y13**2*Y23+Y12*Y13*Y14-
50437 & Y12*Y13**2)/(2D0*Y13*Y34*Y134**2)+(Y12*Y34**2-
50438 & 4D0*Y14*Y24*Y34-2D0*Y13*Y24*Y34-2D0*Y14*Y23*Y34-
50439 & 4D0*Y13*Y23*Y34-4D0*Y12*Y14*Y34-4D0*Y12*Y13*Y34-
50440 & 2D0*Y13*Y14*Y24+2D0*Y13**2*Y24+2D0*Y14**2*Y23-
50441 & 2D0*Y13*Y14*Y23-Y12*Y14**2-6D0*Y12*Y13*Y14-
50442 & Y12*Y13**2)/(4D0*Y34**2*Y134**2)
50443 WTTOT=WTTOT+Y34*CF*(CF*WTA(IC)+(CF-0.5D0*CN)*WTB(IC)+
50444 & CN*WTC(IC))/8D0
50445 ELSE
50446 WTD(IC)=(Y13*Y23*Y34+Y12*Y23*Y34-Y12**2*Y34+Y13*Y23*Y24+2D0*Y12*
50447 & Y23*Y24-Y14*Y23**2+Y12*Y13*Y24+Y12*Y14*Y23+Y12*Y13*Y14)/(Y13**2*
50448 & Y123**2)-(Y12*Y34**2-Y13*Y24*Y34+Y12*Y24*Y34-Y14*Y23*Y34-Y12*
50449 & Y23*Y34-Y13*Y24**2+Y14*Y23*Y24-Y13*Y23*Y24-Y13**2*Y24+Y14*
50450 & Y23**2)/(Y13**2*Y123*Y134)+(Y13*Y14*Y12+Y34*Y14*Y12-Y34**2*Y12+
50451 & Y13*Y14*Y24+2D0*Y34*Y14*Y24-Y23*Y14**2+Y34*Y13*Y24+Y34*Y23*Y14+
50452 & Y34*Y13*Y23)/(Y13**2*Y134**2)-(Y34*Y12**2-Y13*Y24*Y12+Y34*Y24*
50453 & Y12-Y23*Y14*Y12-Y34*Y14*Y12-Y13*Y24**2+Y23*Y14*Y24-Y13*Y14*Y24-
50454 & Y13**2*Y24+Y23*Y14**2)/(Y13**2*Y134*Y123)
50455 WTE(IC)=(Y12*Y34*(Y23-Y24+Y14+Y13)+Y13*Y24**2-Y14*Y23*Y24+Y13*
50456 & Y23*Y24+Y13*Y14*Y24+Y13**2*Y24-Y14*Y23*(Y14+Y23+Y13))/(Y13*Y23*
50457 & Y123*Y134)-Y12*(Y12*Y34-Y23*Y24-Y13*Y24-Y14*Y23-Y14*Y13)/(Y13*
50458 & Y23*Y123**2)-(Y14+Y13)*(Y24+Y23)*Y34/(Y13*Y23*Y134*Y234)+
50459 & (Y12*Y34*(Y14-Y24+Y23+Y13)+Y13*Y24**2-Y23*Y14*Y24+Y13*Y14*Y24+
50460 & Y13*Y23*Y24+Y13**2*Y24-Y23*Y14*(Y14+Y23+Y13))/(Y13*Y14*Y134*
50461 & Y123)-Y34*(Y34*Y12-Y14*Y24-Y13*Y24-Y23*Y14-Y23*Y13)/(Y13*Y14*
50462 & Y134**2)-(Y23+Y13)*(Y24+Y14)*Y12/(Y13*Y14*Y123*Y124)
50463 WTTOT=WTTOT+CF*(TR*WTD(IC)+(CF-0.5D0*CN)*WTE(IC))/16D0
50464 ENDIF
50465
50466
50467 130 IF(IC.EQ.1.OR.IC.EQ.3.OR.ID.EQ.2.OR.ID.EQ.3) THEN
50468 YSAV=Y13
50469 Y13=Y14
50470 Y14=YSAV
50471 YSAV=Y23
50472 Y23=Y24
50473 Y24=YSAV
50474 YSAV=Y123
50475 Y123=Y124
50476 Y124=YSAV
50477 ENDIF
50478 IF(IC.EQ.2.OR.IC.EQ.4.OR.ID.EQ.3.OR.ID.EQ.4) THEN
50479 YSAV=Y13
50480 Y13=Y23
50481 Y23=YSAV
50482 YSAV=Y14
50483 Y14=Y24
50484 Y24=YSAV
50485 YSAV=Y134
50486 Y134=Y234
50487 Y234=YSAV
50488 ENDIF
50489 IF(IC.LE.3) GOTO 120
50490 IF(ID.EQ.1.AND.WTTOT.LT.PYR(0)*WTMX) GOTO 110
50491 IC=5
50492
50493
50494 IF(IT.EQ.1) THEN
50495 IF(MSTJ(109).EQ.0.AND.ID.EQ.1) THEN
50496 PARJ(156)=Y34*(2D0*(WTA(1)+WTA(2)+WTA(3)+WTA(4))+4D0*(WTC(1)+
50497 & WTC(2)+WTC(3)+WTC(4)))/(9D0*WTTOT)
50498 IF(WTA(2)+WTA(4)+2D0*(WTC(2)+WTC(4)).GT.PYR(0)*(WTA(1)+WTA(2)+
50499 & WTA(3)+WTA(4)+2D0*(WTC(1)+WTC(2)+WTC(3)+WTC(4)))) ID=2
50500 IF(ID.EQ.2) GOTO 130
50501 ELSEIF(MSTJ(109).EQ.2.AND.ID.EQ.1) THEN
50502 PARJ(156)=Y34*(WTA(1)+WTA(2)+WTA(3)+WTA(4))/(8D0*WTTOT)
50503 IF(WTA(2)+WTA(4).GT.PYR(0)*(WTA(1)+WTA(2)+WTA(3)+WTA(4))) ID=2
50504 IF(ID.EQ.2) GOTO 130
50505 ENDIF
50506 MSTJ(120)=3
50507 IF(MSTJ(109).EQ.0.AND.0.5D0*Y34*(WTC(1)+WTC(2)+WTC(3)+
50508 & WTC(4)).GT.PYR(0)*WTTOT) MSTJ(120)=4
50509 KFLN=21
50510
50511
50512 IF(Y12.LE.CUT+QME) NJET=2
50513 IF(NJET.EQ.2) GOTO 150
50514 Q12=0.5D0*(1D0-SQRT(1D0-QME/Y12))
50515 X1=1D0-(1D0-Q12)*Y234-Q12*Y134
50516 X4=1D0-(1D0-Q12)*Y134-Q12*Y234
50517 X2=1D0-Y124
50518 X12=(1D0-Q12)*Y13+Q12*Y23
50519 X14=Y12-0.5D0*QME
50520 IF(Y134*Y234/((1D0-X1)*(1D0-X4)).LE.PYR(0)) NJET=2
50521
50522
50523 ELSE
50524 IF(ID.EQ.1) THEN
50525 WTR=PYR(0)*(WTD(1)+WTD(2)+WTD(3)+WTD(4))
50526 IF(WTR.LT.WTD(2)+WTD(3)+WTD(4)) ID=2
50527 IF(WTR.LT.WTD(3)+WTD(4)) ID=3
50528 IF(WTR.LT.WTD(4)) ID=4
50529 IF(ID.GE.2) GOTO 130
50530 ENDIF
50531 MSTJ(120)=5
50532 PARJ(156)=CF*TR*(WTD(1)+WTD(2)+WTD(3)+WTD(4))/(16D0*WTTOT)
50533 140 KFLN=1+INT(5D0*PYR(0))
50534 IF(KFLN.NE.KFL.AND.0.2D0*PARJ(156).LE.PYR(0)) GOTO 140
50535 IF(KFLN.EQ.KFL.AND.1D0-0.8D0*PARJ(156).LE.PYR(0)) GOTO 140
50536 IF(KFLN.GT.MSTJ(104)) NJET=2
50537 PMQN=PYMASS(KFLN)
50538 QMEN=(2D0*PMQN/ECM)**2
50539
50540
50541 IF(Y24.LE.CUT+QME.OR.Y13.LE.1.1D0*QMEN) NJET=2
50542 IF(NJET.EQ.2) GOTO 150
50543 Q24=0.5D0*(1D0-SQRT(1D0-QME/Y24))
50544 Q13=0.5D0*(1D0-SQRT(1D0-QMEN/Y13))
50545 X1=1D0-(1D0-Q24)*Y123-Q24*Y134
50546 X4=1D0-(1D0-Q24)*Y134-Q24*Y123
50547 X2=1D0-(1D0-Q13)*Y234-Q13*Y124
50548 X12=(1D0-Q24)*((1D0-Q13)*Y14+Q13*Y34)+Q24*((1D0-Q13)*Y12+
50549 & Q13*Y23)
50550 X14=Y24-0.5D0*QME
50551 X34=(1D0-Q24)*((1D0-Q13)*Y23+Q13*Y12)+Q24*((1D0-Q13)*Y34+
50552 & Q13*Y14)
50553 IF(PMQ**2+PMQN**2+MIN(X12,X34)*ECM**2.LE.
50554 & (PARJ(127)+PMQ+PMQN)**2) NJET=2
50555 IF(Y123*Y134/((1D0-X1)*(1D0-X4)).LE.PYR(0)) NJET=2
50556 ENDIF
50557 150 IF(MSTJ(101).LE.-2.AND.NJET.EQ.2) GOTO 100
50558
50559 RETURN
50560 END
50561
50562
50563
50564
50565
50566
50567 SUBROUTINE PYXDIF(NC,NJET,KFL,ECM,CHI,THE,PHI)
50568
50569
50570 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
50571 IMPLICIT INTEGER(I-N)
50572 INTEGER PYK,PYCHGE,PYCOMP
50573
50574 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
50575 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
50576 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
50577 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
50578
50579
50580 QF=KCHG(KFL,1)/3D0
50581 POLL=1D0-PARJ(131)*PARJ(132)
50582 POLD=PARJ(132)-PARJ(131)
50583 IF(MSTJ(102).LE.1.OR.MSTJ(109).EQ.1) THEN
50584 HF1=POLL
50585 HF2=0D0
50586 HF3=PARJ(133)**2
50587 HF4=0D0
50588
50589
50590 ELSE
50591 SFF=1D0/(16D0*PARU(102)*(1D0-PARU(102)))
50592 SFW=ECM**4/((ECM**2-PARJ(123)**2)**2+(PARJ(123)*PARJ(124))**2)
50593 SFI=SFW*(1D0-(PARJ(123)/ECM)**2)
50594 AE=-1D0
50595 VE=4D0*PARU(102)-1D0
50596 AF=SIGN(1D0,QF)
50597 VF=AF-4D0*QF*PARU(102)
50598 HF1=QF**2*POLL-2D0*QF*VF*SFI*SFF*(VE*POLL-AE*POLD)+
50599 & (VF**2+AF**2)*SFW*SFF**2*((VE**2+AE**2)*POLL-2D0*VE*AE*POLD)
50600 HF2=-2D0*QF*AF*SFI*SFF*(AE*POLL-VE*POLD)+2D0*VF*AF*SFW*SFF**2*
50601 & (2D0*VE*AE*POLL-(VE**2+AE**2)*POLD)
50602 HF3=PARJ(133)**2*(QF**2-2D0*QF*VF*SFI*SFF*VE+(VF**2+AF**2)*
50603 & SFW*SFF**2*(VE**2-AE**2))
50604 HF4=-PARJ(133)**2*2D0*QF*VF*SFW*(PARJ(123)*PARJ(124)/ECM**2)*
50605 & SFF*AE
50606 ENDIF
50607
50608
50609 SQ2=SQRT(2D0)
50610 QME=0D0
50611 IF(MSTJ(103).GE.4.AND.IABS(MSTJ(101)).LE.1.AND.MSTJ(102).LE.1.AND.
50612 &MSTJ(109).NE.1) QME=(2D0*PYMASS(KFL)/ECM)**2
50613 IF(NJET.EQ.2) THEN
50614 SIGU=4D0*SQRT(1D0-QME)
50615 SIGL=2D0*QME*SQRT(1D0-QME)
50616 SIGT=0D0
50617 SIGI=0D0
50618 SIGA=0D0
50619 SIGP=4D0
50620
50621
50622 ELSE
50623 IF(NJET.EQ.3) THEN
50624 X1=2D0*P(NC+1,4)/ECM
50625 X2=2D0*P(NC+3,4)/ECM
50626 ELSE
50627 ECMR=P(NC+1,4)+P(NC+4,4)+SQRT((P(NC+2,1)+P(NC+3,1))**2+
50628 & (P(NC+2,2)+P(NC+3,2))**2+(P(NC+2,3)+P(NC+3,3))**2)
50629 X1=2D0*P(NC+1,4)/ECMR
50630 X2=2D0*P(NC+4,4)/ECMR
50631 ENDIF
50632
50633
50634 XQ=(1D0-X1)/(1D0-X2)
50635 CT12=(X1*X2-2D0*X1-2D0*X2+2D0+QME)/SQRT((X1**2-QME)*(X2**2-QME))
50636 ST12=SQRT(1D0-CT12**2)
50637 IF(MSTJ(109).NE.1) THEN
50638 SIGU=2D0*X1**2+X2**2*(1D0+CT12**2)-QME*(3D0+CT12**2-X1-X2)-
50639 & QME*X1/XQ+0.5D0*QME*((X2**2-QME)*ST12**2-2D0*X2)*XQ
50640 SIGL=(X2*ST12)**2-QME*(3D0-CT12**2-2.5D0*(X1+X2)+X1*X2+QME)+
50641 & 0.5D0*QME*(X1**2-X1-QME)/XQ+0.5D0*QME*((X2**2-QME)*CT12**2-
50642 & X2)*XQ
50643 SIGT=0.5D0*(X2**2-QME-0.5D0*QME*(X2**2-QME)/XQ)*ST12**2
50644 SIGI=((1D0-0.5D0*QME*XQ)*(X2**2-QME)*ST12*CT12+
50645 & QME*(1D0-X1-X2+0.5D0*X1*X2+0.5D0*QME)*ST12/CT12)/SQ2
50646 SIGA=X2**2*ST12/SQ2
50647 SIGP=2D0*(X1**2-X2**2*CT12)
50648
50649
50650 ELSE
50651 X3=2D0-X1-X2
50652 XT=X2*ST12
50653 CT13=SQRT(MAX(0D0,1D0-(XT/X3)**2))
50654 SIGU=(1D0-PARJ(171))*(X3**2-0.5D0*XT**2)+
50655 & PARJ(171)*(X3**2-0.5D0*XT**2-4D0*(1D0-X1)*(1D0-X2)**2/X1)
50656 SIGL=(1D0-PARJ(171))*0.5D0*XT**2+
50657 & PARJ(171)*0.5D0*(1D0-X1)**2*XT**2
50658 SIGT=(1D0-PARJ(171))*0.25D0*XT**2+
50659 & PARJ(171)*0.25D0*XT**2*(1D0-2D0*X1)
50660 SIGI=-(0.5D0/SQ2)*((1D0-PARJ(171))*XT*X3*CT13+
50661 & PARJ(171)*XT*((1D0-2D0*X1)*X3*CT13-X1*(X1-X2)))
50662 SIGA=(0.25D0/SQ2)*XT*(2D0*(1D0-X1)-X1*X3)
50663 SIGP=X3**2-2D0*(1D0-X1)*(1D0-X2)/X1
50664 ENDIF
50665 ENDIF
50666
50667
50668 HF1A=ABS(HF1)
50669 HF2A=ABS(HF2)
50670 HF3A=ABS(HF3)
50671 HF4A=ABS(HF4)
50672 SIGMAX=(2D0*HF1A+HF3A+HF4A)*ABS(SIGU)+2D0*(HF1A+HF3A+HF4A)*
50673 &ABS(SIGL)+2D0*(HF1A+2D0*HF3A+2D0*HF4A)*ABS(SIGT)+2D0*SQ2*
50674 &(HF1A+2D0*HF3A+2D0*HF4A)*ABS(SIGI)+4D0*SQ2*HF2A*ABS(SIGA)+
50675 &2D0*HF2A*ABS(SIGP)
50676
50677
50678 100 CHI=PARU(2)*PYR(0)
50679 CTHE=2D0*PYR(0)-1D0
50680 PHI=PARU(2)*PYR(0)
50681 CCHI=COS(CHI)
50682 SCHI=SIN(CHI)
50683 C2CHI=COS(2D0*CHI)
50684 S2CHI=SIN(2D0*CHI)
50685 THE=ACOS(CTHE)
50686 STHE=SIN(THE)
50687 C2PHI=COS(2D0*(PHI-PARJ(134)))
50688 S2PHI=SIN(2D0*(PHI-PARJ(134)))
50689 SIG=((1D0+CTHE**2)*HF1+STHE**2*(C2PHI*HF3-S2PHI*HF4))*SIGU+
50690 &2D0*(STHE**2*HF1-STHE**2*(C2PHI*HF3-S2PHI*HF4))*SIGL+
50691 &2D0*(STHE**2*C2CHI*HF1+((1D0+CTHE**2)*C2CHI*C2PHI-2D0*CTHE*S2CHI*
50692 &S2PHI)*HF3-((1D0+CTHE**2)*C2CHI*S2PHI+2D0*CTHE*S2CHI*C2PHI)*HF4)*
50693 &SIGT-2D0*SQ2*(2D0*STHE*CTHE*CCHI*HF1-2D0*STHE*(CTHE*CCHI*C2PHI-
50694 &SCHI*S2PHI)*HF3+2D0*STHE*(CTHE*CCHI*S2PHI+SCHI*C2PHI)*HF4)*SIGI+
50695 &4D0*SQ2*STHE*CCHI*HF2*SIGA+2D0*CTHE*HF2*SIGP
50696 IF(SIG.LT.SIGMAX*PYR(0)) GOTO 100
50697
50698 RETURN
50699 END
50700
50701
50702
50703
50704
50705
50706
50707 SUBROUTINE PYONIA(KFL,ECM)
50708
50709
50710 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
50711 IMPLICIT INTEGER(I-N)
50712 INTEGER PYK,PYCHGE,PYCOMP
50713
50714 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
50715 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
50716 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
50717 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
50718
50719
50720 IF(MSTU(12).GE.1) CALL PYLIST(0)
50721 IF(KFL.LT.0.OR.KFL.GT.8) THEN
50722 CALL PYERRM(16,'(PYONIA:) called with unknown flavour code')
50723 IF(MSTU(21).GE.1) RETURN
50724 ENDIF
50725 IF(ECM.LT.PARJ(127)+2.02D0*PARF(101)) THEN
50726 CALL PYERRM(16,'(PYONIA:) called with too small CM energy')
50727 IF(MSTU(21).GE.1) RETURN
50728 ENDIF
50729
50730
50731 NC=0
50732 IF(MSTJ(115).GE.2) THEN
50733 NC=NC+2
50734 CALL PY1ENT(NC-1,11,0.5D0*ECM,0D0,0D0)
50735 K(NC-1,1)=21
50736 CALL PY1ENT(NC,-11,0.5D0*ECM,PARU(1),0D0)
50737 K(NC,1)=21
50738 ENDIF
50739 KFLC=IABS(KFL)
50740 IF(MSTJ(115).GE.3.AND.KFLC.GE.5) THEN
50741 NC=NC+1
50742 KF=110*KFLC+3
50743 MSTU10=MSTU(10)
50744 MSTU(10)=1
50745 P(NC,5)=ECM
50746 CALL PY1ENT(NC,KF,ECM,0D0,0D0)
50747 K(NC,1)=21
50748 K(NC,3)=1
50749 MSTU(10)=MSTU10
50750 ENDIF
50751
50752
50753 NTRY=0
50754 100 X1=PYR(0)
50755 X2=PYR(0)
50756 X3=2D0-X1-X2
50757 IF(X3.GE.1D0.OR.((1D0-X1)/(X2*X3))**2+((1D0-X2)/(X1*X3))**2+
50758 &((1D0-X3)/(X1*X2))**2.LE.2D0*PYR(0)) GOTO 100
50759 NTRY=NTRY+1
50760 NJET=3
50761 IF(MSTJ(101).LE.4) CALL PY3ENT(NC+1,21,21,21,ECM,X1,X3)
50762 IF(MSTJ(101).GE.5) CALL PY3ENT(-(NC+1),21,21,21,ECM,X1,X3)
50763
50764
50765 MSTU(111)=MSTJ(108)
50766 IF(MSTJ(108).EQ.2.AND.(MSTJ(101).EQ.0.OR.MSTJ(101).EQ.1))
50767 &MSTU(111)=1
50768 PARU(112)=PARJ(121)
50769 IF(MSTU(111).EQ.2) PARU(112)=PARJ(122)
50770 QF=0D0
50771 IF(KFLC.NE.0) QF=KCHG(KFLC,1)/3D0
50772 RGAM=7.2D0*QF**2*PARU(101)/PYALPS(ECM**2)
50773 MK=0
50774 ECMC=ECM
50775 IF(PYR(0).GT.RGAM/(1D0+RGAM)) THEN
50776 IF(1D0-MAX(X1,X2,X3).LE.MAX((PARJ(126)/ECM)**2,PARJ(125)))
50777 & NJET=2
50778 IF(NJET.EQ.2.AND.MSTJ(101).LE.4) CALL PY2ENT(NC+1,21,21,ECM)
50779 IF(NJET.EQ.2.AND.MSTJ(101).GE.5) CALL PY2ENT(-(NC+1),21,21,ECM)
50780 ELSE
50781 MK=1
50782 ECMC=SQRT(1D0-X1)*ECM
50783 IF(ECMC.LT.2D0*PARJ(127)) GOTO 100
50784 K(NC+1,1)=1
50785 K(NC+1,2)=22
50786 K(NC+1,4)=0
50787 K(NC+1,5)=0
50788 IF(MSTJ(101).GE.5) K(NC+2,4)=MSTU(5)*(NC+3)
50789 IF(MSTJ(101).GE.5) K(NC+2,5)=MSTU(5)*(NC+3)
50790 IF(MSTJ(101).GE.5) K(NC+3,4)=MSTU(5)*(NC+2)
50791 IF(MSTJ(101).GE.5) K(NC+3,5)=MSTU(5)*(NC+2)
50792 NJET=2
50793 IF(ECMC.LT.4D0*PARJ(127)) THEN
50794 MSTU10=MSTU(10)
50795 MSTU(10)=1
50796 P(NC+2,5)=ECMC
50797 CALL PY1ENT(NC+2,83,0.5D0*(X2+X3)*ECM,PARU(1),0D0)
50798 MSTU(10)=MSTU10
50799 NJET=0
50800 ENDIF
50801 ENDIF
50802 DO 110 IP=NC+1,N
50803 K(IP,3)=K(IP,3)+(MSTJ(115)/2)+(KFLC/5)*(MSTJ(115)/3)*(NC-1)
50804 110 CONTINUE
50805
50806
50807 IF(MSTJ(106).EQ.1) THEN
50808 SQ2=SQRT(2D0)
50809 HF1=1D0-PARJ(131)*PARJ(132)
50810 HF3=PARJ(133)**2
50811 CT13=(X1*X3-2D0*X1-2D0*X3+2D0)/(X1*X3)
50812 ST13=SQRT(1D0-CT13**2)
50813 SIGL=0.5D0*X3**2*((1D0-X2)**2+(1D0-X3)**2)*ST13**2
50814 SIGU=(X1*(1D0-X1))**2+(X2*(1D0-X2))**2+(X3*(1D0-X3))**2-SIGL
50815 SIGT=0.5D0*SIGL
50816 SIGI=(SIGL*CT13/ST13+0.5D0*X1*X3*(1D0-X2)**2*ST13)/SQ2
50817 SIGMAX=(2D0*HF1+HF3)*ABS(SIGU)+2D0*(HF1+HF3)*ABS(SIGL)+2D0*(HF1+
50818 & 2D0*HF3)*ABS(SIGT)+2D0*SQ2*(HF1+2D0*HF3)*ABS(SIGI)
50819
50820
50821 120 CHI=PARU(2)*PYR(0)
50822 CTHE=2D0*PYR(0)-1D0
50823 PHI=PARU(2)*PYR(0)
50824 CCHI=COS(CHI)
50825 SCHI=SIN(CHI)
50826 C2CHI=COS(2D0*CHI)
50827 S2CHI=SIN(2D0*CHI)
50828 THE=ACOS(CTHE)
50829 STHE=SIN(THE)
50830 C2PHI=COS(2D0*(PHI-PARJ(134)))
50831 S2PHI=SIN(2D0*(PHI-PARJ(134)))
50832 SIG=((1D0+CTHE**2)*HF1+STHE**2*C2PHI*HF3)*SIGU+2D0*(STHE**2*HF1-
50833 & STHE**2*C2PHI*HF3)*SIGL+2D0*(STHE**2*C2CHI*HF1+((1D0+CTHE**2)*
50834 & C2CHI*C2PHI-2D0*CTHE*S2CHI*S2PHI)*HF3)*SIGT-
50835 & 2D0*SQ2*(2D0*STHE*CTHE*CCHI*HF1-2D0*STHE*
50836 & (CTHE*CCHI*C2PHI-SCHI*S2PHI)*HF3)*SIGI
50837 IF(SIG.LT.SIGMAX*PYR(0)) GOTO 120
50838 CALL PYROBO(NC+1,N,0D0,CHI,0D0,0D0,0D0)
50839 CALL PYROBO(NC+1,N,THE,PHI,0D0,0D0,0D0)
50840 ENDIF
50841
50842
50843 IF(MSTJ(101).GE.5.AND.NJET.GE.2) THEN
50844 CALL PYSHOW(NC+MK+1,-NJET,ECMC)
50845 MSTJ14=MSTJ(14)
50846 IF(MSTJ(105).EQ.-1) MSTJ(14)=-1
50847 IF(MSTJ(105).GE.0) MSTU(28)=0
50848 CALL PYPREP(0)
50849 MSTJ(14)=MSTJ14
50850 IF(MSTJ(105).GE.0.AND.MSTU(28).NE.0) GOTO 100
50851 ENDIF
50852
50853
50854 IF(MSTJ(105).EQ.1) CALL PYEXEC
50855 MSTU(161)=110*KFLC+3
50856 MSTU(162)=0
50857
50858 RETURN
50859 END
50860
50861
50862
50863
50864
50865
50866 SUBROUTINE PYBOOK(ID,TITLE,NX,XL,XU)
50867
50868
50869 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
50870 IMPLICIT INTEGER(I-N)
50871
50872 COMMON/PYBINS/IHIST(4),INDX(1000),BIN(20000)
50873 SAVE /PYBINS/
50874
50875 CHARACTER TITLE*(*), TITFX*60
50876
50877
50878 IF(ID.LE.0.OR.ID.GT.IHIST(1)) CALL PYERRM(28,
50879 &'(PYBOOK:) not allowed histogram number')
50880 IF(NX.LE.0.OR.NX.GT.100) CALL PYERRM(28,
50881 &'(PYBOOK:) not allowed number of bins')
50882 IF(XL.GE.XU) CALL PYERRM(28,
50883 &'(PYBOOK:) x limits in wrong order')
50884 INDX(ID)=IHIST(4)
50885 IHIST(4)=IHIST(4)+28+NX
50886 IF(IHIST(4).GT.IHIST(2)) CALL PYERRM(28,
50887 &'(PYBOOK:) out of histogram space')
50888 IS=INDX(ID)
50889
50890
50891 BIN(IS+1)=NX
50892 BIN(IS+2)=XL
50893 BIN(IS+3)=XU
50894 BIN(IS+4)=(XU-XL)/NX
50895 CALL PYNULL(ID)
50896
50897
50898 TITFX=TITLE//' '
50899 DO 100 IT=1,20
50900 BIN(IS+8+NX+IT)=256**2*ICHAR(TITFX(3*IT-2:3*IT-2))+
50901 & 256*ICHAR(TITFX(3*IT-1:3*IT-1))+ICHAR(TITFX(3*IT:3*IT))
50902 100 CONTINUE
50903
50904 RETURN
50905 END
50906
50907
50908
50909
50910
50911
50912 SUBROUTINE PYFILL(ID,X,W)
50913
50914
50915 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
50916 IMPLICIT INTEGER(I-N)
50917
50918 COMMON/PYBINS/IHIST(4),INDX(1000),BIN(20000)
50919 SAVE /PYBINS/
50920
50921
50922 IF(ID.LE.0.OR.ID.GT.IHIST(1)) CALL PYERRM(28,
50923 &'(PYFILL:) not allowed histogram number')
50924 IS=INDX(ID)
50925 IF(IS.EQ.0) CALL PYERRM(28,
50926 &'(PYFILL:) filling unbooked histogram')
50927 BIN(IS+5)=BIN(IS+5)+1D0
50928
50929
50930 IF(X.LT.BIN(IS+2)) THEN
50931 BIN(IS+6)=BIN(IS+6)+W
50932 ELSEIF(X.GE.BIN(IS+3)) THEN
50933 BIN(IS+8)=BIN(IS+8)+W
50934 ELSE
50935 BIN(IS+7)=BIN(IS+7)+W
50936 IX=(X-BIN(IS+2))/BIN(IS+4)
50937 IX=MAX(0,MIN(NINT(BIN(IS+1))-1,IX))
50938 BIN(IS+9+IX)=BIN(IS+9+IX)+W
50939 ENDIF
50940
50941 RETURN
50942 END
50943
50944
50945
50946
50947
50948
50949 SUBROUTINE PYFACT(ID,F)
50950
50951
50952 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
50953 IMPLICIT INTEGER(I-N)
50954
50955 COMMON/PYBINS/IHIST(4),INDX(1000),BIN(20000)
50956 SAVE /PYBINS/
50957
50958
50959 IF(ID.LE.0.OR.ID.GT.IHIST(1)) CALL PYERRM(28,
50960 &'(PYFACT:) not allowed histogram number')
50961 IS=INDX(ID)
50962 IF(IS.EQ.0) CALL PYERRM(28,
50963 &'(PYFACT:) scaling unbooked histogram')
50964 DO 100 IX=IS+6,IS+8+NINT(BIN(IS+1))
50965 BIN(IX)=F*BIN(IX)
50966 100 CONTINUE
50967
50968 RETURN
50969 END
50970
50971
50972
50973
50974
50975
50976 SUBROUTINE PYOPER(ID1,OPER,ID2,ID3,F1,F2)
50977
50978
50979 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
50980 IMPLICIT INTEGER(I-N)
50981
50982 COMMON/PYBINS/IHIST(4),INDX(1000),BIN(20000)
50983 SAVE /PYBINS/
50984
50985 CHARACTER OPER*(*)
50986
50987
50988 IF(ID1.LE.0.OR.ID1.GT.IHIST(1)) CALL PYERRM(28,
50989 &'(PYFACT:) not allowed histogram number')
50990 IS1=INDX(ID1)
50991 IS2=INDX(MIN(IHIST(1),MAX(1,ID2)))
50992 IS3=INDX(MIN(IHIST(1),MAX(1,ID3)))
50993 NX=NINT(BIN(IS3+1))
50994 IF(OPER.EQ.'M'.AND.ID3.EQ.0) NX=NINT(BIN(IS2+1))
50995
50996
50997 IF(OPER.EQ.'+'.OR.OPER.EQ.'-'.OR.OPER.EQ.'*'.OR.OPER.EQ.'/') THEN
50998 BIN(IS3+5)=BIN(IS1+5)+BIN(IS2+5)
50999 ELSEIF(OPER.EQ.'A'.OR.OPER.EQ.'S'.OR.OPER.EQ.'L') THEN
51000 BIN(IS3+5)=BIN(IS1+5)
51001 ENDIF
51002
51003
51004
51005 IF(OPER.EQ.'+') THEN
51006 DO 100 IX=6,8+NX
51007 BIN(IS3+IX)=F1*BIN(IS1+IX)+F2*BIN(IS2+IX)
51008 100 CONTINUE
51009 ELSEIF(OPER.EQ.'-') THEN
51010 DO 110 IX=6,8+NX
51011 BIN(IS3+IX)=F1*BIN(IS1+IX)-F2*BIN(IS2+IX)
51012 110 CONTINUE
51013 ELSEIF(OPER.EQ.'*') THEN
51014 DO 120 IX=6,8+NX
51015 BIN(IS3+IX)=F1*BIN(IS1+IX)*F2*BIN(IS2+IX)
51016 120 CONTINUE
51017 ELSEIF(OPER.EQ.'/') THEN
51018 DO 130 IX=6,8+NX
51019 FA2=F2*BIN(IS2+IX)
51020 IF(ABS(FA2).LE.1D-20) THEN
51021 BIN(IS3+IX)=0D0
51022 ELSE
51023 BIN(IS3+IX)=F1*BIN(IS1+IX)/FA2
51024 ENDIF
51025 130 CONTINUE
51026
51027
51028
51029 ELSEIF(OPER.EQ.'A') THEN
51030 DO 140 IX=6,8+NX
51031 BIN(IS3+IX)=F1*BIN(IS1+IX)+F2
51032 140 CONTINUE
51033 ELSEIF(OPER.EQ.'S') THEN
51034 DO 150 IX=6,8+NX
51035 BIN(IS3+IX)=F1*SQRT(MAX(0D0,BIN(IS1+IX)))+F2
51036 150 CONTINUE
51037 ELSEIF(OPER.EQ.'L') THEN
51038 ZMIN=1D20
51039 DO 160 IX=9,8+NX
51040 IF(BIN(IS1+IX).LT.ZMIN.AND.BIN(IS1+IX).GT.1D-20)
51041 & ZMIN=0.8D0*BIN(IS1+IX)
51042 160 CONTINUE
51043 DO 170 IX=6,8+NX
51044 BIN(IS3+IX)=F1*LOG10(MAX(ZMIN,BIN(IS1+IX)))+F2
51045 170 CONTINUE
51046
51047
51048
51049 ELSEIF(OPER.EQ.'M') THEN
51050 DO 180 IX=6,8+NX
51051 IF(ABS(BIN(IS1+IX)).LE.1D-20) THEN
51052 BIN(IS2+IX)=0D0
51053 ELSE
51054 BIN(IS2+IX)=BIN(IS2+IX)/BIN(IS1+IX)
51055 ENDIF
51056 IF(ID3.NE.0) THEN
51057 IF(ABS(BIN(IS1+IX)).LE.1D-20) THEN
51058 BIN(IS3+IX)=0D0
51059 ELSE
51060 BIN(IS3+IX)=SQRT(MAX(0D0,BIN(IS3+IX)/BIN(IS1+IX)-
51061 & BIN(IS2+IX)**2))
51062 ENDIF
51063 ENDIF
51064 BIN(IS1+IX)=F1*BIN(IS1+IX)
51065 180 CONTINUE
51066 ENDIF
51067
51068 RETURN
51069 END
51070
51071
51072
51073
51074
51075
51076 SUBROUTINE PYHIST
51077
51078
51079 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
51080 IMPLICIT INTEGER(I-N)
51081
51082 COMMON/PYBINS/IHIST(4),INDX(1000),BIN(20000)
51083 SAVE /PYBINS/
51084
51085
51086 DO 100 ID=1,IHIST(1)
51087 IS=INDX(ID)
51088 IF(IS.NE.0.AND.NINT(BIN(IS+5)).GT.0) THEN
51089 CALL PYPLOT(ID)
51090 CALL PYNULL(ID)
51091 ENDIF
51092 100 CONTINUE
51093
51094 RETURN
51095 END
51096
51097
51098
51099
51100
51101
51102 SUBROUTINE PYPLOT(ID)
51103
51104
51105 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
51106 IMPLICIT INTEGER(I-N)
51107
51108 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
51109 COMMON/PYBINS/IHIST(4),INDX(1000),BIN(20000)
51110 SAVE /PYDAT1/,/PYBINS/
51111
51112 DIMENSION IDATI(6), IROW(100), IFRA(100), DYAC(10)
51113 CHARACTER TITLE*60, OUT*100, CHA(0:11)*1
51114
51115
51116 DATA DYAC/.04,.05,.06,.08,.10,.12,.15,.20,.25,.30/
51117 DATA CHA/'0','1','2','3','4','5','6','7','8','9','X','-'/
51118
51119
51120 IF(ID.LE.0.OR.ID.GT.IHIST(1)) RETURN
51121 IS=INDX(ID)
51122 IF(IS.EQ.0) RETURN
51123 IF(NINT(BIN(IS+5)).LE.0) THEN
51124 WRITE(MSTU(11),5000) ID
51125 RETURN
51126 ENDIF
51127
51128
51129 LIN=IHIST(3)-18
51130 NX=NINT(BIN(IS+1))
51131
51132
51133 DO 100 IT=1,20
51134 IEQ=NINT(BIN(IS+8+NX+IT))
51135 TITLE(3*IT-2:3*IT)=CHAR(IEQ/256**2)//CHAR(MOD(IEQ,256**2)/256)
51136 & //CHAR(MOD(IEQ,256))
51137 100 CONTINUE
51138
51139
51140 CALL PYTIME(IDATI)
51141 IF(IDATI(1).GT.0) THEN
51142 WRITE(MSTU(11),5100) ID, TITLE, (IDATI(J),J=1,5)
51143 ELSE
51144 WRITE(MSTU(11),5200) ID, TITLE
51145 ENDIF
51146
51147
51148 YMIN=BIN(IS+9)
51149 YMAX=BIN(IS+9)
51150 DO 110 IX=IS+10,IS+8+NX
51151 IF(BIN(IX).LT.YMIN) YMIN=BIN(IX)
51152 IF(BIN(IX).GT.YMAX) YMAX=BIN(IX)
51153 110 CONTINUE
51154
51155
51156 IF(YMAX-YMIN.GT.LIN*DYAC(1)*1D-9) THEN
51157 IF(YMIN.GT.0D0.AND.YMIN.LT.0.1D0*YMAX) YMIN=0D0
51158 IF(YMAX.LT.0D0.AND.YMAX.GT.0.1D0*YMIN) YMAX=0D0
51159 IPOT=INT(LOG10(YMAX-YMIN)+10D0)-10
51160 IF(YMAX-YMIN.LT.LIN*DYAC(1)*10D0**IPOT) IPOT=IPOT-1
51161 IF(YMAX-YMIN.GT.LIN*DYAC(10)*10D0**IPOT) IPOT=IPOT+1
51162 DELY=DYAC(1)
51163 DO 120 IDEL=1,9
51164 IF(YMAX-YMIN.GE.LIN*DYAC(IDEL)*10D0**IPOT) DELY=DYAC(IDEL+1)
51165 120 CONTINUE
51166 DY=DELY*10D0**IPOT
51167
51168
51169 DO 130 IX=1,NX
51170 CTA=ABS(BIN(IS+8+IX))/DY
51171 IROW(IX)=SIGN(CTA+0.95D0,BIN(IS+8+IX))
51172 IFRA(IX)=10D0*(CTA+1.05D0-DBLE(INT(CTA+0.95D0)))
51173 130 CONTINUE
51174 IRMI=SIGN(ABS(YMIN)/DY+0.95D0,YMIN)
51175 IRMA=SIGN(ABS(YMAX)/DY+0.95D0,YMAX)
51176
51177
51178 DO 150 IR=IRMA,IRMI,-1
51179 IF(IR.EQ.0) GOTO 150
51180 OUT=' '
51181 DO 140 IX=1,NX
51182 IF(IR.EQ.IROW(IX)) OUT(IX:IX)=CHA(IFRA(IX))
51183 IF(IR*(IROW(IX)-IR).GT.0) OUT(IX:IX)=CHA(10)
51184 140 CONTINUE
51185 WRITE(MSTU(11),5300) IR*DELY, IPOT, OUT
51186 150 CONTINUE
51187
51188
51189 IPOT=INT(LOG10(MAX(YMAX,-YMIN))+10.0001D0)-10
51190 OUT=' '
51191 DO 160 IX=1,NX
51192 IF(BIN(IS+8+IX).LT.-10D0**(IPOT-4)) OUT(IX:IX)=CHA(11)
51193 IROW(IX)=NINT(10D0**(3-IPOT)*ABS(BIN(IS+8+IX)))
51194 160 CONTINUE
51195 WRITE(MSTU(11),5400) OUT
51196 DO 180 IR=4,1,-1
51197 DO 170 IX=1,NX
51198 OUT(IX:IX)=CHA(MOD(IROW(IX),10**IR)/10**(IR-1))
51199 170 CONTINUE
51200 WRITE(MSTU(11),5500) IPOT+IR-4, OUT
51201 180 CONTINUE
51202
51203
51204 IPOT=INT(LOG10(MAX(-BIN(IS+2),BIN(IS+3)-BIN(IS+4)))+
51205 & 10.0001D0)-10
51206 OUT=' '
51207 DO 190 IX=1,NX
51208 IF(BIN(IS+2)+(IX-1)*BIN(IS+4).LT.-10D0**(IPOT-3))
51209 & OUT(IX:IX)=CHA(11)
51210 IROW(IX)=NINT(10D0**(2-IPOT)*ABS(BIN(IS+2)+(IX-1)*BIN(IS+4)))
51211 190 CONTINUE
51212 WRITE(MSTU(11),5600) OUT
51213 DO 210 IR=3,1,-1
51214 DO 200 IX=1,NX
51215 OUT(IX:IX)=CHA(MOD(IROW(IX),10**IR)/10**(IR-1))
51216 200 CONTINUE
51217 WRITE(MSTU(11),5500) IPOT+IR-3, OUT
51218 210 CONTINUE
51219 ENDIF
51220
51221
51222 CSUM=0D0
51223 CXSUM=0D0
51224 CXXSUM=0D0
51225 DO 220 IX=1,NX
51226 CTA=ABS(BIN(IS+8+IX))
51227 X=BIN(IS+2)+(IX-0.5D0)*BIN(IS+4)
51228 CSUM=CSUM+CTA
51229 CXSUM=CXSUM+CTA*X
51230 CXXSUM=CXXSUM+CTA*X**2
51231 220 CONTINUE
51232 XMEAN=CXSUM/MAX(CSUM,1D-20)
51233 XRMS=SQRT(MAX(0D0,CXXSUM/MAX(CSUM,1D-20)-XMEAN**2))
51234 WRITE(MSTU(11),5700) NINT(BIN(IS+5)),XMEAN,BIN(IS+6),
51235 &BIN(IS+2),BIN(IS+7),XRMS,BIN(IS+8),BIN(IS+3)
51236
51237
51238 5000 FORMAT(/5X,'Histogram no',I5,' : no entries')
51239 5100 FORMAT('1'/5X,'Histogram no',I5,6X,A60,5X,I4,'-',I2,'-',I2,1X,
51240 &I2,':',I2/)
51241 5200 FORMAT('1'/5X,'Histogram no',I5,6X,A60/)
51242 5300 FORMAT(2X,F7.2,'*10**',I2,3X,A100)
51243 5400 FORMAT(/8X,'Contents',3X,A100)
51244 5500 FORMAT(9X,'*10**',I2,3X,A100)
51245 5600 FORMAT(/8X,'Low edge',3X,A100)
51246 5700 FORMAT(/5X,'Entries =',I12,1P,6X,'Mean =',D12.4,6X,'Underflow ='
51247 &,D12.4,6X,'Low edge =',D12.4/5X,'All chan =',D12.4,6X,
51248 &'Rms =',D12.4,6X,'Overflow =',D12.4,6X,'High edge =',D12.4)
51249
51250 RETURN
51251 END
51252
51253
51254
51255
51256
51257
51258 SUBROUTINE PYNULL(ID)
51259
51260
51261 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
51262 IMPLICIT INTEGER(I-N)
51263
51264 COMMON/PYBINS/IHIST(4),INDX(1000),BIN(20000)
51265 SAVE /PYBINS/
51266
51267 IF(ID.LE.0.OR.ID.GT.IHIST(1)) RETURN
51268 IS=INDX(ID)
51269 IF(IS.EQ.0) RETURN
51270 DO 100 IX=IS+5,IS+8+NINT(BIN(IS+1))
51271 BIN(IX)=0D0
51272 100 CONTINUE
51273
51274 RETURN
51275 END
51276
51277
51278
51279
51280
51281
51282
51283 SUBROUTINE PYDUMP(MDUMP,LFN,NHI,IHI)
51284
51285
51286 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
51287 IMPLICIT INTEGER(I-N)
51288
51289 COMMON/PYBINS/IHIST(4),INDX(1000),BIN(20000)
51290 SAVE /PYBINS/
51291
51292 DIMENSION IHI(*),ISS(100),VAL(5)
51293 CHARACTER TITLE*60,FORMAT*13
51294
51295
51296
51297 IF(MDUMP.EQ.1) THEN
51298
51299
51300 IF(NHI.LE.0) THEN
51301 NW=IHIST(1)
51302 ELSE
51303 NW=NHI
51304 ENDIF
51305 DO 130 IW=1,NW
51306 IF(NHI.EQ.0) THEN
51307 ID=IW
51308 ELSE
51309 ID=IHI(IW)
51310 ENDIF
51311 IS=INDX(ID)
51312 IF(IS.NE.0) THEN
51313
51314
51315 NX=NINT(BIN(IS+1))
51316 DO 100 IT=1,20
51317 IEQ=NINT(BIN(IS+8+NX+IT))
51318 TITLE(3*IT-2:3*IT)=CHAR(IEQ/256**2)//
51319 & CHAR(MOD(IEQ,256**2)/256)//CHAR(MOD(IEQ,256))
51320 100 CONTINUE
51321 WRITE(LFN,5100) ID,TITLE
51322 WRITE(LFN,5200) NX,BIN(IS+2),BIN(IS+3)
51323 WRITE(LFN,5300) NINT(BIN(IS+5)),BIN(IS+6),BIN(IS+7),
51324 & BIN(IS+8)
51325
51326
51327
51328 DO 120 IXG=1,(NX+4)/5
51329 DO 110 IXV=1,5
51330 IX=5*IXG+IXV-5
51331 IF(IX.LE.NX) THEN
51332 VAL(IXV)=BIN(IS+8+IX)
51333 ELSE
51334 VAL(IXV)=0D0
51335 ENDIF
51336 110 CONTINUE
51337 WRITE(LFN,5400) (VAL(IXV),IXV=1,5)
51338 120 CONTINUE
51339
51340
51341 ELSEIF(NHI.GT.0) THEN
51342 CALL PYERRM(8,'(PYDUMP:) unknown histogram number')
51343 ENDIF
51344 130 CONTINUE
51345
51346
51347 ELSEIF(MDUMP.EQ.2) THEN
51348
51349
51350 140 READ(LFN,5100,END=170) ID,TITLE
51351 READ(LFN,5200) NX,XL,XU
51352 CALL PYBOOK(ID,TITLE,NX,XL,XU)
51353 IS=INDX(ID)
51354
51355
51356 READ(LFN,5300) NENTRY,BIN(IS+6),BIN(IS+7),BIN(IS+8)
51357 BIN(IS+5)=DBLE(NENTRY)
51358
51359
51360 DO 160 IXG=1,(NX+4)/5
51361 READ(LFN,5400) (VAL(IXV),IXV=1,5)
51362 DO 150 IXV=1,5
51363 IX=5*IXG+IXV-5
51364 IF(IX.LE.NX) BIN(IS+8+IX)=VAL(IXV)
51365 150 CONTINUE
51366 160 CONTINUE
51367
51368
51369 GOTO 140
51370 170 CONTINUE
51371
51372
51373
51374 ELSEIF(MDUMP.EQ.3) THEN
51375
51376
51377 NSS=0
51378 IF(NHI.LE.0) THEN
51379 NW=IHIST(1)
51380 ELSE
51381 NW=NHI
51382 ENDIF
51383 DO 180 IW=1,NW
51384 IF(NHI.EQ.0) THEN
51385 ID=IW
51386 ELSE
51387 ID=IHI(IW)
51388 ENDIF
51389 IS=INDX(ID)
51390 IF(IS.NE.0.AND.NSS.LT.100) THEN
51391 NSS=NSS+1
51392 ISS(NSS)=IS
51393 ELSEIF(NSS.GE.100) THEN
51394 CALL PYERRM(8,'(PYDUMP:) too many histograms requested')
51395 ELSEIF(NHI.GT.0) THEN
51396 CALL PYERRM(8,'(PYDUMP:) unknown histogram number')
51397 ENDIF
51398 180 CONTINUE
51399
51400
51401 NX=NINT(BIN(ISS(1)+1))
51402 DO 190 IW=2,NSS
51403 IF(NINT(BIN(ISS(IW)+1)).NE.NX) THEN
51404 CALL PYERRM(8,'(PYDUMP:) different number of bins')
51405 RETURN
51406 ENDIF
51407 190 CONTINUE
51408 FORMAT='(1P,000E12.4)'
51409 WRITE(FORMAT(5:7),'(I3)') NSS+1
51410
51411
51412 DO 200 IX=1,NX
51413 X=BIN(ISS(1)+2)+(IX-0.5D0)*BIN(ISS(1)+4)
51414 WRITE(LFN,FORMAT) X, (BIN(ISS(IW)+8+IX),IW=1,NSS)
51415 200 CONTINUE
51416
51417 ENDIF
51418
51419
51420 5100 FORMAT(I5,5X,A60)
51421 5200 FORMAT(I5,1P,2D12.4)
51422 5300 FORMAT(I12,1P,3D12.4)
51423 5400 FORMAT(1P,5D12.4)
51424
51425 RETURN
51426 END
51427
51428
51429
51430
51431
51432
51433
51434
51435
51436
51437
51438 SUBROUTINE PYKCUT(MCUT)
51439
51440
51441 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
51442 IMPLICIT INTEGER(I-N)
51443 INTEGER PYK,PYCHGE,PYCOMP
51444
51445 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
51446 COMMON/PYINT1/MINT(400),VINT(400)
51447 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
51448 SAVE /PYDAT1/,/PYINT1/,/PYINT2/
51449
51450
51451 MCUT=0
51452
51453
51454 ISUB=MINT(1)
51455 ISTSB=ISET(ISUB)
51456
51457
51458 TAU=VINT(21)
51459 YST=VINT(22)
51460 CTH=0D0
51461 IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) CTH=VINT(23)
51462 TAUP=0D0
51463 IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUP=VINT(26)
51464
51465
51466 IF(ISTSB.LE.2.OR.ISTSB.GE.5) THEN
51467 X1=SQRT(TAU)*EXP(YST)
51468 X2=SQRT(TAU)*EXP(-YST)
51469 ELSE
51470 X1=SQRT(TAUP)*EXP(YST)
51471 X2=SQRT(TAUP)*EXP(-YST)
51472 ENDIF
51473 XF=X1-X2
51474
51475
51476 SHAT=TAU*VINT(2)
51477 SQM3=VINT(63)
51478 SQM4=VINT(64)
51479 RM3=SQM3/SHAT
51480 RM4=SQM4/SHAT
51481 BE34=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4))
51482 RPTS=4D0*VINT(71)**2/SHAT
51483 BE34L=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4-RPTS))
51484 RM34=2D0*RM3*RM4
51485 RSQM=1D0+RM34
51486 RTHM=(4D0*RM3*RM4+RPTS)/(1D0-RM3-RM4+BE34L)
51487 THAT=-0.5D0*SHAT*MAX(RTHM,1D0-RM3-RM4-BE34*CTH)
51488 UHAT=-0.5D0*SHAT*MAX(RTHM,1D0-RM3-RM4+BE34*CTH)
51489 PT2=MAX(VINT(71)**2,0.25D0*SHAT*BE34**2*(1D0-CTH**2))
51490
51491
51492
51493
51494
51495 WRITE(MSTU(11),5000)
51496 IF(PYR(0).LT.10D0) STOP
51497
51498
51499 5000 FORMAT(1X,'Error: you did not link your PYKCUT routine ',
51500 &'correctly.'/1X,'Dummy routine in PYTHIA file called instead.'/
51501 &1X,'Execution stopped!')
51502
51503 RETURN
51504 END
51505
51506
51507
51508
51509
51510
51511
51512
51513
51514
51515
51516 SUBROUTINE PYEVWT(WTXS)
51517
51518
51519 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
51520 IMPLICIT INTEGER(I-N)
51521 INTEGER PYK,PYCHGE,PYCOMP
51522
51523 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
51524 COMMON/PYINT1/MINT(400),VINT(400)
51525 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
51526 SAVE /PYDAT1/,/PYINT1/,/PYINT2/
51527
51528
51529 WTXS=1D0
51530
51531
51532 ISUB=MINT(1)
51533 ISTSB=ISET(ISUB)
51534
51535
51536 TAU=VINT(21)
51537 YST=VINT(22)
51538 CTH=0D0
51539 IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) CTH=VINT(23)
51540 TAUP=0D0
51541 IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUP=VINT(26)
51542
51543
51544 X1=VINT(41)
51545 X2=VINT(42)
51546 XF=X1-X2
51547 SHAT=VINT(44)
51548 THAT=VINT(45)
51549 UHAT=VINT(46)
51550 PT2=VINT(48)
51551
51552
51553
51554
51555
51556 WRITE(MSTU(11),5000)
51557 IF(PYR(0).LT.10D0) STOP
51558
51559
51560 5000 FORMAT(1X,'Error: you did not link your PYEVWT routine ',
51561 &'correctly.'/1X,'Dummy routine in PYTHIA file called instead.'/
51562 &1X,'Execution stopped!')
51563
51564 RETURN
51565 END
51566
51567
51568
51569
51570
51571
51572
51573 SUBROUTINE PYUPIN(ISUB,TITLE,SIGMAX)
51574
51575
51576 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
51577 IMPLICIT INTEGER(I-N)
51578 INTEGER PYK,PYCHGE,PYCOMP
51579
51580 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
51581 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
51582 COMMON/PYINT6/PROC(0:500)
51583 CHARACTER PROC*28
51584 SAVE /PYDAT1/,/PYINT2/,/PYINT6/
51585
51586 CHARACTER*(*) TITLE
51587
51588
51589 IF(ISUB.LT.1.OR.ISUB.GT.500.OR.ISET(ISUB).GE.0) THEN
51590 WRITE(MSTU(11),5000) ISUB
51591 STOP
51592 ENDIF
51593
51594
51595 ISET(ISUB)=11
51596 COEF(ISUB,1)=SIGMAX
51597 PROC(ISUB)=TITLE//' '
51598
51599
51600 5000 FORMAT(1X,'Error: user-defined subprocess code ',I4,
51601 &' not allowed.'//1X,'Execution stopped!')
51602
51603 RETURN
51604 END
51605
51606
51607
51608
51609
51610
51611
51612
51613
51614
51615
51616
51617 SUBROUTINE PYUPEV(ISUB,SIGEV)
51618
51619
51620 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
51621 IMPLICIT INTEGER(I-N)
51622 INTEGER PYK,PYCHGE,PYCOMP
51623
51624 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
51625 COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
51626 SAVE /PYDAT1/,/PYUPPR/
51627
51628
51629
51630 WRITE(MSTU(11),5000)
51631 IF(PYR(0).LT.10D0) STOP
51632 SIGEV=ISUB
51633
51634
51635 5000 FORMAT(1X,'Error: you did not link your PYUPEV routine ',
51636 &'correctly.'/1X,'Dummy routine in PYTHIA file called instead.'/
51637 &1X,'Execution stopped!')
51638
51639 RETURN
51640 END
51641
51642
51643
51644
51645
51646
51647 SUBROUTINE PDFSET(PARM,VALUE)
51648
51649
51650 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
51651 IMPLICIT INTEGER(I-N)
51652 INTEGER PYK,PYCHGE,PYCOMP
51653
51654 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
51655 SAVE /PYDAT1/
51656
51657 CHARACTER*20 PARM(20)
51658 DOUBLE PRECISION VALUE(20)
51659
51660
51661 WRITE(MSTU(11),5000)
51662 IF(PYR(0).LT.10D0) STOP
51663 PARM(20)=PARM(1)
51664 VALUE(20)=VALUE(1)
51665
51666
51667 5000 FORMAT(1X,'Error: you did not link PDFLIB correctly.'/
51668 &1X,'Dummy routine PDFSET in PYTHIA file called instead.'/
51669 &1X,'Execution stopped!')
51670
51671 RETURN
51672 END
51673
51674
51675
51676
51677
51678
51679 SUBROUTINE STRUCTM(XX,QQ,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GLU)
51680
51681
51682 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
51683 IMPLICIT INTEGER(I-N)
51684 INTEGER PYK,PYCHGE,PYCOMP
51685
51686 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
51687 SAVE /PYDAT1/
51688
51689 DOUBLE PRECISION XX,QQ,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GLU
51690
51691
51692 WRITE(MSTU(11),5000)
51693 IF(PYR(0).LT.10D0) STOP
51694 UPV=XX+QQ
51695 DNV=XX+2D0*QQ
51696 USEA=XX+3D0*QQ
51697 DSEA=XX+4D0*QQ
51698 STR=XX+5D0*QQ
51699 CHM=XX+6D0*QQ
51700 BOT=XX+7D0*QQ
51701 TOP=XX+8D0*QQ
51702 GLU=XX+9D0*QQ
51703
51704
51705 5000 FORMAT(1X,'Error: you did not link PDFLIB correctly.'/
51706 &1X,'Dummy routine STRUCTM in PYTHIA file called instead.'/
51707 &1X,'Execution stopped!')
51708
51709 RETURN
51710 END
51711
51712
51713
51714
51715
51716
51717 SUBROUTINE STRUCTP(XX,QQ2,P2,IP2,UPV,DNV,USEA,DSEA,STR,CHM,
51718 &BOT,TOP,GLU)
51719
51720
51721 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
51722 IMPLICIT INTEGER(I-N)
51723 INTEGER PYK,PYCHGE,PYCOMP
51724
51725 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
51726 SAVE /PYDAT1/
51727
51728 DOUBLE PRECISION XX,QQ2,P2,UPV,DNV,USEA,DSEA,STR,CHM,BOT,
51729 &TOP,GLU
51730
51731
51732 WRITE(MSTU(11),5000)
51733 IF(PYR(0).LT.10D0) STOP
51734 UPV=XX+QQ2
51735 DNV=XX+2D0*QQ2
51736 USEA=XX+3D0*QQ2
51737 DSEA=XX+4D0*QQ2
51738 STR=XX+5D0*QQ2
51739 CHM=XX+6D0*QQ2
51740 BOT=XX+7D0*QQ2
51741 TOP=XX+8D0*QQ2
51742 GLU=XX+9D0*QQ2
51743
51744
51745 5000 FORMAT(1X,'Error: you did not link PDFLIB correctly.'/
51746 &1X,'Dummy routine STRUCTP in PYTHIA file called instead.'/
51747 &1X,'Execution stopped!')
51748
51749 RETURN
51750 END
51751
51752
51753
51754
51755
51756
51757
51758
51759
51760
51761
51762
51763
51764
51765
51766
51767
51768
51769
51770
51771
51772
51773 SUBROUTINE PYTAUD(ITAU,IORIG,KFORIG,NDECAY)
51774
51775
51776 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
51777 IMPLICIT INTEGER(I-N)
51778 INTEGER PYK,PYCHGE,PYCOMP
51779
51780 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
51781 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
51782 SAVE /PYJETS/,/PYDAT1/
51783
51784
51785
51786 NDECAY=ITAU+IORIG+KFORIG
51787 WRITE(MSTU(11),5000)
51788 IF(PYR(0).LT.10D0) STOP
51789
51790
51791 5000 FORMAT(1X,'Error: you did not link your PYTAUD routine ',
51792 &'correctly.'/1X,'Dummy routine in PYTHIA file called instead.'/
51793 &1X,'Execution stopped!')
51794
51795 RETURN
51796 END
51797
51798
51799
51800
51801
51802
51803
51804
51805
51806
51807 SUBROUTINE PYTIME(IDATI)
51808
51809
51810 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
51811 IMPLICIT INTEGER(I-N)
51812 INTEGER PYK,PYCHGE,PYCOMP
51813 CHARACTER*8 ATIME
51814
51815 INTEGER IDATI(6),IDTEMP(3)
51816
51817
51818
51819
51820
51821
51822
51823
51824
51825
51826
51827
51828
51829
51830
51831
51832
51833
51834
51835
51836
51837
51838
51839
51840
51841
51842
51843
51844
51845
51846
51847
51848
51849
51850
51851
51852
51853
51854
51855
51856
51857
51858
51859
51860
51861
51862
51863
51864
51865
51866
51867
51868
51869
51870
51871 CALL IDATE(IDTEMP)
51872 IDATI(1)=IDTEMP(3)
51873 IDATI(2)=IDTEMP(2)
51874 IDATI(3)=IDTEMP(1)
51875 CALL ITIME(IDTEMP)
51876 IDATI(4)=IDTEMP(1)
51877 IDATI(5)=IDTEMP(2)
51878 IDATI(6)=IDTEMP(3)
51879
51880 RETURN
51881 END