File indexing completed on 2024-04-06 12:13:19
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154
0155
0156
0157
0158
0159
0160
0161
0162
0163
0164
0165
0166
0167
0168 SUBROUTINE ARTMN
0169
0170
0171
0172
0173
0174
0175
0176
0177
0178
0179
0180
0181
0182 PARAMETER (MAXSTR=150001,MAXR=1,AMU= 0.9383,
0183 1 AKA=0.498,etaM=0.5475)
0184 PARAMETER (MAXX = 20, MAXZ = 24)
0185 PARAMETER (ISUM = 1001, IGAM = 1100)
0186 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
0187
0188
0189 INTEGER OUTPAR, zta,zpr
0190 COMMON /AA/ R(3,MAXSTR)
0191
0192 COMMON /BB/ P(3,MAXSTR)
0193
0194 COMMON /CC/ E(MAXSTR)
0195
0196 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
0197 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
0198 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
0199
0200 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
0201
0202 COMMON /HH/ PROPER(MAXSTR)
0203
0204 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
0205
0206 common /gg/ dx,dy,dz,dpx,dpy,dpz
0207
0208 COMMON /INPUT/ NSTAR,NDIRCT,DIR
0209
0210 COMMON /PP/ PRHO(-20:20,-24:24)
0211 COMMON /QQ/ PHRHO(-MAXZ:MAXZ,-24:24)
0212 COMMON /RR/ MASSR(0:MAXR)
0213
0214 common /ss/ inout(20)
0215
0216 common /zz/ zta,zpr
0217
0218 COMMON /RUN/ NUM
0219
0220
0221
0222 COMMON /KKK/ TKAON(7),EKAON(7,0:2000)
0223
0224 COMMON /KAON/ AK(3,50,36),SPECK(50,36,7),MF
0225
0226 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
0227
0228 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
0229
0230 COMMON /DDpi/ piRHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
0231
0232 common /tt/ PEL(-maxx:maxx,-maxx:maxx,-maxz:maxz)
0233 &,rxy(-maxx:maxx,-maxx:maxx,-maxz:maxz)
0234
0235
0236
0237 DIMENSION TEMP(3,MAXSTR),SKAON(7),SEKAON(7,0:2000)
0238
0239 COMMON /INPUT2/ ILAB, MANYB, NTMAX, ICOLL, INSYS, IPOT, MODE,
0240 & IMOMEN, NFREQ, ICFLOW, ICRHO, ICOU, KPOTEN, KMUL
0241
0242 COMMON /INPUT3/ PLAB, ELAB, ZEROPT, B0, BI, BM, DENCUT, CYCBOX
0243
0244
0245
0246 COMMON /ARPRNT/ ARPAR1(100), IAPAR2(50), ARINT1(100), IAINT2(50)
0247
0248
0249
0250
0251
0252
0253
0254
0255
0256
0257
0258 COMMON /ARERCP/PRO1(MAXSTR, MAXR)
0259
0260 COMMON /ARERC1/MULTI1(MAXR)
0261
0262 COMMON /ARPRC1/ITYP1(MAXSTR, MAXR),
0263 & GX1(MAXSTR, MAXR), GY1(MAXSTR, MAXR), GZ1(MAXSTR, MAXR),
0264 & FT1(MAXSTR, MAXR),
0265 & PX1(MAXSTR, MAXR), PY1(MAXSTR, MAXR), PZ1(MAXSTR, MAXR),
0266 & EE1(MAXSTR, MAXR), XM1(MAXSTR, MAXR)
0267
0268
0269 DIMENSION NPI(MAXR)
0270 DIMENSION RT(3, MAXSTR, MAXR), PT(3, MAXSTR, MAXR)
0271 & , ET(MAXSTR, MAXR), LT(MAXSTR, MAXR), PROT(MAXSTR, MAXR)
0272
0273 EXTERNAL IARFLV, INVFLV
0274
0275 common /lastt/itimeh,bimp
0276
0277 common/snn/efrm,npart1,npart2,epsiPz,epsiPt,PZPROJ,PZTARG
0278
0279 COMMON/hbt/lblast(MAXSTR),xlast(4,MAXSTR),plast(4,MAXSTR),nlast
0280
0281 common/resdcy/NSAV,iksdcy
0282
0283 COMMON/RNDF77/NSEED
0284
0285 COMMON/FTMAX/ftsv(MAXSTR),ftsvt(MAXSTR, MAXR)
0286 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
0287 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
0288 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
0289 COMMON/HPARNT/HIPR1(100),IHPR2(50),HINT1(100),IHNT2(50)
0290
0291 real zet(-45:45)
0292 SAVE
0293 data zet /
0294 4 1.,0.,0.,0.,0.,
0295 3 1.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
0296 2 -1.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
0297 1 0.,0.,0.,-1.,0.,1.,0.,-1.,0.,-1.,
0298 s 0.,-2.,-1.,0.,1.,0.,0.,0.,0.,-1.,
0299 e 0.,
0300 s 1.,0.,-1.,0.,1.,-1.,0.,1.,2.,0.,
0301 1 1.,0.,1.,0.,-1.,0.,1.,0.,0.,0.,
0302 2 -1.,0.,1.,0.,-1.,0.,1.,0.,0.,1.,
0303 3 0.,0.,0.,0.,0.,0.,0.,0.,0.,-1.,
0304 4 0.,0.,0.,0.,-1./
0305
0306 nlast=0
0307 do 1002 i=1,MAXSTR
0308 ftsv(i)=0.
0309 do 1101 irun=1,maxr
0310 ftsvt(i,irun)=0.
0311 1101 continue
0312 lblast(i)=999
0313 do 1001 j=1,4
0314
0315
0316
0317 xlast(j,i)=0.
0318 plast(j,i)=0.
0319 1001 continue
0320 1002 continue
0321
0322
0323
0324
0325
0326
0327
0328
0329
0330
0331
0332
0333
0334
0335
0336
0337 call tablem
0338
0339 ikaon=1
0340 nstar=1
0341 ndirct=0
0342 dir=0.02
0343 asy=0.032
0344 ESBIN=0.04
0345 MF=36
0346
0347
0348
0349 RADTA = 1.124 * FLOAT(MASSTA)**(1./3.)
0350 RADPR = 1.124 * FLOAT(MASSPR)**(1./3.)
0351 ZDIST = RADTA + RADPR
0352
0353 BMAX = RADTA + RADPR
0354 MASS = MASSTA + MASSPR
0355 NTOTAL = NUM * MASS
0356
0357 IF (NTOTAL .GT. MAXSTR) THEN
0358 WRITE(12,'(//10X,''**** FATAL ERROR: TOO MANY TEST PART. ****'//
0359 & ' '')')
0360 STOP
0361 END IF
0362
0363
0364
0365
0366
0367
0368 ETA = FLOAT(MASSTA) * AMU
0369 PZTA = 0.0
0370 BETATA = 0.0
0371 GAMMTA = 1.0
0372
0373 EPR = FLOAT(MASSPR) * (AMU + 0.001 * ELAB)
0374 PZPR = SQRT( EPR**2 - (AMU * FLOAT(MASSPR))**2 )
0375 BETAPR = PZPR / EPR
0376 GAMMPR = 1.0 / SQRT( 1.0 - BETAPR**2 )
0377
0378
0379 BETAC=(PZPR+PZTA)/(EPR+ETA)
0380 GAMMC=1.0 / SQRT(1.-BETAC**2)
0381
0382
0383
0384
0385
0386
0387
0388 IF (INSYS .NE. 0) THEN
0389
0390
0391
0392 S = (EPR+ETA)**2 - PZPR**2
0393 xx1=4.*alog(float(massta))
0394 xx2=4.*alog(float(masspr))
0395 xx1=exp(xx1)
0396 xx2=exp(xx2)
0397 PSQARE = (S**2 + (xx1+ xx2) * AMU**4
0398 & - 2.0 * S * AMU**2 * FLOAT(MASSTA**2 + MASSPR**2)
0399 & - 2.0 * FLOAT(MASSTA**2 * MASSPR**2) * AMU**4)
0400 & / (4.0 * S)
0401
0402 ETA = SQRT ( PSQARE + (FLOAT(MASSTA) * AMU)**2 )
0403 PZTA = - SQRT(PSQARE)
0404 BETATA = PZTA / ETA
0405 GAMMTA = 1.0 / SQRT( 1.0 - BETATA**2 )
0406
0407 EPR = SQRT ( PSQARE + (FLOAT(MASSPR) * AMU)**2 )
0408 PZPR = SQRT(PSQARE)
0409 BETAPR = PZPR/ EPR
0410 GAMMPR = 1.0 / SQRT( 1.0 - BETAPR**2 )
0411
0412
0413
0414
0415
0416
0417
0418
0419
0420 ELSE
0421
0422 END IF
0423
0424 PZTA = PZTA / FLOAT(MASSTA)
0425 PZPR = PZPR / FLOAT(MASSPR)
0426
0427 ECMS0=ETA+EPR
0428
0429
0430
0431
0432
0433 DO 50000 IMANY=1,MANYB
0434
0435
0436 if (manyb. gt.1) then
0437 111 BX=1.0-2.0*RANART(NSEED)
0438 BY=1.0-2.0*RANART(NSEED)
0439 B2=BX*BX+BY*BY
0440 IF(B2.GT.1.0) GO TO 111
0441 B=SQRT(B2)*(BM-BI)+BI
0442 ELSE
0443 B=B0
0444 ENDIF
0445
0446
0447
0448
0449
0450
0451
0452 call coulin(masspr,massta,NUM)
0453
0454 CALL INIT(1 ,MASSTA ,NUM ,RADTA,
0455 & B/2. ,ZEROPT+ZDIST/2. ,PZTA,
0456 & GAMMTA ,ISEED ,MASS ,IMOMEN)
0457
0458 CALL INIT(1+MASSTA,MASS ,NUM ,RADPR,
0459 & -B/2. ,ZEROPT-ZDIST/2. ,PZPR,
0460 & GAMMPR ,ISEED ,MASS ,IMOMEN)
0461
0462 OUTPAR = 0
0463
0464
0465 MASSR(0)=0
0466 DO 1003 IR =1,NUM
0467 MASSR(IR)=MASS
0468 1003 CONTINUE
0469
0470
0471
0472 CALL DENS(IPOT,MASS,NUM,OUTPAR)
0473
0474
0475
0476
0477
0478
0479
0480
0481
0482
0483
0484
0485
0486
0487
0488
0489
0490 IF (ICOLL .NE. -1) THEN
0491 DO 700 I = 1,NTOTAL
0492 IX = NINT( R(1,I) )
0493 IY = NINT( R(2,I) )
0494 IZ = NINT( R(3,I) )
0495
0496 IF(IX.GE.MAXX.OR.IY.GE.MAXX.OR.IZ.GE.MAXZ
0497 1 .OR.IX.LE.-MAXX.OR.IY.LE.-MAXX.OR.IZ.LE.-MAXZ) goto 700
0498 CALL GRADU(IPOT,IX,IY,IZ,GRADX,GRADY,GRADZ)
0499 P(1,I) = P(1,I) - (0.5 * DT) * GRADX
0500 P(2,I) = P(2,I) - (0.5 * DT) * GRADY
0501 P(3,I) = P(3,I) - (0.5 * DT) * GRADZ
0502 700 CONTINUE
0503 END IF
0504
0505
0506
0507
0508
0509 RCNNE = 0
0510 RDD = 0
0511 RPP = 0
0512 rppk = 0
0513 RPN = 0
0514 rpd = 0
0515 RKN = 0
0516 RNNK = 0
0517 RDDK = 0
0518 RNDK = 0
0519 RCNND = 0
0520 RCNDN = 0
0521 RCOLL = 0
0522 RBLOC = 0
0523 RDIRT = 0
0524 RDECAY = 0
0525 RRES = 0
0526
0527 DO 1005 KKK=1,5
0528 SKAON(KKK) = 0
0529 DO 1004 IS=1,2000
0530 SEKAON(KKK,IS)=0
0531 1004 CONTINUE
0532 1005 CONTINUE
0533
0534 pr0=0.
0535 pr1=0.
0536 ska0=0.
0537 ska1=0.
0538
0539
0540
0541
0542 IF (IAPAR2(1) .NE. 1) THEN
0543 DO 1016 I = 1, MAXSTR
0544 DO 1015 J = 1, 3
0545 R(J, I) = 0.
0546 P(J, I) = 0.
0547 1015 CONTINUE
0548 E(I) = 0.
0549 LB(I) = 0
0550
0551 ID(I)=0
0552
0553 PROPER(I) = 1.
0554 1016 CONTINUE
0555 MASS = 0
0556
0557
0558
0559
0560 NP = 0
0561 DO 1017 J = 1, NUM
0562 MASSR(J) = 0
0563 NPI(J) = 1
0564 1017 CONTINUE
0565 DO 1019 I = 1, MAXR
0566 DO 1018 J = 1, MAXSTR
0567 RT(1, J, I) = 0.
0568 RT(2, J, I) = 0.
0569 RT(3, J, I) = 0.
0570 PT(1, J, I) = 0.
0571 PT(2, J, I) = 0.
0572 PT(3, J, I) = 0.
0573 ET(J, I) = 0.
0574 LT(J, I) = 0
0575
0576 PROT(J, I) = 1.
0577 1018 CONTINUE
0578 1019 CONTINUE
0579
0580 END IF
0581
0582
0583 DO 10000 NT = 1,NTMAX
0584
0585
0586 LP1=0
0587 LP2=0
0588 LP3=0
0589
0590 LD1=0
0591 LD2=0
0592 LD3=0
0593 LD4=0
0594
0595 LN1=0
0596 LN2=0
0597
0598 LN5=0
0599
0600 LE=0
0601
0602 LKAON=0
0603
0604
0605
0606 LKAONS=0
0607
0608
0609 IF (ICOLL .NE. 1) THEN
0610
0611
0612 numnt=nt
0613 CALL RELCOL(LCOLL,LBLOC,LCNNE,LDD,LPP,lppk,
0614 & LPN,lpd,LRHO,LOMEGA,LKN,LNNK,LDDK,LNDK,LCNND,
0615 & LCNDN,LDIRT,LDECAY,LRES,LDOU,LDDRHO,LNNRHO,
0616 & LNNOM,numnt,ntmax,sp,akaon,sk)
0617
0618
0619
0620
0621
0622
0623
0624
0625
0626
0627
0628
0629
0630
0631
0632
0633
0634
0635
0636
0637
0638
0639
0640
0641
0642
0643
0644
0645
0646
0647 RCOLL = RCOLL + FLOAT(LCOLL)/num
0648 RBLOC = RBLOC + FLOAT(LBLOC)/num
0649 RCNNE = RCNNE + FLOAT(LCNNE)/num
0650 RDD = RDD + FLOAT(LDD)/num
0651 RPP = RPP + FLOAT(LPP)/NUM
0652 rppk =rppk + float(lppk)/num
0653 RPN = RPN + FLOAT(LPN)/NUM
0654 rpd =rpd + float(lpd)/num
0655 RKN = RKN + FLOAT(LKN)/NUM
0656 RNNK =RNNK + FLOAT(LNNK)/NUM
0657 RDDK =RDDK + FLOAT(LDDK)/NUM
0658 RNDK =RNDK + FLOAT(LNDK)/NUM
0659 RCNND = RCNND + FLOAT(LCNND)/num
0660 RCNDN = RCNDN + FLOAT(LCNDN)/num
0661 RDIRT = RDIRT + FLOAT(LDIRT)/num
0662 RDECAY= RDECAY+ FLOAT(LDECAY)/num
0663 RRES = RRES + FLOAT(LRES)/num
0664
0665 ADIRT=LDIRT/DT/num
0666 ACOLL=(LCOLL-LBLOC)/DT/num
0667 ACNND=LCNND/DT/num
0668 ACNDN=LCNDN/DT/num
0669 ADECAY=LDECAY/DT/num
0670 ARES=LRES/DT/num
0671 ADOU=LDOU/DT/NUM
0672 ADDRHO=LDDRHO/DT/NUM
0673 ANNRHO=LNNRHO/DT/NUM
0674 ANNOM=LNNOM/DT/NUM
0675 ADD=LDD/DT/num
0676 APP=LPP/DT/num
0677 appk=lppk/dt/num
0678 APN=LPN/DT/num
0679 apd=lpd/dt/num
0680 arh=lrho/dt/num
0681 aom=lomega/dt/num
0682 AKN=LKN/DT/num
0683 ANNK=LNNK/DT/num
0684 ADDK=LDDK/DT/num
0685 ANDK=LNDK/DT/num
0686
0687
0688
0689
0690
0691
0692
0693
0694
0695
0696
0697
0698
0699
0700
0701
0702
0703
0704
0705
0706
0707
0708
0709
0710
0711
0712
0713
0714
0715
0716
0717
0718 END IF
0719
0720
0721
0722 CALL DENS(IPOT,MASS,NUM,OUTPAR)
0723
0724
0725
0726 sumene=0
0727 ISO=0
0728 DO 201 MRUN=1,NUM
0729 ISO=ISO+MASSR(MRUN-1)
0730 DO 201 I0=1,MASSR(MRUN)
0731 I =I0+ISO
0732 ETOTAL = SQRT( E(I)**2 + P(1,I)**2 + P(2,I)**2 +P(3,I)**2 )
0733 sumene=sumene+etotal
0734
0735
0736
0737 if(kpoten.ne.0.and.lb(i).eq.23)then
0738 den=0.
0739 IX = NINT( R(1,I) )
0740 IY = NINT( R(2,I) )
0741 IZ = NINT( R(3,I) )
0742
0743
0744
0745 IF(IX.LT.MAXX.AND.IY.LT.MAXX.AND.IZ.LT.MAXZ
0746 1 .AND.IX.GT.-MAXX.AND.IY.GT.-MAXX.AND.IZ.GT.-MAXZ)
0747 2 den=rho(ix,iy,iz)
0748
0749
0750
0751
0752 akg = 0.1727
0753
0754 bkg = 0.333
0755 rnsg = den
0756 ecor = - akg*rnsg + (bkg*den)**2
0757 etotal = sqrt(etotal**2 + ecor)
0758 endif
0759
0760 if(kpoten.ne.0.and.lb(i).eq.21)then
0761 den=0.
0762 IX = NINT( R(1,I) )
0763 IY = NINT( R(2,I) )
0764 IZ = NINT( R(3,I) )
0765
0766
0767
0768 IF(IX.LT.MAXX.AND.IY.LT.MAXX.AND.IZ.LT.MAXZ
0769 1 .AND.IX.GT.-MAXX.AND.IY.GT.-MAXX.AND.IZ.GT.-MAXZ)
0770 2 den=rho(ix,iy,iz)
0771
0772
0773
0774 akg = 0.1727
0775
0776 bkg = 0.333
0777 rnsg = den
0778 ecor = - akg*rnsg + (bkg*den)**2
0779 etotal = sqrt(etotal**2 + ecor)
0780 endif
0781
0782
0783 R(1,I) = R(1,I) + DT*P(1,I)/ETOTAL
0784 R(2,I) = R(2,I) + DT*P(2,I)/ETOTAL
0785 R(3,I) = R(3,I) + DT*P(3,I)/ETOTAL
0786
0787 if ( cycbox.ne.0 ) then
0788 if ( r(1,i).gt. cycbox/2 ) r(1,i)=r(1,i)-cycbox
0789 if ( r(1,i).le.-cycbox/2 ) r(1,i)=r(1,i)+cycbox
0790 if ( r(2,i).gt. cycbox/2 ) r(2,i)=r(2,i)-cycbox
0791 if ( r(2,i).le.-cycbox/2 ) r(2,i)=r(2,i)+cycbox
0792 if ( r(3,i).gt. cycbox/2 ) r(3,i)=r(3,i)-cycbox
0793 if ( r(3,i).le.-cycbox/2 ) r(3,i)=r(3,i)+cycbox
0794 end if
0795
0796 LB1=LB(I)
0797
0798 IF(LB1.EQ.9)LD1=LD1+1
0799
0800 IF(LB1.EQ.8)LD2=LD2+1
0801
0802 IF(LB1.EQ.7)LD3=LD3+1
0803
0804 IF(LB1.EQ.6)LD4=LD4+1
0805
0806 IF(LB1.EQ.11)LN1=LN1+1
0807
0808 IF(LB1.EQ.10)LN2=LN2+1
0809
0810 IF((LB1.EQ.13).OR.(LB1.EQ.12))LN5=LN5+1
0811
0812 IF(LB1.EQ.0)LE=LE+1
0813
0814 IF(LB1.EQ.23)LKAON=LKAON+1
0815
0816 IF(LB1.EQ.30)LKAONS=LKAONS+1
0817
0818
0819
0820 IF(LB1.EQ.5)LP1=LP1+1
0821
0822 IF(LB1.EQ.4)LP2=LP2+1
0823
0824 IF(LB1.EQ.3)LP3=LP3+1
0825 201 CONTINUE
0826 LP=LP1+LP2+LP3
0827 LD=LD1+LD2+LD3+LD4
0828 LN=LN1+LN2
0829 ALP=FLOAT(LP)/FLOAT(NUM)
0830 ALD=FLOAT(LD)/FLOAT(NUM)
0831 ALN=FLOAT(LN)/FLOAT(NUM)
0832 ALN5=FLOAT(LN5)/FLOAT(NUM)
0833 ATOTAL=ALP+ALD+ALN+0.5*ALN5
0834 ALE=FLOAT(LE)/FLOAT(NUM)
0835 ALKAON=FLOAT(LKAON)/FLOAT(NUM)
0836
0837 if (icou .eq. 1) then
0838
0839 iso=0
0840 do 1026 irun = 1,num
0841 iso=iso+massr(irun-1)
0842 do 1021 il = 1,massr(irun)
0843 temp(1,il) = 0.
0844 temp(2,il) = 0.
0845 temp(3,il) = 0.
0846 1021 continue
0847 do 1023 il = 1, massr(irun)
0848 i=iso+il
0849 if (zet(lb(i)).ne.0) then
0850 do 1022 jl = 1,il-1
0851 j=iso+jl
0852 if (zet(lb(j)).ne.0) then
0853 ddx=r(1,i)-r(1,j)
0854 ddy=r(2,i)-r(2,j)
0855 ddz=r(3,i)-r(3,j)
0856 rdiff = sqrt(ddx**2+ddy**2+ddz**2)
0857 if (rdiff .le. 1.) rdiff = 1.
0858 grp=zet(lb(i))*zet(lb(j))/rdiff**3
0859 ddx=ddx*grp
0860 ddy=ddy*grp
0861 ddz=ddz*grp
0862 temp(1,il)=temp(1,il)+ddx
0863 temp(2,il)=temp(2,il)+ddy
0864 temp(3,il)=temp(3,il)+ddz
0865 temp(1,jl)=temp(1,jl)-ddx
0866 temp(2,jl)=temp(2,jl)-ddy
0867 temp(3,jl)=temp(3,jl)-ddz
0868 end if
0869 1022 continue
0870 end if
0871 1023 continue
0872 do 1025 il = 1,massr(irun)
0873 i= iso+il
0874 if (zet(lb(i)).ne.0) then
0875 do 1024 idir = 1,3
0876 p(idir,i) = p(idir,i) + temp(idir,il)
0877 & * dt * 0.00144
0878 1024 continue
0879 end if
0880 1025 continue
0881 1026 continue
0882 end if
0883
0884
0885
0886
0887
0888 spt=0
0889 spz=0
0890 ncen=0
0891 ekin=0
0892 NLOST = 0
0893 MEAN=0
0894 nquark=0
0895 nbaryn=0
0896
0897 rads = 2.
0898 zras = 0.1
0899 denst = 0.
0900 edenst = 0.
0901
0902 DO 6000 IRUN = 1,NUM
0903 MEAN=MEAN+MASSR(IRUN-1)
0904 DO 5800 J = 1,MASSR(irun)
0905 I=J+MEAN
0906
0907
0908 radut = sqrt(r(1,i)**2+r(2,i)**2)
0909 if( radut .le. rads )then
0910 if( abs(r(3,i)) .le. zras*nt*dt )then
0911
0912
0913 vols = 3.14159*rads**2*zras
0914 engs=sqrt(p(1,i)**2+p(2,i)**2+p(3,i)**2+e(i)**2)
0915 gammas=1.
0916 if(e(i).ne.0.)gammas=engs/e(i)
0917
0918 denst = denst + 1./gammas/vols
0919
0920 edenst = edenst + engs/gammas/gammas/vols
0921 endif
0922 endif
0923
0924
0925 drr=sqrt(r(1,i)**2+r(2,i)**2+r(3,i)**2)
0926 if(drr.le.2.0)then
0927 spt=spt+p(1,i)**2+p(2,i)**2
0928 spz=spz+p(3,i)**2
0929 ncen=ncen+1
0930 ekin=ekin+sqrt(p(1,i)**2+p(2,i)**2+p(3,i)**2+e(i)**2)-e(i)
0931 endif
0932 IX = NINT( R(1,I) )
0933 IY = NINT( R(2,I) )
0934 IZ = NINT( R(3,I) )
0935
0936
0937
0938
0939 IF(IX.LT.MAXX.AND.IY.LT.MAXX.AND.IZ.LT.MAXZ
0940 1 .AND.IX.GT.-MAXX.AND.IY.GT.-MAXX.AND.IZ.GT.-MAXZ) THEN
0941 if(rho(ix,iy,iz)/0.168.gt.dencut)go to 5800
0942 if((rho(ix,iy,iz)/0.168.gt.5.).and.(e(i).gt.0.9))
0943 & nbaryn=nbaryn+1
0944 if(pel(ix,iy,iz).gt.2.0)nquark=nquark+1
0945 endif
0946
0947
0948 if(kpoten.ne.0.and.lb(i).eq.23)then
0949 den=0.
0950
0951
0952
0953 IF(IX.LT.MAXX.AND.IY.LT.MAXX.AND.IZ.LT.MAXZ
0954 1 .AND.IX.GT.-MAXX.AND.IY.GT.-MAXX.AND.IZ.GT.-MAXZ) THEN
0955 den=rho(ix,iy,iz)
0956
0957
0958
0959
0960 akg = 0.1727
0961
0962 bkg = 0.333
0963 rnsg = den
0964 ecor = - akg*rnsg + (bkg*den)**2
0965 etotal = sqrt(P(1,i)**2+p(2,I)**2+p(3,i)**2+e(i)**2 + ecor)
0966 ecor = - akg + 2.*bkg**2*den + 2.*bkg*etotal
0967
0968 CALL GRADUK(IX,IY,IZ,GRADXk,GRADYk,GRADZk)
0969 P(1,I) = P(1,I) - DT * GRADXk*ecor/(2.*etotal)
0970 P(2,I) = P(2,I) - DT * GRADYk*ecor/(2.*etotal)
0971 P(3,I) = P(3,I) - DT * GRADZk*ecor/(2.*etotal)
0972 endif
0973 endif
0974
0975 if(kpoten.ne.0.and.lb(i).eq.21)then
0976 den=0.
0977
0978
0979
0980 IF(IX.LT.MAXX.AND.IY.LT.MAXX.AND.IZ.LT.MAXZ
0981 1 .AND.IX.GT.-MAXX.AND.IY.GT.-MAXX.AND.IZ.GT.-MAXZ) THEN
0982 den=rho(ix,iy,iz)
0983 CALL GRADUK(IX,IY,IZ,GRADXk,GRADYk,GRADZk)
0984
0985
0986
0987
0988
0989 akg = 0.1727
0990
0991 bkg = 0.333
0992 rnsg = den
0993 ecor = - akg*rnsg + (bkg*den)**2
0994 etotal = sqrt(P(1,i)**2+p(2,I)**2+p(3,i)**2+e(i)**2 + ecor)
0995 ecor = - akg + 2.*bkg**2*den - 2.*bkg*etotal
0996 P(1,I) = P(1,I) - DT * GRADXk*ecor/(2.*etotal)
0997 P(2,I) = P(2,I) - DT * GRADYk*ecor/(2.*etotal)
0998 P(3,I) = P(3,I) - DT * GRADZk*ecor/(2.*etotal)
0999
1000 endif
1001 endif
1002
1003
1004 if(j.gt.mass)go to 5800
1005
1006
1007
1008
1009 IF (ICOLL .NE. -1) THEN
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023 IF(IX.LT.MAXX.AND.IY.LT.MAXX.AND.IZ.LT.MAXZ
1024 1 .AND.IX.GT.-MAXX.AND.IY.GT.-MAXX.AND.IZ.GT.-MAXZ) THEN
1025 CALL GRADU(IPOT,IX,IY,IZ,GRADX,GRADY,GRADZ)
1026 TZ=0.
1027 GRADXN=0
1028 GRADYN=0
1029 GRADZN=0
1030 GRADXP=0
1031 GRADYP=0
1032 GRADZP=0
1033 IF(ICOU.EQ.1)THEN
1034 CALL GRADUP(IX,IY,IZ,GRADXP,GRADYP,GRADZP)
1035 CALL GRADUN(IX,IY,IZ,GRADXN,GRADYN,GRADZN)
1036 IF(ZET(LB(I)).NE.0)TZ=-1
1037 IF(ZET(LB(I)).EQ.0)TZ= 1
1038 END IF
1039 if(iabs(lb(i)).ge.14.and.iabs(lb(i)).le.17)then
1040 facl = 2./3.
1041 elseif(iabs(lb(i)).eq.40.or.iabs(lb(i)).eq.41)then
1042 facl = 1./3.
1043 else
1044 facl = 1.
1045 endif
1046 P(1,I) = P(1,I) - facl*DT * (GRADX+asy*(GRADXN-GRADXP)*TZ)
1047 P(2,I) = P(2,I) - facl*DT * (GRADY+asy*(GRADYN-GRADYP)*TZ)
1048 P(3,I) = P(3,I) - facl*DT * (GRADZ+asy*(GRADZN-GRADZP)*TZ)
1049 end if
1050 ENDIF
1051
1052 5800 CONTINUE
1053 6000 CONTINUE
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075 CDEN=RHO(0,0,0)/0.168
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093 IF ((NT/NFREQ)*NFREQ .EQ. NT ) THEN
1094 if(icflow.eq.1)call flow(nt)
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110 endif
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145 IF (IAPAR2(1) .NE. 1) THEN
1146 CT = NT * DT
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162 IA = 0
1163 DO 1028 IRUN = 1, NUM
1164 DO 1027 IC = 1, MASSR(IRUN)
1165 IE = IA + IC
1166 RT(1, IC, IRUN) = R(1, IE)
1167 RT(2, IC, IRUN) = R(2, IE)
1168 RT(3, IC, IRUN) = R(3, IE)
1169 PT(1, IC, IRUN) = P(1, IE)
1170 PT(2, IC, IRUN) = P(2, IE)
1171 PT(3, IC, IRUN) = P(3, IE)
1172 ET(IC, IRUN) = E(IE)
1173 LT(IC, IRUN) = LB(IE)
1174
1175 PROT(IC, IRUN) = PROPER(IE)
1176
1177 dpertt(IC, IRUN)=dpertp(IE)
1178 1027 CONTINUE
1179 NP = MASSR(IRUN)
1180 NP1 = NPI(IRUN)
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193 ctlong = ct
1194 if(nt .eq. (ntmax-1))then
1195 ctlong = 1.E30
1196 elseif(nt .eq. ntmax)then
1197 go to 1111
1198 endif
1199 DO WHILE (NP1.LE.MULTI1(IRUN).AND.
1200 & FT1(NP1, IRUN) .GT. (CT - DT) .AND.
1201 & FT1(NP1, IRUN) .LE. ctlong)
1202 NP = NP + 1
1203 UDT = (CT - FT1(NP1, IRUN)) / EE1(NP1, IRUN)
1204
1205
1206 if(nt.eq.(ntmax-1)) then
1207 ftsvt(NP,IRUN)=FT1(NP1, IRUN)
1208 if(FT1(NP1, IRUN).gt.ct) UDT=0.
1209 endif
1210 RT(1, NP, IRUN) = GX1(NP1, IRUN) +
1211 & PX1(NP1, IRUN) * UDT
1212 RT(2, NP, IRUN) = GY1(NP1, IRUN) +
1213 & PY1(NP1, IRUN) * UDT
1214 RT(3, NP, IRUN) = GZ1(NP1, IRUN) +
1215 & PZ1(NP1, IRUN) * UDT
1216 PT(1, NP, IRUN) = PX1(NP1, IRUN)
1217 PT(2, NP, IRUN) = PY1(NP1, IRUN)
1218 PT(3, NP, IRUN) = PZ1(NP1, IRUN)
1219 ET(NP, IRUN) = XM1(NP1, IRUN)
1220 LT(NP, IRUN) = IARFLV(ITYP1(NP1, IRUN))
1221
1222 dpertt(NP,IRUN)=dpp1(NP1,IRUN)
1223
1224
1225
1226
1227
1228
1229
1230 NP1 = NP1 + 1
1231
1232 PROT(NP, IRUN) = 1.
1233 END DO
1234
1235 1111 continue
1236 NPI(IRUN) = NP1
1237 IA = IA + MASSR(IRUN)
1238 MASSR(IRUN) = NP
1239 1028 CONTINUE
1240 IA = 0
1241 DO 1030 IRUN = 1, NUM
1242 IA = IA + MASSR(IRUN - 1)
1243 DO 1029 IC = 1, MASSR(IRUN)
1244 IE = IA + IC
1245 R(1, IE) = RT(1, IC, IRUN)
1246 R(2, IE) = RT(2, IC, IRUN)
1247 R(3, IE) = RT(3, IC, IRUN)
1248 P(1, IE) = PT(1, IC, IRUN)
1249 P(2, IE) = PT(2, IC, IRUN)
1250 P(3, IE) = PT(3, IC, IRUN)
1251 E(IE) = ET(IC, IRUN)
1252 LB(IE) = LT(IC, IRUN)
1253
1254 PROPER(IE) = PROT(IC, IRUN)
1255 if(nt.eq.(ntmax-1)) ftsv(IE)=ftsvt(IC,IRUN)
1256
1257 dpertp(IE)=dpertt(IC, IRUN)
1258 1029 CONTINUE
1259
1260 call hbtout(MASSR(IRUN),nt,ntmax)
1261 1030 CONTINUE
1262
1263 END IF
1264
1265
1266
1267
1268
1269 10000 continue
1270
1271
1272
1273
1274
1275
1276
1277 iss=0
1278 do 1032 lrun=1,num
1279 iss=iss+massr(lrun-1)
1280 do 1031 l0=1,massr(lrun)
1281 ipart=iss+l0
1282 1031 continue
1283 1032 continue
1284
1285
1286 IF (IAPAR2(1) .NE. 1) THEN
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330 IA = 0
1331 DO 1035 IRUN = 1, NUM
1332 IA = IA + MASSR(IRUN - 1)
1333 NP1 = NPI(IRUN)
1334 NSH = MASSR(IRUN) - NP1 + 1
1335 MULTI1(IRUN) = MULTI1(IRUN) + NSH
1336
1337 IF (NSH .GT. 0) THEN
1338 IB = MULTI1(IRUN)
1339 IE = MASSR(IRUN) + 1
1340 II = -1
1341 ELSE IF (NSH .LT. 0) THEN
1342 IB = MASSR(IRUN) + 1
1343 IE = MULTI1(IRUN)
1344 II = 1
1345 END IF
1346 IF (NSH .NE. 0) THEN
1347 DO 1033 I = IB, IE, II
1348 J = I - NSH
1349 ITYP1(I, IRUN) = ITYP1(J, IRUN)
1350 GX1(I, IRUN) = GX1(J, IRUN)
1351 GY1(I, IRUN) = GY1(J, IRUN)
1352 GZ1(I, IRUN) = GZ1(J, IRUN)
1353 FT1(I, IRUN) = FT1(J, IRUN)
1354 PX1(I, IRUN) = PX1(J, IRUN)
1355 PY1(I, IRUN) = PY1(J, IRUN)
1356 PZ1(I, IRUN) = PZ1(J, IRUN)
1357 EE1(I, IRUN) = EE1(J, IRUN)
1358 XM1(I, IRUN) = XM1(J, IRUN)
1359
1360 PRO1(I, IRUN) = PRO1(J, IRUN)
1361
1362 dpp1(I,IRUN)=dpp1(J,IRUN)
1363 1033 CONTINUE
1364 END IF
1365
1366
1367 DO 1034 I = 1, MASSR(IRUN)
1368 IB = IA + I
1369 ITYP1(I, IRUN) = INVFLV(LB(IB))
1370 GX1(I, IRUN) = R(1, IB)
1371 GY1(I, IRUN) = R(2, IB)
1372 GZ1(I, IRUN) = R(3, IB)
1373
1374
1375
1376
1377 if(FT1(I, IRUN).lt.CT) FT1(I, IRUN) = CT
1378 PX1(I, IRUN) = P(1, IB)
1379 PY1(I, IRUN) = P(2, IB)
1380 PZ1(I, IRUN) = P(3, IB)
1381 XM1(I, IRUN) = E(IB)
1382 EE1(I, IRUN) = SQRT(PX1(I, IRUN) ** 2 +
1383 & PY1(I, IRUN) ** 2 +
1384 & PZ1(I, IRUN) ** 2 +
1385 & XM1(I, IRUN) ** 2)
1386
1387 PRO1(I, IRUN) = PROPER(IB)
1388 1034 CONTINUE
1389 1035 CONTINUE
1390
1391 END IF
1392
1393
1394
1395
1396
1397
1398
1399 50000 CONTINUE
1400
1401
1402
1403
1404
1405
1406 RETURN
1407
1408 END
1409
1410 subroutine coulin(masspr,massta,NUM)
1411
1412
1413
1414
1415
1416 integer zta,zpr
1417 PARAMETER (MAXSTR=150001)
1418 common /EE/ ID(MAXSTR),LB(MAXSTR)
1419
1420 COMMON /ZZ/ ZTA,ZPR
1421
1422 SAVE
1423 MASS=MASSTA+MASSPR
1424 DO 500 IRUN=1,NUM
1425 do 100 i = 1+(IRUN-1)*MASS,zta+(IRUN-1)*MASS
1426 LB(i) = 1
1427 100 continue
1428 do 200 i = zta+1+(IRUN-1)*MASS,massta+(IRUN-1)*MASS
1429 LB(i) = 2
1430 200 continue
1431 do 300 i = massta+1+(IRUN-1)*MASS,massta+zpr+(IRUN-1)*MASS
1432 LB(i) = 1
1433 300 continue
1434 do 400 i = massta+zpr+1+(IRUN-1)*MASS,
1435 1 massta+masspr+(IRUN-1)*MASS
1436 LB(i) = 2
1437 400 continue
1438 500 CONTINUE
1439 return
1440 end
1441
1442
1443 SUBROUTINE RELCOL(LCOLL,LBLOC,LCNNE,LDD,LPP,lppk,
1444 &LPN,lpd,lrho,lomega,LKN,LNNK,LDDK,LNDK,LCNND,LCNDN,
1445 &LDIRT,LDECAY,LRES,LDOU,LDDRHO,LNNRHO,LNNOM,
1446 &NT,ntmax,sp,akaon,sk)
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547 PARAMETER (MAXSTR=150001,MAXR=1,PI=3.1415926)
1548 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
1549 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,aks=0.895)
1550 PARAMETER (AA1=1.26,APHI=1.02,AP1=0.13496)
1551 parameter (maxx=20,maxz=24)
1552 parameter (rrkk=0.6,prkk=0.3,srhoks=5.,ESBIN=0.04)
1553 DIMENSION MASSRN(0:MAXR),RT(3,MAXSTR),PT(3,MAXSTR),ET(MAXSTR)
1554 DIMENSION LT(MAXSTR), PROT(MAXSTR)
1555 COMMON /AA/ R(3,MAXSTR)
1556
1557 COMMON /BB/ P(3,MAXSTR)
1558
1559 COMMON /CC/ E(MAXSTR)
1560
1561 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
1562 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
1563 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
1564
1565 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
1566
1567 COMMON /HH/ PROPER(MAXSTR)
1568
1569 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
1570
1571 common /gg/ dx,dy,dz,dpx,dpy,dpz
1572
1573 COMMON /INPUT/ NSTAR,NDIRCT,DIR
1574
1575 COMMON /NN/NNN
1576
1577 COMMON /RR/ MASSR(0:MAXR)
1578
1579 common /ss/ inout(20)
1580
1581 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
1582
1583 COMMON /RUN/NUM
1584
1585 COMMON /PA/RPION(3,MAXSTR,MAXR)
1586
1587 COMMON /PB/PPION(3,MAXSTR,MAXR)
1588
1589 COMMON /PC/EPION(MAXSTR,MAXR)
1590
1591 COMMON /PD/LPION(MAXSTR,MAXR)
1592
1593 COMMON /PE/PROPI(MAXSTR,MAXR)
1594
1595 COMMON /KKK/TKAON(7),EKAON(7,0:2000)
1596
1597 COMMON /KAON/ AK(3,50,36),SPECK(50,36,7),MF
1598
1599 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
1600
1601 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
1602
1603 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
1604 1 px1n,py1n,pz1n,dp1n
1605
1606 COMMON/tdecay/tfdcy(MAXSTR),tfdpi(MAXSTR,MAXR),tft(MAXSTR)
1607
1608 common /lastt/itimeh,bimp
1609
1610
1611 COMMON/ppbmas/niso(15),nstate,ppbm(15,2),thresh(15),weight(15)
1612
1613 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
1614
1615 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
1616
1617 COMMON/hbt/lblast(MAXSTR),xlast(4,MAXSTR),plast(4,MAXSTR),nlast
1618
1619 common/resdcy/NSAV,iksdcy
1620
1621 COMMON/RNDF77/NSEED
1622
1623 COMMON/FTMAX/ftsv(MAXSTR),ftsvt(MAXSTR, MAXR)
1624 dimension ftpisv(MAXSTR,MAXR),fttemp(MAXSTR)
1625 common /dpi/em2,lb2
1626 common/phidcy/iphidcy,pttrig,ntrig,maxmiss,ipi0dcy
1627
1628 DIMENSION dptemp(MAXSTR)
1629 common /para8/ idpert,npertd,idxsec
1630 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
1631 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
1632 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
1633
1634 real zet(-45:45)
1635 SAVE
1636 data zet /
1637 4 1.,0.,0.,0.,0.,
1638 3 1.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
1639 2 -1.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
1640 1 0.,0.,0.,-1.,0.,1.,0.,-1.,0.,-1.,
1641 s 0.,-2.,-1.,0.,1.,0.,0.,0.,0.,-1.,
1642 e 0.,
1643 s 1.,0.,-1.,0.,1.,-1.,0.,1.,2.,0.,
1644 1 1.,0.,1.,0.,-1.,0.,1.,0.,0.,0.,
1645 2 -1.,0.,1.,0.,-1.,0.,1.,0.,0.,1.,
1646 3 0.,0.,0.,0.,0.,0.,0.,0.,0.,-1.,
1647 4 0.,0.,0.,0.,-1./
1648
1649
1650
1651 call inidcy
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665 RESONA=5.
1666
1667
1668 NODELT=0
1669 SUMSRT =0.
1670 LCOLL = 0
1671 LBLOC = 0
1672 LCNNE = 0
1673 LDD = 0
1674 LPP = 0
1675 lpd = 0
1676 lpdr=0
1677 lrho = 0
1678 lrhor=0
1679 lomega=0
1680 lomgar=0
1681 LPN = 0
1682 LKN = 0
1683 LNNK = 0
1684 LDDK = 0
1685 LNDK = 0
1686 lppk =0
1687 LCNND = 0
1688 LCNDN = 0
1689 LDIRT = 0
1690 LDECAY = 0
1691 LRES = 0
1692 Ldou = 0
1693 LDDRHO = 0
1694 LNNRHO = 0
1695 LNNOM = 0
1696 MSUM = 0
1697 MASSRN(0)=0
1698
1699
1700
1701 DO 1002 IL=1,5
1702 TKAON(IL)=0
1703 DO 1001 IS=1,2000
1704 EKAON(IL,IS)=0
1705 1001 CONTINUE
1706 1002 CONTINUE
1707
1708 DO 1004 i =1,NUM
1709 DO 1003 j =1,MAXSTR
1710 PROPI(j,i) = 1.
1711 1003 CONTINUE
1712 1004 CONTINUE
1713
1714 do 1102 i=1,maxstr
1715 fttemp(i)=0.
1716 do 1101 irun=1,maxr
1717 ftpisv(i,irun)=0.
1718 1101 continue
1719 1102 continue
1720
1721
1722 sp=0
1723
1724 akaon=0
1725 sk=0
1726
1727
1728
1729
1730 MASS = 0
1731
1732 DO 1000 IRUN = 1,NUM
1733 NNN=0
1734 MSUM=MSUM+MASSR(IRUN-1)
1735
1736 J10=2
1737 IF(NT.EQ.NTMAX)J10=1
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747 DO 800 J1 = J10,MASSR(IRUN)
1748 I1 = J1 + MSUM
1749
1750
1751
1752 IF(E(I1).EQ.0.)GO TO 798
1753
1754
1755
1756
1757
1758 IF (LB(I1) .LT. -45 .OR. LB(I1) .GT. 45) GOTO 798
1759 X1 = R(1,I1)
1760 Y1 = R(2,I1)
1761 Z1 = R(3,I1)
1762 PX1 = P(1,I1)
1763 PY1 = P(2,I1)
1764 PZ1 = P(3,I1)
1765 EM1 = E(I1)
1766 am1= em1
1767 E1 = SQRT( EM1**2 + PX1**2 + PY1**2 + PZ1**2 )
1768 ID1 = ID(I1)
1769 LB1 = LB(I1)
1770
1771
1772 if(nt.eq.ntmax.and.(lb1.eq.21.or.lb1.eq.23)) then
1773 pk0=RANART(NSEED)
1774 if(pk0.lt.0.25) then
1775 LB(I1)=22
1776 elseif(pk0.lt.0.50) then
1777 LB(I1)=24
1778 endif
1779 LB1=LB(I1)
1780 endif
1781
1782
1783
1784
1785
1786
1787
1788 if(lb1.eq.0.or.lb1.eq.25.or.lb1.eq.26.or.lb1.eq.27
1789 & .or.lb1.eq.28.or.lb1.eq.29.or.iabs(lb1).eq.30
1790 & .or.(iabs(lb1).ge.6.and.iabs(lb1).le.13)
1791 & .or.(iksdcy.eq.1.and.lb1.eq.24)
1792 & .or.iabs(lb1).eq.16
1793 & .or.(ipi0dcy.eq.1.and.nt.eq.ntmax.and.lb1.eq.4)) then
1794
1795
1796 continue
1797 else
1798 goto 1
1799 endif
1800
1801 IF(lb1.ge.25.and.lb1.le.27) then
1802 wid=0.151
1803 ELSEIF(lb1.eq.28) then
1804 wid=0.00841
1805 ELSEIF(lb1.eq.29) then
1806 wid=0.00443
1807 ELSEIF(iabs(LB1).eq.30) then
1808 WID=0.051
1809 ELSEIF(lb1.eq.0) then
1810 wid=1.18e-6
1811
1812 ELSEIF(iksdcy.eq.1.and.lb1.eq.24) then
1813 wid=7.36e-15
1814
1815 ELSEIF(iabs(lb1).eq.16) then
1816 wid=8.87e-6
1817
1818
1819
1820 ELSEIF(LB1.EQ.32) then
1821 call WIDA1(EM1,rhomp,WID,iseed)
1822 ELSEIF(iabs(LB1).ge.6.and.iabs(LB1).le.9) then
1823 WID=WIDTH(EM1)
1824 ELSEIF((iabs(LB1).EQ.10).OR.(iabs(LB1).EQ.11)) then
1825 WID=W1440(EM1)
1826 ELSEIF((iabs(LB1).EQ.12).OR.(iabs(LB1).EQ.13)) then
1827 WID=W1535(EM1)
1828
1829 ELSEIF(ipi0dcy.eq.1.and.nt.eq.ntmax.and.lb1.eq.4) then
1830 wid=7.85e-9
1831 ENDIF
1832
1833
1834
1835 if(nt.eq.ntmax)then
1836 pdecay=1.1
1837
1838 if(iphidcy.eq.0.and.iabs(LB1).eq.29) pdecay=0.
1839
1840
1841
1842
1843 else
1844 T0=0.19733/WID
1845 GFACTR=E1/EM1
1846 T0=T0*GFACTR
1847 IF(T0.GT.0.)THEN
1848 PDECAY=1.-EXP(-DT/T0)
1849 ELSE
1850 PDECAY=0.
1851 ENDIF
1852 endif
1853 XDECAY=RANART(NSEED)
1854
1855
1856
1857
1858
1859 IF(XDECAY.LT.PDECAY) THEN
1860
1861 idecay=irun
1862 tfnl=nt*dt
1863
1864 if(nt.eq.ntmax.and.ftsv(i1).gt.((ntmax-1)*dt))
1865 1 tfnl=ftsv(i1)
1866 xfnl=x1
1867 yfnl=y1
1868 zfnl=z1
1869
1870 if(lb1.eq.0.or.lb1.eq.25.or.lb1.eq.26.or.lb1.eq.27
1871 & .or.lb1.eq.28.or.lb1.eq.29.or.iabs(lb1).eq.30
1872 & .or.(iabs(lb1).ge.6.and.iabs(lb1).le.9)
1873 & .or.(iksdcy.eq.1.and.lb1.eq.24)
1874 & .or.iabs(lb1).eq.16
1875 & .or.(ipi0dcy.eq.1.and.nt.eq.ntmax.and.lb1.eq.4)) then
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888 call resdec(i1,nt,nnn,wid,idecay,0)
1889 p(1,i1)=px1n
1890 p(2,i1)=py1n
1891 p(3,i1)=pz1n
1892
1893 dpertp(i1)=dp1n
1894
1895 if(nt.eq.ntmax) then
1896 R(1,i1)=xfnl
1897 R(2,i1)=yfnl
1898 R(3,i1)=zfnl
1899 tfdcy(i1)=tfnl
1900 endif
1901
1902
1903 if(iabs(lb1).ge.6.and.iabs(lb1).le.9) then
1904 LDECAY=LDECAY+1
1905 endif
1906
1907
1908
1909
1910
1911
1912
1913 elseif(iabs(LB1).EQ.10.OR.iabs(LB1).EQ.11) THEN
1914 NNN=NNN+1
1915 LDECAY=LDECAY+1
1916 PNSTAR=1.
1917 IF(E(I1).GT.1.22)PNSTAR=0.6
1918 IF(RANART(NSEED).LE.PNSTAR)THEN
1919
1920 CALL DECAY(idecay,I1,NNN,ISEED,wid,nt)
1921 ELSE
1922
1923 CALL DECAY2(idecay,I1,NNN,ISEED,wid,nt)
1924 NNN=NNN+1
1925 ENDIF
1926
1927 elseif(iabs(LB1).eq.12.or.iabs(LB1).eq.13) then
1928 NNN=NNN+1
1929 CALL DECAY(idecay,I1,NNN,ISEED,wid,nt)
1930 LDECAY=LDECAY+1
1931 endif
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947 if(nt.eq.ntmax) then
1948 if(lb(i1).eq.25.or.lb(i1).eq.26.or.lb(i1).eq.27) then
1949 wid=0.151
1950 elseif(lb(i1).eq.0) then
1951 wid=1.18e-6
1952 elseif(lb(i1).eq.24.and.iksdcy.eq.1) then
1953
1954
1955 wid=7.36e-15
1956
1957 elseif(ipi0dcy.eq.1.and.lb(i1).eq.4) then
1958 wid=7.85e-9
1959 else
1960 goto 9000
1961 endif
1962 LB1=LB(I1)
1963 PX1=P(1,I1)
1964 PY1=P(2,I1)
1965 PZ1=P(3,I1)
1966 EM1=E(I1)
1967 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
1968
1969
1970 call resdec(i1,nt,nnn,wid,idecay,0)
1971 p(1,i1)=px1n
1972 p(2,i1)=py1n
1973 p(3,i1)=pz1n
1974 R(1,i1)=xfnl
1975 R(2,i1)=yfnl
1976 R(3,i1)=zfnl
1977 tfdcy(i1)=tfnl
1978
1979 dpertp(i1)=dp1n
1980 endif
1981
1982
1983 if(nt.eq.ntmax.and.ipi0dcy.eq.1.and.lb(i1).eq.4) then
1984 wid=7.85e-9
1985 LB1=LB(I1)
1986 PX1=P(1,I1)
1987 PY1=P(2,I1)
1988 PZ1=P(3,I1)
1989 EM1=E(I1)
1990 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
1991 call resdec(i1,nt,nnn,wid,idecay,0)
1992 p(1,i1)=px1n
1993 p(2,i1)=py1n
1994 p(3,i1)=pz1n
1995 R(1,i1)=xfnl
1996 R(2,i1)=yfnl
1997 R(3,i1)=zfnl
1998 tfdcy(i1)=tfnl
1999 dpertp(i1)=dp1n
2000 endif
2001
2002
2003
2004
2005 9000 go to 798
2006
2007 ENDIF
2008
2009
2010
2011
2012 1 if(nt.eq.ntmax)go to 798
2013
2014 X1 = R(1,I1)
2015 Y1 = R(2,I1)
2016 Z1 = R(3,I1)
2017
2018 DO 600 J2 = 1,J1-1
2019 I2 = J2 + MSUM
2020
2021 IF(E(I2).EQ.0.) GO TO 600
2022
2023 IF(E(I1).EQ.0.) GO TO 800
2024
2025 IF (LB(I2) .LT. -45 .OR. LB(I2) .GT. 45) GOTO 600
2026
2027 X2=R(1,I2)
2028 Y2=R(2,I2)
2029 Z2=R(3,I2)
2030 dr0max=5.
2031
2032 ilb1=iabs(LB(I1))
2033 ilb2=iabs(LB(I2))
2034 IF(ilb1.EQ.42.or.ilb2.EQ.42) THEN
2035 if((ILB1.GE.1.AND.ILB1.LE.2)
2036 1 .or.(ILB1.GE.6.AND.ILB1.LE.13)
2037 2 .or.(ILB2.GE.1.AND.ILB2.LE.2)
2038 3 .or.(ILB2.GE.6.AND.ILB2.LE.13)) then
2039 if((lb(i1)*lb(i2)).gt.0) dr0max=10.
2040 endif
2041 ENDIF
2042
2043 if(((X1-X2)**2+(Y1-Y2)**2+(Z1-Z2)**2).GT.dr0max**2)
2044 1 GO TO 600
2045 IF (ID(I1)*ID(I2).EQ.IAVOID) GOTO 400
2046 ID1=ID(I1)
2047 ID2 = ID(I2)
2048
2049 ix1= nint(x1/dx)
2050 iy1= nint(y1/dy)
2051 iz1= nint(z1/dz)
2052 PX1=P(1,I1)
2053 PY1=P(2,I1)
2054 PZ1=P(3,I1)
2055 EM1=E(I1)
2056 AM1=EM1
2057 LB1=LB(I1)
2058 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
2059 IPX1=NINT(PX1/DPX)
2060 IPY1=NINT(PY1/DPY)
2061 IPZ1=NINT(PZ1/DPZ)
2062 LB2 = LB(I2)
2063 PX2 = P(1,I2)
2064 PY2 = P(2,I2)
2065 PZ2 = P(3,I2)
2066 EM2=E(I2)
2067 AM2=EM2
2068 lb1i=lb(i1)
2069 lb2i=lb(i2)
2070 px1i=P(1,I1)
2071 py1i=P(2,I1)
2072 pz1i=P(3,I1)
2073 em1i=E(I1)
2074 px2i=P(1,I2)
2075 py2i=P(2,I2)
2076 pz2i=P(3,I2)
2077 em2i=E(I2)
2078
2079 eini=SQRT(E(I1)**2+P(1,I1)**2+P(2,I1)**2+P(3,I1)**2)
2080 1 +SQRT(E(I2)**2+P(1,I2)**2+P(2,I2)**2+P(3,I2)**2)
2081 pxini=P(1,I1)+P(1,I2)
2082 pyini=P(2,I1)+P(2,I2)
2083 pzini=P(3,I1)+P(3,I2)
2084 nnnini=nnn
2085
2086
2087 iblock=0
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097 DELTR0=3.
2098 if( (iabs(lb1).ge.14.and.iabs(lb1).le.17) .or.
2099 & (iabs(lb1).ge.30.and.iabs(lb1).le.45) ) DELTR0=5.0
2100 if( (iabs(lb2).ge.14.and.iabs(lb2).le.17) .or.
2101 & (iabs(lb2).ge.30.and.iabs(lb2).le.45) ) DELTR0=5.0
2102
2103 if(lb1.eq.28.and.lb2.eq.28) DELTR0=4.84
2104
2105 if((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.3.and.lb2.le.5)) then
2106 E2=SQRT(EM2**2+PX2**2+PY2**2+PZ2**2)
2107 spipi=(e1+e2)**2-(px1+px2)**2-(py1+py2)**2-(pz1+pz2)**2
2108 if(spipi.ge.(4*0.77**2)) DELTR0=3.5
2109 endif
2110
2111
2112 IF (LB1.EQ.23 .AND. (LB2.GE.14.AND.LB2.LE.17)) GOTO 3699
2113 IF (LB2.EQ.23 .AND. (LB1.GE.14.AND.LB1.LE.17)) GOTO 3699
2114
2115
2116
2117 if(lb1.eq.21.and.lb2.eq.23)go to 3699
2118 if(lb2.eq.21.and.lb1.eq.23)go to 3699
2119 if(lb1.eq.30.and.lb2.eq.21)go to 3699
2120 if(lb2.eq.30.and.lb1.eq.21)go to 3699
2121 if(lb1.eq.-30.and.lb2.eq.23)go to 3699
2122 if(lb2.eq.-30.and.lb1.eq.23)go to 3699
2123 if(lb1.eq.-30.and.lb2.eq.30)go to 3699
2124 if(lb2.eq.-30.and.lb1.eq.30)go to 3699
2125
2126
2127
2128 if(lb1.eq.21.or.lb1.eq.23) then
2129 if(lb2.eq.0.or.(lb2.ge.25.and.lb2.le.28)) then
2130 go to 3699
2131 endif
2132 elseif(lb2.eq.21.or.lb2.eq.23) then
2133 if(lb1.eq.0.or.(lb1.ge.25.and.lb1.le.28)) then
2134 goto 3699
2135 endif
2136 endif
2137
2138
2139 if(iabs(lb1).eq.30 .and.
2140 1 (lb2.eq.0.or.(lb2.ge.25.and.lb2.le.28)
2141 2 .or.(lb2.ge.3.and.lb2.le.5))) then
2142 go to 3699
2143 elseif(iabs(lb2).eq.30 .and.
2144 1 (lb1.eq.0.or.(lb1.ge.25.and.lb1.le.28)
2145 2 .or.(lb1.ge.3.and.lb1.le.5))) then
2146 goto 3699
2147
2148
2149 elseif( iabs(lb1).eq.30 .and.
2150 1 (iabs(lb2).eq.1.or.iabs(lb2).eq.2.or.
2151 2 (iabs(lb2).ge.6.and.iabs(lb2).le.13)) )then
2152 go to 3699
2153 endif
2154 if( iabs(lb2).eq.30 .and.
2155 1 (iabs(lb1).eq.1.or.iabs(lb1).eq.2.or.
2156 2 (iabs(lb1).ge.6.and.iabs(lb1).le.13)) )then
2157 go to 3699
2158 endif
2159
2160
2161
2162
2163 if((lb1.eq.23.or.lb1.eq.21).and.
2164 1 (iabs(lb2).eq.1.or.iabs(lb2).eq.2.or.
2165 2 (iabs(lb2).ge.6.and.iabs(lb2).le.13))) then
2166 go to 3699
2167 elseif((lb2.eq.23.or.lb2.eq.21).and.
2168 1 (iabs(lb1).eq.1.or.iabs(lb1).eq.2.or.
2169 2 (iabs(lb1).ge.6.and.iabs(lb1).le.13))) then
2170 go to 3699
2171 endif
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186 rppmax=3.57
2187
2188 if((lb1.eq.-1.or.lb1.eq.-2.or.(lb1.ge.-13.and.lb1.le.-6))
2189 1 .and.(lb2.eq.1.or.lb2.eq.2.or.(lb2.ge.6.and.lb2.le.13))) then
2190 DELTR0 = RPPMAX
2191 GOTO 2699
2192 else if((lb2.eq.-1.or.lb2.eq.-2.or.(lb2.ge.-13.and.lb2.le.-6))
2193 1 .and.(lb1.eq.1.or.lb1.eq.2.or.(lb1.ge.6.and.lb1.le.13))) then
2194 DELTR0 = RPPMAX
2195 GOTO 2699
2196 END IF
2197
2198
2199 if( (iabs(lb1).ge.14.and.iabs(lb1).le.17) .or.
2200 & (iabs(lb2).ge.14.and.iabs(lb2).le.17) )go to 3699
2201
2202
2203 IF (iabs(LB1).EQ.42.or.iabs(LB2).EQ.42) THEN
2204 ilb1=iabs(LB1)
2205 ilb2=iabs(LB2)
2206 if((ILB1.GE.1.AND.ILB1.LE.2)
2207 1 .or.(ILB1.GE.6.AND.ILB1.LE.13)
2208 2 .or.(ILB2.GE.1.AND.ILB2.LE.2)
2209 3 .or.(ILB2.GE.6.AND.ILB2.LE.13)) then
2210 if((lb1*lb2).gt.0) deltr0=9.5
2211 endif
2212 ENDIF
2213
2214 if( (iabs(lb1).ge.40.and.iabs(lb1).le.45) .or.
2215 & (iabs(lb2).ge.40.and.iabs(lb2).le.45) )go to 3699
2216
2217
2218 IF( (lb1.eq.29 .and.((lb2.ge.1.and.lb2.le.13).or.
2219 & (lb2.ge.21.and.lb2.le.28).or.iabs(lb2).eq.30)) .OR.
2220 & (lb2.eq.29 .and.((lb1.ge.1.and.lb1.le.13).or.
2221 & (lb1.ge.21.and.lb1.le.28).or.iabs(lb1).eq.30)) )THEN
2222 DELTR0=3.0
2223 go to 3699
2224 endif
2225
2226
2227
2228
2229
2230 If(iabs(lb1).eq.30.or.iabs(lb2).eq.30) go to 400
2231
2232 If(lb1.eq.23.and.(lb2.lt.1.or.lb2.gt.17))go to 400
2233 If(lb2.eq.23.and.(lb1.lt.1.or.lb1.gt.17))go to 400
2234
2235
2236
2237 if( ((lb1.le.-1.and.lb1.ge.-13)
2238 & .and.(lb2.eq.0.or.(lb2.ge.3.and.lb2.le.5)
2239 & .or.(lb2.ge.25.and.lb2.le.28)))
2240 & .OR.((lb2.le.-1.and.lb2.ge.-13)
2241 & .and.(lb1.eq.0.or.(lb1.ge.3.and.lb1.le.5)
2242 & .or.(lb1.ge.25.and.lb1.le.28))) ) then
2243 elseIF( ((LB1.eq.-1.or.lb1.eq.-2).
2244 & and.(LB2.LT.-5.and.lb2.ge.-13))
2245 & .OR. ((LB2.eq.-1.or.lb2.eq.-2).
2246 & and.(LB1.LT.-5.and.lb1.ge.-13)) )then
2247 elseIF((LB1.eq.-1.or.lb1.eq.-2)
2248 & .AND.(LB2.eq.-1.or.lb2.eq.-2))then
2249 elseIF((LB1.LT.-5.and.lb1.ge.-13).AND.
2250 & (LB2.LT.-5.and.lb2.ge.-13)) then
2251
2252
2253 endif
2254
2255 2699 CONTINUE
2256
2257 IF (LB1 .EQ. 1 .OR. LB1 .EQ. 2 .OR. (LB1 .GE. 6 .AND.
2258 & LB1 .LE. 17)) THEN
2259 IF (LB2 .EQ. 1 .OR. LB2 .EQ. 2 .OR. (LB2 .GE. 6 .AND.
2260 & LB2 .LE. 17)) THEN
2261 DELTR0 = 2.
2262 END IF
2263 END IF
2264
2265 3699 RSQARE = (X1-X2)**2 + (Y1-Y2)**2 + (Z1-Z2)**2
2266 IF (RSQARE .GT. DELTR0**2) GO TO 400
2267
2268
2269 ix2 = nint(x2/dx)
2270 iy2 = nint(y2/dy)
2271 iz2 = nint(z2/dz)
2272 ipx2 = nint(px2/dpx)
2273 ipy2 = nint(py2/dpy)
2274 ipz2 = nint(pz2/dpz)
2275
2276
2277 CALL CMS(I1,I2,PCX,PCY,PCZ,SRT)
2278
2279
2280 drmax=dr0max
2281 call distc0(drmax,deltr0,DT,
2282 1 Ifirst,PCX,PCY,PCZ,
2283 2 x1,y1,z1,px1,py1,pz1,em1,x2,y2,z2,px2,py2,pz2,em2)
2284 if(Ifirst.eq.-1) goto 400
2285
2286 ISS=NINT(SRT/ESBIN)
2287
2288 if(ISS.gt.2000) ISS=2000
2289
2290
2291
2292
2293 IF (iabs(LB1).EQ.42.or.iabs(LB2).EQ.42) THEN
2294 ilb1=iabs(LB1)
2295 ilb2=iabs(LB2)
2296 if(LB1.eq.0.or.(LB1.GE.3.AND.LB1.LE.5)
2297 1 .or.(LB1.GE.25.AND.LB1.LE.28)
2298 2 .or.
2299 3 LB2.eq.0.or.(LB2.GE.3.AND.LB2.LE.5)
2300 4 .or.(LB2.GE.25.AND.LB2.LE.28)) then
2301 GOTO 505
2302
2303 elseif(((ILB1.GE.1.AND.ILB1.LE.2)
2304 1 .or.(ILB1.GE.6.AND.ILB1.LE.13)
2305 2 .or.(ILB2.GE.1.AND.ILB2.LE.2)
2306 3 .or.(ILB2.GE.6.AND.ILB2.LE.13))
2307 4 .and.(lb1*lb2).gt.0) then
2308 GOTO 506
2309 else
2310 GOTO 400
2311 endif
2312 ENDIF
2313
2314
2315 if( ((lb1.eq.23.or.lb1.eq.30).and.
2316 & (lb2.eq.-1.or.lb2.eq.-2.or.(lb2.ge.-13.and.lb2.le.-6)))
2317 & .OR.((lb2.eq.23.or.lb2.eq.30).and.
2318 & (lb1.eq.-1.or.lb1.eq.-2.or.(lb1.ge.-13.and.lb1.le.-6))) )
2319 & then
2320 bmass=0.938
2321 if(srt.le.(bmass+aka)) then
2322 pkaon=0.
2323 else
2324 pkaon=sqrt(((srt**2-(aka**2+bmass**2))
2325 1 /2./bmass)**2-aka**2)
2326 endif
2327
2328
2329 sigela = 0.5 * (AKPEL(PKAON) + AKNEL(PKAON))
2330 SIGSGM = 1.5 * AKPSGM(PKAON) + AKNSGM(PKAON)
2331 SIG = sigela + SIGSGM + AKPLAM(PKAON)
2332 if(sig.gt.1.e-7) then
2333
2334 icase=3
2335 brel=sigela/sig
2336 brsgm=sigsgm/sig
2337 brsig = sig
2338 nchrg = 1
2339 go to 3555
2340 endif
2341 go to 400
2342 endif
2343
2344
2345
2346 if(((lb1.ge.-17.and.lb1.le.-14).and.(lb2.ge.3.and.lb2.le.5))
2347 & .OR.((lb2.ge.-17.and.lb2.le.-14)
2348 & .and.(lb1.ge.3.and.lb1.le.5)))then
2349 nchrg=-100
2350
2351
2352 if((lb1.eq.-15.and.(lb2.eq.5.or.lb2.eq.27)).OR.
2353 & (lb2.eq.-15.and.(lb1.eq.5.or.lb1.eq.27))) then
2354 nchrg=-2
2355
2356 bmass=1.232
2357 go to 110
2358 endif
2359 if( (lb1.eq.-15.and.(lb2.eq.0.or.lb2.eq.4.or.lb2.eq.26.or.
2360 & lb2.eq.28)).OR.(lb2.eq.-15.and.(lb1.eq.0.or.
2361 & lb1.eq.4.or.lb1.eq.26.or.lb1.eq.28)).OR.
2362 & ((lb1.eq.-14.or.lb1.eq.-16).and.(lb2.eq.5.or.lb2.eq.27)).OR.
2363 & ((lb2.eq.-14.or.lb2.eq.-16).and.(lb1.eq.5.or.lb1.eq.27)) )then
2364 nchrg=-1
2365
2366 bmass=0.938
2367 go to 110
2368 endif
2369 if( (lb1.eq.-15.and.(lb2.eq.3.or.lb2.eq.25)).OR.
2370 & (lb2.eq.-15.and.(lb1.eq.3.or.lb1.eq.25)).OR.
2371 & (lb1.eq.-17.and.(lb2.eq.5.or.lb2.eq.27)).OR.
2372 & (lb2.eq.-17.and.(lb1.eq.5.or.lb1.eq.27)).OR.
2373 & ((lb1.eq.-14.or.lb1.eq.-16).and.(lb2.eq.0.or.lb2.eq.4
2374 & .or.lb2.eq.26.or.lb2.eq.28)).OR.
2375 & ((lb2.eq.-14.or.lb2.eq.-16).and.(lb1.eq.0.or.lb1.eq.4
2376 & .or.lb1.eq.26.or.lb1.eq.28)) )then
2377 nchrg=0
2378
2379 bmass=0.938
2380 go to 110
2381 endif
2382 if( (lb1.eq.-17.and.(lb2.eq.0.or.lb2.eq.4.or.lb2.eq.26.or.
2383 & lb2.eq.28)).OR.(lb2.eq.-17.and.(lb1.eq.0.or.
2384 & lb1.eq.4.or.lb1.eq.26.or.lb1.eq.28)).OR.
2385 & ((lb1.eq.-14.or.lb1.eq.-16).and.(lb2.eq.3.or.lb2.eq.25)).OR.
2386 & ((lb2.eq.-14.or.lb2.eq.-16).and.(lb1.eq.3.or.lb1.eq.25)))then
2387 nchrg=1
2388
2389 bmass=1.232
2390 endif
2391
2392
2393 110 sig = 0.
2394
2395 if(nchrg.ne.-100.and.srt.ge.(aka+bmass))then
2396
2397
2398 icase=4
2399
2400 pkaon=sqrt(((srt**2-(aka**2+0.938**2))/2./0.938)**2-aka**2)
2401
2402 if(lb1.eq.-14.or.lb2.eq.-14) then
2403 if(nchrg.ge.0) sigma0=akPlam(pkaon)
2404 if(nchrg.lt.0) sigma0=akNlam(pkaon)
2405
2406 else
2407
2408 if(nchrg.ge.0) sigma0=akPsgm(pkaon)
2409
2410 if(nchrg.lt.0) sigma0=akNsgm(pkaon)
2411 SIGMA0 = 1.5 * AKPSGM(PKAON) + AKNSGM(PKAON)
2412 endif
2413 sig=(srt**2-(aka+bmass)**2)*(srt**2-(aka-bmass)**2)/
2414 & (srt**2-(em1+em2)**2)/(srt**2-(em1-em2)**2)*sigma0
2415
2416 if(nchrg.eq.-2.or.nchrg.eq.2) sig=2.*sig
2417
2418
2419 IF (LB1 .EQ. -14 .OR. LB2 .EQ. -14) THEN
2420 SIG = 4.0 / 3.0 * SIG
2421 ELSE IF (NCHRG .EQ. -2 .OR. NCHRG .EQ. 2) THEN
2422 SIG = 8.0 / 9.0 * SIG
2423 ELSE
2424 SIG = 4.0 / 9.0 * SIG
2425 END IF
2426
2427
2428
2429
2430
2431 endif
2432
2433 icase=4
2434 sigela = 10.
2435 sig = sig + sigela
2436 brel= sigela/sig
2437 brsgm=0.
2438 brsig = sig
2439
2440 go to 3555
2441 endif
2442
2443
2444
2445
2446 if( ((lb1.eq.21.or.lb1.eq.-30).and.(lb2.ge.14.and.lb2.le.17)).OR.
2447 & ((lb2.eq.21.or.lb2.eq.-30).and.(lb1.ge.14.and.lb1.le.17)) )then
2448 kp = 0
2449 go to 3455
2450 endif
2451
2452 if( ((lb1.eq.23.or.lb1.eq.30).and.(lb2.le.-14.and.lb2.ge.-17)).OR.
2453 & ((lb2.eq.23.or.lb2.eq.30).and.(lb1.le.-14.and.lb1.ge.-17)) )then
2454 kp = 1
2455 go to 3455
2456 endif
2457
2458 if( ((lb1.eq.21.or.lb1.eq.-30).and.(lb2.eq.40.or.lb2.eq.41)).OR.
2459 & ((lb2.eq.21.or.lb2.eq.-30).and.(lb1.eq.40.or.lb1.eq.41)) )then
2460 kp = 0
2461 go to 3455
2462 endif
2463
2464 if( ((lb1.eq.23.or.lb1.eq.30).and.(lb2.eq.-40.or.lb2.eq.-41)).OR.
2465 & ((lb2.eq.23.or.lb2.eq.30).and.(lb1.eq.-40.or.lb1.eq.-41)) )then
2466 kp = 1
2467 go to 3455
2468 endif
2469
2470
2471
2472
2473 kp = 3
2474
2475 if( (((lb1.ge.3.and.lb1.le.5).or.lb1.eq.0)
2476 & .and.(iabs(lb2).eq.40.or.iabs(lb2).eq.41))
2477 & .OR. (((lb2.ge.3.and.lb2.le.5).or.lb2.eq.0)
2478 & .and.(iabs(lb1).eq.40.or.iabs(lb1).eq.41)) )go to 3455
2479
2480
2481
2482 if( ((lb1.ge.3.and.lb1.le.5).and.iabs(lb2).eq.45)
2483 & .OR.((lb2.ge.3.and.lb2.le.5).and.iabs(lb1).eq.45) )go to 3455
2484
2485
2486
2487
2488
2489 IF (LB1.EQ.23 .AND. (LB2.GE.14.AND.LB2.LE.17)) GOTO 5699
2490 IF (LB2.EQ.23 .AND. (LB1.GE.14.AND.LB1.LE.17)) GOTO 5699
2491
2492 IF (LB1.EQ.21 .AND. (LB2.GE.-17.AND.LB2.LE.-14)) GOTO 5699
2493 IF (LB2.EQ.21 .AND. (LB1.GE.-17.AND.LB1.LE.-14)) GOTO 5699
2494
2495
2496 IF( (((LB1.eq.1.or.LB1.eq.2).or.(LB1.ge.6.and.LB1.le.13))
2497 & .AND.(LB2.GE.-17.AND.LB2.LE.-14)) .OR.
2498 & (((LB2.eq.1.or.LB2.eq.2).or.(LB2.ge.6.and.LB2.le.13))
2499 & .AND.(LB1.GE.-17.AND.LB1.LE.-14)) )go to 5999
2500
2501 IF( (((LB1.eq.-1.or.LB1.eq.-2).or.(LB1.le.-6.and.LB1.ge.-13))
2502 & .AND.(LB2.GE.14.AND.LB2.LE.17)) .OR.
2503 & (((LB2.eq.-1.or.LB2.eq.-2).or.(LB2.le.-6.and.LB2.ge.-13))
2504 & .AND.(LB1.GE.14.AND.LB1.LE.17)) )go to 5999
2505
2506
2507
2508 if(lb1.eq.21.and.lb2.eq.23) go to 8699
2509 if(lb2.eq.21.and.lb1.eq.23) go to 8699
2510 if(lb1.eq.30.and.lb2.eq.21) go to 8699
2511 if(lb2.eq.30.and.lb1.eq.21) go to 8699
2512 if(lb1.eq.-30.and.lb2.eq.23) go to 8699
2513 if(lb2.eq.-30.and.lb1.eq.23) go to 8699
2514 if(lb1.eq.-30.and.lb2.eq.30) go to 8699
2515 if(lb2.eq.-30.and.lb1.eq.30) go to 8699
2516
2517 IF( ((lb1.eq.23.or.lb1.eq.21.or.iabs(lb1).eq.30) .and.
2518 & (lb2.ge.25.and.lb2.le.28)) .OR.
2519 & ((lb2.eq.23.or.lb2.eq.21.or.iabs(lb2).eq.30) .and.
2520 & (lb1.ge.25.and.lb1.le.28)) ) go to 8799
2521
2522
2523 IF( (iabs(lb1).eq.30.and.(lb2.ge.3.and.lb2.le.5)) .OR.
2524 & (iabs(lb2).eq.30.and.(lb1.ge.3.and.lb1.le.5)) )go to 8799
2525
2526
2527
2528
2529 IF( (lb1.eq.29 .and.(lb2.eq.1.or.lb2.eq.2.or.
2530 & (lb2.ge.6.and.lb2.le.9))) .OR.
2531 & (lb2.eq.29 .and.(lb1.eq.1.or.lb1.eq.2.or.
2532 & (lb1.ge.6.and.lb1.le.9))) )go to 7222
2533
2534
2535 IF( (lb1.eq.29 .and.((lb2.ge.3.and.lb2.le.5).or.
2536 & (lb2.ge.21.and.lb2.le.28).or.iabs(lb2).eq.30)) .OR.
2537 & (lb2.eq.29 .and.((lb1.ge.3.and.lb1.le.5).or.
2538 & (lb1.ge.21.and.lb1.le.28).or.iabs(lb1).eq.30)) )THEN
2539 go to 7444
2540 endif
2541
2542
2543
2544
2545 if( ((iabs(lb1).ge.14.and.iabs(lb1).le.17).or.iabs(lb1).ge.40)
2546 & .and.((lb2.ge.25.and.lb2.le.29).or.lb2.eq.0) )go to 888
2547 if( ((iabs(lb2).ge.14.and.iabs(lb2).le.17).or.iabs(lb2).ge.40)
2548 & .and.((lb1.ge.25.and.lb1.le.29).or.lb1.eq.0) )go to 888
2549
2550
2551 if( ((lb1.eq.23.or.lb1.eq.30).and.(lb2.eq.1.or.lb2.eq.2.or.
2552 & (lb2.ge.6.and.lb2.le.13))) .OR.
2553 & ((lb2.eq.23.or.lb2.eq.30).and.(lb1.eq.1.or.lb1.eq.2.or.
2554 & (lb1.ge.6.and.lb1.le.13))) ) go to 888
2555 if( ((lb1.eq.21.or.lb1.eq.-30).and.(lb2.eq.-1.or.lb2.eq.-2.or.
2556 & (lb2.ge.-13.and.lb2.le.-6))) .OR.
2557 & ((lb2.eq.21.or.lb2.eq.-30).and.(lb1.eq.-1.or.lb1.eq.-2.or.
2558 & (lb1.ge.-13.and.lb1.le.-6))) ) go to 888
2559
2560
2561 If( ((lb1.ge.14.and.lb1.le.17).and.(lb2.ge.6.and.lb2.le.13))
2562 & .OR.((lb2.ge.14.and.lb2.le.17).and.(lb1.ge.6.and.lb1.le.13)) )
2563 & go to 7799
2564 If(((lb1.le.-14.and.lb1.ge.-17).and.(lb2.le.-6.and.lb2.ge.-13))
2565 &.OR.((lb2.le.-14.and.lb2.ge.-17).and.(lb1.le.-6.and.lb1.ge.-13)))
2566 & go to 7799
2567
2568
2569 if( iabs(lb1).ge.40 .or. iabs(lb2).ge.40
2570 & .or. (lb1.le.-14.and.lb1.ge.-17)
2571 & .or. (lb2.le.-14.and.lb2.ge.-17) )go to 400
2572
2573
2574
2575 if((lb1.eq.-1.or.lb1.eq.-2.or.(lb1.ge.-13.and.lb1.le.-6))
2576 1 .and.(lb2.eq.1.or.lb2.eq.2.or.(lb2.ge.6.and.lb2.le.13))) then
2577 GOTO 2799
2578 else if((lb2.eq.-1.or.lb2.eq.-2.or.(lb2.ge.-13.and.lb2.le.-6))
2579 1 .and.(lb1.eq.1.or.lb1.eq.2.or.(lb1.ge.6.and.lb1.le.13))) then
2580 GOTO 2799
2581 END IF
2582
2583
2584 inewka=irun
2585
2586
2587
2588
2589 call newka(icase,inewka,iseed,dt,nt,
2590 & ictrl,i1,i2,srt,pcx,pcy,pcz,iblock)
2591
2592
2593 IF (ICTRL .EQ. 1) GOTO 400
2594
2595
2596
2597
2598
2599 if((iabs(lb1).ge.14.and.iabs(lb1).le.17).
2600 & or.(iabs(lb2).ge.14.and.iabs(lb2).le.17))go to 400
2601
2602
2603 IF((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.3.and.lb2.le.5))GO TO 777
2604 if(lb1.eq.0.and.(lb2.ge.3.and.lb2.le.5)) go to 777
2605 if(lb2.eq.0.and.(lb1.ge.3.and.lb1.le.5)) go to 777
2606 if(lb1.eq.0.and.lb2.eq.0)go to 777
2607
2608
2609
2610 if( (lb1.ge.25.and.lb1.le.28).and.
2611 & (lb2.ge.25.and.lb2.le.28) )goto 777
2612
2613 If((lb1.ge.25.and.lb1.le.28).and.(lb2.ge.3.and.lb2.le.5))go to 777
2614 If((lb2.ge.25.and.lb2.le.28).and.(lb1.ge.3.and.lb1.le.5))go to 777
2615
2616 if((lb1.ge.25.and.lb1.le.28).and.lb2.eq.0)go to 777
2617 if((lb2.ge.25.and.lb2.le.28).and.lb1.eq.0)go to 777
2618
2619
2620 if((lb1.eq.23.or.lb1.eq.21).and.(lb2.ge.3.and.lb2.le.5))go to 889
2621 if((lb2.eq.23.or.lb2.eq.21).and.(lb1.ge.3.and.lb1.le.5))go to 889
2622
2623
2624
2625 If(iabs(lb1).eq.30.or.iabs(lb2).eq.30) go to 400
2626 If(lb1.eq.21.or.lb2.eq.21) go to 400
2627 If(lb1.eq.23.or.lb2.eq.23) go to 400
2628
2629
2630 IF( (LB1.ge.3.and.LB1.le.5) .and.
2631 & (iabs(LB2).eq.1.or.iabs(LB2).eq.2.or.
2632 & (iabs(LB2).ge.6.and.iabs(LB2).le.13)) )GO TO 3
2633 IF( (LB2.ge.3.and.LB2.le.5) .and.
2634 & (iabs(LB1).eq.1.or.iabs(LB1).eq.2.or.
2635 & (iabs(LB1).ge.6.and.iabs(LB1).le.13)) )GO TO 3
2636
2637
2638 IF( (LB1.ge.25.and.LB1.le.28) .and.
2639 & (iabs(LB2).eq.1.or.iabs(LB2).eq.2.or.
2640 & (iabs(LB2).ge.6.and.iabs(LB2).le.13)) )GO TO 33
2641 IF( (LB2.ge.25.and.LB2.le.28) .and.
2642 & (iabs(LB1).eq.1.or.iabs(LB1).eq.2.or.
2643 & (iabs(LB1).ge.6.and.iabs(LB1).le.13)) )GO TO 33
2644
2645
2646 IF( LB1.eq.0 .and.
2647 & (iabs(LB2).eq.1.or.iabs(LB2).eq.2.or.
2648 & (iabs(LB2).ge.6.and.iabs(LB2).le.13)) )GO TO 547
2649 IF( LB2.eq.0 .and.
2650 & (iabs(LB1).eq.1.or.iabs(LB1).eq.2.or.
2651 & (iabs(LB1).ge.6.and.iabs(LB1).le.13)) )GO TO 547
2652
2653
2654 IF((LB1.eq.1.or.lb1.eq.2).
2655 & AND.(LB2.GT.5.and.lb2.le.13))GOTO 44
2656 IF((LB2.eq.1.or.lb2.eq.2).
2657 & AND.(LB1.GT.5.and.lb1.le.13))GOTO 44
2658 IF((LB1.eq.-1.or.lb1.eq.-2).
2659 & AND.(LB2.LT.-5.and.lb2.ge.-13))GOTO 44
2660 IF((LB2.eq.-1.or.lb2.eq.-2).
2661 & AND.(LB1.LT.-5.and.lb1.ge.-13))GOTO 44
2662
2663
2664 IF((LB1.eq.1.or.lb1.eq.2).AND.(LB2.eq.1.or.lb2.eq.2))GOTO 4
2665 IF((LB1.eq.-1.or.lb1.eq.-2).AND.(LB2.eq.-1.or.lb2.eq.-2))GOTO 4
2666
2667
2668 IF((LB1.GT.5.and.lb1.le.13).AND.
2669 & (LB2.GT.5.and.lb2.le.13)) GOTO 444
2670 IF((LB1.LT.-5.and.lb1.ge.-13).AND.
2671 & (LB2.LT.-5.and.lb2.ge.-13)) GOTO 444
2672
2673
2674
2675 if((lb1.lt.3).and.(lb2.ge.14.and.lb2.le.17))goto 400
2676 if((lb2.lt.3).and.(lb1.ge.14.and.lb1.le.17))goto 400
2677 if((lb1.ge.14.and.lb1.le.17).and.
2678 & (lb2.ge.14.and.lb2.le.17))goto 400
2679
2680
2681 go to 400
2682
2683
2684 547 IF(LB1*LB2.EQ.0)THEN
2685
2686
2687
2688
2689
2690 ece=(em1+em2+0.02)**2
2691 xkaon0=0.
2692 if(srt.ge.1.63.AND.SRT.LE.1.7)xkaon0=pnlka(srt)
2693 IF(SRT.GT.1.7)XKAON0=PNLKA(SRT)+pnska(srt)
2694
2695 XKAON0 = 2.0 * XKAON0
2696
2697
2698
2699
2700
2701 xkaon=xkaon0
2702
2703 XETA=XN1535(I1,I2,0)
2704 If((iabs(LB(I1)).ge.6.and.iabs(LB(I1)).le.13).or.
2705 & (iabs(LB(I2)).ge.6.and.iabs(LB(I2)).le.13)) xeta=0.
2706 IF((XETA+xkaon).LE.1.e-06)GO TO 400
2707 DSE=SQRT((XETA+XKAON)/PI)
2708 DELTRE=DSE+0.1
2709 px1cm=pcx
2710 py1cm=pcy
2711 pz1cm=pcz
2712
2713 CALL DISTCE(I1,I2,DELTRE,DSE,DT,ECE,SRT,IC,
2714 1 PCX,PCY,PCZ)
2715 IF(IC.EQ.-1) GO TO 400
2716 ekaon(4,iss)=ekaon(4,iss)+1
2717 IF(XKAON0/(XKAON+XETA).GT.RANART(NSEED))then
2718
2719 CALL CREN(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK)
2720
2721 IF(IBLOCK.EQ.7) then
2722 LPN=LPN+1
2723 elseIF(IBLOCK.EQ.-7) then
2724 endif
2725
2726 em1=e(i1)
2727 em2=e(i2)
2728 GO TO 440
2729 endif
2730
2731 resona=1.
2732 GO TO 98
2733 ENDIF
2734
2735 3 CONTINUE
2736 px1cm=pcx
2737 py1cm=pcy
2738 pz1cm=pcz
2739
2740
2741 xkaon0=0.
2742 if(srt.ge.1.63.AND.SRT.LE.1.7)xkaon0=pnlka(srt)
2743 IF(SRT.GT.1.7)XKAON0=PNLKA(SRT)+pnska(srt)
2744 XKAON0 = 2.0 * XKAON0
2745
2746
2747 Xphi = 0.
2748 if( ( ((lb1.ge.1.and.lb1.le.2).or.
2749 & (lb1.ge.6.and.lb1.le.9))
2750 & .OR.((lb2.ge.1.and.lb2.le.2).or.
2751 & (lb2.ge.6.and.lb2.le.9)) )
2752 & .AND. srt.gt.1.958)
2753 & call pibphi(srt,lb1,lb2,em1,em2,Xphi,xphin)
2754
2755
2756
2757
2758
2759
2760
2761
2762 If((iabs(LB(I1)).ge.6.and.iabs(LB(I1)).le.13).or.
2763 & (iabs(LB(I2)).ge.6.and.iabs(LB(I2)).le.13)) go to 31
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778 EC=(em1+em2+0.02)**2
2779 xkaon=0.
2780 if(srt.gt.1.23)xkaon=(pionpp(srt)+PIPP1(SRT))/2.
2781
2782
2783
2784
2785
2786
2787
2788
2789 IF( (LB1*LB2.EQ.5.OR.((LB1*LB2.EQ.6).AND.
2790 & (LB1.EQ.3.OR.LB2.EQ.3)))
2791 & .OR. (LB1*LB2.EQ.-3.OR.((LB1*LB2.EQ.-10).AND.
2792 & (LB1.EQ.5.OR.LB2.EQ.5))) )then
2793 XMAX=190.
2794 xmaxn=0
2795 xmaxn1=0
2796 xdirct=dirct1(srt)
2797 go to 678
2798 endif
2799
2800
2801
2802
2803
2804 IF( (LB1*LB2.EQ.3.OR.((LB1*LB2.EQ.10).AND.
2805 & (LB1.EQ.5.OR.LB2.EQ.5)))
2806 & .OR. (LB1*LB2.EQ.-5.OR.((LB1*LB2.EQ.-6).AND.
2807 & (LB1.EQ.3.OR.LB2.EQ.3))) )then
2808 XMAX=27.
2809 xmaxn=2./3.*25.*0.6
2810 xmaxn1=2./3.*40.*0.5
2811 xdirct=dirct2(srt)
2812 go to 678
2813 endif
2814
2815 IF((LB1.EQ.4.OR.LB2.EQ.4).AND.
2816 & (iabs(LB1*LB2).EQ.4.OR.iabs(LB1*LB2).EQ.8))then
2817 XMAX=50.
2818 xmaxn=1./3.*25*0.6
2819 xmaxn1=1/3.*40.*0.5
2820 xdirct=dirct3(srt)
2821 go to 678
2822 endif
2823 678 xnpin1=0
2824 xnpin=0
2825 XNPID=XNPI(I1,I2,1,XMAX)
2826 if(xmaxn1.ne.0)xnpin1=XNPI(i1,i2,2,XMAXN1)
2827 if(xmaxn.ne.0)XNPIN=XNPI(I1,I2,0,XMAXN)
2828
2829 xres=xnpid+xnpin+xnpin1
2830 xnelas=xres+xdirct
2831 icheck=1
2832 go to 34
2833
2834
2835
2836
2837 31 ec=(em1+em2+0.02)**2
2838 xreab=reab(i1,i2,srt,1)
2839
2840
2841 if((iabs(lb1).ge.10.and.iabs(lb1).le.13)
2842 1 .or.(iabs(lb2).ge.10.and.iabs(lb2).le.13)) XREAB = 0.
2843
2844 xkaon=xkaon0+xreab
2845
2846 IF((iabs(LB1).GT.9.AND.iabs(LB1).LE.13) .OR.
2847 & (iabs(LB2).GT.9.AND.iabs(LB2).LE.13))THEN
2848 Xnelas=1.0
2849 ELSE
2850 XNELAS=DPION(EM1,EM2,LB1,LB2,SRT)
2851 ENDIF
2852 icheck=2
2853 34 IF((Xnelas+xkaon+Xphi).LE.0.000001)GO TO 400
2854 DS=SQRT((Xnelas+xkaon+Xphi)/PI)
2855
2856
2857
2858
2859
2860
2861 deltar=ds+0.1
2862 CALL DISTCE(I1,I2,DELTAR,DS,DT,EC,SRT,IC,
2863 1 PCX,PCY,PCZ)
2864 IF(IC.EQ.-1) GO TO 400
2865 ekaon(4,iss)=ekaon(4,iss)+1
2866
2867
2868
2869
2870 if(icheck.eq.2)then
2871
2872 if(xnelas/(xnelas+xkaon+Xphi).ge.RANART(NSEED))then
2873
2874 call Crdir(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK)
2875 go to 440
2876 else
2877
2878
2879 go to 96
2880 endif
2881 endif
2882
2883
2884
2885
2886 IF((XKAON+Xphi)/(XKAON+Xphi+Xnelas).GT.RANART(NSEED))GO TO 95
2887
2888
2889 if(xdirct/xnelas.ge.RANART(NSEED))then
2890
2891 call Crdir(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK)
2892 go to 440
2893 endif
2894
2895 IF( (LB1*LB2.EQ.5.OR.((LB1*LB2.EQ.6).AND.
2896 & (LB1.EQ.3.OR.LB2.EQ.3)))
2897 & .OR. (LB1*LB2.EQ.-3.OR.((LB1*LB2.EQ.-10).AND.
2898 & (LB1.EQ.5.OR.LB2.EQ.5))) )then
2899
2900
2901 GO TO 99
2902 else
2903
2904
2905 XX=(XNPIN+xnpin1)/xres
2906 IF(RANART(NSEED).LT.XX)THEN
2907
2908
2909 xx0=xnpin/(xnpin+xnpin1)
2910 if(RANART(NSEED).lt.xx0)then
2911 RESONA=0.
2912
2913 GO TO 97
2914 else
2915
2916 resona=1.
2917 GO TO 98
2918 endif
2919 ELSE
2920
2921 GO TO 99
2922 ENDIF
2923 ENDIF
2924 97 CONTINUE
2925 IF(RESONA.EQ.0.)THEN
2926
2927 I=I1
2928 IF(EM1.LT.0.6)I=I2
2929
2930 IF( (LB1*LB2.EQ.10.AND.(LB1.EQ.5.OR.LB2.EQ.5))
2931 & .OR.(LB1*LB2.EQ.-6.AND.(LB1.EQ.3.OR.LB2.EQ.3)) )THEN
2932 LB(I)=11
2933 go to 303
2934 ENDIF
2935
2936
2937 IF(iabs(LB(I1)*LB(I2)).EQ.4.AND.
2938 & (LB(I1).EQ.4.OR.LB(I2).EQ.4))THEN
2939 LB(I)=11
2940 go to 303
2941 ENDIF
2942
2943
2944 IF(iabs(LB(I1)*LB(I2)).EQ.8.AND.
2945 & (LB(I1).EQ.4.OR.LB(I2).EQ.4))THEN
2946 LB(I)=10
2947 go to 303
2948 ENDIF
2949
2950
2951 IF( (LB(I1)*LB(I2).EQ.3)
2952 & .OR.(LB(I1)*LB(I2).EQ.-5) )THEN
2953 LB(I)=10
2954 ENDIF
2955 303 CALL DRESON(I1,I2)
2956 if(LB1.lt.0.or.LB2.lt.0) LB(I)=-LB(I)
2957 lres=lres+1
2958 GO TO 101
2959
2960 ENDIF
2961 98 IF(RESONA.EQ.1.)THEN
2962
2963 I=I1
2964 IF(EM1.LT.0.6)I=I2
2965
2966
2967
2968 IF( (LB1*LB2.EQ.10.AND.(LB1.EQ.5.OR.LB2.EQ.5))
2969 & .OR.(LB1*LB2.EQ.-6.AND.(LB1.EQ.3.OR.LB2.EQ.3)) )THEN
2970 LB(I)=13
2971 go to 304
2972 ENDIF
2973
2974
2975 IF(iabs(LB(I1)*LB(I2)).EQ.4.AND.
2976 & (LB(I1).EQ.4.OR.LB(I2).EQ.4))THEN
2977 LB(I)=13
2978 go to 304
2979 ENDIF
2980
2981
2982 IF(iabs(LB(I1)*LB(I2)).EQ.8.AND.
2983 & (LB(I1).EQ.4.OR.LB(I2).EQ.4))THEN
2984 LB(I)=12
2985 go to 304
2986 ENDIF
2987
2988
2989 IF( (LB(I1)*LB(I2).EQ.3)
2990 & .OR.(LB(I1)*LB(I2).EQ.-5) )THEN
2991 LB(I)=12
2992 go to 304
2993 endif
2994
2995 if(lb(i1)*lb(i2).eq.0)then
2996
2997 if(iabs(lb(i1)).eq.1.or.iabs(lb(i2)).eq.1)then
2998 LB(I)=13
2999 go to 304
3000 ELSE
3001 LB(I)=12
3002 ENDIF
3003 endif
3004 304 CALL DRESON(I1,I2)
3005 if(LB1.lt.0.or.LB2.lt.0) LB(I)=-LB(I)
3006 lres=lres+1
3007 GO TO 101
3008
3009 ENDIF
3010
3011
3012 99 LRES=LRES+1
3013 I=I1
3014 IF(EM1.LE.0.6)I=I2
3015
3016
3017 IF( (LB(I1)*LB(I2).EQ.5)
3018 & .OR.(LB(I1)*LB(I2).EQ.-3) )THEN
3019 LB(I)=9
3020 go to 305
3021 ENDIF
3022
3023
3024 IF(iabs(LB(I1)*LB(I2)).EQ.4.AND.(LB(I1).EQ.4.OR.LB(I2).EQ.4))then
3025 LB(I)=8
3026 go to 305
3027 ENDIF
3028
3029
3030 IF( (LB(I1)*LB(I2).EQ.10.AND.(LB(I1).EQ.5.OR.LB(I2).EQ.5))
3031 & .OR.(LB(I1)*LB(I2).EQ.-6.AND.(LB(I1).EQ.3.OR.LB(I2).EQ.3)) )THEN
3032 LB(I)=8
3033 go to 305
3034 ENDIF
3035
3036
3037 IF(iabs(LB(I1)*LB(I2)).EQ.8.AND.(LB(I1).EQ.4.OR.LB(I2).EQ.4))THEN
3038 LB(I)=7
3039 go to 305
3040 ENDIF
3041
3042
3043 IF( (LB(I1)*LB(I2).EQ.3)
3044 & .OR.(LB(I1)*LB(I2).EQ.-5) )THEN
3045 LB(I)=7
3046 go to 305
3047 ENDIF
3048
3049
3050 IF( (LB(I1)*LB(I2).EQ.6.AND.(LB(I1).EQ.3.OR.LB(I2).EQ.3))
3051 & .OR.(LB(I1)*LB(I2).EQ.-10.AND.(LB(I1).EQ.5.OR.LB(I2).EQ.5)) )THEN
3052 LB(I)=6
3053 ENDIF
3054 305 CALL DRESON(I1,I2)
3055 if(LB1.lt.0.or.LB2.lt.0) LB(I)=-LB(I)
3056 GO TO 101
3057
3058
3059
3060
3061
3062
3063
3064 889 CONTINUE
3065 PX1CM=PCX
3066 PY1CM=PCY
3067 PZ1CM=PCZ
3068 EC=(em1+em2+0.02)**2
3069
3070 spika=60./(1.+4.*(srt-0.895)**2/(0.05)**2)
3071
3072
3073
3074 call Crkpla(PX1CM,PY1CM,PZ1CM,EC,SRT,spika,
3075 & emm1,emm2,lbp1,lbp2,I1,I2,icase,srhoks)
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087 if(icase .eq. 0) then
3088 iblock=0
3089 go to 400
3090 endif
3091
3092 if(icase .eq. 1)then
3093 call KSRESO(I1,I2)
3094
3095 iblock = 171
3096
3097
3098
3099
3100
3101
3102
3103 lres=lres+1
3104 go to 101
3105 elseif(icase .eq. 2)then
3106 iblock = 71
3107
3108
3109
3110 elseif(iabs(icase).eq.5)then
3111 iblock = 88
3112
3113 else
3114
3115
3116 iblock = 222
3117 endif
3118 LB(I1) = lbp1
3119 LB(I2) = lbp2
3120 E(I1) = emm1
3121 E(I2) = emm2
3122 em1=e(i1)
3123 em2=e(i2)
3124 ntag = 0
3125 go to 440
3126
3127 33 continue
3128 em1=e(i1)
3129 em2=e(i2)
3130
3131
3132
3133
3134
3135
3136 xelstc=0
3137 if((lb1.ge.25.and.lb1.le.28).and.
3138 & (iabs(lb2).eq.1.or.iabs(lb2).eq.2))
3139 & xelstc=ERHON(EM1,EM2,LB1,LB2,SRT)
3140 if((lb2.ge.25.and.lb2.le.28).and.
3141 & (iabs(lb1).eq.1.or.iabs(lb1).eq.2))
3142 & xelstc=ERHON(EM1,EM2,LB1,LB2,SRT)
3143 ec=(em1+em2+0.02)**2
3144
3145 xkaon0=0
3146 if(srt.ge.1.63.AND.SRT.LE.1.7)xkaon0=pnlka(srt)
3147 IF(SRT.GT.1.7)XKAON0=PNLKA(SRT)+pnska(srt)
3148 if(xkaon0.lt.0)xkaon0=0
3149
3150
3151 XKAON0 = 2.0 * XKAON0
3152
3153
3154
3155 xkaon=xkaon0
3156 ichann=0
3157
3158
3159
3160
3161 Xphi = 0.
3162 if( ( (((lb1.ge.1.and.lb1.le.2).or.
3163 & (lb1.ge.6.and.lb1.le.9))
3164 & .and.(lb2.ge.25.and.lb2.le.27))
3165 & .OR.(((lb2.ge.1.and.lb2.le.2).or.
3166 & (lb2.ge.6.and.lb2.le.9))
3167 & .and.(lb1.ge.25.and.lb1.le.27)) ).AND. srt.gt.1.958)
3168 & call pibphi(srt,lb1,lb2,em1,em2,Xphi,xphin)
3169
3170
3171 if((iabs(lb1).ge.6.and.lb2.ge.25).or.
3172 & (lb1.ge.25.and.iabs(lb2).ge.6))then
3173 ichann=1
3174 ictrl=2
3175 if(lb1.eq.28.or.lb2.eq.28)ictrl=3
3176 xreab=reab(i1,i2,srt,ictrl)
3177
3178
3179 if((iabs(lb1).ge.10.and.iabs(lb1).le.13)
3180 1 .or.(iabs(lb2).ge.10.and.iabs(lb2).le.13)) XREAB = 0.
3181
3182 if(xreab.lt.0)xreab=1.E-06
3183 xkaon=xkaon0+xreab
3184 XELSTC=1.0
3185 endif
3186 DS=SQRT((XKAON+Xphi+xelstc)/PI)
3187
3188
3189
3190
3191
3192
3193
3194 DELTAR=DS+0.1
3195 px1cm=pcx
3196 py1cm=pcy
3197 pz1cm=pcz
3198
3199 CALL DISTCE(I1,I2,DELTAR,DS,DT,EC,SRT,IC,
3200 1 PCX,PCY,PCZ)
3201 IF(IC.EQ.-1) GO TO 400
3202 ekaon(4,iss)=ekaon(4,iss)+1
3203
3204
3205
3206 if(xelstc/(xelstc+xkaon+Xphi).gt.RANART(NSEED))then
3207
3208 call crdir(px1CM,py1CM,pz1CM,srt,I1,i2,IBLOCK)
3209 go to 440
3210 endif
3211
3212 CALL CRRD(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3213 1 IBLOCK,xkaon0,xkaon,Xphi,xphin)
3214
3215
3216
3217 IF(IBLOCK.EQ.7) then
3218 LPN=LPN+1
3219 elseIF(IBLOCK.EQ.-7) then
3220 endif
3221
3222
3223 if(iblock.eq.81) lrhor=lrhor+1
3224
3225 if(iblock.eq.82) lomgar=lomgar+1
3226 em1=e(i1)
3227 em2=e(i2)
3228 GO TO 440
3229
3230
3231 95 continue
3232
3233
3234 CALL CRPN(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3235 1 IBLOCK,xkaon0,xkaon,Xphi,xphin)
3236
3237
3238
3239 IF(IBLOCK.EQ.7) then
3240 LPN=LPN+1
3241 elseIF(IBLOCK.EQ.-7) then
3242 endif
3243
3244
3245 if(iblock.eq.77) lpd=lpd+1
3246
3247 if(iblock.eq.78) lrho=lrho+1
3248
3249 if(iblock.eq.79) lomega=lomega+1
3250 em1=e(i1)
3251 em2=e(i2)
3252 GO TO 440
3253
3254
3255
3256
3257 96 continue
3258 CALL CRPD(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3259 1 IBLOCK,xkaon0,xkaon,Xphi,xphin)
3260
3261
3262
3263 IF(IBLOCK.EQ.7) then
3264 LPN=LPN+1
3265 elseIF(IBLOCK.EQ.-7) then
3266 endif
3267
3268
3269 if(iblock.eq.80) lpdr=lpdr+1
3270 em1=e(i1)
3271 em2=e(i2)
3272 GO TO 440
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283 101 continue
3284 IF(E(I2).EQ.0.)GO TO 600
3285 IF(E(I1).EQ.0.)GO TO 800
3286
3287 44 CONTINUE
3288
3289
3290
3291
3292
3293 cutoff=em1+em2+0.02
3294 IF(SRT.LE.CUTOFF)GO TO 400
3295 IF(SRT.GT.2.245)THEN
3296 SIGNN=PP2(SRT)
3297 ELSE
3298 SIGNN = 35.0 / (1. + (SRT - CUTOFF) * 100.0) + 20.0
3299 ENDIF
3300 call XND(pcx,pcy,pcz,srt,I1,I2,xinel,
3301 & sigk,xsk1,xsk2,xsk3,xsk4,xsk5)
3302 sig=signn+xinel
3303
3304 EC=(EM1+EM2+0.02)**2
3305
3306 PX1CM=PCX
3307 PY1CM=PCY
3308 PZ1CM=PCZ
3309
3310
3311 ianti=0
3312 if(lb(i1).lt.0 .and. lb(i2).lt.0) ianti=1
3313 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
3314 sig=sig+sdprod
3315
3316 ipdflag=0
3317 if(idpert.eq.1) then
3318 ipert1=1
3319 sigr0=sig
3320 dspert=sqrt(sigr0/pi/10.)
3321 dsrpert=dspert+0.1
3322 CALL DISTCE(I1,I2,dsrpert,dspert,DT,EC,SRT,IC,
3323 1 PX1CM,PY1CM,PZ1CM)
3324 IF(IC.EQ.-1) GO TO 363
3325 signn0=0.
3326 CALL CRND(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3327 & IBLOCK,SIGNN0,SIGr0,sigk,xsk1,xsk2,xsk3,xsk4,xsk5,NT,ipert1)
3328
3329 ipdflag=1
3330 363 continue
3331 ipert1=0
3332 endif
3333 if(idpert.eq.2) ipert1=1
3334
3335 DS=SQRT(SIG/(10.*PI))
3336 DELTAR=DS+0.1
3337 CALL DISTCE(I1,I2,DELTAR,DS,DT,EC,SRT,IC,
3338 1 PX1CM,PY1CM,PZ1CM)
3339
3340 IF(IC.EQ.-1) then
3341 if(ipdflag.eq.1) iblock=501
3342 GO TO 400
3343 endif
3344
3345 ekaon(3,iss)=ekaon(3,iss)+1
3346
3347
3348 go to 361
3349
3350
3351 361 continue
3352 CALL CRND(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3353 & IBLOCK,SIGNN,SIG,sigk,xsk1,xsk2,xsk3,xsk4,xsk5,NT,ipert1)
3354
3355 IF(iblock.eq.0.and.ipdflag.eq.1) iblock=501
3356 IF(IBLOCK.EQ.11)THEN
3357 LNDK=LNDK+1
3358 GO TO 400
3359
3360 elseIF(IBLOCK.EQ.-11.or.iblock.eq.501) then
3361 GO TO 400
3362 ENDIF
3363 if(iblock .eq. 222)then
3364
3365 GO TO 400
3366 ENDIF
3367 em1=e(i1)
3368 em2=e(i2)
3369 GO TO 440
3370
3371 4 CONTINUE
3372
3373
3374
3375
3376
3377 CUTOFF=em1+em2+0.14
3378
3379
3380
3381 IF(SRT.GT.2.245)THEN
3382 SIG=ppt(srt)
3383 SIGNN=SIG-PP1(SRT)
3384 ELSE
3385
3386 SIG=XPP(SRT)
3387 IF(ZET(LB(I1))*ZET(LB(I2)).LE.0)SIG=XNP(SRT)
3388 IF(ZET(LB(I1))*ZET(LB(I2)).GT.0)SIG=XPP(SRT)
3389 IF(ZET(LB(I1)).EQ.0.
3390 & AND.ZET(LB(I2)).EQ.0)SIG=XPP(SRT)
3391 if((lb(i1).eq.-1.and.lb(i2).eq.-2) .or.
3392 & (lb(i2).eq.-1.and.lb(i1).eq.-2))sig=xnp(srt)
3393
3394 IF (SRT .LT. 1.897) THEN
3395 SIGNN = SIG
3396 ELSE
3397 SIGNN = 35.0 / (1. + (SRT - 1.897) * 100.0) + 20.0
3398 ENDIF
3399 ENDIF
3400 PX1CM=PCX
3401 PY1CM=PCY
3402 PZ1CM=PCZ
3403
3404
3405
3406 ianti=0
3407 if(lb(i1).lt.0 .and. lb(i2).lt.0) ianti=1
3408 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
3409 sig=sig+sdprod
3410
3411
3412 ipdflag=0
3413 if(idpert.eq.1) then
3414
3415
3416
3417
3418 ipert1=1
3419 EC=2.012**2
3420
3421
3422 sigr0=sig
3423
3424
3425
3426
3427 dspert=sqrt(sigr0/pi/10.)
3428 dsrpert=dspert+0.1
3429 CALL DISTCE(I1,I2,dsrpert,dspert,DT,EC,SRT,IC,
3430 1 PX1CM,PY1CM,PZ1CM)
3431 IF(IC.EQ.-1) GO TO 365
3432 signn0=0.
3433 CALL CRNN(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK,
3434 1 NTAG,signn0,sigr0,NT,ipert1)
3435 ipdflag=1
3436 365 continue
3437 ipert1=0
3438 endif
3439 if(idpert.eq.2) ipert1=1
3440
3441
3442
3443 IF(SIGNN.LE.0) then
3444 if(ipdflag.eq.1) iblock=501
3445 GO TO 400
3446 endif
3447
3448 EC=3.59709
3449 ds=sqrt(sig/pi/10.)
3450 dsr=ds+0.1
3451 IF((E(I1).GE.1.).AND.(e(I2).GE.1.))EC=4.75
3452 CALL DISTCE(I1,I2,dsr,ds,DT,EC,SRT,IC,
3453 1 PX1CM,PY1CM,PZ1CM)
3454
3455
3456 IF(IC.EQ.-1) then
3457 if(ipdflag.eq.1) iblock=501
3458 GO TO 400
3459 endif
3460
3461
3462
3463 go to 362
3464
3465
3466 362 ekaon(1,iss)=ekaon(1,iss)+1
3467 CALL CRNN(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK,
3468 1 NTAG,SIGNN,SIG,NT,ipert1)
3469
3470 IF(iblock.eq.0.and.ipdflag.eq.1) iblock=501
3471
3472
3473
3474 IF(IBLOCK.EQ.4.OR.IBLOCK.Eq.9.or.iblock.ge.44.OR.IBLOCK.EQ.-9
3475 & .or.iblock.eq.222.or.iblock.eq.501)THEN
3476
3477
3478
3479
3480 LCOLL=LCOLL+1
3481 if(iblock.eq.4)then
3482 LDIRT=LDIRT+1
3483 elseif(iblock.eq.44)then
3484 LDdrho=LDdrho+1
3485 elseif(iblock.eq.45)then
3486 Lnnrho=Lnnrho+1
3487 elseif(iblock.eq.46)then
3488 Lnnom=Lnnom+1
3489 elseif(iblock .eq. 222)then
3490 elseIF(IBLOCK.EQ.9) then
3491 LNNK=LNNK+1
3492 elseIF(IBLOCK.EQ.-9) then
3493 endif
3494 GO TO 400
3495 ENDIF
3496
3497 em1=e(i1)
3498 em2=e(i2)
3499 GO TO 440
3500
3501
3502
3503 505 continue
3504 ianti=0
3505 if(lb(i1).lt.0 .or. lb(i2).lt.0) ianti=1
3506 call sdmbb(SRT,sdm,ianti)
3507 PX1CM=PCX
3508 PY1CM=PCY
3509 PZ1CM=PCZ
3510
3511 EC=2.012**2
3512 ds=sqrt(sdm/31.4)
3513 dsr=ds+0.1
3514 CALL DISTCE(I1,I2,dsr,ds,DT,EC,SRT,IC,PX1CM,PY1CM,PZ1CM)
3515 IF(IC.EQ.-1) GO TO 400
3516 CALL crdmbb(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK,
3517 1 NTAG,sdm,NT,ianti)
3518 LCOLL=LCOLL+1
3519 GO TO 400
3520
3521
3522
3523 506 continue
3524 ianti=0
3525 if(lb(i1).lt.0 .or. lb(i2).lt.0) ianti=1
3526 call sdbelastic(SRT,sdb)
3527 PX1CM=PCX
3528 PY1CM=PCY
3529 PZ1CM=PCZ
3530
3531 EC=2.012**2
3532 ds=sqrt(sdb/31.4)
3533 dsr=ds+0.1
3534 CALL DISTCE(I1,I2,dsr,ds,DT,EC,SRT,IC,PX1CM,PY1CM,PZ1CM)
3535 IF(IC.EQ.-1) GO TO 400
3536 CALL crdbel(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK,
3537 1 NTAG,sdb,NT,ianti)
3538 LCOLL=LCOLL+1
3539 GO TO 400
3540
3541
3542
3543 444 CONTINUE
3544
3545 CUTOFF=em1+em2+0.02
3546
3547
3548 IF(SRT.LE.CUTOFF)GO TO 400
3549 IF(SRT.GT.2.245)THEN
3550 SIGNN=PP2(SRT)
3551 ELSE
3552 SIGNN = 35.0 / (1. + (SRT - CUTOFF) * 100.0) + 20.0
3553 ENDIF
3554 IF(SIGNN.LE.0)GO TO 400
3555 CALL XDDIN(PCX,PCY,PCZ,SRT,I1,I2,
3556 &XINEL,SIGK,XSK1,XSK2,XSK3,XSK4,XSK5)
3557 SIG=SIGNN+XINEL
3558 EC=(EM1+EM2+0.02)**2
3559 PX1CM=PCX
3560 PY1CM=PCY
3561 PZ1CM=PCZ
3562
3563
3564 ianti=0
3565 if(lb(i1).lt.0 .and. lb(i2).lt.0) ianti=1
3566 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
3567 sig=sig+sdprod
3568
3569 ipdflag=0
3570 if(idpert.eq.1) then
3571 ipert1=1
3572 sigr0=sig
3573 dspert=sqrt(sigr0/pi/10.)
3574 dsrpert=dspert+0.1
3575 CALL DISTCE(I1,I2,dsrpert,dspert,DT,EC,SRT,IC,
3576 1 PX1CM,PY1CM,PZ1CM)
3577 IF(IC.EQ.-1) GO TO 367
3578 signn0=0.
3579 CALL CRDD(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3580 1 IBLOCK,NTAG,SIGNN0,SIGr0,NT,ipert1)
3581
3582 ipdflag=1
3583 367 continue
3584 ipert1=0
3585 endif
3586 if(idpert.eq.2) ipert1=1
3587
3588 ds=sqrt(sig/31.4)
3589 dsr=ds+0.1
3590 CALL DISTCE(I1,I2,dsr,ds,DT,EC,SRT,IC,
3591 1 PX1CM,PY1CM,PZ1CM)
3592
3593 IF(IC.EQ.-1) then
3594 if(ipdflag.eq.1) iblock=501
3595 GO TO 400
3596 endif
3597
3598
3599
3600 go to 364
3601
3602
3603 364 ekaon(2,iss)=ekaon(2,iss)+1
3604
3605
3606 CALL CRDD(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3607 1 IBLOCK,NTAG,SIGNN,SIG,NT,ipert1)
3608
3609 IF(iblock.eq.0.and.ipdflag.eq.1) iblock=501
3610
3611 IF(iabs(IBLOCK).EQ.10)THEN
3612
3613
3614 LCOLL=LCOLL+1
3615 IF(IBLOCK.EQ.10)THEN
3616 LDDK=LDDK+1
3617 elseIF(IBLOCK.EQ.-10) then
3618 endif
3619 GO TO 400
3620 ENDIF
3621
3622
3623 if(iblock .eq. 222.or.iblock.eq.501)then
3624
3625 GO TO 400
3626 ENDIF
3627 em1=e(i1)
3628 em2=e(i2)
3629 GO TO 440
3630
3631 777 CONTINUE
3632 PX1CM=PCX
3633 PY1CM=PCY
3634 PZ1CM=PCZ
3635
3636 ec0=em1+em2+0.02
3637 IF(SRT.LE.ec0)GO TO 400
3638 ec=(em1+em2+0.02)**2
3639
3640
3641
3642
3643 ppel=20.
3644 ipp=1
3645 if(lb1.lt.3.or.lb1.gt.5.or.lb2.lt.3.or.lb2.gt.5)go to 778
3646 CALL PPXS(LB1,LB2,SRT,PPSIG,spprho,IPP)
3647 ppel=ppsig
3648 778 ppink=pipik(srt)
3649
3650
3651
3652 ppink = 2.0 * ppink
3653 if(lb1.ge.25.and.lb2.ge.25) ppink=rrkk
3654
3655
3656
3657
3658 if( ( (lb1.eq.0.or.(lb1.ge.3.and.lb1.le.5))
3659 1 .and.(lb2.ge.25.and.lb2.le.28))
3660 2 .or. ( (lb2.eq.0.or.(lb2.ge.3.and.lb2.le.5))
3661 3 .and.(lb1.ge.25.and.lb1.le.28))) then
3662 ppink=0.
3663 if(srt.ge.(aka+aks)) ppink = prkk
3664 endif
3665
3666
3667 call spprr(lb1,lb2,srt)
3668
3669 call sppee(lb1,lb2,srt)
3670
3671 call spppe(lb1,lb2,srt)
3672
3673 call srpre(lb1,lb2,srt)
3674
3675 call sopoe(lb1,lb2,srt)
3676
3677 call srree(lb1,lb2,srt)
3678
3679 ppinnb=0.
3680 if(srt.gt.thresh(1)) then
3681 call getnst(srt)
3682 if(lb1.ge.3.and.lb1.le.5.and.lb2.ge.3.and.lb2.le.5) then
3683 ppinnb=ppbbar(srt)
3684 elseif((lb1.ge.3.and.lb1.le.5.and.lb2.ge.25.and.lb2.le.27)
3685 1 .or.(lb2.ge.3.and.lb2.le.5.and.lb1.ge.25.and.lb1.le.27)) then
3686 ppinnb=prbbar(srt)
3687 elseif(lb1.ge.25.and.lb1.le.27
3688 1 .and.lb2.ge.25.and.lb2.le.27) then
3689 ppinnb=rrbbar(srt)
3690 elseif((lb1.ge.3.and.lb1.le.5.and.lb2.eq.28)
3691 1 .or.(lb2.ge.3.and.lb2.le.5.and.lb1.eq.28)) then
3692 ppinnb=pobbar(srt)
3693 elseif((lb1.ge.25.and.lb1.le.27.and.lb2.eq.28)
3694 1 .or.(lb2.ge.25.and.lb2.le.27.and.lb1.eq.28)) then
3695 ppinnb=robbar(srt)
3696 elseif(lb1.eq.28.and.lb2.eq.28) then
3697 ppinnb=oobbar(srt)
3698 else
3699 if(lb1.ne.0.and.lb2.ne.0)
3700 1 write(6,*) 'missed MM lb1,lb2=',lb1,lb2
3701 endif
3702 endif
3703 ppin=ppink+ppinnb+pprr+ppee+pppe+rpre+xopoe+rree
3704
3705
3706 if((ppel+ppin).le.0.01)go to 400
3707 DSPP=SQRT((ppel+ppin)/31.4)
3708 dsppr=dspp+0.1
3709 CALL DISTCE(I1,I2,dsppr,DSPP,DT,EC,SRT,IC,
3710 1 PX1CM,PY1CM,PZ1CM)
3711 IF(IC.EQ.-1) GO TO 400
3712 if(ppel.eq.0)go to 400
3713
3714
3715 ekaon(5,iss)=ekaon(5,iss)+1
3716 CALL CRPP(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3717 1 IBLOCK,ppel,ppin,spprho,ipp)
3718
3719
3720
3721 if(iblock.eq.666)go to 555
3722 if(iblock.eq.6)LPP=LPP+1
3723 if(iblock.eq.66)then
3724 LPPk=LPPk+1
3725 elseif(iblock.eq.366)then
3726 LPPk=LPPk+1
3727 elseif(iblock.eq.367)then
3728 LPPk=LPPk+1
3729 endif
3730 em1=e(i1)
3731 em2=e(i2)
3732 go to 440
3733
3734
3735
3736
3737 2799 CONTINUE
3738 PX1CM=PCX
3739 PY1CM=PCY
3740 PZ1CM=PCZ
3741 EC=(em1+em2+0.02)**2
3742
3743
3744
3745
3746 DSppb=SQRT(xppbar(srt)/PI/10.)
3747 dsppbr=dsppb+0.1
3748 CALL DISTCE(I1,I2,dsppbr,DSppb,DT,EC,SRT,IC,
3749 1 PX1CM,PY1CM,PZ1CM)
3750 IF(IC.EQ.-1) GO TO 400
3751 CALL Crppba(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3752 1 IBLOCK)
3753 em1=e(i1)
3754 em2=e(i2)
3755 go to 440
3756
3757 3555 PX1CM=PCX
3758 PY1CM=PCY
3759 PZ1CM=PCZ
3760 EC=(em1+em2+0.02)**2
3761 DSkk=SQRT(SIG/PI/10.)
3762 dskk0=dskk+0.1
3763 CALL DISTCE(I1,I2,dskk0,DSkk,DT,EC,SRT,IC,
3764 1 PX1CM,PY1CM,PZ1CM)
3765 IF(IC.EQ.-1) GO TO 400
3766 CALL Crlaba(PX1CM,PY1CM,PZ1CM,SRT,brel,brsgm,
3767 & I1,I2,nt,IBLOCK,nchrg,icase)
3768 em1=e(i1)
3769 em2=e(i2)
3770 go to 440
3771
3772
3773 3455 PX1CM=PCX
3774 PY1CM=PCY
3775 PZ1CM=PCZ
3776 call pertur(PX1CM,PY1CM,PZ1CM,SRT,IRUN,I1,I2,nt,kp,icontp)
3777 if(icontp .eq. 0)then
3778
3779 em1 = e(i1)
3780 em2 = e(i2)
3781 iblock = 727
3782 go to 440
3783 endif
3784
3785 if (e(i1) .eq. 0.) go to 800
3786 if (e(i2) .eq. 0.) go to 600
3787 go to 400
3788
3789
3790
3791 7222 CONTINUE
3792 PX1CM=PCX
3793 PY1CM=PCY
3794 PZ1CM=PCZ
3795 EC=(em1+em2+0.02)**2
3796 CALL XphiB(LB1, LB2, EM1, EM2, SRT,
3797 & XSK1, XSK2, XSK3, XSK4, XSK5, SIGP)
3798 DSkk=SQRT(SIGP/PI/10.)
3799 dskk0=dskk+0.1
3800 CALL DISTCE(I1,I2,dskk0,DSkk,DT,EC,SRT,IC,
3801 1 PX1CM,PY1CM,PZ1CM)
3802 IF(IC.EQ.-1) GO TO 400
3803 CALL CRPHIB(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3804 & XSK1, XSK2, XSK3, XSK4, XSK5, SIGP, IBLOCK)
3805 em1=e(i1)
3806 em2=e(i2)
3807 go to 440
3808
3809
3810 7444 CONTINUE
3811 PX1CM=PCX
3812 PY1CM=PCY
3813 PZ1CM=PCZ
3814 EC=(em1+em2+0.02)**2
3815 CALL PHIMES(I1, I2, SRT, XSK1, XSK2, XSK3, XSK4, XSK5,
3816 1 XSK6, XSK7, SIGPHI)
3817 DSkk=SQRT(SIGPHI/PI/10.)
3818 dskk0=dskk+0.1
3819 CALL DISTCE(I1,I2,dskk0,DSkk,DT,EC,SRT,IC,
3820 1 PX1CM,PY1CM,PZ1CM)
3821 IF(IC.EQ.-1) GO TO 400
3822
3823 PZRT = p(3,i1)+p(3,i2)
3824 ER1 = sqrt( p(1,i1)**2+p(2,i1)**2+p(3,i1)**2+E(i1)**2 )
3825 ER2 = sqrt( p(1,i2)**2+p(2,i2)**2+p(3,i2)**2+E(i2)**2 )
3826 ERT = ER1+ER2
3827 yy = 0.5*log( (ERT+PZRT)/(ERT-PZRT) )
3828
3829 CALL CRPHIM(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3830 & XSK1, XSK2, XSK3, XSK4, XSK5, XSK6, SIGPHI, IKKG, IKKL, IBLOCK)
3831 em1=e(i1)
3832 em2=e(i2)
3833 go to 440
3834
3835
3836 7799 CONTINUE
3837 PX1CM=PCX
3838 PY1CM=PCY
3839 PZ1CM=PCZ
3840 EC=(em1+em2+0.02)**2
3841 call lambar(i1,i2,srt,siglab)
3842 DShn=SQRT(siglab/PI/10.)
3843 dshnr=dshn+0.1
3844 CALL DISTCE(I1,I2,dshnr,DShn,DT,EC,SRT,IC,
3845 1 PX1CM,PY1CM,PZ1CM)
3846 IF(IC.EQ.-1) GO TO 400
3847 CALL Crhb(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK)
3848 em1=e(i1)
3849 em2=e(i2)
3850 go to 440
3851
3852
3853
3854 5699 CONTINUE
3855 PX1CM=PCX
3856 PY1CM=PCY
3857 PZ1CM=PCZ
3858 EC=(em1+em2+0.02)**2
3859 CALL XKHYPE(I1, I2, SRT, XKY1, XKY2, XKY3, XKY4, XKY5,
3860 & XKY6, XKY7, XKY8, XKY9, XKY10, XKY11, XKY12, XKY13,
3861 & XKY14, XKY15, XKY16, XKY17, SIGK)
3862 DSkk=SQRT(sigk/PI)
3863 dskk0=dskk+0.1
3864 CALL DISTCE(I1,I2,dskk0,DSkk,DT,EC,SRT,IC,
3865 1 PX1CM,PY1CM,PZ1CM)
3866 IF(IC.EQ.-1) GO TO 400
3867
3868 if(lb(i1).eq.23 .or. lb(i2).eq.23)then
3869 IKMP = 1
3870 else
3871 IKMP = -1
3872 endif
3873 CALL Crkhyp(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3874 & XKY1, XKY2, XKY3, XKY4, XKY5,
3875 & XKY6, XKY7, XKY8, XKY9, XKY10, XKY11, XKY12, XKY13,
3876 & XKY14, XKY15, XKY16, XKY17, SIGK, IKMP,
3877 1 IBLOCK)
3878 em1=e(i1)
3879 em2=e(i2)
3880 go to 440
3881
3882
3883
3884
3885 5999 CONTINUE
3886 PX1CM=PCX
3887 PY1CM=PCY
3888 PZ1CM=PCZ
3889 EC=(em1+em2+0.02)**2
3890 sigkp = 15.
3891
3892
3893 DSkk=SQRT(SIGKP/PI/10.)
3894 dskk0=dskk+0.1
3895 CALL DISTCE(I1,I2,dskk0,DSkk,DT,EC,SRT,IC,
3896 1 PX1CM,PY1CM,PZ1CM)
3897 IF(IC.EQ.-1) GO TO 400
3898
3899 CALL CRLAN(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK)
3900 em1=e(i1)
3901 em2=e(i2)
3902 go to 440
3903
3904
3905
3906 8699 CONTINUE
3907 PX1CM=PCX
3908 PY1CM=PCY
3909 PZ1CM=PCZ
3910 EC=(em1+em2+0.02)**2
3911
3912
3913 CALL Crkphi(PX1CM,PY1CM,PZ1CM,EC,SRT,IBLOCK,
3914 & emm1,emm2,lbp1,lbp2,I1,I2,ikk,icase,rrkk,prkk)
3915 if(icase .eq. 0) then
3916 iblock=0
3917 go to 400
3918 endif
3919
3920
3921 if(lbp1.eq.29.or.lbp2.eq.29) then
3922 PZRT = p(3,i1)+p(3,i2)
3923 ER1 = sqrt( p(1,i1)**2+p(2,i1)**2+p(3,i1)**2+E(i1)**2 )
3924 ER2 = sqrt( p(1,i2)**2+p(2,i2)**2+p(3,i2)**2+E(i2)**2 )
3925 ERT = ER1+ER2
3926 yy = 0.5*log( (ERT+PZRT)/(ERT-PZRT) )
3927
3928 iblock = 222
3929 ntag = 0
3930 endif
3931
3932 LB(I1) = lbp1
3933 LB(I2) = lbp2
3934 E(I1) = emm1
3935 E(I2) = emm2
3936 em1=e(i1)
3937 em2=e(i2)
3938 go to 440
3939
3940
3941 8799 CONTINUE
3942 PX1CM=PCX
3943 PY1CM=PCY
3944 PZ1CM=PCZ
3945 EC=(em1+em2+0.02)**2
3946
3947 CALL Crksph(PX1CM,PY1CM,PZ1CM,EC,SRT,
3948 & emm1,emm2,lbp1,lbp2,I1,I2,ikkg,ikkl,iblock,icase,srhoks)
3949 if(icase .eq. 0) then
3950 iblock=0
3951 go to 400
3952 endif
3953
3954 if(lbp1.eq.29.or.lbp2.eq.20) then
3955
3956 PZRT = p(3,i1)+p(3,i2)
3957 ER1 = sqrt( p(1,i1)**2+p(2,i1)**2+p(3,i1)**2+E(i1)**2 )
3958 ER2 = sqrt( p(1,i2)**2+p(2,i2)**2+p(3,i2)**2+E(i2)**2 )
3959 ERT = ER1+ER2
3960 yy = 0.5*log( (ERT+PZRT)/(ERT-PZRT) )
3961 endif
3962
3963 LB(I1) = lbp1
3964 LB(I2) = lbp2
3965 E(I1) = emm1
3966 E(I2) = emm2
3967 em1=e(i1)
3968 em2=e(i2)
3969 go to 440
3970
3971
3972 888 CONTINUE
3973 PX1CM=PCX
3974 PY1CM=PCY
3975 PZ1CM=PCZ
3976 EC=(em1+em2+0.02)**2
3977 sig = 10.
3978 if(iabs(lb1).eq.14.or.iabs(lb2).eq.14 .or.
3979 & iabs(lb1).eq.30.or.iabs(lb2).eq.30)sig=20.
3980 if(lb1.eq.29.or.lb2.eq.29)sig=5.0
3981
3982 DSkn=SQRT(sig/PI/10.)
3983 dsknr=dskn+0.1
3984 CALL DISTCE(I1,I2,dsknr,DSkn,DT,EC,SRT,IC,
3985 1 PX1CM,PY1CM,PZ1CM)
3986 IF(IC.EQ.-1) GO TO 400
3987 CALL Crkn(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3988 1 IBLOCK)
3989 em1=e(i1)
3990 em2=e(i2)
3991 go to 440
3992
3993
3994 440 CONTINUE
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084 IF(IBLOCK.EQ.0) GOTO 400
4085
4086
4087
4088 LCOLL = LCOLL +1
4089
4090 NTAG = 0
4091
4092
4093 E1CM = SQRT (EM1**2 + PX1CM**2 + PY1CM**2 + PZ1CM**2)
4094 P1BETA = PX1CM*BETAX + PY1CM*BETAY + PZ1CM*BETAZ
4095 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
4096 Pt1I1 = BETAX * TRANSF + PX1CM
4097 Pt2I1 = BETAY * TRANSF + PY1CM
4098 Pt3I1 = BETAZ * TRANSF + PZ1CM
4099
4100 go to 90002
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112 90002 continue
4113
4114
4115 E2CM = SQRT (EM2**2 + PX1CM**2 + PY1CM**2 + PZ1CM**2)
4116 TRANSF = GAMMA * (-GAMMA*P1BETA / (GAMMA + 1.) + E2CM)
4117 Pt1I2 = BETAX * TRANSF - PX1CM
4118 Pt2I2 = BETAY * TRANSF - PY1CM
4119 Pt3I2 = BETAZ * TRANSF - PZ1CM
4120 go to 90003
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148 90003 IF(IBLOCK.EQ.1) LCNNE=LCNNE+1
4149 IF(IBLOCK.EQ.5) LDD=LDD+1
4150 if(iblock.eq.2) LCNND=LCNND+1
4151 IF(IBLOCK.EQ.8) LKN=LKN+1
4152 if(iblock.eq.43) Ldou=Ldou+1
4153
4154
4155
4156
4157
4158 IF(IBLOCK.EQ.3) LCNDN=LCNDN+1
4159
4160
4161
4162 p(1,i1)=pt1i1
4163 p(2,i1)=pt2i1
4164 p(3,i1)=pt3i1
4165 p(1,i2)=pt1i2
4166 p(2,i2)=pt2i2
4167 p(3,i2)=pt3i2
4168
4169
4170
4171
4172
4173
4174
4175
4176 PX1 = P(1,I1)
4177 PY1 = P(2,I1)
4178 PZ1 = P(3,I1)
4179 EM1 = E(I1)
4180 EM2 = E(I2)
4181 LB1 = LB(I1)
4182 LB2 = LB(I2)
4183 ID(I1) = 2
4184 ID(I2) = 2
4185 E1 = SQRT( EM1**2 + PX1**2 + PY1**2 + PZ1**2 )
4186 ID1 = ID(I1)
4187 go to 90004
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231 90004 continue
4232 AM1=EM1
4233 AM2=EM2
4234
4235
4236
4237 400 CONTINUE
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370 555 continue
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380 600 CONTINUE
4381
4382
4383
4384
4385 798 if(nt.eq.ntmax.and.ipi0dcy.eq.1
4386 1 .and.i1.eq.(MASSR(IRUN)+MSUM)) then
4387 do ipion=1,NNN
4388 if(LPION(ipion,IRUN).eq.4) then
4389 wid=7.85e-9
4390 call resdec(i1,nt,nnn,wid,idecay,ipion)
4391 endif
4392 enddo
4393 endif
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403 800 CONTINUE
4404
4405
4406
4407
4408 N0=MASS+MSUM
4409 DO 1005 N=N0+1,MASSR(IRUN)+MSUM
4410
4411
4412
4413 IF(E(N) .GT. 0. .OR. LB(N) .GT. 5000)THEN
4414
4415 NNN=NNN+1
4416 RPION(1,NNN,IRUN)=R(1,N)
4417 RPION(2,NNN,IRUN)=R(2,N)
4418 RPION(3,NNN,IRUN)=R(3,N)
4419
4420 if(nt.eq.ntmax) then
4421 ftpisv(NNN,IRUN)=ftsv(N)
4422 tfdpi(NNN,IRUN)=tfdcy(N)
4423 endif
4424
4425 PPION(1,NNN,IRUN)=P(1,N)
4426 PPION(2,NNN,IRUN)=P(2,N)
4427 PPION(3,NNN,IRUN)=P(3,N)
4428 EPION(NNN,IRUN)=E(N)
4429 LPION(NNN,IRUN)=LB(N)
4430
4431 PROPI(NNN,IRUN)=PROPER(N)
4432
4433 dppion(NNN,IRUN)=dpertp(N)
4434
4435
4436 ENDIF
4437 1005 CONTINUE
4438 MASSRN(IRUN)=NNN+MASS
4439
4440 1000 CONTINUE
4441
4442
4443
4444
4445
4446
4447
4448
4449 IA=0
4450 IB=0
4451 DO 10001 IRUN=1,NUM
4452 IA=IA+MASSR(IRUN-1)
4453 IB=IB+MASSRN(IRUN-1)
4454 DO 10001 IC=1,MASSRN(IRUN)
4455 IE=IA+IC
4456 IG=IB+IC
4457 IF(IC.LE.MASS)THEN
4458 RT(1,IG)=R(1,IE)
4459 RT(2,IG)=R(2,IE)
4460 RT(3,IG)=R(3,IE)
4461
4462 if(nt.eq.ntmax) then
4463 fttemp(IG)=ftsv(IE)
4464 tft(IG)=tfdcy(IE)
4465 endif
4466
4467 PT(1,IG)=P(1,IE)
4468 PT(2,IG)=P(2,IE)
4469 PT(3,IG)=P(3,IE)
4470 ET(IG)=E(IE)
4471 LT(IG)=LB(IE)
4472 PROT(IG)=PROPER(IE)
4473
4474 dptemp(IG)=dpertp(IE)
4475 ELSE
4476 I0=IC-MASS
4477 RT(1,IG)=RPION(1,I0,IRUN)
4478 RT(2,IG)=RPION(2,I0,IRUN)
4479 RT(3,IG)=RPION(3,I0,IRUN)
4480
4481 if(nt.eq.ntmax) then
4482 fttemp(IG)=ftpisv(I0,IRUN)
4483 tft(IG)=tfdpi(I0,IRUN)
4484 endif
4485
4486 PT(1,IG)=PPION(1,I0,IRUN)
4487 PT(2,IG)=PPION(2,I0,IRUN)
4488 PT(3,IG)=PPION(3,I0,IRUN)
4489 ET(IG)=EPION(I0,IRUN)
4490 LT(IG)=LPION(I0,IRUN)
4491 PROT(IG)=PROPI(I0,IRUN)
4492
4493 dptemp(IG)=dppion(I0,IRUN)
4494 ENDIF
4495 10001 CONTINUE
4496
4497 IL=0
4498
4499
4500 DO 10003 IRUN=1,NUM
4501
4502 MASSR(IRUN)=MASSRN(IRUN)
4503 IL=IL+MASSR(IRUN-1)
4504 DO 10002 IM=1,MASSR(IRUN)
4505 IN=IL+IM
4506 R(1,IN)=RT(1,IN)
4507 R(2,IN)=RT(2,IN)
4508 R(3,IN)=RT(3,IN)
4509
4510 if(nt.eq.ntmax) then
4511 ftsv(IN)=fttemp(IN)
4512 tfdcy(IN)=tft(IN)
4513 endif
4514 P(1,IN)=PT(1,IN)
4515 P(2,IN)=PT(2,IN)
4516 P(3,IN)=PT(3,IN)
4517 E(IN)=ET(IN)
4518 LB(IN)=LT(IN)
4519 PROPER(IN)=PROT(IN)
4520
4521 dpertp(IN)=dptemp(IN)
4522 IF(LB(IN).LT.1.OR.LB(IN).GT.2)ID(IN)=0
4523 10002 CONTINUE
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533 10003 CONTINUE
4534
4535 RETURN
4536 END
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585 SUBROUTINE CMS(I1,I2,PX1CM,PY1CM,PZ1CM,SRT)
4586
4587
4588
4589
4590 PARAMETER (MAXSTR=150001)
4591 double precision px1,py1,pz1,px2,py2,pz2,em1,em2,e1,e2,
4592 1 s,ETOTAL,P1BETA,TRANSF,dBETAX,dBETAY,dBETAZ,dGAMMA,scheck
4593 COMMON /BB/ P(3,MAXSTR)
4594 COMMON /CC/ E(MAXSTR)
4595 COMMON /BG/ BETAX,BETAY,BETAZ,GAMMA
4596 SAVE
4597 PX1=dble(P(1,I1))
4598 PY1=dble(P(2,I1))
4599 PZ1=dble(P(3,I1))
4600 PX2=dble(P(1,I2))
4601 PY2=dble(P(2,I2))
4602 PZ2=dble(P(3,I2))
4603 EM1=dble(E(I1))
4604 EM2=dble(E(I2))
4605 E1=dSQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
4606 E2=dSQRT(EM2**2+PX2**2+PY2**2+PZ2**2)
4607 S=(E1+E2)**2-(PX1+PX2)**2-(PY1+PY2)**2-(PZ1+PZ2)**2
4608 IF(S.LE.0) S=0d0
4609 SRT=sngl(dSQRT(S))
4610
4611 ETOTAL = E1 + E2
4612 dBETAX = (PX1+PX2) / ETOTAL
4613 dBETAY = (PY1+PY2) / ETOTAL
4614 dBETAZ = (PZ1+PZ2) / ETOTAL
4615
4616 scheck=1.d0-dBETAX**2-dBETAY**2-dBETAZ**2
4617 if(scheck.le.0d0) then
4618 write(99,*) 'scheck1: ', scheck
4619 stop
4620 endif
4621 dGAMMA=1.d0/dSQRT(scheck)
4622
4623 P1BETA = PX1*dBETAX + PY1*dBETAY + PZ1 * dBETAZ
4624 TRANSF = dGAMMA * ( dGAMMA * P1BETA / (dGAMMA + 1d0) - E1 )
4625 PX1CM = sngl(dBETAX * TRANSF + PX1)
4626 PY1CM = sngl(dBETAY * TRANSF + PY1)
4627 PZ1CM = sngl(dBETAZ * TRANSF + PZ1)
4628 BETAX = sngl(dBETAX)
4629 BETAY = sngl(dBETAY)
4630 BETAZ = sngl(dBETAZ)
4631 GAMMA = sngl(dGAMMA)
4632 RETURN
4633 END
4634
4635
4636
4637 SUBROUTINE DISTCE(I1,I2,DELTAR,DS,DT,EC,SRT
4638 1 ,IC,PX1CM,PY1CM,PZ1CM)
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650 PARAMETER (MAXSTR=150001)
4651 COMMON /AA/ R(3,MAXSTR)
4652
4653 COMMON /BB/ P(3,MAXSTR)
4654
4655 COMMON /CC/ E(MAXSTR)
4656
4657 COMMON /BG/ BETAX,BETAY,BETAZ,GAMMA
4658 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
4659
4660 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
4661 1 px1n,py1n,pz1n,dp1n
4662 common /dpi/em2,lb2
4663 SAVE
4664 IC=0
4665 X1=R(1,I1)
4666 Y1=R(2,I1)
4667 Z1=R(3,I1)
4668 PX1=P(1,I1)
4669 PY1=P(2,I1)
4670 PZ1=P(3,I1)
4671 X2=R(1,I2)
4672 Y2=R(2,I2)
4673 Z2=R(3,I2)
4674 PX2=P(1,I2)
4675 PY2=P(2,I2)
4676 PZ2=P(3,I2)
4677 EM1=E(I1)
4678 EM2=E(I2)
4679 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
4680
4681
4682
4683 RSQARE = (X1-X2)**2 + (Y1-Y2)**2 + (Z1-Z2)**2
4684 IF (RSQARE .GT. DELTAR**2) GO TO 400
4685
4686 E2 = SQRT ( EM2**2 + PX2**2 + PY2**2 + PZ2**2 )
4687 S = SRT*SRT
4688 IF (S .LT. EC) GO TO 400
4689
4690
4691
4692
4693 P1BETA = PX1*BETAX + PY1*BETAY + PZ1 * BETAZ
4694 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) - E1 )
4695 PRCM = SQRT (PX1CM**2 + PY1CM**2 + PZ1CM**2)
4696 IF (PRCM .LE. 0.00001) GO TO 400
4697
4698 DRBETA = BETAX*(X1-X2) + BETAY*(Y1-Y2) + BETAZ*(Z1-Z2)
4699 TRANSF = GAMMA * GAMMA * DRBETA / (GAMMA + 1)
4700 DXCM = BETAX * TRANSF + X1 - X2
4701 DYCM = BETAY * TRANSF + Y1 - Y2
4702 DZCM = BETAZ * TRANSF + Z1 - Z2
4703
4704 DRCM = SQRT (DXCM**2 + DYCM**2 + DZCM**2 )
4705 DZZ = (PX1CM*DXCM + PY1CM*DYCM + PZ1CM*DZCM) / PRCM
4706 if ((drcm**2 - dzz**2) .le. 0.) then
4707 BBB = 0.
4708 else
4709 BBB = SQRT (DRCM**2 - DZZ**2)
4710 end if
4711
4712 IF (BBB .GT. DS) GO TO 400
4713 RELVEL = PRCM * (1.0/E1 + 1.0/E2)
4714 DDD = RELVEL * DT * 0.5
4715
4716 IF (ABS(DDD) .LT. ABS(DZZ)) GO TO 400
4717 IC=1
4718 GO TO 500
4719 400 IC=-1
4720 500 CONTINUE
4721 RETURN
4722 END
4723
4724
4725
4726 SUBROUTINE CRNN(IRUN,PX,PY,PZ,SRT,I1,I2,IBLOCK,
4727 1NTAG,SIGNN,SIG,NT,ipert1)
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
4802 1 AMP=0.93828,AP1=0.13496,aka=0.498,AP2=0.13957,AM0=1.232,
4803 2 PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383,APHI=1.020)
4804 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
4805 parameter (xmd=1.8756,npdmax=10000)
4806 COMMON /AA/ R(3,MAXSTR)
4807
4808 COMMON /BB/ P(3,MAXSTR)
4809
4810 COMMON /CC/ E(MAXSTR)
4811
4812 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
4813
4814 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
4815
4816 common /gg/ dx,dy,dz,dpx,dpy,dpz
4817
4818 COMMON /INPUT/ NSTAR,NDIRCT,DIR
4819
4820 COMMON /NN/NNN
4821
4822 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
4823
4824 COMMON /RUN/NUM
4825
4826 COMMON /PA/RPION(3,MAXSTR,MAXR)
4827
4828 COMMON /PB/PPION(3,MAXSTR,MAXR)
4829
4830 COMMON /PC/EPION(MAXSTR,MAXR)
4831
4832 COMMON /PD/LPION(MAXSTR,MAXR)
4833
4834 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
4835
4836 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
4837
4838 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
4839 1 px1n,py1n,pz1n,dp1n
4840
4841 COMMON/RNDF77/NSEED
4842
4843 common /dpi/em2,lb2
4844 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
4845 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
4846 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
4847 common /para8/ idpert,npertd,idxsec
4848 dimension ppd(3,npdmax),lbpd(npdmax)
4849 SAVE
4850
4851 n12=0
4852 m12=0
4853 IBLOCK=0
4854 NTAG=0
4855 EM1=E(I1)
4856 EM2=E(I2)
4857 PR=SQRT( PX**2 + PY**2 + PZ**2 )
4858 C2=PZ / PR
4859 X1=RANART(NSEED)
4860 ianti=0
4861 if(lb(i1).lt.0 .and. lb(i2).lt.0) ianti=1
4862 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
4863
4864 if(idpert.eq.1.and.ipert1.eq.1) then
4865 IF (SRT .LT. 2.012) RETURN
4866 if((iabs(lb(i1)).eq.1.or.iabs(lb(i1)).eq.2)
4867 1 .and.(iabs(lb(i2)).eq.1.or.iabs(lb(i2)).eq.2)) then
4868 goto 108
4869 else
4870 return
4871 endif
4872 endif
4873
4874
4875
4876
4877
4878 IF (X1.LE.(SIGNN/SIG)) THEN
4879
4880 AS = ( 3.65 * (SRT - 1.8766) )**6
4881 A = 6.0 * AS / (1.0 + AS)
4882 TA = -2.0 * PR**2
4883 X = RANART(NSEED)
4884
4885 T1 = sngl(DLOG(dble(1.-X)*DEXP(dble(A)*dble(TA))+dble(X)))/ A
4886 C1 = 1.0 - T1/TA
4887 T1 = 2.0 * PI * RANART(NSEED)
4888 IBLOCK=1
4889 GO TO 107
4890 ELSE
4891
4892
4893
4894
4895 IF (SRT .LT. 2.012) RETURN
4896
4897
4898
4899
4900 call N1535(iabs(lb(i1)),iabs(lb(i2)),srt,x1535)
4901
4902
4903
4904 SIG3=3.*(X3pi(SRT)+x33pi(srt))
4905
4906 SIG4=4.*X2pi(srt)
4907
4908 s4pi=x4pi(srt)
4909
4910 srho=xrho(srt)
4911
4912 somega=omega(srt)
4913
4914
4915 akp=0.498
4916 ak0=0.498
4917 ana=0.94
4918 ada=1.232
4919 al=1.1157
4920 as=1.1197
4921 xsk1=0
4922 xsk2=0
4923 xsk3=0
4924 xsk4=0
4925 xsk5=0
4926 t1nlk=ana+al+akp
4927 if(srt.le.t1nlk)go to 222
4928 XSK1=1.5*PPLPK(SRT)
4929
4930 t1dlk=ada+al+akp
4931 t2dlk=ada+al-akp
4932 if(srt.le.t1dlk)go to 222
4933 es=srt
4934 pmdlk2=(es**2-t1dlk**2)*(es**2-t2dlk**2)/(4.*es**2)
4935 pmdlk=sqrt(pmdlk2)
4936 XSK3=1.5*PPLPK(srt)
4937
4938 t1nsk=ana+as+akp
4939 t2nsk=ana+as-akp
4940 if(srt.le.t1nsk)go to 222
4941 pmnsk2=(es**2-t1nsk**2)*(es**2-t2nsk**2)/(4.*es**2)
4942 pmnsk=sqrt(pmnsk2)
4943 XSK2=1.5*(PPK1(srt)+PPK0(srt))
4944
4945 t1DSk=aDa+aS+akp
4946 t2DSk=aDa+aS-akp
4947 if(srt.le.t1dsk)go to 222
4948 pmDSk2=(es**2-t1DSk**2)*(es**2-t2DSk**2)/(4.*es**2)
4949 pmDSk=sqrt(pmDSk2)
4950 XSK4=1.5*(PPK1(srt)+PPK0(srt))
4951
4952
4953 if(srt.le.(2.*amn+aphi))go to 222
4954
4955 xsk5 = 0.0001
4956
4957
4958
4959 222 SIGK=XSK1+XSK2+XSK3+XSK4
4960
4961
4962 XSK1 = 2.0 * XSK1
4963 XSK2 = 2.0 * XSK2
4964 XSK3 = 2.0 * XSK3
4965 XSK4 = 2.0 * XSK4
4966 SIGK = 2.0 * SIGK + xsk5
4967
4968
4969
4970
4971
4972 lb1=iabs(lb(i1))
4973 lb2=iabs(lb(i2))
4974 IF((LB(I1)*LB(I2).EQ.1).or.
4975 & ((lb1.le.17.and.lb1.ge.14).and.(lb2.le.17.and.lb2.ge.14)).
4976 & or.((lb1.le.2).and.(lb2.le.17.and.lb2.ge.14)).
4977 & or.((lb2.le.2).and.(lb1.le.17.and.lb1.ge.14)))THEN
4978
4979 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
4980 SIG1=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
4981 SIG2=1.5*SIGMA(SRT,1,1,1)
4982 SIGND=SIG1+SIG2+SIG3+SIG4+X1535+SIGK+s4pi+srho+somega
4983
4984
4985 IF (X1.GT.(SIGNN+SIGND+sdprod)/SIG)RETURN
4986 DIR=SIG3/SIGND
4987 IF(RANART(NSEED).LE.DIR)GO TO 106
4988 IF(RANART(NSEED).LE.SIGK/(SIGK+X1535+SIG4+SIG2+SIG1
4989 & +s4pi+srho+somega))GO TO 306
4990 if(RANART(NSEED).le.s4pi/(x1535+sig4+sig2+sig1
4991 & +s4pi+srho+somega))go to 307
4992 if(RANART(NSEED).le.srho/(x1535+sig4+sig2+sig1
4993 & +srho+somega))go to 308
4994 if(RANART(NSEED).le.somega/(x1535+sig4+sig2+sig1
4995 & +somega))go to 309
4996 if(RANART(NSEED).le.x1535/(sig1+sig2+sig4+x1535))then
4997
4998 N12=9
4999 ELSE
5000 IF(RANART(NSEED).LE.SIG4/(SIG1+sig2+sig4))THEN
5001
5002 N12=66
5003 GO TO 1012
5004 else
5005
5006 N12=3
5007 IF (RANART(NSEED).GT.SIG1/(SIG1+SIG2))N12=4
5008 ENDIF
5009 endif
5010 GO TO 1011
5011 ENDIF
5012
5013 IF(iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2)THEN
5014
5015 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
5016 SIG1=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
5017 SIG2=1.5*SIGMA(SRT,1,1,1)
5018 SIGND=SIG1+SIG2+X1535+SIG3+SIG4+SIGK+s4pi+srho+somega
5019
5020
5021 IF (X1.GT.(SIGNN+SIGND+sdprod)/SIG)RETURN
5022 dir=sig3/signd
5023 IF(RANART(NSEED).LE.DIR)GO TO 106
5024 IF(RANART(NSEED).LE.SIGK/(SIGK+X1535+SIG4+SIG2+SIG1
5025 & +s4pi+srho+somega))GO TO 306
5026 if(RANART(NSEED).le.s4pi/(x1535+sig4+sig2+sig1
5027 & +s4pi+srho+somega))go to 307
5028 if(RANART(NSEED).le.srho/(x1535+sig4+sig2+sig1
5029 & +srho+somega))go to 308
5030 if(RANART(NSEED).le.somega/(x1535+sig4+sig2+sig1
5031 & +somega))go to 309
5032 IF(RANART(NSEED).LE.X1535/(x1535+sig1+sig2+sig4))THEN
5033
5034 N12=10
5035 ELSE
5036 if(RANART(NSEED).le.sig4/(sig1+sig2+sig4))then
5037
5038 N12=67
5039 GO TO 1013
5040 else
5041
5042 N12=6
5043 IF (RANART(NSEED).GT.SIG1/(SIG1+SIG2))N12=5
5044 ENDIF
5045 endif
5046 GO TO 1011
5047 ENDIF
5048
5049 IF(LB(I1)*LB(I2).EQ.2)THEN
5050
5051 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
5052 SIG1=0.5*SIGMA(SRT,1,1,1)+0.25*SIGMA(SRT,1,1,0)
5053 IF(NSTAR.EQ.1)THEN
5054 SIG2=(3./4.)*SIGMA(SRT,2,0,1)
5055 ELSE
5056 SIG2=0.
5057 ENDIF
5058 SIGND=2.*(SIG1+SIG2+X1535)+sig3+sig4+SIGK+s4pi+srho+somega
5059
5060
5061 IF (X1.GT.(SIGNN+SIGND+sdprod)/SIG)RETURN
5062 dir=sig3/signd
5063 IF(RANART(NSEED).LE.DIR)GO TO 106
5064 IF(RANART(NSEED).LE.SIGK/(SIGND-SIG3))GO TO 306
5065 if(RANART(NSEED).le.s4pi/(signd-sig3-sigk))go to 307
5066 if(RANART(NSEED).le.srho/(signd-sig3-sigk-s4pi))go to 308
5067 if(RANART(NSEED).le.somega/(signd-sig3-sigk-s4pi-srho))
5068 1 go to 309
5069 IF(RANART(NSEED).LT.X1535/(SIG1+SIG2+X1535+0.5*sig4))THEN
5070
5071 N12=11
5072 IF(RANART(NSEED).LE.0.5)N12=12
5073 ELSE
5074 if(RANART(NSEED).le.sig4/(sig4+2.*(sig1+sig2)))then
5075
5076 N12=68
5077 GO TO 1014
5078 else
5079 IF(RANART(NSEED).LE.SIG1/(SIG1+SIG2))THEN
5080
5081 N12=2
5082 IF(RANART(NSEED).GE.0.5)N12=1
5083 ELSE
5084
5085 N12=8
5086 IF(RANART(NSEED).GE.0.5)N12=7
5087 ENDIF
5088 ENDIF
5089 ENDIF
5090 endif
5091 1011 iblock=2
5092 CONTINUE
5093
5094
5095
5096
5097 DMAX = SRT - AVMASS-0.005
5098 DMAX = SRT - AVMASS-0.005
5099 DMIN = 1.078
5100 IF(N12.LT.7)THEN
5101
5102 IF(DMAX.LT.1.232) THEN
5103 FM=FDE(DMAX,SRT,0.)
5104 ELSE
5105
5106
5107 xdmass=1.232
5108
5109 FM=FDE(xdmass,SRT,1.)
5110
5111
5112 ENDIF
5113 IF(FM.EQ.0.)FM=1.E-09
5114 NTRY1=0
5115 10 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
5116 NTRY1=NTRY1+1
5117 IF((RANART(NSEED) .GT. FDE(DM,SRT,1.)/FM).AND.
5118 1 (NTRY1.LE.30)) GOTO 10
5119
5120
5121
5122 if(dm.gt.1.47) goto 10
5123
5124 GO TO 13
5125 ENDIF
5126 IF((n12.eq.7).or.(n12.eq.8))THEN
5127
5128 IF(DMAX.LT.1.44) THEN
5129 FM=FNS(DMAX,SRT,0.)
5130 ELSE
5131
5132
5133 xdmass=1.44
5134
5135 FM=FNS(xdmass,SRT,1.)
5136
5137
5138 ENDIF
5139 IF(FM.EQ.0.)FM=1.E-09
5140 NTRY2=0
5141 11 DM=RANART(NSEED)*(DMAX-DMIN)+DMIN
5142 NTRY2=NTRY2+1
5143 IF((RANART(NSEED).GT.FNS(DM,SRT,1.)/FM).AND.
5144 1 (NTRY2.LE.10)) GO TO 11
5145
5146
5147
5148 if(dm.gt.2.14) goto 11
5149
5150 GO TO 13
5151 ENDIF
5152 IF(n12.ge.17)then
5153
5154 IF(DMAX.LT.1.535) THEN
5155 FM=FD5(DMAX,SRT,0.)
5156 ELSE
5157
5158
5159 xdmass=1.535
5160
5161 FM=FD5(xdmass,SRT,1.)
5162
5163
5164 ENDIF
5165 IF(FM.EQ.0.)FM=1.E-09
5166 NTRY1=0
5167 12 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
5168 NTRY1=NTRY1+1
5169 IF((RANART(NSEED) .GT. FD5(DM,SRT,1.)/FM).AND.
5170 1 (NTRY1.LE.10)) GOTO 12
5171
5172
5173
5174 if(dm.gt.1.84) goto 12
5175
5176 GO TO 13
5177 ENDIF
5178
5179
5180 1012 iblock=43
5181 call Rmasdd(srt,1.232,1.232,1.08,
5182 & 1.08,ISEED,1,dm1,dm2)
5183 call Rmasdd(srt,1.232,1.44,1.08,
5184 & 1.08,ISEED,3,dm1n,dm2n)
5185 IF(N12.EQ.66)THEN
5186
5187
5188 XFINAL=RANART(NSEED)
5189 IF(XFINAL.LE.0.25)THEN
5190
5191 LB(I1)=9
5192 LB(I2)=7
5193 e(i1)=dm1
5194 e(i2)=dm2
5195 GO TO 200
5196
5197 ENDIF
5198 IF((XFINAL.gt.0.25).and.(xfinal.le.0.5))THEN
5199
5200 LB(I1)=8
5201 LB(I2)=8
5202 e(i1)=dm1
5203 e(i2)=dm2
5204 GO TO 200
5205
5206 ENDIF
5207 IF((XFINAL.gt.0.5).and.(xfinal.le.0.75))THEN
5208
5209 LB(I1)=9
5210 LB(I2)=10
5211 e(i1)=dm1n
5212 e(i2)=dm2n
5213 GO TO 200
5214
5215 ENDIF
5216 IF(XFINAL.gt.0.75)then
5217
5218 LB(I1)=8
5219 LB(I2)=11
5220 e(i1)=dm1n
5221 e(i2)=dm2n
5222 GO TO 200
5223
5224 ENDIF
5225 ENDIF
5226 1013 iblock=43
5227 call Rmasdd(srt,1.232,1.232,1.08,
5228 & 1.08,ISEED,1,dm1,dm2)
5229 call Rmasdd(srt,1.232,1.44,1.08,
5230 & 1.08,ISEED,3,dm1n,dm2n)
5231 IF(N12.EQ.67)THEN
5232
5233
5234 XFINAL=RANART(NSEED)
5235 IF(XFINAL.LE.0.25)THEN
5236
5237 LB(I1)=7
5238 LB(I2)=7
5239 e(i1)=dm1
5240 e(i2)=dm2
5241 GO TO 200
5242
5243 ENDIF
5244 IF((XFINAL.gt.0.25).and.(xfinal.le.0.5))THEN
5245
5246 LB(I1)=6
5247 LB(I2)=8
5248 e(i1)=dm1
5249 e(i2)=dm2
5250 GO TO 200
5251
5252 ENDIF
5253 IF((XFINAL.gt.0.5).and.(xfinal.le.0.75))THEN
5254
5255 LB(I1)=7
5256 LB(I2)=10
5257 e(i1)=dm1n
5258 e(i2)=dm2n
5259 GO TO 200
5260
5261 ENDIF
5262 IF(XFINAL.gt.0.75)then
5263
5264 LB(I1)=8
5265 LB(I2)=11
5266 e(i1)=dm1n
5267 e(i2)=dm2n
5268 GO TO 200
5269
5270 ENDIF
5271 ENDIF
5272 1014 iblock=43
5273 call Rmasdd(srt,1.232,1.232,1.08,
5274 & 1.08,ISEED,1,dm1,dm2)
5275 call Rmasdd(srt,1.232,1.44,1.08,
5276 & 1.08,ISEED,3,dm1n,dm2n)
5277 IF(N12.EQ.68)THEN
5278
5279
5280 XFINAL=RANART(NSEED)
5281 IF(XFINAL.LE.0.25)THEN
5282
5283 LB(I1)=7
5284 LB(I2)=8
5285 e(i1)=dm1
5286 e(i2)=dm2
5287 GO TO 200
5288
5289 ENDIF
5290 IF((XFINAL.gt.0.25).and.(xfinal.le.0.5))THEN
5291
5292 LB(I1)=9
5293 LB(I2)=6
5294 e(i1)=dm1
5295 e(i2)=dm2
5296 GO TO 200
5297
5298 ENDIF
5299 IF((XFINAL.gt.0.5).and.(xfinal.le.0.75))THEN
5300
5301 LB(I1)=7
5302 LB(I2)=11
5303 e(i1)=dm1n
5304 e(i2)=dm2n
5305 GO TO 200
5306
5307 ENDIF
5308 IF(XFINAL.gt.0.75)then
5309
5310 LB(I1)=8
5311 LB(I2)=10
5312 e(i1)=dm1n
5313 e(i2)=dm2n
5314 GO TO 200
5315
5316 ENDIF
5317 ENDIF
5318 13 CONTINUE
5319
5320
5321
5322 IF(N12.EQ.1)THEN
5323 IF(iabs(LB(I1)).EQ.1)THEN
5324 LB(I2)=2
5325 LB(I1)=8
5326 E(I1)=DM
5327 ELSE
5328 LB(I1)=2
5329 LB(I2)=8
5330 E(I2)=DM
5331 ENDIF
5332 GO TO 200
5333 ENDIF
5334
5335 IF(N12.EQ.2)THEN
5336 IF(iabs(LB(I1)).EQ.2)THEN
5337 LB(I2)=1
5338 LB(I1)=7
5339 E(I1)=DM
5340 ELSE
5341 LB(I1)=1
5342 LB(I2)=7
5343 E(I2)=DM
5344 ENDIF
5345 GO TO 200
5346 ENDIF
5347
5348 IF(N12.EQ.3)THEN
5349 LB(I1)=9
5350 E(I1)=DM
5351 LB(I2)=2
5352 E(I2)=AMN
5353 GO TO 200
5354 ENDIF
5355
5356 IF(N12.EQ.4)THEN
5357 LB(I2)=1
5358 LB(I1)=8
5359 E(I1)=DM
5360 GO TO 200
5361 ENDIF
5362
5363 IF(N12.EQ.5)THEN
5364 LB(I2)=2
5365 LB(I1)=7
5366 E(I1)=DM
5367 GO TO 200
5368 ENDIF
5369
5370 IF(N12.EQ.6)THEN
5371 LB(I1)=6
5372 E(I1)=DM
5373 LB(I2)=1
5374 E(I2)=AMP
5375 GO TO 200
5376 ENDIF
5377
5378 IF(N12.EQ.7)THEN
5379 IF(iabs(LB(I1)).EQ.1)THEN
5380 LB(I1)=1
5381 LB(I2)=10
5382 E(I2)=DM
5383 ELSE
5384 LB(I2)=1
5385 LB(I1)=10
5386 E(I1)=DM
5387 ENDIF
5388 GO TO 200
5389 ENDIF
5390
5391 IF(N12.EQ.8)THEN
5392 IF(iabs(LB(I1)).EQ.1)THEN
5393 LB(I2)=2
5394 LB(I1)=11
5395 E(I1)=DM
5396 ELSE
5397 LB(I1)=2
5398 LB(I2)=11
5399 E(I2)=DM
5400 ENDIF
5401 GO TO 200
5402 ENDIF
5403
5404 IF(N12.EQ.9)THEN
5405 IF(RANART(NSEED).le.0.5)THEN
5406 LB(I2)=1
5407 LB(I1)=13
5408 E(I1)=DM
5409 ELSE
5410 LB(I1)=1
5411 LB(I2)=13
5412 E(I2)=DM
5413 ENDIF
5414 GO TO 200
5415 ENDIF
5416
5417 IF(N12.EQ.10)THEN
5418 IF(RANART(NSEED).le.0.5)THEN
5419 LB(I2)=2
5420 LB(I1)=12
5421 E(I1)=DM
5422 ELSE
5423 LB(I1)=2
5424 LB(I2)=12
5425 E(I2)=DM
5426 ENDIF
5427 GO TO 200
5428 ENDIF
5429
5430 IF(N12.EQ.11)THEN
5431 IF(iabs(LB(I1)).EQ.2)THEN
5432 LB(I1)=2
5433 LB(I2)=13
5434 E(I2)=DM
5435 ELSE
5436 LB(I2)=2
5437 LB(I1)=13
5438 E(I1)=DM
5439 ENDIF
5440 GO TO 200
5441 ENDIF
5442
5443 IF(N12.EQ.12)THEN
5444 IF(iabs(LB(I1)).EQ.1)THEN
5445 LB(I1)=1
5446 LB(I2)=12
5447 E(I2)=DM
5448 ELSE
5449 LB(I2)=1
5450 LB(I1)=12
5451 E(I1)=DM
5452 ENDIF
5453 ENDIF
5454 endif
5455
5456
5457 200 EM1=E(I1)
5458 EM2=E(I2)
5459 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
5460 1 - 4.0 * (EM1*EM2)**2
5461 IF(PR2.LE.0.)PR2=1.e-09
5462 PR=SQRT(PR2)/(2.*SRT)
5463 if(srt.le.2.14)C1= 1.0 - 2.0 * RANART(NSEED)
5464 if(srt.gt.2.14.and.srt.le.2.4)c1=ang(srt,iseed)
5465 if(srt.gt.2.4)then
5466
5467
5468 xptr=0.33*pr
5469
5470 cc1=ptr(xptr,iseed)
5471
5472
5473
5474 scheck=pr**2-cc1**2
5475 if(scheck.lt.0) then
5476 write(99,*) 'scheck2: ', scheck
5477 scheck=0.
5478 endif
5479 c1=sqrt(scheck)/pr
5480
5481
5482 endif
5483 T1 = 2.0 * PI * RANART(NSEED)
5484 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
5485 lb(i1) = -lb(i1)
5486 lb(i2) = -lb(i2)
5487 endif
5488 GO TO 107
5489
5490
5491 106 CONTINUE
5492 NTRY1=0
5493 123 CALL DDP2(SRT,ISEED,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
5494 & PPX,PPY,PPZ,icou1)
5495 NTRY1=NTRY1+1
5496 if((icou1.lt.0).AND.(NTRY1.LE.40))GO TO 123
5497
5498
5499 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
5500 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
5501 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
5502 NNN=NNN+1
5503
5504
5505 XDIR=RANART(NSEED)
5506 IF(LB(I1)*LB(I2).EQ.1)THEN
5507 IF(XDIR.Le.0.2)then
5508
5509 LPION(NNN,IRUN)=4
5510 EPION(NNN,IRUN)=AP1
5511 LB(I1)=9
5512 LB(I2)=7
5513 GO TO 205
5514 ENDIF
5515
5516 IF((XDIR.LE.0.4).AND.(XDIR.GT.0.2))THEN
5517 LPION(NNN,IRUN)=4
5518 EPION(NNN,IRUN)=AP1
5519 LB(I1)=8
5520 LB(I2)=8
5521 GO TO 205
5522 ENDIF
5523
5524 IF((XDIR.LE.0.6).AND.(XDIR.GT.0.4))THEN
5525 LPION(NNN,IRUN)=3
5526 EPION(NNN,IRUN)=AP2
5527 LB(I1)=9
5528 LB(I2)=8
5529 GO TO 205
5530 ENDIF
5531 IF((XDIR.LE.0.8).AND.(XDIR.GT.0.6))THEN
5532 LPION(NNN,IRUN)=5
5533 EPION(NNN,IRUN)=AP2
5534 LB(I1)=9
5535 LB(I2)=6
5536 GO TO 205
5537 ENDIF
5538 IF(XDIR.GT.0.8)THEN
5539 LPION(NNN,IRUN)=5
5540 EPION(NNN,IRUN)=AP2
5541 LB(I1)=7
5542 LB(I2)=8
5543 GO TO 205
5544 ENDIF
5545 ENDIF
5546
5547 IF(iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2)THEN
5548 IF(XDIR.Le.0.2)then
5549
5550 LPION(NNN,IRUN)=4
5551 EPION(NNN,IRUN)=AP1
5552 LB(I1)=6
5553 LB(I2)=7
5554 GO TO 205
5555 ENDIF
5556
5557 IF((XDIR.LE.0.4).AND.(XDIR.GT.0.2))THEN
5558 LPION(NNN,IRUN)=3
5559 EPION(NNN,IRUN)=AP2
5560 LB(I1)=6
5561 LB(I2)=9
5562 GO TO 205
5563 ENDIF
5564
5565 IF((XDIR.GT.0.4).AND.(XDIR.LE.0.6))THEN
5566 LPION(NNN,IRUN)=5
5567 EPION(NNN,IRUN)=AP2
5568 LB(I1)=9
5569 LB(I2)=8
5570 GO TO 205
5571 ENDIF
5572
5573 IF((XDIR.GT.0.6).AND.(XDIR.LE.0.8))THEN
5574 LPION(NNN,IRUN)=4
5575 EPION(NNN,IRUN)=AP1
5576 LB(I1)=7
5577 LB(I2)=7
5578 GO TO 205
5579 ENDIF
5580
5581 IF(XDIR.GT.0.8)THEN
5582 LPION(NNN,IRUN)=3
5583 EPION(NNN,IRUN)=AP2
5584 LB(I1)=7
5585 LB(I2)=8
5586 GO TO 205
5587 ENDIF
5588 ENDIF
5589
5590 IF(LB(I1)*LB(I2).EQ.2)THEN
5591 IF(XDIR.Le.0.17)then
5592
5593 LPION(NNN,IRUN)=4
5594 EPION(NNN,IRUN)=AP1
5595 LB(I1)=6
5596 LB(I2)=9
5597 GO TO 205
5598 ENDIF
5599
5600 IF((XDIR.LE.0.34).AND.(XDIR.GT.0.17))THEN
5601 LPION(NNN,IRUN)=3
5602 EPION(NNN,IRUN)=AP2
5603 LB(I1)=7
5604 LB(I2)=9
5605 GO TO 205
5606 ENDIF
5607
5608 IF((XDIR.GT.0.34).AND.(XDIR.LE.0.51))THEN
5609 LPION(NNN,IRUN)=5
5610 EPION(NNN,IRUN)=AP2
5611 LB(I1)=7
5612 LB(I2)=8
5613 GO TO 205
5614 ENDIF
5615
5616 IF((XDIR.GT.0.51).AND.(XDIR.LE.0.68))THEN
5617 LPION(NNN,IRUN)=3
5618 EPION(NNN,IRUN)=AP2
5619 LB(I1)=8
5620 LB(I2)=8
5621 GO TO 205
5622 ENDIF
5623
5624 IF((XDIR.GT.0.68).AND.(XDIR.LE.0.85))THEN
5625 LPION(NNN,IRUN)=4
5626 EPION(NNN,IRUN)=AP2
5627 LB(I1)=7
5628 LB(I2)=8
5629 GO TO 205
5630 ENDIF
5631
5632 IF(XDIR.GT.0.85)THEN
5633 LPION(NNN,IRUN)=5
5634 EPION(NNN,IRUN)=AP2
5635 LB(I1)=7
5636 LB(I2)=7
5637 ENDIF
5638 ENDIF
5639
5640
5641
5642 205 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
5643 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
5644 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
5645 Pt1i1 = BETAX * TRANSF + PX3
5646 Pt2i1 = BETAY * TRANSF + PY3
5647 Pt3i1 = BETAZ * TRANSF + PZ3
5648 Eti1 = DM3
5649
5650 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
5651 lb(i1) = -lb(i1)
5652 lb(i2) = -lb(i2)
5653 if(LPION(NNN,IRUN) .eq. 3)then
5654 LPION(NNN,IRUN)=5
5655 elseif(LPION(NNN,IRUN) .eq. 5)then
5656 LPION(NNN,IRUN)=3
5657 endif
5658 endif
5659
5660 lb1=lb(i1)
5661
5662 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
5663 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
5664 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
5665 Pt1I2 = BETAX * TRANSF + PX4
5666 Pt2I2 = BETAY * TRANSF + PY4
5667 Pt3I2 = BETAZ * TRANSF + PZ4
5668 EtI2 = DM4
5669 lb2=lb(i2)
5670
5671
5672
5673 p(1,i1)=pt1i1
5674 p(2,i1)=pt2i1
5675 p(3,i1)=pt3i1
5676 e(i1)=eti1
5677 lb(i1)=lb1
5678 p(1,i2)=pt1i2
5679 p(2,i2)=pt2i2
5680 p(3,i2)=pt3i2
5681 e(i2)=eti2
5682 lb(i2)=lb2
5683 PX1 = P(1,I1)
5684 PY1 = P(2,I1)
5685 PZ1 = P(3,I1)
5686 EM1 = E(I1)
5687 ID(I1) = 2
5688 ID(I2) = 2
5689 ID1 = ID(I1)
5690 IBLOCK=4
5691
5692 EPCM=SQRT(EPION(NNN,IRUN)**2+PPX**2+PPY**2+PPZ**2)
5693 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
5694 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
5695 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
5696 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
5697 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
5698
5699 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709 RPION(1,NNN,IRUN)=R(1,I1)
5710 RPION(2,NNN,IRUN)=R(2,I1)
5711 RPION(3,NNN,IRUN)=R(3,I1)
5712
5713 go to 90005
5714
5715
5716 108 CONTINUE
5717 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
5718
5719 ndloop=npertd
5720 elseif(idpert.eq.2.and.npertd.ge.1) then
5721
5722
5723
5724 ndloop=npertd+1
5725 else
5726
5727 ndloop=1
5728 endif
5729
5730 dprob1=sdprod/sig/float(npertd)
5731 do idloop=1,ndloop
5732 CALL bbdangle(pxd,pyd,pzd,nt,ipert1,ianti,idloop,pfinal,
5733 1 dprob1,lbm)
5734 CALL ROTATE(PX,PY,PZ,PXd,PYd,PZd)
5735
5736
5737
5738 xmass=xmd
5739 E1dCM=SQRT(xmass**2+PXd**2+PYd**2+PZd**2)
5740 P1dBETA=PXd*BETAX+PYd*BETAY+PZd*BETAZ
5741 TRANSF=GAMMA*(GAMMA*P1dBETA/(GAMMA+1.)+E1dCM)
5742 pxi1=BETAX*TRANSF+PXd
5743 pyi1=BETAY*TRANSF+PYd
5744 pzi1=BETAZ*TRANSF+PZd
5745 if(ianti.eq.0)then
5746 lbd=42
5747 else
5748 lbd=-42
5749 endif
5750 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
5751
5752 nnn=nnn+1
5753 PPION(1,NNN,IRUN)=pxi1
5754 PPION(2,NNN,IRUN)=pyi1
5755 PPION(3,NNN,IRUN)=pzi1
5756 EPION(NNN,IRUN)=xmd
5757 LPION(NNN,IRUN)=lbd
5758 RPION(1,NNN,IRUN)=R(1,I1)
5759 RPION(2,NNN,IRUN)=R(2,I1)
5760 RPION(3,NNN,IRUN)=R(3,I1)
5761
5762 dppion(NNN,IRUN)=sdprod/sig/float(npertd)
5763 elseif(idpert.eq.2.and.idloop.le.npertd) then
5764
5765
5766
5767 ppd(1,idloop)=pxi1
5768 ppd(2,idloop)=pyi1
5769 ppd(3,idloop)=pzi1
5770 lbpd(idloop)=lbd
5771 else
5772
5773
5774 E(i1)=xmm
5775 E2piCM=SQRT(xmm**2+PXd**2+PYd**2+PZd**2)
5776 P2piBETA=-PXd*BETAX-PYd*BETAY-PZd*BETAZ
5777 TRANSF=GAMMA*(GAMMA*P2piBETA/(GAMMA+1.)+E2piCM)
5778 pxi2=BETAX*TRANSF-PXd
5779 pyi2=BETAY*TRANSF-PYd
5780 pzi2=BETAZ*TRANSF-PZd
5781 p(1,i1)=pxi2
5782 p(2,i1)=pyi2
5783 p(3,i1)=pzi2
5784
5785
5786
5787
5788 LB(I1)=lbm
5789 PX1=P(1,I1)
5790 PY1=P(2,I1)
5791 PZ1=P(3,I1)
5792 EM1=E(I1)
5793 ID(I1)=2
5794 ID1=ID(I1)
5795 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
5796 lb1=lb(i1)
5797
5798 p(1,i2)=pxi1
5799 p(2,i2)=pyi1
5800 p(3,i2)=pzi1
5801 lb(i2)=lbd
5802 lb2=lb(i2)
5803 E(i2)=xmd
5804 EtI2=E(I2)
5805 ID(I2)=2
5806
5807 if(idpert.eq.2.and.idloop.eq.ndloop) then
5808 do ipertd=1,npertd
5809 nnn=nnn+1
5810 PPION(1,NNN,IRUN)=ppd(1,ipertd)
5811 PPION(2,NNN,IRUN)=ppd(2,ipertd)
5812 PPION(3,NNN,IRUN)=ppd(3,ipertd)
5813 EPION(NNN,IRUN)=xmd
5814 LPION(NNN,IRUN)=lbpd(ipertd)
5815 RPION(1,NNN,IRUN)=R(1,I1)
5816 RPION(2,NNN,IRUN)=R(2,I1)
5817 RPION(3,NNN,IRUN)=R(3,I1)
5818
5819 dppion(NNN,IRUN)=1./float(npertd)
5820 enddo
5821 endif
5822 endif
5823 enddo
5824 IBLOCK=501
5825 go to 90005
5826
5827
5828
5829 306 CONTINUE
5830
5831 if(XSK5/sigK.gt.RANART(NSEED))then
5832 pz1=p(3,i1)
5833 pz2=p(3,i2)
5834 LB(I1) = 1 + int(2 * RANART(NSEED))
5835 LB(I2) = 1 + int(2 * RANART(NSEED))
5836 nnn=nnn+1
5837 LPION(NNN,IRUN)=29
5838 EPION(NNN,IRUN)=APHI
5839 iblock = 222
5840 GO TO 208
5841 ENDIF
5842
5843 IBLOCK=9
5844 if(ianti .eq. 1)iblock=-9
5845
5846 pz1=p(3,i1)
5847 pz2=p(3,i2)
5848
5849 nnn=nnn+1
5850 LPION(NNN,IRUN)=23
5851 EPION(NNN,IRUN)=Aka
5852 if(srt.le.2.63)then
5853
5854
5855 ic=1
5856 LB(I1) = 1 + int(2 * RANART(NSEED))
5857 LB(I2)=14
5858 GO TO 208
5859 ENDIF
5860 if(srt.le.2.74.and.srt.gt.2.63)then
5861
5862 if(XSK1/(XSK1+XSK2).gt.RANART(NSEED))then
5863
5864 ic=1
5865 LB(I1) = 1 + int(2 * RANART(NSEED))
5866 LB(I2)=14
5867 else
5868
5869 LB(I1) = 1 + int(2 * RANART(NSEED))
5870 LB(I2) = 15 + int(3 * RANART(NSEED))
5871 ic=2
5872 endif
5873 GO TO 208
5874 endif
5875 if(srt.le.2.77.and.srt.gt.2.74)then
5876
5877 if(xsk1/(xsk1+xsk2+xsk3).
5878 1 gt.RANART(NSEED))then
5879
5880 ic=1
5881 LB(I1) = 1 + int(2 * RANART(NSEED))
5882 LB(I2)=14
5883 go to 208
5884 else
5885 if(xsk2/(xsk2+xsk3).gt.RANART(NSEED))then
5886
5887 ic=2
5888 LB(I1) = 1 + int(2 * RANART(NSEED))
5889 LB(I2) = 15 + int(3 * RANART(NSEED))
5890 else
5891
5892 ic=3
5893 LB(I1) = 6 + int(4 * RANART(NSEED))
5894 lb(i2)=14
5895 endif
5896 GO TO 208
5897 endif
5898 endif
5899 if(srt.gt.2.77)then
5900
5901 if(xsk1/(xsk1+xsk2+xsk3+xsk4).gt.RANART(NSEED))then
5902
5903 ic=1
5904 LB(I1) = 1 + int(2 * RANART(NSEED))
5905 LB(I2)=14
5906 go to 208
5907 else
5908 if(xsk3/(xsk2+xsk3+xsk4).gt.RANART(NSEED))then
5909
5910 ic=3
5911 LB(I1) = 6 + int(4 * RANART(NSEED))
5912 lb(i2)=14
5913 go to 208
5914 else
5915 if(xsk2/(xsk2+xsk4).gt.RANART(NSEED))then
5916
5917 LB(I1) = 1 + int(2 * RANART(NSEED))
5918 LB(I2) = 15 + int(3 * RANART(NSEED))
5919 ic=2
5920 else
5921 ic=4
5922 LB(I1) = 6 + int(4 * RANART(NSEED))
5923 LB(I2) = 15 + int(3 * RANART(NSEED))
5924 endif
5925 go to 208
5926 endif
5927 endif
5928 endif
5929 208 continue
5930 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
5931 lb(i1) = - lb(i1)
5932 lb(i2) = - lb(i2)
5933 if(LPION(NNN,IRUN) .eq. 23)LPION(NNN,IRUN)=21
5934 endif
5935
5936 NTRY1=0
5937 127 CALL BBKAON(ic,SRT,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
5938 & PPX,PPY,PPZ,icou1)
5939 NTRY1=NTRY1+1
5940 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 127
5941
5942
5943 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
5944 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
5945 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
5946
5947
5948
5949
5950 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
5951 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
5952 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
5953 Pt1i1 = BETAX * TRANSF + PX3
5954 Pt2i1 = BETAY * TRANSF + PY3
5955 Pt3i1 = BETAZ * TRANSF + PZ3
5956 Eti1 = DM3
5957 lbi1=lb(i1)
5958
5959 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
5960 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
5961 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
5962 Pt1I2 = BETAX * TRANSF + PX4
5963 Pt2I2 = BETAY * TRANSF + PY4
5964 Pt3I2 = BETAZ * TRANSF + PZ4
5965 EtI2 = DM4
5966 lbi2=lb(i2)
5967
5968 EPCM=SQRT(aka**2+PPX**2+PPY**2+PPZ**2)
5969 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
5970 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
5971 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
5972 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
5973 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
5974
5975 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
5976
5977
5978
5979
5980
5981
5982
5983
5984 RPION(1,NNN,IRUN)=R(1,I1)
5985 RPION(2,NNN,IRUN)=R(2,I1)
5986 RPION(3,NNN,IRUN)=R(3,I1)
5987
5988
5989
5990
5991 p(1,i1)=pt1i1
5992 p(2,i1)=pt2i1
5993 p(3,i1)=pt3i1
5994 e(i1)=eti1
5995 lb(i1)=lbi1
5996 p(1,i2)=pt1i2
5997 p(2,i2)=pt2i2
5998 p(3,i2)=pt3i2
5999 e(i2)=eti2
6000 lb(i2)=lbi2
6001 PX1 = P(1,I1)
6002 PY1 = P(2,I1)
6003 PZ1 = P(3,I1)
6004 EM1 = E(I1)
6005 ID(I1) = 2
6006 ID(I2) = 2
6007 ID1 = ID(I1)
6008 go to 90005
6009
6010
6011 307 CONTINUE
6012 NTRY1=0
6013 125 CALL DDrho(SRT,ISEED,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
6014 & PPX,PPY,PPZ,amrho,icou1)
6015 NTRY1=NTRY1+1
6016 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 125
6017
6018
6019 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
6020 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
6021 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
6022 NNN=NNN+1
6023 arho=amrho
6024
6025
6026 XDIR=RANART(NSEED)
6027 IF(LB(I1)*LB(I2).EQ.1)THEN
6028 IF(XDIR.Le.0.2)then
6029
6030 LPION(NNN,IRUN)=26
6031 EPION(NNN,IRUN)=Arho
6032 LB(I1)=9
6033 LB(I2)=7
6034 GO TO 2051
6035 ENDIF
6036
6037 IF((XDIR.LE.0.4).AND.(XDIR.GT.0.2))THEN
6038 LPION(NNN,IRUN)=26
6039 EPION(NNN,IRUN)=Arho
6040 LB(I1)=8
6041 LB(I2)=8
6042 GO TO 2051
6043 ENDIF
6044
6045 IF((XDIR.LE.0.6).AND.(XDIR.GT.0.4))THEN
6046 LPION(NNN,IRUN)=25
6047 EPION(NNN,IRUN)=Arho
6048 LB(I1)=9
6049 LB(I2)=8
6050 GO TO 2051
6051 ENDIF
6052 IF((XDIR.LE.0.8).AND.(XDIR.GT.0.6))THEN
6053 LPION(NNN,IRUN)=27
6054 EPION(NNN,IRUN)=Arho
6055 LB(I1)=9
6056 LB(I2)=6
6057 GO TO 2051
6058 ENDIF
6059 IF(XDIR.GT.0.8)THEN
6060 LPION(NNN,IRUN)=27
6061 EPION(NNN,IRUN)=Arho
6062 LB(I1)=7
6063 LB(I2)=8
6064 GO TO 2051
6065 ENDIF
6066 ENDIF
6067
6068 IF(iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2)THEN
6069 IF(XDIR.Le.0.2)then
6070
6071 LPION(NNN,IRUN)=26
6072 EPION(NNN,IRUN)=Arho
6073 LB(I1)=6
6074 LB(I2)=7
6075 GO TO 2051
6076 ENDIF
6077
6078 IF((XDIR.LE.0.4).AND.(XDIR.GT.0.2))THEN
6079 LPION(NNN,IRUN)=25
6080 EPION(NNN,IRUN)=Arho
6081 LB(I1)=6
6082 LB(I2)=9
6083 GO TO 2051
6084 ENDIF
6085
6086 IF((XDIR.GT.0.4).AND.(XDIR.LE.0.6))THEN
6087 LPION(NNN,IRUN)=27
6088 EPION(NNN,IRUN)=Arho
6089 LB(I1)=9
6090 LB(I2)=8
6091 GO TO 2051
6092 ENDIF
6093
6094 IF((XDIR.GT.0.6).AND.(XDIR.LE.0.8))THEN
6095 LPION(NNN,IRUN)=26
6096 EPION(NNN,IRUN)=Arho
6097 LB(I1)=7
6098 LB(I2)=7
6099 GO TO 2051
6100 ENDIF
6101
6102 IF(XDIR.GT.0.8)THEN
6103 LPION(NNN,IRUN)=25
6104 EPION(NNN,IRUN)=Arho
6105 LB(I1)=7
6106 LB(I2)=8
6107 GO TO 2051
6108 ENDIF
6109 ENDIF
6110
6111 IF(LB(I1)*LB(I2).EQ.2)THEN
6112 IF(XDIR.Le.0.17)then
6113
6114 LPION(NNN,IRUN)=25
6115 EPION(NNN,IRUN)=Arho
6116 LB(I1)=6
6117 LB(I2)=9
6118 GO TO 2051
6119 ENDIF
6120
6121 IF((XDIR.LE.0.34).AND.(XDIR.GT.0.17))THEN
6122 LPION(NNN,IRUN)=25
6123 EPION(NNN,IRUN)=Arho
6124 LB(I1)=7
6125 LB(I2)=9
6126 GO TO 2051
6127 ENDIF
6128
6129 IF((XDIR.GT.0.34).AND.(XDIR.LE.0.51))THEN
6130 LPION(NNN,IRUN)=27
6131 EPION(NNN,IRUN)=Arho
6132 LB(I1)=7
6133 LB(I2)=8
6134 GO TO 2051
6135 ENDIF
6136
6137 IF((XDIR.GT.0.51).AND.(XDIR.LE.0.68))THEN
6138 LPION(NNN,IRUN)=25
6139 EPION(NNN,IRUN)=Arho
6140 LB(I1)=8
6141 LB(I2)=8
6142 GO TO 2051
6143 ENDIF
6144
6145 IF((XDIR.GT.0.68).AND.(XDIR.LE.0.85))THEN
6146 LPION(NNN,IRUN)=26
6147 EPION(NNN,IRUN)=Arho
6148 LB(I1)=7
6149 LB(I2)=8
6150 GO TO 2051
6151 ENDIF
6152
6153 IF(XDIR.GT.0.85)THEN
6154 LPION(NNN,IRUN)=27
6155 EPION(NNN,IRUN)=Arho
6156 LB(I1)=7
6157 LB(I2)=7
6158 ENDIF
6159 ENDIF
6160
6161
6162
6163 2051 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
6164 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
6165 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
6166 Pt1i1 = BETAX * TRANSF + PX3
6167 Pt2i1 = BETAY * TRANSF + PY3
6168 Pt3i1 = BETAZ * TRANSF + PZ3
6169 Eti1 = DM3
6170
6171 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
6172 lb(i1) = -lb(i1)
6173 lb(i2) = -lb(i2)
6174 if(LPION(NNN,IRUN) .eq. 25)then
6175 LPION(NNN,IRUN)=27
6176 elseif(LPION(NNN,IRUN) .eq. 27)then
6177 LPION(NNN,IRUN)=25
6178 endif
6179 endif
6180
6181 lb1=lb(i1)
6182
6183 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
6184 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
6185 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
6186 Pt1I2 = BETAX * TRANSF + PX4
6187 Pt2I2 = BETAY * TRANSF + PY4
6188 Pt3I2 = BETAZ * TRANSF + PZ4
6189 EtI2 = DM4
6190 lb2=lb(i2)
6191
6192
6193
6194 p(1,i1)=pt1i1
6195 p(2,i1)=pt2i1
6196 p(3,i1)=pt3i1
6197 e(i1)=eti1
6198 lb(i1)=lb1
6199 p(1,i2)=pt1i2
6200 p(2,i2)=pt2i2
6201 p(3,i2)=pt3i2
6202 e(i2)=eti2
6203 lb(i2)=lb2
6204 PX1 = P(1,I1)
6205 PY1 = P(2,I1)
6206 PZ1 = P(3,I1)
6207 EM1 = E(I1)
6208 ID(I1) = 2
6209 ID(I2) = 2
6210 ID1 = ID(I1)
6211 IBLOCK=44
6212
6213 EPCM=SQRT(EPION(NNN,IRUN)**2+PPX**2+PPY**2+PPZ**2)
6214 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
6215 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
6216 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
6217 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
6218 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
6219
6220 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
6221
6222
6223
6224
6225
6226
6227
6228
6229 RPION(1,NNN,IRUN)=R(1,I1)
6230 RPION(2,NNN,IRUN)=R(2,I1)
6231 RPION(3,NNN,IRUN)=R(3,I1)
6232
6233 go to 90005
6234
6235
6236 308 CONTINUE
6237 NTRY1=0
6238 126 CALL pprho(SRT,ISEED,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
6239 & PPX,PPY,PPZ,amrho,icou1)
6240 NTRY1=NTRY1+1
6241 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 126
6242
6243
6244 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
6245 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
6246 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
6247 NNN=NNN+1
6248 arho=amrho
6249
6250
6251 XDIR=RANART(NSEED)
6252 IF(LB(I1)*LB(I2).EQ.1)THEN
6253 IF(XDIR.Le.0.5)then
6254
6255 LPION(NNN,IRUN)=26
6256 EPION(NNN,IRUN)=Arho
6257 LB(I1)=1
6258 LB(I2)=1
6259 GO TO 2052
6260 Else
6261
6262 LPION(NNN,IRUN)=27
6263 EPION(NNN,IRUN)=Arho
6264 LB(I1)=1
6265 LB(I2)=2
6266 GO TO 2052
6267 ENDIF
6268 endif
6269
6270 IF(iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2)THEN
6271 IF(XDIR.Le.0.5)then
6272
6273 LPION(NNN,IRUN)=26
6274 EPION(NNN,IRUN)=Arho
6275 LB(I1)=2
6276 LB(I2)=2
6277 GO TO 2052
6278 Else
6279
6280 LPION(NNN,IRUN)=25
6281 EPION(NNN,IRUN)=Arho
6282 LB(I1)=1
6283 LB(I2)=2
6284 GO TO 2052
6285 ENDIF
6286 endif
6287
6288 IF(LB(I1)*LB(I2).EQ.2)THEN
6289 IF(XDIR.Le.0.33)then
6290
6291 LPION(NNN,IRUN)=26
6292 EPION(NNN,IRUN)=Arho
6293 LB(I1)=1
6294 LB(I2)=2
6295 GO TO 2052
6296
6297 else IF((XDIR.LE.0.67).AND.(XDIR.GT.0.34))THEN
6298 LPION(NNN,IRUN)=25
6299 EPION(NNN,IRUN)=Arho
6300 LB(I1)=1
6301 LB(I2)=1
6302 GO TO 2052
6303 Else
6304
6305 LPION(NNN,IRUN)=27
6306 EPION(NNN,IRUN)=Arho
6307 LB(I1)=2
6308 LB(I2)=2
6309 GO TO 2052
6310 ENDIF
6311 endif
6312
6313
6314
6315 2052 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
6316 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
6317 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
6318 Pt1i1 = BETAX * TRANSF + PX3
6319 Pt2i1 = BETAY * TRANSF + PY3
6320 Pt3i1 = BETAZ * TRANSF + PZ3
6321 Eti1 = DM3
6322
6323 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
6324 lb(i1) = -lb(i1)
6325 lb(i2) = -lb(i2)
6326 if(LPION(NNN,IRUN) .eq. 25)then
6327 LPION(NNN,IRUN)=27
6328 elseif(LPION(NNN,IRUN) .eq. 27)then
6329 LPION(NNN,IRUN)=25
6330 endif
6331 endif
6332
6333 lb1=lb(i1)
6334
6335 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
6336 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
6337 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
6338 Pt1I2 = BETAX * TRANSF + PX4
6339 Pt2I2 = BETAY * TRANSF + PY4
6340 Pt3I2 = BETAZ * TRANSF + PZ4
6341 EtI2 = DM4
6342 lb2=lb(i2)
6343
6344
6345
6346 p(1,i1)=pt1i1
6347 p(2,i1)=pt2i1
6348 p(3,i1)=pt3i1
6349 e(i1)=eti1
6350 lb(i1)=lb1
6351 p(1,i2)=pt1i2
6352 p(2,i2)=pt2i2
6353 p(3,i2)=pt3i2
6354 e(i2)=eti2
6355 lb(i2)=lb2
6356 PX1 = P(1,I1)
6357 PY1 = P(2,I1)
6358 PZ1 = P(3,I1)
6359 EM1 = E(I1)
6360 ID(I1) = 2
6361 ID(I2) = 2
6362 ID1 = ID(I1)
6363 IBLOCK=45
6364
6365 EPCM=SQRT(EPION(NNN,IRUN)**2+PPX**2+PPY**2+PPZ**2)
6366 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
6367 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
6368 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
6369 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
6370 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
6371
6372 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
6373
6374
6375
6376
6377
6378
6379
6380
6381 RPION(1,NNN,IRUN)=R(1,I1)
6382 RPION(2,NNN,IRUN)=R(2,I1)
6383 RPION(3,NNN,IRUN)=R(3,I1)
6384
6385 go to 90005
6386
6387
6388 309 CONTINUE
6389 NTRY1=0
6390 138 CALL ppomga(SRT,ISEED,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
6391 & PPX,PPY,PPZ,icou1)
6392 NTRY1=NTRY1+1
6393 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 138
6394
6395
6396 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
6397 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
6398 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
6399 NNN=NNN+1
6400 aomega=0.782
6401
6402
6403 IF(LB(I1)*LB(I2).EQ.1)THEN
6404
6405 LPION(NNN,IRUN)=28
6406 EPION(NNN,IRUN)=Aomega
6407 LB(I1)=1
6408 LB(I2)=1
6409 GO TO 2053
6410 ENDIF
6411
6412 IF(iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2)THEN
6413
6414 LPION(NNN,IRUN)=28
6415 EPION(NNN,IRUN)=Aomega
6416 LB(I1)=2
6417 LB(I2)=2
6418 GO TO 2053
6419 ENDIF
6420
6421 IF(LB(I1)*LB(I2).EQ.2)THEN
6422
6423 LPION(NNN,IRUN)=28
6424 EPION(NNN,IRUN)=Aomega
6425 LB(I1)=1
6426 LB(I2)=2
6427 GO TO 2053
6428 ENDIF
6429
6430
6431
6432 2053 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
6433 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
6434 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
6435 Pt1i1 = BETAX * TRANSF + PX3
6436 Pt2i1 = BETAY * TRANSF + PY3
6437 Pt3i1 = BETAZ * TRANSF + PZ3
6438 Eti1 = DM3
6439 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
6440 lb(i1) = -lb(i1)
6441 lb(i2) = -lb(i2)
6442 endif
6443 lb1=lb(i1)
6444
6445 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
6446 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
6447 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
6448 Pt1I2 = BETAX * TRANSF + PX4
6449 Pt2I2 = BETAY * TRANSF + PY4
6450 Pt3I2 = BETAZ * TRANSF + PZ4
6451 EtI2 = DM4
6452 lb2=lb(i2)
6453
6454
6455
6456 p(1,i1)=pt1i1
6457 p(2,i1)=pt2i1
6458 p(3,i1)=pt3i1
6459 e(i1)=eti1
6460 lb(i1)=lb1
6461 p(1,i2)=pt1i2
6462 p(2,i2)=pt2i2
6463 p(3,i2)=pt3i2
6464 e(i2)=eti2
6465 lb(i2)=lb2
6466 PX1 = P(1,I1)
6467 PY1 = P(2,I1)
6468 PZ1 = P(3,I1)
6469 EM1 = E(I1)
6470 ID(I1) = 2
6471 ID(I2) = 2
6472 ID1 = ID(I1)
6473 IBLOCK=46
6474
6475 EPCM=SQRT(EPION(NNN,IRUN)**2+PPX**2+PPY**2+PPZ**2)
6476 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
6477 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
6478 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
6479 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
6480 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
6481
6482 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
6483
6484
6485
6486
6487
6488
6489
6490
6491 RPION(1,NNN,IRUN)=R(1,I1)
6492 RPION(2,NNN,IRUN)=R(2,I1)
6493 RPION(3,NNN,IRUN)=R(3,I1)
6494
6495 go to 90005
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537 90005 continue
6538 RETURN
6539
6540
6541 107 IF(PX .EQ. 0.0 .AND. PY .EQ. 0.0) THEN
6542 T2 = 0.0
6543 ELSE
6544 T2=ATAN2(PY,PX)
6545 END IF
6546 S1 = 1.0 - C1**2
6547 IF(S1.LE.0)S1=0
6548 S1=SQRT(S1)
6549
6550
6551 scheck=1.0 - C2**2
6552 if(scheck.lt.0) then
6553 write(99,*) 'scheck3: ', scheck
6554 scheck=0.
6555 endif
6556 S2=SQRT(scheck)
6557
6558
6559 CT1 = COS(T1)
6560 ST1 = SIN(T1)
6561 CT2 = COS(T2)
6562 ST2 = SIN(T2)
6563 PZ = PR * ( C1*C2 - S1*S2*CT1 )
6564 SS = C2 * S1 * CT1 + S2 * C1
6565 PX = PR * ( SS*CT2 - S1*ST1*ST2 )
6566 PY = PR * ( SS*ST2 + S1*ST1*CT2 )
6567 RETURN
6568 END
6569
6570
6571
6572
6573
6574
6575
6576 SUBROUTINE CRPP(PX,PY,PZ,SRT,I1,I2,IBLOCK,
6577 &ppel,ppin,spprho,ipp)
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
6590 1 AMP=0.93828,AP1=0.13496,
6591 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
6592 PARAMETER (AKA=0.498,aks=0.895)
6593 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
6594 COMMON /AA/ R(3,MAXSTR)
6595
6596 COMMON /BB/ P(3,MAXSTR)
6597
6598 COMMON /CC/ E(MAXSTR)
6599
6600 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
6601
6602 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
6603
6604 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
6605
6606 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
6607
6608 COMMON/RNDF77/NSEED
6609
6610 SAVE
6611
6612 lb1i=lb(i1)
6613 lb2i=lb(i2)
6614
6615 PX0=PX
6616 PY0=PY
6617 PZ0=PZ
6618 iblock=1
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632 if(srt.gt.(2*aka).and.(ppin/(ppin+ppel)).gt.RANART(NSEED)) then
6633
6634
6635
6636 ranpi=RANART(NSEED)
6637 if((pprr/ppin).ge.ranpi) then
6638
6639
6640 call pi2ro2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6641
6642
6643 elseif((pprr+ppee)/ppin.ge.ranpi) then
6644
6645 call pi2et2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6646 elseif(((pprr+ppee+pppe)/ppin).ge.ranpi) then
6647
6648 call pi3eta(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6649 elseif(((pprr+ppee+pppe+rpre)/ppin).ge.ranpi) then
6650
6651 call rpiret(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6652 elseif(((pprr+ppee+pppe+rpre+xopoe)/ppin).ge.ranpi) then
6653
6654 call opioet(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6655 elseif(((pprr+ppee+pppe+rpre+xopoe+rree)
6656 1 /ppin).ge.ranpi) then
6657
6658 call ro2et2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6659
6660
6661
6662 elseif(((pprr+ppee+pppe+rpre+xopoe+rree+ppinnb)/ppin)
6663 1 .ge.ranpi) then
6664
6665 call bbarfs(lbb1,lbb2,ei1,ei2,iblock,iseed)
6666
6667 else
6668 iblock=66
6669 ei1=aka
6670 ei2=aka
6671 lbb1=21
6672 lbb2=23
6673
6674 lb1=lb(i1)
6675 lb2=lb(i2)
6676
6677
6678
6679 if( ( (lb1.eq.0.or.(lb1.ge.3.and.lb1.le.5))
6680 1 .and.(lb2.ge.25.and.lb2.le.28))
6681 2 .or. ( (lb2.eq.0.or.(lb2.ge.3.and.lb2.le.5))
6682 3 .and.(lb1.ge.25.and.lb1.le.28))) then
6683 ei1=aks
6684 ei2=aka
6685 if(RANART(NSEED).ge.0.5) then
6686 iblock=366
6687 lbb1=30
6688 lbb2=21
6689 else
6690 iblock=367
6691 lbb1=-30
6692 lbb2=23
6693 endif
6694 endif
6695
6696 endif
6697
6698 e(i1)=ei1
6699 e(i2)=ei2
6700 lb(i1)=lbb1
6701 lb(i2)=lbb2
6702
6703
6704 else
6705
6706
6707 if ((lb(i1).lt.3.or.lb(i1).gt.5).and.
6708 & (lb(i2).lt.3.or.lb(i2).gt.5)) return
6709
6710
6711
6712 IBLOCK=6
6713
6714 if(ipp.eq.1.or.ipp.eq.4.or.ipp.eq.6)go to 10
6715 if(spprho/ppel.gt.RANART(NSEED))go to 20
6716 endif
6717 10 NTAG=0
6718 EM1=E(I1)
6719 EM2=E(I2)
6720
6721
6722
6723
6724 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
6725 1 - 4.0 * (EM1*EM2)**2
6726 IF(PR2.LE.0.)PR2=1.e-09
6727 PR=SQRT(PR2)/(2.*SRT)
6728 C1 = 1.0 - 2.0 * RANART(NSEED)
6729 T1 = 2.0 * PI * RANART(NSEED)
6730 S1 = SQRT( 1.0 - C1**2 )
6731 CT1 = COS(T1)
6732 ST1 = SIN(T1)
6733 PZ = PR * C1
6734 PX = PR * S1*CT1
6735 PY = PR * S1*ST1
6736
6737
6738
6739 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
6740
6741 RETURN
6742 20 continue
6743 iblock=666
6744
6745
6746 call rhores(i1,i2)
6747 if(ipp.eq.2)lb(i1)=27
6748 if(ipp.eq.3)lb(i1)=26
6749 if(ipp.eq.5)lb(i1)=25
6750 return
6751 END
6752
6753
6754
6755
6756 SUBROUTINE CRND(IRUN,PX,PY,PZ,SRT,I1,I2,IBLOCK,
6757 &SIGNN,SIG,sigk,xsk1,xsk2,xsk3,xsk4,xsk5,NT,ipert1)
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
6816 1 AMP=0.93828,AP1=0.13496,AKA=0.498,APHI=1.020,
6817 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
6818 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
6819 parameter (xmd=1.8756,npdmax=10000)
6820 COMMON /AA/ R(3,MAXSTR)
6821
6822 COMMON /BB/ P(3,MAXSTR)
6823
6824 COMMON /CC/ E(MAXSTR)
6825
6826 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
6827
6828 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
6829
6830 common /gg/ dx,dy,dz,dpx,dpy,dpz
6831
6832 COMMON /INPUT/ NSTAR,NDIRCT,DIR
6833
6834 COMMON /NN/NNN
6835
6836 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
6837
6838 COMMON /RUN/NUM
6839
6840 COMMON /PA/RPION(3,MAXSTR,MAXR)
6841
6842 COMMON /PB/PPION(3,MAXSTR,MAXR)
6843
6844 COMMON /PC/EPION(MAXSTR,MAXR)
6845
6846 COMMON /PD/LPION(MAXSTR,MAXR)
6847
6848 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
6849
6850 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
6851 1 px1n,py1n,pz1n,dp1n
6852
6853 COMMON/RNDF77/NSEED
6854
6855 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
6856 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
6857 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
6858 common /dpi/em2,lb2
6859 common /para8/ idpert,npertd,idxsec
6860 dimension ppd(3,npdmax),lbpd(npdmax)
6861 SAVE
6862
6863 n12=0
6864 m12=0
6865 IBLOCK=0
6866 NTAG=0
6867 EM1=E(I1)
6868 EM2=E(I2)
6869 PR = SQRT( PX**2 + PY**2 + PZ**2 )
6870 C2 = PZ / PR
6871 X1 = RANART(NSEED)
6872 ianti=0
6873 if(lb(i1).lt.0 .and. lb(i2).lt.0)ianti=1
6874
6875
6876 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
6877 if(idpert.eq.1.and.ipert1.eq.1) then
6878 IF (SRT .LT. 2.012) RETURN
6879 if((iabs(lb(i1)).eq.1.or.iabs(lb(i1)).eq.2)
6880 1 .and.(iabs(lb(i2)).ge.6.and.iabs(lb(i2)).le.13)) then
6881 goto 108
6882 elseif((iabs(lb(i2)).eq.1.or.iabs(lb(i2)).eq.2)
6883 1 .and.(iabs(lb(i1)).ge.6.and.iabs(lb(i1)).le.13)) then
6884 goto 108
6885 else
6886 return
6887 endif
6888 endif
6889
6890
6891
6892 IF (X1 .LE. SIGNN/SIG) THEN
6893
6894 AS = ( 3.65 * (SRT - 1.8766) )**6
6895 A = 6.0 * AS / (1.0 + AS)
6896 TA = -2.0 * PR**2
6897 X = RANART(NSEED)
6898
6899 T1 = sngl(DLOG(dble(1.-X)*DEXP(dble(A)*dble(TA))+dble(X)))/ A
6900 C1 = 1.0 - T1/TA
6901 T1 = 2.0 * PI * RANART(NSEED)
6902 IBLOCK=1
6903 GO TO 107
6904 ELSE
6905
6906
6907
6908 IF (SRT .LT. 2.04) RETURN
6909
6910
6911 if(((iabs(LB(I1)).EQ.2.or.iabs(LB(I2)).EQ.2).AND.
6912 1 (LB(I1)*LB(I2)).EQ.20).or.(LB(I1)*LB(I2)).EQ.13) then
6913 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6914 ENDIF
6915
6916
6917
6918
6919 PRF=SQRT(0.25*SRT**2-AVMASS**2)
6920 IF(EM1.GT.1.)THEN
6921 DELTAM=EM1
6922 ELSE
6923 DELTAM=EM2
6924 ENDIF
6925 RENOM=DELTAM*PRF**2/DENOM(SRT,1.)/PR
6926 RENOMN=DELTAM*PRF**2/DENOM(SRT,2.)/PR
6927 RENOM1=DELTAM*PRF**2/DENOM(SRT,-1.)/PR
6928
6929
6930
6931 if((iabs(lb(i1)).eq.2).and.(iabs(lb(i2)).eq.6)) renom=0.
6932 if((iabs(lb(i2)).eq.2).and.(iabs(lb(i1)).eq.6)) renom=0.
6933 if((iabs(lb(i1)).eq.1).and.(iabs(lb(i2)).eq.9)) renom=0.
6934 if((iabs(lb(i2)).eq.1).and.(iabs(lb(i1)).eq.9)) renom=0.
6935 Call M1535(iabs(lb(i1)),iabs(lb(i2)),srt,x1535)
6936 X1440=(3./4.)*SIGMA(SRT,2,0,1)
6937
6938
6939
6940
6941
6942 if(((iabs(lb(i1)).eq.2).and.(iabs(lb(i2)).eq.6)).OR.
6943 & ((iabs(lb(i2)).eq.2).and.(iabs(lb(i1)).eq.6)).OR.
6944 & ((iabs(lb(i1)).eq.1).and.(iabs(lb(i2)).eq.9)).OR.
6945 & ((iabs(lb(i2)).eq.1).and.(iabs(lb(i1)).eq.9)))THEN
6946
6947 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6948
6949 IF((SIGK+SIGNN+sdprod)/SIG.GE.X1)GO TO 306
6950
6951 ENDIF
6952
6953
6954
6955 IF(LB(I1)*LB(I2).EQ.18.AND.
6956 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))then
6957 SIGND=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
6958 SIGDN=0.25*SIGND*RENOM
6959
6960 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6961
6962 IF(X1.GT.(SIGNN+SIGDN+X1440+X1535+SIGK+sdprod)/SIG)RETURN
6963
6964 IF(SIGK/(SIGK+SIGDN+X1440+X1535).GT.RANART(NSEED))GO TO 306
6965
6966 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1440+X1535))THEN
6967 M12=3
6968 GO TO 206
6969 ELSE
6970
6971 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
6972
6973 M12=37
6974 ELSE
6975
6976
6977
6978
6979 return
6980
6981 ENDIF
6982 GO TO 204
6983 ENDIF
6984 ENDIF
6985
6986
6987 IF(LB(I1)*LB(I2).EQ.6.AND.
6988 & ((iabs(LB(I1)).EQ.1).OR.(iabs(LB(I2)).EQ.1)))then
6989 SIGND=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
6990 SIGDN=0.25*SIGND*RENOM
6991
6992 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6993
6994 IF (X1.GT.(SIGNN+SIGDN+X1440+X1535+SIGK+sdprod)/SIG)RETURN
6995
6996 IF(SIGK/(SIGK+SIGDN+X1440+X1535).GT.RANART(NSEED))GO TO 306
6997
6998 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1440+X1535))THEN
6999 M12=6
7000 GO TO 206
7001 ELSE
7002
7003 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
7004
7005 M12=47
7006 ELSE
7007
7008
7009 return
7010
7011 ENDIF
7012 GO TO 204
7013 ENDIF
7014 ENDIF
7015
7016 IF(LB(I1)*LB(I2).EQ.8.AND.
7017 & (iabs(LB(I1)).EQ.1.OR.iabs(LB(I2)).EQ.1))THEN
7018 SIGND=1.5*SIGMA(SRT,1,1,1)
7019 SIGDN=0.25*SIGND*RENOM
7020
7021 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
7022
7023 IF(X1.GT.(SIGNN+SIGDN+x1440+x1535+SIGK+sdprod)/SIG)RETURN
7024
7025 IF(SIGK/(SIGK+SIGDN+X1440+X1535).GT.RANART(NSEED))GO TO 306
7026 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1440+X1535))THEN
7027 M12=4
7028 GO TO 206
7029 ELSE
7030 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
7031
7032 M12=39
7033 ELSE
7034 M12=40
7035 ENDIF
7036 GO TO 204
7037 ENDIF
7038 ENDIF
7039
7040 IF(LB(I1)*LB(I2).EQ.14.AND.
7041 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))THEN
7042 SIGND=1.5*SIGMA(SRT,1,1,1)
7043 SIGDN=0.25*SIGND*RENOM
7044
7045 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
7046
7047 IF(X1.GT.(SIGNN+SIGDN+x1440+x1535+SIGK+sdprod)/SIG)RETURN
7048
7049 IF(SIGK/(SIGK+SIGDN+X1440+X1535).GT.RANART(NSEED))GO TO 306
7050 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1440+X1535))THEN
7051 M12=5
7052 GO TO 206
7053 ELSE
7054 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
7055
7056 M12=48
7057 ELSE
7058 M12=49
7059 ENDIF
7060 GO TO 204
7061 ENDIF
7062 ENDIF
7063
7064
7065 IF(LB(I1)*LB(I2).EQ.16.AND.
7066 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))THEN
7067 SIGND=0.5*SIGMA(SRT,1,1,1)+0.25*SIGMA(SRT,1,1,0)
7068 SIGDN=0.5*SIGND*RENOM
7069
7070 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
7071
7072 IF(X1.GT.(SIGNN+SIGDN+2.*x1440+2.*x1535+SIGK+sdprod)/SIG)RETURN
7073
7074 IF(SIGK/(SIGK+SIGDN+2*X1440+2*X1535).GT.RANART(NSEED))GO TO 306
7075 IF(RANART(NSEED).LT.SIGDN/(SIGDN+2.*X1440+2.*X1535))THEN
7076 M12=1
7077 GO TO 206
7078 ELSE
7079 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
7080 M12=41
7081 IF(RANART(NSEED).LE.0.5)M12=43
7082 ELSE
7083 M12=42
7084 IF(RANART(NSEED).LE.0.5)M12=44
7085 ENDIF
7086 GO TO 204
7087 ENDIF
7088 ENDIF
7089
7090
7091 IF(LB(I1)*LB(I2).EQ.7)THEN
7092 SIGND=0.5*SIGMA(SRT,1,1,1)+0.25*SIGMA(SRT,1,1,0)
7093 SIGDN=0.5*SIGND*RENOM
7094
7095 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
7096
7097 IF(X1.GT.(SIGNN+SIGDN+2.*x1440+2.*x1535+SIGK+sdprod)/SIG)RETURN
7098
7099 IF(SIGK/(SIGK+SIGDN+2*X1440+2*X1535).GT.RANART(NSEED))GO TO 306
7100 IF(RANART(NSEED).LT.SIGDN/(SIGDN+2.*X1440+2.*X1535))THEN
7101 M12=2
7102 GO TO 206
7103 ELSE
7104 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
7105 M12=50
7106 IF(RANART(NSEED).LE.0.5)M12=51
7107 ELSE
7108 M12=52
7109 IF(RANART(NSEED).LE.0.5)M12=53
7110 ENDIF
7111 GO TO 204
7112 ENDIF
7113 ENDIF
7114
7115
7116 IF(LB(I1)*LB(I2).EQ.10.AND.
7117 & (iabs(LB(I1)).EQ.1.OR.iabs(LB(I2)).EQ.1))then
7118 SIGND=(3./4.)*SIGMA(SRT,2,0,1)
7119 SIGDN=SIGND*RENOMN
7120
7121 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
7122
7123 IF(X1.GT.(SIGNN+SIGDN+X1535+SIGK+sdprod)/SIG)RETURN
7124
7125 IF(SIGK/(SIGK+SIGDN+X1535).GT.RANART(NSEED))GO TO 306
7126 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1535))THEN
7127 M12=7
7128 GO TO 206
7129 ELSE
7130 M12=54
7131 IF(RANART(NSEED).LE.0.5)M12=55
7132 ENDIF
7133 GO TO 204
7134 ENDIF
7135
7136 IF(LB(I1)*LB(I2).EQ.22.AND.
7137 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))then
7138 SIGND=(3./4.)*SIGMA(SRT,2,0,1)
7139 SIGDN=SIGND*RENOMN
7140
7141 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
7142
7143 IF(X1.GT.(SIGNN+SIGDN+X1535+SIGK+sdprod)/SIG)RETURN
7144
7145 IF(SIGK/(SIGK+SIGDN+X1535).GT.RANART(NSEED))GO TO 306
7146 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1535))THEN
7147 M12=8
7148 GO TO 206
7149 ELSE
7150 M12=56
7151 IF(RANART(NSEED).LE.0.5)M12=57
7152 ENDIF
7153 GO TO 204
7154 ENDIF
7155
7156 IF((iabs(LB(I1)).EQ.12).OR.(iabs(LB(I1)).EQ.13).OR.
7157 1 (iabs(LB(I2)).EQ.12).OR.(iabs(LB(I2)).EQ.13))THEN
7158 SIGND=X1535
7159 SIGDN=SIGND*RENOM1
7160
7161 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
7162
7163 IF(X1.GT.(SIGNN+SIGDN+SIGK+sdprod)/SIG)RETURN
7164
7165 IF(SIGK/(SIGK+SIGDN).GT.RANART(NSEED))GO TO 306
7166 IF(LB(I1)*LB(I2).EQ.24)M12=10
7167 IF(LB(I1)*LB(I2).EQ.12)M12=12
7168 IF(LB(I1)*LB(I2).EQ.26)M12=11
7169 IF(LB(I1)*LB(I2).EQ.13)M12=9
7170 GO TO 206
7171 ENDIF
7172 204 CONTINUE
7173
7174
7175
7176
7177
7178
7179
7180 DMAX = SRT - AVMASS-0.005
7181 DMIN = 1.078
7182 IF((M12.eq.37).or.(M12.eq.39).or.
7183 1 (M12.eQ.41).OR.(M12.eQ.43).OR.(M12.EQ.46).
7184 2 OR.(M12.EQ.48).OR.(M12.EQ.50).OR.(M12.EQ.51))then
7185
7186 IF(DMAX.LT.1.44) THEN
7187 FM=FNS(DMAX,SRT,0.)
7188 ELSE
7189
7190
7191 xdmass=1.44
7192
7193 FM=FNS(xdmass,SRT,1.)
7194
7195
7196 ENDIF
7197 IF(FM.EQ.0.)FM=1.E-09
7198 NTRY2=0
7199 11 DM=RANART(NSEED)*(DMAX-DMIN)+DMIN
7200 NTRY2=NTRY2+1
7201 IF((RANART(NSEED).GT.FNS(DM,SRT,1.)/FM).AND.
7202 1 (NTRY2.LE.10)) GO TO 11
7203
7204
7205
7206 if(dm.gt.2.14) goto 11
7207
7208 GO TO 13
7209 ELSE
7210
7211 IF(DMAX.LT.1.535) THEN
7212 FM=FD5(DMAX,SRT,0.)
7213 ELSE
7214
7215
7216 xdmass=1.535
7217
7218 FM=FD5(xdmass,SRT,1.)
7219
7220
7221 ENDIF
7222 IF(FM.EQ.0.)FM=1.E-09
7223 NTRY1=0
7224 12 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
7225 NTRY1=NTRY1+1
7226 IF((RANART(NSEED) .GT. FD5(DM,SRT,1.)/FM).AND.
7227 1 (NTRY1.LE.10)) GOTO 12
7228
7229
7230
7231 if(dm.gt.1.84) goto 12
7232
7233 ENDIF
7234 13 CONTINUE
7235
7236 PRF=0.
7237 PF2=((SRT**2-DM**2+AVMASS**2)/(2.*SRT))**2-AVMASS**2
7238 IF(PF2.GT.0.)PRF=SQRT(PF2)
7239
7240
7241 IF(M12.EQ.37)THEN
7242 IF(iabs(LB(I1)).EQ.9)THEN
7243 LB(I1)=1
7244 E(I1)=AMP
7245 LB(I2)=11
7246 E(I2)=DM
7247 ELSE
7248 LB(I2)=1
7249 E(I2)=AMP
7250 LB(I1)=11
7251 E(I1)=DM
7252 ENDIF
7253 GO TO 207
7254 ENDIF
7255
7256 IF(M12.EQ.38)THEN
7257 IF(iabs(LB(I1)).EQ.9)THEN
7258 LB(I1)=1
7259 E(I1)=AMP
7260 LB(I2)=13
7261 E(I2)=DM
7262 ELSE
7263 LB(I2)=1
7264 E(I2)=AMP
7265 LB(I1)=13
7266 E(I1)=DM
7267 ENDIF
7268 GO TO 207
7269 ENDIF
7270
7271 IF(M12.EQ.39)THEN
7272 IF(iabs(LB(I1)).EQ.8)THEN
7273 LB(I1)=1
7274 E(I1)=AMP
7275 LB(I2)=11
7276 E(I2)=DM
7277 ELSE
7278 LB(I2)=1
7279 E(I2)=AMP
7280 LB(I1)=11
7281 E(I1)=DM
7282 ENDIF
7283 GO TO 207
7284 ENDIF
7285
7286 IF(M12.EQ.40)THEN
7287 IF(iabs(LB(I1)).EQ.8)THEN
7288 LB(I1)=1
7289 E(I1)=AMP
7290 LB(I2)=13
7291 E(I2)=DM
7292 ELSE
7293 LB(I2)=1
7294 E(I2)=AMP
7295 LB(I1)=13
7296 E(I1)=DM
7297 ENDIF
7298 GO TO 207
7299 ENDIF
7300
7301 IF(M12.EQ.41)THEN
7302 IF(iabs(LB(I1)).EQ.8)THEN
7303 LB(I1)=2
7304 E(I1)=AMN
7305 LB(I2)=11
7306 E(I2)=DM
7307 ELSE
7308 LB(I2)=2
7309 E(I2)=AMN
7310 LB(I1)=11
7311 E(I1)=DM
7312 ENDIF
7313 GO TO 207
7314 ENDIF
7315
7316 IF(M12.EQ.42)THEN
7317 IF(iabs(LB(I1)).EQ.8)THEN
7318 LB(I1)=2
7319 E(I1)=AMN
7320 LB(I2)=13
7321 E(I2)=DM
7322 ELSE
7323 LB(I2)=2
7324 E(I2)=AMN
7325 LB(I1)=13
7326 E(I1)=DM
7327 ENDIF
7328 GO TO 207
7329 ENDIF
7330
7331 IF(M12.EQ.43)THEN
7332 IF(iabs(LB(I1)).EQ.8)THEN
7333 LB(I1)=1
7334 E(I1)=AMP
7335 LB(I2)=10
7336 E(I2)=DM
7337 ELSE
7338 LB(I2)=1
7339 E(I2)=AMP
7340 LB(I1)=10
7341 E(I1)=DM
7342 ENDIF
7343 GO TO 207
7344 ENDIF
7345
7346 IF(M12.EQ.44)THEN
7347 IF(iabs(LB(I1)).EQ.8)THEN
7348 LB(I1)=1
7349 E(I1)=AMP
7350 LB(I2)=12
7351 E(I2)=DM
7352 ELSE
7353 LB(I2)=1
7354 E(I2)=AMP
7355 LB(I1)=12
7356 E(I1)=DM
7357 ENDIF
7358 GO TO 207
7359 ENDIF
7360
7361 IF(M12.EQ.46)THEN
7362 IF(iabs(LB(I1)).EQ.6)THEN
7363 LB(I1)=2
7364 E(I1)=AMN
7365 LB(I2)=10
7366 E(I2)=DM
7367 ELSE
7368 LB(I2)=2
7369 E(I2)=AMN
7370 LB(I1)=10
7371 E(I1)=DM
7372 ENDIF
7373 GO TO 207
7374 ENDIF
7375
7376 IF(M12.EQ.47)THEN
7377 IF(iabs(LB(I1)).EQ.6)THEN
7378 LB(I1)=2
7379 E(I1)=AMN
7380 LB(I2)=12
7381 E(I2)=DM
7382 ELSE
7383 LB(I2)=2
7384 E(I2)=AMN
7385 LB(I1)=12
7386 E(I1)=DM
7387 ENDIF
7388 GO TO 207
7389 ENDIF
7390
7391 IF(M12.EQ.48)THEN
7392 IF(iabs(LB(I1)).EQ.7)THEN
7393 LB(I1)=2
7394 E(I1)=AMN
7395 LB(I2)=11
7396 E(I2)=DM
7397 ELSE
7398 LB(I2)=2
7399 E(I2)=AMN
7400 LB(I1)=11
7401 E(I1)=DM
7402 ENDIF
7403 GO TO 207
7404 ENDIF
7405
7406 IF(M12.EQ.49)THEN
7407 IF(iabs(LB(I1)).EQ.7)THEN
7408 LB(I1)=2
7409 E(I1)=AMN
7410 LB(I2)=12
7411 E(I2)=DM
7412 ELSE
7413 LB(I2)=2
7414 E(I2)=AMN
7415 LB(I1)=12
7416 E(I1)=DM
7417 ENDIF
7418 GO TO 207
7419 ENDIF
7420
7421 IF(M12.EQ.50)THEN
7422 IF(iabs(LB(I1)).EQ.7)THEN
7423 LB(I1)=1
7424 E(I1)=AMP
7425 LB(I2)=10
7426 E(I2)=DM
7427 ELSE
7428 LB(I2)=1
7429 E(I2)=AMP
7430 LB(I1)=10
7431 E(I1)=DM
7432 ENDIF
7433 GO TO 207
7434 ENDIF
7435
7436 IF(M12.EQ.51)THEN
7437 IF(iabs(LB(I1)).EQ.7)THEN
7438 LB(I1)=2
7439 E(I1)=AMN
7440 LB(I2)=11
7441 E(I2)=DM
7442 ELSE
7443 LB(I2)=2
7444 E(I2)=AMN
7445 LB(I1)=11
7446 E(I1)=DM
7447 ENDIF
7448 GO TO 207
7449 ENDIF
7450
7451 IF(M12.EQ.52)THEN
7452 IF(iabs(LB(I1)).EQ.7)THEN
7453 LB(I1)=1
7454 E(I1)=AMP
7455 LB(I2)=12
7456 E(I2)=DM
7457 ELSE
7458 LB(I2)=1
7459 E(I2)=AMP
7460 LB(I1)=12
7461 E(I1)=DM
7462 ENDIF
7463 GO TO 207
7464 ENDIF
7465
7466 IF(M12.EQ.53)THEN
7467 IF(iabs(LB(I1)).EQ.7)THEN
7468 LB(I1)=2
7469 E(I1)=AMN
7470 LB(I2)=13
7471 E(I2)=DM
7472 ELSE
7473 LB(I2)=2
7474 E(I2)=AMN
7475 LB(I1)=13
7476 E(I1)=DM
7477 ENDIF
7478 GO TO 207
7479 ENDIF
7480
7481 IF(M12.EQ.54)THEN
7482 IF(iabs(LB(I1)).EQ.10)THEN
7483 LB(I1)=2
7484 E(I1)=AMN
7485 LB(I2)=13
7486 E(I2)=DM
7487 ELSE
7488 LB(I2)=2
7489 E(I2)=AMN
7490 LB(I1)=13
7491 E(I1)=DM
7492 ENDIF
7493 GO TO 207
7494 ENDIF
7495
7496 IF(M12.EQ.55)THEN
7497 IF(iabs(LB(I1)).EQ.10)THEN
7498 LB(I1)=1
7499 E(I1)=AMP
7500 LB(I2)=12
7501 E(I2)=DM
7502 ELSE
7503 LB(I2)=1
7504 E(I2)=AMP
7505 LB(I1)=12
7506 E(I1)=DM
7507 ENDIF
7508 GO TO 207
7509 ENDIF
7510
7511 IF(M12.EQ.56)THEN
7512 IF(iabs(LB(I1)).EQ.11)THEN
7513 LB(I1)=2
7514 E(I1)=AMN
7515 LB(I2)=13
7516 E(I2)=DM
7517 ELSE
7518 LB(I2)=2
7519 E(I2)=AMN
7520 LB(I1)=13
7521 E(I1)=DM
7522 ENDIF
7523 GO TO 207
7524 ENDIF
7525
7526 IF(M12.EQ.57)THEN
7527 IF(iabs(LB(I1)).EQ.11)THEN
7528 LB(I1)=1
7529 E(I1)=AMP
7530 LB(I2)=12
7531 E(I2)=DM
7532 ELSE
7533 LB(I2)=1
7534 E(I2)=AMP
7535 LB(I1)=12
7536 E(I1)=DM
7537 ENDIF
7538 ENDIF
7539 GO TO 207
7540
7541
7542
7543 206 IF(M12.EQ.1)THEN
7544 IF(iabs(LB(I1)).EQ.8)THEN
7545 LB(I2)=2
7546 LB(I1)=1
7547 E(I1)=AMP
7548 ELSE
7549 LB(I1)=2
7550 LB(I2)=1
7551 E(I2)=AMP
7552 ENDIF
7553 GO TO 207
7554 ENDIF
7555
7556 IF(M12.EQ.2)THEN
7557 IF(iabs(LB(I1)).EQ.7)THEN
7558 LB(I2)=1
7559 LB(I1)=2
7560 E(I1)=AMN
7561 ELSE
7562 LB(I1)=1
7563 LB(I2)=2
7564 E(I2)=AMN
7565 ENDIF
7566 GO TO 207
7567 ENDIF
7568
7569 IF(M12.EQ.3)THEN
7570 LB(I1)=1
7571 LB(I2)=1
7572 E(I1)=AMP
7573 E(I2)=AMP
7574 GO TO 207
7575 ENDIF
7576
7577 IF(M12.EQ.4)THEN
7578 LB(I1)=1
7579 LB(I2)=1
7580 E(I1)=AMP
7581 E(I2)=AMP
7582 GO TO 207
7583 ENDIF
7584
7585 IF(M12.EQ.5)THEN
7586 LB(I1)=2
7587 LB(I2)=2
7588 E(I1)=AMN
7589 E(I2)=AMN
7590 GO TO 207
7591 ENDIF
7592
7593 IF(M12.EQ.6)THEN
7594 LB(I1)=2
7595 LB(I2)=2
7596 E(I1)=AMN
7597 E(I2)=AMN
7598 GO TO 207
7599 ENDIF
7600
7601 IF(M12.EQ.7)THEN
7602 IF(iabs(LB(I1)).EQ.1)THEN
7603 LB(I1)=1
7604 LB(I2)=2
7605 E(I1)=AMP
7606 E(I2)=AMN
7607 ELSE
7608 LB(I1)=2
7609 LB(I2)=1
7610 E(I1)=AMN
7611 E(I2)=AMP
7612 ENDIF
7613 GO TO 207
7614 ENDIF
7615
7616 IF(M12.EQ.8)THEN
7617 IF(iabs(LB(I1)).EQ.2)THEN
7618 LB(I1)=2
7619 LB(I2)=1
7620 E(I1)=AMN
7621 E(I2)=AMP
7622 ELSE
7623 LB(I1)=1
7624 LB(I2)=2
7625 E(I1)=AMP
7626 E(I2)=AMN
7627 ENDIF
7628 GO TO 207
7629 ENDIF
7630
7631
7632
7633 IF(M12.EQ.9)THEN
7634 LB(I1)=1
7635 LB(I2)=1
7636 E(I1)=AMP
7637 E(I2)=AMP
7638 GO TO 207
7639 ENDIF
7640
7641 IF(M12.EQ.12)THEN
7642 LB(I1)=2
7643 LB(I2)=1
7644 E(I1)=AMN
7645 E(I2)=AMP
7646 GO TO 207
7647 ENDIF
7648
7649 IF(M12.EQ.11)THEN
7650 LB(I1)=2
7651 LB(I2)=1
7652 E(I1)=AMN
7653 E(I2)=AMP
7654 GO TO 207
7655 ENDIF
7656
7657
7658
7659 IF(M12.EQ.12)THEN
7660 LB(I1)=1
7661 LB(I2)=2
7662 E(I1)=AMP
7663 E(I2)=AMN
7664 ENDIF
7665
7666 207 PR = PRF
7667 C1 = 1.0 - 2.0 * RANART(NSEED)
7668 if(srt.le.2.14)C1= 1.0 - 2.0 * RANART(NSEED)
7669 if(srt.gt.2.14.and.srt.le.2.4)c1=ang(srt,iseed)
7670 if(srt.gt.2.4)then
7671
7672
7673 xptr=0.33*pr
7674
7675 cc1=ptr(xptr,iseed)
7676
7677
7678
7679 scheck=pr**2-cc1**2
7680 if(scheck.lt.0) then
7681 write(99,*) 'scheck4: ', scheck
7682 scheck=0.
7683 endif
7684 c1=sqrt(scheck)/pr
7685
7686
7687 endif
7688 T1 = 2.0 * PI * RANART(NSEED)
7689 IBLOCK=3
7690 ENDIF
7691 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
7692 lb(i1) = -lb(i1)
7693 lb(i2) = -lb(i2)
7694 endif
7695
7696
7697
7698 107 IF(PX .EQ. 0.0 .AND. PY .EQ. 0.0) THEN
7699 T2 = 0.0
7700 ELSE
7701 T2=ATAN2(PY,PX)
7702 END IF
7703
7704
7705 scheck=1.0 - C1**2
7706 if(scheck.lt.0) then
7707 write(99,*) 'scheck5: ', scheck
7708 scheck=0.
7709 endif
7710 S1=SQRT(scheck)
7711
7712
7713
7714 scheck=1.0 - C2**2
7715 if(scheck.lt.0) then
7716 write(99,*) 'scheck6: ', scheck
7717 scheck=0.
7718 endif
7719 S2=SQRT(scheck)
7720
7721
7722 CT1 = COS(T1)
7723 ST1 = SIN(T1)
7724 CT2 = COS(T2)
7725 ST2 = SIN(T2)
7726 PZ = PR * ( C1*C2 - S1*S2*CT1 )
7727 SS = C2 * S1 * CT1 + S2 * C1
7728 PX = PR * ( SS*CT2 - S1*ST1*ST2 )
7729 PY = PR * ( SS*ST2 + S1*ST1*CT2 )
7730 RETURN
7731
7732
7733 306 CONTINUE
7734
7735 if(XSK5/sigK.gt.RANART(NSEED))then
7736 pz1=p(3,i1)
7737 pz2=p(3,i2)
7738 LB(I1) = 1 + int(2 * RANART(NSEED))
7739 LB(I2) = 1 + int(2 * RANART(NSEED))
7740 nnn=nnn+1
7741 LPION(NNN,IRUN)=29
7742 EPION(NNN,IRUN)=APHI
7743 iblock = 222
7744 GO TO 208
7745 ENDIF
7746
7747 IBLOCK=11
7748 if(ianti .eq. 1)iblock=-11
7749
7750 pz1=p(3,i1)
7751 pz2=p(3,i2)
7752
7753 nnn=nnn+1
7754 LPION(NNN,IRUN)=23
7755 EPION(NNN,IRUN)=Aka
7756 if(srt.le.2.63)then
7757
7758
7759 ic=1
7760
7761 LB(I1) = 1 + int(2 * RANART(NSEED))
7762 LB(I2)=14
7763 GO TO 208
7764 ENDIF
7765 if(srt.le.2.74.and.srt.gt.2.63)then
7766
7767 if(XSK1/(XSK1+XSK2).gt.RANART(NSEED))then
7768
7769 ic=1
7770
7771 LB(I1) = 1 + int(2 * RANART(NSEED))
7772 LB(I2)=14
7773 else
7774
7775
7776 LB(I1) = 1 + int(2 * RANART(NSEED))
7777 LB(I2) = 15 + int(3 * RANART(NSEED))
7778 ic=2
7779 endif
7780 GO TO 208
7781 endif
7782 if(srt.le.2.77.and.srt.gt.2.74)then
7783
7784 if(xsk1/(xsk1+xsk2+xsk3).
7785 1 gt.RANART(NSEED))then
7786
7787 ic=1
7788
7789 LB(I1) = 1 + int(2 * RANART(NSEED))
7790 LB(I2)=14
7791 go to 208
7792 else
7793 if(xsk2/(xsk2+xsk3).gt.RANART(NSEED))then
7794
7795 ic=2
7796
7797 LB(I1) = 1 + int(2 * RANART(NSEED))
7798 LB(I2) = 15 + int(3 * RANART(NSEED))
7799
7800 else
7801
7802 ic=3
7803
7804 LB(I1) = 6 + int(4 * RANART(NSEED))
7805 lb(i2)=14
7806 endif
7807 GO TO 208
7808 endif
7809 endif
7810 if(srt.gt.2.77)then
7811
7812 if(xsk1/(xsk1+xsk2+xsk3+xsk4).gt.RANART(NSEED))then
7813
7814 ic=1
7815
7816 LB(I1) = 1 + int(2 * RANART(NSEED))
7817 LB(I2)=14
7818 go to 208
7819 else
7820 if(xsk3/(xsk2+xsk3+xsk4).gt.RANART(NSEED))then
7821
7822 ic=3
7823
7824 LB(I1) = 6 + int(4 * RANART(NSEED))
7825 lb(i2)=14
7826 go to 208
7827 else
7828 if(xsk2/(xsk2+xsk4).gt.RANART(NSEED))then
7829
7830
7831 LB(I1) = 1 + int(2 * RANART(NSEED))
7832 LB(I2) = 15 + int(3 * RANART(NSEED))
7833
7834 ic=2
7835 else
7836 ic=4
7837
7838 LB(I1) = 6 + int(4 * RANART(NSEED))
7839 LB(I2) = 15 + int(3 * RANART(NSEED))
7840
7841 endif
7842 go to 208
7843 endif
7844 endif
7845 endif
7846 208 continue
7847 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
7848 lb(i1) = - lb(i1)
7849 lb(i2) = - lb(i2)
7850 if(LPION(NNN,IRUN) .eq. 23)LPION(NNN,IRUN)=21
7851 endif
7852 lbi1=lb(i1)
7853 lbi2=lb(i2)
7854
7855 NTRY1=0
7856 128 CALL BBKAON(ic,SRT,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
7857 & PPX,PPY,PPZ,icou1)
7858 NTRY1=NTRY1+1
7859 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 128
7860
7861
7862 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
7863 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
7864 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
7865
7866
7867
7868
7869 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
7870 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
7871 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
7872 Pt1i1 = BETAX * TRANSF + PX3
7873 Pt2i1 = BETAY * TRANSF + PY3
7874 Pt3i1 = BETAZ * TRANSF + PZ3
7875 Eti1 = DM3
7876
7877 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
7878 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
7879 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
7880 Pt1I2 = BETAX * TRANSF + PX4
7881 Pt2I2 = BETAY * TRANSF + PY4
7882 Pt3I2 = BETAZ * TRANSF + PZ4
7883 EtI2 = DM4
7884
7885 EPCM=SQRT(aka**2+PPX**2+PPY**2+PPZ**2)
7886 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
7887 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
7888 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
7889 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
7890 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
7891
7892 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
7893
7894
7895
7896
7897
7898
7899
7900
7901 RPION(1,NNN,IRUN)=R(1,I1)
7902 RPION(2,NNN,IRUN)=R(2,I1)
7903 RPION(3,NNN,IRUN)=R(3,I1)
7904
7905
7906
7907
7908 p(1,i1)=pt1i1
7909 p(2,i1)=pt2i1
7910 p(3,i1)=pt3i1
7911 e(i1)=eti1
7912 lb(i1)=lbi1
7913 p(1,i2)=pt1i2
7914 p(2,i2)=pt2i2
7915 p(3,i2)=pt3i2
7916 e(i2)=eti2
7917 lb(i2)=lbi2
7918 PX1 = P(1,I1)
7919 PY1 = P(2,I1)
7920 PZ1 = P(3,I1)
7921 EM1 = E(I1)
7922 ID(I1) = 2
7923 ID(I2) = 2
7924 ID1 = ID(I1)
7925 if(LPION(NNN,IRUN) .ne. 29) IBLOCK=11
7926 LB1=LB(I1)
7927 LB2=LB(I2)
7928 AM1=EM1
7929 am2=em2
7930 E1= SQRT( EM1**2 + PX1**2 + PY1**2 + PZ1**2 )
7931 RETURN
7932
7933
7934
7935 108 CONTINUE
7936 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
7937
7938 ndloop=npertd
7939 elseif(idpert.eq.2.and.npertd.ge.1) then
7940
7941
7942
7943 ndloop=npertd+1
7944 else
7945
7946 ndloop=1
7947 endif
7948
7949 dprob1=sdprod/sig/float(npertd)
7950 do idloop=1,ndloop
7951 CALL bbdangle(pxd,pyd,pzd,nt,ipert1,ianti,idloop,pfinal,
7952 1 dprob1,lbm)
7953 CALL ROTATE(PX,PY,PZ,PXd,PYd,PZd)
7954
7955
7956
7957 xmass=xmd
7958 E1dCM=SQRT(xmass**2+PXd**2+PYd**2+PZd**2)
7959 P1dBETA=PXd*BETAX+PYd*BETAY+PZd*BETAZ
7960 TRANSF=GAMMA*(GAMMA*P1dBETA/(GAMMA+1.)+E1dCM)
7961 pxi1=BETAX*TRANSF+PXd
7962 pyi1=BETAY*TRANSF+PYd
7963 pzi1=BETAZ*TRANSF+PZd
7964 if(ianti.eq.0)then
7965 lbd=42
7966 else
7967 lbd=-42
7968 endif
7969 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
7970
7971 nnn=nnn+1
7972 PPION(1,NNN,IRUN)=pxi1
7973 PPION(2,NNN,IRUN)=pyi1
7974 PPION(3,NNN,IRUN)=pzi1
7975 EPION(NNN,IRUN)=xmd
7976 LPION(NNN,IRUN)=lbd
7977 RPION(1,NNN,IRUN)=R(1,I1)
7978 RPION(2,NNN,IRUN)=R(2,I1)
7979 RPION(3,NNN,IRUN)=R(3,I1)
7980
7981 dppion(NNN,IRUN)=sdprod/sig/float(npertd)
7982 elseif(idpert.eq.2.and.idloop.le.npertd) then
7983
7984
7985
7986 ppd(1,idloop)=pxi1
7987 ppd(2,idloop)=pyi1
7988 ppd(3,idloop)=pzi1
7989 lbpd(idloop)=lbd
7990 else
7991
7992
7993 E(i1)=xmm
7994 E2piCM=SQRT(xmm**2+PXd**2+PYd**2+PZd**2)
7995 P2piBETA=-PXd*BETAX-PYd*BETAY-PZd*BETAZ
7996 TRANSF=GAMMA*(GAMMA*P2piBETA/(GAMMA+1.)+E2piCM)
7997 pxi2=BETAX*TRANSF-PXd
7998 pyi2=BETAY*TRANSF-PYd
7999 pzi2=BETAZ*TRANSF-PZd
8000 p(1,i1)=pxi2
8001 p(2,i1)=pyi2
8002 p(3,i1)=pzi2
8003
8004
8005
8006
8007 LB(I1)=lbm
8008 PX1=P(1,I1)
8009 PY1=P(2,I1)
8010 PZ1=P(3,I1)
8011 EM1=E(I1)
8012 ID(I1)=2
8013 ID1=ID(I1)
8014 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
8015 lb1=lb(i1)
8016
8017 p(1,i2)=pxi1
8018 p(2,i2)=pyi1
8019 p(3,i2)=pzi1
8020 lb(i2)=lbd
8021 lb2=lb(i2)
8022 E(i2)=xmd
8023 EtI2=E(I2)
8024 ID(I2)=2
8025
8026 if(idpert.eq.2.and.idloop.eq.ndloop) then
8027 do ipertd=1,npertd
8028 nnn=nnn+1
8029 PPION(1,NNN,IRUN)=ppd(1,ipertd)
8030 PPION(2,NNN,IRUN)=ppd(2,ipertd)
8031 PPION(3,NNN,IRUN)=ppd(3,ipertd)
8032 EPION(NNN,IRUN)=xmd
8033 LPION(NNN,IRUN)=lbpd(ipertd)
8034 RPION(1,NNN,IRUN)=R(1,I1)
8035 RPION(2,NNN,IRUN)=R(2,I1)
8036 RPION(3,NNN,IRUN)=R(3,I1)
8037
8038 dppion(NNN,IRUN)=1./float(npertd)
8039 enddo
8040 endif
8041 endif
8042 enddo
8043 IBLOCK=501
8044 return
8045
8046
8047 END
8048
8049
8050
8051 SUBROUTINE CRDD(IRUN,PX,PY,PZ,SRT,I1,I2,IBLOCK,
8052 1NTAG,SIGNN,SIG,NT,ipert1)
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
8126 1 AMP=0.93828,AP1=0.13496,AKA=0.498,APHI=1.020,
8127 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
8128 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
8129 parameter (xmd=1.8756,npdmax=10000)
8130 COMMON /AA/ R(3,MAXSTR)
8131
8132 COMMON /BB/ P(3,MAXSTR)
8133
8134 COMMON /CC/ E(MAXSTR)
8135
8136 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
8137
8138 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
8139
8140 common /gg/ dx,dy,dz,dpx,dpy,dpz
8141
8142 COMMON /INPUT/ NSTAR,NDIRCT,DIR
8143
8144 COMMON /NN/NNN
8145
8146 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
8147
8148 COMMON /RUN/NUM
8149
8150 COMMON /PA/RPION(3,MAXSTR,MAXR)
8151
8152 COMMON /PB/PPION(3,MAXSTR,MAXR)
8153
8154 COMMON /PC/EPION(MAXSTR,MAXR)
8155
8156 COMMON /PD/LPION(MAXSTR,MAXR)
8157
8158 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
8159
8160 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
8161 1 px1n,py1n,pz1n,dp1n
8162
8163 COMMON/RNDF77/NSEED
8164
8165 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
8166 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
8167 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
8168 common /dpi/em2,lb2
8169 common /para8/ idpert,npertd,idxsec
8170 dimension ppd(3,npdmax),lbpd(npdmax)
8171 SAVE
8172
8173 n12=0
8174 m12=0
8175 IBLOCK=0
8176 NTAG=0
8177 EM1=E(I1)
8178 EM2=E(I2)
8179 PR = SQRT( PX**2 + PY**2 + PZ**2 )
8180 C2 = PZ / PR
8181 IF(PX .EQ. 0.0 .AND. PY .EQ. 0.0) THEN
8182 T2 = 0.0
8183 ELSE
8184 T2=ATAN2(PY,PX)
8185 END IF
8186 X1 = RANART(NSEED)
8187 ianti=0
8188 if(lb(i1).lt.0 .and. lb(i2).lt.0)ianti=1
8189
8190
8191 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
8192 if(idpert.eq.1.and.ipert1.eq.1) then
8193 IF (SRT .LT. 2.012) RETURN
8194 if((iabs(lb(i1)).ge.6.and.iabs(lb(i1)).le.13)
8195 1 .and.(iabs(lb(i2)).ge.6.and.iabs(lb(i2)).le.13)) then
8196 goto 108
8197 else
8198 return
8199 endif
8200 endif
8201
8202
8203
8204
8205 IF (X1 .LE. SIGNN/SIG) THEN
8206
8207 AS = ( 3.65 * (SRT - 1.8766) )**6
8208 A = 6.0 * AS / (1.0 + AS)
8209 TA = -2.0 * PR**2
8210 X = RANART(NSEED)
8211
8212 T1 = sngl(DLOG(dble(1.-X)*DEXP(dble(A)*dble(TA))+dble(X)))/ A
8213 C1 = 1.0 - T1/TA
8214 T1 = 2.0 * PI * RANART(NSEED)
8215 IBLOCK=20
8216 GO TO 107
8217 ELSE
8218
8219
8220
8221 IF (SRT .LT. 2.15) RETURN
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231 call N1535(iabs(lb(i1)),iabs(lb(i2)),srt,X1535)
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241 akp=0.498
8242 ak0=0.498
8243 ana=0.938
8244 ada=1.232
8245 al=1.1157
8246 as=1.1197
8247 xsk1=0
8248 xsk2=0
8249 xsk3=0
8250 xsk4=0
8251 xsk5=0
8252 t1nlk=ana+al+akp
8253 if(srt.le.t1nlk)go to 222
8254 XSK1=1.5*PPLPK(SRT)
8255
8256 t1dlk=ada+al+akp
8257 t2dlk=ada+al-akp
8258 if(srt.le.t1dlk)go to 222
8259 es=srt
8260 pmdlk2=(es**2-t1dlk**2)*(es**2-t2dlk**2)/(4.*es**2)
8261 pmdlk=sqrt(pmdlk2)
8262 XSK3=1.5*PPLPK(srt)
8263
8264 t1nsk=ana+as+akp
8265 t2nsk=ana+as-akp
8266 if(srt.le.t1nsk)go to 222
8267 pmnsk2=(es**2-t1nsk**2)*(es**2-t2nsk**2)/(4.*es**2)
8268 pmnsk=sqrt(pmnsk2)
8269 XSK2=1.5*(PPK1(srt)+PPK0(srt))
8270
8271 t1DSk=aDa+aS+akp
8272 t2DSk=aDa+aS-akp
8273 if(srt.le.t1dsk)go to 222
8274 pmDSk2=(es**2-t1DSk**2)*(es**2-t2DSk**2)/(4.*es**2)
8275 pmDSk=sqrt(pmDSk2)
8276 XSK4=1.5*(PPK1(srt)+PPK0(srt))
8277
8278
8279 if(srt.le.(2.*amn+aphi))go to 222
8280
8281 xsk5 = 0.0001
8282
8283
8284 222 SIGK=XSK1+XSK2+XSK3+XSK4
8285
8286
8287 XSK1 = 2.0 * XSK1
8288 XSK2 = 2.0 * XSK2
8289 XSK3 = 2.0 * XSK3
8290 XSK4 = 2.0 * XSK4
8291 SIGK = 2.0 * SIGK + xsk5
8292
8293
8294
8295
8296 s2d=reab2d(i1,i2,srt)
8297
8298
8299 S2D = 0.
8300
8301
8302
8303
8304 if(((iabs(lb(i1)).ge.12).and.(iabs(lb(i2)).ge.12)).OR.
8305 & ((iabs(lb(i1)).ge.12).and.(iabs(lb(i2)).ge.6)).OR.
8306 & ((iabs(lb(i2)).ge.12).and.(iabs(lb(i1)).ge.6)))THEN
8307 signd=sigk+s2d
8308
8309 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
8310
8311 if(x1.gt.(signd+signn+sdprod)/sig)return
8312
8313
8314
8315
8316 IF((SIGK+sdprod)/SIG.GE.RANART(NSEED))GO TO 306
8317
8318
8319 go to 1012
8320 ENDIF
8321 IDD=iabs(LB(I1)*LB(I2))
8322
8323 IF((IDD.EQ.63).OR.(IDD.EQ.64).OR.(IDD.EQ.48).
8324 1 OR.(IDD.EQ.49).OR.(IDD.EQ.11*11).OR.(IDD.EQ.10*10).
8325 2 OR.(IDD.EQ.88).OR.(IDD.EQ.66).
8326 3 OR.(IDD.EQ.90).OR.(IDD.EQ.70))THEN
8327 SIGND=X1535+SIGK+s2d
8328
8329 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
8330
8331 IF (X1.GT.(SIGNN+SIGND+sdprod)/SIG)RETURN
8332
8333
8334 IF(SIGK/SIGND.GT.RANART(NSEED))GO TO 306
8335
8336 if(s2d/(x1535+s2d).gt.RANART(NSEED))go to 1012
8337
8338 IF(IDD.EQ.63)N12=17
8339 IF(IDD.EQ.64)N12=20
8340 IF(IDD.EQ.48)N12=23
8341 IF(IDD.EQ.49)N12=24
8342 IF(IDD.EQ.121)N12=25
8343 IF(IDD.EQ.100)N12=26
8344 IF(IDD.EQ.88)N12=29
8345 IF(IDD.EQ.66)N12=31
8346 IF(IDD.EQ.90)N12=32
8347 IF(IDD.EQ.70)N12=35
8348 GO TO 1011
8349 ENDIF
8350
8351
8352
8353 IF((IDD.EQ.110).OR.(IDD.EQ.77).OR.(IDD.EQ.80))THEN
8354
8355 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
8356
8357 IF(X1.GT.(SIGNN+X1535+SIGK+s2d+sdprod)/SIG)RETURN
8358
8359 IF(SIGK/(X1535+SIGK+s2d).GT.RANART(NSEED))GO TO 306
8360 if(s2d/(x1535+s2d).gt.RANART(NSEED))go to 1012
8361 IF(IDD.EQ.77)N12=30
8362 IF((IDD.EQ.77).AND.(RANART(NSEED).LE.0.5))N12=36
8363 IF(IDD.EQ.80)N12=34
8364 IF((IDD.EQ.80).AND.(RANART(NSEED).LE.0.5))N12=35
8365 IF(IDD.EQ.110)N12=27
8366 IF((IDD.EQ.110).AND.(RANART(NSEED).LE.0.5))N12=28
8367 GO TO 1011
8368 ENDIF
8369 IF((IDD.EQ.54).OR.(IDD.EQ.56))THEN
8370
8371
8372 SIG2=(3./4.)*SIGMA(SRT,2,0,1)
8373 SIGND=2.*(SIG2+X1535)+SIGK+s2d
8374
8375 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
8376
8377 IF(X1.GT.(SIGNN+SIGND+sdprod)/SIG)RETURN
8378
8379 IF(SIGK/SIGND.GT.RANART(NSEED))GO TO 306
8380 if(s2d/(2.*(sig2+x1535)+s2d).gt.RANART(NSEED))go to 1012
8381 IF(RANART(NSEED).LT.X1535/(SIG2+X1535))THEN
8382
8383 IF(IDD.EQ.54)N12=18
8384 IF((IDD.EQ.54).AND.(RANART(NSEED).LE.0.5))N12=19
8385 IF(IDD.EQ.56)N12=21
8386 IF((IDD.EQ.56).AND.(RANART(NSEED).LE.0.5))N12=22
8387 ELSE
8388
8389 IF(IDD.EQ.54)N12=13
8390 IF((IDD.EQ.54).AND.(RANART(NSEED).LE.0.5))N12=14
8391 IF(IDD.EQ.56)N12=15
8392 IF((IDD.EQ.56).AND.(RANART(NSEED).LE.0.5))N12=16
8393 ENDIF
8394 ENDIF
8395 1011 CONTINUE
8396 iblock=5
8397
8398
8399
8400
8401
8402 DMAX = SRT - AVMASS-0.005
8403 DMIN = 1.078
8404 IF((n12.ge.13).and.(n12.le.16))then
8405
8406 IF(DMAX.LT.1.44) THEN
8407 FM=FNS(DMAX,SRT,0.)
8408 ELSE
8409
8410
8411 xdmass=1.44
8412
8413 FM=FNS(xdmass,SRT,1.)
8414
8415
8416 ENDIF
8417 IF(FM.EQ.0.)FM=1.E-09
8418 NTRY2=0
8419 11 DM=RANART(NSEED)*(DMAX-DMIN)+DMIN
8420 NTRY2=NTRY2+1
8421 IF((RANART(NSEED).GT.FNS(DM,SRT,1.)/FM).AND.
8422 1 (NTRY2.LE.10)) GO TO 11
8423
8424
8425
8426 if(dm.gt.2.14) goto 11
8427
8428 GO TO 13
8429 ENDIF
8430 IF((n12.ge.17).AND.(N12.LE.36))then
8431
8432 IF(DMAX.LT.1.535) THEN
8433 FM=FD5(DMAX,SRT,0.)
8434 ELSE
8435
8436
8437 xdmass=1.535
8438
8439 FM=FD5(xdmass,SRT,1.)
8440
8441
8442 ENDIF
8443 IF(FM.EQ.0.)FM=1.E-09
8444 NTRY1=0
8445 12 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
8446 NTRY1=NTRY1+1
8447 IF((RANART(NSEED) .GT. FD5(DM,SRT,1.)/FM).AND.
8448 1 (NTRY1.LE.10)) GOTO 12
8449
8450
8451
8452 if(dm.gt.1.84) goto 12
8453
8454 ENDIF
8455 13 CONTINUE
8456
8457
8458
8459 IF(N12.EQ.13)THEN
8460 IF(RANART(NSEED).LE.0.5)THEN
8461 LB(I2)=11
8462 E(I2)=DM
8463 LB(I1)=2
8464 E(I1)=AMN
8465 ELSE
8466 LB(I1)=11
8467 E(I1)=DM
8468 LB(I2)=2
8469 E(I2)=AMN
8470 ENDIF
8471 go to 200
8472 ENDIF
8473
8474 IF(N12.EQ.14)THEN
8475 IF(RANART(NSEED).LE.0.5)THEN
8476 LB(I2)=10
8477 E(I2)=DM
8478 LB(I1)=1
8479 E(I1)=AMP
8480 ELSE
8481 LB(I1)=10
8482 E(I1)=DM
8483 LB(I2)=1
8484 E(I2)=AMP
8485 ENDIF
8486 go to 200
8487 ENDIF
8488
8489 IF(N12.EQ.15)THEN
8490 IF(RANART(NSEED).LE.0.5)THEN
8491 LB(I2)=11
8492 E(I2)=DM
8493 LB(I1)=2
8494 E(I1)=AMN
8495 ELSE
8496 LB(I1)=11
8497 E(I1)=DM
8498 LB(I2)=2
8499 E(I2)=AMN
8500 ENDIF
8501 go to 200
8502 ENDIF
8503
8504 IF(N12.EQ.16)THEN
8505 IF(RANART(NSEED).LE.0.5)THEN
8506 LB(I2)=10
8507 E(I2)=DM
8508 LB(I1)=1
8509 E(I1)=AMP
8510 ELSE
8511 LB(I1)=10
8512 E(I1)=DM
8513 LB(I2)=1
8514 E(I2)=AMP
8515 ENDIF
8516 go to 200
8517 ENDIF
8518
8519 IF(N12.EQ.17)THEN
8520 LB(I2)=13
8521 E(I2)=DM
8522 LB(I1)=1
8523 E(I1)=AMP
8524 go to 200
8525 ENDIF
8526
8527 IF(N12.EQ.18)THEN
8528 IF(RANART(NSEED).LE.0.5)THEN
8529 LB(I2)=12
8530 E(I2)=DM
8531 LB(I1)=1
8532 E(I1)=AMP
8533 ELSE
8534 LB(I1)=12
8535 E(I1)=DM
8536 LB(I2)=1
8537 E(I2)=AMP
8538 ENDIF
8539 go to 200
8540 ENDIF
8541
8542 IF(N12.EQ.19)THEN
8543 IF(RANART(NSEED).LE.0.5)THEN
8544 LB(I2)=13
8545 E(I2)=DM
8546 LB(I1)=2
8547 E(I1)=AMN
8548 ELSE
8549 LB(I1)=13
8550 E(I1)=DM
8551 LB(I2)=2
8552 E(I2)=AMN
8553 ENDIF
8554 go to 200
8555 ENDIF
8556
8557 IF(N12.EQ.20)THEN
8558 IF(RANART(NSEED).LE.0.5)THEN
8559 LB(I2)=13
8560 E(I2)=DM
8561 LB(I1)=1
8562 E(I1)=AMP
8563 ELSE
8564 LB(I1)=13
8565 E(I1)=DM
8566 LB(I2)=1
8567 E(I2)=AMP
8568 ENDIF
8569 go to 200
8570 ENDIF
8571
8572 IF(N12.EQ.21)THEN
8573 IF(RANART(NSEED).LE.0.5)THEN
8574 LB(I2)=13
8575 E(I2)=DM
8576 LB(I1)=2
8577 E(I1)=AMN
8578 ELSE
8579 LB(I1)=13
8580 E(I1)=DM
8581 LB(I2)=2
8582 E(I2)=AMN
8583 ENDIF
8584 go to 200
8585 ENDIF
8586
8587 IF(N12.EQ.22)THEN
8588 IF(RANART(NSEED).LE.0.5)THEN
8589 LB(I2)=12
8590 E(I2)=DM
8591 LB(I1)=1
8592 E(I1)=AMP
8593 ELSE
8594 LB(I1)=12
8595 E(I1)=DM
8596 LB(I2)=1
8597 E(I2)=AMP
8598 ENDIF
8599 go to 200
8600 ENDIF
8601
8602 IF(N12.EQ.23)THEN
8603 IF(RANART(NSEED).LE.0.5)THEN
8604 LB(I2)=12
8605 E(I2)=DM
8606 LB(I1)=2
8607 E(I1)=AMN
8608 ELSE
8609 LB(I1)=12
8610 E(I1)=DM
8611 LB(I2)=2
8612 E(I2)=AMN
8613 ENDIF
8614 go to 200
8615 ENDIF
8616
8617 IF(N12.EQ.24)THEN
8618 LB(I2)=12
8619 E(I2)=DM
8620 LB(I1)=2
8621 E(I1)=AMN
8622 go to 200
8623 ENDIF
8624
8625 IF(N12.EQ.25)THEN
8626 LB(I2)=12
8627 E(I2)=DM
8628 LB(I1)=1
8629 E(I1)=AMP
8630 go to 200
8631 ENDIF
8632
8633 IF(N12.EQ.26)THEN
8634 LB(I2)=12
8635 E(I2)=DM
8636 LB(I1)=2
8637 E(I1)=AMN
8638 go to 200
8639 ENDIF
8640
8641 IF(N12.EQ.27)THEN
8642 IF(RANART(NSEED).LE.0.5)THEN
8643 LB(I2)=13
8644 E(I2)=DM
8645 LB(I1)=2
8646 E(I1)=AMN
8647 ELSE
8648 LB(I1)=13
8649 E(I1)=DM
8650 LB(I2)=2
8651 E(I2)=AMN
8652 ENDIF
8653 go to 200
8654 ENDIF
8655
8656 IF(N12.EQ.28)THEN
8657 IF(RANART(NSEED).LE.0.5)THEN
8658 LB(I2)=12
8659 E(I2)=DM
8660 LB(I1)=1
8661 E(I1)=AMP
8662 ELSE
8663 LB(I1)=12
8664 E(I1)=DM
8665 LB(I2)=1
8666 E(I2)=AMP
8667 ENDIF
8668 go to 200
8669 ENDIF
8670
8671 IF(N12.EQ.27)THEN
8672 IF(RANART(NSEED).LE.0.5)THEN
8673 LB(I2)=13
8674 E(I2)=DM
8675 LB(I1)=2
8676 E(I1)=AMN
8677 ELSE
8678 LB(I1)=13
8679 E(I1)=DM
8680 LB(I2)=2
8681 E(I2)=AMN
8682 ENDIF
8683 go to 200
8684 ENDIF
8685
8686 IF(N12.EQ.29)THEN
8687 IF(RANART(NSEED).LE.0.5)THEN
8688 LB(I2)=13
8689 E(I2)=DM
8690 LB(I1)=1
8691 E(I1)=AMP
8692 ELSE
8693 LB(I1)=13
8694 E(I1)=DM
8695 LB(I2)=1
8696 E(I2)=AMP
8697 ENDIF
8698 go to 200
8699 ENDIF
8700
8701 IF(N12.EQ.30)THEN
8702 IF(RANART(NSEED).LE.0.5)THEN
8703 LB(I2)=13
8704 E(I2)=DM
8705 LB(I1)=2
8706 E(I1)=AMN
8707 ELSE
8708 LB(I1)=13
8709 E(I1)=DM
8710 LB(I2)=2
8711 E(I2)=AMN
8712 ENDIF
8713 go to 200
8714 ENDIF
8715
8716 IF(N12.EQ.31)THEN
8717 IF(RANART(NSEED).LE.0.5)THEN
8718 LB(I2)=12
8719 E(I2)=DM
8720 LB(I1)=2
8721 E(I1)=AMN
8722 ELSE
8723 LB(I1)=12
8724 E(I1)=DM
8725 LB(I2)=2
8726 E(I2)=AMN
8727 ENDIF
8728 go to 200
8729 ENDIF
8730
8731 IF(N12.EQ.32)THEN
8732 IF(RANART(NSEED).LE.0.5)THEN
8733 LB(I2)=13
8734 E(I2)=DM
8735 LB(I1)=1
8736 E(I1)=AMP
8737 ELSE
8738 LB(I1)=13
8739 E(I1)=DM
8740 LB(I2)=1
8741 E(I2)=AMP
8742 ENDIF
8743 go to 200
8744 ENDIF
8745
8746 IF(N12.EQ.33)THEN
8747 IF(RANART(NSEED).LE.0.5)THEN
8748 LB(I2)=13
8749 E(I2)=DM
8750 LB(I1)=2
8751 E(I1)=AMN
8752 ELSE
8753 LB(I1)=13
8754 E(I1)=DM
8755 LB(I2)=2
8756 E(I2)=AMN
8757 ENDIF
8758 go to 200
8759 ENDIF
8760
8761 IF(N12.EQ.34)THEN
8762 IF(RANART(NSEED).LE.0.5)THEN
8763 LB(I2)=12
8764 E(I2)=DM
8765 LB(I1)=1
8766 E(I1)=AMP
8767 ELSE
8768 LB(I1)=12
8769 E(I1)=DM
8770 LB(I2)=1
8771 E(I2)=AMP
8772 ENDIF
8773 go to 200
8774 ENDIF
8775
8776 IF(N12.EQ.35)THEN
8777 IF(RANART(NSEED).LE.0.5)THEN
8778 LB(I2)=12
8779 E(I2)=DM
8780 LB(I1)=2
8781 E(I1)=AMN
8782 ELSE
8783 LB(I1)=12
8784 E(I1)=DM
8785 LB(I2)=2
8786 E(I2)=AMN
8787 ENDIF
8788 go to 200
8789 ENDIF
8790
8791 IF(N12.EQ.36)THEN
8792 IF(RANART(NSEED).LE.0.5)THEN
8793 LB(I2)=12
8794 E(I2)=DM
8795 LB(I1)=1
8796 E(I1)=AMP
8797 ELSE
8798 LB(I1)=12
8799 E(I1)=DM
8800 LB(I2)=1
8801 E(I2)=AMP
8802 ENDIF
8803 go to 200
8804 ENDIF
8805 1012 continue
8806 iblock=55
8807 lb1=lb(i1)
8808 lb2=lb(i2)
8809 ich=iabs(lb1*lb2)
8810
8811
8812
8813 IF(ich.EQ.9*6)THEN
8814 IF(RANART(NSEED).LE.0.5)THEN
8815 LB(I2)=1
8816 E(I2)=amp
8817 LB(I1)=2
8818 E(I1)=AMN
8819 ELSE
8820 LB(I1)=1
8821 E(I1)=amp
8822 LB(I2)=2
8823 E(I2)=AMN
8824 ENDIF
8825 go to 200
8826 ENDIF
8827
8828 IF(ich.EQ.8*7)THEN
8829 IF(RANART(NSEED).LE.0.5)THEN
8830 LB(I2)=1
8831 E(I2)=amp
8832 LB(I1)=2
8833 E(I1)=AMN
8834 ELSE
8835 LB(I1)=1
8836 E(I1)=amp
8837 LB(I2)=2
8838 E(I2)=AMN
8839 ENDIF
8840 go to 200
8841 ENDIF
8842
8843 IF(ich.EQ.9*7)THEN
8844 LB(I2)=1
8845 E(I2)=amp
8846 LB(I1)=1
8847 E(I1)=AMP
8848 go to 200
8849 ENDIF
8850
8851 IF(ich.EQ.8*8)THEN
8852 LB(I2)=1
8853 E(I2)=amp
8854 LB(I1)=1
8855 E(I1)=AMP
8856 go to 200
8857 ENDIF
8858
8859 IF(ich.EQ.8*6)THEN
8860 LB(I2)=2
8861 E(I2)=amn
8862 LB(I1)=2
8863 E(I1)=AMN
8864 go to 200
8865 ENDIF
8866
8867 IF(ich.EQ.6*6)THEN
8868 LB(I2)=2
8869 E(I2)=amn
8870 LB(I1)=2
8871 E(I1)=AMN
8872 go to 200
8873 ENDIF
8874
8875 IF(ich.EQ.11*11.or.ich.eq.13*13.or.ich.eq.11*13)THEN
8876 LB(I2)=1
8877 E(I2)=amp
8878 LB(I1)=1
8879 E(I1)=AMP
8880 go to 200
8881 ENDIF
8882
8883 IF(ich.EQ.10*10.or.ich.eq.12*12.or.ich.eq.10*12)THEN
8884 LB(I2)=2
8885 E(I2)=amn
8886 LB(I1)=2
8887 E(I1)=AMN
8888 go to 200
8889 ENDIF
8890
8891 IF(ich.EQ.10*11.or.ich.eq.12*13.or.ich.
8892 & eq.10*13.or.ich.eq.11*12)THEN
8893 IF(RANART(NSEED).LE.0.5)THEN
8894 LB(I2)=1
8895 E(I2)=amp
8896 LB(I1)=2
8897 E(I1)=AMN
8898 ELSE
8899 LB(I1)=1
8900 E(I1)=amp
8901 LB(I2)=2
8902 E(I2)=AMN
8903 ENDIF
8904 go to 200
8905 ENDIF
8906
8907 IF(ich.eq.11*8.or.ich.eq.13*8)THEN
8908 LB(I2)=1
8909 E(I2)=amp
8910 LB(I1)=1
8911 E(I1)=AMP
8912 go to 200
8913 ENDIF
8914
8915 IF(ich.EQ.11*7.or.ich.eq.13*7)THEN
8916 IF(RANART(NSEED).LE.0.5)THEN
8917 LB(I2)=1
8918 E(I2)=amp
8919 LB(I1)=2
8920 E(I1)=AMN
8921 ELSE
8922 LB(I1)=1
8923 E(I1)=amp
8924 LB(I2)=2
8925 E(I2)=AMN
8926 ENDIF
8927 go to 200
8928 ENDIF
8929
8930 IF(ich.EQ.11*6.or.ich.eq.13*6)THEN
8931 LB(I2)=2
8932 E(I2)=amn
8933 LB(I1)=2
8934 E(I1)=AMN
8935 go to 200
8936 ENDIF
8937
8938 IF(ich.EQ.10*9.or.ich.eq.12*9)THEN
8939 LB(I2)=1
8940 E(I2)=amp
8941 LB(I1)=1
8942 E(I1)=AMP
8943 go to 200
8944 ENDIF
8945
8946 IF(ich.EQ.10*7.or.ich.eq.12*7)THEN
8947 LB(I2)=2
8948 E(I2)=amn
8949 LB(I1)=2
8950 E(I1)=AMN
8951 go to 200
8952 ENDIF
8953
8954 IF(ich.EQ.10*8.or.ich.eq.12*8)THEN
8955 IF(RANART(NSEED).LE.0.5)THEN
8956 LB(I2)=2
8957 E(I2)=amn
8958 LB(I1)=1
8959 E(I1)=AMP
8960 ELSE
8961 LB(I1)=2
8962 E(I1)=amn
8963 LB(I2)=1
8964 E(I2)=AMP
8965 ENDIF
8966 go to 200
8967 ENDIF
8968 lb(i1)=1
8969 e(i1)=amp
8970 lb(i2)=2
8971 e(i2)=amn
8972
8973
8974
8975
8976 200 EM1=E(I1)
8977 EM2=E(I2)
8978 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
8979 1 - 4.0 * (EM1*EM2)**2
8980 IF(PR2.LE.0.)PR2=1.e-09
8981 PR=SQRT(PR2)/(2.*SRT)
8982 if(srt.le.2.14)C1= 1.0 - 2.0 * RANART(NSEED)
8983 if(srt.gt.2.14.and.srt.le.2.4)c1=ang(srt,iseed)
8984 if(srt.gt.2.4)then
8985
8986
8987 xptr=0.33*pr
8988
8989 cc1=ptr(xptr,iseed)
8990
8991
8992
8993 scheck=pr**2-cc1**2
8994 if(scheck.lt.0) then
8995 write(99,*) 'scheck7: ', scheck
8996 scheck=0.
8997 endif
8998 c1=sqrt(scheck)/pr
8999
9000
9001 endif
9002 T1 = 2.0 * PI * RANART(NSEED)
9003 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
9004 lb(i1) = -lb(i1)
9005 lb(i2) = -lb(i2)
9006 endif
9007 ENDIF
9008
9009
9010
9011 107 scheck=1.0 - C1**2
9012 if(scheck.lt.0) then
9013 write(99,*) 'scheck8: ', scheck
9014 scheck=0.
9015 endif
9016 S1=SQRT(scheck)
9017
9018
9019
9020 scheck=1.0 - C2**2
9021 if(scheck.lt.0) then
9022 write(99,*) 'scheck9: ', scheck
9023 scheck=0.
9024 endif
9025 S2=SQRT(scheck)
9026
9027
9028 CT1 = COS(T1)
9029 ST1 = SIN(T1)
9030 CT2 = COS(T2)
9031 ST2 = SIN(T2)
9032 PZ = PR * ( C1*C2 - S1*S2*CT1 )
9033 SS = C2 * S1 * CT1 + S2 * C1
9034 PX = PR * ( SS*CT2 - S1*ST1*ST2 )
9035 PY = PR * ( SS*ST2 + S1*ST1*CT2 )
9036 RETURN
9037
9038
9039 306 CONTINUE
9040
9041 if(XSK5/sigK.gt.RANART(NSEED))then
9042 pz1=p(3,i1)
9043 pz2=p(3,i2)
9044 LB(I1) = 1 + int(2 * RANART(NSEED))
9045 LB(I2) = 1 + int(2 * RANART(NSEED))
9046 nnn=nnn+1
9047 LPION(NNN,IRUN)=29
9048 EPION(NNN,IRUN)=APHI
9049 iblock = 222
9050 GO TO 208
9051 ENDIF
9052 iblock=10
9053 if(ianti .eq. 1)iblock=-10
9054 pz1=p(3,i1)
9055 pz2=p(3,i2)
9056
9057 nnn=nnn+1
9058 LPION(NNN,IRUN)=23
9059 EPION(NNN,IRUN)=Aka
9060 if(srt.le.2.63)then
9061
9062
9063 ic=1
9064 LB(I1) = 1 + int(2 * RANART(NSEED))
9065 LB(I2)=14
9066 GO TO 208
9067 ENDIF
9068 if(srt.le.2.74.and.srt.gt.2.63)then
9069
9070 if(XSK1/(XSK1+XSK2).gt.RANART(NSEED))then
9071
9072 ic=1
9073 LB(I1) = 1 + int(2 * RANART(NSEED))
9074 LB(I2)=14
9075 else
9076
9077 LB(I1) = 1 + int(2 * RANART(NSEED))
9078 LB(I2) = 15 + int(3 * RANART(NSEED))
9079 ic=2
9080 endif
9081 GO TO 208
9082 endif
9083 if(srt.le.2.77.and.srt.gt.2.74)then
9084
9085 if(xsk1/(xsk1+xsk2+xsk3).gt.RANART(NSEED))then
9086
9087 ic=1
9088 LB(I1) = 1 + int(2 * RANART(NSEED))
9089 LB(I2)=14
9090 go to 208
9091 else
9092 if(xsk2/(xsk2+xsk3).gt.RANART(NSEED))then
9093
9094 ic=2
9095 LB(I1) = 1 + int(2 * RANART(NSEED))
9096 LB(I2) = 15 + int(3 * RANART(NSEED))
9097 else
9098
9099 ic=3
9100 LB(I1) = 6 + int(4 * RANART(NSEED))
9101 lb(i2)=14
9102 endif
9103 GO TO 208
9104 endif
9105 endif
9106 if(srt.gt.2.77)then
9107
9108 if(xsk1/(xsk1+xsk2+xsk3+xsk4).gt.RANART(NSEED))then
9109
9110 ic=1
9111 LB(I1) = 1 + int(2 * RANART(NSEED))
9112 LB(I2)=14
9113 go to 208
9114 else
9115 if(xsk3/(xsk2+xsk3+xsk4).gt.RANART(NSEED))then
9116
9117 ic=3
9118 LB(I1) = 6 + int(4 * RANART(NSEED))
9119 lb(i2)=14
9120 go to 208
9121 else
9122 if(xsk2/(xsk2+xsk4).gt.RANART(NSEED))then
9123
9124 LB(I1) = 1 + int(2 * RANART(NSEED))
9125 LB(I2) = 15 + int(3 * RANART(NSEED))
9126 ic=2
9127 else
9128
9129 ic=4
9130 LB(I1) = 6 + int(4 * RANART(NSEED))
9131 LB(I2) = 15 + int(3 * RANART(NSEED))
9132 endif
9133 go to 208
9134 endif
9135 endif
9136 endif
9137 208 continue
9138 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
9139 lb(i1) = - lb(i1)
9140 lb(i2) = - lb(i2)
9141 if(LPION(NNN,IRUN) .eq. 23)LPION(NNN,IRUN)=21
9142 endif
9143 lbi1=lb(i1)
9144 lbi2=lb(i2)
9145
9146 NTRY1=0
9147 129 CALL BBKAON(ic,SRT,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
9148 & PPX,PPY,PPZ,icou1)
9149 NTRY1=NTRY1+1
9150 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 129
9151
9152
9153 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
9154 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
9155 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
9156
9157
9158
9159
9160 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
9161 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
9162 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
9163 Pt1i1 = BETAX * TRANSF + PX3
9164 Pt2i1 = BETAY * TRANSF + PY3
9165 Pt3i1 = BETAZ * TRANSF + PZ3
9166 Eti1 = DM3
9167
9168 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
9169 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
9170 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
9171 Pt1I2 = BETAX * TRANSF + PX4
9172 Pt2I2 = BETAY * TRANSF + PY4
9173 Pt3I2 = BETAZ * TRANSF + PZ4
9174 EtI2 = DM4
9175
9176 EPCM=SQRT(aka**2+PPX**2+PPY**2+PPZ**2)
9177 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
9178 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
9179 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
9180 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
9181 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
9182
9183 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
9184
9185
9186
9187
9188
9189
9190
9191
9192 RPION(1,NNN,IRUN)=R(1,I1)
9193 RPION(2,NNN,IRUN)=R(2,I1)
9194 RPION(3,NNN,IRUN)=R(3,I1)
9195
9196
9197
9198
9199 p(1,i1)=pt1i1
9200 p(2,i1)=pt2i1
9201 p(3,i1)=pt3i1
9202 e(i1)=eti1
9203 lb(i1)=lbi1
9204 p(1,i2)=pt1i2
9205 p(2,i2)=pt2i2
9206 p(3,i2)=pt3i2
9207 e(i2)=eti2
9208 lb(i2)=lbi2
9209 PX1 = P(1,I1)
9210 PY1 = P(2,I1)
9211 PZ1 = P(3,I1)
9212 EM1 = E(I1)
9213 ID(I1) = 2
9214 ID(I2) = 2
9215 ID1 = ID(I1)
9216 LB1=LB(I1)
9217 LB2=LB(I2)
9218 AM1=EM1
9219 am2=em2
9220 E1= SQRT( EM1**2 + PX1**2 + PY1**2 + PZ1**2 )
9221 RETURN
9222
9223
9224
9225 108 CONTINUE
9226 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
9227
9228 ndloop=npertd
9229 elseif(idpert.eq.2.and.npertd.ge.1) then
9230
9231
9232
9233 ndloop=npertd+1
9234 else
9235
9236 ndloop=1
9237 endif
9238
9239 dprob1=sdprod/sig/float(npertd)
9240 do idloop=1,ndloop
9241 CALL bbdangle(pxd,pyd,pzd,nt,ipert1,ianti,idloop,pfinal,
9242 1 dprob1,lbm)
9243 CALL ROTATE(PX,PY,PZ,PXd,PYd,PZd)
9244
9245
9246
9247 xmass=xmd
9248 E1dCM=SQRT(xmass**2+PXd**2+PYd**2+PZd**2)
9249 P1dBETA=PXd*BETAX+PYd*BETAY+PZd*BETAZ
9250 TRANSF=GAMMA*(GAMMA*P1dBETA/(GAMMA+1.)+E1dCM)
9251 pxi1=BETAX*TRANSF+PXd
9252 pyi1=BETAY*TRANSF+PYd
9253 pzi1=BETAZ*TRANSF+PZd
9254 if(ianti.eq.0)then
9255 lbd=42
9256 else
9257 lbd=-42
9258 endif
9259 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
9260
9261 nnn=nnn+1
9262 PPION(1,NNN,IRUN)=pxi1
9263 PPION(2,NNN,IRUN)=pyi1
9264 PPION(3,NNN,IRUN)=pzi1
9265 EPION(NNN,IRUN)=xmd
9266 LPION(NNN,IRUN)=lbd
9267 RPION(1,NNN,IRUN)=R(1,I1)
9268 RPION(2,NNN,IRUN)=R(2,I1)
9269 RPION(3,NNN,IRUN)=R(3,I1)
9270
9271 dppion(NNN,IRUN)=sdprod/sig/float(npertd)
9272 elseif(idpert.eq.2.and.idloop.le.npertd) then
9273
9274
9275
9276 ppd(1,idloop)=pxi1
9277 ppd(2,idloop)=pyi1
9278 ppd(3,idloop)=pzi1
9279 lbpd(idloop)=lbd
9280 else
9281
9282
9283 E(i1)=xmm
9284 E2piCM=SQRT(xmm**2+PXd**2+PYd**2+PZd**2)
9285 P2piBETA=-PXd*BETAX-PYd*BETAY-PZd*BETAZ
9286 TRANSF=GAMMA*(GAMMA*P2piBETA/(GAMMA+1.)+E2piCM)
9287 pxi2=BETAX*TRANSF-PXd
9288 pyi2=BETAY*TRANSF-PYd
9289 pzi2=BETAZ*TRANSF-PZd
9290 p(1,i1)=pxi2
9291 p(2,i1)=pyi2
9292 p(3,i1)=pzi2
9293
9294
9295
9296
9297 LB(I1)=lbm
9298 PX1=P(1,I1)
9299 PY1=P(2,I1)
9300 PZ1=P(3,I1)
9301 EM1=E(I1)
9302 ID(I1)=2
9303 ID1=ID(I1)
9304 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
9305 lb1=lb(i1)
9306
9307 p(1,i2)=pxi1
9308 p(2,i2)=pyi1
9309 p(3,i2)=pzi1
9310 lb(i2)=lbd
9311 lb2=lb(i2)
9312 E(i2)=xmd
9313 EtI2=E(I2)
9314 ID(I2)=2
9315
9316 if(idpert.eq.2.and.idloop.eq.ndloop) then
9317 do ipertd=1,npertd
9318 nnn=nnn+1
9319 PPION(1,NNN,IRUN)=ppd(1,ipertd)
9320 PPION(2,NNN,IRUN)=ppd(2,ipertd)
9321 PPION(3,NNN,IRUN)=ppd(3,ipertd)
9322 EPION(NNN,IRUN)=xmd
9323 LPION(NNN,IRUN)=lbpd(ipertd)
9324 RPION(1,NNN,IRUN)=R(1,I1)
9325 RPION(2,NNN,IRUN)=R(2,I1)
9326 RPION(3,NNN,IRUN)=R(3,I1)
9327
9328 dppion(NNN,IRUN)=1./float(npertd)
9329 enddo
9330 endif
9331 endif
9332 enddo
9333 IBLOCK=501
9334 return
9335
9336
9337 END
9338
9339
9340
9341 SUBROUTINE INIT(MINNUM,MAXNUM,NUM,RADIUS,X0,Z0,P0,
9342 & GAMMA,ISEED,MASS,IOPT)
9343
9344
9345
9346
9347
9348
9349
9350
9351
9352
9353
9354
9355
9356
9357
9358
9359
9360
9361 PARAMETER (MAXSTR=150001, AMU = 0.9383)
9362 PARAMETER (MAXX = 20, MAXZ = 24)
9363 PARAMETER (PI=3.1415926)
9364
9365 REAL PTOT(3)
9366 COMMON /AA/ R(3,MAXSTR)
9367
9368 COMMON /BB/ P(3,MAXSTR)
9369
9370 COMMON /CC/ E(MAXSTR)
9371
9372 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9373 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9374 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9375
9376 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
9377
9378 common /ss/ inout(20)
9379
9380 COMMON/RNDF77/NSEED
9381
9382 SAVE
9383
9384
9385
9386 IF (P0 .NE. 0.) THEN
9387 SIGN = P0 / ABS(P0)
9388 ELSE
9389 SIGN = 0.
9390 END IF
9391
9392
9393 scheck=GAMMA**2-1.
9394 if(scheck.lt.0) then
9395 write(99,*) 'scheck10: ', scheck
9396 scheck=0.
9397 endif
9398 BETA=SIGN*SQRT(scheck)/GAMMA
9399
9400
9401
9402
9403
9404 IF (MINNUM .EQ. 1) THEN
9405 IDNUM = 1
9406 ELSE
9407 IDNUM = -1
9408 END IF
9409
9410
9411
9412
9413 DO 400 IRUN = 1,NUM
9414 DO 100 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9415 ID(I) = IDNUM
9416 E(I) = AMU
9417 100 CONTINUE
9418
9419
9420
9421 DO 300 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9422 200 CONTINUE
9423 X = 1.0 - 2.0 * RANART(NSEED)
9424 Y = 1.0 - 2.0 * RANART(NSEED)
9425 Z = 1.0 - 2.0 * RANART(NSEED)
9426 IF ((X*X+Y*Y+Z*Z) .GT. 1.0) GOTO 200
9427 R(1,I) = X * RADIUS
9428 R(2,I) = Y * RADIUS
9429 R(3,I) = Z * RADIUS
9430 300 CONTINUE
9431 400 CONTINUE
9432
9433 IF (IOPT .NE. 3) THEN
9434
9435
9436
9437
9438 RHOW0 = 0.168
9439 DO 1000 IRUN = 1,NUM
9440 DO 600 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9441 500 CONTINUE
9442 PX = 1.0 - 2.0 * RANART(NSEED)
9443 PY = 1.0 - 2.0 * RANART(NSEED)
9444 PZ = 1.0 - 2.0 * RANART(NSEED)
9445 IF (PX*PX+PY*PY+PZ*PZ .GT. 1.0) GOTO 500
9446 RDIST = SQRT( R(1,I)**2 + R(2,I)**2 + R(3,I)**2 )
9447 RHOWS = RHOW0 / ( 1.0 + EXP( (RDIST-RADIUS) / 0.55 ) )
9448 PFERMI = 0.197 * (1.5 * PI*PI * RHOWS)**(1./3.)
9449
9450
9451 IF(IOPT.EQ.2) PFERMI=0.27
9452 if(iopt.eq.4) pfermi=0.
9453
9454 P(1,I) = PFERMI * PX
9455 P(2,I) = PFERMI * PY
9456 P(3,I) = PFERMI * PZ
9457 600 CONTINUE
9458
9459
9460
9461 DO 700 IDIR = 1,3
9462 PTOT(IDIR) = 0.0
9463 700 CONTINUE
9464 NPART = 0
9465 DO 900 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9466 NPART = NPART + 1
9467 DO 800 IDIR = 1,3
9468 PTOT(IDIR) = PTOT(IDIR) + P(IDIR,I)
9469 800 CONTINUE
9470 900 CONTINUE
9471 DO 950 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9472 DO 925 IDIR = 1,3
9473 P(IDIR,I) = P(IDIR,I) - PTOT(IDIR) / FLOAT(NPART)
9474 925 CONTINUE
9475
9476 IF ((IOPT .EQ. 1).or.(iopt.eq.2)) THEN
9477 EPART = SQRT(P(1,I)**2+P(2,I)**2+P(3,I)**2+AMU**2)
9478 P(3,I) = GAMMA*(P(3,I) + BETA*EPART)
9479 ELSE
9480 P(3,I) = P(3,I) + P0
9481 END IF
9482 950 CONTINUE
9483 1000 CONTINUE
9484
9485 ELSE
9486
9487
9488
9489
9490 DO 1200 IRUN = 1,NUM
9491 DO 1100 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9492 P(1,I) = 0.0
9493 P(2,I) = 0.0
9494 P(3,I) = P0
9495 1100 CONTINUE
9496 1200 CONTINUE
9497
9498 END IF
9499
9500
9501
9502
9503 DO 1400 IRUN = 1,NUM
9504 DO 1300 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9505 R(1,I) = R(1,I) + X0
9506
9507 R(3,I) = (R(3,I)+Z0)/ GAMMA
9508
9509
9510 1300 CONTINUE
9511 1400 CONTINUE
9512
9513 RETURN
9514 END
9515
9516
9517 SUBROUTINE DENS(IPOT,MASS,NUM,NESC)
9518
9519
9520
9521
9522
9523
9524
9525
9526
9527
9528
9529 PARAMETER (MAXSTR= 150001,MAXR=1)
9530 PARAMETER (MAXX = 20, MAXZ = 24)
9531
9532 dimension pxl(-maxx:maxx,-maxx:maxx,-maxz:maxz),
9533 1 pyl(-maxx:maxx,-maxx:maxx,-maxz:maxz),
9534 2 pzl(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9535 COMMON /AA/ R(3,MAXSTR)
9536
9537 COMMON /BB/ P(3,MAXSTR)
9538
9539 COMMON /CC/ E(MAXSTR)
9540
9541 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9542 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9543 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9544
9545 COMMON /DDpi/ piRHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9546
9547 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
9548
9549 common /ss/ inout(20)
9550
9551 COMMON /RR/ MASSR(0:MAXR)
9552
9553 common /tt/ PEL(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9554 &,rxy(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9555
9556 common /bbb/ bxx(-maxx:maxx,-maxx:maxx,-maxz:maxz),
9557 &byy(-maxx:maxx,-maxx:maxx,-maxz:maxz),
9558 &bzz(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9559
9560 real zet(-45:45)
9561 SAVE
9562 data zet /
9563 4 1.,0.,0.,0.,0.,
9564 3 1.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
9565 2 -1.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
9566 1 0.,0.,0.,-1.,0.,1.,0.,-1.,0.,-1.,
9567 s 0.,-2.,-1.,0.,1.,0.,0.,0.,0.,-1.,
9568 e 0.,
9569 s 1.,0.,-1.,0.,1.,-1.,0.,1.,2.,0.,
9570 1 1.,0.,1.,0.,-1.,0.,1.,0.,0.,0.,
9571 2 -1.,0.,1.,0.,-1.,0.,1.,0.,0.,1.,
9572 3 0.,0.,0.,0.,0.,0.,0.,0.,0.,-1.,
9573 4 0.,0.,0.,0.,-1./
9574
9575 DO 300 IZ = -MAXZ,MAXZ
9576 DO 200 IY = -MAXX,MAXX
9577 DO 100 IX = -MAXX,MAXX
9578 RHO(IX,IY,IZ) = 0.0
9579 RHOn(IX,IY,IZ) = 0.0
9580 RHOp(IX,IY,IZ) = 0.0
9581 piRHO(IX,IY,IZ) = 0.0
9582 pxl(ix,iy,iz) = 0.0
9583 pyl(ix,iy,iz) = 0.0
9584 pzl(ix,iy,iz) = 0.0
9585 pel(ix,iy,iz) = 0.0
9586 bxx(ix,iy,iz) = 0.0
9587 byy(ix,iy,iz) = 0.0
9588 bzz(ix,iy,iz) = 0.0
9589 100 CONTINUE
9590 200 CONTINUE
9591 300 CONTINUE
9592
9593 NESC = 0
9594 BIG = 1.0 / ( 3.0 * FLOAT(NUM) )
9595 SMALL = 1.0 / ( 9.0 * FLOAT(NUM) )
9596
9597 MSUM=0
9598 DO 400 IRUN = 1,NUM
9599 MSUM=MSUM+MASSR(IRUN-1)
9600 DO 400 J=1,MASSr(irun)
9601 I=J+MSUM
9602 IX = NINT( R(1,I) )
9603 IY = NINT( R(2,I) )
9604 IZ = NINT( R(3,I) )
9605 IF( IX .LE. -MAXX .OR. IX .GE. MAXX .OR.
9606 & IY .LE. -MAXX .OR. IY .GE. MAXX .OR.
9607 & IZ .LE. -MAXZ .OR. IZ .GE. MAXZ ) THEN
9608 NESC = NESC + 1
9609 ELSE
9610
9611
9612 if(j.gt.mass)go to 30
9613
9614
9615
9616 RHO(IX, IY, IZ ) = RHO(IX, IY, IZ ) + BIG
9617 RHO(IX+1,IY, IZ ) = RHO(IX+1,IY, IZ ) + SMALL
9618 RHO(IX-1,IY, IZ ) = RHO(IX-1,IY, IZ ) + SMALL
9619 RHO(IX, IY+1,IZ ) = RHO(IX, IY+1,IZ ) + SMALL
9620 RHO(IX, IY-1,IZ ) = RHO(IX, IY-1,IZ ) + SMALL
9621 RHO(IX, IY, IZ+1) = RHO(IX, IY, IZ+1) + SMALL
9622 RHO(IX, IY, IZ-1) = RHO(IX, IY, IZ-1) + SMALL
9623
9624 IF(ZET(LB(I)).NE.0)THEN
9625 RHOP(IX, IY, IZ ) = RHOP(IX, IY, IZ ) + BIG
9626 RHOP(IX+1,IY, IZ ) = RHOP(IX+1,IY, IZ ) + SMALL
9627 RHOP(IX-1,IY, IZ ) = RHOP(IX-1,IY, IZ ) + SMALL
9628 RHOP(IX, IY+1,IZ ) = RHOP(IX, IY+1,IZ ) + SMALL
9629 RHOP(IX, IY-1,IZ ) = RHOP(IX, IY-1,IZ ) + SMALL
9630 RHOP(IX, IY, IZ+1) = RHOP(IX, IY, IZ+1) + SMALL
9631 RHOP(IX, IY, IZ-1) = RHOP(IX, IY, IZ-1) + SMALL
9632 go to 40
9633 ENDIF
9634
9635 IF(ZET(LB(I)).EQ.0)THEN
9636 RHON(IX, IY, IZ ) = RHON(IX, IY, IZ ) + BIG
9637 RHON(IX+1,IY, IZ ) = RHON(IX+1,IY, IZ ) + SMALL
9638 RHON(IX-1,IY, IZ ) = RHON(IX-1,IY, IZ ) + SMALL
9639 RHON(IX, IY+1,IZ ) = RHON(IX, IY+1,IZ ) + SMALL
9640 RHON(IX, IY-1,IZ ) = RHON(IX, IY-1,IZ ) + SMALL
9641 RHON(IX, IY, IZ+1) = RHON(IX, IY, IZ+1) + SMALL
9642 RHON(IX, IY, IZ-1) = RHON(IX, IY, IZ-1) + SMALL
9643 go to 40
9644 END IF
9645
9646
9647 30 piRHO(IX, IY, IZ ) = piRHO(IX, IY, IZ ) + BIG
9648 piRHO(IX+1,IY, IZ ) = piRHO(IX+1,IY, IZ ) + SMALL
9649 piRHO(IX-1,IY, IZ ) = piRHO(IX-1,IY, IZ ) + SMALL
9650 piRHO(IX, IY+1,IZ ) = piRHO(IX, IY+1,IZ ) + SMALL
9651 piRHO(IX, IY-1,IZ ) = piRHO(IX, IY-1,IZ ) + SMALL
9652 piRHO(IX, IY, IZ+1) = piRHO(IX, IY, IZ+1) + SMALL
9653 piRHO(IX, IY, IZ-1) = piRHO(IX, IY, IZ-1) + SMALL
9654
9655
9656
9657 40 pxl(ix,iy,iz)=pxl(ix,iy,iz)+p(1,I)*BIG
9658 pxl(ix+1,iy,iz)=pxl(ix+1,iy,iz)+p(1,I)*SMALL
9659 pxl(ix-1,iy,iz)=pxl(ix-1,iy,iz)+p(1,I)*SMALL
9660 pxl(ix,iy+1,iz)=pxl(ix,iy+1,iz)+p(1,I)*SMALL
9661 pxl(ix,iy-1,iz)=pxl(ix,iy-1,iz)+p(1,I)*SMALL
9662 pxl(ix,iy,iz+1)=pxl(ix,iy,iz+1)+p(1,I)*SMALL
9663 pxl(ix,iy,iz-1)=pxl(ix,iy,iz-1)+p(1,I)*SMALL
9664
9665 pYl(ix,iy,iz)=pYl(ix,iy,iz)+p(2,I)*BIG
9666 pYl(ix+1,iy,iz)=pYl(ix+1,iy,iz)+p(2,I)*SMALL
9667 pYl(ix-1,iy,iz)=pYl(ix-1,iy,iz)+p(2,I)*SMALL
9668 pYl(ix,iy+1,iz)=pYl(ix,iy+1,iz)+p(2,I)*SMALL
9669 pYl(ix,iy-1,iz)=pYl(ix,iy-1,iz)+p(2,I)*SMALL
9670 pYl(ix,iy,iz+1)=pYl(ix,iy,iz+1)+p(2,I)*SMALL
9671 pYl(ix,iy,iz-1)=pYl(ix,iy,iz-1)+p(2,I)*SMALL
9672
9673 pZl(ix,iy,iz)=pZl(ix,iy,iz)+p(3,I)*BIG
9674 pZl(ix+1,iy,iz)=pZl(ix+1,iy,iz)+p(3,I)*SMALL
9675 pZl(ix-1,iy,iz)=pZl(ix-1,iy,iz)+p(3,I)*SMALL
9676 pZl(ix,iy+1,iz)=pZl(ix,iy+1,iz)+p(3,I)*SMALL
9677 pZl(ix,iy-1,iz)=pZl(ix,iy-1,iz)+p(3,I)*SMALL
9678 pZl(ix,iy,iz+1)=pZl(ix,iy,iz+1)+p(3,I)*SMALL
9679 pZl(ix,iy,iz-1)=pZl(ix,iy,iz-1)+p(3,I)*SMALL
9680
9681 pel(ix,iy,iz)=pel(ix,iy,iz)
9682 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*BIG
9683 pel(ix+1,iy,iz)=pel(ix+1,iy,iz)
9684 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*SMALL
9685 pel(ix-1,iy,iz)=pel(ix-1,iy,iz)
9686 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*SMALL
9687 pel(ix,iy+1,iz)=pel(ix,iy+1,iz)
9688 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*SMALL
9689 pel(ix,iy-1,iz)=pel(ix,iy-1,iz)
9690 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*SMALL
9691 pel(ix,iy,iz+1)=pel(ix,iy,iz+1)
9692 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*SMALL
9693 pel(ix,iy,iz-1)=pel(ix,iy,iz-1)
9694 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*SMALL
9695 END IF
9696 400 CONTINUE
9697
9698 DO 301 IZ = -MAXZ,MAXZ
9699 DO 201 IY = -MAXX,MAXX
9700 DO 101 IX = -MAXX,MAXX
9701 IF((RHO(IX,IY,IZ).EQ.0).OR.(PEL(IX,IY,IZ).EQ.0))
9702 1GO TO 101
9703 SMASS2=PEL(IX,IY,IZ)**2-PXL(IX,IY,IZ)**2
9704 1-PYL(IX,IY,IZ)**2-PZL(IX,IY,IZ)**2
9705 IF(SMASS2.LE.0)SMASS2=1.E-06
9706 SMASS=SQRT(SMASS2)
9707 IF(SMASS.EQ.0.)SMASS=1.e-06
9708 GAMMA=PEL(IX,IY,IZ)/SMASS
9709 if(gamma.eq.0)go to 101
9710 bxx(ix,iy,iz)=pxl(ix,iy,iz)/pel(ix,iy,iz)
9711 byy(ix,iy,iz)=pyl(ix,iy,iz)/pel(ix,iy,iz)
9712 bzz(ix,iy,iz)=pzl(ix,iy,iz)/pel(ix,iy,iz)
9713 RHO(IX,IY,IZ) = RHO(IX,IY,IZ)/GAMMA
9714 RHOn(IX,IY,IZ) = RHOn(IX,IY,IZ)/GAMMA
9715 RHOp(IX,IY,IZ) = RHOp(IX,IY,IZ)/GAMMA
9716 piRHO(IX,IY,IZ) = piRHO(IX,IY,IZ)/GAMMA
9717 pEL(IX,IY,IZ) = pEL(IX,IY,IZ)/(GAMMA**2)
9718 rho0=0.163
9719 IF(IPOT.EQ.0)THEN
9720 U=0
9721 GO TO 70
9722 ENDIF
9723 IF(IPOT.EQ.1.or.ipot.eq.6)THEN
9724 A=-0.1236
9725 B=0.0704
9726 S=2
9727 GO TO 60
9728 ENDIF
9729 IF(IPOT.EQ.2.or.ipot.eq.7)THEN
9730 A=-0.218
9731 B=0.164
9732 S=4./3.
9733 ENDIF
9734 IF(IPOT.EQ.3)THEN
9735 a=-0.3581
9736 b=0.3048
9737 S=1.167
9738 GO TO 60
9739 ENDIF
9740 IF(IPOT.EQ.4)THEN
9741 denr=rho(ix,iy,iz)/rho0
9742 b=0.3048
9743 S=1.167
9744 if(denr.le.4.or.denr.gt.7)then
9745 a=-0.3581
9746 else
9747 a=-b*denr**(1./6.)-2.*0.036/3.*denr**(-0.333)
9748 endif
9749 GO TO 60
9750 ENDIF
9751 60 U = 0.5*A*RHO(IX,IY,IZ)**2/RHO0
9752 1 + B/(1+S) * (RHO(IX,IY,IZ)/RHO0)**S*RHO(IX,IY,IZ)
9753 70 PEL(IX,IY,IZ)=PEL(IX,IY,IZ)+U
9754 101 CONTINUE
9755 201 CONTINUE
9756 301 CONTINUE
9757 RETURN
9758 END
9759
9760
9761
9762 SUBROUTINE GRADU(IOPT,IX,IY,IZ,GRADX,GRADY,GRADZ)
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772 PARAMETER (MAXX = 20, MAXZ = 24)
9773 PARAMETER (RHO0 = 0.167)
9774
9775 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9776 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9777 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9778
9779 common /ss/ inout(20)
9780
9781 common /tt/ PEL(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9782 &,rxy(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9783
9784 SAVE
9785
9786 RXPLUS = RHO(IX+1,IY, IZ ) / RHO0
9787 RXMINS = RHO(IX-1,IY, IZ ) / RHO0
9788 RYPLUS = RHO(IX, IY+1,IZ ) / RHO0
9789 RYMINS = RHO(IX, IY-1,IZ ) / RHO0
9790 RZPLUS = RHO(IX, IY, IZ+1) / RHO0
9791 RZMINS = RHO(IX, IY, IZ-1) / RHO0
9792 den0 = RHO(IX, IY, IZ) / RHO0
9793 ene0 = pel(IX, IY, IZ)
9794
9795 GOTO (1,2,3,4,5) IOPT
9796 if(iopt.eq.6)go to 6
9797 if(iopt.eq.7)go to 7
9798
9799 1 CONTINUE
9800
9801
9802
9803 GRADX = -0.062 * (RXPLUS - RXMINS) + 0.03525 * (RXPLUS**2 -
9804 & RXMINS**2)
9805 GRADY = -0.062 * (RYPLUS - RYMINS) + 0.03525 * (RYPLUS**2 -
9806 & RYMINS**2)
9807 GRADZ = -0.062 * (RZPLUS - RZMINS) + 0.03525 * (RZPLUS**2 -
9808 & RZMINS**2)
9809 RETURN
9810
9811 2 CONTINUE
9812
9813
9814
9815 EXPNT = 1.3333333
9816 GRADX = -0.109 * (RXPLUS - RXMINS)
9817 & + 0.082 * (RXPLUS**EXPNT-RXMINS**EXPNT)
9818 GRADY = -0.109 * (RYPLUS - RYMINS)
9819 & + 0.082 * (RYPLUS**EXPNT-RYMINS**EXPNT)
9820 GRADZ = -0.109 * (RZPLUS - RZMINS)
9821 & + 0.082 * (RZPLUS**EXPNT-RZMINS**EXPNT)
9822 RETURN
9823
9824 3 CONTINUE
9825
9826
9827
9828 EXPNT = 1.1666667
9829 acoef = 0.178
9830 GRADX = -acoef * (RXPLUS - RXMINS)
9831 & + 0.1515 * (RXPLUS**EXPNT-RXMINS**EXPNT)
9832 GRADY = -acoef * (RYPLUS - RYMINS)
9833 & + 0.1515 * (RYPLUS**EXPNT-RYMINS**EXPNT)
9834 GRADZ = -acoef * (RZPLUS - RZMINS)
9835 & + 0.1515 * (RZPLUS**EXPNT-RZMINS**EXPNT)
9836 RETURN
9837
9838
9839 4 CONTINUE
9840
9841
9842
9843
9844
9845 eh=4.
9846 eqgp=7.
9847 acoef=0.178
9848 EXPNT = 1.1666667
9849 denr=rho(ix,iy,iz)/rho0
9850 if(denr.le.eh.or.denr.ge.eqgp)then
9851 GRADX = -acoef * (RXPLUS - RXMINS)
9852 & + 0.1515 * (RXPLUS**EXPNT-RXMINS**EXPNT)
9853 GRADY = -acoef * (RYPLUS - RYMINS)
9854 & + 0.1515 * (RYPLUS**EXPNT-RYMINS**EXPNT)
9855 GRADZ = -acoef * (RZPLUS - RZMINS)
9856 & + 0.1515 * (RZPLUS**EXPNT-RZMINS**EXPNT)
9857 else
9858 acoef1=0.178
9859 acoef2=0.0
9860 expnt2=2./3.
9861 GRADX =-acoef1* (RXPLUS**EXPNT-RXMINS**EXPNT)
9862 & -acoef2* (RXPLUS**expnt2 - RXMINS**expnt2)
9863 GRADy =-acoef1* (RyPLUS**EXPNT-RyMINS**EXPNT)
9864 & -acoef2* (RyPLUS**expnt2 - RyMINS**expnt2)
9865 GRADz =-acoef1* (RzPLUS**EXPNT-RzMINS**EXPNT)
9866 & -acoef2* (RzPLUS**expnt2 - RzMINS**expnt2)
9867 endif
9868 return
9869
9870 5 CONTINUE
9871
9872
9873
9874 EXPNT = 2.77
9875 GRADX = -0.0516 * (RXPLUS - RXMINS)
9876 & + 0.02498 * (RXPLUS**EXPNT-RXMINS**EXPNT)
9877 GRADY = -0.0516 * (RYPLUS - RYMINS)
9878 & + 0.02498 * (RYPLUS**EXPNT-RYMINS**EXPNT)
9879 GRADZ = -0.0516 * (RZPLUS - RZMINS)
9880 & + 0.02498 * (RZPLUS**EXPNT-RZMINS**EXPNT)
9881 RETURN
9882
9883 6 CONTINUE
9884
9885
9886
9887 if(ene0.le.0.5)then
9888 GRADX = -0.062 * (RXPLUS - RXMINS) + 0.03525 * (RXPLUS**2 -
9889 & RXMINS**2)
9890 GRADY = -0.062 * (RYPLUS - RYMINS) + 0.03525 * (RYPLUS**2 -
9891 & RYMINS**2)
9892 GRADZ = -0.062 * (RZPLUS - RZMINS) + 0.03525 * (RZPLUS**2 -
9893 & RZMINS**2)
9894 RETURN
9895 endif
9896 if(ene0.gt.0.5.and.ene0.le.1.5)then
9897
9898 ef=36./1000.
9899 GRADX = -0.5*ef* (RXPLUS**0.67-RXMINS**0.67)
9900 GRADy = -0.5*ef* (RyPLUS**0.67-RyMINS**0.67)
9901 GRADz = -0.5*ef* (RzPLUS**0.67-RzMINS**0.67)
9902 RETURN
9903 endif
9904 if(ene0.gt.1.5)then
9905
9906 ef=36./1000.
9907 cf0=0.8
9908 GRADX =0.5*cf0*(rxplus**0.333-rxmins**0.333)
9909 & -0.5*ef* (RXPLUS**0.67-RXMINS**0.67)
9910 GRADy =0.5*cf0*(ryplus**0.333-rymins**0.333)
9911 & -0.5*ef* (RyPLUS**0.67-RyMINS**0.67)
9912 GRADz =0.5*cf0*(rzplus**0.333-rzmins**0.333)
9913 & -0.5*ef* (RzPLUS**0.67-RzMINS**0.67)
9914 RETURN
9915 endif
9916
9917 7 CONTINUE
9918
9919 if(den0.le.4.5)then
9920
9921
9922
9923 EXPNT = 1.1666667
9924 acoef = 0.178
9925 GRADX = -acoef * (RXPLUS - RXMINS)
9926 & + 0.1515 * (RXPLUS**EXPNT-RXMINS**EXPNT)
9927 GRADY = -acoef * (RYPLUS - RYMINS)
9928 & + 0.1515 * (RYPLUS**EXPNT-RYMINS**EXPNT)
9929 GRADZ = -acoef * (RZPLUS - RZMINS)
9930 & + 0.1515 * (RZPLUS**EXPNT-RZMINS**EXPNT)
9931 return
9932 endif
9933 if(den0.gt.4.5.and.den0.le.5.1)then
9934
9935 ef=36./1000.
9936 GRADX = -0.5*ef* (RXPLUS**0.67-RXMINS**0.67)
9937 GRADy = -0.5*ef* (RyPLUS**0.67-RyMINS**0.67)
9938 GRADz = -0.5*ef* (RzPLUS**0.67-RzMINS**0.67)
9939 RETURN
9940 endif
9941 if(den0.gt.5.1)then
9942
9943 ef=36./1000.
9944 cf0=0.8
9945 GRADX =0.5*cf0*(rxplus**0.333-rxmins**0.333)
9946 & -0.5*ef* (RXPLUS**0.67-RXMINS**0.67)
9947 GRADy =0.5*cf0*(ryplus**0.333-rymins**0.333)
9948 & -0.5*ef* (RyPLUS**0.67-RyMINS**0.67)
9949 GRADz =0.5*cf0*(rzplus**0.333-rzmins**0.333)
9950 & -0.5*ef* (RzPLUS**0.67-RzMINS**0.67)
9951 RETURN
9952 endif
9953 END
9954
9955
9956 SUBROUTINE GRADUK(IX,IY,IZ,GRADXk,GRADYk,GRADZk)
9957
9958
9959
9960
9961
9962
9963
9964
9965
9966 PARAMETER (MAXX = 20, MAXZ = 24)
9967 PARAMETER (RHO0 = 0.168)
9968
9969 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9970 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9971 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9972
9973 common /ss/ inout(20)
9974
9975 SAVE
9976
9977 RXPLUS = RHO(IX+1,IY, IZ )
9978 RXMINS = RHO(IX-1,IY, IZ )
9979 RYPLUS = RHO(IX, IY+1,IZ )
9980 RYMINS = RHO(IX, IY-1,IZ )
9981 RZPLUS = RHO(IX, IY, IZ+1)
9982 RZMINS = RHO(IX, IY, IZ-1)
9983 GRADXk = (RXPLUS - RXMINS)/2.
9984 GRADYk = (RYPLUS - RYMINS)/2.
9985 GRADZk = (RZPLUS - RZMINS)/2.
9986 RETURN
9987 END
9988
9989 SUBROUTINE GRADUP(IX,IY,IZ,GRADXP,GRADYP,GRADZP)
9990
9991
9992
9993
9994
9995
9996
9997
9998
9999 PARAMETER (MAXX = 20, MAXZ = 24)
10000 PARAMETER (RHO0 = 0.168)
10001
10002 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
10003 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
10004 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
10005
10006 common /ss/ inout(20)
10007
10008 SAVE
10009
10010 RXPLUS = RHOP(IX+1,IY, IZ ) / RHO0
10011 RXMINS = RHOP(IX-1,IY, IZ ) / RHO0
10012 RYPLUS = RHOP(IX, IY+1,IZ ) / RHO0
10013 RYMINS = RHOP(IX, IY-1,IZ ) / RHO0
10014 RZPLUS = RHOP(IX, IY, IZ+1) / RHO0
10015 RZMINS = RHOP(IX, IY, IZ-1) / RHO0
10016
10017
10018 GRADXP = (RXPLUS - RXMINS)/2.
10019 GRADYP = (RYPLUS - RYMINS)/2.
10020 GRADZP = (RZPLUS - RZMINS)/2.
10021 RETURN
10022 END
10023
10024 SUBROUTINE GRADUN(IX,IY,IZ,GRADXN,GRADYN,GRADZN)
10025
10026
10027
10028
10029
10030
10031
10032
10033
10034 PARAMETER (MAXX = 20, MAXZ = 24)
10035 PARAMETER (RHO0 = 0.168)
10036
10037 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
10038 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
10039 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
10040
10041 common /ss/ inout(20)
10042
10043 SAVE
10044
10045 RXPLUS = RHON(IX+1,IY, IZ ) / RHO0
10046 RXMINS = RHON(IX-1,IY, IZ ) / RHO0
10047 RYPLUS = RHON(IX, IY+1,IZ ) / RHO0
10048 RYMINS = RHON(IX, IY-1,IZ ) / RHO0
10049 RZPLUS = RHON(IX, IY, IZ+1) / RHO0
10050 RZMINS = RHON(IX, IY, IZ-1) / RHO0
10051
10052
10053 GRADXN = (RXPLUS - RXMINS)/2.
10054 GRADYN = (RYPLUS - RYMINS)/2.
10055 GRADZN = (RZPLUS - RZMINS)/2.
10056 RETURN
10057 END
10058
10059
10060
10061
10062 REAL FUNCTION FDE(DMASS,SRT,CON)
10063 SAVE
10064 AMN=0.938869
10065 AVPI=0.13803333
10066 AM0=1.232
10067 FD=4.*(AM0**2)*WIDTH(DMASS)/((DMASS**2-1.232**2)**2
10068 1 +AM0**2*WIDTH(DMASS)**2)
10069 IF(CON.EQ.1.)THEN
10070 P11=(SRT**2+DMASS**2-AMN**2)**2
10071 1 /(4.*SRT**2)-DMASS**2
10072 if(p11.le.0)p11=1.E-06
10073 p1=sqrt(p11)
10074 ELSE
10075 DMASS=AMN+AVPI
10076 P11=(SRT**2+DMASS**2-AMN**2)**2
10077 1 /(4.*SRT**2)-DMASS**2
10078 if(p11.le.0)p11=1.E-06
10079 p1=sqrt(p11)
10080 ENDIF
10081 FDE=FD*P1*DMASS
10082 RETURN
10083 END
10084
10085
10086
10087 REAL FUNCTION FD5(DMASS,SRT,CON)
10088 SAVE
10089 AMN=0.938869
10090 AVPI=0.13803333
10091 AM0=1.535
10092 FD=4.*(AM0**2)*W1535(DMASS)/((DMASS**2-1.535**2)**2
10093 1 +AM0**2*W1535(DMASS)**2)
10094 IF(CON.EQ.1.)THEN
10095
10096
10097 scheck=(SRT**2+DMASS**2-AMN**2)**2/(4.*SRT**2)-DMASS**2
10098 if(scheck.lt.0) then
10099 write(99,*) 'scheck11: ', scheck
10100 scheck=0.
10101 endif
10102 P1=SQRT(scheck)
10103
10104
10105
10106 ELSE
10107 DMASS=AMN+AVPI
10108
10109
10110 scheck=(SRT**2+DMASS**2-AMN**2)**2/(4.*SRT**2)-DMASS**2
10111 if(scheck.lt.0) then
10112 write(99,*) 'scheck12: ', scheck
10113 scheck=0.
10114 endif
10115 P1=SQRT(scheck)
10116
10117
10118
10119 ENDIF
10120 FD5=FD*P1*DMASS
10121 RETURN
10122 END
10123
10124
10125
10126 REAL FUNCTION FNS(DMASS,SRT,CON)
10127 SAVE
10128 WIDTH=0.2
10129 AMN=0.938869
10130 AVPI=0.13803333
10131 AN0=1.43
10132 FN=4.*(AN0**2)*WIDTH/((DMASS**2-1.44**2)**2+AN0**2*WIDTH**2)
10133 IF(CON.EQ.1.)THEN
10134
10135
10136 scheck=(SRT**2+DMASS**2-AMN**2)**2/(4.*SRT**2)-DMASS**2
10137 if(scheck.lt.0) then
10138 write(99,*) 'scheck13: ', scheck
10139 scheck=0.
10140 endif
10141 P1=SQRT(scheck)
10142
10143
10144
10145 ELSE
10146 DMASS=AMN+AVPI
10147
10148 scheck=(SRT**2+DMASS**2-AMN**2)**2/(4.*SRT**2)-DMASS**2
10149 if(scheck.lt.0) then
10150 write(99,*) 'scheck14: ', scheck
10151 scheck=0.
10152 endif
10153 P1=SQRT(scheck)
10154
10155
10156
10157 ENDIF
10158 FNS=FN*P1*DMASS
10159 RETURN
10160 END
10161
10162
10163
10164
10165
10166
10167 SUBROUTINE DECAY(IRUN,I,NNN,ISEED,wid,nt)
10168 PARAMETER (MAXSTR=150001,MAXR=1,
10169 1 AMN=0.939457,ETAM=0.5475,AMP=0.93828,AP1=0.13496,
10170 2 AP2=0.13957,AM0=1.232,PI=3.1415926)
10171 COMMON /AA/ R(3,MAXSTR)
10172
10173 COMMON /BB/ P(3,MAXSTR)
10174
10175 COMMON /CC/ E(MAXSTR)
10176
10177 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10178
10179 COMMON /RUN/NUM
10180
10181 COMMON /PA/RPION(3,MAXSTR,MAXR)
10182
10183 COMMON /PB/PPION(3,MAXSTR,MAXR)
10184
10185 COMMON /PC/EPION(MAXSTR,MAXR)
10186
10187 COMMON /PD/LPION(MAXSTR,MAXR)
10188
10189 COMMON /INPUT2/ ILAB, MANYB, NTMAX, ICOLL, INSYS, IPOT, MODE,
10190 & IMOMEN, NFREQ, ICFLOW, ICRHO, ICOU, KPOTEN, KMUL
10191
10192 COMMON/RNDF77/NSEED
10193 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
10194 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
10195 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
10196
10197 SAVE
10198 lbanti=LB(I)
10199
10200 DM=E(I)
10201
10202 IF(iabs(LB(I)).EQ.11)THEN
10203 X3=RANART(NSEED)
10204 IF(X3.GT.(1./3.))THEN
10205 LB(I)=2
10206 NLAB=2
10207 LPION(NNN,IRUN)=5
10208 EPION(NNN,IRUN)=AP2
10209 ELSE
10210 LB(I)=1
10211 NLAB=1
10212 LPION(NNN,IRUN)=4
10213 EPION(NNN,IRUN)=AP1
10214 ENDIF
10215
10216 ELSEIF(iabs(LB(I)).EQ.10)THEN
10217 X4=RANART(NSEED)
10218 IF(X4.GT.(1./3.))THEN
10219 LB(I)=1
10220 NLAB=1
10221 LPION(NNN,IRUN)=3
10222 EPION(NNN,IRUN)=AP2
10223 ELSE
10224 LB(I)=2
10225 NALB=2
10226 LPION(NNN,IRUN)=4
10227 EPION(NNN,IRUN)=AP1
10228 ENDIF
10229
10230
10231 ELSEIF(iabs(LB(I)).EQ.12)THEN
10232 CTRL=0.65
10233 IF(DM.lE.1.49)ctrl=-1.
10234 X5=RANART(NSEED)
10235 IF(X5.GE.ctrl)THEN
10236
10237 X6=RANART(NSEED)
10238 IF(X6.GT.(1./3.))THEN
10239 LB(I)=1
10240 NLAB=1
10241 LPION(NNN,IRUN)=3
10242 EPION(NNN,IRUN)=AP2
10243 ELSE
10244 LB(I)=2
10245 NALB=2
10246 LPION(NNN,IRUN)=4
10247 EPION(NNN,IRUN)=AP1
10248 ENDIF
10249 ELSE
10250
10251 LB(I)=2
10252 NLAB=2
10253 LPION(NNN,IRUN)=0
10254 EPION(NNN,IRUN)=ETAM
10255 ENDIF
10256
10257 ELSEIF(iabs(LB(I)).EQ.13)THEN
10258 CTRL=0.65
10259 IF(DM.lE.1.49)ctrl=-1.
10260 X5=RANART(NSEED)
10261 IF(X5.GE.ctrl)THEN
10262
10263 X8=RANART(NSEED)
10264 IF(X8.GT.(1./3.))THEN
10265 LB(I)=2
10266 NLAB=2
10267 LPION(NNN,IRUN)=5
10268 EPION(NNN,IRUN)=AP2
10269 ELSE
10270 LB(I)=1
10271 NLAB=1
10272 LPION(NNN,IRUN)=4
10273 EPION(NNN,IRUN)=AP1
10274 ENDIF
10275 ELSE
10276
10277 LB(I)=1
10278 NLAB=1
10279 LPION(NNN,IRUN)=0
10280 EPION(NNN,IRUN)=ETAM
10281 ENDIF
10282 ENDIF
10283
10284 CALL DKINE(IRUN,I,NNN,NLAB,ISEED,wid,nt)
10285
10286
10287 if(lbanti.lt.0) then
10288 lbi=LB(I)
10289 if(lbi.eq.1.or.lbi.eq.2) then
10290 lbi=-lbi
10291 elseif(lbi.eq.3) then
10292 lbi=5
10293 elseif(lbi.eq.5) then
10294 lbi=3
10295 endif
10296 LB(I)=lbi
10297
10298 lbi=LPION(NNN,IRUN)
10299 if(lbi.eq.3) then
10300 lbi=5
10301 elseif(lbi.eq.5) then
10302 lbi=3
10303 elseif(lbi.eq.1.or.lbi.eq.2) then
10304 lbi=-lbi
10305 endif
10306 LPION(NNN,IRUN)=lbi
10307 endif
10308
10309 if(nt.eq.ntmax) then
10310
10311
10312 lbm=LPION(NNN,IRUN)
10313 if(lbm.eq.0.or.lbm.eq.25
10314 1 .or.lbm.eq.26.or.lbm.eq.27) then
10315
10316 lbsave=lbm
10317 xmsave=EPION(NNN,IRUN)
10318 pxsave=PPION(1,NNN,IRUN)
10319 pysave=PPION(2,NNN,IRUN)
10320 pzsave=PPION(3,NNN,IRUN)
10321
10322 dpsave=dppion(NNN,IRUN)
10323 LPION(NNN,IRUN)=LB(I)
10324 EPION(NNN,IRUN)=E(I)
10325 PPION(1,NNN,IRUN)=P(1,I)
10326 PPION(2,NNN,IRUN)=P(2,I)
10327 PPION(3,NNN,IRUN)=P(3,I)
10328
10329 dppion(NNN,IRUN)=dpertp(I)
10330 LB(I)=lbsave
10331 E(I)=xmsave
10332 P(1,I)=pxsave
10333 P(2,I)=pysave
10334 P(3,I)=pzsave
10335
10336 dpertp(I)=dpsave
10337 endif
10338 endif
10339
10340 RETURN
10341 END
10342
10343
10344
10345
10346
10347
10348
10349 SUBROUTINE DKINE(IRUN,I,NNN,NLAB,ISEED,wid,nt)
10350 PARAMETER (hbarc=0.19733)
10351 PARAMETER (MAXSTR=150001,MAXR=1,
10352 1 AMN=0.939457,AMP=0.93828,ETAM=0.5475,
10353 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
10354 COMMON /AA/ R(3,MAXSTR)
10355
10356 COMMON /BB/ P(3,MAXSTR)
10357
10358 COMMON /CC/ E(MAXSTR)
10359
10360 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10361
10362 COMMON /RUN/NUM
10363
10364 COMMON /PA/RPION(3,MAXSTR,MAXR)
10365
10366 COMMON /PB/PPION(3,MAXSTR,MAXR)
10367
10368 COMMON /PC/EPION(MAXSTR,MAXR)
10369
10370 COMMON /PD/LPION(MAXSTR,MAXR)
10371
10372 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
10373 1 px1n,py1n,pz1n,dp1n
10374
10375 COMMON/tdecay/tfdcy(MAXSTR),tfdpi(MAXSTR,MAXR),tft(MAXSTR)
10376
10377 COMMON /INPUT2/ ILAB, MANYB, NTMAX, ICOLL, INSYS, IPOT, MODE,
10378 & IMOMEN, NFREQ, ICFLOW, ICRHO, ICOU, KPOTEN, KMUL
10379
10380 COMMON/RNDF77/NSEED
10381
10382 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
10383 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
10384 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
10385 EXTERNAL IARFLV, INVFLV
10386 SAVE
10387
10388 PX=P(1,I)
10389 PY=P(2,I)
10390 PZ=P(3,I)
10391 RX=R(1,I)
10392 RY=R(2,I)
10393 RZ=R(3,I)
10394 DM=E(I)
10395 EDELTA=SQRT(DM**2+PX**2+PY**2+PZ**2)
10396 PM=EPION(NNN,IRUN)
10397 AM=AMP
10398 IF(NLAB.EQ.2)AM=AMN
10399
10400
10401
10402
10403 Q2=((DM**2-AM**2+PM**2)/(2.*DM))**2-PM**2
10404 IF(Q2.LE.0.)Q2=1.e-09
10405 Q=SQRT(Q2)
10406 11 QX=1.-2.*RANART(NSEED)
10407 QY=1.-2.*RANART(NSEED)
10408 QZ=1.-2.*RANART(NSEED)
10409 QS=QX**2+QY**2+QZ**2
10410 IF(QS.GT.1.) GO TO 11
10411 PXP=Q*QX/SQRT(QS)
10412 PYP=Q*QY/SQRT(QS)
10413 PZP=Q*QZ/SQRT(QS)
10414 EP=SQRT(Q**2+PM**2)
10415 PXN=-PXP
10416 PYN=-PYP
10417 PZN=-PZP
10418 EN=SQRT(Q**2+AM**2)
10419
10420
10421 GD=EDELTA/DM
10422 FGD=GD/(1.+GD)
10423 BDX=PX/EDELTA
10424 BDY=PY/EDELTA
10425 BDZ=PZ/EDELTA
10426 BPP=BDX*PXP+BDY*PYP+BDZ*PZP
10427 BPN=BDX*PXN+BDY*PYN+BDZ*PZN
10428 P(1,I)=PXN+BDX*GD*(FGD*BPN+EN)
10429 P(2,I)=PYN+BDY*GD*(FGD*BPN+EN)
10430 P(3,I)=PZN+BDZ*GD*(FGD*BPN+EN)
10431 E(I)=AM
10432
10433
10434 PPION(1,NNN,IRUN)=PXP+BDX*GD*(FGD*BPP+EP)
10435 PPION(2,NNN,IRUN)=PYP+BDY*GD*(FGD*BPP+EP)
10436 PPION(3,NNN,IRUN)=PZP+BDZ*GD*(FGD*BPP+EP)
10437
10438 dppion(NNN,IRUN)=dpertp(I)
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450 RPION(1,NNN,IRUN)=R(1,I)
10451 RPION(2,NNN,IRUN)=R(2,I)
10452 RPION(3,NNN,IRUN)=R(3,I)
10453
10454 devio=SQRT(EPION(NNN,IRUN)**2+PPION(1,NNN,IRUN)**2
10455 1 +PPION(2,NNN,IRUN)**2+PPION(3,NNN,IRUN)**2)
10456 2 +SQRT(E(I)**2+P(1,I)**2+P(2,I)**2+P(3,I)**2)-e1
10457
10458
10459
10460 if(nt.eq.ntmax) then
10461 tau0=hbarc/wid
10462 taudcy=tau0*(-1.)*alog(1.-RANART(NSEED))
10463
10464 taudcy=taudcy*e1/em1
10465 tfnl=tfnl+taudcy
10466 xfnl=xfnl+px1/e1*taudcy
10467 yfnl=yfnl+py1/e1*taudcy
10468 zfnl=zfnl+pz1/e1*taudcy
10469 R(1,I)=xfnl
10470 R(2,I)=yfnl
10471 R(3,I)=zfnl
10472 tfdcy(I)=tfnl
10473 RPION(1,NNN,IRUN)=xfnl
10474 RPION(2,NNN,IRUN)=yfnl
10475 RPION(3,NNN,IRUN)=zfnl
10476 tfdpi(NNN,IRUN)=tfnl
10477 endif
10478
10479
10480
10481
10482
10483 RETURN
10484 END
10485
10486
10487
10488
10489
10490
10491
10492
10493 SUBROUTINE DECAY2(IRUN,I,NNN,ISEED,wid,nt)
10494 PARAMETER (MAXSTR=150001,MAXR=1,
10495 1 AMN=0.939457,ETAM=0.5475,AMP=0.93828,AP1=0.13496,
10496 2 AP2=0.13957,AM0=1.232,PI=3.1415926)
10497 COMMON /AA/ R(3,MAXSTR)
10498
10499 COMMON /BB/ P(3,MAXSTR)
10500
10501 COMMON /CC/ E(MAXSTR)
10502
10503 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10504
10505 COMMON /RUN/NUM
10506
10507 COMMON /PA/RPION(3,MAXSTR,MAXR)
10508
10509 COMMON /PB/PPION(3,MAXSTR,MAXR)
10510
10511 COMMON /PC/EPION(MAXSTR,MAXR)
10512
10513 COMMON /PD/LPION(MAXSTR,MAXR)
10514
10515 COMMON/RNDF77/NSEED
10516
10517 SAVE
10518
10519 lbanti=LB(I)
10520
10521 DM=E(I)
10522
10523
10524 IF(iabs(LB(I)).EQ.11)THEN
10525 X3=RANART(NSEED)
10526 IF(X3.LT.(1./3))THEN
10527 LB(I)=2
10528 NLAB=2
10529 LPION(NNN,IRUN)=5
10530 EPION(NNN,IRUN)=AP2
10531 LPION(NNN+1,IRUN)=4
10532 EPION(NNN+1,IRUN)=AP1
10533 ELSEIF(X3.LT.2./3.AND.X3.GT.1./3.)THEN
10534 LB(I)=1
10535 NLAB=1
10536 LPION(NNN,IRUN)=5
10537 EPION(NNN,IRUN)=AP2
10538 LPION(NNN+1,IRUN)=3
10539 EPION(NNN+1,IRUN)=AP2
10540 ELSE
10541 LB(I)=1
10542 NLAB=1
10543 LPION(NNN,IRUN)=4
10544 EPION(NNN,IRUN)=AP1
10545 LPION(NNN+1,IRUN)=4
10546 EPION(NNN+1,IRUN)=AP1
10547 ENDIF
10548
10549 ELSEIF(iabs(LB(I)).EQ.10)THEN
10550 X3=RANART(NSEED)
10551 IF(X3.LT.(1./3))THEN
10552 LB(I)=2
10553 NLAB=2
10554 LPION(NNN,IRUN)=4
10555 EPION(NNN,IRUN)=AP1
10556 LPION(NNN+1,IRUN)=4
10557 EPION(NNN+1,IRUN)=AP1
10558 ELSEIF(X3.LT.2./3.AND.X3.GT.1./3.)THEN
10559 LB(I)=1
10560 NLAB=1
10561 LPION(NNN,IRUN)=3
10562 EPION(NNN,IRUN)=AP2
10563 LPION(NNN+1,IRUN)=4
10564 EPION(NNN+1,IRUN)=AP1
10565 ELSE
10566 LB(I)=2
10567 NLAB=2
10568 LPION(NNN,IRUN)=5
10569 EPION(NNN,IRUN)=AP2
10570 LPION(NNN+1,IRUN)=3
10571 EPION(NNN+1,IRUN)=AP2
10572 ENDIF
10573 ENDIF
10574
10575 CALL DKINE2(IRUN,I,NNN,NLAB,ISEED,wid,nt)
10576
10577
10578 if(lbanti.lt.0) then
10579 lbi=LB(I)
10580 if(lbi.eq.1.or.lbi.eq.2) then
10581 lbi=-lbi
10582 elseif(lbi.eq.3) then
10583 lbi=5
10584 elseif(lbi.eq.5) then
10585 lbi=3
10586 endif
10587 LB(I)=lbi
10588
10589 lbi=LPION(NNN,IRUN)
10590 if(lbi.eq.3) then
10591 lbi=5
10592 elseif(lbi.eq.5) then
10593 lbi=3
10594 elseif(lbi.eq.1.or.lbi.eq.2) then
10595 lbi=-lbi
10596 endif
10597 LPION(NNN,IRUN)=lbi
10598
10599 lbi=LPION(NNN+1,IRUN)
10600 if(lbi.eq.3) then
10601 lbi=5
10602 elseif(lbi.eq.5) then
10603 lbi=3
10604 elseif(lbi.eq.1.or.lbi.eq.2) then
10605 lbi=-lbi
10606 endif
10607 LPION(NNN+1,IRUN)=lbi
10608 endif
10609
10610 RETURN
10611 END
10612
10613
10614
10615
10616
10617
10618 SUBROUTINE DKINE2(IRUN,I,NNN,NLAB,ISEED,wid,nt)
10619 PARAMETER (hbarc=0.19733)
10620 PARAMETER (MAXSTR=150001,MAXR=1,
10621 1 AMN=0.939457,AMP=0.93828,ETAM=0.5475,
10622 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
10623 COMMON /AA/ R(3,MAXSTR)
10624
10625 COMMON /BB/ P(3,MAXSTR)
10626
10627 COMMON /CC/ E(MAXSTR)
10628
10629 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10630
10631 COMMON /RUN/NUM
10632
10633 COMMON /PA/RPION(3,MAXSTR,MAXR)
10634
10635 COMMON /PB/PPION(3,MAXSTR,MAXR)
10636
10637 COMMON /PC/EPION(MAXSTR,MAXR)
10638
10639 COMMON /PD/LPION(MAXSTR,MAXR)
10640
10641 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
10642 1 px1n,py1n,pz1n,dp1n
10643
10644 COMMON/tdecay/tfdcy(MAXSTR),tfdpi(MAXSTR,MAXR),tft(MAXSTR)
10645
10646 COMMON /INPUT2/ ILAB, MANYB, NTMAX, ICOLL, INSYS, IPOT, MODE,
10647 & IMOMEN, NFREQ, ICFLOW, ICRHO, ICOU, KPOTEN, KMUL
10648
10649 EXTERNAL IARFLV, INVFLV
10650 COMMON/RNDF77/NSEED
10651
10652 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
10653 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
10654 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
10655 SAVE
10656
10657
10658 PX=P(1,I)
10659 PY=P(2,I)
10660 PZ=P(3,I)
10661 RX=R(1,I)
10662 RY=R(2,I)
10663 RZ=R(3,I)
10664 DM=E(I)
10665 EDELTA=SQRT(DM**2+PX**2+PY**2+PZ**2)
10666 PM1=EPION(NNN,IRUN)
10667 PM2=EPION(NNN+1,IRUN)
10668 AM=AMN
10669 IF(NLAB.EQ.1)AM=AMP
10670
10671 PMAX2=(DM**2-(AM+PM1+PM2)**2)*(DM**2-(AM-PM1-PM2)**2)/4/DM**2
10672
10673
10674 scheck=PMAX2
10675 if(scheck.lt.0) then
10676 write(99,*) 'scheck15: ', scheck
10677 scheck=0.
10678 endif
10679 PMAX=SQRT(scheck)
10680
10681
10682
10683 CSS=1.-2.*RANART(NSEED)
10684 SSS=SQRT(1-CSS**2)
10685 FAI=2*PI*RANART(NSEED)
10686 PX0=PMAX*SSS*COS(FAI)
10687 PY0=PMAX*SSS*SIN(FAI)
10688 PZ0=PMAX*CSS
10689 EP0=SQRT(PX0**2+PY0**2+PZ0**2+AM**2)
10690
10691
10692
10693 BETAX=-PX0/(DM-EP0)
10694 BETAY=-PY0/(DM-EP0)
10695 BETAZ=-PZ0/(DM-EP0)
10696
10697
10698 scheck=1-BETAX**2-BETAY**2-BETAZ**2
10699 if(scheck.le.0) then
10700 write(99,*) 'scheck16: ', scheck
10701 stop
10702 endif
10703 GD1=1./SQRT(scheck)
10704
10705
10706 FGD1=GD1/(1+GD1)
10707
10708 Q2=((DM-EP0)/(2.*GD1))**2-PM1**2
10709 IF(Q2.LE.0.)Q2=1.E-09
10710 Q=SQRT(Q2)
10711 11 QX=1.-2.*RANART(NSEED)
10712 QY=1.-2.*RANART(NSEED)
10713 QZ=1.-2.*RANART(NSEED)
10714 QS=QX**2+QY**2+QZ**2
10715 IF(QS.GT.1.) GO TO 11
10716 PXP=Q*QX/SQRT(QS)
10717 PYP=Q*QY/SQRT(QS)
10718 PZP=Q*QZ/SQRT(QS)
10719 EP=SQRT(Q**2+PM1**2)
10720 PXN=-PXP
10721 PYN=-PYP
10722 PZN=-PZP
10723 EN=SQRT(Q**2+PM2**2)
10724
10725 BPP1=BETAX*PXP+BETAY*PYP+BETAZ*PZP
10726 BPN1=BETAX*PXN+BETAY*PYN+BETAZ*PZN
10727
10728 P1M=PXN+BETAX*GD1*(FGD1*BPN1+EN)
10729 P2M=PYN+BETAY*GD1*(FGD1*BPN1+EN)
10730 P3M=PZN+BETAZ*GD1*(FGD1*BPN1+EN)
10731 EPN=SQRT(P1M**2+P2M**2+P3M**2+PM2**2)
10732
10733 P1P=PXP+BETAX*GD1*(FGD1*BPP1+EP)
10734 P2P=PYP+BETAY*GD1*(FGD1*BPP1+EP)
10735 P3P=PZP+BETAZ*GD1*(FGD1*BPP1+EP)
10736 EPP=SQRT(P1P**2+P2P**2+P3P**2+PM1**2)
10737
10738
10739
10740
10741 GD=EDELTA/DM
10742 FGD=GD/(1.+GD)
10743 BDX=PX/EDELTA
10744 BDY=PY/EDELTA
10745 BDZ=PZ/EDELTA
10746 BP0=BDX*PX0+BDY*PY0+BDZ*PZ0
10747 BPP=BDX*P1P+BDY*P2P+BDZ*P3P
10748 BPN=BDX*P1M+BDY*P2M+BDZ*P3M
10749
10750 P(1,I)=PX0+BDX*GD*(FGD*BP0+EP0)
10751 P(2,I)=PY0+BDY*GD*(FGD*BP0+EP0)
10752 P(3,I)=PZ0+BDZ*GD*(FGD*BP0+EP0)
10753 E(I)=am
10754 ID(I)=0
10755 enucl=sqrt(p(1,i)**2+p(2,i)**2+p(3,i)**2+e(i)**2)
10756
10757
10758
10759 PPION(1,NNN,IRUN)=P1P+BDX*GD*(FGD*BPP+EPP)
10760 PPION(2,NNN,IRUN)=P2P+BDY*GD*(FGD*BPP+EPP)
10761 PPION(3,NNN,IRUN)=P3P+BDZ*GD*(FGD*BPP+EPP)
10762 epion1=sqrt(ppion(1,nnn,irun)**2
10763 & +ppion(2,nnn,irun)**2+ppion(3,nnn,irun)**2
10764 & +epion(nnn,irun)**2)
10765
10766
10767
10768
10769
10770
10771
10772
10773 RPION(1,NNN,IRUN)=R(1,I)
10774 RPION(2,NNN,IRUN)=R(2,I)
10775 RPION(3,NNN,IRUN)=R(3,I)
10776
10777 PPION(1,NNN+1,IRUN)=P1M+BDX*GD*(FGD*BPN+EPN)
10778 PPION(2,NNN+1,IRUN)=P2M+BDY*GD*(FGD*BPN+EPN)
10779 PPION(3,NNN+1,IRUN)=P3M+BDZ*GD*(FGD*BPN+EPN)
10780
10781 dppion(NNN,IRUN)=dpertp(I)
10782 dppion(NNN+1,IRUN)=dpertp(I)
10783
10784 epion2=sqrt(ppion(1,nnn+1,irun)**2
10785 & +ppion(2,nnn+1,irun)**2+ppion(3,nnn+1,irun)**2
10786 & +epion(nnn+1,irun)**2)
10787
10788
10789
10790
10791
10792
10793
10794
10795 RPION(1,NNN+1,IRUN)=R(1,I)
10796 RPION(2,NNN+1,IRUN)=R(2,I)
10797 RPION(3,NNN+1,IRUN)=R(3,I)
10798
10799
10800
10801
10802
10803
10804 devio=SQRT(EPION(NNN,IRUN)**2+PPION(1,NNN,IRUN)**2
10805 1 +PPION(2,NNN,IRUN)**2+PPION(3,NNN,IRUN)**2)
10806 2 +SQRT(E(I)**2+P(1,I)**2+P(2,I)**2+P(3,I)**2)
10807 3 +SQRT(EPION(NNN+1,IRUN)**2+PPION(1,NNN+1,IRUN)**2
10808 4 +PPION(2,NNN+1,IRUN)**2+PPION(3,NNN+1,IRUN)**2)-e1
10809
10810
10811
10812 if(nt.eq.ntmax) then
10813 tau0=hbarc/wid
10814 taudcy=tau0*(-1.)*alog(1.-RANART(NSEED))
10815
10816 taudcy=taudcy*e1/em1
10817 tfnl=tfnl+taudcy
10818 xfnl=xfnl+px1/e1*taudcy
10819 yfnl=yfnl+py1/e1*taudcy
10820 zfnl=zfnl+pz1/e1*taudcy
10821 R(1,I)=xfnl
10822 R(2,I)=yfnl
10823 R(3,I)=zfnl
10824 tfdcy(I)=tfnl
10825 RPION(1,NNN,IRUN)=xfnl
10826 RPION(2,NNN,IRUN)=yfnl
10827 RPION(3,NNN,IRUN)=zfnl
10828 tfdpi(NNN,IRUN)=tfnl
10829 RPION(1,NNN+1,IRUN)=xfnl
10830 RPION(2,NNN+1,IRUN)=yfnl
10831 RPION(3,NNN+1,IRUN)=zfnl
10832 tfdpi(NNN+1,IRUN)=tfnl
10833 endif
10834
10835
10836
10837
10838
10839 RETURN
10840 END
10841
10842
10843
10844
10845
10846
10847
10848 SUBROUTINE DRESON(I1,I2)
10849 PARAMETER (MAXSTR=150001,MAXR=1,
10850 1 AMN=0.939457,AMP=0.93828,
10851 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
10852
10853 double precision e10,e20,scheck,p1,p2,p3
10854 COMMON /AA/ R(3,MAXSTR)
10855
10856 COMMON /BB/ P(3,MAXSTR)
10857
10858 COMMON /CC/ E(MAXSTR)
10859
10860 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10861
10862 COMMON /RUN/NUM
10863
10864 COMMON /PA/RPION(3,MAXSTR,MAXR)
10865
10866 COMMON /PB/PPION(3,MAXSTR,MAXR)
10867
10868 COMMON /PC/EPION(MAXSTR,MAXR)
10869
10870 COMMON /PD/LPION(MAXSTR,MAXR)
10871
10872 SAVE
10873
10874
10875
10876
10877 E10=dSQRT(dble(E(I1))**2+dble(P(1,I1))**2
10878 1 +dble(P(2,I1))**2+dble(P(3,I1))**2)
10879 E20=dSQRT(dble(E(I2))**2+dble(P(1,I2))**2
10880 1 +dble(P(2,I2))**2+dble(P(3,I2))**2)
10881 p1=dble(P(1,I1))+dble(P(1,I2))
10882 p2=dble(P(2,I1))+dble(P(2,I2))
10883 p3=dble(P(3,I1))+dble(P(3,I2))
10884
10885 IF(iabs(LB(I2)) .EQ. 1 .OR. iabs(LB(I2)) .EQ. 2 .OR.
10886 & (iabs(LB(I2)) .GE. 6 .AND. iabs(LB(I2)) .LE. 17)) THEN
10887 E(I1)=0.
10888 I=I2
10889 ELSE
10890 E(I2)=0.
10891 I=I1
10892 ENDIF
10893 P(1,I)=P(1,I1)+P(1,I2)
10894 P(2,I)=P(2,I1)+P(2,I2)
10895 P(3,I)=P(3,I1)+P(3,I2)
10896
10897
10898
10899 scheck=(E10+E20)**2-p1**2-p2**2-p3**2
10900 if(scheck.lt.0) then
10901 write(99,*) 'scheck17: ', scheck
10902 write(99,*) 'scheck17', scheck,E10,E20,P(1,I),P(2,I),P(3,I)
10903 write(99,*) 'scheck17-1',E(I1),P(1,I1),P(2,I1),P(3,I1)
10904 write(99,*) 'scheck17-2',E(I2),P(1,I2),P(2,I2),P(3,I2)
10905 scheck=0.d0
10906 endif
10907 DM=SQRT(sngl(scheck))
10908
10909
10910 E(I)=DM
10911 RETURN
10912 END
10913
10914
10915
10916
10917 SUBROUTINE RHORES(I1,I2)
10918 PARAMETER (MAXSTR=150001,MAXR=1,
10919 1 AMN=0.939457,AMP=0.93828,
10920 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
10921
10922 double precision e10,e20,scheck,p1,p2,p3
10923 COMMON /AA/ R(3,MAXSTR)
10924
10925 COMMON /BB/ P(3,MAXSTR)
10926
10927 COMMON /CC/ E(MAXSTR)
10928
10929 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10930
10931 COMMON /RUN/NUM
10932
10933 COMMON /PA/RPION(3,MAXSTR,MAXR)
10934
10935 COMMON /PB/PPION(3,MAXSTR,MAXR)
10936
10937 COMMON /PC/EPION(MAXSTR,MAXR)
10938
10939 COMMON /PD/LPION(MAXSTR,MAXR)
10940
10941 SAVE
10942
10943
10944
10945
10946
10947 E10=dSQRT(dble(E(I1))**2+dble(P(1,I1))**2
10948 1 +dble(P(2,I1))**2+dble(P(3,I1))**2)
10949 E20=dSQRT(dble(E(I2))**2+dble(P(1,I2))**2
10950 1 +dble(P(2,I2))**2+dble(P(3,I2))**2)
10951 p1=dble(P(1,I1))+dble(P(1,I2))
10952 p2=dble(P(2,I1))+dble(P(2,I2))
10953 p3=dble(P(3,I1))+dble(P(3,I2))
10954
10955 P(1,I1)=P(1,I1)+P(1,I2)
10956 P(2,I1)=P(2,I1)+P(2,I2)
10957 P(3,I1)=P(3,I1)+P(3,I2)
10958
10959
10960
10961 scheck=(E10+E20)**2-p1**2-p2**2-p3**2
10962 if(scheck.lt.0) then
10963 write(99,*) 'scheck18: ', scheck
10964 scheck=0.d0
10965 endif
10966 DM=SQRT(sngl(scheck))
10967
10968
10969 E(I1)=DM
10970 E(I2)=0
10971 RETURN
10972 END
10973
10974
10975
10976
10977
10978
10979
10980 REAL FUNCTION XNPI(I1,I2,LA,XMAX)
10981 PARAMETER (MAXSTR=150001,MAXR=1,
10982 1 AMN=0.939457,AMP=0.93828,
10983 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
10984
10985 double precision e10,e20,scheck,p1,p2,p3
10986 COMMON /AA/ R(3,MAXSTR)
10987
10988 COMMON /BB/ P(3,MAXSTR)
10989
10990 COMMON /CC/ E(MAXSTR)
10991
10992 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10993
10994 COMMON /RUN/NUM
10995
10996 COMMON /PA/RPION(3,MAXSTR,MAXR)
10997
10998 COMMON /PB/PPION(3,MAXSTR,MAXR)
10999
11000 COMMON /PC/EPION(MAXSTR,MAXR)
11001
11002 COMMON /PD/LPION(MAXSTR,MAXR)
11003
11004 SAVE
11005 AVMASS=0.5*(AMN+AMP)
11006 AVPI=(2.*AP2+AP1)/3.
11007
11008
11009
11010
11011 E10=dSQRT(dble(E(I1))**2+dble(P(1,I1))**2
11012 1 +dble(P(2,I1))**2+dble(P(3,I1))**2)
11013 E20=dSQRT(dble(E(I2))**2+dble(P(1,I2))**2
11014 1 +dble(P(2,I2))**2+dble(P(3,I2))**2)
11015
11016
11017
11018 p1=dble(P(1,I1))+dble(P(1,I2))
11019 p2=dble(P(2,I1))+dble(P(2,I2))
11020 p3=dble(P(3,I1))+dble(P(3,I2))
11021
11022
11023
11024
11025 scheck=(E10+E20)**2-p1**2-p2**2-p3**2
11026 if(scheck.lt.0) then
11027 write(99,*) 'scheck19: ', scheck
11028 scheck=0.d0
11029 endif
11030 DM=SQRT(sngl(scheck))
11031
11032
11033 IF(DM.LE.1.1) THEN
11034 XNPI=1.e-09
11035 RETURN
11036 ENDIF
11037
11038
11039 IF(LA.EQ.1)THEN
11040 GAM=WIDTH(DM)
11041 F1=0.25*GAM**2/(0.25*GAM**2+(DM-1.232)**2)
11042 PDELT2=0.051622
11043 GO TO 10
11044 ENDIF
11045 IF(LA.EQ.0)THEN
11046 GAM=W1440(DM)
11047 F1=0.25*GAM**2/(0.25*GAM**2+(DM-1.440)**2)
11048 PDELT2=0.157897
11049 GO TO 10
11050 ENDIF
11051 IF(LA.EQ.2)THEN
11052 GAM=W1535(DM)
11053 F1=0.25*GAM**2/(0.25*GAM**2+(DM-1.535)**2)
11054 PDELT2=0.2181
11055 ENDIF
11056 10 PSTAR2=((DM**2-AVMASS**2+AVPI**2)/(2.*DM))**2-AVPI**2
11057 IF(PSTAR2.LE.0.)THEN
11058 XNPI=1.e-09
11059 ELSE
11060
11061 XNPI=F1*(PDELT2/PSTAR2)*XMAX/10.
11062 ENDIF
11063 RETURN
11064 END
11065
11066
11067 REAL FUNCTION SIGMA(SRT,ID,IOI,IOF)
11068
11069
11070
11071
11072
11073
11074
11075
11076
11077 PARAMETER (AMU=0.9383,AMP=0.1384,PI=3.1415926,HC=0.19733)
11078 SAVE
11079 IF(ID.EQ.1)THEN
11080 AMASS0=1.22
11081 T0 =0.12
11082 ELSE
11083 AMASS0=1.43
11084 T0 =0.2
11085 ENDIF
11086 IF((IOI.EQ.1).AND.(IOF.EQ.1))THEN
11087 ALFA=3.772
11088 BETA=1.262
11089 AM0=1.188
11090 T=0.09902
11091 ENDIF
11092 IF((IOI.EQ.1).AND.(IOF.EQ.0))THEN
11093 ALFA=15.28
11094 BETA=0.
11095 AM0=1.245
11096 T=0.1374
11097 ENDIF
11098 IF((IOI.EQ.0).AND.(IOF.EQ.1))THEN
11099 ALFA=146.3
11100 BETA=0.
11101 AM0=1.472
11102 T=0.02649
11103 ENDIF
11104 ZPLUS=(SRT-AMU-AMASS0)*2./T0
11105 ZMINUS=(AMU+AMP-AMASS0)*2./T0
11106 deln=ATAN(ZPLUS)-ATAN(ZMINUS)
11107 if(deln.eq.0)deln=1.E-06
11108 AMASS=AMASS0+(T0/4.)*ALOG((1.+ZPLUS**2)/(1.+ZMINUS**2))
11109 1 /deln
11110 S=SRT**2
11111 P2=S/4.-AMU**2
11112 S0=(AMU+AM0)**2
11113 P02=S0/4.-AMU**2
11114 P0=SQRT(P02)
11115 PR2=(S-(AMU-AMASS)**2)*(S-(AMU+AMASS)**2)/(4.*S)
11116 IF(PR2.GT.1.E-06)THEN
11117 PR=SQRT(PR2)
11118 ELSE
11119 PR=0.
11120 SIGMA=1.E-06
11121 RETURN
11122 ENDIF
11123 SS=AMASS**2
11124 Q2=(SS-(AMU-AMP)**2)*(SS-(AMU+AMP)**2)/(4.*SS)
11125 IF(Q2.GT.1.E-06)THEN
11126 Q=SQRT(Q2)
11127 ELSE
11128 Q=0.
11129 SIGMA=1.E-06
11130 RETURN
11131 ENDIF
11132 SS0=AM0**2
11133 Q02=(SS0-(AMU-AMP)**2)*(SS0-(AMU+AMP)**2)/(4.*SS0)
11134
11135
11136 scheck=Q02
11137 if(scheck.lt.0) then
11138 write(99,*) 'scheck20: ', scheck
11139 scheck=0.
11140 endif
11141 Q0=SQRT(scheck)
11142
11143
11144 SIGMA=PI*(HC)**2/(2.*P2)*ALFA*(PR/P0)**BETA*AM0**2*T**2
11145 1 *(Q/Q0)**3/((SS-AM0**2)**2+AM0**2*T**2)
11146 SIGMA=SIGMA*10.
11147 IF(SIGMA.EQ.0)SIGMA=1.E-06
11148 RETURN
11149 END
11150
11151
11152 REAL FUNCTION DENOM(SRT,CON)
11153
11154
11155
11156
11157
11158
11159 PARAMETER (AP1=0.13496,
11160 1 AP2=0.13957,PI=3.1415926,AVMASS=0.9383)
11161 SAVE
11162 AVPI=(AP1+2.*AP2)/3.
11163 AM0=1.232
11164 AMN=AVMASS
11165 AMP=AVPI
11166 AMAX=SRT-AVMASS
11167 AMIN=AVMASS+AVPI
11168 NMAX=200
11169 DMASS=(AMAX-AMIN)/FLOAT(NMAX)
11170 SUM=0.
11171 DO 10 I=1,NMAX+1
11172 DM=AMIN+FLOAT(I-1)*DMASS
11173 IF(CON.EQ.1.)THEN
11174 Q2=((DM**2-AMN**2+AMP**2)/(2.*DM))**2-AMP**2
11175 IF(Q2.GT.0.)THEN
11176 Q=SQRT(Q2)
11177 ELSE
11178 Q=1.E-06
11179 ENDIF
11180 TQ=0.47*(Q**3)/(AMP**2*(1.+0.6*(Q/AMP)**2))
11181 ELSE if(con.eq.2)then
11182 TQ=0.2
11183 AM0=1.44
11184 else if(con.eq.-1.)then
11185 tq=0.1
11186 am0=1.535
11187 ENDIF
11188 A1=4.*TQ*AM0**2/(AM0**2*TQ**2+(DM**2-AM0**2)**2)
11189 S=SRT**2
11190 P0=(S+DM**2-AMN**2)**2/(4.*S)-DM**2
11191 IF(P0.LE.0.)THEN
11192 P1=1.E-06
11193 ELSE
11194 P1=SQRT(P0)
11195 ENDIF
11196 F=DM*A1*P1
11197 IF((I.EQ.1).OR.(I.EQ.(NMAX+1)))THEN
11198 SUM=SUM+F*0.5
11199 ELSE
11200 SUM=SUM+F
11201 ENDIF
11202 10 CONTINUE
11203 DENOM=SUM*DMASS/(2.*PI)
11204 RETURN
11205 END
11206
11207
11208
11209
11210
11211
11212
11213
11214
11215 real function ang(srt,iseed)
11216 COMMON/RNDF77/NSEED
11217
11218 SAVE
11219
11220
11221
11222
11223 if((srt.gt.2.14).and.(srt.le.2.4))then
11224 b1s=29.03-23.75*srt+4.865*srt**2
11225 b2s=-30.33+25.53*srt-5.301*srt**2
11226 endif
11227 if(srt.gt.2.4)then
11228 b1s=0.06
11229 b2s=0.4
11230 endif
11231 x=RANART(NSEED)
11232 p=b1s/b2s
11233 q=(2.*x-1.)*(b1s+b2s)/b2s
11234 IF((-q/2.+sqrt((q/2.)**2+(p/3.)**3)).GE.0.)THEN
11235 ang1=(-q/2.+sqrt((q/2.)**2+(p/3.)**3))**(1./3.)
11236 ELSE
11237 ang1=-(q/2.-sqrt((q/2.)**2+(p/3.)**3))**(1./3.)
11238 ENDIF
11239 IF((-q/2.-sqrt((q/2.)**2+(p/3.)**3).GE.0.))THEN
11240 ang2=(-q/2.-sqrt((q/2.)**2+(p/3.)**3))**(1./3.)
11241 ELSE
11242 ang2=-(q/2.+sqrt((q/2.)**2+(p/3.)**3))**(1./3.)
11243 ENDIF
11244 ANG=ANG1+ANG2
11245 return
11246 end
11247
11248
11249 real function PNLKA(srt)
11250 SAVE
11251
11252
11253 ala=1.116
11254 aka=0.498
11255 ana=0.939
11256 t1=ala+aka
11257 if(srt.le.t1) THEN
11258 Pnlka=0
11259 Else
11260 IF(SRT.LT.1.7)sbbk=(0.9/0.091)*(SRT-T1)
11261 IF(SRT.GE.1.7)sbbk=0.09/(SRT-1.6)
11262 Pnlka=0.25*sbbk
11263
11264 pnlka=pnlka/10.
11265 endif
11266 return
11267 end
11268
11269
11270 real function PNSKA(srt)
11271 SAVE
11272
11273 if(srt.gt.3.0)then
11274 pnska=0
11275 return
11276 endif
11277 ala=1.116
11278 aka=0.498
11279 ana=0.939
11280 asa=1.197
11281 t1=asa+aka
11282 if(srt.le.t1) THEN
11283 Pnska=0
11284 return
11285 Endif
11286 IF(SRT.LT.1.9)SBB1=(0.7/0.218)*(SRT-T1)
11287 IF(SRT.GE.1.9)SBB1=0.14/(SRT-1.7)
11288 sbb2=0.
11289 if(srt.gT.1.682)sbb2=0.5*(1.-0.75*(srt-1.682))
11290 pnska=0.25*(sbb1+sbb2)
11291
11292 pnska=pnska/10.
11293 return
11294 end
11295
11296
11297
11298
11299
11300
11301
11302
11303
11304
11305
11306
11307
11308
11309
11310 Real function fkaon(p,pmax)
11311 SAVE
11312 fmax=0.148
11313 if(pmax.eq.0.)pmax=0.000001
11314 fkaon=(1.-p/pmax)*(p/pmax)**2
11315 if(fkaon.gt.fmax)fkaon=fmax
11316 fkaon=fkaon/fmax
11317 return
11318 end
11319
11320
11321
11322
11323
11324
11325
11326
11327
11328
11329
11330 Subroutine M1535(LB1,LB2,SRT,X1535)
11331 SAVE
11332 S0=2.424
11333 x1535=0.
11334 IF(SRT.LE.S0)RETURN
11335 SIGMA=2.*0.102*(SRT-S0)/(0.058+(SRT-S0)**2)
11336
11337
11338
11339
11340
11341 IF((LB1*LB2.EQ.18.AND.(LB1.EQ.2.OR.LB2.EQ.2)).OR.
11342 & (LB1*LB2.EQ.6.AND.(LB1.EQ.1.OR.LB2.EQ.1)).or.
11343 & (lb1*lb2.eq.8.AND.(LB1.EQ.1.OR.LB2.EQ.1)))then
11344
11345 X1535=SIGMA
11346 return
11347 ENDIF
11348
11349 IF(LB1*LB2.EQ.7)THEN
11350 X1535=3.*SIGMA
11351 RETURN
11352 ENDIF
11353
11354
11355
11356
11357 IF((LB1*LB2.EQ.11).OR.
11358 & (LB1*LB2.EQ.20.AND.(LB1.EQ.2.OR.LB2.EQ.2)))THEN
11359
11360 X1535=SIGMA
11361 RETURN
11362 ENDIF
11363
11364
11365
11366 IF((LB1*LB2.EQ.10.AND.(LB1.EQ.1.OR.LB2.EQ.1)).OR.
11367 & (LB1*LB2.EQ.22.AND.(LB1.EQ.2.OR.LB2.EQ.2)))
11368 & X1535=3.*SIGMA
11369
11370 RETURN
11371 END
11372
11373
11374
11375
11376
11377
11378
11379
11380
11381
11382 Subroutine N1535(LB1,LB2,SRT,X1535)
11383 SAVE
11384 S0=2.424
11385 x1535=0.
11386 IF(SRT.LE.S0)RETURN
11387 SIGMA=2.*0.102*(SRT-S0)/(0.058+(SRT-S0)**2)
11388
11389
11390
11391
11392 IF((LB1*LB2.EQ.1).OR.
11393 & (LB1.EQ.2.AND.LB2.EQ.2))then
11394
11395 X1535=SIGMA
11396 return
11397 endif
11398
11399 IF(LB1*LB2.EQ.2)then
11400 X1535=3.*SIGMA
11401 return
11402 endif
11403
11404
11405
11406
11407
11408 IF((LB1*LB2.EQ.63.AND.(LB1.EQ.7.OR.LB2.EQ.7)).OR.
11409 & (LB1*LB2.EQ.64.AND.(LB1.EQ.8.OR.LB2.EQ.8)).OR.
11410 & (LB1*LB2.EQ.48.AND.(LB1.EQ.6.OR.LB2.EQ.6)).OR.
11411 & (LB1*LB2.EQ.49.AND.(LB1.EQ.7.OR.LB2.EQ.7)))then
11412
11413 X1535=SIGMA
11414 return
11415 endif
11416
11417
11418
11419 IF((LB1*LB2.EQ.54.AND.(LB1.EQ.6.OR.LB2.EQ.6)).OR.
11420 & (LB1*LB2.EQ.56.AND.(LB1.EQ.7.OR.LB2.EQ.7)))then
11421
11422 X1535=3.*SIGMA
11423 return
11424 endif
11425
11426
11427
11428 IF((LB1.EQ.10.AND.LB2.EQ.10).OR.
11429 & (LB1.EQ.11.AND.LB2.EQ.11))X1535=SIGMA
11430
11431 IF(LB1*LB2.EQ.110.AND.(LB1.EQ.10.OR.LB2.EQ.10))X1535=3.*SIGMA
11432
11433 RETURN
11434 END
11435
11436
11437
11438 subroutine WIDA1(DMASS,rhomp,wa1,iseed)
11439 SAVE
11440
11441 PIMASS=0.137265
11442 coupa = 14.8
11443
11444 RHOMAX = DMASS-PIMASS-0.02
11445 IF(RHOMAX.LE.0)then
11446 rhomp=0.
11447
11448 wa1=-10.
11449 endif
11450 icount = 0
11451 711 rhomp=RHOMAS(RHOMAX,ISEED)
11452 icount=icount+1
11453 if(dmass.le.(pimass+rhomp)) then
11454 if(icount.le.100) then
11455 goto 711
11456 else
11457 rhomp=0.
11458
11459 wa1=-10.
11460 return
11461 endif
11462 endif
11463 qqp2=(dmass**2-(rhomp+pimass)**2)*(dmass**2-(rhomp-pimass)**2)
11464 qqp=sqrt(qqp2)/(2.0*dmass)
11465 epi=sqrt(pimass**2+qqp**2)
11466 erho=sqrt(rhomp**2+qqp**2)
11467 epirho=2.0*(epi*erho+qqp**2)**2+rhomp**2*epi**2
11468 wa1=coupa**2*qqp*epirho/(24.0*3.1416*dmass**2)
11469 return
11470 end
11471
11472
11473
11474
11475 REAL FUNCTION W1535(DMASS)
11476 SAVE
11477 AVMASS=0.938868
11478 PIMASS=0.137265
11479 AUX = 0.25*(DMASS**2-AVMASS**2-PIMASS**2)**2
11480 & -(AVMASS*PIMASS)**2
11481 IF (AUX .GT. 0.) THEN
11482 QAVAIL = SQRT(AUX / DMASS**2)
11483 ELSE
11484 QAVAIL = 1.E-06
11485 END IF
11486 W1535 = 0.15* QAVAIL/0.467
11487
11488 RETURN
11489 END
11490
11491
11492
11493
11494 REAL FUNCTION W1440(DMASS)
11495 SAVE
11496 AVMASS=0.938868
11497 PIMASS=0.137265
11498 AUX = 0.25*(DMASS**2-AVMASS**2-PIMASS**2)**2
11499 & -(AVMASS*PIMASS)**2
11500 IF (AUX .GT. 0.) THEN
11501 QAVAIL = SQRT(AUX)/DMASS
11502 ELSE
11503 QAVAIL = 1.E-06
11504 END IF
11505
11506 W1440 = 0.2* (QAVAIL/0.397)**3
11507 RETURN
11508 END
11509
11510
11511
11512
11513
11514
11515
11516
11517 REAL FUNCTION XN1535(I1,I2,LA)
11518 PARAMETER (MAXSTR=150001,MAXR=1,
11519 1 AMN=0.939457,AMP=0.93828,ETAM=0.5475,
11520 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
11521
11522 double precision e10,e20,scheck,p1,p2,p3
11523 COMMON /AA/ R(3,MAXSTR)
11524
11525 COMMON /BB/ P(3,MAXSTR)
11526
11527 COMMON /CC/ E(MAXSTR)
11528
11529 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
11530
11531 COMMON /RUN/NUM
11532
11533 COMMON /PA/RPION(3,MAXSTR,MAXR)
11534
11535 COMMON /PB/PPION(3,MAXSTR,MAXR)
11536
11537 COMMON /PC/EPION(MAXSTR,MAXR)
11538
11539 COMMON /PD/LPION(MAXSTR,MAXR)
11540
11541 SAVE
11542 AVMASS=0.5*(AMN+AMP)
11543 AVPI=(2.*AP2+AP1)/3.
11544
11545
11546
11547
11548 E10=dSQRT(dble(E(I1))**2+dble(P(1,I1))**2
11549 1 +dble(P(2,I1))**2+dble(P(3,I1))**2)
11550 E20=dSQRT(dble(E(I2))**2+dble(P(1,I2))**2
11551 1 +dble(P(2,I2))**2+dble(P(3,I2))**2)
11552
11553
11554
11555 p1=dble(P(1,I1))+dble(P(1,I2))
11556 p2=dble(P(2,I1))+dble(P(2,I2))
11557 p3=dble(P(3,I1))+dble(P(3,I2))
11558
11559
11560
11561
11562 scheck=(E10+E20)**2-p1**2-p2**2-p3**2
11563 if(scheck.lt.0) then
11564 write(99,*) 'scheck21: ', scheck
11565 scheck=0.d0
11566 endif
11567 DM=SQRT(sngl(scheck))
11568
11569
11570 IF(DM.LE.1.1) THEN
11571 XN1535=1.E-06
11572 RETURN
11573 ENDIF
11574
11575
11576 GAM=W1535(DM)
11577 GAM0=0.15
11578 F1=0.25*GAM0**2/(0.25*GAM**2+(DM-1.535)**2)
11579 IF(LA.EQ.1)THEN
11580 XMAX=11.3
11581 ELSE
11582 XMAX=74.
11583 ENDIF
11584 XN1535=F1*XMAX/10.
11585 RETURN
11586 END
11587
11588
11589
11590 REAL FUNCTION FDELTA(DMASS)
11591 SAVE
11592 AMN=0.938869
11593 AVPI=0.13803333
11594 AM0=1.232
11595 FD=0.25*WIDTH(DMASS)**2/((DMASS-1.232)**2
11596 1 +0.25*WIDTH(DMASS)**2)
11597 FDELTA=FD
11598 RETURN
11599 END
11600
11601
11602 REAL FUNCTION WIDTH(DMASS)
11603 SAVE
11604 AVMASS=0.938868
11605 PIMASS=0.137265
11606 AUX = 0.25*(DMASS**2-AVMASS**2-PIMASS**2)**2
11607 & -(AVMASS*PIMASS)**2
11608 IF (AUX .GT. 0.) THEN
11609 QAVAIL = SQRT(AUX / DMASS**2)
11610 ELSE
11611 QAVAIL = 1.E-06
11612 END IF
11613 WIDTH = 0.47 * QAVAIL**3 /
11614 & (PIMASS**2 * (1.+0.6*(QAVAIL/PIMASS)**2))
11615
11616 RETURN
11617 END
11618
11619 SUBROUTINE ddp2(SRT,ISEED,PX,PY,PZ,DM1,PNX,
11620 & PNY,PNZ,DM2,PPX,PPY,PPZ,icou1)
11621
11622
11623
11624
11625
11626
11627
11628 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
11629
11630 COMMON/RNDF77/NSEED
11631
11632 SAVE
11633 icou1=0
11634 pi=3.1415926
11635 AMN=938.925/1000.
11636 AMP=137.265/1000.
11637
11638 srt1=srt-amp-0.02
11639 ntrym=0
11640 8 call Rmasdd(srt1,1.232,1.232,1.08,
11641 & 1.08,ISEED,1,dm1,dm2)
11642 ntrym=ntrym+1
11643
11644
11645 V=0.43
11646 W=-0.84
11647
11648
11649
11650 PTMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11651 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2
11652 if(ptmax2.le.0)go to 8
11653 PTMAX=SQRT(PTMAX2)*1./3.
11654 7 PT=PTR(PTMAX,ISEED)
11655
11656 PZMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11657 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2-PT**2
11658 IF((PZMAX2.LT.0.).and.ntrym.le.100)then
11659 go to 7
11660 else
11661 pzmax2=1.E-09
11662 endif
11663 PZMAX=SQRT(PZMAX2)
11664 XMAX=2.*PZMAX/SRT
11665
11666
11667 ntryx=0
11668 fmax00=1.056
11669 x00=0.26
11670 if(abs(xmax).gt.0.26)then
11671 f00=fmax00
11672 else
11673 f00=1.+v*abs(xmax)+w*xmax**2
11674 endif
11675 9 X=XMAX*(1.-2.*RANART(NSEED))
11676 ntryx=ntryx+1
11677 xratio=(1.+V*ABS(X)+W*X**2)/f00
11678
11679 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11680
11681 PZ=0.5*SRT*X
11682
11683 fai=2.*pi*RANART(NSEED)
11684 Px=pt*cos(fai)
11685 Py=pt*sin(fai)
11686
11687
11688 ek=sqrt(dm1**2+PT**2+Pz**2)
11689
11690
11691 eln=srt-ek
11692 IF(ELN.lE.0)then
11693 icou1=-1
11694 return
11695 endif
11696
11697 bx=-Px/eln
11698 by=-Py/eln
11699 bz=-Pz/eln
11700
11701
11702 scheck=1.-bx**2-by**2-bz**2
11703 if(scheck.le.0) then
11704 write(99,*) 'scheck22: ', scheck
11705 stop
11706 endif
11707 ga=1./sqrt(scheck)
11708
11709
11710
11711 elnc=eln/ga
11712 pn2=((elnc**2+dm2**2-amp**2)/(2.*elnc))**2-dm2**2
11713 if(pn2.le.0)then
11714 icou1=-1
11715 return
11716 endif
11717 pn=sqrt(pn2)
11718
11719
11720 xptr=0.33*PN
11721
11722 PNT=PTR(xptr,ISEED)
11723
11724
11725 fain=2.*pi*RANART(NSEED)
11726 pnx=pnT*cos(fain)
11727 pny=pnT*sin(fain)
11728 SIG=1
11729 IF(X.GT.0)SIG=-1
11730
11731
11732 scheck=pn**2-PNT**2
11733 if(scheck.lt.0) then
11734 write(99,*) 'scheck23: ', scheck
11735 scheck=0.
11736 endif
11737 pnz=SIG*SQRT(scheck)
11738
11739
11740 en=sqrt(dm2**2+pnx**2+pny**2+pnz**2)
11741
11742 ppx=-pnx
11743 ppy=-pny
11744 ppz=-pnz
11745 ep=sqrt(amp**2+ppx**2+ppy**2+ppz**2)
11746
11747 PBETA = PnX*BX + PnY*By+ PnZ*Bz
11748 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + En )
11749 Pnx = BX * TRANS0 + PnX
11750 Pny = BY * TRANS0 + PnY
11751 Pnz = BZ * TRANS0 + PnZ
11752
11753 if(ep.eq.0.)ep=1.E-09
11754 PBETA = PPX*BX + PPY*By+ PPZ*Bz
11755 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + EP )
11756 PPx = BX * TRANS0 + PPX
11757 PPy = BY * TRANS0 + PPY
11758 PPz = BZ * TRANS0 + PPZ
11759 return
11760 end
11761
11762 SUBROUTINE ddrho(SRT,ISEED,PX,PY,PZ,DM1,PNX,
11763 & PNY,PNZ,DM2,PPX,PPY,PPZ,amp,icou1)
11764
11765
11766
11767
11768
11769
11770
11771 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
11772
11773 COMMON/RNDF77/NSEED
11774
11775 SAVE
11776 icou1=0
11777 pi=3.1415926
11778 AMN=938.925/1000.
11779 AMP=770./1000.
11780
11781 srt1=srt-amp-0.02
11782 ntrym=0
11783 8 call Rmasdd(srt1,1.232,1.232,1.08,
11784 & 1.08,ISEED,1,dm1,dm2)
11785 ntrym=ntrym+1
11786
11787 RHOMAX = SRT-DM1-DM2-0.02
11788 IF(RHOMAX.LE.0.and.ntrym.le.20)go to 8
11789 AMP=RHOMAS(RHOMAX,ISEED)
11790
11791
11792 V=0.43
11793 W=-0.84
11794
11795
11796
11797 PTMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11798 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2
11799
11800
11801 scheck=PTMAX2
11802 if(scheck.lt.0) then
11803 write(99,*) 'scheck24: ', scheck
11804 scheck=0.
11805 endif
11806 PTMAX=SQRT(scheck)*1./3.
11807
11808
11809 7 PT=PTR(PTMAX,ISEED)
11810
11811
11812
11813 PZMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11814 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2-PT**2
11815 IF((PZMAX2.LT.0.).and.ntrym.le.100)then
11816 go to 7
11817 else
11818 pzmax2=1.E-06
11819 endif
11820 PZMAX=SQRT(PZMAX2)
11821 XMAX=2.*PZMAX/SRT
11822
11823
11824 ntryx=0
11825 fmax00=1.056
11826 x00=0.26
11827 if(abs(xmax).gt.0.26)then
11828 f00=fmax00
11829 else
11830 f00=1.+v*abs(xmax)+w*xmax**2
11831 endif
11832 9 X=XMAX*(1.-2.*RANART(NSEED))
11833 ntryx=ntryx+1
11834 xratio=(1.+V*ABS(X)+W*X**2)/f00
11835
11836 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11837
11838 PZ=0.5*SRT*X
11839
11840 fai=2.*pi*RANART(NSEED)
11841 Px=pt*cos(fai)
11842 Py=pt*sin(fai)
11843
11844
11845 ek=sqrt(dm1**2+PT**2+Pz**2)
11846
11847
11848 eln=srt-ek
11849 IF(ELN.lE.0)then
11850 icou1=-1
11851 return
11852 endif
11853
11854 bx=-Px/eln
11855 by=-Py/eln
11856 bz=-Pz/eln
11857
11858
11859 scheck=1.-bx**2-by**2-bz**2
11860 if(scheck.le.0) then
11861 write(99,*) 'scheck25: ', scheck
11862 stop
11863 endif
11864 ga=1./sqrt(scheck)
11865
11866
11867 elnc=eln/ga
11868 pn2=((elnc**2+dm2**2-amp**2)/(2.*elnc))**2-dm2**2
11869 if(pn2.le.0)then
11870 icou1=-1
11871 return
11872 endif
11873 pn=sqrt(pn2)
11874
11875
11876 xptr=0.33*PN
11877
11878 PNT=PTR(xptr,ISEED)
11879
11880
11881 fain=2.*pi*RANART(NSEED)
11882 pnx=pnT*cos(fain)
11883 pny=pnT*sin(fain)
11884 SIG=1
11885 IF(X.GT.0)SIG=-1
11886
11887
11888 scheck=pn**2-PNT**2
11889 if(scheck.lt.0) then
11890 write(99,*) 'scheck26: ', scheck
11891 scheck=0.
11892 endif
11893 pnz=SIG*SQRT(scheck)
11894
11895
11896 en=sqrt(dm2**2+pnx**2+pny**2+pnz**2)
11897
11898 ppx=-pnx
11899 ppy=-pny
11900 ppz=-pnz
11901 ep=sqrt(amp**2+ppx**2+ppy**2+ppz**2)
11902
11903 PBETA = PnX*BX + PnY*By+ PnZ*Bz
11904 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + En )
11905 Pnx = BX * TRANS0 + PnX
11906 Pny = BY * TRANS0 + PnY
11907 Pnz = BZ * TRANS0 + PnZ
11908
11909 if(ep.eq.0.)ep=1.e-09
11910 PBETA = PPX*BX + PPY*By+ PPZ*Bz
11911 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + EP )
11912 PPx = BX * TRANS0 + PPX
11913 PPy = BY * TRANS0 + PPY
11914 PPz = BZ * TRANS0 + PPZ
11915 return
11916 end
11917
11918 SUBROUTINE pprho(SRT,ISEED,PX,PY,PZ,DM1,PNX,
11919 & PNY,PNZ,DM2,PPX,PPY,PPZ,amp,icou1)
11920
11921
11922
11923
11924
11925
11926
11927 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
11928
11929 COMMON/RNDF77/NSEED
11930
11931 SAVE
11932 ntrym=0
11933 icou1=0
11934 pi=3.1415926
11935 AMN=938.925/1000.
11936
11937 DM1=amn
11938 DM2=amn
11939
11940 RHOMAX=SRT-DM1-DM2-0.02
11941 IF(RHOMAX.LE.0)THEN
11942 ICOU=-1
11943 RETURN
11944 ENDIF
11945 AMP=RHOMAS(RHOMAX,ISEED)
11946
11947
11948 V=0.43
11949 W=-0.84
11950
11951
11952
11953 PTMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11954 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2
11955
11956
11957 scheck=PTMAX2
11958 if(scheck.lt.0) then
11959 write(99,*) 'scheck27: ', scheck
11960 scheck=0.
11961 endif
11962 PTMAX=SQRT(scheck)*1./3.
11963
11964
11965 7 PT=PTR(PTMAX,ISEED)
11966
11967
11968
11969 PZMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11970 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2-PT**2
11971 NTRYM=NTRYM+1
11972 IF((PZMAX2.LT.0.).and.ntrym.le.100)then
11973 go to 7
11974 else
11975 pzmax2=1.E-06
11976 endif
11977 PZMAX=SQRT(PZMAX2)
11978 XMAX=2.*PZMAX/SRT
11979
11980
11981 ntryx=0
11982 fmax00=1.056
11983 x00=0.26
11984 if(abs(xmax).gt.0.26)then
11985 f00=fmax00
11986 else
11987 f00=1.+v*abs(xmax)+w*xmax**2
11988 endif
11989 9 X=XMAX*(1.-2.*RANART(NSEED))
11990 ntryx=ntryx+1
11991 xratio=(1.+V*ABS(X)+W*X**2)/f00
11992
11993 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11994
11995 PZ=0.5*SRT*X
11996
11997 fai=2.*pi*RANART(NSEED)
11998 Px=pt*cos(fai)
11999 Py=pt*sin(fai)
12000
12001
12002 ek=sqrt(dm1**2+PT**2+Pz**2)
12003
12004
12005 eln=srt-ek
12006 IF(ELN.lE.0)then
12007 icou1=-1
12008 return
12009 endif
12010
12011 bx=-Px/eln
12012 by=-Py/eln
12013 bz=-Pz/eln
12014
12015
12016 scheck=1.-bx**2-by**2-bz**2
12017 if(scheck.le.0) then
12018 write(99,*) 'scheck28: ', scheck
12019 stop
12020 endif
12021 ga=1./sqrt(scheck)
12022
12023
12024 elnc=eln/ga
12025 pn2=((elnc**2+dm2**2-amp**2)/(2.*elnc))**2-dm2**2
12026 if(pn2.le.0)then
12027 icou1=-1
12028 return
12029 endif
12030 pn=sqrt(pn2)
12031
12032
12033 xptr=0.33*PN
12034
12035 PNT=PTR(xptr,ISEED)
12036
12037
12038 fain=2.*pi*RANART(NSEED)
12039 pnx=pnT*cos(fain)
12040 pny=pnT*sin(fain)
12041 SIG=1
12042 IF(X.GT.0)SIG=-1
12043
12044
12045 scheck=pn**2-PNT**2
12046 if(scheck.lt.0) then
12047 write(99,*) 'scheck29: ', scheck
12048 scheck=0.
12049 endif
12050 pnz=SIG*SQRT(scheck)
12051
12052
12053 en=sqrt(dm2**2+pnx**2+pny**2+pnz**2)
12054
12055 ppx=-pnx
12056 ppy=-pny
12057 ppz=-pnz
12058 ep=sqrt(amp**2+ppx**2+ppy**2+ppz**2)
12059
12060 PBETA = PnX*BX + PnY*By+ PnZ*Bz
12061 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + En )
12062 Pnx = BX * TRANS0 + PnX
12063 Pny = BY * TRANS0 + PnY
12064 Pnz = BZ * TRANS0 + PnZ
12065
12066 if(ep.eq.0.)ep=1.e-09
12067 PBETA = PPX*BX + PPY*By+ PPZ*Bz
12068 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + EP )
12069 PPx = BX * TRANS0 + PPX
12070 PPy = BY * TRANS0 + PPY
12071 PPz = BZ * TRANS0 + PPZ
12072 return
12073 end
12074
12075
12076 SUBROUTINE ppomga(SRT,ISEED,PX,PY,PZ,DM1,PNX,
12077 & PNY,PNZ,DM2,PPX,PPY,PPZ,icou1)
12078
12079
12080
12081
12082
12083
12084
12085 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
12086
12087 COMMON/RNDF77/NSEED
12088
12089 SAVE
12090 ntrym=0
12091 icou1=0
12092 pi=3.1415926
12093 AMN=938.925/1000.
12094 AMP=782./1000.
12095 DM1=amn
12096 DM2=amn
12097
12098
12099 V=0.43
12100 W=-0.84
12101
12102
12103
12104 PTMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
12105 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2
12106
12107
12108 scheck=PTMAX2
12109 if(scheck.lt.0) then
12110 write(99,*) 'scheck30: ', scheck
12111 scheck=0.
12112 endif
12113 PTMAX=SQRT(scheck)*1./3.
12114
12115
12116 7 PT=PTR(PTMAX,ISEED)
12117
12118
12119
12120 PZMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
12121 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2-PT**2
12122 NTRYM=NTRYM+1
12123 IF((PZMAX2.LT.0.).and.ntrym.le.100)then
12124 go to 7
12125 else
12126 pzmax2=1.E-09
12127 endif
12128 PZMAX=SQRT(PZMAX2)
12129 XMAX=2.*PZMAX/SRT
12130
12131
12132 ntryx=0
12133 fmax00=1.056
12134 x00=0.26
12135 if(abs(xmax).gt.0.26)then
12136 f00=fmax00
12137 else
12138 f00=1.+v*abs(xmax)+w*xmax**2
12139 endif
12140 9 X=XMAX*(1.-2.*RANART(NSEED))
12141 ntryx=ntryx+1
12142 xratio=(1.+V*ABS(X)+W*X**2)/f00
12143
12144 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
12145
12146 PZ=0.5*SRT*X
12147
12148 fai=2.*pi*RANART(NSEED)
12149 Px=pt*cos(fai)
12150 Py=pt*sin(fai)
12151
12152
12153 ek=sqrt(dm1**2+PT**2+Pz**2)
12154
12155
12156 eln=srt-ek
12157 IF(ELN.lE.0)then
12158 icou1=-1
12159 return
12160 endif
12161 bx=-Px/eln
12162 by=-Py/eln
12163 bz=-Pz/eln
12164
12165
12166 scheck=1.-bx**2-by**2-bz**2
12167 if(scheck.le.0) then
12168 write(99,*) 'scheck31: ', scheck
12169 stop
12170 endif
12171 ga=1./sqrt(scheck)
12172
12173
12174 elnc=eln/ga
12175 pn2=((elnc**2+dm2**2-amp**2)/(2.*elnc))**2-dm2**2
12176 if(pn2.le.0)then
12177 icou1=-1
12178 return
12179 endif
12180 pn=sqrt(pn2)
12181
12182
12183 xptr=0.33*PN
12184
12185 PNT=PTR(xptr,ISEED)
12186
12187
12188 fain=2.*pi*RANART(NSEED)
12189 pnx=pnT*cos(fain)
12190 pny=pnT*sin(fain)
12191 SIG=1
12192 IF(X.GT.0)SIG=-1
12193
12194
12195 scheck=pn**2-PNT**2
12196 if(scheck.lt.0) then
12197 write(99,*) 'scheck32: ', scheck
12198 scheck=0.
12199 endif
12200 pnz=SIG*SQRT(scheck)
12201
12202
12203 en=sqrt(dm2**2+pnx**2+pny**2+pnz**2)
12204
12205 ppx=-pnx
12206 ppy=-pny
12207 ppz=-pnz
12208 ep=sqrt(amp**2+ppx**2+ppy**2+ppz**2)
12209
12210 PBETA = PnX*BX + PnY*By+ PnZ*Bz
12211 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + En )
12212 Pnx = BX * TRANS0 + PnX
12213 Pny = BY * TRANS0 + PnY
12214 Pnz = BZ * TRANS0 + PnZ
12215
12216 if(ep.eq.0.)ep=1.E-09
12217 PBETA = PPX*BX + PPY*By+ PPZ*Bz
12218 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + EP )
12219 PPx = BX * TRANS0 + PPX
12220 PPy = BY * TRANS0 + PPY
12221 PPz = BZ * TRANS0 + PPZ
12222 return
12223 end
12224
12225
12226
12227 REAL FUNCTION RMASS(DMAX,ISEED)
12228 COMMON/RNDF77/NSEED
12229
12230 SAVE
12231
12232 DMIN = 1.078
12233
12234 IF(DMAX.LT.1.232) THEN
12235 FM=FDELTA(DMAX)
12236 ELSE
12237 FM=1.
12238 ENDIF
12239 IF(FM.EQ.0.)FM=1.E-06
12240 NTRY1=0
12241 10 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
12242 NTRY1=NTRY1+1
12243 IF((RANART(NSEED) .GT. FDELTA(DM)/FM).AND.
12244 1 (NTRY1.LE.10)) GOTO 10
12245
12246
12247
12248
12249
12250 if(dm.gt.1.47) goto 10
12251
12252 RMASS=DM
12253 RETURN
12254 END
12255
12256
12257
12258 REAL FUNCTION FRHO(DMASS)
12259 SAVE
12260 AM0=0.77
12261 WID=0.153
12262 FD=0.25*wid**2/((DMASS-AM0)**2+0.25*WID**2)
12263 FRHO=FD
12264 RETURN
12265 END
12266
12267
12268 REAL FUNCTION RHOMAS(DMAX,ISEED)
12269 COMMON/RNDF77/NSEED
12270
12271 SAVE
12272
12273 DMIN = 0.28
12274
12275 IF(DMAX.LT.0.77) THEN
12276 FM=FRHO(DMAX)
12277 ELSE
12278 FM=1.
12279 ENDIF
12280 IF(FM.EQ.0.)FM=1.E-06
12281 NTRY1=0
12282 10 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
12283 NTRY1=NTRY1+1
12284 IF((RANART(NSEED) .GT. FRHO(DM)/FM).AND.
12285 1 (NTRY1.LE.10)) GOTO 10
12286
12287
12288 if(dm.gt.1.07) goto 10
12289
12290 RHOMAS=DM
12291 RETURN
12292 END
12293
12294
12295
12296 real function X2pi(srt)
12297
12298
12299
12300
12301
12302
12303
12304
12305
12306 real xarray(15), earray(15)
12307 SAVE
12308 data earray /2.23,2.81,3.67,4.0,4.95,5.52,5.97,6.04,
12309 &6.6,6.9,7.87,8.11,10.01,16.0,19./
12310 data xarray /1.22,2.51,2.67,2.95,2.96,2.84,2.8,3.2,
12311 &2.7,3.0,2.54,2.46,2.4,1.66,1.5/
12312
12313 pmass=0.9383
12314
12315
12316
12317 x2pi=0.000001
12318 if(srt.le.2.2)return
12319 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
12320 if (plab .lt. earray(1)) then
12321 x2pi = xarray(1)
12322 return
12323 end if
12324
12325
12326
12327 do 1001 ie = 1,15
12328 if (earray(ie) .eq. plab) then
12329 x2pi= xarray(ie)
12330 return
12331 else if (earray(ie) .gt. plab) then
12332 ymin = alog(xarray(ie-1))
12333 ymax = alog(xarray(ie))
12334 xmin = alog(earray(ie-1))
12335 xmax = alog(earray(ie))
12336 X2pi = exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
12337 & /(xmax-xmin) )
12338 return
12339 end if
12340 1001 continue
12341 return
12342 END
12343
12344
12345
12346 real function X3pi(srt)
12347
12348
12349
12350
12351
12352
12353
12354
12355 real xarray(12), earray(12)
12356 SAVE
12357 data xarray /0.02,0.4,1.15,1.60,2.19,2.85,2.30,
12358 &3.10,2.47,2.60,2.40,1.70/
12359 data earray /2.23,2.81,3.67,4.00,4.95,5.52,5.97,
12360 &6.04,6.60,6.90,10.01,19./
12361
12362 pmass=0.9383
12363
12364
12365
12366 x3pi=1.E-06
12367 if(srt.le.2.3)return
12368 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
12369 if (plab .lt. earray(1)) then
12370 x3pi = xarray(1)
12371 return
12372 end if
12373
12374
12375
12376 do 1001 ie = 1,12
12377 if (earray(ie) .eq. plab) then
12378 x3pi= xarray(ie)
12379 return
12380 else if (earray(ie) .gt. plab) then
12381 ymin = alog(xarray(ie-1))
12382 ymax = alog(xarray(ie))
12383 xmin = alog(earray(ie-1))
12384 xmax = alog(earray(ie))
12385 X3pi= exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
12386 & /(xmax-xmin) )
12387 return
12388 end if
12389 1001 continue
12390 return
12391 END
12392
12393
12394
12395
12396 real function X33pi(srt)
12397
12398
12399
12400
12401
12402
12403
12404
12405 real xarray(12), earray(12)
12406 SAVE
12407 data xarray /0.02,0.22,0.74,1.10,1.76,1.84,2.20,
12408 &2.40,2.15,2.60,2.30,1.70/
12409 data earray /2.23,2.81,3.67,4.00,4.95,5.52,5.97,
12410 &6.04,6.60,6.90,10.01,19./
12411
12412 pmass=0.9383
12413 x33pi=1.E-06
12414 if(srt.le.2.3)return
12415
12416
12417
12418 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
12419 if (plab .lt. earray(1)) then
12420 x33pi = xarray(1)
12421 return
12422 end if
12423
12424
12425
12426 do 1001 ie = 1,12
12427 if (earray(ie) .eq. plab) then
12428 x33pi= xarray(ie)
12429 return
12430 else if (earray(ie) .gt. plab) then
12431 ymin = alog(xarray(ie-1))
12432 ymax = alog(xarray(ie))
12433 xmin = alog(earray(ie-1))
12434 xmax = alog(earray(ie))
12435 x33pi= exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
12436 & /(xmax-xmin))
12437 return
12438 end if
12439 1001 continue
12440 return
12441 END
12442
12443
12444 REAL FUNCTION X4pi(SRT)
12445 SAVE
12446
12447
12448 akp=0.498
12449 ak0=0.498
12450 ana=0.94
12451 ada=1.232
12452 al=1.1157
12453 as=1.1197
12454 pmass=0.9383
12455 ES=SRT
12456 IF(ES.LE.4)THEN
12457 X4pi=0.
12458 ELSE
12459
12460 xpp2pi=4.*x2pi(es)
12461
12462 xpp3pi=3.*(x3pi(es)+x33pi(es))
12463
12464 pps1=sigma(es,1,1,0)+0.5*sigma(es,1,1,1)
12465 pps2=1.5*sigma(es,1,1,1)
12466 ppsngl=pps1+pps2+s1535(es)
12467
12468
12469 xk1=0
12470 xk2=0
12471 xk3=0
12472 xk4=0
12473 t1nlk=ana+al+akp
12474 t2nlk=ana+al-akp
12475 if(es.le.t1nlk)go to 333
12476 pmnlk2=(es**2-t1nlk**2)*(es**2-t2nlk**2)/(4.*es**2)
12477 pmnlk=sqrt(pmnlk2)
12478 xk1=pplpk(es)
12479
12480 t1dlk=ada+al+akp
12481 t2dlk=ada+al-akp
12482 if(es.le.t1dlk)go to 333
12483 pmdlk2=(es**2-t1dlk**2)*(es**2-t2dlk**2)/(4.*es**2)
12484 pmdlk=sqrt(pmdlk2)
12485 xk3=pplpk(es)
12486
12487 t1nsk=ana+as+akp
12488 t2nsk=ana+as-akp
12489 if(es.le.t1nsk)go to 333
12490 pmnsk2=(es**2-t1nsk**2)*(es**2-t2nsk**2)/(4.*es**2)
12491 pmnsk=sqrt(pmnsk2)
12492 xk2=ppk1(es)+ppk0(es)
12493
12494 t1DSk=aDa+aS+akp
12495 t2DSk=aDa+aS-akp
12496 if(es.le.t1dsk)go to 333
12497 pmDSk2=(es**2-t1DSk**2)*(es**2-t2DSk**2)/(4.*es**2)
12498 pmDSk=sqrt(pmDSk2)
12499 xk4=ppk1(es)+ppk0(es)
12500
12501 333 XKAON=3.*(xk1+xk2+xk3+xk4)
12502
12503 x4pi=pp1(es)-ppsngl-xpp2pi-xpp3pi-XKAON
12504 if(x4pi.le.0)x4pi=1.E-06
12505 ENDIF
12506 RETURN
12507 END
12508
12509
12510
12511 real function pp1(srt)
12512 SAVE
12513
12514
12515
12516
12517
12518
12519 pmass=0.9383
12520 PP1=0.
12521
12522
12523
12524 plab2=((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2
12525 IF(PLAB2.LE.0)RETURN
12526 plab=sqrt(PLAB2)
12527 pmin=0.968
12528 pmax=2080
12529 if ((plab .lt. pmin).or.(plab.gt.pmax)) then
12530 pp1 = 0.
12531 return
12532 end if
12533
12534 a=30.9
12535 b=-28.9
12536 c=0.192
12537 d=-0.835
12538 an=-2.46
12539 pp1 = a+b*(plab**an)+c*(alog(plab))**2
12540 if(pp1.le.0)pp1=0.0
12541 return
12542 END
12543
12544
12545
12546 real function pp2(srt)
12547 SAVE
12548
12549
12550
12551
12552
12553
12554 pmass=0.9383
12555
12556
12557
12558
12559
12560 scheck=((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2
12561 if(scheck.lt.0) then
12562 write(99,*) 'scheck33: ', scheck
12563 scheck=0.
12564 endif
12565 plab=sqrt(scheck)
12566
12567
12568 pmin=2.
12569 pmax=2050
12570 if(plab.gt.pmax)then
12571 pp2=8.
12572 return
12573 endif
12574 if(plab .lt. pmin)then
12575 pp2 = 25.
12576 return
12577 end if
12578
12579 a=11.2
12580 b=25.5
12581 c=0.151
12582 d=-1.62
12583 an=-1.12
12584 pp2 = a+b*(plab**an)+c*(alog(plab))**2+d*alog(plab)
12585 if(pp2.le.0)pp2=0
12586 return
12587 END
12588
12589
12590
12591
12592 real function ppt(srt)
12593 SAVE
12594
12595
12596
12597
12598
12599
12600 pmass=0.9383
12601
12602
12603
12604
12605
12606 scheck=((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2
12607 if(scheck.lt.0) then
12608 write(99,*) 'scheck34: ', scheck
12609 scheck=0.
12610 endif
12611 plab=sqrt(scheck)
12612
12613
12614 pmin=3.
12615 pmax=2100
12616 if ((plab .lt. pmin).or.(plab.gt.pmax)) then
12617 ppt = 55.
12618 return
12619 end if
12620
12621 a=45.6
12622 b=219.0
12623 c=0.410
12624 d=-3.41
12625 an=-4.23
12626 ppt = a+b*(plab**an)+c*(alog(plab))**2+d*alog(plab)
12627 if(ppt.le.0)ppt=0.0
12628 return
12629 END
12630
12631
12632
12633
12634
12635
12636
12637
12638
12639
12640
12641 real function s1535(SRT)
12642 SAVE
12643 S0=2.424
12644 s1535=0.
12645 IF(SRT.LE.S0)RETURN
12646 S1535=2.*0.102*(SRT-S0)/(0.058+(SRT-S0)**2)
12647 return
12648 end
12649
12650
12651 subroutine tablem
12652
12653
12654
12655 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
12656
12657 SAVE
12658 ptmax=2.01
12659 anorm=ptdis(ptmax)
12660 do 10 L=0,200
12661 x=0.01*float(L+1)
12662 rr=ptdis(x)/anorm
12663 earray(l)=rr
12664 xarray(l)=x
12665 10 continue
12666 RETURN
12667 end
12668
12669 real function ptdis(x)
12670 SAVE
12671
12672
12673
12674 b=3.78
12675 c=0.47
12676 d=3.60
12677
12678
12679 ptdis=1./(2.*b)*(1.-exp(-b*x**2))-c/d*x*exp(-d*x)
12680 1 -c/D**2*(exp(-d*x)-1.)
12681 return
12682 end
12683
12684 subroutine ppxS(lb1,lb2,srt,ppsig,spprho,ipp)
12685
12686
12687
12688
12689
12690
12691
12692
12693
12694
12695
12696
12697
12698
12699
12700
12701 parameter (amp=0.14,pi=3.1415926)
12702 SAVE
12703 PPSIG=0.0
12704
12705
12706 spprho=0.0
12707
12708
12709 IPP=0
12710 IF(SRT.LE.0.3)RETURN
12711 q=sqrt((srt/2)**2-amp**2)
12712 esigma=5.8*amp
12713 tsigma=2.06*q
12714 erho=0.77
12715 trho=0.095*q*(q/amp/(1.+(q/erho)**2))**2
12716 esi=esigma-srt
12717 if(esi.eq.0)then
12718 d00=pi/2.
12719 go to 10
12720 endif
12721 d00=atan(tsigma/2./esi)
12722 10 erh=erho-srt
12723 if(erh.eq.0.)then
12724 d11=pi/2.
12725 go to 20
12726 endif
12727 d11=atan(trho/2./erh)
12728 20 d20=-0.12*q/amp
12729 s0=8.*pi*sin(d00)**2/q**2
12730 s1=8*pi*3*sin(d11)**2/q**2
12731 s2=8*pi*5*sin(d20)**2/q**2
12732
12733 s0=s0*0.197**2*10.
12734 s1=s1*0.197**2*10.
12735 s2=s2*0.197**2*10.
12736
12737
12738 spprho=s1/2.
12739
12740 IF(LB1.EQ.5.AND.LB2.EQ.5)THEN
12741 IPP=1
12742 PPSIG=S2
12743 RETURN
12744 ENDIF
12745
12746 IF((LB1.EQ.5.AND.LB2.EQ.4).OR.(LB1.EQ.4.AND.LB2.EQ.5))THEN
12747 IPP=2
12748 PPSIG=S2/2.+S1/2.
12749 RETURN
12750 ENDIF
12751
12752 IF((LB1.EQ.5.AND.LB2.EQ.3).OR.(LB1.EQ.3.AND.LB2.EQ.5))THEN
12753 IPP=3
12754 PPSIG=S2/6.+S1/2.+S0/3.
12755 RETURN
12756 ENDIF
12757
12758 IF(LB1.EQ.4.AND.LB2.EQ.4)THEN
12759 IPP=4
12760 PPSIG=2*S2/3.+S0/3.
12761 RETURN
12762 ENDIF
12763
12764 IF((LB1.EQ.4.AND.LB2.EQ.3).OR.(LB1.EQ.3.AND.LB2.EQ.4))THEN
12765 IPP=5
12766 PPSIG=S2/2.+S1/2.
12767 RETURN
12768 ENDIF
12769
12770 IF(LB1.EQ.3.AND.LB2.EQ.3)THEN
12771 IPP=6
12772 PPSIG=S2
12773 ENDIF
12774 return
12775 end
12776
12777
12778
12779
12780
12781
12782 real function pplpk(srt)
12783 SAVE
12784
12785
12786
12787
12788
12789
12790 pmass=0.9383
12791
12792
12793
12794
12795 pplpk=0.
12796
12797
12798 scheck=((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2
12799 if(scheck.lt.0) then
12800 write(99,*) 'scheck35: ', scheck
12801 scheck=0.
12802 endif
12803 plab=sqrt(scheck)
12804
12805
12806 pmin=2.82
12807 pmax=25.0
12808 if(plab.gt.pmax)then
12809 pplpk=0.036
12810 return
12811 endif
12812 if(plab .lt. pmin)then
12813 pplpk = 0.
12814 return
12815 end if
12816
12817 a=0.0654
12818 b=-3.16
12819 c=-0.0029
12820 an=-4.14
12821 pplpk = a+b*(plab**an)+c*(alog(plab))**2
12822 if(pplpk.le.0)pplpk=0
12823 return
12824 END
12825
12826
12827
12828
12829 real function ppk0(srt)
12830
12831
12832
12833
12834
12835 real xarray(7), earray(7)
12836 SAVE
12837 data xarray /0.030,0.025,0.025,0.026,0.02,0.014,0.06/
12838 data earray /3.67,4.95,5.52,6.05,6.92,7.87,10./
12839
12840 pmass=0.9383
12841
12842
12843
12844 ppk0=0
12845 if(srt.le.2.63)return
12846 if(srt.gt.4.54)then
12847 ppk0=0.037
12848 return
12849 endif
12850 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
12851 if (plab .lt. earray(1)) then
12852 ppk0 = xarray(1)
12853 return
12854 end if
12855
12856
12857
12858 do 1001 ie = 1,7
12859 if (earray(ie) .eq. plab) then
12860 ppk0 = xarray(ie)
12861 go to 10
12862 else if (earray(ie) .gt. plab) then
12863 ymin = alog(xarray(ie-1))
12864 ymax = alog(xarray(ie))
12865 xmin = alog(earray(ie-1))
12866 xmax = alog(earray(ie))
12867 ppk0 = exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
12868 &/(xmax-xmin) )
12869 go to 10
12870 end if
12871 1001 continue
12872 10 continue
12873 return
12874 END
12875
12876
12877
12878 real function ppk1(srt)
12879
12880
12881
12882
12883
12884 real xarray(7), earray(7)
12885 SAVE
12886 data xarray /0.013,0.025,0.016,0.012,0.017,0.029,0.025/
12887 data earray /3.67,4.95,5.52,5.97,6.05,6.92,7.87/
12888
12889 pmass=0.9383
12890
12891
12892
12893 ppk1=0.
12894 if(srt.le.2.63)return
12895 if(srt.gt.4.08)then
12896 ppk1=0.025
12897 return
12898 endif
12899 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
12900 if (plab .lt. earray(1)) then
12901 ppk1 =xarray(1)
12902 return
12903 end if
12904
12905
12906
12907 do 1001 ie = 1,7
12908 if (earray(ie) .eq. plab) then
12909 ppk1 = xarray(ie)
12910 go to 10
12911 else if (earray(ie) .gt. plab) then
12912 ymin = alog(xarray(ie-1))
12913 ymax = alog(xarray(ie))
12914 xmin = alog(earray(ie-1))
12915 xmax = alog(earray(ie))
12916 ppk1 = exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
12917 &/(xmax-xmin) )
12918 go to 10
12919 end if
12920 1001 continue
12921 10 continue
12922 return
12923 END
12924
12925
12926
12927 SUBROUTINE CRPN(PX,PY,PZ,SRT,I1,I2,
12928 & IBLOCK,xkaon0,xkaon,Xphi,xphin)
12929
12930
12931
12932
12933
12934
12935
12936
12937
12938
12939
12940
12941
12942
12943 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
12944 1 AMP=0.93828,AP1=0.13496,APHI=1.020,
12945 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
12946 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
12947 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
12948 COMMON /AA/ R(3,MAXSTR)
12949
12950 COMMON /BB/ P(3,MAXSTR)
12951
12952 COMMON /CC/ E(MAXSTR)
12953
12954 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
12955
12956 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
12957
12958 COMMON/RNDF77/NSEED
12959
12960 SAVE
12961
12962 PX0=PX
12963 PY0=PY
12964 PZ0=PZ
12965 iblock=1
12966 x1=RANART(NSEED)
12967 ianti=0
12968 if(lb(i1).lt.0 .or. lb(i2).lt.0) ianti=1
12969 if(xkaon0/(xkaon+Xphi).ge.x1)then
12970
12971
12972 IBLOCK=7
12973 if(ianti .eq. 1)iblock=-7
12974 NTAG=0
12975
12976
12977
12978 KAONC=0
12979 IF(PNLKA(SRT)/(PNLKA(SRT)
12980 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
12981 IF(E(I1).LE.0.2)THEN
12982 LB(I1)=23
12983 E(I1)=AKA
12984 IF(KAONC.EQ.1)THEN
12985 LB(I2)=14
12986 E(I2)=ALA
12987 ELSE
12988 LB(I2) = 15 + int(3 * RANART(NSEED))
12989 E(I2)=ASA
12990 ENDIF
12991 if(ianti .eq. 1)then
12992 lb(i1) = 21
12993 lb(i2) = -lb(i2)
12994 endif
12995 ELSE
12996 LB(I2)=23
12997 E(I2)=AKA
12998 IF(KAONC.EQ.1)THEN
12999 LB(I1)=14
13000 E(I1)=ALA
13001 ELSE
13002 LB(I1) = 15 + int(3 * RANART(NSEED))
13003 E(I1)=ASA
13004 ENDIF
13005 if(ianti .eq. 1)then
13006 lb(i2) = 21
13007 lb(i1) = -lb(i1)
13008 endif
13009 ENDIF
13010 EM1=E(I1)
13011 EM2=E(I2)
13012 go to 50
13013
13014 elseif(Xphi/(xkaon+Xphi).ge.x1)then
13015 iblock=222
13016 if(xphin/Xphi .ge. RANART(NSEED))then
13017 LB(I1)= 1+int(2*RANART(NSEED))
13018 E(I1)=AMN
13019 else
13020 LB(I1)= 6+int(4*RANART(NSEED))
13021 E(I1)=AM0
13022 endif
13023
13024 if(ianti .eq. 1)lb(i1)=-lb(i1)
13025 LB(I2)= 29
13026 E(I2)=APHI
13027 EM1=E(I1)
13028 EM2=E(I2)
13029 go to 50
13030 else
13031
13032 IF(RANART(NSEED).LE.TWOPI(SRT)/
13033 & (TWOPI(SRT)+THREPI(SRT)+FOURPI(SRT)))THEN
13034 iblock=77
13035 ELSE
13036 IF(THREPI(SRT)/(THREPI(SRT)+FOURPI(SRT)).
13037 & GT.RANART(NSEED))THEN
13038 IBLOCK=78
13039 ELSE
13040 IBLOCK=79
13041 ENDIF
13042 endif
13043 ntag=0
13044
13045
13046 X2=RANART(NSEED)
13047
13048 if(iblock.eq.77)then
13049
13050 dmax=srt-ap1-0.02
13051 dm=rmass(dmax,iseed)
13052
13053
13054
13055
13056 if( ((lb(i1).eq.1.and.lb(i2).eq.5).
13057 & or.(lb(i1).eq.5.and.lb(i2).eq.1))
13058 & .OR. ((lb(i1).eq.-1.and.lb(i2).eq.3).
13059 & or.(lb(i1).eq.3.and.lb(i2).eq.-1)) )then
13060 if(iabs(lb(i1)).eq.1)then
13061 ii = i1
13062 IF(X2.LE.0.5)THEN
13063 lb(i1)=8
13064 e(i1)=dm
13065 lb(i2)=5
13066 e(i2)=ap1
13067 go to 40
13068 ELSE
13069 lb(i1)=9
13070 e(i1)=dm
13071 lb(i2)=4
13072 ipi = 4
13073 e(i2)=ap1
13074 go to 40
13075 endif
13076 else
13077 ii = i2
13078 IF(X2.LE.0.5)THEN
13079 lb(i2)=8
13080 e(i2)=dm
13081 lb(i1)=5
13082 e(i1)=ap1
13083 go to 40
13084 ELSE
13085 lb(i2)=9
13086 e(i2)=dm
13087 lb(i1)=4
13088 e(i1)=ap1
13089 go to 40
13090 endif
13091 endif
13092 endif
13093
13094 if( ((lb(i1).eq.1.and.lb(i2).eq.3).
13095 & or.(lb(i1).eq.3.and.lb(i2).eq.1))
13096 & .OR. ((lb(i1).eq.-1.and.lb(i2).eq.5).
13097 & or.(lb(i1).eq.5.and.lb(i2).eq.-1)) )then
13098 if(iabs(lb(i1)).eq.1)then
13099 ii = i1
13100 IF(X2.LE.0.33)THEN
13101 lb(i1)=6
13102 e(i1)=dm
13103 lb(i2)=5
13104 e(i2)=ap1
13105 go to 40
13106 ENDIF
13107 if(X2.gt.0.33.and.X2.le.0.67)then
13108 lb(i1)=7
13109 e(i1)=dm
13110 lb(i2)=4
13111 e(i2)=ap1
13112 go to 40
13113 endif
13114 if(X2.gt.0.67)then
13115 lb(i1)=8
13116 e(i1)=dm
13117 lb(i2)=3
13118 e(i2)=ap1
13119 go to 40
13120 endif
13121 else
13122 ii = i2
13123 IF(X2.LE.0.33)THEN
13124 lb(i2)=6
13125 e(i2)=dm
13126 lb(i1)=5
13127 e(i1)=ap1
13128 go to 40
13129 ENDIF
13130 if(X2.gt.0.33.and.X2.le.0.67)then
13131 lb(i2)=7
13132 e(i2)=dm
13133 lb(i1)=4
13134 e(i1)=ap1
13135 go to 40
13136 endif
13137 if(X2.gt.0.67)then
13138 lb(i2)=8
13139 e(i2)=dm
13140 lb(i1)=3
13141 e(i1)=ap1
13142 go to 40
13143 endif
13144 endif
13145 endif
13146
13147 if( ((lb(i1).eq.2.and.lb(i2).eq.5).
13148 & or.(lb(i1).eq.5.and.lb(i2).eq.2))
13149 & .OR. ((lb(i1).eq.-2.and.lb(i2).eq.3).
13150 & or.(lb(i1).eq.3.and.lb(i2).eq.-2)) )then
13151 if(iabs(lb(i1)).eq.2)then
13152 ii = i1
13153 IF(X2.LE.0.33)THEN
13154 lb(i1)=8
13155 e(i1)=dm
13156 lb(i2)=4
13157 e(i2)=ap1
13158 go to 40
13159 ENDIF
13160 if(X2.gt.0.33.and.X2.le.0.67)then
13161 lb(i1)=7
13162 e(i1)=dm
13163 lb(i2)=5
13164 e(i2)=ap1
13165 go to 40
13166 endif
13167 if(X2.gt.0.67)then
13168 lb(i1)=9
13169 e(i1)=dm
13170 lb(i2)=3
13171 e(i2)=ap1
13172 go to 40
13173 endif
13174 else
13175 ii = i2
13176 IF(X2.LE.0.33)THEN
13177 lb(i2)=8
13178 e(i2)=dm
13179 lb(i1)=4
13180 e(i1)=ap1
13181 go to 40
13182 ENDIF
13183 if(X2.gt.0.33.and.X2.le.0.67)then
13184 lb(i2)=7
13185 e(i2)=dm
13186 lb(i1)=5
13187 e(i1)=ap1
13188 go to 40
13189 endif
13190 if(X2.gt.0.67)then
13191 lb(i2)=9
13192 e(i2)=dm
13193 lb(i1)=3
13194 e(i1)=ap1
13195 go to 40
13196 endif
13197 endif
13198 endif
13199
13200 if((iabs(lb(i1)).eq.1.and.lb(i2).eq.4).
13201 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.1))then
13202 if(iabs(lb(i1)).eq.1)then
13203 ii = i1
13204 IF(X2.LE.0.33)THEN
13205 lb(i1)=8
13206 e(i1)=dm
13207 lb(i2)=4
13208 e(i2)=ap1
13209 go to 40
13210 ENDIF
13211 if(X2.gt.0.33.and.X2.le.0.67)then
13212 lb(i1)=7
13213 e(i1)=dm
13214 lb(i2)=5
13215 e(i2)=ap1
13216 go to 40
13217 endif
13218 if(X2.gt.0.67)then
13219 lb(i1)=9
13220 e(i1)=dm
13221 lb(i2)=3
13222 e(i2)=ap1
13223 go to 40
13224 endif
13225 else
13226 ii = i2
13227 IF(X2.LE.0.33)THEN
13228 lb(i2)=8
13229 e(i2)=dm
13230 lb(i1)=4
13231 e(i1)=ap1
13232 go to 40
13233 ENDIF
13234 if(X2.gt.0.33.and.X2.le.0.67)then
13235 lb(i2)=7
13236 e(i2)=dm
13237 lb(i1)=5
13238 e(i1)=ap1
13239 go to 40
13240 endif
13241 if(X2.gt.0.67)then
13242 lb(i2)=9
13243 e(i2)=dm
13244 lb(i1)=3
13245 e(i1)=ap1
13246 go to 40
13247 endif
13248 endif
13249 endif
13250
13251 if( ((lb(i1).eq.2.and.lb(i2).eq.3).
13252 & or.(lb(i1).eq.3.and.lb(i2).eq.2))
13253 & .OR. ((lb(i1).eq.-2.and.lb(i2).eq.5).
13254 & or.(lb(i1).eq.5.and.lb(i2).eq.-2)) )then
13255 if(iabs(lb(i1)).eq.2)then
13256 ii = i1
13257 IF(X2.LE.0.5)THEN
13258 lb(i1)=6
13259 e(i1)=dm
13260 lb(i2)=4
13261 e(i2)=ap1
13262 go to 40
13263 ELSE
13264 lb(i1)=7
13265 e(i1)=dm
13266 lb(i2)=3
13267 e(i2)=ap1
13268 go to 40
13269 endif
13270 else
13271 ii = i2
13272 IF(X2.LE.0.5)THEN
13273 lb(i2)=6
13274 e(i2)=dm
13275 lb(i1)=4
13276 e(i1)=ap1
13277 go to 40
13278 ELSE
13279 lb(i2)=7
13280 e(i2)=dm
13281 lb(i1)=3
13282 e(i1)=ap1
13283 go to 40
13284 endif
13285 endif
13286 ENDIF
13287
13288 if((iabs(lb(i1)).eq.2.and.lb(i2).eq.4).
13289 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.2))then
13290 if(iabs(lb(i1)).eq.2)then
13291 ii = i1
13292 IF(X2.LE.0.33)THEN
13293 lb(i1)=7
13294 e(i1)=dm
13295 lb(i2)=4
13296 e(i2)=ap1
13297 go to 40
13298 Endif
13299 IF(X2.LE.0.67.AND.X2.GT.0.33)THEN
13300 lb(i1)=6
13301 e(i1)=dm
13302 lb(i2)=5
13303 e(i2)=ap1
13304 go to 40
13305 endif
13306 IF(X2.GT.0.67)THEN
13307 LB(I1)=8
13308 E(I1)=DM
13309 LB(I2)=3
13310 E(I2)=AP1
13311 GO TO 40
13312 ENDIF
13313 else
13314 ii = i2
13315 IF(X2.LE.0.33)THEN
13316 lb(i2)=7
13317 e(i2)=dm
13318 lb(i1)=4
13319 e(i1)=ap1
13320 go to 40
13321 ENDIF
13322 IF(X2.LE.0.67.AND.X2.GT.0.33)THEN
13323 lb(i2)=6
13324 e(i2)=dm
13325 lb(i1)=5
13326 e(i1)=ap1
13327 go to 40
13328 endif
13329 IF(X2.GT.0.67)THEN
13330 LB(I2)=8
13331 E(I2)=DM
13332 LB(I1)=3
13333 E(I1)=AP1
13334 GO TO 40
13335 ENDIF
13336 endif
13337 endif
13338 ENDIF
13339 if(iblock.eq.78)then
13340 call Rmasdd(srt,1.232,0.77,1.08,
13341 & 0.28,ISEED,4,dm,ameson)
13342 arho=AMESON
13343
13344
13345 if( ((lb(i1).eq.1.and.lb(i2).eq.5).
13346 & or.(lb(i1).eq.5.and.lb(i2).eq.1))
13347 & .OR. ((lb(i1).eq.-1.and.lb(i2).eq.3).
13348 & or.(lb(i1).eq.3.and.lb(i2).eq.-1)) )then
13349 if(iabs(lb(i1)).eq.1)then
13350 ii = i1
13351 IF(X2.LE.0.5)THEN
13352 lb(i1)=8
13353 e(i1)=dm
13354 lb(i2)=27
13355 e(i2)=arho
13356 go to 40
13357 ELSE
13358 lb(i1)=9
13359 e(i1)=dm
13360 lb(i2)=26
13361 e(i2)=arho
13362 go to 40
13363 endif
13364 else
13365 ii = i2
13366 IF(X2.LE.0.5)THEN
13367 lb(i2)=8
13368 e(i2)=dm
13369 lb(i1)=27
13370 e(i1)=arho
13371 go to 40
13372 ELSE
13373 lb(i2)=9
13374 e(i2)=dm
13375 lb(i1)=26
13376 e(i1)=arho
13377 go to 40
13378 endif
13379 endif
13380 endif
13381
13382 if( ((lb(i1).eq.1.and.lb(i2).eq.3).
13383 & or.(lb(i1).eq.3.and.lb(i2).eq.1))
13384 & .OR. ((lb(i1).eq.-1.and.lb(i2).eq.5).
13385 & or.(lb(i1).eq.5.and.lb(i2).eq.-1)) )then
13386 if(iabs(lb(i1)).eq.1)then
13387 ii = i1
13388 IF(X2.LE.0.33)THEN
13389 lb(i1)=6
13390 e(i1)=dm
13391 lb(i2)=27
13392 e(i2)=arho
13393 go to 40
13394 ENDIF
13395 if(X2.gt.0.33.and.X2.le.0.67)then
13396 lb(i1)=7
13397 e(i1)=dm
13398 lb(i2)=26
13399 e(i2)=arho
13400 go to 40
13401 endif
13402 if(X2.gt.0.67)then
13403 lb(i1)=8
13404 e(i1)=dm
13405 lb(i2)=25
13406 e(i2)=arho
13407 go to 40
13408 endif
13409 else
13410 ii = i2
13411 IF(X2.LE.0.33)THEN
13412 lb(i2)=6
13413 e(i2)=dm
13414 lb(i1)=27
13415 e(i1)=arho
13416 go to 40
13417 ENDIF
13418 if(X2.gt.0.33.and.X2.le.0.67)then
13419 lb(i2)=7
13420 e(i2)=dm
13421 lb(i1)=26
13422 e(i1)=arho
13423 go to 40
13424 endif
13425 if(X2.gt.0.67)then
13426 lb(i2)=8
13427 e(i2)=dm
13428 lb(i1)=25
13429 e(i1)=arho
13430 go to 40
13431 endif
13432 endif
13433 endif
13434
13435 if( ((lb(i1).eq.2.and.lb(i2).eq.5).
13436 & or.(lb(i1).eq.5.and.lb(i2).eq.2))
13437 & .OR.((lb(i1).eq.-2.and.lb(i2).eq.3).
13438 & or.(lb(i1).eq.3.and.lb(i2).eq.-2)) )then
13439 if(iabs(lb(i1)).eq.2)then
13440 ii = i1
13441 IF(X2.LE.0.33)THEN
13442 lb(i1)=8
13443 e(i1)=dm
13444 lb(i2)=26
13445 e(i2)=arho
13446 go to 40
13447 ENDIF
13448 if(X2.gt.0.33.and.X2.le.0.67)then
13449 lb(i1)=7
13450 e(i1)=dm
13451 lb(i2)=27
13452 e(i2)=arho
13453 go to 40
13454 endif
13455 if(X2.gt.0.67)then
13456 lb(i1)=9
13457 e(i1)=dm
13458 lb(i2)=25
13459 e(i2)=arho
13460 go to 40
13461 endif
13462 else
13463 ii = i2
13464 IF(X2.LE.0.33)THEN
13465 lb(i2)=8
13466 e(i2)=dm
13467 lb(i1)=26
13468 e(i1)=arho
13469 go to 40
13470 ENDIF
13471 if(X2.gt.0.33.and.X2.le.0.67)then
13472 lb(i2)=7
13473 e(i2)=dm
13474 lb(i1)=27
13475 e(i1)=arho
13476 go to 40
13477 endif
13478 if(X2.gt.0.67)then
13479 lb(i2)=9
13480 e(i2)=dm
13481 lb(i1)=25
13482 e(i1)=arho
13483 go to 40
13484 endif
13485 endif
13486 endif
13487
13488 if((iabs(lb(i1)).eq.1.and.lb(i2).eq.4).
13489 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.1))then
13490 if(iabs(lb(i1)).eq.1)then
13491 ii = i1
13492 IF(X2.LE.0.33)THEN
13493 lb(i1)=7
13494 e(i1)=dm
13495 lb(i2)=27
13496 e(i2)=arho
13497 go to 40
13498 ENDIF
13499 if(X2.gt.0.33.and.X2.le.0.67)then
13500 lb(i1)=8
13501 e(i1)=dm
13502 lb(i2)=26
13503 e(i2)=arho
13504 go to 40
13505 endif
13506 if(X2.gt.0.67)then
13507 lb(i1)=9
13508 e(i1)=dm
13509 lb(i2)=25
13510 e(i2)=arho
13511 go to 40
13512 endif
13513 else
13514 ii = i2
13515 IF(X2.LE.0.33)THEN
13516 lb(i2)=7
13517 e(i2)=dm
13518 lb(i1)=27
13519 e(i1)=arho
13520 go to 40
13521 ENDIF
13522 if(X2.gt.0.33.and.X2.le.0.67)then
13523 lb(i2)=8
13524 e(i2)=dm
13525 lb(i1)=26
13526 e(i1)=arho
13527 go to 40
13528 endif
13529 if(X2.gt.0.67)then
13530 lb(i2)=9
13531 e(i2)=dm
13532 lb(i1)=25
13533 e(i1)=arho
13534 go to 40
13535 endif
13536 endif
13537 endif
13538
13539 if( ((lb(i1).eq.2.and.lb(i2).eq.3).
13540 & or.(lb(i1).eq.3.and.lb(i2).eq.2))
13541 & .OR. ((lb(i1).eq.-2.and.lb(i2).eq.5).
13542 & or.(lb(i1).eq.5.and.lb(i2).eq.-2)) )then
13543 if(iabs(lb(i1)).eq.2)then
13544 ii = i1
13545 IF(X2.LE.0.5)THEN
13546 lb(i1)=6
13547 e(i1)=dm
13548 lb(i2)=26
13549 e(i2)=arho
13550 go to 40
13551 ELSE
13552 lb(i1)=7
13553 e(i1)=dm
13554 lb(i2)=25
13555 e(i2)=arho
13556 go to 40
13557 endif
13558 else
13559 ii = i2
13560 IF(X2.LE.0.5)THEN
13561 lb(i2)=6
13562 e(i2)=dm
13563 lb(i1)=26
13564 e(i1)=arho
13565 go to 40
13566 ELSE
13567 lb(i2)=7
13568 e(i2)=dm
13569 lb(i1)=25
13570 e(i1)=arho
13571 go to 40
13572 endif
13573 endif
13574 ENDIF
13575
13576 if((iabs(lb(i1)).eq.2.and.lb(i2).eq.4).
13577 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.2))then
13578 if(iabs(lb(i1)).eq.2)then
13579 ii = i1
13580 IF(X2.LE.0.33)THEN
13581 lb(i1)=7
13582 e(i1)=dm
13583 lb(i2)=26
13584 e(i2)=arho
13585 go to 40
13586 endif
13587 if(x2.gt.0.33.and.x2.le.0.67)then
13588 lb(i1)=6
13589 e(i1)=dm
13590 lb(i2)=27
13591 e(i2)=arho
13592 go to 40
13593 endif
13594 if(x2.gt.0.67)then
13595 lb(i1)=8
13596 e(i1)=dm
13597 lb(i2)=25
13598 e(i2)=arho
13599 endif
13600 else
13601 ii = i2
13602 IF(X2.LE.0.33)THEN
13603 lb(i2)=7
13604 e(i2)=dm
13605 lb(i1)=26
13606 e(i1)=arho
13607 go to 40
13608 endif
13609 if(x2.le.0.67.and.x2.gt.0.33)then
13610 lb(i2)=6
13611 e(i2)=dm
13612 lb(i1)=27
13613 e(i1)=arho
13614 go to 40
13615 endif
13616 if(x2.gt.0.67)then
13617 lb(i2)=8
13618 e(i2)=dm
13619 lb(i1)=25
13620 e(i1)=arho
13621 endif
13622 endif
13623 endif
13624 Endif
13625 if(iblock.eq.79)then
13626 aomega=0.782
13627
13628 dmax=srt-0.782-0.02
13629 dm=rmass(dmax,iseed)
13630
13631
13632 if( ((lb(i1).eq.1.and.lb(i2).eq.5).
13633 & or.(lb(i1).eq.5.and.lb(i2).eq.1))
13634 & .OR.((lb(i1).eq.-1.and.lb(i2).eq.3).
13635 & or.(lb(i1).eq.3.and.lb(i2).eq.-1)) )then
13636 if(iabs(lb(i1)).eq.1)then
13637 ii = i1
13638 lb(i1)=9
13639 e(i1)=dm
13640 lb(i2)=28
13641 e(i2)=aomega
13642 go to 40
13643 else
13644 ii = i2
13645 lb(i2)=9
13646 e(i2)=dm
13647 lb(i1)=28
13648 e(i1)=aomega
13649 go to 40
13650 endif
13651 endif
13652
13653 if( ((lb(i1).eq.1.and.lb(i2).eq.3).
13654 & or.(lb(i1).eq.3.and.lb(i2).eq.1))
13655 & .OR. ((lb(i1).eq.-1.and.lb(i2).eq.5).
13656 & or.(lb(i1).eq.5.and.lb(i2).eq.-1)) )then
13657 if(iabs(lb(i1)).eq.1)then
13658 ii = i1
13659 lb(i1)=7
13660 e(i1)=dm
13661 lb(i2)=28
13662 e(i2)=aomega
13663 go to 40
13664 else
13665 ii = i2
13666 lb(i2)=7
13667 e(i2)=dm
13668 lb(i1)=28
13669 e(i1)=aomega
13670 go to 40
13671 endif
13672 endif
13673
13674 if( ((lb(i1).eq.2.and.lb(i2).eq.5).
13675 & or.(lb(i1).eq.5.and.lb(i2).eq.2))
13676 & .OR. ((lb(i1).eq.-2.and.lb(i2).eq.3).
13677 & or.(lb(i1).eq.3.and.lb(i2).eq.-2)) )then
13678 if(iabs(lb(i1)).eq.2)then
13679 ii = i1
13680 lb(i1)=8
13681 e(i1)=dm
13682 lb(i2)=28
13683 e(i2)=aomega
13684 go to 40
13685 else
13686 ii = i2
13687 lb(i2)=8
13688 e(i2)=dm
13689 lb(i1)=28
13690 e(i1)=aomega
13691 go to 40
13692 endif
13693 endif
13694
13695 if((iabs(lb(i1)).eq.1.and.lb(i2).eq.4).
13696 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.1))then
13697 if(iabs(lb(i1)).eq.1)then
13698 ii = i1
13699 lb(i1)=8
13700 e(i1)=dm
13701 lb(i2)=28
13702 e(i2)=aomega
13703 go to 40
13704 else
13705 ii = i2
13706 lb(i2)=8
13707 e(i2)=dm
13708 lb(i1)=28
13709 e(i1)=aomega
13710 go to 40
13711 endif
13712 endif
13713
13714 if( ((lb(i1).eq.2.and.lb(i2).eq.3).
13715 & or.(lb(i1).eq.3.and.lb(i2).eq.2))
13716 & .OR. ((lb(i1).eq.-2.and.lb(i2).eq.5).
13717 & or.(lb(i1).eq.5.and.lb(i2).eq.-2)) )then
13718 if(iabs(lb(i1)).eq.2)then
13719 ii = i1
13720 lb(i1)=6
13721 e(i1)=dm
13722 lb(i2)=28
13723 e(i2)=aomega
13724 go to 40
13725 ELSE
13726 ii = i2
13727 lb(i2)=6
13728 e(i2)=dm
13729 lb(i1)=28
13730 e(i1)=aomega
13731 endif
13732 ENDIF
13733
13734 if((iabs(lb(i1)).eq.2.and.lb(i2).eq.4).
13735 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.2))then
13736 if(iabs(lb(i1)).eq.2)then
13737 ii = i1
13738 lb(i1)=7
13739 e(i1)=dm
13740 lb(i2)=28
13741 e(i2)=aomega
13742 go to 40
13743 else
13744 ii = i2
13745 lb(i2)=7
13746 e(i2)=dm
13747 lb(i1)=26
13748 e(i1)=arho
13749 go to 40
13750 endif
13751 endif
13752 Endif
13753 40 em1=e(i1)
13754 em2=e(i2)
13755 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
13756 lb(ii) = -lb(ii)
13757 jj = i2
13758 if(ii .eq. i2)jj = i1
13759 if(iblock .eq. 77)then
13760 if(lb(jj).eq.3)then
13761 lb(jj) = 5
13762 elseif(lb(jj).eq.5)then
13763 lb(jj) = 3
13764 endif
13765 elseif(iblock .eq. 78)then
13766 if(lb(jj).eq.25)then
13767 lb(jj) = 27
13768 elseif(lb(jj).eq.27)then
13769 lb(jj) = 25
13770 endif
13771 endif
13772 endif
13773 endif
13774
13775
13776
13777 50 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
13778 1 - 4.0 * (EM1*EM2)**2
13779 IF(PR2.LE.0.)PR2=0.00000001
13780 PR=SQRT(PR2)/(2.*SRT)
13781
13782
13783
13784
13785 xptr=0.33*pr
13786
13787 cc1=ptr(xptr,iseed)
13788
13789
13790
13791 scheck=pr**2-cc1**2
13792 if(scheck.lt.0) then
13793 write(99,*) 'scheck36: ', scheck
13794 scheck=0.
13795 endif
13796 c1=sqrt(scheck)/pr
13797
13798
13799
13800 T1 = 2.0 * PI * RANART(NSEED)
13801 S1 = SQRT( 1.0 - C1**2 )
13802 CT1 = COS(T1)
13803 ST1 = SIN(T1)
13804
13805 PZ = PR * C1
13806 PX = PR * S1*CT1
13807 PY = PR * S1*ST1
13808
13809 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
13810 RETURN
13811 END
13812
13813
13814
13815 SUBROUTINE CREN(PX,PY,PZ,SRT,I1,I2,IBLOCK)
13816
13817
13818
13819
13820
13821
13822
13823
13824
13825
13826 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
13827 1 AMP=0.93828,AP1=0.13496,
13828 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
13829 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
13830 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
13831 COMMON /AA/ R(3,MAXSTR)
13832
13833 COMMON /BB/ P(3,MAXSTR)
13834
13835 COMMON /CC/ E(MAXSTR)
13836
13837 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
13838
13839 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
13840
13841 COMMON/RNDF77/NSEED
13842
13843 SAVE
13844
13845 PX0=PX
13846 PY0=PY
13847 PZ0=PZ
13848 NTAG=0
13849 IBLOCK=7
13850 ianti=0
13851 if(lb(i1).lt.0 .or. lb(i2).lt.0)then
13852 ianti=1
13853 iblock=-7
13854 endif
13855
13856
13857
13858 KAONC=0
13859 IF(PNLKA(SRT)/(PNLKA(SRT)
13860 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
13861 IF(E(I1).LE.0.6)THEN
13862 LB(I1)=23
13863 E(I1)=AKA
13864 IF(KAONC.EQ.1)THEN
13865 LB(I2)=14
13866 E(I2)=ALA
13867 ELSE
13868 LB(I2) = 15 + int(3 * RANART(NSEED))
13869 E(I2)=ASA
13870 ENDIF
13871 if(ianti .eq. 1)then
13872 lb(i1)=21
13873 lb(i2)=-lb(i2)
13874 endif
13875 ELSE
13876 LB(I2)=23
13877 E(I2)=AKA
13878 IF(KAONC.EQ.1)THEN
13879 LB(I1)=14
13880 E(I1)=ALA
13881 ELSE
13882 LB(I1) = 15 + int(3 * RANART(NSEED))
13883 E(I1)=ASA
13884 ENDIF
13885 if(ianti .eq. 1)then
13886 lb(i2)=21
13887 lb(i1)=-lb(i1)
13888 endif
13889 ENDIF
13890 EM1=E(I1)
13891 EM2=E(I2)
13892
13893
13894
13895 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
13896 1 - 4.0 * (EM1*EM2)**2
13897 IF(PR2.LE.0.)PR2=1.e-09
13898 PR=SQRT(PR2)/(2.*SRT)
13899 C1 = 1.0 - 2.0 * RANART(NSEED)
13900 T1 = 2.0 * PI * RANART(NSEED)
13901 S1 = SQRT( 1.0 - C1**2 )
13902 CT1 = COS(T1)
13903 ST1 = SIN(T1)
13904
13905 PZ = PR * C1
13906 PX = PR * S1*CT1
13907 PY = PR * S1*ST1
13908
13909 RETURN
13910 END
13911
13912
13913
13914
13915 SUBROUTINE Crdir(PX,PY,PZ,SRT,I1,I2,IBLOCK)
13916
13917
13918
13919
13920
13921
13922
13923
13924
13925
13926 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
13927 1 AMP=0.93828,AP1=0.13496,
13928 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
13929 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
13930 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
13931 COMMON /AA/ R(3,MAXSTR)
13932
13933 COMMON /BB/ P(3,MAXSTR)
13934
13935 COMMON /CC/ E(MAXSTR)
13936
13937 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
13938
13939 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
13940
13941 COMMON/RNDF77/NSEED
13942
13943 SAVE
13944
13945 PX0=PX
13946 PY0=PY
13947 PZ0=PZ
13948 IBLOCK=999
13949 NTAG=0
13950 EM1=E(I1)
13951 EM2=E(I2)
13952
13953
13954
13955 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
13956 1 - 4.0 * (EM1*EM2)**2
13957 IF(PR2.LE.0.)PR2=1.e-09
13958 PR=SQRT(PR2)/(2.*SRT)
13959
13960
13961 xptr=0.33*pr
13962
13963 cc1=ptr(xptr,iseed)
13964
13965
13966
13967 scheck=pr**2-cc1**2
13968 if(scheck.lt.0) then
13969 write(99,*) 'scheck37: ', scheck
13970 scheck=0.
13971 endif
13972 c1=sqrt(scheck)/pr
13973
13974
13975 T1 = 2.0 * PI * RANART(NSEED)
13976 S1 = SQRT( 1.0 - C1**2 )
13977 CT1 = COS(T1)
13978 ST1 = SIN(T1)
13979
13980 PZ = PR * C1
13981 PX = PR * S1*CT1
13982 PY = PR * S1*ST1
13983
13984 call rotate(px0,py0,pz0,px,py,pz)
13985 RETURN
13986 END
13987
13988
13989
13990 SUBROUTINE CRPD(PX,PY,PZ,SRT,I1,I2,
13991 & IBLOCK,xkaon0,xkaon,Xphi,xphin)
13992
13993
13994
13995
13996
13997
13998
13999
14000
14001
14002
14003
14004
14005
14006
14007 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
14008 1 AMP=0.93828,AP1=0.13496,APHI=1.020,
14009 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
14010 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
14011 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
14012 COMMON /AA/ R(3,MAXSTR)
14013
14014 COMMON /BB/ P(3,MAXSTR)
14015
14016 COMMON /CC/ E(MAXSTR)
14017
14018 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
14019
14020 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
14021
14022 COMMON/RNDF77/NSEED
14023
14024 SAVE
14025
14026 PX0=PX
14027 PY0=PY
14028 PZ0=PZ
14029 IBLOCK=1
14030 x1=RANART(NSEED)
14031 ianti=0
14032 if(lb(i1).lt.0 .or. lb(i2).lt.0)ianti=1
14033 if(xkaon0/(xkaon+Xphi).ge.x1)then
14034
14035
14036 IBLOCK=7
14037 if(ianti .eq. 1)iblock=-7
14038 NTAG=0
14039
14040
14041
14042 KAONC=0
14043 IF(PNLKA(SRT)/(PNLKA(SRT)
14044 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
14045
14046 IF(E(I1).LE.0.2)THEN
14047 LB(I1)=23
14048 E(I1)=AKA
14049 IF(KAONC.EQ.1)THEN
14050 LB(I2)=14
14051 E(I2)=ALA
14052 ELSE
14053 LB(I2) = 15 + int(3 * RANART(NSEED))
14054 E(I2)=ASA
14055 ENDIF
14056 if(ianti .eq. 1)then
14057 lb(i1)=21
14058 lb(i2)=-lb(i2)
14059 endif
14060 ELSE
14061 LB(I2)=23
14062 E(I2)=AKA
14063 IF(KAONC.EQ.1)THEN
14064 LB(I1)=14
14065 E(I1)=ALA
14066 ELSE
14067 LB(I1) = 15 + int(3 * RANART(NSEED))
14068 E(I1)=ASA
14069 ENDIF
14070 if(ianti .eq. 1)then
14071 lb(i2)=21
14072 lb(i1)=-lb(i1)
14073 endif
14074 ENDIF
14075 EM1=E(I1)
14076 EM2=E(I2)
14077 go to 50
14078
14079
14080
14081 elseif(Xphi/(xkaon+Xphi).ge.x1)then
14082 iblock=222
14083 if(xphin/Xphi .ge. RANART(NSEED))then
14084 LB(I1)= 1+int(2*RANART(NSEED))
14085 E(I1)=AMN
14086 else
14087 LB(I1)= 6+int(4*RANART(NSEED))
14088 E(I1)=AM0
14089 endif
14090
14091 if(ianti .eq. 1)lb(i1)=-lb(i1)
14092 LB(I2)= 29
14093 E(I2)=APHI
14094 EM1=E(I1)
14095 EM2=E(I2)
14096 go to 50
14097 else
14098
14099 X2=RANART(NSEED)
14100 IBLOCK=80
14101 ntag=0
14102
14103
14104
14105
14106 if( ((lb(i1).eq.8.and.lb(i2).eq.5).
14107 & or.(lb(i1).eq.5.and.lb(i2).eq.8))
14108 & .OR.((lb(i1).eq.-8.and.lb(i2).eq.3).
14109 & or.(lb(i1).eq.3.and.lb(i2).eq.-8)) )then
14110 if(iabs(lb(i1)).eq.8)then
14111 ii = i1
14112 lb(i1)=1
14113 e(i1)=amn
14114 lb(i2)=5
14115 e(i2)=ap1
14116 go to 40
14117 else
14118 ii = i2
14119 lb(i2)=1
14120 e(i2)=amn
14121 lb(i1)=5
14122 e(i1)=ap1
14123 go to 40
14124 endif
14125 endif
14126
14127
14128 if((iabs(lb(i1)).eq.7.and.lb(i2).eq.4).
14129 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.7))then
14130 if(iabs(lb(i1)).eq.7)then
14131 ii = i1
14132 IF(X2.LE.0.5)THEN
14133 lb(i1)=2
14134 e(i1)=amn
14135 lb(i2)=4
14136 e(i2)=ap1
14137 go to 40
14138 Else
14139 lb(i1)=1
14140 e(i1)=amn
14141 lb(i2)=3
14142 e(i2)=ap1
14143 go to 40
14144 endif
14145 else
14146 ii = i2
14147 IF(X2.LE.0.5)THEN
14148 lb(i2)=2
14149 e(i2)=amn
14150 lb(i1)=4
14151 e(i1)=ap1
14152 go to 40
14153 Else
14154 lb(i2)=1
14155 e(i2)=amn
14156 lb(i1)=3
14157 e(i1)=ap1
14158 go to 40
14159 endif
14160 endif
14161 endif
14162
14163 if((iabs(lb(i1)).eq.8.and.lb(i2).eq.4).
14164 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.8))then
14165 if(iabs(lb(i1)).eq.8)then
14166 ii = i1
14167 IF(X2.LE.0.5)THEN
14168 lb(i1)=2
14169 e(i1)=amn
14170 lb(i2)=5
14171 e(i2)=ap1
14172 go to 40
14173 Else
14174 lb(i1)=1
14175 e(i1)=amn
14176 lb(i2)=4
14177 e(i2)=ap1
14178 go to 40
14179 endif
14180 else
14181 ii = i2
14182 IF(X2.LE.0.5)THEN
14183 lb(i2)=2
14184 e(i2)=amn
14185 lb(i1)=5
14186 e(i1)=ap1
14187 go to 40
14188 Else
14189 lb(i2)=1
14190 e(i2)=amn
14191 lb(i1)=4
14192 e(i1)=ap1
14193 go to 40
14194 endif
14195 endif
14196 endif
14197
14198 if((iabs(lb(i1)).eq.6.and.lb(i2).eq.4).
14199 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.6))then
14200 if(iabs(lb(i1)).eq.6)then
14201 ii = i1
14202 lb(i1)=2
14203 e(i1)=amn
14204 lb(i2)=3
14205 e(i2)=ap1
14206 go to 40
14207 else
14208 ii = i2
14209 lb(i2)=2
14210 e(i2)=amn
14211 lb(i1)=3
14212 e(i1)=ap1
14213 go to 40
14214 ENDIF
14215 endif
14216
14217 if( ((lb(i1).eq.8.and.lb(i2).eq.3).
14218 & or.(lb(i1).eq.3.and.lb(i2).eq.8))
14219 & .OR.((lb(i1).eq.-8.and.lb(i2).eq.5).
14220 & or.(lb(i1).eq.5.and.lb(i2).eq.-8)) )then
14221 if(iabs(lb(i1)).eq.8)then
14222 ii = i1
14223 IF(X2.LE.0.5)THEN
14224 lb(i1)=2
14225 e(i1)=amn
14226 lb(i2)=4
14227 e(i2)=ap1
14228 go to 40
14229 ELSE
14230 lb(i1)=1
14231 e(i1)=amn
14232 lb(i2)=3
14233 e(i2)=ap1
14234 go to 40
14235 endif
14236 else
14237 ii = i2
14238 IF(X2.LE.0.5)THEN
14239 lb(i2)=2
14240 e(i2)=amn
14241 lb(i1)=4
14242 e(i1)=ap1
14243 go to 40
14244 ELSE
14245 lb(i2)=1
14246 e(i2)=amn
14247 lb(i1)=3
14248 e(i1)=ap1
14249 go to 40
14250 endif
14251 endif
14252 ENDIF
14253
14254 if( ((lb(i1).eq.7.and.lb(i2).eq.5).
14255 & or.(lb(i1).eq.5.and.lb(i2).eq.7))
14256 & .OR.((lb(i1).eq.-7.and.lb(i2).eq.3).
14257 & or.(lb(i1).eq.3.and.lb(i2).eq.-7)) )then
14258 if(iabs(lb(i1)).eq.7)then
14259 ii = i1
14260 IF(X2.LE.0.5)THEN
14261 lb(i1)=2
14262 e(i1)=amn
14263 lb(i2)=5
14264 e(i2)=ap1
14265 go to 40
14266 else
14267 lb(i1)=1
14268 e(i1)=amn
14269 lb(i2)=4
14270 e(i2)=ap1
14271 go to 40
14272 endif
14273 else
14274 ii = i2
14275 IF(X2.LE.0.5)THEN
14276 lb(i2)=2
14277 e(i2)=amn
14278 lb(i1)=5
14279 e(i1)=ap1
14280 go to 40
14281 Else
14282 lb(i2)=1
14283 e(i2)=amn
14284 lb(i1)=4
14285 e(i1)=ap1
14286 go to 40
14287 endif
14288 endif
14289 ENDIF
14290
14291 if( ((lb(i1).eq.7.and.lb(i2).eq.3).
14292 & or.(lb(i1).eq.3.and.lb(i2).eq.7))
14293 & .OR.((lb(i1).eq.-7.and.lb(i2).eq.5).
14294 & or.(lb(i1).eq.5.and.lb(i2).eq.-7)) )then
14295 if(iabs(lb(i1)).eq.7)then
14296 ii = i1
14297 lb(i1)=2
14298 e(i1)=amn
14299 lb(i2)=3
14300 e(i2)=ap1
14301 go to 40
14302 else
14303 ii = i2
14304 lb(i2)=2
14305 e(i2)=amn
14306 lb(i1)=3
14307 e(i1)=ap1
14308 go to 40
14309 ENDIF
14310 endif
14311
14312 if( ((lb(i1).eq.6.and.lb(i2).eq.5)
14313 & .or.(lb(i1).eq.5.and.lb(i2).eq.6))
14314 & .OR.((lb(i1).eq.-6.and.lb(i2).eq.3).
14315 & or.(lb(i1).eq.3.and.lb(i2).eq.-6)) )then
14316 if(iabs(lb(i1)).eq.6)then
14317 ii = i1
14318 IF(X2.LE.0.5)THEN
14319 lb(i1)=2
14320 e(i1)=amn
14321 lb(i2)=4
14322 e(i2)=ap1
14323 go to 40
14324 else
14325 lb(i1)=1
14326 e(i1)=amn
14327 lb(i2)=3
14328 e(i2)=ap1
14329 go to 40
14330 endif
14331 else
14332 ii = i2
14333 IF(X2.LE.0.5)THEN
14334 lb(i2)=2
14335 e(i2)=amn
14336 lb(i1)=4
14337 e(i1)=ap1
14338 go to 40
14339 Else
14340 lb(i2)=1
14341 e(i2)=amn
14342 lb(i1)=3
14343 e(i1)=ap1
14344 go to 40
14345 endif
14346 endif
14347 ENDIF
14348
14349
14350 if( ((lb(i1).eq.9.and.lb(i2).eq.3)
14351 & .or.(lb(i1).eq.3.and.lb(i2).eq.9))
14352 & .OR. ((lb(i1).eq.-9.and.lb(i2).eq.5)
14353 & .or.(lb(i1).eq.5.and.lb(i2).eq.-9)) )then
14354 if(iabs(lb(i1)).eq.9)then
14355 ii = i1
14356 IF(X2.LE.0.5)THEN
14357 lb(i1)=2
14358 e(i1)=amn
14359 lb(i2)=5
14360 e(i2)=ap1
14361 go to 40
14362 else
14363 lb(i1)=1
14364 e(i1)=amn
14365 lb(i2)=4
14366 e(i2)=ap1
14367 go to 40
14368 endif
14369 else
14370 ii = i2
14371 IF(X2.LE.0.5)THEN
14372 lb(i2)=2
14373 e(i2)=amn
14374 lb(i1)=5
14375 e(i1)=ap1
14376 go to 40
14377 Else
14378 lb(i2)=1
14379 e(i2)=amn
14380 lb(i1)=4
14381 e(i1)=ap1
14382 go to 40
14383 endif
14384 endif
14385 ENDIF
14386
14387 if((iabs(lb(i1)).eq.9.and.lb(i2).eq.4)
14388 & .or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.9))then
14389 if(iabs(lb(i1)).eq.9)then
14390 ii = i1
14391 lb(i1)=1
14392 e(i1)=amn
14393 lb(i2)=5
14394 e(i2)=ap1
14395 go to 40
14396 else
14397 ii = i2
14398 lb(i2)=1
14399 e(i2)=amn
14400 lb(i1)=5
14401 e(i1)=ap1
14402 go to 40
14403 ENDIF
14404 endif
14405
14406 if( ((lb(i1).eq.11.and.lb(i2).eq.5).
14407 & or.(lb(i1).eq.5.and.lb(i2).eq.11).
14408 & or.(lb(i1).eq.13.and.lb(i2).eq.5).
14409 & or.(lb(i1).eq.5.and.lb(i2).eq.13))
14410 & .OR.((lb(i1).eq.-11.and.lb(i2).eq.3).
14411 & or.(lb(i1).eq.3.and.lb(i2).eq.-11).
14412 & or.(lb(i1).eq.-13.and.lb(i2).eq.3).
14413 & or.(lb(i1).eq.3.and.lb(i2).eq.-13)) )then
14414 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
14415 ii = i1
14416 lb(i1)=1
14417 e(i1)=amn
14418 lb(i2)=5
14419 e(i2)=ap1
14420 go to 40
14421 else
14422 ii = i2
14423 lb(i2)=1
14424 e(i2)=amn
14425 lb(i1)=5
14426 e(i1)=ap1
14427 go to 40
14428 endif
14429 endif
14430
14431 if((iabs(lb(i1)).eq.10.and.lb(i2).eq.4).
14432 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.10).
14433 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.12).
14434 & or.(lb(i2).eq.4.and.iabs(lb(i1)).eq.12))then
14435 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
14436 ii = i1
14437 IF(X2.LE.0.5)THEN
14438 lb(i1)=2
14439 e(i1)=amn
14440 lb(i2)=4
14441 e(i2)=ap1
14442 go to 40
14443 Else
14444 lb(i1)=1
14445 e(i1)=amn
14446 lb(i2)=3
14447 e(i2)=ap1
14448 go to 40
14449 endif
14450 else
14451 ii = i2
14452 IF(X2.LE.0.5)THEN
14453 lb(i2)=2
14454 e(i2)=amn
14455 lb(i1)=4
14456 e(i1)=ap1
14457 go to 40
14458 Else
14459 lb(i2)=1
14460 e(i2)=amn
14461 lb(i1)=3
14462 e(i1)=ap1
14463 go to 40
14464 endif
14465 endif
14466 endif
14467
14468 if((iabs(lb(i1)).eq.11.and.lb(i2).eq.4).
14469 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.11).
14470 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.13).
14471 & or.(lb(i2).eq.4.and.iabs(lb(i1)).eq.13))then
14472 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
14473 ii = i1
14474 IF(X2.LE.0.5)THEN
14475 lb(i1)=2
14476 e(i1)=amn
14477 lb(i2)=5
14478 e(i2)=ap1
14479 go to 40
14480 Else
14481 lb(i1)=1
14482 e(i1)=amn
14483 lb(i2)=4
14484 e(i2)=ap1
14485 go to 40
14486 endif
14487 else
14488 ii = i2
14489 IF(X2.LE.0.5)THEN
14490 lb(i2)=2
14491 e(i2)=amn
14492 lb(i1)=5
14493 e(i1)=ap1
14494 go to 40
14495 Else
14496 lb(i2)=1
14497 e(i2)=amn
14498 lb(i1)=4
14499 e(i1)=ap1
14500 go to 40
14501 endif
14502 endif
14503 endif
14504
14505 if( ((lb(i1).eq.11.and.lb(i2).eq.3).
14506 & or.(lb(i1).eq.3.and.lb(i2).eq.11).
14507 & or.(lb(i1).eq.3.and.lb(i2).eq.13).
14508 & or.(lb(i2).eq.3.and.lb(i1).eq.13))
14509 & .OR.((lb(i1).eq.-11.and.lb(i2).eq.5).
14510 & or.(lb(i1).eq.5.and.lb(i2).eq.-11).
14511 & or.(lb(i1).eq.5.and.lb(i2).eq.-13).
14512 & or.(lb(i2).eq.5.and.lb(i1).eq.-13)) )then
14513 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
14514 ii = i1
14515 IF(X2.LE.0.5)THEN
14516 lb(i1)=2
14517 e(i1)=amn
14518 lb(i2)=4
14519 e(i2)=ap1
14520 go to 40
14521 ELSE
14522 lb(i1)=1
14523 e(i1)=amn
14524 lb(i2)=3
14525 e(i2)=ap1
14526 go to 40
14527 endif
14528 else
14529 ii = i2
14530 IF(X2.LE.0.5)THEN
14531 lb(i2)=2
14532 e(i2)=amn
14533 lb(i1)=4
14534 e(i1)=ap1
14535 go to 40
14536 ELSE
14537 lb(i2)=1
14538 e(i2)=amn
14539 lb(i1)=3
14540 e(i1)=ap1
14541 go to 40
14542 endif
14543 endif
14544 ENDIF
14545
14546 if( ((lb(i1).eq.10.and.lb(i2).eq.5).
14547 & or.(lb(i1).eq.5.and.lb(i2).eq.10).
14548 & or.(lb(i1).eq.12.and.lb(i2).eq.5).
14549 & or.(lb(i1).eq.5.and.lb(i2).eq.12))
14550 & .OR.((lb(i1).eq.-10.and.lb(i2).eq.3).
14551 & or.(lb(i1).eq.3.and.lb(i2).eq.-10).
14552 & or.(lb(i1).eq.-12.and.lb(i2).eq.3).
14553 & or.(lb(i1).eq.3.and.lb(i2).eq.-12)) )then
14554 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
14555 ii = i1
14556 IF(X2.LE.0.5)THEN
14557 lb(i1)=2
14558 e(i1)=amn
14559 lb(i2)=5
14560 e(i2)=ap1
14561 go to 40
14562 else
14563 lb(i1)=1
14564 e(i1)=amn
14565 lb(i2)=4
14566 e(i2)=ap1
14567 go to 40
14568 endif
14569 else
14570 ii = i2
14571 IF(X2.LE.0.5)THEN
14572 lb(i2)=2
14573 e(i2)=amn
14574 lb(i1)=5
14575 e(i1)=ap1
14576 go to 40
14577 Else
14578 lb(i2)=1
14579 e(i2)=amn
14580 lb(i1)=4
14581 e(i1)=ap1
14582 go to 40
14583 endif
14584 endif
14585 ENDIF
14586
14587 if( ((lb(i1).eq.10.and.lb(i2).eq.3).
14588 & or.(lb(i1).eq.3.and.lb(i2).eq.10).
14589 & or.(lb(i1).eq.3.and.lb(i2).eq.12).
14590 & or.(lb(i1).eq.12.and.lb(i2).eq.3))
14591 & .OR.((lb(i1).eq.-10.and.lb(i2).eq.5).
14592 & or.(lb(i1).eq.5.and.lb(i2).eq.-10).
14593 & or.(lb(i1).eq.5.and.lb(i2).eq.-12).
14594 & or.(lb(i1).eq.-12.and.lb(i2).eq.5)) )then
14595 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
14596 ii = i1
14597 lb(i1)=2
14598 e(i1)=amn
14599 lb(i2)=3
14600 e(i2)=ap1
14601 go to 40
14602 else
14603 ii = i2
14604 lb(i2)=2
14605 e(i2)=amn
14606 lb(i1)=3
14607 e(i1)=ap1
14608 go to 40
14609 ENDIF
14610 endif
14611 40 em1=e(i1)
14612 em2=e(i2)
14613 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
14614 lb(ii) = -lb(ii)
14615 jj = i2
14616 if(ii .eq. i2)jj = i1
14617 if(lb(jj).eq.3)then
14618 lb(jj) = 5
14619 elseif(lb(jj).eq.5)then
14620 lb(jj) = 3
14621 endif
14622 endif
14623 endif
14624
14625
14626
14627 50 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
14628 1 - 4.0 * (EM1*EM2)**2
14629 IF(PR2.LE.0.)PR2=1.E-09
14630 PR=SQRT(PR2)/(2.*SRT)
14631
14632
14633 xptr=0.33*pr
14634
14635 cc1=ptr(xptr,iseed)
14636
14637
14638
14639 scheck=pr**2-cc1**2
14640 if(scheck.lt.0) then
14641 write(99,*) 'scheck38: ', scheck
14642 scheck=0.
14643 endif
14644 c1=sqrt(scheck)/pr
14645
14646
14647
14648 T1 = 2.0 * PI * RANART(NSEED)
14649 S1 = SQRT( 1.0 - C1**2 )
14650 CT1 = COS(T1)
14651 ST1 = SIN(T1)
14652 PZ = PR * C1
14653 PX = PR * S1*CT1
14654 PY = PR * S1*ST1
14655
14656 call rotate(px0,py0,pz0,px,py,pz)
14657 RETURN
14658 END
14659
14660
14661
14662 SUBROUTINE CRRD(PX,PY,PZ,SRT,I1,I2,
14663 & IBLOCK,xkaon0,xkaon,Xphi,xphin)
14664
14665
14666
14667
14668
14669
14670
14671
14672
14673
14674
14675
14676
14677
14678
14679 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
14680 1 AMP=0.93828,AP1=0.13496,
14681 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
14682 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,APHI=1.02)
14683 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
14684 COMMON /AA/ R(3,MAXSTR)
14685
14686 COMMON /BB/ P(3,MAXSTR)
14687
14688 COMMON /CC/ E(MAXSTR)
14689
14690 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
14691
14692 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
14693
14694 COMMON/RNDF77/NSEED
14695
14696 SAVE
14697
14698 PX0=PX
14699 PY0=PY
14700 PZ0=PZ
14701 IBLOCK=1
14702 ianti=0
14703 if(lb(i1).lt.0 .or. lb(i2).lt.0) ianti=1
14704 x1=RANART(NSEED)
14705 if(xkaon0/(xkaon+Xphi).ge.x1)then
14706
14707
14708 IBLOCK=7
14709 if(ianti .eq. 1)iblock=-7
14710 NTAG=0
14711
14712
14713
14714 KAONC=0
14715 IF(PNLKA(SRT)/(PNLKA(SRT)
14716 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
14717
14718 IF(E(I1).LE.0.92)THEN
14719 LB(I1)=23
14720 E(I1)=AKA
14721 IF(KAONC.EQ.1)THEN
14722 LB(I2)=14
14723 E(I2)=ALA
14724 ELSE
14725 LB(I2) = 15 + int(3 * RANART(NSEED))
14726 E(I2)=ASA
14727 ENDIF
14728 if(ianti .eq. 1)then
14729 lb(i1) = 21
14730 lb(i2) = -lb(i2)
14731 endif
14732 ELSE
14733 LB(I2)=23
14734 E(I2)=AKA
14735 IF(KAONC.EQ.1)THEN
14736 LB(I1)=14
14737 E(I1)=ALA
14738 ELSE
14739 LB(I1) = 15 + int(3 * RANART(NSEED))
14740 E(I1)=ASA
14741 ENDIF
14742 if(ianti .eq. 1)then
14743 lb(i2) = 21
14744 lb(i1) = -lb(i1)
14745 endif
14746 ENDIF
14747 EM1=E(I1)
14748 EM2=E(I2)
14749 go to 50
14750
14751
14752
14753 elseif(Xphi/(xkaon+Xphi).ge.x1)then
14754 iblock=222
14755 if(xphin/Xphi .ge. RANART(NSEED))then
14756 LB(I1)= 1+int(2*RANART(NSEED))
14757 E(I1)=AMN
14758 else
14759 LB(I1)= 6+int(4*RANART(NSEED))
14760 E(I1)=AM0
14761 endif
14762
14763 if(ianti .eq. 1)lb(i1)=-lb(i1)
14764 LB(I2)= 29
14765 E(I2)=APHI
14766 EM1=E(I1)
14767 EM2=E(I2)
14768 go to 50
14769 else
14770
14771 X2=RANART(NSEED)
14772 IBLOCK=81
14773 ntag=0
14774 if(lb(i1).eq.28.or.lb(i2).eq.28)go to 60
14775
14776
14777
14778
14779
14780 if( ((lb(i1).eq.8.and.lb(i2).eq.27).
14781 & or.(lb(i1).eq.27.and.lb(i2).eq.8))
14782 & .OR. ((lb(i1).eq.-8.and.lb(i2).eq.25).
14783 & or.(lb(i1).eq.25.and.lb(i2).eq.-8)) )then
14784 if(iabs(lb(i1)).eq.8)then
14785 ii = i1
14786 lb(i1)=1
14787 e(i1)=amn
14788 lb(i2)=5
14789 e(i2)=ap1
14790 go to 40
14791 else
14792 ii = i2
14793 lb(i2)=1
14794 e(i2)=amn
14795 lb(i1)=5
14796 e(i1)=ap1
14797 go to 40
14798 endif
14799 endif
14800
14801 if((iabs(lb(i1)).eq.7.and.lb(i2).eq.26).
14802 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.7))then
14803 if(iabs(lb(i1)).eq.7)then
14804 ii = i1
14805 IF(X2.LE.0.5)THEN
14806 lb(i1)=2
14807 e(i1)=amn
14808 lb(i2)=4
14809 e(i2)=ap1
14810 go to 40
14811 Else
14812 lb(i1)=1
14813 e(i1)=amn
14814 lb(i2)=3
14815 e(i2)=ap1
14816 go to 40
14817 endif
14818 else
14819 ii = i2
14820 IF(X2.LE.0.5)THEN
14821 lb(i2)=2
14822 e(i2)=amn
14823 lb(i1)=4
14824 e(i1)=ap1
14825 go to 40
14826 Else
14827 lb(i2)=1
14828 e(i2)=amn
14829 lb(i1)=3
14830 e(i1)=ap1
14831 go to 40
14832 endif
14833 endif
14834 endif
14835
14836 if((iabs(lb(i1)).eq.8.and.lb(i2).eq.26).
14837 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.8))then
14838 if(iabs(lb(i1)).eq.8)then
14839 ii = i1
14840 IF(X2.LE.0.5)THEN
14841 lb(i1)=2
14842 e(i1)=amn
14843 lb(i2)=5
14844 e(i2)=ap1
14845 go to 40
14846 Else
14847 lb(i1)=1
14848 e(i1)=amn
14849 lb(i2)=4
14850 e(i2)=ap1
14851 go to 40
14852 endif
14853 else
14854 ii = i2
14855 IF(X2.LE.0.5)THEN
14856 lb(i2)=2
14857 e(i2)=amn
14858 lb(i1)=5
14859 e(i1)=ap1
14860 go to 40
14861 Else
14862 lb(i2)=1
14863 e(i2)=amn
14864 lb(i1)=4
14865 e(i1)=ap1
14866 go to 40
14867 endif
14868 endif
14869 endif
14870
14871 if((iabs(lb(i1)).eq.6.and.lb(i2).eq.26).
14872 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.6))then
14873 if(iabs(lb(i1)).eq.6)then
14874 ii = i1
14875 lb(i1)=2
14876 e(i1)=amn
14877 lb(i2)=3
14878 e(i2)=ap1
14879 go to 40
14880 else
14881 ii = i2
14882 lb(i2)=2
14883 e(i2)=amn
14884 lb(i1)=3
14885 e(i1)=ap1
14886 go to 40
14887 ENDIF
14888 endif
14889
14890 if( ((lb(i1).eq.8.and.lb(i2).eq.25).
14891 & or.(lb(i1).eq.25.and.lb(i2).eq.8))
14892 & .OR. ((lb(i1).eq.-8.and.lb(i2).eq.27).
14893 & or.(lb(i1).eq.27.and.lb(i2).eq.-8)) )then
14894 if(iabs(lb(i1)).eq.8)then
14895 ii = i1
14896 IF(X2.LE.0.5)THEN
14897 lb(i1)=2
14898 e(i1)=amn
14899 lb(i2)=4
14900 e(i2)=ap1
14901 go to 40
14902 ELSE
14903 lb(i1)=1
14904 e(i1)=amn
14905 lb(i2)=3
14906 e(i2)=ap1
14907 go to 40
14908 endif
14909 else
14910 ii = i2
14911 IF(X2.LE.0.5)THEN
14912 lb(i2)=2
14913 e(i2)=amn
14914 lb(i1)=4
14915 e(i1)=ap1
14916 go to 40
14917 ELSE
14918 lb(i2)=1
14919 e(i2)=amn
14920 lb(i1)=3
14921 e(i1)=ap1
14922 go to 40
14923 endif
14924 endif
14925 ENDIF
14926
14927 if( ((lb(i1).eq.7.and.lb(i2).eq.27).
14928 & or.(lb(i1).eq.27.and.lb(i2).eq.7))
14929 & .OR.((lb(i1).eq.-7.and.lb(i2).eq.25).
14930 & or.(lb(i1).eq.25.and.lb(i2).eq.-7)) )then
14931 if(iabs(lb(i1)).eq.7)then
14932 ii = i1
14933 IF(X2.LE.0.5)THEN
14934 lb(i1)=2
14935 e(i1)=amn
14936 lb(i2)=5
14937 e(i2)=ap1
14938 go to 40
14939 else
14940 lb(i1)=1
14941 e(i1)=amn
14942 lb(i2)=4
14943 e(i2)=ap1
14944 go to 40
14945 endif
14946 else
14947 ii = i2
14948 IF(X2.LE.0.5)THEN
14949 lb(i2)=2
14950 e(i2)=amn
14951 lb(i1)=5
14952 e(i1)=ap1
14953 go to 40
14954 Else
14955 lb(i2)=1
14956 e(i2)=amn
14957 lb(i1)=4
14958 e(i1)=ap1
14959 go to 40
14960 endif
14961 endif
14962 ENDIF
14963
14964 if( ((lb(i1).eq.7.and.lb(i2).eq.25).
14965 & or.(lb(i1).eq.25.and.lb(i2).eq.7))
14966 & .OR.((lb(i1).eq.-7.and.lb(i2).eq.27).
14967 & or.(lb(i1).eq.27.and.lb(i2).eq.-7)) )then
14968 if(iabs(lb(i1)).eq.7)then
14969 ii = i1
14970 lb(i1)=2
14971 e(i1)=amn
14972 lb(i2)=3
14973 e(i2)=ap1
14974 go to 40
14975 else
14976 ii = i2
14977 lb(i2)=2
14978 e(i2)=amn
14979 lb(i1)=3
14980 e(i1)=ap1
14981 go to 40
14982 ENDIF
14983 endif
14984
14985 if( ((lb(i1).eq.6.and.lb(i2).eq.27).
14986 & or.(lb(i1).eq.27.and.lb(i2).eq.6))
14987 & .OR. ((lb(i1).eq.-6.and.lb(i2).eq.25).
14988 & or.(lb(i1).eq.25.and.lb(i2).eq.-6)) )then
14989 if(iabs(lb(i1)).eq.6)then
14990 ii = i1
14991 IF(X2.LE.0.5)THEN
14992 lb(i1)=2
14993 e(i1)=amn
14994 lb(i2)=4
14995 e(i2)=ap1
14996 go to 40
14997 else
14998 lb(i1)=1
14999 e(i1)=amn
15000 lb(i2)=3
15001 e(i2)=ap1
15002 go to 40
15003 endif
15004 else
15005 ii = i2
15006 IF(X2.LE.0.5)THEN
15007 lb(i2)=2
15008 e(i2)=amn
15009 lb(i1)=4
15010 e(i1)=ap1
15011 go to 40
15012 Else
15013 lb(i2)=1
15014 e(i2)=amn
15015 lb(i1)=3
15016 e(i1)=ap1
15017 go to 40
15018 endif
15019 endif
15020 ENDIF
15021
15022 if( ((lb(i1).eq.9.and.lb(i2).eq.25).
15023 & or.(lb(i1).eq.25.and.lb(i2).eq.9))
15024 & .OR.((lb(i1).eq.-9.and.lb(i2).eq.27).
15025 & or.(lb(i1).eq.27.and.lb(i2).eq.-9)) )then
15026 if(iabs(lb(i1)).eq.9)then
15027 ii = i1
15028 IF(X2.LE.0.5)THEN
15029 lb(i1)=2
15030 e(i1)=amn
15031 lb(i2)=5
15032 e(i2)=ap1
15033 go to 40
15034 else
15035 lb(i1)=1
15036 e(i1)=amn
15037 lb(i2)=4
15038 e(i2)=ap1
15039 go to 40
15040 endif
15041 else
15042 ii = i2
15043 IF(X2.LE.0.5)THEN
15044 lb(i2)=2
15045 e(i2)=amn
15046 lb(i1)=5
15047 e(i1)=ap1
15048 go to 40
15049 Else
15050 lb(i2)=1
15051 e(i2)=amn
15052 lb(i1)=4
15053 e(i1)=ap1
15054 go to 40
15055 endif
15056 endif
15057 ENDIF
15058
15059 if((iabs(lb(i1)).eq.9.and.lb(i2).eq.26).
15060 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.9))then
15061 if(iabs(lb(i1)).eq.9)then
15062 ii = i1
15063 lb(i1)=1
15064 e(i1)=amn
15065 lb(i2)=5
15066 e(i2)=ap1
15067 go to 40
15068 else
15069 ii = i2
15070 lb(i2)=1
15071 e(i2)=amn
15072 lb(i1)=5
15073 e(i1)=ap1
15074 go to 40
15075 ENDIF
15076 endif
15077
15078 if( ((lb(i1).eq.11.and.lb(i2).eq.27).
15079 & or.(lb(i1).eq.27.and.lb(i2).eq.11).
15080 & or.(lb(i1).eq.13.and.lb(i2).eq.27).
15081 & or.(lb(i1).eq.27.and.lb(i2).eq.13))
15082 & .OR. ((lb(i1).eq.-11.and.lb(i2).eq.25).
15083 & or.(lb(i1).eq.25.and.lb(i2).eq.-11).
15084 & or.(lb(i1).eq.-13.and.lb(i2).eq.25).
15085 & or.(lb(i1).eq.25.and.lb(i2).eq.-13)) )then
15086 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
15087 ii = i1
15088 lb(i1)=1
15089 e(i1)=amn
15090 lb(i2)=5
15091 e(i2)=ap1
15092 go to 40
15093 else
15094 ii = i2
15095 lb(i2)=1
15096 e(i2)=amn
15097 lb(i1)=5
15098 e(i1)=ap1
15099 go to 40
15100 endif
15101 endif
15102
15103 if((iabs(lb(i1)).eq.10.and.lb(i2).eq.26).
15104 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.10).
15105 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.12).
15106 & or.(lb(i2).eq.26.and.iabs(lb(i1)).eq.12))then
15107 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
15108 ii = i1
15109 IF(X2.LE.0.5)THEN
15110 lb(i1)=2
15111 e(i1)=amn
15112 lb(i2)=4
15113 e(i2)=ap1
15114 go to 40
15115 Else
15116 lb(i1)=1
15117 e(i1)=amn
15118 lb(i2)=3
15119 e(i2)=ap1
15120 go to 40
15121 endif
15122 else
15123 ii = i2
15124 IF(X2.LE.0.5)THEN
15125 lb(i2)=2
15126 e(i2)=amn
15127 lb(i1)=4
15128 e(i1)=ap1
15129 go to 40
15130 Else
15131 lb(i2)=1
15132 e(i2)=amn
15133 lb(i1)=3
15134 e(i1)=ap1
15135 go to 40
15136 endif
15137 endif
15138 endif
15139
15140 if((iabs(lb(i1)).eq.11.and.lb(i2).eq.26).
15141 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.11).
15142 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.13).
15143 & or.(lb(i2).eq.26.and.iabs(lb(i1)).eq.13))then
15144 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
15145 ii = i1
15146 IF(X2.LE.0.5)THEN
15147 lb(i1)=2
15148 e(i1)=amn
15149 lb(i2)=5
15150 e(i2)=ap1
15151 go to 40
15152 Else
15153 lb(i1)=1
15154 e(i1)=amn
15155 lb(i2)=4
15156 e(i2)=ap1
15157 go to 40
15158 endif
15159 else
15160 ii = i2
15161 IF(X2.LE.0.5)THEN
15162 lb(i2)=2
15163 e(i2)=amn
15164 lb(i1)=5
15165 e(i1)=ap1
15166 go to 40
15167 Else
15168 lb(i2)=1
15169 e(i2)=amn
15170 lb(i1)=4
15171 e(i1)=ap1
15172 go to 40
15173 endif
15174 endif
15175 endif
15176
15177 if( ((lb(i1).eq.11.and.lb(i2).eq.25).
15178 & or.(lb(i1).eq.25.and.lb(i2).eq.11).
15179 & or.(lb(i1).eq.25.and.lb(i2).eq.13).
15180 & or.(lb(i2).eq.25.and.lb(i1).eq.13))
15181 & .OR.((lb(i1).eq.-11.and.lb(i2).eq.27).
15182 & or.(lb(i1).eq.27.and.lb(i2).eq.-11).
15183 & or.(lb(i1).eq.27.and.lb(i2).eq.-13).
15184 & or.(lb(i2).eq.27.and.lb(i1).eq.-13)) )then
15185 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
15186 ii = i1
15187 IF(X2.LE.0.5)THEN
15188 lb(i1)=2
15189 e(i1)=amn
15190 lb(i2)=4
15191 e(i2)=ap1
15192 go to 40
15193 ELSE
15194 lb(i1)=1
15195 e(i1)=amn
15196 lb(i2)=3
15197 e(i2)=ap1
15198 go to 40
15199 endif
15200 else
15201 ii = i2
15202 IF(X2.LE.0.5)THEN
15203 lb(i2)=2
15204 e(i2)=amn
15205 lb(i1)=4
15206 e(i1)=ap1
15207 go to 40
15208 ELSE
15209 lb(i2)=1
15210 e(i2)=amn
15211 lb(i1)=3
15212 e(i1)=ap1
15213 go to 40
15214 endif
15215 endif
15216 ENDIF
15217
15218 if( ((lb(i1).eq.10.and.lb(i2).eq.27).
15219 & or.(lb(i1).eq.27.and.lb(i2).eq.10).
15220 & or.(lb(i1).eq.12.and.lb(i2).eq.27).
15221 & or.(lb(i1).eq.27.and.lb(i2).eq.12))
15222 & .OR.((lb(i1).eq.-10.and.lb(i2).eq.25).
15223 & or.(lb(i1).eq.25.and.lb(i2).eq.-10).
15224 & or.(lb(i1).eq.-12.and.lb(i2).eq.25).
15225 & or.(lb(i1).eq.25.and.lb(i2).eq.-12)) )then
15226 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
15227 ii = i1
15228 IF(X2.LE.0.5)THEN
15229 lb(i1)=2
15230 e(i1)=amn
15231 lb(i2)=5
15232 e(i2)=ap1
15233 go to 40
15234 else
15235 lb(i1)=1
15236 e(i1)=amn
15237 lb(i2)=4
15238 e(i2)=ap1
15239 go to 40
15240 endif
15241 else
15242 ii = i2
15243 IF(X2.LE.0.5)THEN
15244 lb(i2)=2
15245 e(i2)=amn
15246 lb(i1)=5
15247 e(i1)=ap1
15248 go to 40
15249 Else
15250 lb(i2)=1
15251 e(i2)=amn
15252 lb(i1)=4
15253 e(i1)=ap1
15254 go to 40
15255 endif
15256 endif
15257 ENDIF
15258
15259 if( ((lb(i1).eq.10.and.lb(i2).eq.25).
15260 & or.(lb(i1).eq.25.and.lb(i2).eq.10).
15261 & or.(lb(i1).eq.25.and.lb(i2).eq.12).
15262 & or.(lb(i1).eq.12.and.lb(i2).eq.25))
15263 & .OR. ((lb(i1).eq.-10.and.lb(i2).eq.27).
15264 & or.(lb(i1).eq.27.and.lb(i2).eq.-10).
15265 & or.(lb(i1).eq.27.and.lb(i2).eq.-12).
15266 & or.(lb(i1).eq.-12.and.lb(i2).eq.27)) )then
15267 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
15268 ii = i1
15269 lb(i1)=2
15270 e(i1)=amn
15271 lb(i2)=3
15272 e(i2)=ap1
15273 go to 40
15274 else
15275 ii = i2
15276 lb(i2)=2
15277 e(i2)=amn
15278 lb(i1)=3
15279 e(i1)=ap1
15280 go to 40
15281 ENDIF
15282 endif
15283 60 IBLOCK=82
15284
15285
15286
15287
15288
15289 if((iabs(lb(i1)).eq.7.and.lb(i2).eq.28).
15290 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.7))then
15291 if(iabs(lb(i1)).eq.7)then
15292 ii = i1
15293 IF(X2.LE.0.5)THEN
15294 lb(i1)=2
15295 e(i1)=amn
15296 lb(i2)=4
15297 e(i2)=ap1
15298 go to 40
15299 Else
15300 lb(i1)=1
15301 e(i1)=amn
15302 lb(i2)=3
15303 e(i2)=ap1
15304 go to 40
15305 endif
15306 else
15307 ii = i2
15308 IF(X2.LE.0.5)THEN
15309 lb(i2)=2
15310 e(i2)=amn
15311 lb(i1)=4
15312 e(i1)=ap1
15313 go to 40
15314 Else
15315 lb(i2)=1
15316 e(i2)=amn
15317 lb(i1)=3
15318 e(i1)=ap1
15319 go to 40
15320 endif
15321 endif
15322 endif
15323
15324 if((iabs(lb(i1)).eq.8.and.lb(i2).eq.28).
15325 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.8))then
15326 if(iabs(lb(i1)).eq.8)then
15327 ii = i1
15328 IF(X2.LE.0.5)THEN
15329 lb(i1)=2
15330 e(i1)=amn
15331 lb(i2)=5
15332 e(i2)=ap1
15333 go to 40
15334 Else
15335 lb(i1)=1
15336 e(i1)=amn
15337 lb(i2)=4
15338 e(i2)=ap1
15339 go to 40
15340 endif
15341 else
15342 ii = i2
15343 IF(X2.LE.0.5)THEN
15344 lb(i2)=2
15345 e(i2)=amn
15346 lb(i1)=5
15347 e(i1)=ap1
15348 go to 40
15349 Else
15350 lb(i2)=1
15351 e(i2)=amn
15352 lb(i1)=4
15353 e(i1)=ap1
15354 go to 40
15355 endif
15356 endif
15357 endif
15358
15359 if((iabs(lb(i1)).eq.6.and.lb(i2).eq.28).
15360 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.6))then
15361 if(iabs(lb(i1)).eq.6)then
15362 ii = i1
15363 lb(i1)=2
15364 e(i1)=amn
15365 lb(i2)=3
15366 e(i2)=ap1
15367 go to 40
15368 else
15369 ii = i2
15370 lb(i2)=2
15371 e(i2)=amn
15372 lb(i1)=3
15373 e(i1)=ap1
15374 go to 40
15375 ENDIF
15376 endif
15377
15378 if((iabs(lb(i1)).eq.9.and.lb(i2).eq.28).
15379 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.9))then
15380 if(iabs(lb(i1)).eq.9)then
15381 ii = i1
15382 lb(i1)=1
15383 e(i1)=amn
15384 lb(i2)=5
15385 e(i2)=ap1
15386 go to 40
15387 else
15388 ii = i2
15389 lb(i2)=1
15390 e(i2)=amn
15391 lb(i1)=5
15392 e(i1)=ap1
15393 go to 40
15394 ENDIF
15395 endif
15396
15397 if((iabs(lb(i1)).eq.10.and.lb(i2).eq.28).
15398 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.10).
15399 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.12).
15400 & or.(lb(i2).eq.28.and.iabs(lb(i1)).eq.12))then
15401 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
15402 ii = i1
15403 IF(X2.LE.0.5)THEN
15404 lb(i1)=2
15405 e(i1)=amn
15406 lb(i2)=4
15407 e(i2)=ap1
15408 go to 40
15409 Else
15410 lb(i1)=1
15411 e(i1)=amn
15412 lb(i2)=3
15413 e(i2)=ap1
15414 go to 40
15415 endif
15416 else
15417 ii = i2
15418 IF(X2.LE.0.5)THEN
15419 lb(i2)=2
15420 e(i2)=amn
15421 lb(i1)=4
15422 e(i1)=ap1
15423 go to 40
15424 Else
15425 lb(i2)=1
15426 e(i2)=amn
15427 lb(i1)=3
15428 e(i1)=ap1
15429 go to 40
15430 endif
15431 endif
15432 endif
15433
15434 if((iabs(lb(i1)).eq.11.and.lb(i2).eq.28).
15435 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.11).
15436 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.13).
15437 & or.(lb(i2).eq.28.and.iabs(lb(i1)).eq.13))then
15438 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
15439 ii = i1
15440 IF(X2.LE.0.5)THEN
15441 lb(i1)=2
15442 e(i1)=amn
15443 lb(i2)=5
15444 e(i2)=ap1
15445 go to 40
15446 Else
15447 lb(i1)=1
15448 e(i1)=amn
15449 lb(i2)=4
15450 e(i2)=ap1
15451 go to 40
15452 endif
15453 else
15454 ii = i2
15455 IF(X2.LE.0.5)THEN
15456 lb(i2)=2
15457 e(i2)=amn
15458 lb(i1)=5
15459 e(i1)=ap1
15460 go to 40
15461 Else
15462 lb(i2)=1
15463 e(i2)=amn
15464 lb(i1)=4
15465 e(i1)=ap1
15466 go to 40
15467 endif
15468 endif
15469 endif
15470 40 em1=e(i1)
15471 em2=e(i2)
15472 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
15473 lb(ii) = -lb(ii)
15474 jj = i2
15475 if(ii .eq. i2)jj = i1
15476 if(lb(jj).eq.3)then
15477 lb(jj) = 5
15478 elseif(lb(jj).eq.5)then
15479 lb(jj) = 3
15480 endif
15481 endif
15482 endif
15483
15484
15485
15486 50 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
15487 1 - 4.0 * (EM1*EM2)**2
15488 IF(PR2.LE.0.)PR2=1.E-09
15489 PR=SQRT(PR2)/(2.*SRT)
15490
15491
15492
15493 xptr=0.33*pr
15494
15495 cc1=ptr(xptr,iseed)
15496
15497
15498
15499 scheck=pr**2-cc1**2
15500 if(scheck.lt.0) then
15501 write(99,*) 'scheck39: ', scheck
15502 scheck=0.
15503 endif
15504 c1=sqrt(scheck)/pr
15505
15506
15507 T1 = 2.0 * PI * RANART(NSEED)
15508 S1 = SQRT( 1.0 - C1**2 )
15509 CT1 = COS(T1)
15510 ST1 = SIN(T1)
15511 PZ = PR * C1
15512 PX = PR * S1*CT1
15513 PY = PR * S1*ST1
15514
15515 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
15516 RETURN
15517 END
15518
15519
15520
15521 SUBROUTINE Crlaba(PX,PY,PZ,SRT,brel,brsgm,
15522 & I1,I2,nt,IBLOCK,nchrg,icase)
15523
15524
15525
15526
15527
15528
15529
15530
15531
15532
15533
15534
15535 PARAMETER (MAXSTR=150001, MAXR=1, AMN=0.939457,
15536 1 AMP=0.93828,AP1=0.13496,
15537 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15538 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
15539 PARAMETER (ETAM=0.5475, AOMEGA=0.782, ARHO=0.77)
15540 COMMON /AA/ R(3,MAXSTR)
15541
15542 COMMON /BB/ P(3,MAXSTR)
15543
15544 COMMON /CC/ E(MAXSTR)
15545
15546 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15547
15548 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15549
15550 COMMON/RNDF77/NSEED
15551
15552 SAVE
15553
15554 PX0=PX
15555 PY0=PY
15556 PZ0=PZ
15557
15558 if(icase .eq. 3)then
15559 rrr=RANART(NSEED)
15560 if(rrr.lt.brel) then
15561
15562 IBLOCK=8
15563 else
15564 IBLOCK=100
15565 if(rrr.lt.(brel+brsgm)) then
15566
15567 LB(i1) = -15 - int(3 * RANART(NSEED))
15568
15569 e(i1)=asa
15570 else
15571
15572 LB(i1)= -14
15573 e(i1)=ala
15574 endif
15575 LB(i2) = 3 + int(3 * RANART(NSEED))
15576 e(i2)=0.138
15577 endif
15578 endif
15579
15580
15581 if(icase .eq. 4)then
15582 rrr=RANART(NSEED)
15583 if(rrr.lt.brel) then
15584
15585 IBLOCK=8
15586 else
15587 IBLOCK=102
15588
15589
15590 LB(i1) = 23
15591 LB(i2) = -1 - int(2 * RANART(NSEED))
15592 if(nchrg.eq.-2) LB(i2) = -6
15593 if(nchrg.eq. 1) LB(i2) = -9
15594 e(i1) = aka
15595 e(i2) = 0.938
15596 if(nchrg.eq.-2.or.nchrg.eq.1) e(i2)=1.232
15597 endif
15598 endif
15599
15600 EM1=E(I1)
15601 EM2=E(I2)
15602
15603
15604 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
15605 1 - 4.0 * (EM1*EM2)**2
15606 IF(PR2.LE.0.)PR2=1.e-09
15607 PR=SQRT(PR2)/(2.*SRT)
15608 C1 = 1.0 - 2.0 * RANART(NSEED)
15609 T1 = 2.0 * PI * RANART(NSEED)
15610 S1 = SQRT( 1.0 - C1**2 )
15611 CT1 = COS(T1)
15612 ST1 = SIN(T1)
15613 PZ = PR * C1
15614 PX = PR * S1*CT1
15615 PY = PR * S1*ST1
15616
15617 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
15618 RETURN
15619 END
15620
15621
15622
15623 SUBROUTINE Crkn(PX,PY,PZ,SRT,I1,I2,IBLOCK)
15624
15625
15626
15627
15628
15629
15630
15631
15632
15633
15634 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15635 1 AMP=0.93828,AP1=0.13496,
15636 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15637 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
15638 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15639 COMMON /AA/ R(3,MAXSTR)
15640
15641 COMMON /BB/ P(3,MAXSTR)
15642
15643 COMMON /CC/ E(MAXSTR)
15644
15645 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15646
15647 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15648
15649 COMMON/RNDF77/NSEED
15650
15651 SAVE
15652
15653 PX0=PX
15654 PY0=PY
15655 PZ0=PZ
15656
15657 IBLOCK=8
15658 NTAG=0
15659 EM1=E(I1)
15660 EM2=E(I2)
15661
15662
15663
15664 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
15665 1 - 4.0 * (EM1*EM2)**2
15666 IF(PR2.LE.0.)PR2=1.e-09
15667 PR=SQRT(PR2)/(2.*SRT)
15668 C1 = 1.0 - 2.0 * RANART(NSEED)
15669 T1 = 2.0 * PI * RANART(NSEED)
15670 S1 = SQRT( 1.0 - C1**2 )
15671 CT1 = COS(T1)
15672 ST1 = SIN(T1)
15673 PZ = PR * C1
15674 PX = PR * S1*CT1
15675 PY = PR * S1*ST1
15676 RETURN
15677 END
15678
15679
15680
15681 SUBROUTINE Crppba(PX,PY,PZ,SRT,I1,I2,IBLOCK)
15682
15683
15684
15685
15686
15687
15688
15689
15690
15691
15692
15693
15694
15695
15696
15697
15698
15699
15700
15701
15702
15703
15704
15705
15706
15707
15708
15709
15710 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15711 1 AMP=0.93828,AP1=0.13496,AMRHO=0.769,AMOMGA=0.782,
15712 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15713 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
15714 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15715 COMMON /AA/ R(3,MAXSTR)
15716
15717 COMMON /BB/ P(3,MAXSTR)
15718
15719 COMMON /CC/ E(MAXSTR)
15720
15721 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15722
15723 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15724
15725 COMMON/RNDF77/NSEED
15726
15727 SAVE
15728
15729 PX0=PX
15730 PY0=PY
15731 PZ0=PZ
15732
15733
15734 call pbarfs(srt,npion,iseed)
15735
15736
15737
15738
15739
15740
15741
15742
15743
15744 nchrg1=3+int(3*RANART(NSEED))
15745 nchrg2=3+int(3*RANART(NSEED))
15746
15747 pmass1=ap1
15748 pmass2=ap1
15749 if(nchrg1.eq.3.or.nchrg1.eq.5)pmass1=ap2
15750 if(nchrg2.eq.3.or.nchrg2.eq.5)pmass2=ap2
15751
15752 IF(NPION.EQ.2)THEN
15753 IBLOCK=1902
15754
15755 LB(I1)=nchrg1
15756 E(I1)=pmass1
15757 LB(I2)=nchrg2
15758 E(I2)=pmass2
15759
15760 GO TO 50
15761 ENDIF
15762
15763 IF(NPION.EQ.3)THEN
15764 IBLOCK=1903
15765 LB(I1)=nchrg1
15766 E(I1)=pmass1
15767 LB(I2)=22+nchrg2
15768 E(I2)=AMRHO
15769 GO TO 50
15770 ENDIF
15771
15772
15773 IF(NPION.EQ.4)THEN
15774 IBLOCK=1904
15775
15776 if(RANART(NSEED).ge.0.5)then
15777
15778 LB(I1)=22+nchrg1
15779 E(I1)=AMRHO
15780 LB(I2)=22+nchrg2
15781 E(I2)=AMRHO
15782 else
15783
15784 LB(I1)=nchrg1
15785 E(I1)=pmass1
15786 LB(I2)=28
15787 E(I2)=AMOMGA
15788 endif
15789 GO TO 50
15790 ENDIF
15791
15792 IF(NPION.EQ.5)THEN
15793 IBLOCK=1905
15794
15795 LB(I1)=22+nchrg1
15796 E(I1)=AMRHO
15797 LB(I2)=28
15798 E(I2)=AMOMGA
15799 GO TO 50
15800 ENDIF
15801
15802 IF(NPION.EQ.6)THEN
15803 IBLOCK=1906
15804
15805 LB(I1)=28
15806 E(I1)=AMOMGA
15807 LB(I2)=28
15808 E(I2)=AMOMGA
15809 ENDIF
15810
15811 50 EM1=E(I1)
15812 EM2=E(I2)
15813
15814
15815
15816 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
15817 1 - 4.0 * (EM1*EM2)**2
15818 IF(PR2.LE.0.)PR2=1.E-08
15819 PR=SQRT(PR2)/(2.*SRT)
15820
15821 C1 = 1.0 - 2.0 * RANART(NSEED)
15822 T1 = 2.0 * PI * RANART(NSEED)
15823 S1 = SQRT( 1.0 - C1**2 )
15824 CT1 = COS(T1)
15825 ST1 = SIN(T1)
15826
15827 PZ = PR * C1
15828 PX = PR * S1*CT1
15829 PY = PR * S1*ST1
15830
15831 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
15832 RETURN
15833 END
15834
15835
15836
15837
15838
15839
15840 SUBROUTINE crkkpi(I1,I2,XSK1, XSK2, XSK3, XSK4,
15841 & XSK5, XSK6, XSK7, XSK8, XSK9, XSK10, XSK11, SIGK,
15842 & IBLOCK,lbp1,lbp2,emm1,emm2)
15843
15844
15845
15846
15847
15848
15849 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15850 1 AMP=0.93828,AP1=0.13496,AMRHO=0.769,AMOMGA=0.782,
15851 & AMETA = 0.5473,
15852 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15853 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
15854 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15855 COMMON /AA/ R(3,MAXSTR)
15856
15857 COMMON /BB/ P(3,MAXSTR)
15858
15859 COMMON /CC/ E(MAXSTR)
15860
15861 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15862
15863 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15864
15865 COMMON/RNDF77/NSEED
15866
15867 SAVE
15868
15869 IBLOCK=1907
15870 X1 = RANART(NSEED) * SIGK
15871 XSK2 = XSK1 + XSK2
15872 XSK3 = XSK2 + XSK3
15873 XSK4 = XSK3 + XSK4
15874 XSK5 = XSK4 + XSK5
15875 XSK6 = XSK5 + XSK6
15876 XSK7 = XSK6 + XSK7
15877 XSK8 = XSK7 + XSK8
15878 XSK9 = XSK8 + XSK9
15879 XSK10 = XSK9 + XSK10
15880 IF (X1 .LE. XSK1) THEN
15881 LB(I1) = 3 + int(3 * RANART(NSEED))
15882 LB(I2) = 3 + int(3 * RANART(NSEED))
15883 E(I1) = AP2
15884 E(I2) = AP2
15885 GOTO 100
15886 ELSE IF (X1 .LE. XSK2) THEN
15887 LB(I1) = 3 + int(3 * RANART(NSEED))
15888 LB(I2) = 25 + int(3 * RANART(NSEED))
15889 E(I1) = AP2
15890 E(I2) = AMRHO
15891 GOTO 100
15892 ELSE IF (X1 .LE. XSK3) THEN
15893 LB(I1) = 3 + int(3 * RANART(NSEED))
15894 LB(I2) = 28
15895 E(I1) = AP2
15896 E(I2) = AMOMGA
15897 GOTO 100
15898 ELSE IF (X1 .LE. XSK4) THEN
15899 LB(I1) = 3 + int(3 * RANART(NSEED))
15900 LB(I2) = 0
15901 E(I1) = AP2
15902 E(I2) = AMETA
15903 GOTO 100
15904 ELSE IF (X1 .LE. XSK5) THEN
15905 LB(I1) = 25 + int(3 * RANART(NSEED))
15906 LB(I2) = 25 + int(3 * RANART(NSEED))
15907 E(I1) = AMRHO
15908 E(I2) = AMRHO
15909 GOTO 100
15910 ELSE IF (X1 .LE. XSK6) THEN
15911 LB(I1) = 25 + int(3 * RANART(NSEED))
15912 LB(I2) = 28
15913 E(I1) = AMRHO
15914 E(I2) = AMOMGA
15915 GOTO 100
15916 ELSE IF (X1 .LE. XSK7) THEN
15917 LB(I1) = 25 + int(3 * RANART(NSEED))
15918 LB(I2) = 0
15919 E(I1) = AMRHO
15920 E(I2) = AMETA
15921 GOTO 100
15922 ELSE IF (X1 .LE. XSK8) THEN
15923 LB(I1) = 28
15924 LB(I2) = 28
15925 E(I1) = AMOMGA
15926 E(I2) = AMOMGA
15927 GOTO 100
15928 ELSE IF (X1 .LE. XSK9) THEN
15929 LB(I1) = 28
15930 LB(I2) = 0
15931 E(I1) = AMOMGA
15932 E(I2) = AMETA
15933 GOTO 100
15934 ELSE IF (X1 .LE. XSK10) THEN
15935 LB(I1) = 0
15936 LB(I2) = 0
15937 E(I1) = AMETA
15938 E(I2) = AMETA
15939 ELSE
15940 iblock = 222
15941 call rhores(i1,i2)
15942
15943 lb(i1) = 29
15944
15945 e(i2)=0.
15946 END IF
15947
15948 100 CONTINUE
15949 lbp1=lb(i1)
15950 lbp2=lb(i2)
15951 emm1=e(i1)
15952 emm2=e(i2)
15953
15954 RETURN
15955 END
15956
15957
15958
15959
15960 SUBROUTINE Crkhyp(PX,PY,PZ,SRT,I1,I2,
15961 & XKY1, XKY2, XKY3, XKY4, XKY5,
15962 & XKY6, XKY7, XKY8, XKY9, XKY10, XKY11, XKY12, XKY13,
15963 & XKY14, XKY15, XKY16, XKY17, SIGK, IKMP,
15964 & IBLOCK)
15965
15966
15967
15968
15969
15970
15971
15972
15973
15974
15975
15976
15977
15978 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15979 1 AMP=0.93828,AP1=0.13496,AMRHO=0.769,AMOMGA=0.782,APHI=1.02,
15980 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15981 parameter (pimass=0.140, AMETA = 0.5473, aka=0.498,
15982 & aml=1.116,ams=1.193, AM1440 = 1.44, AM1535 = 1.535)
15983 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15984 COMMON /AA/ R(3,MAXSTR)
15985
15986 COMMON /BB/ P(3,MAXSTR)
15987
15988 COMMON /CC/ E(MAXSTR)
15989
15990 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15991
15992 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15993
15994 COMMON/RNDF77/NSEED
15995
15996 SAVE
15997
15998 PX0=PX
15999 PY0=PY
16000 PZ0=PZ
16001 IBLOCK=1908
16002
16003 X1 = RANART(NSEED) * SIGK
16004 XKY2 = XKY1 + XKY2
16005 XKY3 = XKY2 + XKY3
16006 XKY4 = XKY3 + XKY4
16007 XKY5 = XKY4 + XKY5
16008 XKY6 = XKY5 + XKY6
16009 XKY7 = XKY6 + XKY7
16010 XKY8 = XKY7 + XKY8
16011 XKY9 = XKY8 + XKY9
16012 XKY10 = XKY9 + XKY10
16013 XKY11 = XKY10 + XKY11
16014 XKY12 = XKY11 + XKY12
16015 XKY13 = XKY12 + XKY13
16016 XKY14 = XKY13 + XKY14
16017 XKY15 = XKY14 + XKY15
16018 XKY16 = XKY15 + XKY16
16019 IF (X1 .LE. XKY1) THEN
16020 LB(I1) = 3 + int(3 * RANART(NSEED))
16021 LB(I2) = 1 + int(2 * RANART(NSEED))
16022 E(I1) = PIMASS
16023 E(I2) = AMP
16024 GOTO 100
16025 ELSE IF (X1 .LE. XKY2) THEN
16026 LB(I1) = 3 + int(3 * RANART(NSEED))
16027 LB(I2) = 6 + int(4 * RANART(NSEED))
16028 E(I1) = PIMASS
16029 E(I2) = AM0
16030 GOTO 100
16031 ELSE IF (X1 .LE. XKY3) THEN
16032 LB(I1) = 3 + int(3 * RANART(NSEED))
16033 LB(I2) = 10 + int(2 * RANART(NSEED))
16034 E(I1) = PIMASS
16035 E(I2) = AM1440
16036 GOTO 100
16037 ELSE IF (X1 .LE. XKY4) THEN
16038 LB(I1) = 3 + int(3 * RANART(NSEED))
16039 LB(I2) = 12 + int(2 * RANART(NSEED))
16040 E(I1) = PIMASS
16041 E(I2) = AM1535
16042 GOTO 100
16043 ELSE IF (X1 .LE. XKY5) THEN
16044 LB(I1) = 25 + int(3 * RANART(NSEED))
16045 LB(I2) = 1 + int(2 * RANART(NSEED))
16046 E(I1) = AMRHO
16047 E(I2) = AMP
16048 GOTO 100
16049 ELSE IF (X1 .LE. XKY6) THEN
16050 LB(I1) = 25 + int(3 * RANART(NSEED))
16051 LB(I2) = 6 + int(4 * RANART(NSEED))
16052 E(I1) = AMRHO
16053 E(I2) = AM0
16054 GOTO 100
16055 ELSE IF (X1 .LE. XKY7) THEN
16056 LB(I1) = 25 + int(3 * RANART(NSEED))
16057 LB(I2) = 10 + int(2 * RANART(NSEED))
16058 E(I1) = AMRHO
16059 E(I2) = AM1440
16060 GOTO 100
16061 ELSE IF (X1 .LE. XKY8) THEN
16062 LB(I1) = 25 + int(3 * RANART(NSEED))
16063 LB(I2) = 12 + int(2 * RANART(NSEED))
16064 E(I1) = AMRHO
16065 E(I2) = AM1535
16066 GOTO 100
16067 ELSE IF (X1 .LE. XKY9) THEN
16068 LB(I1) = 28
16069 LB(I2) = 1 + int(2 * RANART(NSEED))
16070 E(I1) = AMOMGA
16071 E(I2) = AMP
16072 GOTO 100
16073 ELSE IF (X1 .LE. XKY10) THEN
16074 LB(I1) = 28
16075 LB(I2) = 6 + int(4 * RANART(NSEED))
16076 E(I1) = AMOMGA
16077 E(I2) = AM0
16078 GOTO 100
16079 ELSE IF (X1 .LE. XKY11) THEN
16080 LB(I1) = 28
16081 LB(I2) = 10 + int(2 * RANART(NSEED))
16082 E(I1) = AMOMGA
16083 E(I2) = AM1440
16084 GOTO 100
16085 ELSE IF (X1 .LE. XKY12) THEN
16086 LB(I1) = 28
16087 LB(I2) = 12 + int(2 * RANART(NSEED))
16088 E(I1) = AMOMGA
16089 E(I2) = AM1535
16090 GOTO 100
16091 ELSE IF (X1 .LE. XKY13) THEN
16092 LB(I1) = 0
16093 LB(I2) = 1 + int(2 * RANART(NSEED))
16094 E(I1) = AMETA
16095 E(I2) = AMP
16096 GOTO 100
16097 ELSE IF (X1 .LE. XKY14) THEN
16098 LB(I1) = 0
16099 LB(I2) = 6 + int(4 * RANART(NSEED))
16100 E(I1) = AMETA
16101 E(I2) = AM0
16102 GOTO 100
16103 ELSE IF (X1 .LE. XKY15) THEN
16104 LB(I1) = 0
16105 LB(I2) = 10 + int(2 * RANART(NSEED))
16106 E(I1) = AMETA
16107 E(I2) = AM1440
16108 GOTO 100
16109 ELSE IF (X1 .LE. XKY16) THEN
16110 LB(I1) = 0
16111 LB(I2) = 12 + int(2 * RANART(NSEED))
16112 E(I1) = AMETA
16113 E(I2) = AM1535
16114 GOTO 100
16115 ELSE
16116 LB(I1) = 29
16117 LB(I2) = 1 + int(2 * RANART(NSEED))
16118 E(I1) = APHI
16119 E(I2) = AMN
16120 IBLOCK=222
16121 GOTO 100
16122 END IF
16123
16124 100 CONTINUE
16125 if(IKMP .eq. -1) LB(I2) = -LB(I2)
16126
16127 EM1=E(I1)
16128 EM2=E(I2)
16129
16130
16131
16132 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
16133 1 - 4.0 * (EM1*EM2)**2
16134 IF(PR2.LE.0.)PR2=1.E-08
16135 PR=SQRT(PR2)/(2.*SRT)
16136
16137 C1 = 1.0 - 2.0 * RANART(NSEED)
16138 T1 = 2.0 * PI * RANART(NSEED)
16139 S1 = SQRT( 1.0 - C1**2 )
16140 CT1 = COS(T1)
16141 ST1 = SIN(T1)
16142
16143 PZ = PR * C1
16144 PX = PR * S1*CT1
16145 PY = PR * S1*ST1
16146
16147 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
16148 RETURN
16149 END
16150
16151
16152
16153 SUBROUTINE CRLAN(PX,PY,PZ,SRT,I1,I2,IBLOCK)
16154
16155
16156
16157
16158
16159
16160
16161
16162
16163
16164
16165 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
16166 1 AMP=0.93828,AP1=0.13496,
16167 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
16168 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
16169 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
16170 COMMON /AA/ R(3,MAXSTR)
16171
16172 COMMON /BB/ P(3,MAXSTR)
16173
16174 COMMON /CC/ E(MAXSTR)
16175
16176 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
16177
16178 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
16179
16180 COMMON/RNDF77/NSEED
16181
16182 SAVE
16183
16184 PX0=PX
16185 PY0=PY
16186 PZ0=PZ
16187 IBLOCK=71
16188 NTAG=0
16189 if( (lb(i1).ge.14.and.lb(i1).le.17) .OR.
16190 & (lb(i2).ge.14.and.lb(i2).le.17) )then
16191 LB(I1)=21
16192 else
16193 LB(I1)=23
16194 endif
16195 LB(I2)= 3 + int(3 * RANART(NSEED))
16196 E(I1)=AKA
16197 E(I2)=0.138
16198 EM1=E(I1)
16199 EM2=E(I2)
16200
16201
16202
16203 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
16204 1 - 4.0 * (EM1*EM2)**2
16205 IF(PR2.LE.0.)PR2=1.e-09
16206 PR=SQRT(PR2)/(2.*SRT)
16207 C1 = 1.0 - 2.0 * RANART(NSEED)
16208 T1 = 2.0 * PI * RANART(NSEED)
16209 S1 = SQRT( 1.0 - C1**2 )
16210 CT1 = COS(T1)
16211 ST1 = SIN(T1)
16212
16213 PZ = PR * C1
16214 PX = PR * S1*CT1
16215 PY = PR * S1*ST1
16216
16217 RETURN
16218 END
16219
16220
16221
16222
16223
16224 SUBROUTINE Crkpla(PX,PY,PZ,EC,SRT,spika,
16225 & emm1,emm2,lbp1,lbp2,I1,I2,icase,srhoks)
16226
16227
16228
16229
16230
16231
16232
16233
16234
16235
16236
16237
16238
16239 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
16240 1 AMP=0.93828,AP1=0.13496,AP2=0.13957,AMRHO=0.769,AMOMGA=0.782,
16241 2 AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
16242 PARAMETER (AKA=0.498,AKS=0.895,ALA=1.1157,ASA=1.1974
16243 1 ,APHI=1.02)
16244 PARAMETER (AM1440 = 1.44, AM1535 = 1.535)
16245 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
16246 COMMON /AA/ R(3,MAXSTR)
16247
16248 COMMON /BB/ P(3,MAXSTR)
16249
16250 COMMON /CC/ E(MAXSTR)
16251
16252 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
16253
16254 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
16255
16256 COMMON/RNDF77/NSEED
16257
16258 SAVE
16259
16260 emm1=0.
16261 emm2=0.
16262 lbp1=0
16263 lbp2=0
16264 XKP0 = spika
16265 XKP1 = 0.
16266 XKP2 = 0.
16267 XKP3 = 0.
16268 XKP4 = 0.
16269 XKP5 = 0.
16270 XKP6 = 0.
16271 XKP7 = 0.
16272 XKP8 = 0.
16273 XKP9 = 0.
16274 XKP10 = 0.
16275 sigm = 15.
16276
16277 pdd = (srt**2-(aka+ap1)**2)*(srt**2-(aka-ap1)**2)
16278
16279 if(srt .lt. (ala+amn))go to 70
16280 XKP1 = sigm*(4./3.)*(srt**2-(ala+amn)**2)*
16281 & (srt**2-(ala-amn)**2)/pdd
16282 if(srt .gt. (ala+am0))then
16283 XKP2 = sigm*(16./3.)*(srt**2-(ala+am0)**2)*
16284 & (srt**2-(ala-am0)**2)/pdd
16285 endif
16286 if(srt .gt. (ala+am1440))then
16287 XKP3 = sigm*(4./3.)*(srt**2-(ala+am1440)**2)*
16288 & (srt**2-(ala-am1440)**2)/pdd
16289 endif
16290 if(srt .gt. (ala+am1535))then
16291 XKP4 = sigm*(4./3.)*(srt**2-(ala+am1535)**2)*
16292 & (srt**2-(ala-am1535)**2)/pdd
16293 endif
16294
16295 if(srt .gt. (asa+amn))then
16296 XKP5 = sigm*4.*(srt**2-(asa+amn)**2)*
16297 & (srt**2-(asa-amn)**2)/pdd
16298 endif
16299 if(srt .gt. (asa+am0))then
16300 XKP6 = sigm*16.*(srt**2-(asa+am0)**2)*
16301 & (srt**2-(asa-am0)**2)/pdd
16302 endif
16303 if(srt .gt. (asa+am1440))then
16304 XKP7 = sigm*4.*(srt**2-(asa+am1440)**2)*
16305 & (srt**2-(asa-am1440)**2)/pdd
16306 endif
16307 if(srt .gt. (asa+am1535))then
16308 XKP8 = sigm*4.*(srt**2-(asa+am1535)**2)*
16309 & (srt**2-(asa-am1535)**2)/pdd
16310 endif
16311 70 continue
16312 sig1 = 195.639
16313 sig2 = 372.378
16314 if(srt .gt. aphi+aka)then
16315 pff = sqrt((srt**2-(aphi+aka)**2)*(srt**2-(aphi-aka)**2))
16316
16317
16318 scheck=pdd
16319 if(scheck.le.0) then
16320 write(99,*) 'scheck40: ', scheck
16321 stop
16322 endif
16323
16324 XKP9 = sig1*pff/sqrt(pdd)*1./32./pi/srt**2
16325 if(srt .gt. aphi+aks)then
16326 pff = sqrt((srt**2-(aphi+aks)**2)*(srt**2-(aphi-aks)**2))
16327
16328
16329 scheck=pdd
16330 if(scheck.le.0) then
16331 write(99,*) 'scheck41: ', scheck
16332 stop
16333 endif
16334
16335 XKP10 = sig2*pff/sqrt(pdd)*3./32./pi/srt**2
16336 endif
16337 endif
16338
16339
16340
16341 sigpik=0.
16342 if(srt.gt.(amrho+aks)) then
16343 sigpik=srhoks*9.
16344 1 *(srt**2-(0.77-aks)**2)*(srt**2-(0.77+aks)**2)/4
16345 2 /srt**2/(px**2+py**2+pz**2)
16346 if(srt.gt.(amomga+aks)) sigpik=sigpik*12./9.
16347 endif
16348
16349
16350 sigkp = XKP0 + XKP1 + XKP2 + XKP3 + XKP4
16351 & + XKP5 + XKP6 + XKP7 + XKP8 + XKP9 + XKP10 +sigpik
16352 icase = 0
16353 DSkn=SQRT(sigkp/PI/10.)
16354 dsknr=dskn+0.1
16355 CALL DISTCE(I1,I2,dsknr,DSkn,DT,EC,SRT,IC,
16356 1 PX,PY,PZ)
16357 IF(IC.EQ.-1)return
16358
16359 randu = RANART(NSEED)*sigkp
16360 XKP1 = XKP0 + XKP1
16361 XKP2 = XKP1 + XKP2
16362 XKP3 = XKP2 + XKP3
16363 XKP4 = XKP3 + XKP4
16364 XKP5 = XKP4 + XKP5
16365 XKP6 = XKP5 + XKP6
16366 XKP7 = XKP6 + XKP7
16367 XKP8 = XKP7 + XKP8
16368 XKP9 = XKP8 + XKP9
16369
16370 XKP10 = XKP9 + XKP10
16371
16372
16373 if(randu .le. XKP0)then
16374 icase = 1
16375 return
16376 else
16377
16378 icase = 2
16379 if( randu .le. XKP1 )then
16380 lbp1 = -14
16381 lbp2 = 1 + int(2*RANART(NSEED))
16382 emm1 = ala
16383 emm2 = amn
16384 go to 60
16385 elseif( randu .le. XKP2 )then
16386 lbp1 = -14
16387 lbp2 = 6 + int(4*RANART(NSEED))
16388 emm1 = ala
16389 emm2 = am0
16390 go to 60
16391 elseif( randu .le. XKP3 )then
16392 lbp1 = -14
16393 lbp2 = 10 + int(2*RANART(NSEED))
16394 emm1 = ala
16395 emm2 = am1440
16396 go to 60
16397 elseif( randu .le. XKP4 )then
16398 lbp1 = -14
16399 lbp2 = 12 + int(2*RANART(NSEED))
16400 emm1 = ala
16401 emm2 = am1535
16402 go to 60
16403 elseif( randu .le. XKP5 )then
16404 lbp1 = -15 - int(3*RANART(NSEED))
16405 lbp2 = 1 + int(2*RANART(NSEED))
16406 emm1 = asa
16407 emm2 = amn
16408 go to 60
16409 elseif( randu .le. XKP6 )then
16410 lbp1 = -15 - int(3*RANART(NSEED))
16411 lbp2 = 6 + int(4*RANART(NSEED))
16412 emm1 = asa
16413 emm2 = am0
16414 go to 60
16415 elseif( randu .lt. XKP7 )then
16416 lbp1 = -15 - int(3*RANART(NSEED))
16417 lbp2 = 10 + int(2*RANART(NSEED))
16418 emm1 = asa
16419 emm2 = am1440
16420 go to 60
16421 elseif( randu .lt. XKP8 )then
16422 lbp1 = -15 - int(3*RANART(NSEED))
16423 lbp2 = 12 + int(2*RANART(NSEED))
16424 emm1 = asa
16425 emm2 = am1535
16426 go to 60
16427 elseif( randu .lt. XKP9 )then
16428
16429 icase = 3
16430 lbp1 = 29
16431 lbp2 = 23
16432 emm1 = aphi
16433 emm2 = aka
16434 if(lb(i1).eq.21.or.lb(i2).eq.21)then
16435
16436 lbp2 = 21
16437 icase = -3
16438 endif
16439 go to 60
16440 elseif( randu .lt. XKP10 )then
16441
16442 icase = 4
16443 lbp1 = 29
16444 lbp2 = 30
16445 emm1 = aphi
16446 emm2 = aks
16447 if(lb(i1).eq.21.or.lb(i2).eq.21)then
16448 lbp2 = -30
16449 icase = -4
16450 endif
16451 go to 60
16452
16453 else
16454
16455 icase=5
16456 lbp1=25+int(3*RANART(NSEED))
16457 lbp2=30
16458 emm1=amrho
16459 emm2=aks
16460 if(srt.gt.(amomga+aks).and.RANART(NSEED).lt.0.25) then
16461 lbp1=28
16462 emm1=amomga
16463 endif
16464 if(lb(i1).eq.21.or.lb(i2).eq.21)then
16465 lbp2=-30
16466 icase=-5
16467 endif
16468
16469 endif
16470 endif
16471
16472 60 if( icase.eq.2 .and. (lb(i1).eq.21.or.lb(i2).eq.21) )then
16473 lbp1 = -lbp1
16474 lbp2 = -lbp2
16475 endif
16476 PX0=PX
16477 PY0=PY
16478 PZ0=PZ
16479
16480
16481
16482 PR2 = (SRT**2 - EMM1**2 - EMM2**2)**2
16483 1 - 4.0 * (EMM1*EMM2)**2
16484 IF(PR2.LE.0.)PR2=1.e-09
16485 PR=SQRT(PR2)/(2.*SRT)
16486 C1 = 1.0 - 2.0 * RANART(NSEED)
16487 T1 = 2.0 * PI * RANART(NSEED)
16488 S1 = SQRT( 1.0 - C1**2 )
16489 CT1 = COS(T1)
16490 ST1 = SIN(T1)
16491
16492 PZ = PR * C1
16493 PX = PR * S1*CT1
16494 PY = PR * S1*ST1
16495
16496 RETURN
16497 END
16498
16499
16500
16501 SUBROUTINE Crkphi(PX,PY,PZ,EC,SRT,IBLOCK,
16502 & emm1,emm2,lbp1,lbp2,I1,I2,ikk,icase,rrkk,prkk)
16503
16504
16505
16506
16507
16508
16509
16510
16511
16512
16513
16514
16515
16516
16517 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
16518 1 AMP=0.93828,AP1=0.13496,AP2=0.13957,APHI=1.02,
16519 2 AM0=1.232,AMNS=1.52,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
16520 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,ACAS=1.3213)
16521 PARAMETER (AKS=0.895,AOMEGA=0.7819, ARHO=0.77)
16522 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
16523 COMMON /AA/ R(3,MAXSTR)
16524
16525 COMMON /BB/ P(3,MAXSTR)
16526
16527 COMMON /CC/ E(MAXSTR)
16528
16529 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
16530
16531 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
16532
16533 COMMON/RNDF77/NSEED
16534
16535 SAVE
16536
16537 lb1 = lb(i1)
16538 lb2 = lb(i2)
16539 icase = 0
16540
16541
16542
16543 if(srt .lt. (aphi+ap1)) then
16544 sig1 = 0.
16545 sig2 = 0.
16546 sig3 = 0.
16547 else
16548
16549 if((lb1.eq.23.and.lb2.eq.21).or.(lb2.eq.23.and.lb1.eq.21))then
16550 dnr = 4.
16551 ikk = 2
16552 elseif((lb1.eq.21.and.lb2.eq.30).or.(lb2.eq.21.and.lb1.eq.30)
16553 & .or.(lb1.eq.23.and.lb2.eq.-30).or.(lb2.eq.23.and.lb1.eq.-30))then
16554 dnr = 12.
16555 ikk = 1
16556 else
16557 dnr = 36.
16558 ikk = 0
16559 endif
16560
16561 sig1 = 0.
16562 sig2 = 0.
16563 sig3 = 0.
16564 srri = E(i1)+E(i2)
16565 srr1 = aphi+ap1
16566 srr2 = aphi+aomega
16567 srr3 = aphi+arho
16568
16569 pii = (srt**2-(e(i1)+e(i2))**2)*(srt**2-(e(i1)-e(i2))**2)
16570 srrt = srt - amax1(srri,srr1)
16571
16572
16573 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
16574 sig = 1.69/(srrt**0.141 - 0.407)
16575 else
16576 sig = 3.74 + 0.008*srrt**1.9
16577 endif
16578 sig1=sig*(9./dnr)*(srt**2-(aphi+ap1)**2)*
16579 & (srt**2-(aphi-ap1)**2)/pii
16580 if(srt .gt. aphi+aomega)then
16581 srrt = srt - amax1(srri,srr2)
16582
16583 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
16584 sig = 1.69/(srrt**0.141 - 0.407)
16585 else
16586 sig = 3.74 + 0.008*srrt**1.9
16587 endif
16588 sig2=sig*(9./dnr)*(srt**2-(aphi+aomega)**2)*
16589 & (srt**2-(aphi-aomega)**2)/pii
16590 endif
16591 if(srt .gt. aphi+arho)then
16592 srrt = srt - amax1(srri,srr3)
16593
16594 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
16595 sig = 1.69/(srrt**0.141 - 0.407)
16596 else
16597 sig = 3.74 + 0.008*srrt**1.9
16598 endif
16599 sig3=sig*(27./dnr)*(srt**2-(aphi+arho)**2)*
16600 & (srt**2-(aphi-arho)**2)/pii
16601 endif
16602
16603
16604
16605 endif
16606
16607 rrkk0=rrkk
16608 prkk0=prkk
16609 SIGM=0.
16610 if((lb1.eq.23.and.lb2.eq.21).or.(lb2.eq.23.and.lb1.eq.21))then
16611 CALL XKKANN(SRT, XSK1, XSK2, XSK3, XSK4, XSK5,
16612 & XSK6, XSK7, XSK8, XSK9, XSK10, XSK11, SIGM, rrkk0)
16613 elseif((lb1.eq.21.and.lb2.eq.30).or.(lb2.eq.21.and.lb1.eq.30)
16614 & .or.(lb1.eq.23.and.lb2.eq.-30).or.(lb2.eq.23.and.lb1.eq.-30))then
16615 CALL XKKSAN(i1,i2,SRT,SIGKS1,SIGKS2,SIGKS3,SIGKS4,SIGM,prkk0)
16616 else
16617 endif
16618
16619
16620 sigm0=sigm
16621 sigks = sig1 + sig2 + sig3 + SIGM
16622 DSkn=SQRT(sigks/PI/10.)
16623 dsknr=dskn+0.1
16624 CALL DISTCE(I1,I2,dsknr,DSkn,DT,EC,SRT,IC,
16625 1 PX,PY,PZ)
16626 IF(IC.EQ.-1)return
16627 icase = 1
16628 ranx = RANART(NSEED)
16629
16630 lbp1 = 29
16631 emm1 = aphi
16632 if(ranx .le. sig1/sigks)then
16633 lbp2 = 3 + int(3*RANART(NSEED))
16634 emm2 = ap1
16635 elseif(ranx .le. (sig1+sig2)/sigks)then
16636 lbp2 = 28
16637 emm2 = aomega
16638 elseif(ranx .le. (sig1+sig2+sig3)/sigks)then
16639 lbp2 = 25 + int(3*RANART(NSEED))
16640 emm2 = arho
16641 else
16642 if((lb1.eq.23.and.lb2.eq.21)
16643 & .or.(lb2.eq.23.and.lb1.eq.21))then
16644 CALL crkkpi(I1,I2,XSK1, XSK2, XSK3, XSK4,
16645 & XSK5, XSK6, XSK7, XSK8, XSK9, XSK10, XSK11, SIGM0,
16646 & IBLOCK,lbp1,lbp2,emm1,emm2)
16647 elseif((lb1.eq.21.and.lb2.eq.30)
16648 & .or.(lb2.eq.21.and.lb1.eq.30)
16649 & .or.(lb1.eq.23.and.lb2.eq.-30)
16650 & .or.(lb2.eq.23.and.lb1.eq.-30))then
16651 CALL crkspi(I1,I2,SIGKS1, SIGKS2, SIGKS3, SIGKS4,
16652 & SIGM0,IBLOCK,lbp1,lbp2,emm1,emm2)
16653 else
16654 endif
16655 endif
16656
16657 PX0=PX
16658 PY0=PY
16659 PZ0=PZ
16660
16661
16662
16663 PR2 = (SRT**2 - EMM1**2 - EMM2**2)**2
16664 1 - 4.0 * (EMM1*EMM2)**2
16665 IF(PR2.LE.0.)PR2=1.e-09
16666 PR=SQRT(PR2)/(2.*SRT)
16667 C1 = 1.0 - 2.0 * RANART(NSEED)
16668 T1 = 2.0 * PI * RANART(NSEED)
16669 S1 = SQRT( 1.0 - C1**2 )
16670 CT1 = COS(T1)
16671 ST1 = SIN(T1)
16672
16673 PZ = PR * C1
16674 PX = PR * S1*CT1
16675 PY = PR * S1*ST1
16676
16677 RETURN
16678 END
16679
16680
16681
16682
16683 SUBROUTINE Crksph(PX,PY,PZ,EC,SRT,
16684 & emm1,emm2,lbp1,lbp2,I1,I2,ikkg,ikkl,iblock,
16685 & icase,srhoks)
16686
16687
16688
16689
16690
16691
16692
16693
16694
16695
16696
16697
16698
16699
16700
16701
16702
16703 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
16704 1 AMP=0.93828,AP1=0.13496,AP2=0.13957,APHI=1.02,
16705 2 AM0=1.232,AMNS=1.52,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
16706 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,ACAS=1.3213)
16707 PARAMETER (AKS=0.895,AOMEGA=0.7819, ARHO=0.77)
16708 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
16709 COMMON /AA/ R(3,MAXSTR)
16710
16711 COMMON /BB/ P(3,MAXSTR)
16712
16713 COMMON /CC/ E(MAXSTR)
16714
16715 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
16716
16717 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
16718
16719 COMMON/RNDF77/NSEED
16720
16721 SAVE
16722
16723 lb1 = lb(i1)
16724 lb2 = lb(i2)
16725 icase = 0
16726 sigela=10.
16727 sigkm=0.
16728
16729 if((lb1.ge.25.and.lb1.le.28).or.(lb2.ge.25.and.lb2.le.28)) then
16730 if(iabs(lb1).eq.30.or.iabs(lb2).eq.30) then
16731 sigkm=srhoks
16732
16733 elseif((lb1.eq.23.or.lb1.eq.21.or.lb2.eq.23.or.lb2.eq.21)
16734 1 .and.srt.gt.(ap2+aks)) then
16735 sigkm=srhoks
16736 endif
16737 endif
16738
16739
16740 if(srt .lt. (aphi+aka)) then
16741 sig11=0.
16742 sig22=0.
16743 else
16744
16745
16746 if( (iabs(lb1).eq.30.and.(lb2.ge.3.and.lb2.le.5)) .or.
16747 & (iabs(lb2).eq.30.and.(lb1.ge.3.and.lb1.le.5)) )then
16748 dnr = 18.
16749 ikkl = 0
16750 IBLOCK = 225
16751
16752
16753
16754
16755 sig1 = 2047.042
16756 sig2 = 1496.692
16757
16758 elseif((lb1.eq.23.or.lb1.eq.21.and.(lb2.ge.25.and.lb2.le.27)).or.
16759 & (lb2.eq.23.or.lb2.eq.21.and.(lb1.ge.25.and.lb1.le.27)) )then
16760 dnr = 18.
16761 ikkl = 1
16762 IBLOCK = 224
16763
16764
16765 sig1 = 526.702
16766 sig2 = 1313.960
16767
16768 elseif( (iabs(lb1).eq.30.and.(lb2.ge.25.and.lb2.le.27)) .or.
16769 & (iabs(lb2).eq.30.and.(lb1.ge.25.and.lb1.le.27)) )then
16770 dnr = 54.
16771 ikkl = 0
16772 IBLOCK = 225
16773
16774
16775 sig1 = 1371.257
16776 sig2 = 6999.840
16777
16778 elseif( ((lb1.eq.23.or.lb1.eq.21) .and. lb2.eq.28).or.
16779 & ((lb2.eq.23.or.lb2.eq.21) .and. lb1.eq.28) )then
16780 dnr = 6.
16781 ikkl = 1
16782 IBLOCK = 224
16783
16784
16785 sig1 = 355.429
16786 sig2 = 440.558
16787
16788 else
16789 dnr = 18.
16790 ikkl = 0
16791 IBLOCK = 225
16792
16793
16794 sig1 = 482.292
16795 sig2 = 1698.903
16796 endif
16797
16798 sig11 = 0.
16799 sig22 = 0.
16800
16801
16802
16803
16804
16805 scheck=(srt**2-(e(i1)+e(i2))**2)*(srt**2-(e(i1)-e(i2))**2)
16806 if(scheck.le.0) then
16807 write(99,*) 'scheck42: ', scheck
16808 stop
16809 endif
16810 pii=sqrt(scheck)
16811
16812
16813
16814 scheck=(srt**2-(aphi+aka)**2)*(srt**2-(aphi-aka)**2)
16815 if(scheck.lt.0) then
16816 write(99,*) 'scheck43: ', scheck
16817 scheck=0.
16818 endif
16819 pff = sqrt(scheck)
16820
16821
16822 sig11 = sig1*pff/pii*6./dnr/32./pi/srt**2
16823
16824 if(srt .gt. aphi+aks)then
16825
16826
16827
16828 pff = sqrt((srt**2-(aphi+aks)**2)*(srt**2-(aphi-aks)**2))
16829 sig22 = sig2*pff/pii*18./dnr/32./pi/srt**2
16830 endif
16831
16832
16833
16834 endif
16835
16836
16837 sigks=sig11+sig22+sigela+sigkm
16838
16839 DSkn=SQRT(sigks/PI/10.)
16840 dsknr=dskn+0.1
16841 CALL DISTCE(I1,I2,dsknr,DSkn,DT,EC,SRT,IC,
16842 1 PX,PY,PZ)
16843 IF(IC.EQ.-1)return
16844 icase = 1
16845 ranx = RANART(NSEED)
16846
16847 if(ranx .le. (sigela/sigks))then
16848 lbp1=lb1
16849 emm1=e(i1)
16850 lbp2=lb2
16851 emm2=e(i2)
16852 iblock=111
16853 elseif(ranx .le. ((sigela+sigkm)/sigks))then
16854 lbp1=3+int(3*RANART(NSEED))
16855 emm1=0.14
16856 if(lb1.eq.23.or.lb2.eq.23) then
16857 lbp2=30
16858 emm2=aks
16859 elseif(lb1.eq.21.or.lb2.eq.21) then
16860 lbp2=-30
16861 emm2=aks
16862 elseif(lb1.eq.30.or.lb2.eq.30) then
16863 lbp2=23
16864 emm2=aka
16865 else
16866 lbp2=21
16867 emm2=aka
16868 endif
16869 iblock=112
16870 elseif(ranx .le. ((sigela+sigkm+sig11)/sigks))then
16871 lbp2 = 23
16872 emm2 = aka
16873 ikkg = 1
16874 if(lb1.eq.21.or.lb2.eq.21.or.lb1.eq.-30.or.lb2.eq.-30)then
16875 lbp2=21
16876 iblock=iblock-100
16877 endif
16878 lbp1 = 29
16879 emm1 = aphi
16880 else
16881 lbp2 = 30
16882 emm2 = aks
16883 ikkg = 0
16884 IBLOCK=IBLOCK+2
16885 if(lb1.eq.21.or.lb2.eq.21.or.lb1.eq.-30.or.lb2.eq.-30)then
16886 lbp2=-30
16887 iblock=iblock-100
16888 endif
16889 lbp1 = 29
16890 emm1 = aphi
16891 endif
16892
16893 PX0=PX
16894 PY0=PY
16895 PZ0=PZ
16896
16897
16898
16899 PR2 = (SRT**2 - EMM1**2 - EMM2**2)**2
16900 1 - 4.0 * (EMM1*EMM2)**2
16901 IF(PR2.LE.0.)PR2=1.e-09
16902 PR=SQRT(PR2)/(2.*SRT)
16903 C1 = 1.0 - 2.0 * RANART(NSEED)
16904 T1 = 2.0 * PI * RANART(NSEED)
16905 S1 = SQRT( 1.0 - C1**2 )
16906 CT1 = COS(T1)
16907 ST1 = SIN(T1)
16908
16909 PZ = PR * C1
16910 PX = PR * S1*CT1
16911 PY = PR * S1*ST1
16912
16913 RETURN
16914 END
16915
16916
16917
16918 SUBROUTINE bbkaon(ic,SRT,PX,PY,PZ,ana,PlX,
16919 & PlY,PlZ,ala,pkX,PkY,PkZ,icou1)
16920
16921
16922
16923
16924 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
16925
16926 COMMON/RNDF77/NSEED
16927
16928 SAVE
16929
16930 PI=3.1415962
16931 icou1=0
16932 aka=0.498
16933 ala=1.116
16934 if(ic.eq.2.or.ic.eq.4)ala=1.197
16935 ana=0.939
16936
16937 if(ic.gt.2)then
16938 dmax=srt-aka-ala-0.02
16939 DM1=RMASS(DMAX,ISEED)
16940 ana=dm1
16941 endif
16942 t1=aka+ana+ala
16943 t2=ana+ala-aka
16944 if(srt.le.t1)then
16945 icou1=-1
16946 return
16947 endif
16948 pmax=sqrt((srt**2-t1**2)*(srt**2-t2**2))/(2.*srt)
16949 if(pmax.eq.0.)pmax=1.e-09
16950
16951
16952
16953 ntry=0
16954 1 pk=pmax*RANART(NSEED)
16955 ntry=ntry+1
16956 prob=fkaon(pk,pmax)
16957 if((prob.lt.RANART(NSEED)).and.(ntry.le.40))go to 1
16958 cs=1.-2.*RANART(NSEED)
16959 ss=sqrt(1.-cs**2)
16960 fai=2.*3.14*RANART(NSEED)
16961 pkx=pk*ss*cos(fai)
16962 pky=pk*ss*sin(fai)
16963 pkz=pk*cs
16964
16965 ek=sqrt(aka**2+pk**2)
16966
16967
16968
16969 eln=srt-ek
16970 if(eln.le.0)then
16971 icou1=-1
16972 return
16973 endif
16974
16975 bx=-pkx/eln
16976 by=-pky/eln
16977 bz=-pkz/eln
16978
16979
16980 scheck=1.-bx**2-by**2-bz**2
16981 if(scheck.le.0) then
16982 write(99,*) 'scheck44: ', scheck
16983 stop
16984 endif
16985 ga=1./sqrt(scheck)
16986
16987
16988 elnc=eln/ga
16989 pn2=((elnc**2+ana**2-ala**2)/(2.*elnc))**2-ana**2
16990 if(pn2.le.0.)pn2=1.e-09
16991 pn=sqrt(pn2)
16992 csn=1.-2.*RANART(NSEED)
16993 ssn=sqrt(1.-csn**2)
16994 fain=2.*3.14*RANART(NSEED)
16995 px=pn*ssn*cos(fain)
16996 py=pn*ssn*sin(fain)
16997 pz=pn*csn
16998 en=sqrt(ana**2+pn2)
16999
17000 plx=-px
17001 ply=-py
17002 plz=-pz
17003
17004 PBETA = PX*BX + PY*By+ PZ*Bz
17005 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + En )
17006 Px = BX * TRANS0 + PX
17007 Py = BY * TRANS0 + PY
17008 Pz = BZ * TRANS0 + PZ
17009
17010 el=sqrt(ala**2+plx**2+ply**2+plz**2)
17011 PBETA = PlX*BX + PlY*By+ PlZ*Bz
17012 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + El )
17013 Plx = BX * TRANS0 + PlX
17014 Ply = BY * TRANS0 + PlY
17015 Plz = BZ * TRANS0 + PlZ
17016 return
17017 end
17018
17019
17020
17021 real function pipik(srt)
17022
17023
17024
17025
17026
17027 real xarray(5), earray(5)
17028 SAVE
17029 data xarray /0.001, 0.7,1.5,1.7,2.0/
17030 data earray /1.,1.2,1.6,2.0,2.4/
17031
17032 pmass=0.9383
17033
17034
17035
17036 pipik=0.
17037 if(srt.le.1.)return
17038 if(srt.gt.2.4)then
17039 pipik=2.0/2.
17040 return
17041 endif
17042 if (srt .lt. earray(1)) then
17043 pipik =xarray(1)/2.
17044 return
17045 end if
17046
17047
17048
17049 do 1001 ie = 1,5
17050 if (earray(ie) .eq. srt) then
17051 pipik = xarray(ie)
17052 go to 10
17053 else if (earray(ie) .gt. srt) then
17054 ymin = alog(xarray(ie-1))
17055 ymax = alog(xarray(ie))
17056 xmin = alog(earray(ie-1))
17057 xmax = alog(earray(ie))
17058 pipik = exp(ymin + (alog(srt)-xmin)*(ymax-ymin)
17059 &/(xmax-xmin) )
17060 go to 10
17061 end if
17062 1001 continue
17063 10 PIPIK=PIPIK/2.
17064 continue
17065 return
17066 END
17067
17068
17069
17070
17071
17072
17073 real function pionpp(srt)
17074 SAVE
17075
17076
17077
17078
17079
17080
17081 pmass=0.14
17082 pmass1=0.938
17083 PIONPP=0.00001
17084 IF(SRT.LE.1.22)RETURN
17085
17086
17087
17088 plab=sqrt(((srt**2-pmass**2-pmass1**2)/(2.*pmass1))**2-pmass**2)
17089 pmin=0.3
17090 pmax=25.0
17091 if(plab.gt.pmax)then
17092 pionpp=20./10.
17093 return
17094 endif
17095 if(plab .lt. pmin)then
17096 pionpp = 0.
17097 return
17098 end if
17099
17100 a=24.3
17101 b=-12.3
17102 c=0.324
17103 an=-1.91
17104 d=-2.44
17105 pionpp = a+b*(plab**an)+c*(alog(plab))**2+d*alog(plab)
17106 if(pionpp.le.0)pionpp=0
17107 pionpp=pionpp/10.
17108 return
17109 END
17110
17111
17112
17113
17114
17115
17116 real function pipp1(srt)
17117 SAVE
17118
17119
17120
17121
17122
17123
17124 pmass=0.14
17125 pmass1=0.938
17126 PIPP1=0.0001
17127 IF(SRT.LE.1.22)RETURN
17128
17129
17130
17131 plab=sqrt(((srt**2-pmass**2-pmass1**2)/(2.*pmass1))**2-pmass**2)
17132 pmin=0.3
17133 pmax=25.0
17134 if(plab.gt.pmax)then
17135 pipp1=20./10.
17136 return
17137 endif
17138 if(plab .lt. pmin)then
17139 pipp1 = 0.
17140 return
17141 end if
17142
17143 a=26.6
17144 b=-7.18
17145 c=0.327
17146 an=-1.86
17147 d=-2.81
17148 pipp1 = a+b*(plab**an)+c*(alog(plab))**2+d*alog(plab)
17149 if(pipp1.le.0)pipp1=0
17150 PIPP1=PIPP1/10.
17151 return
17152 END
17153
17154
17155 real function xrho(srt)
17156 SAVE
17157
17158
17159 pmass=0.9383
17160 rmass=0.77
17161 trho=0.151
17162 xrho=0.000000001
17163 if(srt.le.2.67)return
17164 ESMIN=2.*0.9383+rmass-trho/2.
17165 ES=srt
17166
17167 xrho0=0.24*(es-esmin)/(1.4+(es-esmin)**2)
17168 xrho=3.*Xrho0
17169 return
17170 end
17171
17172
17173 real function omega(srt)
17174 SAVE
17175
17176
17177 pmass=0.9383
17178 omass=0.782
17179 tomega=0.0084
17180 omega=0.00000001
17181 if(srt.le.2.68)return
17182 ESMIN=2.*0.9383+omass-tomega/2.
17183 es=srt
17184 omega=0.36*(es-esmin)/(1.25+(es-esmin)**2)
17185 return
17186 end
17187
17188
17189
17190 real function TWOPI(srt)
17191
17192
17193
17194
17195
17196
17197
17198
17199 real xarray(19), earray(19)
17200 SAVE
17201 data xarray /0.300E-05,0.187E+01,0.110E+02,0.149E+02,0.935E+01,
17202 &0.765E+01,0.462E+01,0.345E+01,0.241E+01,0.185E+01,0.165E+01,
17203 &0.150E+01,0.132E+01,0.117E+01,0.116E+01,0.100E+01,0.856E+00,
17204 &0.745E+00,0.300E-05/
17205 data earray /0.122E+01, 0.147E+01, 0.172E+01, 0.197E+01,
17206 &0.222E+01, 0.247E+01, 0.272E+01, 0.297E+01, 0.322E+01,
17207 &0.347E+01, 0.372E+01, 0.397E+01, 0.422E+01, 0.447E+01,
17208 &0.472E+01, 0.497E+01, 0.522E+01, 0.547E+01, 0.572E+01/
17209
17210 pmass=0.14
17211 pmass1=0.938
17212 TWOPI=0.000001
17213 if(srt.le.1.22)return
17214
17215
17216 plab=SRT
17217 if (plab .lt. earray(1)) then
17218 TWOPI= 0.00001
17219 return
17220 end if
17221
17222
17223
17224 do 1001 ie = 1,19
17225 if (earray(ie) .eq. plab) then
17226 TWOPI= xarray(ie)
17227 return
17228 else if (earray(ie) .gt. plab) then
17229 ymin = alog(xarray(ie-1))
17230 ymax = alog(xarray(ie))
17231 xmin = alog(earray(ie-1))
17232 xmax = alog(earray(ie))
17233 TWOPI= exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
17234 & /(xmax-xmin) )
17235 return
17236 end if
17237 1001 continue
17238 return
17239 END
17240
17241
17242
17243
17244 real function THREPI(srt)
17245
17246
17247
17248
17249
17250
17251
17252
17253 real xarray(15), earray(15)
17254 SAVE
17255 data xarray /8.0000000E-06,6.1999999E-05,1.881940,5.025690,
17256 &11.80154,13.92114,15.07308,11.79571,11.53772,10.01197,9.792673,
17257 &9.465264,8.970490,7.944254,6.886320/
17258 data earray /0.122E+01, 0.147E+01, 0.172E+01, 0.197E+01,
17259 &0.222E+01, 0.247E+01, 0.272E+01, 0.297E+01, 0.322E+01,
17260 &0.347E+01, 0.372E+01, 0.397E+01, 0.422E+01, 0.447E+01,
17261 &0.472E+01/
17262
17263 pmass=0.14
17264 pmass1=0.938
17265 THREPI=0.000001
17266 if(srt.le.1.36)return
17267
17268
17269 plab=SRT
17270 if (plab .lt. earray(1)) then
17271 THREPI = 0.00001
17272 return
17273 end if
17274
17275
17276
17277 do 1001 ie = 1,15
17278 if (earray(ie) .eq. plab) then
17279 THREPI= xarray(ie)
17280 return
17281 else if (earray(ie) .gt. plab) then
17282 ymin = alog(xarray(ie-1))
17283 ymax = alog(xarray(ie))
17284 xmin = alog(earray(ie-1))
17285 xmax = alog(earray(ie))
17286 THREPI = exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
17287 & /(xmax-xmin) )
17288 return
17289 end if
17290 1001 continue
17291 return
17292 END
17293
17294
17295
17296
17297 real function FOURPI(srt)
17298
17299
17300
17301
17302
17303
17304
17305
17306 real xarray(10), earray(10)
17307 SAVE
17308 data xarray /0.0001,1.986597,6.411932,7.636956,
17309 &9.598362,9.889740,10.24317,10.80138,11.86988,12.83925/
17310 data earray /2.468,2.718,2.968,0.322E+01,
17311 &0.347E+01, 0.372E+01, 0.397E+01, 0.422E+01, 0.447E+01,
17312 &0.472E+01/
17313
17314 pmass=0.14
17315 pmass1=0.938
17316 FOURPI=0.000001
17317 if(srt.le.1.52)return
17318
17319
17320 plab=SRT
17321 if (plab .lt. earray(1)) then
17322 FOURPI= 0.00001
17323 return
17324 end if
17325
17326
17327
17328 do 1001 ie = 1,10
17329 if (earray(ie) .eq. plab) then
17330 FOURPI= xarray(ie)
17331 return
17332 else if (earray(ie) .gt. plab) then
17333 ymin = alog(xarray(ie-1))
17334 ymax = alog(xarray(ie))
17335 xmin = alog(earray(ie-1))
17336 xmax = alog(earray(ie))
17337 FOURPI= exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
17338 & /(xmax-xmin) )
17339 return
17340 end if
17341 1001 continue
17342 return
17343 END
17344
17345
17346
17347
17348 real function reab(i1,i2,srt,ictrl)
17349
17350
17351
17352
17353
17354
17355 PARAMETER (MAXSTR=150001,MAXR=1,PI=3.1415926)
17356 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
17357 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
17358 parameter (amn=0.938,ap1=0.14,arho=0.77,aomega=0.782)
17359 parameter (maxx=20,maxz=24)
17360 COMMON /AA/ R(3,MAXSTR)
17361
17362 COMMON /BB/ P(3,MAXSTR)
17363
17364 COMMON /CC/ E(MAXSTR)
17365
17366 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
17367 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
17368 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
17369
17370 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
17371
17372 SAVE
17373 LB1=LB(I1)
17374 LB2=LB(I2)
17375 reab=0
17376 if(ictrl.eq.1.and.srt.le.(amn+2.*ap1+0.02))return
17377 if(ictrl.eq.3.and.srt.le.(amn+ap1+aomega+0.02))return
17378 pin2=((srt**2+ap1**2-amn**2)/(2.*srt))**2-ap1**2
17379 if(pin2.le.0)return
17380
17381 if(ictrl.eq.1)then
17382 if(e(i1).gt.1)then
17383 ed=e(i1)
17384 else
17385 ed=e(i2)
17386 endif
17387 pout2=((srt**2+ap1**2-ed**2)/(2.*srt))**2-ap1**2
17388 if(pout2.le.0)return
17389 xpro=twopi(srt)/10.
17390 factor=1/3.
17391 if( ((lb1.eq.8.and.lb2.eq.5).or.
17392 & (lb1.eq.5.and.lb2.eq.8))
17393 & .OR.((lb1.eq.-8.and.lb2.eq.3).or.
17394 & (lb1.eq.3.and.lb2.eq.-8)) )factor=1/4.
17395 if((iabs(lb1).ge.10.and.iabs(lb1).le.13).
17396 & or.(iabs(lb2).ge.10.and.iabs(lb2).le.13))factor=1.
17397 reab=factor*pin2/pout2*xpro
17398 return
17399 endif
17400
17401 if(ictrl.eq.2)then
17402 if(lb(i2).ge.25)then
17403 ed=e(i1)
17404 arho1=e(i2)
17405 else
17406 ed=e(i2)
17407 arho1=e(i1)
17408 endif
17409 if(srt.le.(amn+ap1+arho1+0.02))return
17410 pout2=((srt**2+arho1**2-ed**2)/(2.*srt))**2-arho1**2
17411 if(pout2.le.0)return
17412 xpro=threpi(srt)/10.
17413 factor=1/3.
17414 if( ((lb1.eq.8.and.lb2.eq.27).or.
17415 & (lb1.eq.27.and.lb2.eq.8))
17416 & .OR. ((lb1.eq.-8.and.lb2.eq.25).or.
17417 & (lb1.eq.25.and.lb2.eq.-8)) )factor=1/4.
17418 if((iabs(lb1).ge.10.and.iabs(lb1).le.13).
17419 & or.(iabs(lb2).ge.10.and.iabs(lb2).le.13))factor=1.
17420 reab=factor*pin2/pout2*xpro
17421 return
17422 endif
17423
17424 if(ictrl.eq.3)then
17425 if(e(i1).gt.1)ed=e(i1)
17426 if(e(i2).gt.1)ed=e(i2)
17427 pout2=((srt**2+aomega**2-ed**2)/(2.*srt))**2-aomega**2
17428 if(pout2.le.0)return
17429 xpro=fourpi(srt)/10.
17430 factor=1/6.
17431 if((iabs(lb1).ge.10.and.iabs(lb1).le.13).
17432 & or.(iabs(lb2).ge.10.and.iabs(lb2).le.13))factor=1./3.
17433 reab=factor*pin2/pout2*xpro
17434 endif
17435 return
17436 END
17437
17438
17439
17440
17441
17442 real function reab2d(i1,i2,srt)
17443
17444
17445
17446 PARAMETER (MAXSTR=150001,MAXR=1,PI=3.1415926)
17447 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
17448 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
17449 parameter (amn=0.938,ap1=0.14,arho=0.77,aomega=0.782)
17450 parameter (maxx=20,maxz=24)
17451 COMMON /AA/ R(3,MAXSTR)
17452
17453 COMMON /BB/ P(3,MAXSTR)
17454
17455 COMMON /CC/ E(MAXSTR)
17456
17457 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
17458 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
17459 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
17460
17461 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
17462
17463 SAVE
17464 reab2d=0
17465 LB1=iabs(LB(I1))
17466 LB2=iabs(LB(I2))
17467 ed1=e(i1)
17468 ed2=e(i2)
17469 pin2=(srt/2.)**2-amn**2
17470 pout2=((srt**2+ed1**2-ed2**2)/(2.*srt))**2-ed1**2
17471 if(pout2.le.0)return
17472 xpro=x2pi(srt)
17473 factor=1/4.
17474 if((lb1.ge.10.and.lb1.le.13).and.
17475 & (lb2.ge.10.and.lb2.le.13))factor=1.
17476 if((lb1.ge.6.and.lb1.le.9).and.
17477 & (lb2.gt.10.and.lb2.le.13))factor=1/2.
17478 if((lb2.ge.6.and.lb2.le.9).and.
17479 & (lb1.gt.10.and.lb1.le.13))factor=1/2.
17480 reab2d=factor*pin2/pout2*xpro
17481 return
17482 end
17483
17484 SUBROUTINE rotate(PX0,PY0,PZ0,px,py,pz)
17485 SAVE
17486
17487
17488
17489
17490
17491
17492
17493
17494
17495 PR0 = SQRT( PX0**2 + PY0**2 + PZ0**2 )
17496 IF(PR0.EQ.0)PR0=0.00000001
17497 C2 = PZ0 / PR0
17498 IF(PX0 .EQ. 0.0 .AND. PY0 .EQ. 0.0) THEN
17499 T2 = 0.0
17500 ELSE
17501 T2=ATAN2(PY0,PX0)
17502 END IF
17503
17504
17505 scheck=1.0 - C2**2
17506 if(scheck.lt.0) then
17507 write(99,*) 'scheck45: ', scheck
17508 scheck=0.
17509 endif
17510 S2=sqrt(scheck)
17511
17512
17513 CT2 = COS(T2)
17514 ST2 = SIN(T2)
17515
17516 PR=SQRT(PX**2+PY**2+PZ**2)
17517 IF(PR.EQ.0)PR=0.0000001
17518 C1=PZ/PR
17519 IF(PX.EQ.0.AND.PY.EQ.0)THEN
17520 T1=0.
17521 ELSE
17522 T1=ATAN2(PY,PX)
17523 ENDIF
17524
17525
17526 scheck=1.0 - C1**2
17527 if(scheck.lt.0) then
17528 write(99,*) 'scheck46: ', scheck
17529 scheck=0.
17530 endif
17531 S1=sqrt(scheck)
17532
17533
17534 CT1 = COS(T1)
17535 ST1 = SIN(T1)
17536 SS = C2 * S1 * CT1 + S2 * C1
17537
17538 PX = PR * ( SS*CT2 - S1*ST1*ST2 )
17539 PY = PR * ( SS*ST2 + S1*ST1*CT2 )
17540 PZ = PR * ( C1*C2 - S1*S2*CT1 )
17541 RETURN
17542 END
17543
17544
17545 real function Xpp(srt)
17546
17547
17548
17549
17550
17551
17552
17553
17554 real xarray(14), earray(14)
17555 SAVE
17556 data earray /20.,30.,40.,60.,80.,100.,
17557 &170.,250.,310.,
17558 &350.,460.,560.,660.,800./
17559 data xarray /150.,90.,80.6,48.0,36.6,
17560 &31.6,25.9,24.0,23.1,
17561 &24.0,28.3,33.6,41.5,47/
17562
17563 xpp=0.
17564 pmass=0.9383
17565
17566
17567 ekin = 2000.*pmass*((srt/(2.*pmass))**2 - 1.)
17568 if (ekin .lt. earray(1)) then
17569 xpp = xarray(1)
17570 IF(XPP.GT.55)XPP=55
17571 return
17572 end if
17573 IF(EKIN.GT.EARRAY(14))THEN
17574 XPP=XARRAY(14)
17575 RETURN
17576 ENDIF
17577
17578
17579
17580
17581 do 1001 ie = 1,14
17582 if (earray(ie) .eq. ekin) then
17583 xPP= xarray(ie)
17584 if(xpp.gt.55)xpp=55.
17585 return
17586 endif
17587 if (earray(ie) .gt. ekin) then
17588 ymin = alog(xarray(ie-1))
17589 ymax = alog(xarray(ie))
17590 xmin = alog(earray(ie-1))
17591 xmax = alog(earray(ie))
17592 XPP = exp(ymin + (alog(ekin)-xmin)
17593 & *(ymax-ymin)/(xmax-xmin) )
17594 IF(XPP.GT.55)XPP=55.
17595 go to 50
17596 end if
17597 1001 continue
17598 50 continue
17599 return
17600 END
17601
17602 real function Xnp(srt)
17603
17604
17605
17606
17607
17608
17609
17610
17611 real xarray(11), earray(11)
17612 SAVE
17613 data earray /20.,30.,40.,60.,90.,135.0,200.,
17614 &300.,400.,600.,800./
17615 data xarray / 410.,270.,214.5,130.,78.,53.5,
17616 &41.6,35.9,34.2,34.3,34.9/
17617
17618 xnp=0.
17619 pmass=0.9383
17620
17621
17622 ekin = 2000.*pmass*((srt/(2.*pmass))**2 - 1.)
17623 if (ekin .lt. earray(1)) then
17624 xnp = xarray(1)
17625 IF(XNP.GT.55)XNP=55
17626 return
17627 end if
17628 IF(EKIN.GT.EARRAY(11))THEN
17629 XNP=XARRAY(11)
17630 RETURN
17631 ENDIF
17632
17633
17634
17635 do 1001 ie = 1,11
17636 if (earray(ie) .eq. ekin) then
17637 xNP = xarray(ie)
17638 if(xnp.gt.55)xnp=55.
17639 return
17640 endif
17641 if (earray(ie) .gt. ekin) then
17642 ymin = alog(xarray(ie-1))
17643 ymax = alog(xarray(ie))
17644 xmin = alog(earray(ie-1))
17645 xmax = alog(earray(ie))
17646 xNP = exp(ymin + (alog(ekin)-xmin)
17647 & *(ymax-ymin)/(xmax-xmin) )
17648 IF(XNP.GT.55)XNP=55
17649 go to 50
17650 end if
17651 1001 continue
17652 50 continue
17653 return
17654 END
17655
17656 function ptr(ptmax,iseed)
17657
17658
17659
17660 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
17661
17662 COMMON/RNDF77/NSEED
17663
17664 SAVE
17665 ptr=0.
17666 if(ptmax.le.1.e-02)then
17667 ptr=ptmax
17668 return
17669 endif
17670 if(ptmax.gt.2.01)ptmax=2.01
17671 tryial=ptdis(ptmax)/ptdis(2.01)
17672 XT=RANART(NSEED)*tryial
17673
17674
17675 do 50 ie = 1,200
17676 if (earray(ie) .eq. xT) then
17677 ptr = xarray(ie)
17678 return
17679 end if
17680 if(xarray(ie-1).le.0.00001)go to 50
17681 if(xarray(ie).le.0.00001)go to 50
17682 if(earray(ie-1).le.0.00001)go to 50
17683 if(earray(ie).le.0.00001)go to 50
17684 if (earray(ie) .gt. xT) then
17685 ymin = alog(xarray(ie-1))
17686 ymax = alog(xarray(ie))
17687 xmin = alog(earray(ie-1))
17688 xmax = alog(earray(ie))
17689 ptr= exp(ymin + (alog(xT)-xmin)*(ymax-ymin)
17690 & /(xmax-xmin) )
17691 if(ptr.gt.ptmax)ptr=ptmax
17692 return
17693 endif
17694 50 continue
17695 return
17696 end
17697
17698
17699
17700
17701
17702 SUBROUTINE XND(px,py,pz,srt,I1,I2,xinel,
17703 & sigk,xsk1,xsk2,xsk3,xsk4,xsk5)
17704
17705
17706
17707
17708
17709
17710
17711
17712
17713
17714
17715
17716
17717
17718
17719
17720
17721
17722
17723
17724
17725
17726
17727
17728
17729
17730
17731
17732
17733
17734
17735
17736
17737
17738
17739
17740
17741
17742
17743
17744
17745
17746
17747
17748 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
17749 1 AMP=0.93828,AP1=0.13496,AKA=0.498,APHI=1.020,
17750 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
17751 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
17752 COMMON /AA/ R(3,MAXSTR)
17753
17754 COMMON /BB/ P(3,MAXSTR)
17755
17756 COMMON /CC/ E(MAXSTR)
17757
17758 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
17759
17760 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
17761
17762 common /gg/ dx,dy,dz,dpx,dpy,dpz
17763
17764 COMMON /INPUT/ NSTAR,NDIRCT,DIR
17765
17766 COMMON /NN/NNN
17767
17768 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
17769
17770 COMMON /RUN/NUM
17771
17772 COMMON /PA/RPION(3,MAXSTR,MAXR)
17773
17774 COMMON /PB/PPION(3,MAXSTR,MAXR)
17775
17776 COMMON /PC/EPION(MAXSTR,MAXR)
17777
17778 COMMON /PD/LPION(MAXSTR,MAXR)
17779
17780 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
17781
17782 SAVE
17783
17784
17785 xinel=0.
17786 sigk=0
17787 xsk1=0
17788 xsk2=0
17789 xsk3=0
17790 xsk4=0
17791 xsk5=0
17792 EM1=E(I1)
17793 EM2=E(I2)
17794 PR = SQRT( PX**2 + PY**2 + PZ**2 )
17795
17796 IF (SRT .LT. 2.04) RETURN
17797
17798
17799
17800 PRF=SQRT(0.25*SRT**2-AVMASS**2)
17801 IF(EM1.GT.1.)THEN
17802 DELTAM=EM1
17803 ELSE
17804 DELTAM=EM2
17805 ENDIF
17806 RENOM=DELTAM*PRF**2/DENOM(SRT,1.)/PR
17807 RENOMN=DELTAM*PRF**2/DENOM(SRT,2.)/PR
17808 RENOM1=DELTAM*PRF**2/DENOM(SRT,-1.)/PR
17809
17810
17811
17812 if((iabs(lb(i1)).eq.2).and.(iabs(lb(i2)).eq.6)) renom=0.
17813 if((iabs(lb(i2)).eq.2).and.(iabs(lb(i1)).eq.6)) renom=0.
17814 if((iabs(lb(i1)).eq.1).and.(iabs(lb(i2)).eq.9)) renom=0.
17815 if((iabs(lb(i2)).eq.1).and.(iabs(lb(i1)).eq.9)) renom=0.
17816 Call M1535(iabs(lb(i1)),iabs(lb(i2)),srt,x1535)
17817 X1440=(3./4.)*SIGMA(SRT,2,0,1)
17818
17819
17820 akp=0.498
17821 ak0=0.498
17822 ana=0.94
17823 ada=1.232
17824 al=1.1157
17825 as=1.1197
17826 xsk1=0
17827 xsk2=0
17828 xsk3=0
17829 xsk4=0
17830
17831 xsk5=0
17832 t1nlk=ana+al+akp
17833 if(srt.le.t1nlk)go to 222
17834 XSK1=1.5*PPLPK(SRT)
17835
17836 t1dlk=ada+al+akp
17837 t2dlk=ada+al-akp
17838 if(srt.le.t1dlk)go to 222
17839 es=srt
17840 pmdlk2=(es**2-t1dlk**2)*(es**2-t2dlk**2)/(4.*es**2)
17841 pmdlk=sqrt(pmdlk2)
17842 XSK3=1.5*PPLPK(srt)
17843
17844 t1nsk=ana+as+akp
17845 t2nsk=ana+as-akp
17846 if(srt.le.t1nsk)go to 222
17847 pmnsk2=(es**2-t1nsk**2)*(es**2-t2nsk**2)/(4.*es**2)
17848 pmnsk=sqrt(pmnsk2)
17849 XSK2=1.5*(PPK1(srt)+PPK0(srt))
17850
17851 t1DSk=aDa+aS+akp
17852 t2DSk=aDa+aS-akp
17853 if(srt.le.t1dsk)go to 222
17854 pmDSk2=(es**2-t1DSk**2)*(es**2-t2DSk**2)/(4.*es**2)
17855 pmDSk=sqrt(pmDSk2)
17856 XSK4=1.5*(PPK1(srt)+PPK0(srt))
17857
17858
17859 if(srt.le.(2.*amn+aphi))go to 222
17860
17861 xsk5 = 0.0001
17862
17863
17864
17865 222 SIGK=XSK1+XSK2+XSK3+XSK4
17866
17867
17868 XSK1 = 2.0 * XSK1
17869 XSK2 = 2.0 * XSK2
17870 XSK3 = 2.0 * XSK3
17871 XSK4 = 2.0 * XSK4
17872 SIGK = 2.0 * SIGK + xsk5
17873
17874
17875
17876
17877
17878 if(((iabs(lb(i1)).eq.2).and.(iabs(lb(i2)).eq.6)).OR.
17879 & ((iabs(lb(i2)).eq.2).and.(iabs(lb(i1)).eq.6)).OR.
17880 & ((iabs(lb(i1)).eq.1).and.(iabs(lb(i2)).eq.9)).OR.
17881 & ((iabs(lb(i2)).eq.1).and.(iabs(lb(i1)).eq.9)))THEN
17882 xinel=sigk
17883 return
17884 ENDIF
17885
17886
17887
17888 IF(LB(I1)*LB(I2).EQ.18.AND.
17889 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))then
17890 SIGND=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
17891 SIGDN=0.25*SIGND*RENOM
17892 xinel=SIGDN+X1440+X1535+SIGK
17893 RETURN
17894 endif
17895
17896
17897 IF(LB(I1)*LB(I2).EQ.6.AND.
17898 & (iabs(LB(I1)).EQ.1.OR.iabs(LB(I2)).EQ.1))THEN
17899 SIGND=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
17900 SIGDN=0.25*SIGND*RENOM
17901 xinel=SIGDN+X1440+X1535+SIGK
17902 RETURN
17903 endif
17904
17905
17906 IF(LB(I1)*LB(I2).EQ.8.AND.
17907 & (iabs(LB(I1)).EQ.1.OR.iabs(LB(I2)).EQ.1))THEN
17908 SIGND=1.5*SIGMA(SRT,1,1,1)
17909 SIGDN=0.25*SIGND*RENOM
17910 xinel=SIGDN+x1440+x1535+SIGK
17911 RETURN
17912 endif
17913
17914 IF(LB(I1)*LB(I2).EQ.14.AND.
17915 & (iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2))THEN
17916 SIGND=1.5*SIGMA(SRT,1,1,1)
17917 SIGDN=0.25*SIGND*RENOM
17918 xinel=SIGDN+x1440+x1535+SIGK
17919 RETURN
17920 endif
17921
17922
17923 IF(LB(I1)*LB(I2).EQ.16.AND.
17924 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))THEN
17925 SIGND=0.5*SIGMA(SRT,1,1,1)+0.25*SIGMA(SRT,1,1,0)
17926 SIGDN=0.5*SIGND*RENOM
17927 xinel=SIGDN+2.*x1440+2.*x1535+SIGK
17928 RETURN
17929 endif
17930
17931
17932 IF(LB(I1)*LB(I2).EQ.7)THEN
17933 SIGND=0.5*SIGMA(SRT,1,1,1)+0.25*SIGMA(SRT,1,1,0)
17934 SIGDN=0.5*SIGND*RENOM
17935 xinel=SIGDN+2.*x1440+2.*x1535+SIGK
17936 RETURN
17937 endif
17938
17939
17940 IF(LB(I1)*LB(I2).EQ.10.AND.
17941 & (iabs(LB(I1)).EQ.1.OR.iabs(LB(I2)).EQ.1))then
17942 SIGND=(3./4.)*SIGMA(SRT,2,0,1)
17943 SIGDN=SIGND*RENOMN
17944 xinel=SIGDN+X1535+SIGK
17945 RETURN
17946 endif
17947
17948 IF(LB(I1)*LB(I2).EQ.22.AND.
17949 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))then
17950 SIGND=(3./4.)*SIGMA(SRT,2,0,1)
17951 SIGDN=SIGND*RENOMN
17952 xinel=SIGDN+X1535+SIGK
17953 RETURN
17954 endif
17955
17956 IF((iabs(LB(I1)).EQ.12).OR.(iabs(LB(I1)).EQ.13).OR.
17957 1 (iabs(LB(I2)).EQ.12).OR.(iabs(LB(I2)).EQ.13))THEN
17958 SIGND=X1535
17959 SIGDN=SIGND*RENOM1
17960 xinel=SIGDN+SIGK
17961 RETURN
17962 endif
17963 RETURN
17964 end
17965
17966
17967
17968 SUBROUTINE XDDIN(PX,PY,PZ,SRT,I1,I2,
17969 &XINEL,SIGK,XSK1,XSK2,XSK3,XSK4,XSK5)
17970
17971
17972
17973
17974
17975
17976
17977
17978
17979
17980
17981
17982
17983
17984
17985
17986
17987
17988
17989
17990
17991
17992
17993
17994
17995
17996
17997
17998
17999
18000
18001
18002
18003
18004
18005
18006
18007
18008
18009
18010
18011
18012
18013
18014
18015
18016
18017
18018
18019
18020
18021
18022
18023
18024
18025
18026
18027
18028
18029
18030
18031
18032
18033
18034
18035
18036
18037
18038
18039
18040
18041
18042
18043 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
18044 1 AMP=0.93828,AP1=0.13496,AKA=0.498,APHI=1.020,
18045 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
18046 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
18047 COMMON /AA/ R(3,MAXSTR)
18048
18049 COMMON /BB/ P(3,MAXSTR)
18050
18051 COMMON /CC/ E(MAXSTR)
18052
18053 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
18054
18055 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
18056
18057 common /gg/ dx,dy,dz,dpx,dpy,dpz
18058
18059 COMMON /INPUT/ NSTAR,NDIRCT,DIR
18060
18061 COMMON /NN/NNN
18062
18063 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
18064
18065 COMMON /RUN/NUM
18066
18067 COMMON /PA/RPION(3,MAXSTR,MAXR)
18068
18069 COMMON /PB/PPION(3,MAXSTR,MAXR)
18070
18071 COMMON /PC/EPION(MAXSTR,MAXR)
18072
18073 COMMON /PD/LPION(MAXSTR,MAXR)
18074
18075 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
18076
18077 SAVE
18078
18079 XINEL=0
18080 SIGK=0
18081 XSK1=0
18082 XSK2=0
18083 XSK3=0
18084 XSK4=0
18085 XSK5=0
18086 EM1=E(I1)
18087 EM2=E(I2)
18088 PR = SQRT( PX**2 + PY**2 + PZ**2 )
18089
18090
18091
18092
18093
18094
18095
18096
18097
18098 call N1535(iabs(lb(i1)),iabs(lb(i2)),srt,X1535)
18099
18100
18101
18102
18103
18104
18105
18106
18107
18108 akp=0.498
18109 ak0=0.498
18110 ana=0.94
18111 ada=1.232
18112 al=1.1157
18113 as=1.1197
18114 xsk1=0
18115 xsk2=0
18116 xsk3=0
18117 xsk4=0
18118 t1nlk=ana+al+akp
18119 if(srt.le.t1nlk)go to 222
18120 XSK1=1.5*PPLPK(SRT)
18121
18122 t1dlk=ada+al+akp
18123 t2dlk=ada+al-akp
18124 if(srt.le.t1dlk)go to 222
18125 es=srt
18126 pmdlk2=(es**2-t1dlk**2)*(es**2-t2dlk**2)/(4.*es**2)
18127 pmdlk=sqrt(pmdlk2)
18128 XSK3=1.5*PPLPK(srt)
18129
18130 t1nsk=ana+as+akp
18131 t2nsk=ana+as-akp
18132 if(srt.le.t1nsk)go to 222
18133 pmnsk2=(es**2-t1nsk**2)*(es**2-t2nsk**2)/(4.*es**2)
18134 pmnsk=sqrt(pmnsk2)
18135 XSK2=1.5*(PPK1(srt)+PPK0(srt))
18136
18137 t1DSk=aDa+aS+akp
18138 t2DSk=aDa+aS-akp
18139 if(srt.le.t1dsk)go to 222
18140 pmDSk2=(es**2-t1DSk**2)*(es**2-t2DSk**2)/(4.*es**2)
18141 pmDSk=sqrt(pmDSk2)
18142 XSK4=1.5*(PPK1(srt)+PPK0(srt))
18143
18144
18145 if(srt.le.(2.*amn+aphi))go to 222
18146
18147 xsk5 = 0.0001
18148
18149
18150 222 SIGK=XSK1+XSK2+XSK3+XSK4
18151
18152
18153 XSK1 = 2.0 * XSK1
18154 XSK2 = 2.0 * XSK2
18155 XSK3 = 2.0 * XSK3
18156 XSK4 = 2.0 * XSK4
18157 SIGK = 2.0 * SIGK + xsk5
18158
18159
18160 IDD=iabs(LB(I1)*LB(I2))
18161
18162
18163 s2d=reab2d(i1,i2,srt)
18164
18165
18166 S2D = 0.
18167
18168
18169
18170
18171 if(((iabs(lb(i1)).ge.12).and.(iabs(lb(i2)).ge.12)).OR.
18172 & ((iabs(lb(i1)).ge.12).and.(iabs(lb(i2)).ge.6)).OR.
18173 & ((iabs(lb(i2)).ge.12).and.(iabs(lb(i1)).ge.6)))THEN
18174 XINEL=sigk+s2d
18175 RETURN
18176 ENDIF
18177
18178 IF((IDD.EQ.63).OR.(IDD.EQ.64).OR.(IDD.EQ.48).
18179 1 OR.(IDD.EQ.49).OR.(IDD.EQ.11*11).OR.(IDD.EQ.10*10).
18180 2 OR.(IDD.EQ.88).OR.(IDD.EQ.66).
18181 3 OR.(IDD.EQ.90).OR.(IDD.EQ.70))THEN
18182 XINEL=X1535+SIGK+s2d
18183 RETURN
18184 ENDIF
18185
18186
18187
18188 IF((IDD.EQ.110).OR.(IDD.EQ.77).OR.(IDD.EQ.80))THEN
18189 XINEL=X1535+SIGK+s2d
18190 RETURN
18191 ENDIF
18192 IF((IDD.EQ.54).OR.(IDD.EQ.56))THEN
18193
18194
18195 SIG2=(3./4.)*SIGMA(SRT,2,0,1)
18196 XINEL=2.*(SIG2+X1535)+SIGK+s2d
18197 RETURN
18198 ENDIF
18199 RETURN
18200 END
18201
18202 real function dirct1(srt)
18203
18204
18205
18206
18207
18208
18209
18210 real xarray(122), earray(122)
18211 SAVE
18212 data earray /
18213 &1.568300,1.578300,1.588300,1.598300,1.608300,1.618300,1.628300,
18214 &1.638300,1.648300,1.658300,1.668300,1.678300,1.688300,1.698300,
18215 &1.708300,1.718300,1.728300,1.738300,1.748300,1.758300,1.768300,
18216 &1.778300,1.788300,1.798300,1.808300,1.818300,1.828300,1.838300,
18217 &1.848300,1.858300,1.868300,1.878300,1.888300,1.898300,1.908300,
18218 &1.918300,1.928300,1.938300,1.948300,1.958300,1.968300,1.978300,
18219 &1.988300,1.998300,2.008300,2.018300,2.028300,2.038300,2.048300,
18220 &2.058300,2.068300,2.078300,2.088300,2.098300,2.108300,2.118300,
18221 &2.128300,2.138300,2.148300,2.158300,2.168300,2.178300,2.188300,
18222 &2.198300,2.208300,2.218300,2.228300,2.238300,2.248300,2.258300,
18223 &2.268300,2.278300,2.288300,2.298300,2.308300,2.318300,2.328300,
18224 &2.338300,2.348300,2.358300,2.368300,2.378300,2.388300,2.398300,
18225 &2.408300,2.418300,2.428300,2.438300,2.448300,2.458300,2.468300,
18226 &2.478300,2.488300,2.498300,2.508300,2.518300,2.528300,2.538300,
18227 &2.548300,2.558300,2.568300,2.578300,2.588300,2.598300,2.608300,
18228 &2.618300,2.628300,2.638300,2.648300,2.658300,2.668300,2.678300,
18229 &2.688300,2.698300,2.708300,2.718300,2.728300,2.738300,2.748300,
18230 &2.758300,2.768300,2.778300/
18231 data xarray/
18232 &1.7764091E-02,0.5643668,0.8150568,1.045565,2.133695,3.327922,
18233 &4.206488,3.471242,4.486876,5.542213,6.800052,7.192446,6.829848,
18234 &6.580306,6.868410,8.527946,10.15720,9.716511,9.298335,8.901310,
18235 &10.31213,10.52185,11.17630,11.61639,12.05577,12.71596,13.46036,
18236 &14.22060,14.65449,14.94775,14.93310,15.32907,16.56481,16.29422,
18237 &15.18548,14.12658,13.72544,13.24488,13.31003,14.42680,12.84423,
18238 &12.49025,12.14858,11.81870,11.18993,11.35816,11.09447,10.83873,
18239 &10.61592,10.53754,9.425521,8.195912,9.661075,9.696192,9.200142,
18240 &8.953734,8.715461,8.484999,8.320765,8.255512,8.190969,8.127125,
18241 &8.079508,8.073004,8.010611,7.948909,7.887895,7.761005,7.626290,
18242 &7.494696,7.366132,7.530178,8.392097,9.046881,8.962544,8.879403,
18243 &8.797427,8.716601,8.636904,8.558312,8.404368,8.328978,8.254617,
18244 &8.181265,8.108907,8.037527,7.967100,7.897617,7.829057,7.761405,
18245 &7.694647,7.628764,7.563742,7.499570,7.387562,7.273281,7.161334,
18246 &6.973375,6.529592,6.280323,6.293136,6.305725,6.318097,6.330258,
18247 &6.342214,6.353968,6.365528,6.376895,6.388079,6.399081,6.409906,
18248 &6.420560,6.431045,6.441367,6.451529,6.461533,6.471386,6.481091,
18249 &6.490650,6.476413,6.297259,6.097826/
18250
18251 dirct1=0.
18252 if (srt .lt. earray(1)) then
18253 dirct1 = 0.00001
18254 return
18255 end if
18256 if (srt .gt. earray(122)) then
18257 dirct1 = xarray(122)
18258 dirct1=dirct1/10.
18259 return
18260 end if
18261
18262
18263
18264 do 1001 ie = 1,122
18265 if (earray(ie) .eq. srt) then
18266 dirct1= xarray(ie)
18267 dirct1=dirct1/10.
18268 return
18269 endif
18270 if (earray(ie) .gt. srt) then
18271 ymin = alog(xarray(ie-1))
18272 ymax = alog(xarray(ie))
18273 xmin = alog(earray(ie-1))
18274 xmax = alog(earray(ie))
18275 dirct1= exp(ymin + (alog(srt)-xmin)
18276 & *(ymax-ymin)/(xmax-xmin) )
18277 dirct1=dirct1/10.
18278 go to 50
18279 end if
18280 1001 continue
18281 50 continue
18282 return
18283 END
18284
18285
18286 real function dirct2(srt)
18287
18288
18289
18290
18291
18292
18293
18294 real xarray(122), earray(122)
18295 SAVE
18296 data earray /
18297 &1.568300,1.578300,1.588300,1.598300,1.608300,1.618300,1.628300,
18298 &1.638300,1.648300,1.658300,1.668300,1.678300,1.688300,1.698300,
18299 &1.708300,1.718300,1.728300,1.738300,1.748300,1.758300,1.768300,
18300 &1.778300,1.788300,1.798300,1.808300,1.818300,1.828300,1.838300,
18301 &1.848300,1.858300,1.868300,1.878300,1.888300,1.898300,1.908300,
18302 &1.918300,1.928300,1.938300,1.948300,1.958300,1.968300,1.978300,
18303 &1.988300,1.998300,2.008300,2.018300,2.028300,2.038300,2.048300,
18304 &2.058300,2.068300,2.078300,2.088300,2.098300,2.108300,2.118300,
18305 &2.128300,2.138300,2.148300,2.158300,2.168300,2.178300,2.188300,
18306 &2.198300,2.208300,2.218300,2.228300,2.238300,2.248300,2.258300,
18307 &2.268300,2.278300,2.288300,2.298300,2.308300,2.318300,2.328300,
18308 &2.338300,2.348300,2.358300,2.368300,2.378300,2.388300,2.398300,
18309 &2.408300,2.418300,2.428300,2.438300,2.448300,2.458300,2.468300,
18310 &2.478300,2.488300,2.498300,2.508300,2.518300,2.528300,2.538300,
18311 &2.548300,2.558300,2.568300,2.578300,2.588300,2.598300,2.608300,
18312 &2.618300,2.628300,2.638300,2.648300,2.658300,2.668300,2.678300,
18313 &2.688300,2.698300,2.708300,2.718300,2.728300,2.738300,2.748300,
18314 &2.758300,2.768300,2.778300/
18315 data xarray/0.5773182,1.404156,2.578629,3.832013,4.906011,
18316 &9.076963,13.10492,10.65975,15.31156,19.77611,19.92874,18.68979,
18317 &19.80114,18.39536,14.34269,13.35353,13.58822,14.57031,10.24686,
18318 &11.23386,9.764803,10.35652,10.53539,10.07524,9.582198,9.596469,
18319 &9.818489,9.012848,9.378012,9.529244,9.529698,8.835624,6.671396,
18320 &8.797758,8.133437,7.866227,7.823946,7.808504,7.791755,7.502062,
18321 &7.417275,7.592349,7.752028,7.910585,8.068122,8.224736,8.075289,
18322 &7.895902,7.721359,7.551512,7.386224,7.225343,7.068739,6.916284,
18323 &6.767842,6.623294,6.482520,6.345404,6.211833,7.339510,7.531462,
18324 &7.724824,7.919620,7.848021,7.639856,7.571083,7.508881,7.447474,
18325 &7.386855,7.327011,7.164454,7.001266,6.842526,6.688094,6.537823,
18326 &6.391583,6.249249,6.110689,5.975790,5.894200,5.959503,6.024602,
18327 &6.089505,6.154224,6.218760,6.283128,6.347331,6.297411,6.120248,
18328 &5.948606,6.494864,6.357106,6.222824,6.091910,5.964267,5.839795,
18329 &5.718402,5.599994,5.499146,5.451325,5.404156,5.357625,5.311721,
18330 &5.266435,5.301964,5.343963,5.385833,5.427577,5.469200,5.510702,
18331 &5.552088,5.593359,5.634520,5.675570,5.716515,5.757356,5.798093,
18332 &5.838732,5.879272,5.919717,5.960068,5.980941/
18333
18334 dirct2=0.
18335 if (srt .lt. earray(1)) then
18336 dirct2 = 0.00001
18337 return
18338 end if
18339 if (srt .gt. earray(122)) then
18340 dirct2 = xarray(122)
18341 dirct2=dirct2/10.
18342 return
18343 end if
18344
18345
18346
18347 do 1001 ie = 1,122
18348 if (earray(ie) .eq. srt) then
18349 dirct2= xarray(ie)
18350 dirct2=dirct2/10.
18351 return
18352 endif
18353 if (earray(ie) .gt. srt) then
18354 ymin = alog(xarray(ie-1))
18355 ymax = alog(xarray(ie))
18356 xmin = alog(earray(ie-1))
18357 xmax = alog(earray(ie))
18358 dirct2= exp(ymin + (alog(srt)-xmin)
18359 & *(ymax-ymin)/(xmax-xmin) )
18360 dirct2=dirct2/10.
18361 go to 50
18362 end if
18363 1001 continue
18364 50 continue
18365 return
18366 END
18367
18368
18369
18370
18371
18372 real function ErhoN(em1,em2,lb1,lb2,srt)
18373
18374
18375
18376 dimension arrayj(19),arrayl(19),arraym(19),
18377 &arrayw(19),arrayb(19)
18378 SAVE
18379 data arrayj /0.5,1.5,0.5,0.5,2.5,2.5,1.5,0.5,1.5,3.5,
18380 &1.5,0.5,1.5,0.5,2.5,0.5,1.5,2.5,3.5/
18381 data arrayl/1,2,0,0,2,3,2,1,1,3,
18382 &1,0,2,0,3,1,1,2,3/
18383 data arraym /1.44,1.52,1.535,1.65,1.675,1.68,1.70,1.71,
18384 &1.72,1.99,1.60,1.62,1.70,1.90,1.905,1.910,
18385 &1.86,1.93,1.95/
18386 data arrayw/0.2,0.125,0.15,0.15,0.155,0.125,0.1,0.11,
18387 &0.2,0.29,0.25,0.16,0.28,0.15,0.3,0.22,0.25,
18388 &0.25,0.24/
18389 data arrayb/0.15,0.20,0.05,0.175,0.025,0.125,0.1,0.20,
18390 &0.53,0.34,0.05,0.07,0.15,0.45,0.45,0.058,
18391 &0.08,0.12,0.08/
18392
18393
18394 pi=3.1415926
18395 xs=0
18396
18397 do 1001 ir=1,19
18398
18399 IF(IR.LE.8)THEN
18400
18401
18402
18403
18404
18405
18406
18407
18408 if( ((lb1*lb2.eq.27.AND.(LB1.EQ.1.OR.LB2.EQ.1)).OR.
18409 & (LB1*LB2.EQ.25*2.AND.(LB1.EQ.2.OR.LB2.EQ.2)))
18410 & .OR.((lb1*lb2.eq.-25.AND.(LB1.EQ.-1.OR.LB2.EQ.-1)).OR.
18411 & (LB1*LB2.EQ.-27*2.AND.(LB1.EQ.-2.OR.LB2.EQ.-2))) )
18412 & branch=0.
18413 if((iabs(lb1*lb2).eq.26.AND.(iabs(LB1).EQ.1.OR.iabs(LB2).EQ.1))
18414 & .OR.(iabs(LB1*LB2).EQ.26*2
18415 & .AND.(iabs(LB1).EQ.2.OR.iabs(LB2).EQ.2)))
18416 & branch=1./3.
18417 if( ((lb1*lb2.eq.27*2.AND.(LB1.EQ.2.OR.LB2.EQ.2)).OR.
18418 & (LB1*LB2.EQ.25.AND.(LB1.EQ.1.OR.LB2.EQ.1)))
18419 & .OR.((lb1*lb2.eq.-25*2.AND.(LB1.EQ.-2.OR.LB2.EQ.-2)).OR.
18420 & (LB1*LB2.EQ.-27.AND.(LB1.EQ.-1.OR.LB2.EQ.-1))) )
18421 & branch=2./3.
18422 ELSE
18423 if( ((lb1*lb2.eq.27.AND.(LB1.EQ.1.OR.LB2.EQ.1)).OR.
18424 & (LB1*LB2.EQ.25*2.AND.(LB1.EQ.2.OR.LB2.EQ.2)))
18425 & .OR.((lb1*lb2.eq.-25.AND.(LB1.EQ.-1.OR.LB2.EQ.-1)).OR.
18426 & (LB1*LB2.EQ.-27*2.AND.(LB1.EQ.-2.OR.LB2.EQ.-2))) )
18427 & branch=1.
18428 if((iabs(lb1*lb2).eq.26.AND.(iabs(LB1).EQ.1.OR.iabs(LB2).EQ.1))
18429 & .OR.(iabs(LB1*LB2).EQ.26*2
18430 & .AND.(iabs(LB1).EQ.2.OR.iabs(LB2).EQ.2)))
18431 & branch=2./3.
18432 if( ((lb1*lb2.eq.27*2.AND.(LB1.EQ.2.OR.LB2.EQ.2)).OR.
18433 & (LB1*LB2.EQ.25.AND.(LB1.EQ.1.OR.LB2.EQ.1)))
18434 & .OR.((lb1*lb2.eq.-25*2.AND.(LB1.EQ.-2.OR.LB2.EQ.-2)).OR.
18435 & (LB1*LB2.EQ.-27.AND.(LB1.EQ.-1.OR.LB2.EQ.-1))) )
18436 & branch=1./3.
18437 ENDIF
18438
18439 xs0=fdR(arraym(ir),arrayj(ir),arrayl(ir),
18440 &arrayw(ir),arrayb(ir),srt,EM1,EM2)
18441 xs=xs+1.3*pi*branch*xs0*(0.1973)**2
18442 1001 continue
18443 Erhon=xs
18444 return
18445 end
18446
18447
18448
18449
18450 REAL FUNCTION FDR(DMASS,aj,al,width,widb0,srt,em1,em2)
18451 SAVE
18452 AMd=em1
18453 AmP=em2
18454 Ak02= 0.25*(DMASS**2-amd**2-amp**2)**2
18455 & -(Amp*amd)**2
18456 IF (ak02 .GT. 0.) THEN
18457 Q0 = SQRT(ak02/DMASS)
18458 ELSE
18459 Q0= 0.0
18460 fdR=0
18461 return
18462 END IF
18463 Ak2= 0.25*(srt**2-amd**2-amp**2)**2
18464 & -(Amp*amd)**2
18465 IF (ak2 .GT. 0.) THEN
18466 Q = SQRT(ak2/DMASS)
18467 ELSE
18468 Q= 0.00
18469 fdR=0
18470 return
18471 END IF
18472 b=widb0*1.2*dmass/srt*(q/q0)**(2.*al+1)
18473 & /(1.+0.2*(q/q0)**(2*al))
18474 FDR=(2.*aj+1)*WIDTH**2*b/((srt-dmass)**2
18475 1 +0.25*WIDTH**2)/(6.*q**2)
18476 RETURN
18477 END
18478
18479
18480
18481
18482 REAL FUNCTION DIRCT3(SRT)
18483
18484
18485
18486 dimension arrayj(17),arrayl(17),arraym(17),
18487 &arrayw(17),arrayb(17)
18488 SAVE
18489 data arrayj /1.5,0.5,2.5,2.5,1.5,0.5,1.5,3.5,
18490 &1.5,0.5,1.5,0.5,2.5,0.5,1.5,2.5,3.5/
18491 data arrayl/2,0,2,3,2,1,1,3,
18492 &1,0,2,0,3,1,1,2,3/
18493 data arraym /1.52,1.65,1.675,1.68,1.70,1.71,
18494 &1.72,1.99,1.60,1.62,1.70,1.90,1.905,1.910,
18495 &1.86,1.93,1.95/
18496 data arrayw/0.125,0.15,0.155,0.125,0.1,0.11,
18497 &0.2,0.29,0.25,0.16,0.28,0.15,0.3,0.22,0.25,
18498 &0.25,0.24/
18499 data arrayb/0.55,0.6,0.375,0.6,0.1,0.15,
18500 &0.15,0.05,0.35,0.3,0.15,0.1,0.1,0.22,
18501 &0.2,0.09,0.4/
18502
18503
18504 pi=3.1415926
18505 amn=0.938
18506 amp=0.138
18507 xs=0
18508
18509 branch=1./3.
18510 do 1001 ir=1,17
18511 if(ir.gt.8)branch=2./3.
18512 xs0=fd1(arraym(ir),arrayj(ir),arrayl(ir),
18513 &arrayw(ir),arrayb(ir),srt)
18514 xs=xs+1.3*pi*branch*xs0*(0.1973)**2
18515 1001 continue
18516 DIRCT3=XS
18517 RETURN
18518 end
18519
18520
18521
18522
18523 REAL FUNCTION FD1(DMASS,aj,al,width,widb0,srt)
18524 SAVE
18525 AMN=0.938
18526 AmP=0.138
18527 amd=amn
18528 Ak02= 0.25*(DMASS**2-amd**2-amp**2)**2
18529 & -(Amp*amd)**2
18530 IF (ak02 .GT. 0.) THEN
18531 Q0 = SQRT(ak02/DMASS)
18532 ELSE
18533 Q0= 0.0
18534 fd1=0
18535 return
18536 END IF
18537 Ak2= 0.25*(srt**2-amd**2-amp**2)**2
18538 & -(Amp*amd)**2
18539 IF (ak2 .GT. 0.) THEN
18540 Q = SQRT(ak2/DMASS)
18541 ELSE
18542 Q= 0.00
18543 fd1=0
18544 return
18545 END IF
18546 b=widb0*1.2*dmass/srt*(q/q0)**(2.*al+1)
18547 & /(1.+0.2*(q/q0)**(2*al))
18548 FD1=(2.*aj+1)*WIDTH**2*b/((srt-dmass)**2
18549 1 +0.25*WIDTH**2)/(2.*q**2)
18550 RETURN
18551 END
18552
18553
18554
18555
18556 REAL FUNCTION DPION(EM1,EM2,LB1,LB2,SRT)
18557
18558
18559
18560 dimension arrayj(19),arrayl(19),arraym(19),
18561 &arrayw(19),arrayb(19)
18562 SAVE
18563 data arrayj /0.5,1.5,0.5,0.5,2.5,2.5,1.5,0.5,1.5,3.5,
18564 &1.5,0.5,1.5,0.5,2.5,0.5,1.5,2.5,3.5/
18565 data arrayl/1,2,0,0,2,3,2,1,1,3,
18566 &1,0,2,0,3,1,1,2,3/
18567 data arraym /1.44,1.52,1.535,1.65,1.675,1.68,1.70,1.71,
18568 &1.72,1.99,1.60,1.62,1.70,1.90,1.905,1.910,
18569 &1.86,1.93,1.95/
18570 data arrayw/0.2,0.125,0.15,0.15,0.155,0.125,0.1,0.11,
18571 &0.2,0.29,0.25,0.16,0.28,0.15,0.3,0.22,0.25,
18572 &0.25,0.24/
18573 data arrayb/0.15,0.25,0.,0.05,0.575,0.125,0.379,0.10,
18574 &0.10,0.062,0.45,0.60,0.6984,0.05,0.25,0.089,
18575 &0.19,0.2,0.13/
18576
18577
18578 pi=3.1415926
18579 amn=0.94
18580 amp=0.14
18581 xs=0
18582
18583 do 1001 ir=1,19
18584 BRANCH=0.
18585
18586 if(ir.LE.8)THEN
18587
18588
18589
18590
18591
18592
18593
18594
18595
18596
18597 IF( ((LB1*LB2.EQ.5*7.AND.(LB1.EQ.5.OR.LB2.EQ.5)).OR.
18598 & (LB1*LB2.EQ.3*8.AND.(LB1.EQ.3.OR.LB2.EQ.3)))
18599 & .OR.((LB1*LB2.EQ.-3*7.AND.(LB1.EQ.3.OR.LB2.EQ.3)).OR.
18600 & (LB1*LB2.EQ.-5*8.AND.(LB1.EQ.5.OR.LB2.EQ.5))) )
18601 & branch=1./6.
18602 IF((iabs(LB1*LB2).EQ.4*7.AND.(LB1.EQ.4.OR.LB2.EQ.4)).OR.
18603 & (iabs(LB1*LB2).EQ.4*8.AND.(LB1.EQ.4.OR.LB2.EQ.4)))
18604 & branch=1./3.
18605 IF( ((LB1*LB2.EQ.5*6.AND.(LB1.EQ.5.OR.LB2.EQ.5)).OR.
18606 & (LB1*LB2.EQ.3*9.AND.(LB1.EQ.3.OR.LB2.EQ.3)))
18607 & .OR.((LB1*LB2.EQ.-3*6.AND.(LB1.EQ.3.OR.LB2.EQ.3)).OR.
18608 & (LB1*LB2.EQ.-5*9.AND.(LB1.EQ.5.OR.LB2.EQ.5))) )
18609 & branch=1./2.
18610 ELSE
18611 IF( ((LB1*LB2.EQ.5*8.AND.(LB1.EQ.5.OR.LB2.EQ.5)).OR.
18612 & (LB1*LB2.EQ.5*6.AND.(LB1.EQ.5.OR.LB2.EQ.5)))
18613 & .OR.((LB1*LB2.EQ.-3*8.AND.(LB1.EQ.3.OR.LB2.EQ.3)).OR.
18614 & (LB1*LB2.EQ.-3*6.AND.(LB1.EQ.3.OR.LB2.EQ.3))) )
18615 & branch=2./5.
18616 IF( ((LB1*LB2.EQ.3*9.AND.(LB1.EQ.3.OR.LB2.EQ.3)).OR.
18617 & (LB1*LB2.EQ.3*7.AND.(LB1.EQ.3.OR.LB2.EQ.3)))
18618 & .OR. ((LB1*LB2.EQ.-5*9.AND.(LB1.EQ.5.OR.LB2.EQ.5)).OR.
18619 & (LB1*LB2.EQ.-5*7.AND.(LB1.EQ.5.OR.LB2.EQ.5))) )
18620 & branch=2./5.
18621 IF( ((LB1*LB2.EQ.5*7.AND.(LB1.EQ.5.OR.LB2.EQ.5)).OR.
18622 & (LB1*LB2.EQ.3*8.AND.(LB1.EQ.3.OR.LB2.EQ.3)))
18623 & .OR.((LB1*LB2.EQ.-3*7.AND.(LB1.EQ.3.OR.LB2.EQ.3)).OR.
18624 & (LB1*LB2.EQ.-5*8.AND.(LB1.EQ.5.OR.LB2.EQ.5))) )
18625 & branch=8./15.
18626 IF((iabs(LB1*LB2).EQ.4*7.AND.(LB1.EQ.4.OR.LB2.EQ.4)).OR.
18627 & (iabs(LB1*LB2).EQ.4*8.AND.(LB1.EQ.4.OR.LB2.EQ.4)))
18628 & branch=1./15.
18629 IF((iabs(LB1*LB2).EQ.4*9.AND.(LB1.EQ.4.OR.LB2.EQ.4)).OR.
18630 & (iabs(LB1*LB2).EQ.4*6.AND.(LB1.EQ.4.OR.LB2.EQ.4)))
18631 & branch=3./5.
18632 ENDIF
18633
18634 xs0=fd2(arraym(ir),arrayj(ir),arrayl(ir),
18635 &arrayw(ir),arrayb(ir),EM1,EM2,srt)
18636 xs=xs+1.3*pi*branch*xs0*(0.1973)**2
18637 1001 continue
18638 DPION=XS
18639 RETURN
18640 end
18641
18642
18643
18644
18645 REAL FUNCTION FD2(DMASS,aj,al,width,widb0,EM1,EM2,srt)
18646 SAVE
18647 AmP=EM1
18648 amd=EM2
18649 Ak02= 0.25*(DMASS**2-amd**2-amp**2)**2
18650 & -(Amp*amd)**2
18651 IF (ak02 .GT. 0.) THEN
18652 Q0 = SQRT(ak02/DMASS)
18653 ELSE
18654 Q0= 0.0
18655 fd2=0
18656 return
18657 END IF
18658 Ak2= 0.25*(srt**2-amd**2-amp**2)**2
18659 & -(Amp*amd)**2
18660 IF (ak2 .GT. 0.) THEN
18661 Q = SQRT(ak2/DMASS)
18662 ELSE
18663 Q= 0.00
18664 fd2=0
18665 return
18666 END IF
18667 b=widb0*1.2*dmass/srt*(q/q0)**(2.*al+1)
18668 & /(1.+0.2*(q/q0)**(2*al))
18669 FD2=(2.*aj+1)*WIDTH**2*b/((srt-dmass)**2
18670 1 +0.25*WIDTH**2)/(4.*q**2)
18671 RETURN
18672 END
18673
18674
18675 subroutine Rmasdd(srt,am10,am20,
18676 &dmin1,dmin2,ISEED,ic,dm1,dm2)
18677 COMMON/RNDF77/NSEED
18678
18679 SAVE
18680 amn=0.94
18681 amp=0.14
18682
18683 dmax1=srt-dmin2
18684
18685 5 NTRY1=0
18686 ntry2=0
18687 ntry=0
18688 ictrl=0
18689 10 DM1 = RANART(NSEED) * (DMAX1-DMIN1) + DMIN1
18690 NTRY1=NTRY1+1
18691
18692 if(ictrl.eq.0)dmax2=srt-dm1
18693
18694 20 dm2=RANART(NSEED)*(dmax2-dmin2)+dmin2
18695 NTRY2=NTRY2+1
18696
18697
18698 q2=((srt**2-dm1**2-dm2**2)**2-4.*dm1**2*dm2**2)
18699 if(q2.le.0)then
18700 dmax2=dm2-0.01
18701
18702 ictrl=1
18703 go to 20
18704 endif
18705
18706 IF(DMAX1.LT.am10) THEN
18707 if(ic.eq.1)FM1=Fmassd(DMAX1)
18708 if(ic.eq.2)FM1=Fmassn(DMAX1)
18709 if(ic.eq.3)FM1=Fmassd(DMAX1)
18710 if(ic.eq.4)FM1=Fmassd(DMAX1)
18711 ELSE
18712 if(ic.eq.1)FM1=Fmassd(am10)
18713 if(ic.eq.2)FM1=Fmassn(am10)
18714 if(ic.eq.3)FM1=Fmassd(am10)
18715 if(ic.eq.4)FM1=Fmassd(am10)
18716 ENDIF
18717 IF(DMAX2.LT.am20) THEN
18718 if(ic.eq.1)FM2=Fmassd(DMAX2)
18719 if(ic.eq.2)FM2=Fmassn(DMAX2)
18720 if(ic.eq.3)FM2=Fmassn(DMAX2)
18721 if(ic.eq.4)FM2=Fmassr(DMAX2)
18722 ELSE
18723 if(ic.eq.1)FM2=Fmassd(am20)
18724 if(ic.eq.2)FM2=Fmassn(am20)
18725 if(ic.eq.3)FM2=Fmassn(am20)
18726 if(ic.eq.4)FM2=Fmassr(am20)
18727 ENDIF
18728 IF(FM1.EQ.0.)FM1=1.e-04
18729 IF(FM2.EQ.0.)FM2=1.e-04
18730 prob0=fm1*fm2
18731 if(ic.eq.1)prob=Fmassd(dm1)*fmassd(dm2)
18732 if(ic.eq.2)prob=Fmassn(dm1)*fmassn(dm2)
18733 if(ic.eq.3)prob=Fmassd(dm1)*fmassn(dm2)
18734 if(ic.eq.4)prob=Fmassd(dm1)*fmassr(dm2)
18735 if(prob.le.1.e-06)prob=1.e-06
18736 fff=prob/prob0
18737 ntry=ntry+1
18738 IF(RANART(NSEED).GT.fff.AND.
18739 1 NTRY.LE.20) GO TO 10
18740
18741
18742
18743 if((abs(am10-0.77).le.0.01.and.dm1.gt.1.07)
18744 1 .or.(abs(am10-1.232).le.0.01.and.dm1.gt.1.47)
18745 2 .or.(abs(am10-1.44).le.0.01.and.dm1.gt.2.14)) goto 5
18746 if((abs(am20-0.77).le.0.01.and.dm2.gt.1.07)
18747 1 .or.(abs(am20-1.232).le.0.01.and.dm2.gt.1.47)
18748 2 .or.(abs(am20-1.44).le.0.01.and.dm2.gt.2.14)) goto 5
18749
18750 RETURN
18751 END
18752
18753 REAL FUNCTION Fmassd(DMASS)
18754 SAVE
18755 AM0=1.232
18756 Fmassd=am0*WIDTH(DMASS)/((DMASS**2-am0**2)**2
18757 1 +am0**2*WIDTH(DMASS)**2)
18758 RETURN
18759 END
18760
18761 REAL FUNCTION Fmassn(DMASS)
18762 SAVE
18763 AM0=1.44
18764 Fmassn=am0*W1440(DMASS)/((DMASS**2-am0**2)**2
18765 1 +am0**2*W1440(DMASS)**2)
18766 RETURN
18767 END
18768
18769 REAL FUNCTION Fmassr(DMASS)
18770 SAVE
18771 AM0=0.77
18772 wid=0.153
18773 Fmassr=am0*Wid/((DMASS**2-am0**2)**2
18774 1 +am0**2*Wid**2)
18775 RETURN
18776 END
18777
18778
18779
18780
18781 subroutine flow(nt)
18782
18783 PARAMETER ( PI=3.1415926,APion=0.13957,aka=0.498)
18784 PARAMETER (MAXSTR=150001,MAXR=1,AMU= 0.9383,etaM=0.5475)
18785 DIMENSION ypion(-80:80),ypr(-80:80),ykaon(-80:80)
18786 dimension pxpion(-80:80),pxpro(-80:80),pxkaon(-80:80)
18787
18788 COMMON /AA/ R(3,MAXSTR)
18789
18790 COMMON /BB/ P(3,MAXSTR)
18791
18792 COMMON /CC/ E(MAXSTR)
18793
18794 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
18795
18796 COMMON /RR/ MASSR(0:MAXR)
18797
18798 COMMON /RUN/ NUM
18799
18800 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
18801
18802 SAVE
18803
18804 ycut1=-2.6
18805 ycut2=2.6
18806 DY=0.2
18807 LY=NINT((YCUT2-YCUT1)/DY)
18808
18809
18810 do 11 kk=-80,80
18811 pxpion(kk)=0
18812 pxpro(kk)=0
18813 pxkaon(kk)=0
18814 11 continue
18815 DO 701 J=-LY,LY
18816 ypion(j)=0
18817 ykaon(j)=0
18818 ypr(j)=0
18819 701 CONTINUE
18820 nkaon=0
18821 npr=0
18822 npion=0
18823 IS=0
18824 DO 20 NRUN=1,NUM
18825 IS=IS+MASSR(NRUN-1)
18826 DO 20 J=1,MASSR(NRUN)
18827 I=J+IS
18828
18829
18830 e00=sqrt(P(1,I)**2+P(2,i)**2+P(3,i)**2+e(I)**2)
18831 y00=0.5*alog((e00+p(3,i))/(e00-p(3,i)))
18832 if(abs(y00).ge.ycut2)go to 20
18833 iy=nint(y00/DY)
18834 if(abs(iy).ge.80)go to 20
18835 if(e(i).eq.0)go to 20
18836 if(lb(i).ge.25)go to 20
18837 if((lb(i).le.5).and.(lb(i).ge.3))go to 50
18838 if(lb(i).eq.1.or.lb(i).eq.2)go to 200
18839
18840
18841 if(lb(i).ge.6.and.lb(i).le.17)go to 200
18842
18843 if(lb(i).eq.23)go to 400
18844 go to 20
18845
18846 50 npion=npion+1
18847
18848 ypion(iy)=ypion(iy)+1
18849 pxpion(iy)=pxpion(iy)+p(1,i)/e(I)
18850 go TO 20
18851
18852 200 npr=npr+1
18853 pxpro(iy)=pxpro(iy)+p(1,I)/E(I)
18854 ypr(iy)=ypr(iy)+1.
18855 go to 20
18856 400 nkaon=nkaon+1
18857 ykaon(iy)=ykaon(iy)+1.
18858 pxkaon(iy)=pxkaon(iy)+p(1,i)/E(i)
18859 20 CONTINUE
18860
18861
18862
18863
18864
18865
18866
18867 do 3 npt=-10,10
18868 IF(ypr(npt).eq.0) go to 101
18869 pxpro(NPT)=-Pxpro(NPT)/ypr(NPT)
18870 DNUC=Pxpro(NPT)/SQRT(ypr(NPT))
18871
18872
18873 101 IF(ypion(npt).eq.0) go to 102
18874 pxpion(NPT)=-pxpion(NPT)/ypion(NPT)
18875 DNUCp=pxpion(NPT)/SQRT(ypion(NPT))
18876
18877
18878 102 IF(ykaon(npt).eq.0) go to 3
18879 pxkaon(NPT)=-pxkaon(NPT)/ykaon(NPT)
18880 DNUCk=pxkaon(NPT)/SQRT(ykaon(NPT))
18881
18882 3 CONTINUE
18883
18884
18885 DO 1001 M=-LY,LY
18886
18887 DYPR=0
18888 IF(YPR(M).NE.0)DYPR=SQRT(YPR(M))/FLOAT(NRUN)/DY
18889 YPR(M)=YPR(M)/FLOAT(NRUN)/DY
18890
18891
18892 DYPION=0
18893 IF(YPION(M).NE.0)DYPION=SQRT(YPION(M))/FLOAT(NRUN)/DY
18894 YPION(M)=YPION(M)/FLOAT(NRUN)/DY
18895
18896
18897 DYKAON=0
18898 IF(YKAON(M).NE.0)DYKAON=SQRT(YKAON(M))/FLOAT(NRUN)/DY
18899 YKAON(M)=YKAON(M)/FLOAT(NRUN)/DY
18900
18901 1001 CONTINUE
18902 return
18903 end
18904
18905
18906
18907
18908 real function xppbar(srt)
18909
18910
18911
18912
18913
18914
18915
18916
18917
18918 Parameter (pmass=0.9383,xmax=400.)
18919 SAVE
18920
18921
18922
18923
18924
18925
18926
18927
18928 xppbar=1.e-06
18929 plab2=(srt**2/(2.*pmass)-pmass)**2-pmass**2
18930 if(plab2.gt.0)then
18931 plab=sqrt(plab2)
18932 xppbar=67./(plab**0.7)
18933 if(xppbar.gt.xmax)xppbar=xmax
18934 endif
18935 return
18936 END
18937
18938
18939
18940
18941
18942
18943
18944
18945
18946 subroutine pbarfs(srt,npion,iseed)
18947
18948
18949
18950
18951
18952
18953
18954
18955
18956 parameter (pimass=0.140,pi=3.1415926)
18957 Dimension factor(6),pnpi(6)
18958 COMMON/RNDF77/NSEED
18959
18960 SAVE
18961
18962
18963 factor(2)=1.
18964 factor(3)=1.17e-01
18965 factor(4)=3.27e-03
18966 factor(5)=3.58e-05
18967 factor(6)=1.93e-07
18968 ene=(srt/pimass)**3/(6.*pi**2)
18969
18970 do 1001 n=2,6
18971 pnpi(n)=ene**n*factor(n)
18972 1001 continue
18973
18974
18975
18976 pmax=max(pnpi(2),pnpi(3),pnpi(4),pnpi(5),pnpi(6))
18977
18978 ntry=0
18979 10 npion=2+int(5*RANART(NSEED))
18980
18981 if(npion.gt.6) goto 10
18982 thisp=pnpi(npion)/pmax
18983 ntry=ntry+1
18984
18985
18986 if((thisp.lt.RANART(NSEED)).and.(ntry.le.20)) go to 10
18987
18988 return
18989 END
18990
18991
18992
18993
18994
18995
18996
18997
18998
18999
19000
19001
19002
19003
19004
19005
19006
19007
19008
19009
19010
19011
19012
19013
19014
19015
19016
19017
19018
19019
19020
19021
19022
19023
19024 SUBROUTINE XKKANN(SRT, XSK1, XSK2, XSK3, XSK4, XSK5,
19025 & XSK6, XSK7, XSK8, XSK9, XSK10, XSK11, SIGK, rrkk)
19026
19027
19028
19029
19030
19031
19032
19033
19034
19035
19036
19037
19038
19039
19040 PARAMETER (MAXSTR=150001, MAXX=20, MAXZ=24)
19041 PARAMETER (AKA=0.498, PIMASS=0.140, RHOM = 0.770,
19042 & OMEGAM = 0.7819, ETAM = 0.5473, APHI=1.02)
19043 COMMON /AA/ R(3,MAXSTR)
19044
19045 COMMON /BB/ P(3,MAXSTR)
19046
19047 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
19048
19049 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
19050 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
19051 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
19052
19053 SAVE
19054
19055 S = SRT ** 2
19056 SIGK = 1.E-08
19057 XSK1 = 0.0
19058 XSK2 = 0.0
19059 XSK3 = 0.0
19060 XSK4 = 0.0
19061 XSK5 = 0.0
19062 XSK6 = 0.0
19063 XSK7 = 0.0
19064 XSK8 = 0.0
19065 XSK9 = 0.0
19066 XSK10 = 0.0
19067 XSK11 = 0.0
19068
19069 XPION0 = PIPIK(SRT)
19070
19071 XPION0 = 2.0 * XPION0
19072 PI2 = S * (S - 4.0 * AKA ** 2)
19073 if(PI2 .le. 0.0)return
19074
19075 XM1 = PIMASS
19076 XM2 = PIMASS
19077 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19078 IF (PF2 .GT. 0.0) THEN
19079 XSK1 = 9.0 / 4.0 * PF2 / PI2 * XPION0
19080 END IF
19081
19082
19083 XM1 = PIMASS
19084 XM2 = ETAM
19085 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19086 IF (PF2 .GT. 0.0) THEN
19087 XSK4 = 3.0 / 4.0 * PF2 / PI2 * XPION0
19088 END IF
19089
19090 XM1 = ETAM
19091 XM2 = ETAM
19092 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19093 IF (PF2 .GT. 0.0) THEN
19094 XSK10 = 1.0 / 4.0 * PF2 / PI2 * XPION0
19095 END IF
19096
19097 XPION0 = rrkk
19098
19099
19100
19101
19102
19103
19104
19105
19106
19107
19108
19109
19110
19111
19112
19113
19114 XM1 = RHOM
19115 XM2 = RHOM
19116 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19117 IF (PF2 .GT. 0.0) THEN
19118 XSK5 = 81.0 / 4.0 * PF2 / PI2 * XPION0
19119 END IF
19120
19121 XM1 = RHOM
19122 XM2 = OMEGAM
19123 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19124 IF (PF2 .GT. 0.0) THEN
19125 XSK6 = 27.0 / 4.0 * PF2 / PI2 * XPION0
19126 END IF
19127
19128
19129
19130
19131
19132
19133
19134
19135 XM1 = OMEGAM
19136 XM2 = OMEGAM
19137 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19138 IF (PF2 .GT. 0.0) THEN
19139 XSK8 = 9.0 / 4.0 * PF2 / PI2 * XPION0
19140 END IF
19141
19142
19143
19144
19145
19146
19147
19148
19149
19150 fwdp = 1.68*(aphi**2-4.*aka**2)**1.5/6./aphi/aphi
19151
19152
19153 scheck=srt**2-4.0*aka**2
19154 if(scheck.le.0) then
19155 write(99,*) 'scheck47: ', scheck
19156 stop
19157 endif
19158 pkaon=0.5*sqrt(scheck)
19159
19160
19161 XSK11 = 30.*3.14159*0.1973**2*(aphi*fwdp)**2/
19162 & ((srt**2-aphi**2)**2+(aphi*fwdp)**2)/pkaon**2
19163
19164 SIGK = XSK1 + XSK2 + XSK3 + XSK4 + XSK5 +
19165 & XSK6 + XSK7 + XSK8 + XSK9 + XSK10 + XSK11
19166
19167 RETURN
19168 END
19169
19170
19171
19172
19173 SUBROUTINE XphiB(LB1, LB2, EM1, EM2, SRT,
19174 & XSK1, XSK2, XSK3, XSK4, XSK5, SIGP)
19175
19176
19177 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
19178 1 AMP=0.93828,AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
19179 PARAMETER (AKA=0.498, ALA = 1.1157, PIMASS=0.140, APHI=1.02)
19180 parameter (arho=0.77)
19181 SAVE
19182
19183 SIGP = 1.E-08
19184 XSK1 = 0.0
19185 XSK2 = 0.0
19186 XSK3 = 0.0
19187 XSK4 = 0.0
19188 XSK5 = 0.0
19189 XSK6 = 0.0
19190 srrt = srt - (em1+em2)
19191
19192
19193
19194
19195 XSK1 = 8.00
19196
19197
19198 IF (srt .GT. (ap1+amn)) THEN
19199 XSK2 = 0.0235*srrt**(-0.519)
19200 END IF
19201
19202
19203 IF (srt .GT. (ap1+am0)) THEN
19204 if(srrt .lt. 0.7)then
19205 XSK3 = 0.0119*srrt**(-0.534)
19206 else
19207 XSK3 = 0.0130*srrt**(-0.304)
19208 endif
19209 END IF
19210
19211
19212 IF (srt .GT. (arho+amn)) THEN
19213 if(srrt .lt. 0.7)then
19214 XSK4 = 0.0166*srrt**(-0.786)
19215 else
19216 XSK4 = 0.0189*srrt**(-0.277)
19217 endif
19218 END IF
19219
19220
19221 IF (srt .GT. (arho+am0)) THEN
19222 if(srrt .lt. 0.7)then
19223 XSK5 = 0.0119*srrt**(-0.534)
19224 else
19225 XSK5 = 0.0130*srrt**(-0.304)
19226 endif
19227 END IF
19228
19229
19230 IF( (lb1.ge.1.and.lb1.le.2) .or. (lb2.ge.1.and.lb2.le.2) )THEN
19231 IF (srt .GT. (aka+ala)) THEN
19232 XSK6 = 1.715/((srrt+3.508)**2-12.138)
19233 END IF
19234 END IF
19235 SIGP = XSK1 + XSK2 + XSK3 + XSK4 + XSK5 + XSK6
19236 RETURN
19237 END
19238
19239
19240
19241 SUBROUTINE CRPHIB(PX,PY,PZ,SRT,I1,I2,
19242 & XSK1, XSK2, XSK3, XSK4, XSK5, SIGP, IBLOCK)
19243
19244
19245
19246
19247
19248
19249
19250
19251
19252
19253
19254
19255 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
19256 1 AMP=0.93828,AP1=0.13496,AMRHO=0.769,AMOMGA=0.782,
19257 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
19258 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,ARHO=0.77)
19259 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
19260 COMMON /AA/ R(3,MAXSTR)
19261
19262 COMMON /BB/ P(3,MAXSTR)
19263
19264 COMMON /CC/ E(MAXSTR)
19265
19266 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
19267
19268 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
19269
19270 COMMON/RNDF77/NSEED
19271
19272 SAVE
19273
19274 PX0=PX
19275 PY0=PY
19276 PZ0=PZ
19277 IBLOCK=223
19278
19279 X1 = RANART(NSEED) * SIGP
19280 XSK2 = XSK1 + XSK2
19281 XSK3 = XSK2 + XSK3
19282 XSK4 = XSK3 + XSK4
19283 XSK5 = XSK4 + XSK5
19284
19285
19286 IF (X1 .LE. XSK1) THEN
19287 iblock=20
19288 GOTO 100
19289 ELSE IF (X1 .LE. XSK2) THEN
19290 LB(I1) = 3 + int(3 * RANART(NSEED))
19291 LB(I2) = 1 + int(2 * RANART(NSEED))
19292 E(I1) = AP1
19293 E(I2) = AMN
19294 GOTO 100
19295 ELSE IF (X1 .LE. XSK3) THEN
19296 LB(I1) = 3 + int(3 * RANART(NSEED))
19297 LB(I2) = 6 + int(4 * RANART(NSEED))
19298 E(I1) = AP1
19299 E(I2) = AM0
19300 GOTO 100
19301 ELSE IF (X1 .LE. XSK4) THEN
19302 LB(I1) = 25 + int(3 * RANART(NSEED))
19303 LB(I2) = 1 + int(2 * RANART(NSEED))
19304 E(I1) = ARHO
19305 E(I2) = AMN
19306 GOTO 100
19307 ELSE IF (X1 .LE. XSK5) THEN
19308 LB(I1) = 25 + int(3 * RANART(NSEED))
19309 LB(I2) = 6 + int(4 * RANART(NSEED))
19310 E(I1) = ARHO
19311 E(I2) = AM0
19312 GOTO 100
19313 ELSE
19314 LB(I1) = 23
19315 LB(I2) = 14
19316 E(I1) = AKA
19317 E(I2) = ALA
19318 IBLOCK=221
19319 ENDIF
19320 100 CONTINUE
19321 EM1=E(I1)
19322 EM2=E(I2)
19323
19324
19325
19326 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
19327 1 - 4.0 * (EM1*EM2)**2
19328 IF(PR2.LE.0.)PR2=1.E-08
19329 PR=SQRT(PR2)/(2.*SRT)
19330
19331 C1 = 1.0 - 2.0 * RANART(NSEED)
19332 T1 = 2.0 * PI * RANART(NSEED)
19333 S1 = SQRT( 1.0 - C1**2 )
19334 CT1 = COS(T1)
19335 ST1 = SIN(T1)
19336
19337 PZ = PR * C1
19338 PX = PR * S1*CT1
19339 PY = PR * S1*ST1
19340
19341 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
19342 RETURN
19343 END
19344
19345
19346
19347
19348 SUBROUTINE pibphi(srt,lb1,lb2,em1,em2,Xphi,xphin)
19349
19350
19351
19352
19353
19354
19355
19356 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
19357 1 AMP=0.93828,AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
19358 PARAMETER (AKA=0.498, ALA = 1.1157, PIMASS=0.140, APHI=1.02)
19359 parameter (arho=0.77)
19360 SAVE
19361
19362 Xphi = 0.0
19363 xphin = 0.0
19364 xphid = 0.0
19365
19366 if( (lb1.ge.3.and.lb1.le.5) .or.
19367 & (lb2.ge.3.and.lb2.le.5) )then
19368
19369 if( (iabs(lb1).ge.1.and.iabs(lb1).le.2) .or.
19370 & (iabs(lb2).ge.1.and.iabs(lb2).le.2) )then
19371
19372 IF (srt .GT. (aphi+amn)) THEN
19373 srrt = srt - (aphi+amn)
19374 sig = 0.0235*srrt**(-0.519)
19375 xphin=sig*1.*(srt**2-(aphi+amn)**2)*
19376 & (srt**2-(aphi-amn)**2)/(srt**2-(em1+em2)**2)/
19377 & (srt**2-(em1-em2)**2)
19378 END IF
19379
19380 IF (srt .GT. (aphi+am0)) THEN
19381 srrt = srt - (aphi+am0)
19382 sig = 0.0235*srrt**(-0.519)
19383 xphid=sig*4.*(srt**2-(aphi+am0)**2)*
19384 & (srt**2-(aphi-am0)**2)/(srt**2-(em1+em2)**2)/
19385 & (srt**2-(em1-em2)**2)
19386 END IF
19387 else
19388
19389 IF (srt .GT. (aphi+amn)) THEN
19390 srrt = srt - (aphi+amn)
19391 if(srrt .lt. 0.7)then
19392 sig = 0.0119*srrt**(-0.534)
19393 else
19394 sig = 0.0130*srrt**(-0.304)
19395 endif
19396 xphin=sig*(1./4.)*(srt**2-(aphi+amn)**2)*
19397 & (srt**2-(aphi-amn)**2)/(srt**2-(em1+em2)**2)/
19398 & (srt**2-(em1-em2)**2)
19399 END IF
19400
19401 IF (srt .GT. (aphi+am0)) THEN
19402 srrt = srt - (aphi+am0)
19403 if(srrt .lt. 0.7)then
19404 sig = 0.0119*srrt**(-0.534)
19405 else
19406 sig = 0.0130*srrt**(-0.304)
19407 endif
19408 xphid=sig*1.*(srt**2-(aphi+am0)**2)*
19409 & (srt**2-(aphi-am0)**2)/(srt**2-(em1+em2)**2)/
19410 & (srt**2-(em1-em2)**2)
19411 END IF
19412 endif
19413
19414
19415
19416
19417 else
19418
19419 if( (iabs(lb1).ge.1.and.iabs(lb1).le.2) .or.
19420 & (iabs(lb2).ge.1.and.iabs(lb2).le.2) )then
19421
19422
19423 IF (srt .GT. (aphi+amn)) THEN
19424 srrt = srt - (aphi+amn)
19425 if(srrt .lt. 0.7)then
19426 sig = 0.0166*srrt**(-0.786)
19427 else
19428 sig = 0.0189*srrt**(-0.277)
19429 endif
19430 xphin=sig*(1./3.)*(srt**2-(aphi+amn)**2)*
19431 & (srt**2-(aphi-amn)**2)/(srt**2-(em1+em2)**2)/
19432 & (srt**2-(em1-em2)**2)
19433 END IF
19434
19435 IF (srt .GT. (aphi+am0)) THEN
19436 srrt = srt - (aphi+am0)
19437 if(srrt .lt. 0.7)then
19438 sig = 0.0166*srrt**(-0.786)
19439 else
19440 sig = 0.0189*srrt**(-0.277)
19441 endif
19442 xphid=sig*(4./3.)*(srt**2-(aphi+am0)**2)*
19443 & (srt**2-(aphi-am0)**2)/(srt**2-(em1+em2)**2)/
19444 & (srt**2-(em1-em2)**2)
19445 END IF
19446 else
19447
19448 IF (srt .GT. (aphi+amn)) THEN
19449 srrt = srt - (aphi+amn)
19450 if(srrt .lt. 0.7)then
19451 sig = 0.0119*srrt**(-0.534)
19452 else
19453 sig = 0.0130*srrt**(-0.304)
19454 endif
19455 xphin=sig*(1./12.)*(srt**2-(aphi+amn)**2)*
19456 & (srt**2-(aphi-amn)**2)/(srt**2-(em1+em2)**2)/
19457 & (srt**2-(em1-em2)**2)
19458 END IF
19459
19460 IF (srt .GT. (aphi+am0)) THEN
19461 srrt = srt - (aphi+am0)
19462 if(srrt .lt. 0.7)then
19463 sig = 0.0119*srrt**(-0.534)
19464 else
19465 sig = 0.0130*srrt**(-0.304)
19466 endif
19467 xphid=sig*(1./3.)*(srt**2-(aphi+am0)**2)*
19468 & (srt**2-(aphi-am0)**2)/(srt**2-(em1+em2)**2)/
19469 & (srt**2-(em1-em2)**2)
19470 END IF
19471 endif
19472 END IF
19473
19474 xphin = xphin/10.
19475
19476 xphid = xphid/10.
19477 Xphi = xphin + xphid
19478
19479 RETURN
19480 END
19481
19482
19483
19484 SUBROUTINE PHIMES(I1, I2, SRT, XSK1, XSK2, XSK3, XSK4, XSK5,
19485 1 XSK6, XSK7, SIGPHI)
19486
19487
19488
19489
19490
19491
19492
19493
19494 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
19495 1 AMP=0.93828,AP1=0.13496,
19496 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
19497 PARAMETER (AKA=0.498, AKS=0.895, AOMEGA=0.7819,
19498 3 ARHO=0.77, APHI=1.02)
19499 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
19500 PARAMETER (MAXX=20, MAXZ=24)
19501 COMMON /AA/ R(3,MAXSTR)
19502
19503 COMMON /BB/ P(3,MAXSTR)
19504
19505 COMMON /CC/ E(MAXSTR)
19506
19507 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
19508 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
19509 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
19510
19511 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
19512
19513 SAVE
19514
19515 S = SRT ** 2
19516 SIGPHI = 1.E-08
19517 XSK1 = 0.0
19518 XSK2 = 0.0
19519 XSK3 = 0.0
19520 XSK4 = 0.0
19521 XSK5 = 0.0
19522 XSK6 = 0.0
19523 XSK7 = 0.0
19524 em1 = E(i1)
19525 em2 = E(i2)
19526 LB1 = LB(i1)
19527 LB2 = LB(i2)
19528 akap = aka
19529
19530
19531
19532 XSK1 = 5.0
19533
19534
19535 scheck=(S-(em1+em2)**2)*(S-(em1-em2)**2)
19536 if(scheck.le.0) then
19537 write(99,*) 'scheck48: ', scheck
19538 stop
19539 endif
19540 pii=sqrt(scheck)
19541
19542
19543
19544 if( lb1.eq.23.or.lb2.eq.23 .or. lb1.eq.21.or.lb2.eq.21 )then
19545 if(srt .gt. (ap1+akap))then
19546
19547 pff = sqrt((S-(ap1+akap)**2)*(S-(ap1-akap)**2))
19548 XSK2 = 195.639*pff/pii/32./pi/S
19549 endif
19550 if(srt .gt. (arho+akap))then
19551
19552 pff = sqrt((S-(arho+akap)**2)*(S-(arho-akap)**2))
19553 XSK3 = 526.702*pff/pii/32./pi/S
19554 endif
19555 if(srt .gt. (aomega+akap))then
19556
19557 pff = sqrt((S-(aomega+akap)**2)*(S-(aomega-akap)**2))
19558 XSK4 = 355.429*pff/pii/32./pi/S
19559 endif
19560 if(srt .gt. (ap1+aks))then
19561
19562 pff = sqrt((S-(ap1+aks)**2)*(S-(ap1-aks)**2))
19563 XSK5 = 2047.042*pff/pii/32./pi/S
19564 endif
19565 if(srt .gt. (arho+aks))then
19566
19567 pff = sqrt((S-(arho+aks)**2)*(S-(arho-aks)**2))
19568 XSK6 = 1371.257*pff/pii/32./pi/S
19569 endif
19570 if(srt .gt. (aomega+aks))then
19571
19572 pff = sqrt((S-(aomega+aks)**2)*(S-(aomega-aks)**2))
19573 XSK7 = 482.292*pff/pii/32./pi/S
19574 endif
19575
19576 elseif( iabs(lb1).eq.30.or.iabs(lb2).eq.30 )then
19577
19578
19579 if(srt .gt. (ap1+akap))then
19580
19581 pff = sqrt((S-(ap1+akap)**2)*(S-(ap1-akap)**2))
19582 XSK2 = 372.378*pff/pii/32./pi/S
19583 endif
19584 if(srt .gt. (arho+akap))then
19585
19586 pff = sqrt((S-(arho+akap)**2)*(S-(arho-akap)**2))
19587 XSK3 = 1313.960*pff/pii/32./pi/S
19588 endif
19589 if(srt .gt. (aomega+akap))then
19590
19591 pff = sqrt((S-(aomega+akap)**2)*(S-(aomega-akap)**2))
19592 XSK4 = 440.558*pff/pii/32./pi/S
19593 endif
19594 if(srt .gt. (ap1+aks))then
19595
19596 pff = sqrt((S-(ap1+aks)**2)*(S-(ap1-aks)**2))
19597 XSK5 = 1496.692*pff/pii/32./pi/S
19598 endif
19599 if(srt .gt. (arho+aks))then
19600
19601 pff = sqrt((S-(arho+aks)**2)*(S-(arho-aks)**2))
19602 XSK6 = 6999.840*pff/pii/32./pi/S
19603 endif
19604 if(srt .gt. (aomega+aks))then
19605
19606 pff = sqrt((S-(aomega+aks)**2)*(S-(aomega-aks)**2))
19607 XSK7 = 1698.903*pff/pii/32./pi/S
19608 endif
19609 else
19610
19611
19612
19613 srr1 = em1+em2
19614 if(srt .gt. (akap+akap))then
19615 srrt = srt - srr1
19616
19617 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
19618 XSK2 = 1.69/(srrt**0.141 - 0.407)
19619 else
19620 XSK2 = 3.74 + 0.008*srrt**1.9
19621 endif
19622 endif
19623 if(srt .gt. (akap+aks))then
19624 srr2 = akap+aks
19625 srr = amax1(srr1,srr2)
19626 srrt = srt - srr
19627
19628 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
19629 XSK3 = 1.69/(srrt**0.141 - 0.407)
19630 else
19631 XSK3 = 3.74 + 0.008*srrt**1.9
19632 endif
19633 endif
19634 if(srt .gt. (aks+aks))then
19635 srr2 = aks+aks
19636 srr = amax1(srr1,srr2)
19637 srrt = srt - srr
19638
19639 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
19640 XSK4 = 1.69/(srrt**0.141 - 0.407)
19641 else
19642 XSK4 = 3.74 + 0.008*srrt**1.9
19643 endif
19644 endif
19645
19646
19647
19648 endif
19649
19650 SIGPHI = XSK1 + XSK2 + XSK3 + XSK4 + XSK5 + XSK6 + XSK7
19651
19652 RETURN
19653 END
19654
19655
19656
19657
19658
19659 SUBROUTINE CRPHIM(PX,PY,PZ,SRT,I1,I2,
19660 & XSK1, XSK2, XSK3, XSK4, XSK5, XSK6, SIGPHI, IKKG, IKKL, IBLOCK)
19661
19662
19663
19664
19665
19666
19667
19668
19669
19670
19671
19672
19673 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
19674 1 AMP=0.93828,AP1=0.13496,ARHO=0.77,AOMEGA=0.7819,
19675 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
19676 PARAMETER (AKA=0.498,AKS=0.895)
19677 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
19678 COMMON /AA/ R(3,MAXSTR)
19679
19680 COMMON /BB/ P(3,MAXSTR)
19681
19682 COMMON /CC/ E(MAXSTR)
19683
19684 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
19685
19686 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
19687
19688 COMMON/RNDF77/NSEED
19689
19690 SAVE
19691
19692 PX0=PX
19693 PY0=PY
19694 PZ0=PZ
19695 LB1 = LB(i1)
19696 LB2 = LB(i2)
19697
19698 X1 = RANART(NSEED) * SIGPHI
19699 XSK2 = XSK1 + XSK2
19700 XSK3 = XSK2 + XSK3
19701 XSK4 = XSK3 + XSK4
19702 XSK5 = XSK4 + XSK5
19703 XSK6 = XSK5 + XSK6
19704 IF (X1 .LE. XSK1) THEN
19705
19706 IBLOCK=20
19707 GOTO 100
19708 ELSE
19709
19710
19711 if( lb1.eq.23.or.lb1.eq.21.or.iabs(lb1).eq.30 .OR.
19712 & lb2.eq.23.or.lb2.eq.21.or.iabs(lb2).eq.30 )then
19713
19714 if(lb1.eq.23.or.lb2.eq.23)then
19715 IKKL=1
19716 IBLOCK=224
19717 iad1 = 23
19718 iad2 = 30
19719 elseif(lb1.eq.30.or.lb2.eq.30)then
19720 IKKL=0
19721 IBLOCK=226
19722 iad1 = 23
19723 iad2 = 30
19724 elseif(lb1.eq.21.or.lb2.eq.21)then
19725 IKKL=1
19726 IBLOCK=124
19727 iad1 = 21
19728 iad2 = -30
19729
19730 else
19731 IKKL=0
19732 IBLOCK=126
19733 iad1 = 21
19734 iad2 = -30
19735 endif
19736 IF (X1 .LE. XSK2) THEN
19737 LB(I1) = 3 + int(3 * RANART(NSEED))
19738 LB(I2) = iad1
19739 E(I1) = AP1
19740 E(I2) = AKA
19741 IKKG = 1
19742 GOTO 100
19743 ELSE IF (X1 .LE. XSK3) THEN
19744 LB(I1) = 25 + int(3 * RANART(NSEED))
19745 LB(I2) = iad1
19746 E(I1) = ARHO
19747 E(I2) = AKA
19748 IKKG = 1
19749 GOTO 100
19750 ELSE IF (X1 .LE. XSK4) THEN
19751 LB(I1) = 28
19752 LB(I2) = iad1
19753 E(I1) = AOMEGA
19754 E(I2) = AKA
19755 IKKG = 1
19756 GOTO 100
19757 ELSE IF (X1 .LE. XSK5) THEN
19758 LB(I1) = 3 + int(3 * RANART(NSEED))
19759 LB(I2) = iad2
19760 E(I1) = AP1
19761 E(I2) = AKS
19762 IKKG = 0
19763 IBLOCK=IBLOCK+1
19764 GOTO 100
19765 ELSE IF (X1 .LE. XSK6) THEN
19766 LB(I1) = 25 + int(3 * RANART(NSEED))
19767 LB(I2) = iad2
19768 E(I1) = ARHO
19769 E(I2) = AKS
19770 IKKG = 0
19771 IBLOCK=IBLOCK+1
19772 GOTO 100
19773 ELSE
19774 LB(I1) = 28
19775 LB(I2) = iad2
19776 E(I1) = AOMEGA
19777 E(I2) = AKS
19778 IKKG = 0
19779 IBLOCK=IBLOCK+1
19780 GOTO 100
19781 ENDIF
19782 else
19783
19784 IBLOCK=223
19785
19786 IF (X1 .LE. XSK2) THEN
19787 LB(I1) = 23
19788 LB(I2) = 21
19789 E(I1) = AKA
19790 E(I2) = AKA
19791 IKKG = 2
19792 IKKL = 0
19793 GOTO 100
19794 ELSE IF (X1 .LE. XSK3) THEN
19795 LB(I1) = 23
19796
19797 LB(I2) = -30
19798
19799 if(RANART(NSEED).le.0.5) then
19800 LB(I1) = 21
19801 LB(I2) = 30
19802 endif
19803
19804 E(I1) = AKA
19805 E(I2) = AKS
19806 IKKG = 1
19807 IKKL = 0
19808 GOTO 100
19809 ELSE IF (X1 .LE. XSK4) THEN
19810 LB(I1) = 30
19811
19812 LB(I2) = -30
19813 E(I1) = AKS
19814 E(I2) = AKS
19815 IKKG = 0
19816 IKKL = 0
19817 GOTO 100
19818 ENDIF
19819 endif
19820 ENDIF
19821
19822 100 CONTINUE
19823 EM1=E(I1)
19824 EM2=E(I2)
19825
19826
19827
19828
19829 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
19830 1 - 4.0 * (EM1*EM2)**2
19831 IF(PR2.LE.0.)PR2=1.E-08
19832 PR=SQRT(PR2)/(2.*SRT)
19833
19834 C1 = 1.0 - 2.0 * RANART(NSEED)
19835 T1 = 2.0 * PI * RANART(NSEED)
19836 S1 = SQRT( 1.0 - C1**2 )
19837 CT1 = COS(T1)
19838 ST1 = SIN(T1)
19839
19840 PZ = PR * C1
19841 PX = PR * S1*CT1
19842 PY = PR * S1*ST1
19843
19844 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
19845 RETURN
19846 END
19847
19848
19849
19850
19851
19852
19853
19854 SUBROUTINE XKHYPE(I1, I2, SRT, XKY1, XKY2, XKY3, XKY4, XKY5,
19855 & XKY6, XKY7, XKY8, XKY9, XKY10, XKY11, XKY12, XKY13,
19856 & XKY14, XKY15, XKY16, XKY17, SIGK)
19857
19858
19859
19860
19861
19862 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
19863 1 AMP=0.93828,AP1=0.13496,AMRHO=0.769,AMOMGA=0.782,APHI=1.02,
19864 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
19865 parameter (pimass=0.140, AMETA = 0.5473, aka=0.498,
19866 & aml=1.116,ams=1.193, AM1440 = 1.44, AM1535 = 1.535)
19867 COMMON /EE/ID(MAXSTR), LB(MAXSTR)
19868
19869 SAVE
19870
19871 S = SRT ** 2
19872 SIGK=1.E-08
19873 XKY1 = 0.0
19874 XKY2 = 0.0
19875 XKY3 = 0.0
19876 XKY4 = 0.0
19877 XKY5 = 0.0
19878 XKY6 = 0.0
19879 XKY7 = 0.0
19880 XKY8 = 0.0
19881 XKY9 = 0.0
19882 XKY10 = 0.0
19883 XKY11 = 0.0
19884 XKY12 = 0.0
19885 XKY13 = 0.0
19886 XKY14 = 0.0
19887 XKY15 = 0.0
19888 XKY16 = 0.0
19889 XKY17 = 0.0
19890
19891 LB1 = LB(I1)
19892 LB2 = LB(I2)
19893 IF (iabs(LB1) .EQ. 14 .OR. iabs(LB2) .EQ. 14) THEN
19894 XKAON0 = PNLKA(SRT)
19895 XKAON0 = 2.0 * XKAON0
19896 PI2 = (S - (AML + AKA) ** 2) * (S - (AML - AKA) ** 2)
19897 ELSE
19898 XKAON0 = PNSKA(SRT)
19899 XKAON0 = 2.0 * XKAON0
19900 PI2 = (S - (AMS + AKA) ** 2) * (S - (AMS - AKA) ** 2)
19901 END IF
19902 if(PI2 .le. 0.0)return
19903
19904 XM1 = PIMASS
19905 XM2 = AMP
19906 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19907 IF (PF2 .GT. 0.0) THEN
19908 XKY1 = 3.0 * PF2 / PI2 * XKAON0
19909 END IF
19910
19911 XM1 = PIMASS
19912 XM2 = AM0
19913 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19914 IF (PF2 .GT. 0.0) THEN
19915 XKY2 = 12.0 * PF2 / PI2 * XKAON0
19916 END IF
19917
19918 XM1 = PIMASS
19919 XM2 = AM1440
19920 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19921 IF (PF2 .GT. 0.0) THEN
19922 XKY3 = 3.0 * PF2 / PI2 * XKAON0
19923 END IF
19924
19925 XM1 = PIMASS
19926 XM2 = AM1535
19927 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19928 IF (PF2 .GT. 0.0) THEN
19929 XKY4 = 3.0 * PF2 / PI2 * XKAON0
19930 END IF
19931
19932 XM1 = AMRHO
19933 XM2 = AMP
19934 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19935 IF (PF2 .GT. 0.0) THEN
19936 XKY5 = 9.0 * PF2 / PI2 * XKAON0
19937 END IF
19938
19939 XM1 = AMRHO
19940 XM2 = AM0
19941 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19942 IF (PF2 .GT. 0.0) THEN
19943 XKY6 = 36.0 * PF2 / PI2 * XKAON0
19944 END IF
19945
19946 XM1 = AMRHO
19947 XM2 = AM1440
19948 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19949 IF (PF2 .GT. 0.0) THEN
19950 XKY7 = 9.0 * PF2 / PI2 * XKAON0
19951 END IF
19952
19953 XM1 = AMRHO
19954 XM2 = AM1535
19955 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19956 IF (PF2 .GT. 0.0) THEN
19957 XKY8 = 9.0 * PF2 / PI2 * XKAON0
19958 END IF
19959
19960 XM1 = AMOMGA
19961 XM2 = AMP
19962 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19963 IF (PF2 .GT. 0.0) THEN
19964 XKY9 = 3.0 * PF2 / PI2 * XKAON0
19965 END IF
19966
19967 XM1 = AMOMGA
19968 XM2 = AM0
19969 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19970 IF (PF2 .GT. 0.0) THEN
19971 XKY10 = 12.0 * PF2 / PI2 * XKAON0
19972 END IF
19973
19974 XM1 = AMOMGA
19975 XM2 = AM1440
19976 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19977 IF (PF2 .GT. 0.0) THEN
19978 XKY11 = 3.0 * PF2 / PI2 * XKAON0
19979 END IF
19980
19981 XM1 = AMOMGA
19982 XM2 = AM1535
19983 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19984 IF (PF2 .GT. 0.0) THEN
19985 XKY12 = 3.0 * PF2 / PI2 * XKAON0
19986 END IF
19987
19988 XM1 = AMETA
19989 XM2 = AMP
19990 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19991 IF (PF2 .GT. 0.0) THEN
19992 XKY13 = 1.0 * PF2 / PI2 * XKAON0
19993 END IF
19994
19995 XM1 = AMETA
19996 XM2 = AM0
19997 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19998 IF (PF2 .GT. 0.0) THEN
19999 XKY14 = 4.0 * PF2 / PI2 * XKAON0
20000 END IF
20001
20002 XM1 = AMETA
20003 XM2 = AM1440
20004 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
20005 IF (PF2 .GT. 0.0) THEN
20006 XKY15 = 1.0 * PF2 / PI2 * XKAON0
20007 END IF
20008
20009 XM1 = AMETA
20010 XM2 = AM1535
20011 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
20012 IF (PF2 .GT. 0.0) THEN
20013 XKY16 = 1.0 * PF2 / PI2 * XKAON0
20014 END IF
20015
20016
20017 if(lb1.eq.14 .or. lb2.eq.14)then
20018 if(srt .gt. (aphi+amn))then
20019 srrt = srt - (aphi+amn)
20020 sig = 1.715/((srrt+3.508)**2-12.138)
20021 XM1 = AMN
20022 XM2 = APHI
20023 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
20024
20025 XKY17 = 3.0 * PF2 / PI2 * SIG/10.
20026 endif
20027 endif
20028
20029
20030
20031 IF ((iabs(LB1) .GE. 15 .AND. iabs(LB1) .LE. 17) .OR.
20032 & (iabs(LB2) .GE. 15 .AND. iabs(LB2) .LE. 17)) THEN
20033 DDF = 3.0
20034 XKY1 = XKY1 / DDF
20035 XKY2 = XKY2 / DDF
20036 XKY3 = XKY3 / DDF
20037 XKY4 = XKY4 / DDF
20038 XKY5 = XKY5 / DDF
20039 XKY6 = XKY6 / DDF
20040 XKY7 = XKY7 / DDF
20041 XKY8 = XKY8 / DDF
20042 XKY9 = XKY9 / DDF
20043 XKY10 = XKY10/ DDF
20044 XKY11 = XKY11 / DDF
20045 XKY12 = XKY12 / DDF
20046 XKY13 = XKY13 / DDF
20047 XKY14 = XKY14 / DDF
20048 XKY15 = XKY15 / DDF
20049 XKY16 = XKY16 / DDF
20050 END IF
20051
20052 SIGK = XKY1 + XKY2 + XKY3 + XKY4 +
20053 & XKY5 + XKY6 + XKY7 + XKY8 +
20054 & XKY9 + XKY10 + XKY11 + XKY12 +
20055 & XKY13 + XKY14 + XKY15 + XKY16 + XKY17
20056
20057 RETURN
20058 END
20059
20060
20061 BLOCK DATA PPBDAT
20062
20063 parameter (AMP=0.93828,AMN=0.939457,
20064 1 AM0=1.232,AM1440 = 1.44, AM1535 = 1.535)
20065
20066
20067 COMMON/ppbmas/niso(15),nstate,ppbm(15,2),thresh(15),weight(15)
20068
20069 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20070
20071 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20072
20073 SAVE
20074
20075 DATA thresh/1.87656,1.877737,1.878914,2.17028,
20076 1 2.171457,2.37828,2.379457,2.464,2.47328,2.474457,
20077 2 2.672,2.767,2.88,2.975,3.07/
20078
20079
20080 DATA (ppbm(i,1),i=1,15)/amp,amp,amn,amp,amn,amp,amn,
20081 1 am0,amp,amn,am0,am0,am1440,am1440,am1535/
20082 DATA (ppbm(i,2),i=1,15)/amp,amn,amn,am0,am0,am1440,am1440,
20083 1 am0,am1535,am1535,am1440,am1535,am1440,am1535,am1535/
20084
20085 DATA factr2/0,1,1.17e-01,3.27e-03,3.58e-05,1.93e-07/
20086
20087 DATA niso/1,2,1,16,16,4,4,64,4,4,32,32,4,8,4/
20088
20089 END
20090
20091
20092
20093
20094 subroutine getnst(srt)
20095
20096
20097 parameter (pimass=0.140,pi=3.1415926)
20098 COMMON/ppbmas/niso(15),nstate,ppbm(15,2),thresh(15),weight(15)
20099
20100 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20101
20102 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20103
20104 SAVE
20105
20106 s=srt**2
20107 nstate=0
20108 wtot=0.
20109 if(srt.le.thresh(1)) return
20110 do 1001 i=1,15
20111 weight(i)=0.
20112 if(srt.gt.thresh(i)) nstate=i
20113 1001 continue
20114 do 1002 i=1,nstate
20115 pf2=(s-(ppbm(i,1)+ppbm(i,2))**2)
20116 1 *(s-(ppbm(i,1)-ppbm(i,2))**2)/4/s
20117 weight(i)=pf2*niso(i)
20118 wtot=wtot+weight(i)
20119 1002 continue
20120 ene=(srt/pimass)**3/(6.*pi**2)
20121 fsum=factr2(2)+factr2(3)*ene+factr2(4)*ene**2
20122 1 +factr2(5)*ene**3+factr2(6)*ene**4
20123
20124 return
20125 END
20126
20127
20128
20129
20130 real function ppbbar(srt)
20131
20132 parameter (pimass=0.140,arho=0.77,aomega=0.782)
20133 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20134
20135 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20136
20137 SAVE
20138
20139 sppb2p=xppbar(srt)*factr2(2)/fsum
20140 pi2=(s-4*pimass**2)/4
20141 ppbbar=4./9.*sppb2p/pi2*wtot
20142
20143 return
20144 END
20145
20146
20147
20148
20149 real function prbbar(srt)
20150
20151 parameter (pimass=0.140,arho=0.77,aomega=0.782)
20152 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20153
20154 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20155
20156 SAVE
20157
20158 sppb3p=xppbar(srt)*factr2(3)*ene/fsum
20159 pi2=(s-(pimass+arho)**2)*(s-(pimass-arho)**2)/4/s
20160 prbbar=4./27.*sppb3p/pi2*wtot
20161
20162 return
20163 END
20164
20165
20166
20167
20168 real function rrbbar(srt)
20169
20170 parameter (pimass=0.140,arho=0.77,aomega=0.782)
20171 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20172
20173 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20174
20175 SAVE
20176
20177 sppb4p=xppbar(srt)*factr2(4)*ene**2/fsum
20178 pi2=(s-4*arho**2)/4
20179 rrbbar=4./81.*(sppb4p/2)/pi2*wtot
20180
20181 return
20182 END
20183
20184
20185
20186
20187 real function pobbar(srt)
20188
20189 parameter (pimass=0.140,arho=0.77,aomega=0.782)
20190 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20191
20192 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20193
20194 SAVE
20195
20196 sppb4p=xppbar(srt)*factr2(4)*ene**2/fsum
20197 pi2=(s-(pimass+aomega)**2)*(s-(pimass-aomega)**2)/4/s
20198 pobbar=4./9.*(sppb4p/2)/pi2*wtot
20199
20200 return
20201 END
20202
20203
20204
20205
20206 real function robbar(srt)
20207
20208 parameter (pimass=0.140,arho=0.77,aomega=0.782)
20209 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20210
20211 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20212
20213 SAVE
20214
20215 sppb5p=xppbar(srt)*factr2(5)*ene**3/fsum
20216 pi2=(s-(arho+aomega)**2)*(s-(arho-aomega)**2)/4/s
20217 robbar=4./27.*sppb5p/pi2*wtot
20218
20219 return
20220 END
20221
20222
20223
20224
20225 real function oobbar(srt)
20226
20227 parameter (pimass=0.140,arho=0.77,aomega=0.782)
20228 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20229
20230 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20231
20232 SAVE
20233
20234 sppb6p=xppbar(srt)*factr2(6)*ene**4/fsum
20235 pi2=(s-4*aomega**2)/4
20236 oobbar=4./9.*sppb6p/pi2*wtot
20237
20238 return
20239 END
20240
20241
20242
20243 SUBROUTINE bbarfs(lbb1,lbb2,ei1,ei2,iblock,iseed)
20244
20245 COMMON/ppbmas/niso(15),nstate,ppbm(15,2),thresh(15),weight(15)
20246
20247 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20248
20249 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20250
20251 COMMON/RNDF77/NSEED
20252
20253 SAVE
20254
20255
20256 rd=RANART(NSEED)
20257 wsum=0.
20258 do 1001 i=1,nstate
20259 wsum=wsum+weight(i)
20260 if(rd.le.(wsum/wtot)) then
20261 ifs=i
20262 ei1=ppbm(i,1)
20263 ei2=ppbm(i,2)
20264 goto 10
20265 endif
20266 1001 continue
20267 10 continue
20268
20269
20270 if(ifs.eq.1) then
20271 iblock=1801
20272 lbb1=-1
20273 lbb2=1
20274 elseif(ifs.eq.2) then
20275
20276 if(RANART(NSEED).le.0.5) then
20277 iblock=18021
20278 lbb1=-1
20279 lbb2=2
20280
20281 else
20282 iblock=18022
20283 lbb1=1
20284 lbb2=-2
20285 endif
20286
20287 elseif(ifs.eq.3) then
20288 iblock=1803
20289 lbb1=-2
20290 lbb2=2
20291
20292 elseif(ifs.eq.4.or.ifs.eq.5) then
20293 rd=RANART(NSEED)
20294 if(rd.le.0.5) then
20295
20296 if(ifs.eq.4) then
20297 iblock=18041
20298 lbb1=-1
20299 else
20300 iblock=18051
20301 lbb1=-2
20302 endif
20303 rd2=RANART(NSEED)
20304 if(rd2.le.0.25) then
20305 lbb2=6
20306 elseif(rd2.le.0.5) then
20307 lbb2=7
20308 elseif(rd2.le.0.75) then
20309 lbb2=8
20310 else
20311 lbb2=9
20312 endif
20313 else
20314
20315 if(ifs.eq.4) then
20316 iblock=18042
20317 lbb1=1
20318 else
20319 iblock=18052
20320 lbb1=2
20321 endif
20322 rd2=RANART(NSEED)
20323 if(rd2.le.0.25) then
20324 lbb2=-6
20325 elseif(rd2.le.0.5) then
20326 lbb2=-7
20327 elseif(rd2.le.0.75) then
20328 lbb2=-8
20329 else
20330 lbb2=-9
20331 endif
20332 endif
20333
20334 elseif(ifs.eq.6.or.ifs.eq.7) then
20335 rd=RANART(NSEED)
20336 if(rd.le.0.5) then
20337
20338 if(ifs.eq.6) then
20339 iblock=18061
20340 lbb1=-1
20341 else
20342 iblock=18071
20343 lbb1=-2
20344 endif
20345 rd2=RANART(NSEED)
20346 if(rd2.le.0.5) then
20347 lbb2=10
20348 else
20349 lbb2=11
20350 endif
20351 else
20352
20353 if(ifs.eq.6) then
20354 iblock=18062
20355 lbb1=1
20356 else
20357 iblock=18072
20358 lbb1=2
20359 endif
20360 rd2=RANART(NSEED)
20361 if(rd2.le.0.5) then
20362 lbb2=-10
20363 else
20364 lbb2=-11
20365 endif
20366 endif
20367
20368 elseif(ifs.eq.8) then
20369 iblock=1808
20370 rd1=RANART(NSEED)
20371 if(rd1.le.0.25) then
20372 lbb1=6
20373 elseif(rd1.le.0.5) then
20374 lbb1=7
20375 elseif(rd1.le.0.75) then
20376 lbb1=8
20377 else
20378 lbb1=9
20379 endif
20380 rd2=RANART(NSEED)
20381 if(rd2.le.0.25) then
20382 lbb2=-6
20383 elseif(rd2.le.0.5) then
20384 lbb2=-7
20385 elseif(rd2.le.0.75) then
20386 lbb2=-8
20387 else
20388 lbb2=-9
20389 endif
20390
20391 elseif(ifs.eq.9.or.ifs.eq.10) then
20392 rd=RANART(NSEED)
20393 if(rd.le.0.5) then
20394
20395 if(ifs.eq.9) then
20396 iblock=18091
20397 lbb1=-1
20398 else
20399 iblock=18101
20400 lbb1=-2
20401 endif
20402 rd2=RANART(NSEED)
20403 if(rd2.le.0.5) then
20404 lbb2=12
20405 else
20406 lbb2=13
20407 endif
20408 else
20409
20410 if(ifs.eq.9) then
20411 iblock=18092
20412 lbb1=1
20413 else
20414 iblock=18102
20415 lbb1=2
20416 endif
20417 rd2=RANART(NSEED)
20418 if(rd2.le.0.5) then
20419 lbb2=-12
20420 else
20421 lbb2=-13
20422 endif
20423 endif
20424
20425 elseif(ifs.eq.11.or.ifs.eq.12) then
20426 rd=RANART(NSEED)
20427 if(rd.le.0.5) then
20428
20429 rd1=RANART(NSEED)
20430 if(rd1.le.0.25) then
20431 lbb1=-6
20432 elseif(rd1.le.0.5) then
20433 lbb1=-7
20434 elseif(rd1.le.0.75) then
20435 lbb1=-8
20436 else
20437 lbb1=-9
20438 endif
20439 if(ifs.eq.11) then
20440 iblock=18111
20441 rd2=RANART(NSEED)
20442 if(rd2.le.0.5) then
20443 lbb2=10
20444 else
20445 lbb2=11
20446 endif
20447 else
20448 iblock=18121
20449 rd2=RANART(NSEED)
20450 if(rd2.le.0.5) then
20451 lbb2=12
20452 else
20453 lbb2=13
20454 endif
20455 endif
20456 else
20457
20458 rd1=RANART(NSEED)
20459 if(rd1.le.0.25) then
20460 lbb1=6
20461 elseif(rd1.le.0.5) then
20462 lbb1=7
20463 elseif(rd1.le.0.75) then
20464 lbb1=8
20465 else
20466 lbb1=9
20467 endif
20468 if(ifs.eq.11) then
20469 iblock=18112
20470 rd2=RANART(NSEED)
20471 if(rd2.le.0.5) then
20472 lbb2=-10
20473 else
20474 lbb2=-11
20475 endif
20476 else
20477 iblock=18122
20478 rd2=RANART(NSEED)
20479 if(rd2.le.0.5) then
20480 lbb2=-12
20481 else
20482 lbb2=-13
20483 endif
20484 endif
20485 endif
20486
20487 elseif(ifs.eq.13) then
20488 iblock=1813
20489 rd1=RANART(NSEED)
20490 if(rd1.le.0.5) then
20491 lbb1=10
20492 else
20493 lbb1=11
20494 endif
20495 rd2=RANART(NSEED)
20496 if(rd2.le.0.5) then
20497 lbb2=-10
20498 else
20499 lbb2=-11
20500 endif
20501
20502 elseif(ifs.eq.14) then
20503 rd=RANART(NSEED)
20504 if(rd.le.0.5) then
20505
20506 iblock=18141
20507 rd1=RANART(NSEED)
20508 if(rd1.le.0.5) then
20509 lbb1=-10
20510 else
20511 lbb1=-11
20512 endif
20513 rd2=RANART(NSEED)
20514 if(rd2.le.0.5) then
20515 lbb2=12
20516 else
20517 lbb2=13
20518 endif
20519 else
20520
20521 iblock=18142
20522 rd1=RANART(NSEED)
20523 if(rd1.le.0.5) then
20524 lbb1=10
20525 else
20526 lbb1=11
20527 endif
20528 rd2=RANART(NSEED)
20529 if(rd2.le.0.5) then
20530 lbb2=-12
20531 else
20532 lbb2=-13
20533 endif
20534 endif
20535
20536 elseif(ifs.eq.15) then
20537 iblock=1815
20538 rd1=RANART(NSEED)
20539 if(rd1.le.0.5) then
20540 lbb1=12
20541 else
20542 lbb1=13
20543 endif
20544 rd2=RANART(NSEED)
20545 if(rd2.le.0.5) then
20546 lbb2=-12
20547 else
20548 lbb2=-13
20549 endif
20550 else
20551 endif
20552
20553 RETURN
20554 END
20555
20556
20557
20558 SUBROUTINE spprr(lb1,lb2,srt)
20559 parameter (arho=0.77)
20560 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20561
20562 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20563
20564 SAVE
20565
20566 pprr=0.
20567 if((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.3.and.lb2.le.5)) then
20568
20569 if(srt.gt.(2*arho)) pprr=ptor(srt)
20570 elseif((lb1.ge.25.and.lb1.le.27).and.(lb2.ge.25.and.lb2.le.27))
20571 1 then
20572 pprr=rtop(srt)
20573 endif
20574
20575 return
20576 END
20577
20578
20579
20580 real function ptor(srt)
20581
20582 parameter (pimass=0.140,arho=0.77)
20583 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20584
20585 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20586
20587 SAVE
20588
20589 s2=srt**2
20590 ptor=9*(s2-4*arho**2)/(s2-4*pimass**2)*rtop(srt)
20591
20592 return
20593 END
20594
20595
20596
20597 real function rtop(srt)
20598
20599 rtop=5.
20600 return
20601 END
20602
20603
20604
20605 SUBROUTINE pi2ro2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20606 PARAMETER (MAXSTR=150001)
20607 PARAMETER (AP1=0.13496,AP2=0.13957)
20608 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20609
20610 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20611
20612 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20613
20614 COMMON/RNDF77/NSEED
20615
20616 SAVE
20617
20618 if((lb(i1).ge.3.and.lb(i1).le.5)
20619 1 .and.(lb(i2).ge.3.and.lb(i2).le.5)) then
20620 iblock=1850
20621 ei1=0.77
20622 ei2=0.77
20623
20624
20625 lbb1=25+int(3*RANART(NSEED))
20626 lbb2=25+int(3*RANART(NSEED))
20627 elseif((lb(i1).ge.25.and.lb(i1).le.27)
20628 1 .and.(lb(i2).ge.25.and.lb(i2).le.27)) then
20629 iblock=1851
20630 lbb1=3+int(3*RANART(NSEED))
20631 lbb2=3+int(3*RANART(NSEED))
20632 ei1=ap2
20633 ei2=ap2
20634 if(lbb1.eq.4) ei1=ap1
20635 if(lbb2.eq.4) ei2=ap1
20636 endif
20637
20638 return
20639 END
20640
20641
20642
20643 SUBROUTINE sppee(lb1,lb2,srt)
20644 parameter (ETAM=0.5475)
20645 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20646
20647 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20648
20649 SAVE
20650
20651 ppee=0.
20652 if((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.3.and.lb2.le.5)) then
20653 if(srt.gt.(2*ETAM)) ppee=ptoe(srt)
20654 elseif(lb1.eq.0.and.lb2.eq.0) then
20655 ppee=etop(srt)
20656 endif
20657
20658 return
20659 END
20660
20661
20662
20663 real function ptoe(srt)
20664
20665 parameter (pimass=0.140,ETAM=0.5475)
20666 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20667
20668 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20669
20670 SAVE
20671
20672 s2=srt**2
20673 ptoe=1./9.*(s2-4*etam**2)/(s2-4*pimass**2)*etop(srt)
20674
20675 return
20676 END
20677
20678
20679 real function etop(srt)
20680
20681
20682
20683
20684
20685 etop=5.
20686 return
20687 END
20688
20689
20690
20691 SUBROUTINE pi2et2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20692 PARAMETER (MAXSTR=150001)
20693 PARAMETER (AP1=0.13496,AP2=0.13957,ETAM=0.5475)
20694 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20695
20696 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20697
20698 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20699
20700 COMMON/RNDF77/NSEED
20701
20702 SAVE
20703
20704 if((lb(i1).ge.3.and.lb(i1).le.5)
20705 1 .and.(lb(i2).ge.3.and.lb(i2).le.5)) then
20706 iblock=1860
20707 ei1=etam
20708 ei2=etam
20709
20710
20711 lbb1=0
20712 lbb2=0
20713 elseif(lb(i1).eq.0.and.lb(i2).eq.0) then
20714 iblock=1861
20715 lbb1=3+int(3*RANART(NSEED))
20716 lbb2=3+int(3*RANART(NSEED))
20717 ei1=ap2
20718 ei2=ap2
20719 if(lbb1.eq.4) ei1=ap1
20720 if(lbb2.eq.4) ei2=ap1
20721 endif
20722
20723 return
20724 END
20725
20726
20727
20728 SUBROUTINE spppe(lb1,lb2,srt)
20729 parameter (pimass=0.140,ETAM=0.5475)
20730 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20731
20732 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20733
20734 SAVE
20735
20736 pppe=0.
20737 if((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.3.and.lb2.le.5)) then
20738 if(srt.gt.(ETAM+pimass)) pppe=pptope(srt)
20739 elseif((lb1.ge.3.and.lb1.le.5).and.lb2.eq.0) then
20740 pppe=petopp(srt)
20741 elseif((lb2.ge.3.and.lb2.le.5).and.lb1.eq.0) then
20742 pppe=petopp(srt)
20743 endif
20744
20745 return
20746 END
20747
20748
20749
20750 real function pptope(srt)
20751
20752 parameter (pimass=0.140,ETAM=0.5475)
20753 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20754
20755 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20756
20757 SAVE
20758
20759 s2=srt**2
20760 pf2=(s2-(pimass+ETAM)**2)*(s2-(pimass-ETAM)**2)/2/sqrt(s2)
20761 pi2=(s2-4*pimass**2)*s2/2/sqrt(s2)
20762 pptope=1./3.*pf2/pi2*petopp(srt)
20763
20764 return
20765 END
20766
20767
20768 real function petopp(srt)
20769
20770
20771
20772 petopp=5.
20773 return
20774 END
20775
20776
20777
20778 SUBROUTINE pi3eta(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20779 PARAMETER (MAXSTR=150001)
20780 PARAMETER (AP1=0.13496,AP2=0.13957,ETAM=0.5475)
20781 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20782
20783 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20784
20785 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20786
20787 COMMON/RNDF77/NSEED
20788
20789 SAVE
20790
20791 if((lb(i1).ge.3.and.lb(i1).le.5)
20792 1 .and.(lb(i2).ge.3.and.lb(i2).le.5)) then
20793 iblock=1870
20794 ei1=ap2
20795 ei2=etam
20796
20797
20798 lbb1=3+int(3*RANART(NSEED))
20799 if(lbb1.eq.4) ei1=ap1
20800 lbb2=0
20801 elseif((lb(i1).ge.3.and.lb(i1).le.5.and.lb(i2).eq.0).or.
20802 1 (lb(i2).ge.3.and.lb(i2).le.5.and.lb(i1).eq.0)) then
20803 iblock=1871
20804 lbb1=3+int(3*RANART(NSEED))
20805 lbb2=3+int(3*RANART(NSEED))
20806 ei1=ap2
20807 ei2=ap2
20808 if(lbb1.eq.4) ei1=ap1
20809 if(lbb2.eq.4) ei2=ap1
20810 endif
20811
20812 return
20813 END
20814
20815
20816
20817 SUBROUTINE srpre(lb1,lb2,srt)
20818 parameter (pimass=0.140,ETAM=0.5475,arho=0.77)
20819 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20820
20821 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20822
20823 SAVE
20824
20825 rpre=0.
20826 if(lb1.ge.25.and.lb1.le.27.and.lb2.ge.3.and.lb2.le.5) then
20827 if(srt.gt.(ETAM+arho)) rpre=rptore(srt)
20828 elseif(lb2.ge.25.and.lb2.le.27.and.lb1.ge.3.and.lb1.le.5) then
20829 if(srt.gt.(ETAM+arho)) rpre=rptore(srt)
20830 elseif(lb1.ge.25.and.lb1.le.27.and.lb2.eq.0) then
20831 if(srt.gt.(pimass+arho)) rpre=retorp(srt)
20832 elseif(lb2.ge.25.and.lb2.le.27.and.lb1.eq.0) then
20833 if(srt.gt.(pimass+arho)) rpre=retorp(srt)
20834 endif
20835
20836 return
20837 END
20838
20839
20840
20841 real function rptore(srt)
20842
20843 parameter (pimass=0.140,ETAM=0.5475,arho=0.77)
20844 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20845
20846 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20847
20848 SAVE
20849
20850 s2=srt**2
20851 pf2=(s2-(arho+ETAM)**2)*(s2-(arho-ETAM)**2)/2/sqrt(s2)
20852 pi2=(s2-(arho+pimass)**2)*(s2-(arho-pimass)**2)/2/sqrt(s2)
20853 rptore=1./3.*pf2/pi2*retorp(srt)
20854
20855 return
20856 END
20857
20858
20859 real function retorp(srt)
20860
20861
20862
20863 retorp=5.
20864 return
20865 END
20866
20867
20868
20869 SUBROUTINE rpiret(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20870 PARAMETER (MAXSTR=150001)
20871 PARAMETER (AP1=0.13496,AP2=0.13957,ETAM=0.5475,arho=0.77)
20872 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20873
20874 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20875
20876 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20877
20878 COMMON/RNDF77/NSEED
20879
20880 SAVE
20881
20882 if((lb(i1).ge.25.and.lb(i1).le.27
20883 1 .and.lb(i2).ge.3.and.lb(i2).le.5).or.
20884 2 (lb(i1).ge.3.and.lb(i1).le.5
20885 3 .and.lb(i2).ge.25.and.lb(i2).le.27)) then
20886 iblock=1880
20887 ei1=arho
20888 ei2=etam
20889
20890
20891 lbb1=25+int(3*RANART(NSEED))
20892 lbb2=0
20893 elseif((lb(i1).ge.25.and.lb(i1).le.27.and.lb(i2).eq.0).or.
20894 1 (lb(i2).ge.25.and.lb(i2).le.27.and.lb(i1).eq.0)) then
20895 iblock=1881
20896 lbb1=25+int(3*RANART(NSEED))
20897 lbb2=3+int(3*RANART(NSEED))
20898 ei1=arho
20899 ei2=ap2
20900 if(lbb2.eq.4) ei2=ap1
20901 endif
20902
20903 return
20904 END
20905
20906
20907
20908 SUBROUTINE sopoe(lb1,lb2,srt)
20909 parameter (ETAM=0.5475,aomega=0.782)
20910 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20911
20912 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20913
20914 SAVE
20915
20916 xopoe=0.
20917 if((lb1.eq.28.and.lb2.ge.3.and.lb2.le.5).or.
20918 1 (lb2.eq.28.and.lb1.ge.3.and.lb1.le.5)) then
20919 if(srt.gt.(aomega+ETAM)) xopoe=xop2oe(srt)
20920 elseif((lb1.eq.28.and.lb2.eq.0).or.
20921 1 (lb1.eq.0.and.lb2.eq.28)) then
20922 if(srt.gt.(aomega+ETAM)) xopoe=xoe2op(srt)
20923 endif
20924
20925 return
20926 END
20927
20928
20929
20930
20931 real function xop2oe(srt)
20932
20933 parameter (pimass=0.140,ETAM=0.5475,aomega=0.782)
20934 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20935
20936 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20937
20938 SAVE
20939
20940 s2=srt**2
20941 pf2=(s2-(aomega+ETAM)**2)*(s2-(aomega-ETAM)**2)/2/sqrt(s2)
20942 pi2=(s2-(aomega+pimass)**2)*(s2-(aomega-pimass)**2)/2/sqrt(s2)
20943 xop2oe=1./3.*pf2/pi2*xoe2op(srt)
20944
20945 return
20946 END
20947
20948
20949 real function xoe2op(srt)
20950
20951
20952
20953 xoe2op=5.
20954 return
20955 END
20956
20957
20958
20959 SUBROUTINE opioet(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20960 PARAMETER (MAXSTR=150001)
20961 PARAMETER (AP1=0.13496,AP2=0.13957,ETAM=0.5475,aomega=0.782)
20962 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20963
20964 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20965
20966 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20967
20968 COMMON/RNDF77/NSEED
20969
20970 SAVE
20971
20972 if((lb(i1).ge.3.and.lb(i1).le.5.and.lb(i2).eq.28).or.
20973 1 (lb(i2).ge.3.and.lb(i2).le.5.and.lb(i1).eq.28)) then
20974 iblock=1890
20975 ei1=aomega
20976 ei2=etam
20977
20978
20979 lbb1=28
20980 lbb2=0
20981 elseif((lb(i1).eq.28.and.lb(i2).eq.0).or.
20982 1 (lb(i1).eq.0.and.lb(i2).eq.28)) then
20983 iblock=1891
20984 lbb1=28
20985 lbb2=3+int(3*RANART(NSEED))
20986 ei1=aomega
20987 ei2=ap2
20988 if(lbb2.eq.4) ei2=ap1
20989 endif
20990
20991 return
20992 END
20993
20994
20995
20996 SUBROUTINE srree(lb1,lb2,srt)
20997 parameter (ETAM=0.5475,arho=0.77)
20998 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20999
21000 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
21001
21002 SAVE
21003
21004 rree=0.
21005 if(lb1.ge.25.and.lb1.le.27.and.
21006 1 lb2.ge.25.and.lb2.le.27) then
21007 if(srt.gt.(2*ETAM)) rree=rrtoee(srt)
21008 elseif(lb1.eq.0.and.lb2.eq.0) then
21009 if(srt.gt.(2*arho)) rree=eetorr(srt)
21010 endif
21011
21012 return
21013 END
21014
21015
21016
21017
21018 real function eetorr(srt)
21019
21020 parameter (ETAM=0.5475,arho=0.77)
21021 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
21022
21023 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
21024
21025 SAVE
21026
21027 s2=srt**2
21028 eetorr=81.*(s2-4*arho**2)/(s2-4*etam**2)*rrtoee(srt)
21029
21030 return
21031 END
21032
21033
21034 real function rrtoee(srt)
21035
21036
21037
21038 rrtoee=5.
21039 return
21040 END
21041
21042
21043
21044 SUBROUTINE ro2et2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
21045 PARAMETER (MAXSTR=150001)
21046 parameter (ETAM=0.5475,arho=0.77)
21047 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
21048
21049 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
21050
21051 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
21052
21053 COMMON/RNDF77/NSEED
21054
21055 SAVE
21056
21057 if(lb(i1).ge.25.and.lb(i1).le.27.and.
21058 1 lb(i2).ge.25.and.lb(i2).le.27) then
21059 iblock=1895
21060 ei1=etam
21061 ei2=etam
21062
21063
21064 lbb1=0
21065 lbb2=0
21066 elseif(lb(i1).eq.0.and.lb(i2).eq.0) then
21067 iblock=1896
21068 lbb1=25+int(3*RANART(NSEED))
21069 lbb2=25+int(3*RANART(NSEED))
21070 ei1=arho
21071 ei2=arho
21072 endif
21073
21074 return
21075 END
21076
21077
21078
21079 SUBROUTINE XKKSAN(i1,i2,SRT,SIGKS1,SIGKS2,SIGKS3,SIGKS4,SIGK,prkk)
21080
21081
21082
21083
21084 PARAMETER (AKA=0.498, PIMASS=0.140, RHOM = 0.770,aks=0.895,
21085 & OMEGAM = 0.7819, ETAM = 0.5473)
21086 PARAMETER (MAXSTR=150001)
21087 COMMON /CC/ E(MAXSTR)
21088
21089 SAVE
21090
21091 S = SRT ** 2
21092 SIGKS1 = 1.E-08
21093 SIGKS2 = 1.E-08
21094 SIGKS3 = 1.E-08
21095 SIGKS4 = 1.E-08
21096
21097 XPION0 = prkk
21098
21099 XPION0 = XPION0/2
21100
21101
21102
21103 PI2 = (S - (e(i1) + e(i2)) ** 2) * (S - (e(i1) - e(i2)) ** 2)
21104 SIGK = 1.E-08
21105 if(PI2 .le. 0.0) return
21106
21107 XM1 = PIMASS
21108 XM2 = RHOM
21109 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
21110 IF (PI2 .GT. 0.0 .AND. PF2 .GT. 0.0) THEN
21111 SIGKS1 = 27.0 / 4.0 * PF2 / PI2 * XPION0
21112 END IF
21113
21114 XM1 = PIMASS
21115 XM2 = OMEGAM
21116 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
21117 IF (PI2 .GT. 0.0 .AND. PF2 .GT. 0.0) THEN
21118 SIGKS2 = 9.0 / 4.0 * PF2 / PI2 * XPION0
21119 END IF
21120
21121 XM1 = RHOM
21122 XM2 = ETAM
21123 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
21124 IF (PF2 .GT. 0.0) THEN
21125 SIGKS3 = 9.0 / 4.0 * PF2 / PI2 * XPION0
21126 END IF
21127
21128 XM1 = OMEGAM
21129 XM2 = ETAM
21130 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
21131 IF (PF2 .GT. 0.0) THEN
21132 SIGKS4 = 3.0 / 4.0 * PF2 / PI2 * XPION0
21133 END IF
21134
21135 SIGK=SIGKS1+SIGKS2+SIGKS3+SIGKS4
21136
21137 RETURN
21138 END
21139
21140
21141
21142
21143
21144
21145 SUBROUTINE crkspi(I1,I2,XSK1, XSK2, XSK3, XSK4, SIGK,
21146 & IBLOCK,lbp1,lbp2,emm1,emm2)
21147
21148
21149 PARAMETER (MAXSTR=150001,MAXR=1)
21150 PARAMETER (AP1=0.13496,AP2=0.13957,RHOM = 0.770,PI=3.1415926)
21151 PARAMETER (AETA=0.548,AMOMGA=0.782)
21152 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
21153 COMMON /AA/ R(3,MAXSTR)
21154
21155 COMMON /BB/ P(3,MAXSTR)
21156
21157 COMMON /CC/ E(MAXSTR)
21158
21159 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
21160
21161 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
21162
21163 COMMON/RNDF77/NSEED
21164
21165 SAVE
21166
21167 IBLOCK=466
21168
21169
21170 X1 = RANART(NSEED) * SIGK
21171 XSK2 = XSK1 + XSK2
21172 XSK3 = XSK2 + XSK3
21173 XSK4 = XSK3 + XSK4
21174 IF (X1 .LE. XSK1) THEN
21175 LB(I1) = 3 + int(3 * RANART(NSEED))
21176 LB(I2) = 25 + int(3 * RANART(NSEED))
21177 E(I1) = AP2
21178 E(I2) = rhom
21179 ELSE IF (X1 .LE. XSK2) THEN
21180 LB(I1) = 3 + int(3 * RANART(NSEED))
21181 LB(I2) = 28
21182 E(I1) = AP2
21183 E(I2) = AMOMGA
21184 ELSE IF (X1 .LE. XSK3) THEN
21185 LB(I1) = 0
21186 LB(I2) = 25 + int(3 * RANART(NSEED))
21187 E(I1) = AETA
21188 E(I2) = rhom
21189 ELSE
21190 LB(I1) = 0
21191 LB(I2) = 28
21192 E(I1) = AETA
21193 E(I2) = AMOMGA
21194 ENDIF
21195
21196 if(lb(i1).eq.4) E(I1) = AP1
21197 lbp1=lb(i1)
21198 lbp2=lb(i2)
21199 emm1=e(i1)
21200 emm2=e(i2)
21201
21202 RETURN
21203 END
21204
21205
21206
21207
21208
21209 SUBROUTINE KSRESO(I1,I2)
21210 PARAMETER (MAXSTR=150001,MAXR=1,
21211 1 AMN=0.939457,AMP=0.93828,
21212 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
21213
21214 double precision e10,e20,scheck,p1,p2,p3
21215 COMMON /AA/ R(3,MAXSTR)
21216
21217 COMMON /BB/ P(3,MAXSTR)
21218
21219 COMMON /CC/ E(MAXSTR)
21220
21221 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
21222
21223 COMMON /RUN/NUM
21224
21225 COMMON /PA/RPION(3,MAXSTR,MAXR)
21226
21227 COMMON /PB/PPION(3,MAXSTR,MAXR)
21228
21229 COMMON /PC/EPION(MAXSTR,MAXR)
21230
21231 COMMON /PD/LPION(MAXSTR,MAXR)
21232
21233 SAVE
21234
21235
21236
21237
21238
21239
21240 E10=dSQRT(dble(E(I1))**2+dble(P(1,I1))**2
21241 1 +dble(P(2,I1))**2+dble(P(3,I1))**2)
21242 E20=dSQRT(dble(E(I2))**2+dble(P(1,I2))**2
21243 1 +dble(P(2,I2))**2+dble(P(3,I2))**2)
21244 p1=dble(P(1,I1))+dble(P(1,I2))
21245 p2=dble(P(2,I1))+dble(P(2,I2))
21246 p3=dble(P(3,I1))+dble(P(3,I2))
21247
21248 IF(LB(I2) .EQ. 21 .OR. LB(I2) .EQ. 23) THEN
21249 E(I1)=0.
21250 I=I2
21251 ELSE
21252 E(I2)=0.
21253 I=I1
21254 ENDIF
21255 if(LB(I).eq.23) then
21256 LB(I)=30
21257 else if(LB(I).eq.21) then
21258 LB(I)=-30
21259 endif
21260 P(1,I)=P(1,I1)+P(1,I2)
21261 P(2,I)=P(2,I1)+P(2,I2)
21262 P(3,I)=P(3,I1)+P(3,I2)
21263
21264
21265
21266 scheck=(E10+E20)**2-p1**2-p2**2-p3**2
21267 if(scheck.lt.0) then
21268 write(99,*) 'scheck49: ',scheck
21269 write(99,*) 'scheck49',scheck,E10,E20,P(1,I),P(2,I),P(3,I)
21270 write(99,*) 'scheck49-1',E(I1),P(1,I1),P(2,I1),P(3,I1)
21271 write(99,*) 'scheck49-2',E(I2),P(1,I2),P(2,I2),P(3,I2)
21272 endif
21273 DM=sqrt(sngl(scheck))
21274
21275
21276 E(I)=DM
21277 RETURN
21278 END
21279
21280
21281
21282
21283 SUBROUTINE pertur(PX,PY,PZ,SRT,IRUN,I1,I2,nt,kp,icont)
21284
21285
21286
21287
21288
21289
21290
21291
21292
21293
21294
21295 PARAMETER (MAXSTR=150001,MAXR=1,PI=3.1415926)
21296 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
21297 PARAMETER (AMN=0.939457,AMP=0.93828,AP1=0.13496,AP2=0.13957)
21298 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,aks=0.895)
21299 PARAMETER (ACAS=1.3213,AOME=1.6724,AMRHO=0.769,AMOMGA=0.782)
21300 PARAMETER (AETA=0.548,ADIOMG=3.2288)
21301 parameter (maxx=20,maxz=24)
21302 COMMON /AA/ R(3,MAXSTR)
21303
21304 COMMON /BB/ P(3,MAXSTR)
21305
21306 COMMON /CC/ E(MAXSTR)
21307
21308 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
21309
21310 COMMON /HH/ PROPER(MAXSTR)
21311
21312 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
21313
21314 common /gg/ dx,dy,dz,dpx,dpy,dpz
21315
21316 COMMON /INPUT/ NSTAR,NDIRCT,DIR
21317
21318 COMMON /NN/NNN
21319
21320 COMMON /PA/RPION(3,MAXSTR,MAXR)
21321
21322 COMMON /PB/PPION(3,MAXSTR,MAXR)
21323
21324 COMMON /PC/EPION(MAXSTR,MAXR)
21325
21326 COMMON /PD/LPION(MAXSTR,MAXR)
21327
21328 COMMON /PE/PROPI(MAXSTR,MAXR)
21329
21330 COMMON /RR/ MASSR(0:MAXR)
21331
21332 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
21333
21334 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
21335
21336
21337
21338
21339 COMMON/RNDF77/NSEED
21340
21341 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
21342 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
21343 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
21344 SAVE
21345
21346 px0 = px
21347 py0 = py
21348 pz0 = pz
21349 LB1 = LB(I1)
21350 EM1 = E(I1)
21351 X1 = R(1,I1)
21352 Y1 = R(2,I1)
21353 Z1 = R(3,I1)
21354 prob1 = PROPER(I1)
21355
21356 LB2 = LB(I2)
21357 EM2 = E(I2)
21358 X2 = R(1,I2)
21359 Y2 = R(2,I2)
21360 Z2 = R(3,I2)
21361 prob2 = PROPER(I2)
21362
21363
21364 icont = 1
21365
21366 icsbel = -1
21367
21368
21369
21370 if( (lb1.eq.21.or.lb1.eq.23.or.iabs(lb1).eq.30) .and.
21371 & (iabs(lb2).ge.14.and.iabs(lb2).le.17) )go to 60
21372 if( (lb2.eq.21.or.lb2.eq.23.or.iabs(lb2).eq.30) .and.
21373 & (iabs(lb1).ge.14.and.iabs(lb1).le.17) )go to 60
21374
21375
21376 if( (lb1.eq.21.or.lb1.eq.23.or.iabs(lb1).eq.30) .and.
21377 & (iabs(lb2).eq.40.or.iabs(lb2).eq.41) )go to 70
21378 if( (lb2.eq.21.or.lb2.eq.23.or.iabs(lb2).eq.30) .and.
21379 & (iabs(lb1).eq.40.or.iabs(lb1).eq.41) )go to 70
21380
21381
21382
21383
21384
21385 if( (((lb1.ge.3.and.lb1.le.5).or.lb1.eq.0)
21386 & .and.(iabs(lb2).eq.40.or.iabs(lb2).eq.41))
21387 & .OR. (((lb2.ge.3.and.lb2.le.5).or.lb2.eq.0)
21388 & .and.(iabs(lb1).eq.40.or.iabs(lb1).eq.41)) )go to 90
21389
21390
21391
21392
21393 if( ((lb1.ge.3.and.lb1.le.5).and.iabs(lb2).eq.45)
21394 & .OR.((lb2.ge.3.and.lb2.le.5).and.iabs(lb1).eq.45) )go to 110
21395
21396
21397
21398
21399
21400 60 if(iabs(lb1).ge.14 .and. iabs(lb1).le.17)then
21401 asap = e(i1)
21402 akap = e(i2)
21403 idp = i1
21404 else
21405 asap = e(i2)
21406 akap = e(i1)
21407 idp = i2
21408 endif
21409 app = 0.138
21410 if(srt .lt. (acas+app))return
21411 srrt = srt - (acas+app) + (amn+akap)
21412 pkaon = sqrt(((srrt**2-(amn**2+akap**2))/2./amn)**2 - akap**2)
21413 sigca = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
21414
21415
21416 pii = sqrt((srt**2-(amn+akap)**2)*(srt**2-(amn-akap)**2))
21417 pff = sqrt((srt**2-(asap+app)**2)*(srt**2-(asap-app)**2))
21418 cmat = sigca*pii/pff
21419 sigpi = cmat*
21420 & sqrt((srt**2-(acas+app)**2)*(srt**2-(acas-app)**2))/
21421 & sqrt((srt**2-(asap+akap)**2)*(srt**2-(asap-akap)**2))
21422
21423 sigeta = 0.
21424 if(srt .gt. (acas+aeta))then
21425 srrt = srt - (acas+aeta) + (amn+akap)
21426 pkaon = sqrt(((srrt**2-(amn**2+akap**2))/2./amn)**2 - akap**2)
21427 sigca = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
21428 cmat = sigca*pii/pff
21429 sigeta = cmat*
21430 & sqrt((srt**2-(acas+aeta)**2)*(srt**2-(acas-aeta)**2))/
21431 & sqrt((srt**2-(asap+akap)**2)*(srt**2-(asap-akap)**2))
21432 endif
21433
21434 sigca = sigpi + sigeta
21435 sigpe = 0.
21436
21437
21438 sig = amax1(sigpe,sigca)
21439 ds = sqrt(sig/31.4)
21440 dsr = ds + 0.1
21441 ec = (em1+em2+0.02)**2
21442 call distce(i1,i2,dsr,ds,dt,ec,srt,ic,px,py,pz)
21443 if(ic .eq. -1)return
21444 brpp = sigca/sig
21445
21446
21447 if( (lb1.ge.14.and.lb1.le.17) .or.
21448 & (lb2.ge.14.and.lb2.le.17) )then
21449
21450 lbpp1 = 40 + int(2*RANART(NSEED))
21451 else
21452
21453
21454 lbpp1 = -40 - int(2*RANART(NSEED))
21455 endif
21456 empp1 = acas
21457 if(RANART(NSEED) .lt. sigpi/sigca)then
21458
21459 lbpp2 = 3 + int(3*RANART(NSEED))
21460 empp2 = 0.138
21461 else
21462
21463 lbpp2 = 0
21464 empp2 = aeta
21465 endif
21466
21467 if(RANART(NSEED) .lt. brpp)then
21468
21469 icont = 0
21470 lb(i1) = lbpp1
21471 e(i1) = empp1
21472
21473 proper(i1) = brpp
21474 lb(i2) = lbpp2
21475 e(i2) = empp2
21476
21477 proper(i2) = 1.
21478 endif
21479
21480 go to 700
21481
21482
21483
21484
21485 70 if(iabs(lb1).eq.40 .or. iabs(lb1).eq.41)then
21486 acap = e(i1)
21487 akap = e(i2)
21488 idp = i1
21489 else
21490 acap = e(i2)
21491 akap = e(i1)
21492 idp = i2
21493 endif
21494 app = 0.138
21495
21496
21497 ames = 0.138
21498 if(srt .lt. (aome+ames))return
21499 srrt = srt - (aome+ames) + (amn+akap)
21500 pkaon = sqrt(((srrt**2-(amn**2+akap**2))/2./amn)**2 - akap**2)
21501
21502
21503
21504 sigomm = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
21505 cmat = sigomm*
21506 & sqrt((srt**2-(amn+akap)**2)*(srt**2-(amn-akap)**2))/
21507 & sqrt((srt**2-(asa+app)**2)*(srt**2-(asa-app)**2))
21508 sigom = cmat*
21509 & sqrt((srt**2-(aome+ames)**2)*(srt**2-(aome-ames)**2))/
21510 & sqrt((srt**2-(acap+akap)**2)*(srt**2-(acap-akap)**2))
21511 sigpe = 0.
21512
21513
21514 sig = amax1(sigpe,sigom)
21515 ds = sqrt(sig/31.4)
21516 dsr = ds + 0.1
21517 ec = (em1+em2+0.02)**2
21518 call distce(i1,i2,dsr,ds,dt,ec,srt,ic,px,py,pz)
21519 if(ic .eq. -1)return
21520 brpp = sigom/sig
21521
21522
21523 if( (lb1.ge.40.and.lb1.le.41) .or.
21524 & (lb2.ge.40.and.lb2.le.41) )then
21525
21526 lbpp1 = 45
21527 else
21528
21529
21530 lbpp1 = -45
21531 endif
21532 empp1 = aome
21533
21534
21535 lbpp2 = 3 + int(3*RANART(NSEED))
21536 empp2 = ames
21537
21538
21539 xrand=RANART(NSEED)
21540 if(xrand .lt. (proper(idp)*brpp))then
21541
21542 icont = 0
21543 lb(i1) = lbpp1
21544 e(i1) = empp1
21545
21546 proper(i1) = proper(idp)*brpp
21547 lb(i2) = lbpp2
21548 e(i2) = empp2
21549
21550 proper(i2) = 1.
21551 elseif(xrand.lt.brpp) then
21552
21553 e(idp) = 0.
21554 endif
21555 go to 700
21556
21557
21558
21559
21560 90 if(iabs(lb1).eq.40 .or. iabs(lb1).eq.41)then
21561 acap = e(i1)
21562 app = e(i2)
21563 idp = i1
21564 idn = i2
21565 else
21566 acap = e(i2)
21567 app = e(i1)
21568 idp = i2
21569 idn = i1
21570 endif
21571
21572
21573 akal = aka
21574
21575 alas = ala
21576 if(srt .le. (alas+aka))return
21577 srrt = srt - (acap+app) + (amn+aka)
21578 pkaon = sqrt(((srrt**2-(amn**2+aka**2))/2./amn)**2 - aka**2)
21579
21580 sigca = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
21581 cmat = sigca*
21582 & sqrt((srt**2-(amn+aka)**2)*(srt**2-(amn-aka)**2))/
21583 & sqrt((srt**2-(alas+0.138)**2)*(srt**2-(alas-0.138)**2))
21584 sigca = cmat*
21585 & sqrt((srt**2-(acap+app)**2)*(srt**2-(acap-app)**2))/
21586 & sqrt((srt**2-(alas+aka)**2)*(srt**2-(alas-aka)**2))
21587
21588 dfr = 1./3.
21589
21590 if(lb(idn).eq.0)dfr = 1.
21591 sigcal = sigca*dfr*(srt**2-(alas+aka)**2)*
21592 & (srt**2-(alas-aka)**2)/(srt**2-(acap+app)**2)/
21593 & (srt**2-(acap-app)**2)
21594
21595 alas = ASA
21596 if(srt .le. (alas+aka))then
21597 sigcas = 0.
21598 else
21599 srrt = srt - (acap+app) + (amn+aka)
21600 pkaon = sqrt(((srrt**2-(amn**2+aka**2))/2./amn)**2 - aka**2)
21601
21602
21603 sigca = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
21604 cmat = sigca*
21605 & sqrt((srt**2-(amn+aka)**2)*(srt**2-(amn-aka)**2))/
21606 & sqrt((srt**2-(alas+0.138)**2)*(srt**2-(alas-0.138)**2))
21607 sigca = cmat*
21608 & sqrt((srt**2-(acap+app)**2)*(srt**2-(acap-app)**2))/
21609 & sqrt((srt**2-(alas+aka)**2)*(srt**2-(alas-aka)**2))
21610
21611 dfr = 1.
21612
21613 if(lb(idn).eq.0)dfr = 3.
21614 sigcas = sigca*dfr*(srt**2-(alas+aka)**2)*
21615 & (srt**2-(alas-aka)**2)/(srt**2-(acap+app)**2)/
21616 & (srt**2-(acap-app)**2)
21617 endif
21618
21619 sig = sigcal + sigcas
21620 brpp = 1.
21621 ds = sqrt(sig/31.4)
21622 dsr = ds + 0.1
21623 ec = (em1+em2+0.02)**2
21624 call distce(i1,i2,dsr,ds,dt,ec,srt,ic,px,py,pz)
21625
21626
21627
21628 if(ic .eq. -1)then
21629
21630
21631 ds = sqrt(20.0/31.4)
21632 dsr = ds + 0.1
21633 call distce(i1,i2,dsr,ds,dt,ec,srt,icsbel,px,py,pz)
21634 if(icsbel .eq. -1)return
21635 empp1 = EM1
21636 empp2 = EM2
21637 go to 700
21638 endif
21639
21640
21641
21642
21643
21644 IF(sigcal/sig .GT. RANART(NSEED))THEN
21645 if(lb1.eq.40.or.lb1.eq.41.or.lb2.eq.40.or.lb2.eq.41)then
21646 lbpp1 = 21
21647 lbpp2 = 14
21648 else
21649 lbpp1 = 23
21650 lbpp2 = -14
21651 endif
21652 alas = ala
21653 ELSE
21654 if(lb1.eq.40.or.lb1.eq.41.or.lb2.eq.40.or.lb2.eq.41)then
21655 lbpp1 = 21
21656 lbpp2 = 15 + int(3 * RANART(NSEED))
21657 else
21658 lbpp1 = 23
21659 lbpp2 = -15 - int(3 * RANART(NSEED))
21660 endif
21661 alas = ASA
21662 ENDIF
21663 empp1 = aka
21664 empp2 = alas
21665
21666
21667 if(RANART(NSEED) .lt. proper(idp))then
21668
21669
21670 icont = 0
21671 lb(i1) = lbpp1
21672 e(i1) = empp1
21673
21674 proper(i1) = 1.
21675 lb(i2) = lbpp2
21676 e(i2) = empp2
21677
21678 proper(i2) = 1.
21679 go to 700
21680 else
21681
21682 e(idp) = 0.
21683 endif
21684 return
21685
21686
21687
21688
21689 110 if(lb1 .eq. 45 .or. lb1 .eq. -45)then
21690 aomp = e(i1)
21691 app = e(i2)
21692 idp = i1
21693 idn = i2
21694 else
21695 aomp = e(i2)
21696 app = e(i1)
21697 idp = i2
21698 idn = i1
21699 endif
21700
21701
21702 akal = aka
21703 if(srt .le. (acas+aka))return
21704 srrt = srt - (aome+app) + (amn+aka)
21705 pkaon = sqrt(((srrt**2-(amn**2+aka**2))/2./amn)**2 - aka**2)
21706
21707
21708 sigca = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
21709 cmat = sigca*
21710 & sqrt((srt**2-(amn+aka)**2)*(srt**2-(amn-aka)**2))/
21711 & sqrt((srt**2-(asa+0.138)**2)*(srt**2-(asa-0.138)**2))
21712 sigom = cmat*
21713 & sqrt((srt**2-(aomp+app)**2)*(srt**2-(aomp-app)**2))/
21714 & sqrt((srt**2-(acas+aka)**2)*(srt**2-(acas-aka)**2))
21715
21716
21717 dfr = 2./3.
21718 sigom = sigom*dfr*(srt**2-(acas+aka)**2)*
21719 & (srt**2-(acas-aka)**2)/(srt**2-(aomp+app)**2)/
21720 & (srt**2-(aomp-app)**2)
21721
21722 brpp = 1.
21723 ds = sqrt(sigom/31.4)
21724 dsr = ds + 0.1
21725 ec = (em1+em2+0.02)**2
21726 call distce(i1,i2,dsr,ds,dt,ec,srt,ic,px,py,pz)
21727
21728
21729
21730 if(ic .eq. -1)then
21731
21732
21733 ds = sqrt(20.0/31.4)
21734 dsr = ds + 0.1
21735 call distce(i1,i2,dsr,ds,dt,ec,srt,icsbel,px,py,pz)
21736 if(icsbel .eq. -1)return
21737 empp1 = EM1
21738 empp2 = EM2
21739 go to 700
21740 endif
21741
21742
21743
21744 if(lb1.eq.45 .or. lb2.eq.45)then
21745
21746 lbpp1 = 40 + int(2*RANART(NSEED))
21747
21748 lbpp2 = 21
21749 else
21750
21751
21752 lbpp1 = -40 - int(2*RANART(NSEED))
21753
21754 lbpp2 = 23
21755 endif
21756 empp1 = acas
21757 empp2 = aka
21758
21759
21760 if(RANART(NSEED) .lt. proper(idp))then
21761
21762 icont = 0
21763 lb(i1) = lbpp1
21764 e(i1) = empp1
21765
21766 proper(i1) = proper(idp)
21767 lb(i2) = lbpp2
21768 e(i2) = empp2
21769
21770 proper(i2) = 1.
21771
21772 else
21773
21774 e(idp) = 0.
21775 endif
21776
21777 go to 700
21778
21779
21780 700 continue
21781
21782
21783 PR2 = (SRT**2 - EMpp1**2 - EMpp2**2)**2
21784 & - 4.0 * (EMpp1*EMpp2)**2
21785 IF(PR2.LE.0.)PR2=0.00000001
21786 PR=SQRT(PR2)/(2.*SRT)
21787
21788 C1 = 1.0 - 2.0 * RANART(NSEED)
21789 T1 = 2.0 * PI * RANART(NSEED)
21790 S1 = SQRT( 1.0 - C1**2 )
21791 CT1 = COS(T1)
21792 ST1 = SIN(T1)
21793
21794 PZ = PR * C1
21795 PX = PR * S1*CT1
21796 PY = PR * S1*ST1
21797
21798 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
21799 if(icont .eq. 0)return
21800
21801
21802 E1CM = SQRT (EMpp1**2 + PX**2 + PY**2 + PZ**2)
21803 P1BETA = PX*BETAX + PY*BETAY + PZ*BETAZ
21804 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
21805 Ppt11 = BETAX * TRANSF + PX
21806 Ppt12 = BETAY * TRANSF + PY
21807 Ppt13 = BETAZ * TRANSF + PZ
21808
21809
21810 if(icsbel .ne. -1)then
21811
21812 p(1,i1) = Ppt11
21813 p(2,i1) = Ppt12
21814 p(3,i1) = Ppt13
21815
21816 E2CM = SQRT (EMpp2**2 + PX**2 + PY**2 + PZ**2)
21817 TRANSF = GAMMA * ( -GAMMA * P1BETA / (GAMMA + 1) + E2CM )
21818 Ppt21 = BETAX * TRANSF - PX
21819 Ppt22 = BETAY * TRANSF - PY
21820 Ppt23 = BETAZ * TRANSF - PZ
21821 p(1,i2) = Ppt21
21822 p(2,i2) = Ppt22
21823 p(3,i2) = Ppt23
21824
21825 return
21826 endif
21827
21828
21829
21830
21831
21832
21833
21834
21835 Xpt=X1
21836 Ypt=Y1
21837 Zpt=Z1
21838
21839
21840
21841
21842
21843
21844
21845 NNN=NNN+1
21846 PROPI(NNN,IRUN)= proper(idp)*brpp
21847 LPION(NNN,IRUN)= lbpp1
21848 EPION(NNN,IRUN)= empp1
21849 RPION(1,NNN,IRUN)=Xpt
21850 RPION(2,NNN,IRUN)=Ypt
21851 RPION(3,NNN,IRUN)=Zpt
21852 PPION(1,NNN,IRUN)=Ppt11
21853 PPION(2,NNN,IRUN)=Ppt12
21854 PPION(3,NNN,IRUN)=Ppt13
21855
21856 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
21857 RETURN
21858 END
21859
21860
21861 SUBROUTINE Crhb(PX,PY,PZ,SRT,I1,I2,IBLOCK)
21862
21863
21864
21865
21866
21867
21868
21869
21870
21871
21872 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
21873 1 AMP=0.93828,AP1=0.13496,
21874 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
21875 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
21876 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
21877 COMMON /AA/ R(3,MAXSTR)
21878
21879 COMMON /BB/ P(3,MAXSTR)
21880
21881 COMMON /CC/ E(MAXSTR)
21882
21883 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
21884
21885 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
21886
21887 COMMON/RNDF77/NSEED
21888
21889 SAVE
21890
21891 PX0=PX
21892 PY0=PY
21893 PZ0=PZ
21894
21895 IBLOCK=144
21896 NTAG=0
21897 EM1=E(I1)
21898 EM2=E(I2)
21899
21900
21901
21902 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
21903 1 - 4.0 * (EM1*EM2)**2
21904 IF(PR2.LE.0.)PR2=1.e-09
21905 PR=SQRT(PR2)/(2.*SRT)
21906 C1 = 1.0 - 2.0 * RANART(NSEED)
21907 T1 = 2.0 * PI * RANART(NSEED)
21908 S1 = SQRT( 1.0 - C1**2 )
21909 CT1 = COS(T1)
21910 ST1 = SIN(T1)
21911 PZ = PR * C1
21912 PX = PR * S1*CT1
21913 PY = PR * S1*ST1
21914 RETURN
21915 END
21916
21917
21918
21919 subroutine lambar(i1,i2,srt,siglab)
21920
21921
21922
21923
21924
21925
21926
21927
21928 PARAMETER (MAXSTR=150001)
21929 COMMON /AA/ R(3,MAXSTR)
21930
21931 COMMON /BB/ P(3,MAXSTR)
21932
21933 COMMON /CC/ E(MAXSTR)
21934
21935 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
21936
21937 SAVE
21938
21939 siglab=1.e-06
21940 if( iabs(lb(i1)).ge.14.and.iabs(lb(i1)).le.17 )then
21941 eml = e(i1)
21942 emb = e(i2)
21943 else
21944 eml = e(i2)
21945 emb = e(i1)
21946 endif
21947 pthr = srt**2-eml**2-emb**2
21948 if(pthr .gt. 0.)then
21949 plab2=(pthr/2./emb)**2-eml**2
21950 if(plab2.gt.0)then
21951 plab=sqrt(plab2)
21952 siglab=12. + 0.43/(plab**3.3)
21953 if(siglab.gt.200.)siglab=200.
21954 endif
21955 endif
21956 return
21957 END
21958
21959
21960
21961 SUBROUTINE distc0(drmax,deltr0,DT,
21962 1 Ifirst,PX1CM,PY1CM,PZ1CM,
21963 2 x1,y1,z1,px1,py1,pz1,em1,x2,y2,z2,px2,py2,pz2,em2)
21964
21965
21966
21967
21968
21969
21970
21971
21972
21973 COMMON /BG/ BETAX,BETAY,BETAZ,GAMMA
21974
21975 SAVE
21976 Ifirst=-1
21977 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
21978
21979 E2 = SQRT ( EM2**2 + PX2**2 + PY2**2 + PZ2**2 )
21980
21981
21982
21983
21984 P1BETA = PX1*BETAX + PY1*BETAY + PZ1 * BETAZ
21985 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) - E1 )
21986 PRCM = SQRT (PX1CM**2 + PY1CM**2 + PZ1CM**2)
21987 IF (PRCM .LE. 0.00001) return
21988
21989 DRBETA = BETAX*(X1-X2) + BETAY*(Y1-Y2) + BETAZ*(Z1-Z2)
21990 TRANSF = GAMMA * GAMMA * DRBETA / (GAMMA + 1)
21991 DXCM = BETAX * TRANSF + X1 - X2
21992 DYCM = BETAY * TRANSF + Y1 - Y2
21993 DZCM = BETAZ * TRANSF + Z1 - Z2
21994
21995 DRCM = SQRT (DXCM**2 + DYCM**2 + DZCM**2 )
21996 DZZ = (PX1CM*DXCM + PY1CM*DYCM + PZ1CM*DZCM) / PRCM
21997 if ((drcm**2 - dzz**2) .le. 0.) then
21998 BBB = 0.
21999 else
22000 BBB = SQRT (DRCM**2 - DZZ**2)
22001 end if
22002
22003 IF (BBB .GT. drmax) return
22004 RELVEL = PRCM * (1.0/E1 + 1.0/E2)
22005 DDD = RELVEL * DT * 0.5
22006
22007 IF (ABS(DDD) .LT. ABS(DZZ)) return
22008 Ifirst=1
22009 RETURN
22010 END
22011
22012
22013
22014 subroutine sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
22015 PARAMETER (xmd=1.8756,AP1=0.13496,AP2=0.13957,
22016 1 xmrho=0.770,xmomega=0.782,xmeta=0.548,srt0=2.012)
22017 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
22018 1 px1n,py1n,pz1n,dp1n
22019 common /dpi/em2,lb2
22020 common /para8/ idpert,npertd,idxsec
22021 COMMON/RNDF77/NSEED
22022 SAVE
22023
22024 sdprod=0.
22025 sbbdpi=0.
22026 sbbdrho=0.
22027 sbbdomega=0.
22028 sbbdeta=0.
22029 if(srt.le.(em1+em2)) return
22030
22031 ilb1=iabs(lb1)
22032 ilb2=iabs(lb2)
22033
22034
22035
22036
22037
22038
22039
22040
22041
22042
22043
22044
22045
22046
22047
22048
22049 s=srt**2
22050
22051
22052 scheck=(s-(em1+em2)**2)*(s-(em1-em2)**2)
22053 if(scheck.le.0) then
22054 write(99,*) 'scheck50: ', scheck
22055 stop
22056 endif
22057 pinitial=sqrt(scheck)/2./srt
22058
22059
22060 fs=fnndpi(s)
22061
22062
22063 if(idxsec.eq.1.or.idxsec.eq.2) then
22064
22065 else
22066
22067
22068 if(ilb1.ge.1.and.ilb1.le.2.and.
22069 1 ilb2.ge.1.and.ilb2.le.2) then
22070 pifactor=9./8.
22071 elseif((ilb1.ge.1.and.ilb1.le.2.and.
22072 1 ilb2.ge.6.and.ilb2.le.9).or.
22073 2 (ilb2.ge.1.and.ilb2.le.2.and.
22074 1 ilb1.ge.6.and.ilb1.le.9)) then
22075 pifactor=9./64.
22076 elseif((ilb1.ge.1.and.ilb1.le.2.and.
22077 1 ilb2.ge.10.and.ilb2.le.13).or.
22078 2 (ilb2.ge.1.and.ilb2.le.2.and.
22079 1 ilb1.ge.10.and.ilb1.le.13)) then
22080 pifactor=9./16.
22081 elseif(ilb1.ge.6.and.ilb1.le.9.and.
22082 1 ilb2.ge.6.and.ilb2.le.9) then
22083 pifactor=9./128.
22084 elseif((ilb1.ge.6.and.ilb1.le.9.and.
22085 1 ilb2.ge.10.and.ilb2.le.13).or.
22086 2 (ilb2.ge.6.and.ilb2.le.9.and.
22087 1 ilb1.ge.10.and.ilb1.le.13)) then
22088 pifactor=9./64.
22089 elseif((ilb1.ge.10.and.ilb1.le.11.and.
22090 1 ilb2.ge.10.and.ilb2.le.11).or.
22091 2 (ilb2.ge.12.and.ilb2.le.13.and.
22092 1 ilb1.ge.12.and.ilb1.le.13)) then
22093 pifactor=9./8.
22094 elseif((ilb1.ge.10.and.ilb1.le.11.and.
22095 1 ilb2.ge.12.and.ilb2.le.13).or.
22096 2 (ilb2.ge.10.and.ilb2.le.11.and.
22097 1 ilb1.ge.12.and.ilb1.le.13)) then
22098 pifactor=9./16.
22099 endif
22100 endif
22101
22102
22103 IF((ilb1*ilb2).EQ.1)THEN
22104 lbm=5
22105 if(ianti.eq.1) lbm=3
22106 xmm=ap2
22107
22108 ELSEIF(ilb1.EQ.2.AND.ilb2.EQ.2)THEN
22109 lbm=3
22110 if(ianti.eq.1) lbm=5
22111 xmm=ap2
22112
22113 ELSEIF((ilb1*ilb2).EQ.2)THEN
22114 lbm=4
22115 xmm=ap1
22116 ELSE
22117
22118 lbm=3+int(3 * RANART(NSEED))
22119 if(lbm.eq.4) then
22120 xmm=ap1
22121 else
22122 xmm=ap2
22123 endif
22124 ENDIF
22125
22126 if(srt.ge.(xmd+xmm)) then
22127 pfinal=sqrt((s-(xmd+xmm)**2)*(s-(xmd-xmm)**2))/2./srt
22128 if((ilb1.eq.1.and.ilb2.eq.1).or.
22129 1 (ilb1.eq.2.and.ilb2.eq.2)) then
22130
22131 sbbdpi=fs*pfinal/pinitial/4.
22132 elseif((ilb1.eq.1.and.ilb2.eq.2).or.
22133 1 (ilb1.eq.2.and.ilb2.eq.1)) then
22134
22135 sbbdpi=fs*pfinal/pinitial/4./2.
22136 else
22137
22138 if(idxsec.eq.1) then
22139
22140
22141 sbbdpi=fs*pfinal/pinitial*3./16.
22142 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22143 threshold=amax1(xmd+xmm,em1+em2)
22144 snew=(srt-threshold+srt0)**2
22145 if(idxsec.eq.2) then
22146
22147
22148 sbbdpi=fnndpi(snew)*pfinal/pinitial*3./16.
22149 elseif(idxsec.eq.4) then
22150
22151
22152 sbbdpi=fnndpi(snew)*pfinal/pinitial/6.*pifactor
22153 endif
22154 elseif(idxsec.eq.3) then
22155
22156
22157 sbbdpi=fs*pfinal/pinitial/6.*pifactor
22158 endif
22159
22160 endif
22161 endif
22162
22163
22164 if(srt.gt.(xmd+xmrho)) then
22165 pfinal=sqrt((s-(xmd+xmrho)**2)*(s-(xmd-xmrho)**2))/2./srt
22166 if(idxsec.eq.1) then
22167 sbbdrho=fs*pfinal/pinitial*3./16.
22168 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22169 threshold=amax1(xmd+xmrho,em1+em2)
22170 snew=(srt-threshold+srt0)**2
22171 if(idxsec.eq.2) then
22172 sbbdrho=fnndpi(snew)*pfinal/pinitial*3./16.
22173 elseif(idxsec.eq.4) then
22174
22175 sbbdrho=fnndpi(snew)*pfinal/pinitial/6.*(pifactor*3.)
22176 endif
22177 elseif(idxsec.eq.3) then
22178 sbbdrho=fs*pfinal/pinitial/6.*(pifactor*3.)
22179 endif
22180 endif
22181
22182
22183 if(srt.gt.(xmd+xmomega)) then
22184 pfinal=sqrt((s-(xmd+xmomega)**2)*(s-(xmd-xmomega)**2))/2./srt
22185 if(idxsec.eq.1) then
22186 sbbdomega=fs*pfinal/pinitial*3./16.
22187 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22188 threshold=amax1(xmd+xmomega,em1+em2)
22189 snew=(srt-threshold+srt0)**2
22190 if(idxsec.eq.2) then
22191 sbbdomega=fnndpi(snew)*pfinal/pinitial*3./16.
22192 elseif(idxsec.eq.4) then
22193 sbbdomega=fnndpi(snew)*pfinal/pinitial/6.*pifactor
22194 endif
22195 elseif(idxsec.eq.3) then
22196 sbbdomega=fs*pfinal/pinitial/6.*pifactor
22197 endif
22198 endif
22199
22200
22201 if(srt.gt.(xmd+xmeta)) then
22202 pfinal=sqrt((s-(xmd+xmeta)**2)*(s-(xmd-xmeta)**2))/2./srt
22203 if(idxsec.eq.1) then
22204 sbbdeta=fs*pfinal/pinitial*3./16.
22205 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22206 threshold=amax1(xmd+xmeta,em1+em2)
22207 snew=(srt-threshold+srt0)**2
22208 if(idxsec.eq.2) then
22209 sbbdeta=fnndpi(snew)*pfinal/pinitial*3./16.
22210 elseif(idxsec.eq.4) then
22211 sbbdeta=fnndpi(snew)*pfinal/pinitial/6.*(pifactor/3.)
22212 endif
22213 elseif(idxsec.eq.3) then
22214 sbbdeta=fs*pfinal/pinitial/6.*(pifactor/3.)
22215 endif
22216 endif
22217
22218 sdprod=sbbdpi+sbbdrho+sbbdomega+sbbdeta
22219
22220
22221
22222
22223 if(sdprod.le.0) return
22224
22225
22226 x1=RANART(NSEED)
22227 if(x1.le.sbbdpi/sdprod) then
22228
22229 elseif(x1.le.(sbbdpi+sbbdrho)/sdprod) then
22230 lbm=25+int(3*RANART(NSEED))
22231 xmm=xmrho
22232 elseif(x1.le.(sbbdpi+sbbdrho+sbbdomega)/sdprod) then
22233 lbm=28
22234 xmm=xmomega
22235 else
22236 lbm=0
22237 xmm=xmeta
22238 endif
22239
22240 return
22241 end
22242
22243
22244 subroutine bbdangle(pxd,pyd,pzd,nt,ipert1,ianti,idloop,pfinal,
22245 1 dprob1,lbm)
22246 PARAMETER (PI=3.1415926)
22247 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
22248 1 px1n,py1n,pz1n,dp1n
22249 common /dpi/em2,lb2
22250 COMMON/RNDF77/NSEED
22251 common /para8/ idpert,npertd,idxsec
22252 COMMON /AREVT/ IAEVT, IARUN, MISS
22253 SAVE
22254
22255 C1=1.0-2.0*RANART(NSEED)
22256 T1=2.0*PI*RANART(NSEED)
22257 S1=SQRT(1.0-C1**2)
22258 CT1=COS(T1)
22259 ST1=SIN(T1)
22260
22261 PZd=pfinal*C1
22262 PXd=pfinal*S1*CT1
22263 PYd=pfinal*S1*ST1
22264
22265 if(idpert.eq.1.and.npertd.ge.1) then
22266 dprob=dprob1
22267 elseif(idpert.eq.2.and.npertd.ge.1) then
22268 dprob=1./float(npertd)
22269 endif
22270 if(ianti.eq.0) then
22271 if(idpert.eq.0.or.(idpert.eq.1.and.ipert1.eq.0).or.
22272 1 (idpert.eq.2.and.idloop.eq.(npertd+1))) then
22273 write (91,*) lb1,' *',lb2,' ->d+',lbm,' (regular d prodn)
22274 1 @evt#',iaevt,' @nt=',nt
22275 elseif((idpert.eq.1.or.idpert.eq.2).and.idloop.eq.npertd) then
22276 write (91,*) lb1,' *',lb2,' ->d+',lbm,' (pert d prodn)
22277 1 @evt#',iaevt,' @nt=',nt,' @prob=',dprob
22278 endif
22279 else
22280 if(idpert.eq.0.or.(idpert.eq.1.and.ipert1.eq.0).or.
22281 1 (idpert.eq.2.and.idloop.eq.(npertd+1))) then
22282 write (91,*) lb1,' *',lb2,' ->d+',lbm,' (regular dbar prodn)
22283 1 @evt#',iaevt,' @nt=',nt
22284 elseif((idpert.eq.1.or.idpert.eq.2).and.idloop.eq.npertd) then
22285 write (91,*) lb1,' *',lb2,' ->d+',lbm,' (pert dbar prodn)
22286 1 @evt#',iaevt,' @nt=',nt,' @prob=',dprob
22287 endif
22288 endif
22289
22290 return
22291 end
22292
22293
22294 subroutine sdmbb(SRT,sdm,ianti)
22295 PARAMETER (AMN=0.939457,AMP=0.93828,
22296 1 AM0=1.232,AM1440=1.44,AM1535=1.535,srt0=2.012)
22297 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
22298 1 px1n,py1n,pz1n,dp1n
22299 common /dpi/em2,lb2
22300 common /dpifsl/lbnn1,lbnn2,lbnd1,lbnd2,lbns1,lbns2,lbnp1,lbnp2,
22301 1 lbdd1,lbdd2,lbds1,lbds2,lbdp1,lbdp2,lbss1,lbss2,
22302 2 lbsp1,lbsp2,lbpp1,lbpp2
22303 common /dpifsm/xmnn1,xmnn2,xmnd1,xmnd2,xmns1,xmns2,xmnp1,xmnp2,
22304 1 xmdd1,xmdd2,xmds1,xmds2,xmdp1,xmdp2,xmss1,xmss2,
22305 2 xmsp1,xmsp2,xmpp1,xmpp2
22306 common /dpisig/sdmel,sdmnn,sdmnd,sdmns,sdmnp,sdmdd,sdmds,sdmdp,
22307 1 sdmss,sdmsp,sdmpp
22308 common /para8/ idpert,npertd,idxsec
22309 COMMON/RNDF77/NSEED
22310 SAVE
22311
22312 sdm=0.
22313 sdmel=0.
22314 sdmnn=0.
22315 sdmnd=0.
22316 sdmns=0.
22317 sdmnp=0.
22318 sdmdd=0.
22319 sdmds=0.
22320 sdmdp=0.
22321 sdmss=0.
22322 sdmsp=0.
22323 sdmpp=0.
22324
22325
22326
22327
22328
22329
22330
22331
22332
22333
22334
22335
22336
22337
22338
22339
22340 if(srt.le.(em1+em2)) return
22341 s=srt**2
22342 pinitial=sqrt((s-(em1+em2)**2)*(s-(em1-em2)**2))/2./srt
22343 fs=fnndpi(s)
22344
22345
22346 if(idxsec.eq.1.or.idxsec.eq.2) then
22347
22348
22349 if((lb1.ge.3.and.lb1.le.5).or.
22350 1 (lb2.ge.3.and.lb2.le.5)) then
22351 xnnfactor=8./9.
22352 elseif((lb1.ge.25.and.lb1.le.27).or.
22353 1 (lb2.ge.25.and.lb2.le.27)) then
22354 xnnfactor=8./27.
22355 elseif(lb1.eq.28.or.lb2.eq.28) then
22356 xnnfactor=8./9.
22357 elseif(lb1.eq.0.or.lb2.eq.0) then
22358 xnnfactor=8./3.
22359 endif
22360 else
22361
22362 endif
22363
22364 if(idxsec.eq.1.or.idxsec.eq.3) then
22365
22366
22367 sdmel=fdpiel(s)
22368 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22369
22370
22371 threshold=em1+em2
22372 snew=(srt-threshold+srt0)**2
22373 sdmel=fdpiel(snew)
22374 endif
22375
22376
22377 IF(((lb1.eq.5.or.lb2.eq.5.or.lb1.eq.27.or.lb2.eq.27)
22378 1 .and.ianti.eq.0).or.
22379 2 ((lb1.eq.3.or.lb2.eq.3.or.lb1.eq.25.or.lb2.eq.25)
22380 3 .and.ianti.eq.1))THEN
22381
22382 lbnn1=1
22383 lbnn2=1
22384 xmnn1=amp
22385 xmnn2=amp
22386 ELSEIF(lb1.eq.3.or.lb2.eq.3.or.lb1.eq.26.or.lb2.eq.26
22387 1 .or.lb1.eq.28.or.lb2.eq.28.or.lb1.eq.0.or.lb2.eq.0)THEN
22388
22389
22390 lbnn1=2
22391 lbnn2=1
22392 xmnn1=amn
22393 xmnn2=amp
22394 ELSE
22395
22396 lbnn1=2
22397 lbnn2=2
22398 xmnn1=amn
22399 xmnn2=amn
22400 ENDIF
22401 if(srt.gt.(xmnn1+xmnn2)) then
22402 pfinal=sqrt((s-(xmnn1+xmnn2)**2)*(s-(xmnn1-xmnn2)**2))/2./srt
22403 if(idxsec.eq.1) then
22404
22405
22406 sdmnn=fs*pfinal/pinitial*3./16.*xnnfactor
22407 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22408 threshold=amax1(xmnn1+xmnn2,em1+em2)
22409 snew=(srt-threshold+srt0)**2
22410 if(idxsec.eq.2) then
22411
22412
22413 sdmnn=fnndpi(snew)*pfinal/pinitial*3./16.*xnnfactor
22414 elseif(idxsec.eq.4) then
22415
22416
22417 sdmnn=fnndpi(snew)*pfinal/pinitial/6.
22418 endif
22419 elseif(idxsec.eq.3) then
22420
22421
22422 sdmnn=fs*pfinal/pinitial/6.
22423 endif
22424 endif
22425
22426
22427 lbnd1=1+int(2*RANART(NSEED))
22428 lbnd2=6+int(4*RANART(NSEED))
22429 if(lbnd1.eq.1) then
22430 xmnd1=amp
22431 elseif(lbnd1.eq.2) then
22432 xmnd1=amn
22433 endif
22434 xmnd2=am0
22435 if(srt.gt.(xmnd1+xmnd2)) then
22436 pfinal=sqrt((s-(xmnd1+xmnd2)**2)*(s-(xmnd1-xmnd2)**2))/2./srt
22437 if(idxsec.eq.1) then
22438
22439 sdmnd=fs*pfinal/pinitial*3./16.*(xnnfactor*8.)
22440 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22441 threshold=amax1(xmnd1+xmnd2,em1+em2)
22442 snew=(srt-threshold+srt0)**2
22443 if(idxsec.eq.2) then
22444 sdmnd=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*8.)
22445 elseif(idxsec.eq.4) then
22446 sdmnd=fnndpi(snew)*pfinal/pinitial/6.
22447 endif
22448 elseif(idxsec.eq.3) then
22449 sdmnd=fs*pfinal/pinitial/6.
22450 endif
22451 endif
22452
22453
22454 lbns1=1+int(2*RANART(NSEED))
22455 lbns2=10+int(2*RANART(NSEED))
22456 if(lbns1.eq.1) then
22457 xmns1=amp
22458 elseif(lbns1.eq.2) then
22459 xmns1=amn
22460 endif
22461 xmns2=am1440
22462 if(srt.gt.(xmns1+xmns2)) then
22463 pfinal=sqrt((s-(xmns1+xmns2)**2)*(s-(xmns1-xmns2)**2))/2./srt
22464 if(idxsec.eq.1) then
22465 sdmns=fs*pfinal/pinitial*3./16.*(xnnfactor*2.)
22466 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22467 threshold=amax1(xmns1+xmns2,em1+em2)
22468 snew=(srt-threshold+srt0)**2
22469 if(idxsec.eq.2) then
22470 sdmns=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*2.)
22471 elseif(idxsec.eq.4) then
22472 sdmns=fnndpi(snew)*pfinal/pinitial/6.
22473 endif
22474 elseif(idxsec.eq.3) then
22475 sdmns=fs*pfinal/pinitial/6.
22476 endif
22477 endif
22478
22479
22480 lbnp1=1+int(2*RANART(NSEED))
22481 lbnp2=12+int(2*RANART(NSEED))
22482 if(lbnp1.eq.1) then
22483 xmnp1=amp
22484 elseif(lbnp1.eq.2) then
22485 xmnp1=amn
22486 endif
22487 xmnp2=am1535
22488 if(srt.gt.(xmnp1+xmnp2)) then
22489 pfinal=sqrt((s-(xmnp1+xmnp2)**2)*(s-(xmnp1-xmnp2)**2))/2./srt
22490 if(idxsec.eq.1) then
22491 sdmnp=fs*pfinal/pinitial*3./16.*(xnnfactor*2.)
22492 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22493 threshold=amax1(xmnp1+xmnp2,em1+em2)
22494 snew=(srt-threshold+srt0)**2
22495 if(idxsec.eq.2) then
22496 sdmnp=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*2.)
22497 elseif(idxsec.eq.4) then
22498 sdmnp=fnndpi(snew)*pfinal/pinitial/6.
22499 endif
22500 elseif(idxsec.eq.3) then
22501 sdmnp=fs*pfinal/pinitial/6.
22502 endif
22503 endif
22504
22505
22506 lbdd1=6+int(4*RANART(NSEED))
22507 lbdd2=6+int(4*RANART(NSEED))
22508 xmdd1=am0
22509 xmdd2=am0
22510 if(srt.gt.(xmdd1+xmdd2)) then
22511 pfinal=sqrt((s-(xmdd1+xmdd2)**2)*(s-(xmdd1-xmdd2)**2))/2./srt
22512 if(idxsec.eq.1) then
22513 sdmdd=fs*pfinal/pinitial*3./16.*(xnnfactor*16.)
22514 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22515 threshold=amax1(xmdd1+xmdd2,em1+em2)
22516 snew=(srt-threshold+srt0)**2
22517 if(idxsec.eq.2) then
22518 sdmdd=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*16.)
22519 elseif(idxsec.eq.4) then
22520 sdmdd=fnndpi(snew)*pfinal/pinitial/6.
22521 endif
22522 elseif(idxsec.eq.3) then
22523 sdmdd=fs*pfinal/pinitial/6.
22524 endif
22525 endif
22526
22527
22528 lbds1=6+int(4*RANART(NSEED))
22529 lbds2=10+int(2*RANART(NSEED))
22530 xmds1=am0
22531 xmds2=am1440
22532 if(srt.gt.(xmds1+xmds2)) then
22533 pfinal=sqrt((s-(xmds1+xmds2)**2)*(s-(xmds1-xmds2)**2))/2./srt
22534 if(idxsec.eq.1) then
22535 sdmds=fs*pfinal/pinitial*3./16.*(xnnfactor*8.)
22536 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22537 threshold=amax1(xmds1+xmds2,em1+em2)
22538 snew=(srt-threshold+srt0)**2
22539 if(idxsec.eq.2) then
22540 sdmds=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*8.)
22541 elseif(idxsec.eq.4) then
22542 sdmds=fnndpi(snew)*pfinal/pinitial/6.
22543 endif
22544 elseif(idxsec.eq.3) then
22545 sdmds=fs*pfinal/pinitial/6.
22546 endif
22547 endif
22548
22549
22550 lbdp1=6+int(4*RANART(NSEED))
22551 lbdp2=12+int(2*RANART(NSEED))
22552 xmdp1=am0
22553 xmdp2=am1535
22554 if(srt.gt.(xmdp1+xmdp2)) then
22555 pfinal=sqrt((s-(xmdp1+xmdp2)**2)*(s-(xmdp1-xmdp2)**2))/2./srt
22556 if(idxsec.eq.1) then
22557 sdmdp=fs*pfinal/pinitial*3./16.*(xnnfactor*8.)
22558 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22559 threshold=amax1(xmdp1+xmdp2,em1+em2)
22560 snew=(srt-threshold+srt0)**2
22561 if(idxsec.eq.2) then
22562 sdmdp=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*8.)
22563 elseif(idxsec.eq.4) then
22564 sdmdp=fnndpi(snew)*pfinal/pinitial/6.
22565 endif
22566 elseif(idxsec.eq.3) then
22567 sdmdp=fs*pfinal/pinitial/6.
22568 endif
22569 endif
22570
22571
22572 lbss1=10+int(2*RANART(NSEED))
22573 lbss2=10+int(2*RANART(NSEED))
22574 xmss1=am1440
22575 xmss2=am1440
22576 if(srt.gt.(xmss1+xmss2)) then
22577 pfinal=sqrt((s-(xmss1+xmss2)**2)*(s-(xmss1-xmss2)**2))/2./srt
22578 if(idxsec.eq.1) then
22579 sdmss=fs*pfinal/pinitial*3./16.*xnnfactor
22580 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22581 threshold=amax1(xmss1+xmss2,em1+em2)
22582 snew=(srt-threshold+srt0)**2
22583 if(idxsec.eq.2) then
22584 sdmss=fnndpi(snew)*pfinal/pinitial*3./16.*xnnfactor
22585 elseif(idxsec.eq.4) then
22586 sdmss=fnndpi(snew)*pfinal/pinitial/6.
22587 endif
22588 elseif(idxsec.eq.3) then
22589 sdmns=fs*pfinal/pinitial/6.
22590 endif
22591 endif
22592
22593
22594 lbsp1=10+int(2*RANART(NSEED))
22595 lbsp2=12+int(2*RANART(NSEED))
22596 xmsp1=am1440
22597 xmsp2=am1535
22598 if(srt.gt.(xmsp1+xmsp2)) then
22599 pfinal=sqrt((s-(xmsp1+xmsp2)**2)*(s-(xmsp1-xmsp2)**2))/2./srt
22600 if(idxsec.eq.1) then
22601 sdmsp=fs*pfinal/pinitial*3./16.*(xnnfactor*2.)
22602 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22603 threshold=amax1(xmsp1+xmsp2,em1+em2)
22604 snew=(srt-threshold+srt0)**2
22605 if(idxsec.eq.2) then
22606 sdmsp=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*2.)
22607 elseif(idxsec.eq.4) then
22608 sdmsp=fnndpi(snew)*pfinal/pinitial/6.
22609 endif
22610 elseif(idxsec.eq.3) then
22611 sdmsp=fs*pfinal/pinitial/6.
22612 endif
22613 endif
22614
22615
22616 lbpp1=12+int(2*RANART(NSEED))
22617 lbpp2=12+int(2*RANART(NSEED))
22618 xmpp1=am1535
22619 xmpp2=am1535
22620 if(srt.gt.(xmpp1+xmpp2)) then
22621 pfinal=sqrt((s-(xmpp1+xmpp2)**2)*(s-(xmpp1-xmpp2)**2))/2./srt
22622 if(idxsec.eq.1) then
22623 sdmpp=fs*pfinal/pinitial*3./16.*xnnfactor
22624 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22625 threshold=amax1(xmpp1+xmpp2,em1+em2)
22626 snew=(srt-threshold+srt0)**2
22627 if(idxsec.eq.2) then
22628 sdmpp=fnndpi(snew)*pfinal/pinitial*3./16.*xnnfactor
22629 elseif(idxsec.eq.4) then
22630 sdmpp=fnndpi(snew)*pfinal/pinitial/6.
22631 endif
22632 elseif(idxsec.eq.3) then
22633 sdmpp=fs*pfinal/pinitial/6.
22634 endif
22635 endif
22636
22637 sdm=sdmel+sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds+sdmdp
22638 1 +sdmss+sdmsp+sdmpp
22639 if(ianti.eq.1) then
22640 lbnn1=-lbnn1
22641 lbnn2=-lbnn2
22642 lbnd1=-lbnd1
22643 lbnd2=-lbnd2
22644 lbns1=-lbns1
22645 lbns2=-lbns2
22646 lbnp1=-lbnp1
22647 lbnp2=-lbnp2
22648 lbdd1=-lbdd1
22649 lbdd2=-lbdd2
22650 lbds1=-lbds1
22651 lbds2=-lbds2
22652 lbdp1=-lbdp1
22653 lbdp2=-lbdp2
22654 lbss1=-lbss1
22655 lbss2=-lbss2
22656 lbsp1=-lbsp1
22657 lbsp2=-lbsp2
22658 lbpp1=-lbpp1
22659 lbpp2=-lbpp2
22660 endif
22661
22662
22663
22664
22665
22666 return
22667 end
22668
22669
22670 SUBROUTINE crdmbb(PX,PY,PZ,SRT,I1,I2,IBLOCK,
22671 1 NTAG,sig,NT,ianti)
22672 PARAMETER (MAXSTR=150001,MAXR=1)
22673 COMMON /AA/R(3,MAXSTR)
22674 COMMON /BB/ P(3,MAXSTR)
22675 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
22676 COMMON /CC/ E(MAXSTR)
22677 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
22678 COMMON /AREVT/ IAEVT, IARUN, MISS
22679 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
22680 1 px1n,py1n,pz1n,dp1n
22681 common /dpi/em2,lb2
22682 common /para8/ idpert,npertd,idxsec
22683 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
22684 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
22685 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
22686 common /dpifsl/lbnn1,lbnn2,lbnd1,lbnd2,lbns1,lbns2,lbnp1,lbnp2,
22687 1 lbdd1,lbdd2,lbds1,lbds2,lbdp1,lbdp2,lbss1,lbss2,
22688 2 lbsp1,lbsp2,lbpp1,lbpp2
22689 common /dpifsm/xmnn1,xmnn2,xmnd1,xmnd2,xmns1,xmns2,xmnp1,xmnp2,
22690 1 xmdd1,xmdd2,xmds1,xmds2,xmdp1,xmdp2,xmss1,xmss2,
22691 2 xmsp1,xmsp2,xmpp1,xmpp2
22692 common /dpisig/sdmel,sdmnn,sdmnd,sdmns,sdmnp,sdmdd,sdmds,sdmdp,
22693 1 sdmss,sdmsp,sdmpp
22694 COMMON/RNDF77/NSEED
22695 SAVE
22696
22697 IBLOCK=0
22698 NTAG=0
22699 EM1=E(I1)
22700 EM2=E(I2)
22701 s=srt**2
22702 if(sig.le.0) return
22703
22704 if(iabs(lb1).eq.42) then
22705 ideut=i1
22706 lbm=lb2
22707 idm=i2
22708 else
22709 ideut=i2
22710 lbm=lb1
22711 idm=i1
22712 endif
22713
22714 if((idpert.eq.1.or.idpert.eq.2).and.dpertp(ideut).ne.1.) then
22715
22716 x1=RANART(NSEED)
22717 if(x1.le.sdmel/sig)then
22718
22719 if(ianti.eq.0) then
22720 write(91,*) ' d+',lbm,' (pert d M elastic) @nt=',nt
22721 1 ,' @prob=',dpertp(ideut)
22722 else
22723 write(91,*) ' d+',lbm,' (pert dbar M elastic) @nt=',nt
22724 1 ,' @prob=',dpertp(ideut)
22725 endif
22726
22727
22728 scheck=(s-(em1+em2)**2)*(s-(em1-em2)**2)
22729 if(scheck.lt.0) then
22730 write(99,*) 'scheck51: ', scheck
22731 scheck=0.
22732 endif
22733 pfinal=sqrt(scheck)/2./srt
22734
22735
22736 CALL dmelangle(pxn,pyn,pzn,pfinal)
22737 CALL ROTATE(PX,PY,PZ,Pxn,Pyn,Pzn)
22738 EdCM=SQRT(E(ideut)**2+Pxn**2+Pyn**2+Pzn**2)
22739 PdBETA=Pxn*BETAX+Pyn*BETAY+Pzn*BETAZ
22740 TRANSF=GAMMA*(GAMMA*PdBETA/(GAMMA+1.)+EdCM)
22741 Pt1d=BETAX*TRANSF+Pxn
22742 Pt2d=BETAY*TRANSF+Pyn
22743 Pt3d=BETAZ*TRANSF+Pzn
22744 p(1,ideut)=pt1d
22745 p(2,ideut)=pt2d
22746 p(3,ideut)=pt3d
22747 IBLOCK=504
22748 PX1=P(1,I1)
22749 PY1=P(2,I1)
22750 PZ1=P(3,I1)
22751 ID(I1)=2
22752 ID(I2)=2
22753
22754
22755 R(1,ideut)=R(1,idm)
22756 R(2,ideut)=R(2,idm)
22757 R(3,ideut)=R(3,idm)
22758 else
22759
22760 if(ianti.eq.0) then
22761 write(91,*) ' d+',lbm,' ->BB (pert d destrn) @nt=',nt
22762 1 ,' @prob=',dpertp(ideut)
22763 else
22764 write(91,*) ' d+',lbm,' ->BB (pert dbar destrn) @nt=',nt
22765 1 ,' @prob=',dpertp(ideut)
22766 endif
22767 e(ideut)=0.
22768 IBLOCK=502
22769 endif
22770 return
22771 endif
22772
22773
22774 IBLOCK=502
22775
22776 x1=RANART(NSEED)
22777 if(x1.le.sdmnn/sig)then
22778 lbb1=lbnn1
22779 lbb2=lbnn2
22780 xmb1=xmnn1
22781 xmb2=xmnn2
22782 elseif(x1.le.(sdmnn+sdmnd)/sig)then
22783 lbb1=lbnd1
22784 lbb2=lbnd2
22785 xmb1=xmnd1
22786 xmb2=xmnd2
22787 elseif(x1.le.(sdmnn+sdmnd+sdmns)/sig)then
22788 lbb1=lbns1
22789 lbb2=lbns2
22790 xmb1=xmns1
22791 xmb2=xmns2
22792 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp)/sig)then
22793 lbb1=lbnp1
22794 lbb2=lbnp2
22795 xmb1=xmnp1
22796 xmb2=xmnp2
22797 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd)/sig)then
22798 lbb1=lbdd1
22799 lbb2=lbdd2
22800 xmb1=xmdd1
22801 xmb2=xmdd2
22802 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds)/sig)then
22803 lbb1=lbds1
22804 lbb2=lbds2
22805 xmb1=xmds1
22806 xmb2=xmds2
22807 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds+sdmdp)/sig)then
22808 lbb1=lbdp1
22809 lbb2=lbdp2
22810 xmb1=xmdp1
22811 xmb2=xmdp2
22812 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds+sdmdp
22813 1 +sdmss)/sig)then
22814 lbb1=lbss1
22815 lbb2=lbss2
22816 xmb1=xmss1
22817 xmb2=xmss2
22818 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds+sdmdp
22819 1 +sdmss+sdmsp)/sig)then
22820 lbb1=lbsp1
22821 lbb2=lbsp2
22822 xmb1=xmsp1
22823 xmb2=xmsp2
22824 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds+sdmdp
22825 1 +sdmss+sdmsp+sdmpp)/sig)then
22826 lbb1=lbpp1
22827 lbb2=lbpp2
22828 xmb1=xmpp1
22829 xmb2=xmpp2
22830 else
22831
22832 lbb1=lb1
22833 lbb2=lb2
22834 xmb1=em1
22835 xmb2=em2
22836 IBLOCK=504
22837 endif
22838 LB(I1)=lbb1
22839 E(i1)=xmb1
22840 LB(I2)=lbb2
22841 E(I2)=xmb2
22842 lb1=lb(i1)
22843 lb2=lb(i2)
22844
22845
22846 scheck=(s-(xmb1+xmb2)**2)*(s-(xmb1-xmb2)**2)
22847 if(scheck.lt.0) then
22848 write(99,*) 'scheck52: ', scheck
22849 scheck=0.
22850 endif
22851 pfinal=sqrt(scheck)/2./srt
22852
22853
22854 if(iblock.eq.502) then
22855 CALL dmangle(pxn,pyn,pzn,nt,ianti,pfinal,lbm)
22856 elseif(iblock.eq.504) then
22857 if(ianti.eq.0) then
22858 write (91,*) ' d+',lbm,' (regular d M elastic) @evt#',
22859 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22860 else
22861 write (91,*) ' d+',lbm,' (regular dbar M elastic) @evt#',
22862 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22863 endif
22864 CALL dmelangle(pxn,pyn,pzn,pfinal)
22865 else
22866 print *, 'Wrong iblock number in crdmbb()'
22867 stop
22868 endif
22869
22870
22871 CALL ROTATE(PX,PY,PZ,Pxn,Pyn,Pzn)
22872
22873
22874
22875 E1CM=SQRT(E(I1)**2+Pxn**2+Pyn**2+Pzn**2)
22876 P1BETA=Pxn*BETAX+Pyn*BETAY+Pzn*BETAZ
22877 TRANSF=GAMMA*(GAMMA*P1BETA/(GAMMA+1.)+E1CM)
22878 Pt1i1=BETAX*TRANSF+Pxn
22879 Pt2i1=BETAY*TRANSF+Pyn
22880 Pt3i1=BETAZ*TRANSF+Pzn
22881
22882 p(1,i1)=pt1i1
22883 p(2,i1)=pt2i1
22884 p(3,i1)=pt3i1
22885
22886 E2CM=SQRT(E(I2)**2+Pxn**2+Pyn**2+Pzn**2)
22887 P2BETA=-Pxn*BETAX-Pyn*BETAY-Pzn*BETAZ
22888 TRANSF=GAMMA*(GAMMA*P2BETA/(GAMMA+1.)+E2CM)
22889 Pt1I2=BETAX*TRANSF-Pxn
22890 Pt2I2=BETAY*TRANSF-Pyn
22891 Pt3I2=BETAZ*TRANSF-Pzn
22892
22893 p(1,i2)=pt1i2
22894 p(2,i2)=pt2i2
22895 p(3,i2)=pt3i2
22896
22897 PX1=P(1,I1)
22898 PY1=P(2,I1)
22899 PZ1=P(3,I1)
22900 EM1=E(I1)
22901 EM2=E(I2)
22902 ID(I1)=2
22903 ID(I2)=2
22904 RETURN
22905 END
22906
22907
22908 subroutine dmangle(pxn,pyn,pzn,nt,ianti,pfinal,lbm)
22909 PARAMETER (PI=3.1415926)
22910 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
22911 1 px1n,py1n,pz1n,dp1n
22912 common /dpi/em2,lb2
22913 COMMON /AREVT/ IAEVT, IARUN, MISS
22914 COMMON/RNDF77/NSEED
22915 SAVE
22916
22917 C1=1.0-2.0*RANART(NSEED)
22918 T1=2.0*PI*RANART(NSEED)
22919 S1=SQRT(1.0-C1**2)
22920 CT1=COS(T1)
22921 ST1=SIN(T1)
22922
22923 Pzn=pfinal*C1
22924 Pxn=pfinal*S1*CT1
22925 Pyn=pfinal*S1*ST1
22926
22927 if(ianti.eq.0) then
22928 write (91,*) ' d+',lbm,' ->BB (regular d destrn) @evt#',
22929 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22930 else
22931 write (91,*) ' d+',lbm,' ->BB (regular dbar destrn) @evt#',
22932 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22933 endif
22934
22935 return
22936 end
22937
22938
22939 subroutine dmelangle(pxn,pyn,pzn,pfinal)
22940 PARAMETER (PI=3.1415926)
22941 COMMON/RNDF77/NSEED
22942 SAVE
22943
22944 C1=1.0-2.0*RANART(NSEED)
22945 T1=2.0*PI*RANART(NSEED)
22946 S1=SQRT(1.0-C1**2)
22947 CT1=COS(T1)
22948 ST1=SIN(T1)
22949
22950 Pzn=pfinal*C1
22951 Pxn=pfinal*S1*CT1
22952 Pyn=pfinal*S1*ST1
22953 return
22954 end
22955
22956
22957 subroutine sdbelastic(SRT,sdb)
22958 PARAMETER (srt0=2.012)
22959 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
22960 1 px1n,py1n,pz1n,dp1n
22961 common /dpi/em2,lb2
22962 common /para8/ idpert,npertd,idxsec
22963 SAVE
22964
22965 sdb=0.
22966 sdbel=0.
22967 if(srt.le.(em1+em2)) return
22968 s=srt**2
22969
22970 if(idxsec.eq.1.or.idxsec.eq.3) then
22971
22972
22973 sdbel=fdbel(s)
22974 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22975
22976
22977 threshold=em1+em2
22978 snew=(srt-threshold+srt0)**2
22979 sdbel=fdbel(snew)
22980 endif
22981 sdb=sdbel
22982 return
22983 end
22984
22985 SUBROUTINE crdbel(PX,PY,PZ,SRT,I1,I2,IBLOCK,
22986 1 NTAG,sig,NT,ianti)
22987 PARAMETER (MAXSTR=150001,MAXR=1)
22988 COMMON /AA/R(3,MAXSTR)
22989 COMMON /BB/ P(3,MAXSTR)
22990 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
22991 COMMON /CC/ E(MAXSTR)
22992 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
22993 COMMON /AREVT/ IAEVT, IARUN, MISS
22994 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
22995 1 px1n,py1n,pz1n,dp1n
22996 common /dpi/em2,lb2
22997 common /para8/ idpert,npertd,idxsec
22998 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
22999 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
23000 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
23001 SAVE
23002
23003 IBLOCK=0
23004 NTAG=0
23005 EM1=E(I1)
23006 EM2=E(I2)
23007 s=srt**2
23008 if(sig.le.0) return
23009 IBLOCK=503
23010
23011 if(iabs(lb1).eq.42) then
23012 ideut=i1
23013 lbb=lb2
23014 idb=i2
23015 else
23016 ideut=i2
23017 lbb=lb1
23018 idb=i1
23019 endif
23020
23021 if((idpert.eq.1.or.idpert.eq.2).and.dpertp(ideut).ne.1.) then
23022 if(ianti.eq.0) then
23023 write(91,*) ' d+',lbb,' (pert d B elastic) @nt=',nt
23024 1 ,' @prob=',dpertp(ideut),p(1,idb),p(2,idb)
23025 2 ,p(1,ideut),p(2,ideut)
23026 else
23027 write(91,*) ' d+',lbb,' (pert dbar Bbar elastic) @nt=',nt
23028 1 ,' @prob=',dpertp(ideut),p(1,idb),p(2,idb)
23029 2 ,p(1,ideut),p(2,ideut)
23030 endif
23031
23032
23033 scheck=(s-(em1+em2)**2)*(s-(em1-em2)**2)
23034 if(scheck.lt.0) then
23035 write(99,*) 'scheck53: ', scheck
23036 scheck=0.
23037 endif
23038 pfinal=sqrt(scheck)/2./srt
23039
23040
23041 CALL dbelangle(pxn,pyn,pzn,pfinal)
23042 CALL ROTATE(PX,PY,PZ,Pxn,Pyn,Pzn)
23043 EdCM=SQRT(E(ideut)**2+Pxn**2+Pyn**2+Pzn**2)
23044 PdBETA=Pxn*BETAX+Pyn*BETAY+Pzn*BETAZ
23045 TRANSF=GAMMA*(GAMMA*PdBETA/(GAMMA+1.)+EdCM)
23046 Pt1d=BETAX*TRANSF+Pxn
23047 Pt2d=BETAY*TRANSF+Pyn
23048 Pt3d=BETAZ*TRANSF+Pzn
23049 p(1,ideut)=pt1d
23050 p(2,ideut)=pt2d
23051 p(3,ideut)=pt3d
23052 PX1=P(1,I1)
23053 PY1=P(2,I1)
23054 PZ1=P(3,I1)
23055 ID(I1)=2
23056 ID(I2)=2
23057
23058
23059 R(1,ideut)=R(1,idb)
23060 R(2,ideut)=R(2,idb)
23061 R(3,ideut)=R(3,idb)
23062 return
23063 endif
23064
23065
23066 if(ianti.eq.0) then
23067 write (91,*) ' d+',lbb,' (regular d B elastic) @evt#',
23068 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
23069 else
23070 write (91,*) ' d+',lbb,' (regular dbar Bbar elastic) @evt#',
23071 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
23072 endif
23073
23074 scheck=(s-(em1+em2)**2)*(s-(em1-em2)**2)
23075 if(scheck.lt.0) then
23076 write(99,*) 'scheck54: ', scheck
23077 scheck=0.
23078 endif
23079 pfinal=sqrt(scheck)/2./srt
23080
23081
23082 CALL dbelangle(pxn,pyn,pzn,pfinal)
23083
23084
23085 CALL ROTATE(PX,PY,PZ,Pxn,Pyn,Pzn)
23086
23087
23088
23089 E1CM=SQRT(E(I1)**2+Pxn**2+Pyn**2+Pzn**2)
23090 P1BETA=Pxn*BETAX+Pyn*BETAY+Pzn*BETAZ
23091 TRANSF=GAMMA*(GAMMA*P1BETA/(GAMMA+1.)+E1CM)
23092 Pt1i1=BETAX*TRANSF+Pxn
23093 Pt2i1=BETAY*TRANSF+Pyn
23094 Pt3i1=BETAZ*TRANSF+Pzn
23095
23096 p(1,i1)=pt1i1
23097 p(2,i1)=pt2i1
23098 p(3,i1)=pt3i1
23099
23100 E2CM=SQRT(E(I2)**2+Pxn**2+Pyn**2+Pzn**2)
23101 P2BETA=-Pxn*BETAX-Pyn*BETAY-Pzn*BETAZ
23102 TRANSF=GAMMA*(GAMMA*P2BETA/(GAMMA+1.)+E2CM)
23103 Pt1I2=BETAX*TRANSF-Pxn
23104 Pt2I2=BETAY*TRANSF-Pyn
23105 Pt3I2=BETAZ*TRANSF-Pzn
23106
23107 p(1,i2)=pt1i2
23108 p(2,i2)=pt2i2
23109 p(3,i2)=pt3i2
23110
23111 PX1=P(1,I1)
23112 PY1=P(2,I1)
23113 PZ1=P(3,I1)
23114 EM1=E(I1)
23115 EM2=E(I2)
23116 ID(I1)=2
23117 ID(I2)=2
23118 RETURN
23119 END
23120
23121
23122 function fnndpi(s)
23123 parameter(srt0=2.012)
23124 if(s.le.srt0**2) then
23125 fnndpi=0.
23126 else
23127 fnndpi=26.*exp(-(s-4.65)**2/0.1)+4.*exp(-(s-4.65)**2/2.)
23128 1 +0.28*exp(-(s-6.)**2/10.)
23129 endif
23130 return
23131 end
23132
23133
23134 subroutine dbelangle(pxn,pyn,pzn,pfinal)
23135 PARAMETER (PI=3.1415926)
23136 COMMON/RNDF77/NSEED
23137 SAVE
23138
23139 C1=1.0-2.0*RANART(NSEED)
23140 T1=2.0*PI*RANART(NSEED)
23141 S1=SQRT(1.0-C1**2)
23142 CT1=COS(T1)
23143 ST1=SIN(T1)
23144
23145 Pzn=pfinal*C1
23146 Pxn=pfinal*S1*CT1
23147 Pyn=pfinal*S1*ST1
23148 return
23149 end
23150
23151
23152 function fdpiel(s)
23153 parameter(srt0=2.012)
23154 if(s.le.srt0**2) then
23155 fdpiel=0.
23156 else
23157 fdpiel=63.*exp(-(s-4.67)**2/0.15)+15.*exp(-(s-6.25)**2/0.3)
23158 endif
23159 return
23160 end
23161
23162
23163 function fdbel(s)
23164 parameter(srt0=2.012)
23165 if(s.le.srt0**2) then
23166 fdbel=0.
23167 else
23168 fdbel=2500.*exp(-(s-7.93)**2/0.003)
23169 1 +300.*exp(-(s-7.93)**2/0.1)+10.
23170 endif
23171 return
23172 end