1 c---------------------------------------------------------------------
3 c---------------------------------------------------------------------
5 c---------------------------------------------------------------------
10 common/cprt/nprtj,pprt(5,ntim),idprt(ntim),iorprt(ntim)
12 integer jcp(6,2),jcm(6,2)
13 dimension jorprt(ntim),p1(5)
15 call utpri('timann',ish,ishini,5)
26 pptl(3,nptl)=sqrt(en**2/4-2.61121e-7)
35 pptl(3,nptl)=-sqrt(en**2/4-2.61121e-7)
41 nptl=nptl+1 !virtual gamma
60 pprt(5,nprtj)=sqrt(q20)
67 if (2.*am.lt.en) nfla=i
73 al=1./real(137.035989d0)
75 ak=sqrt(2.)*gf*amz**2/(16*pi*al)
76 chi1=ak*s*(s-amz**2)/((s-amz**2)**2+dlz**2*amz**2)
77 chi2=ak**2*s**2/((s-amz**2)**2+dlz**2*amz**2)
82 vf=sign(.5,qf)-2.*qf*0.232
85 $ 2.*(qf**2-2.*qf*ve*vf*chi1
86 $ +(ae**2+ve**2)*(af**2+vf**2)*chi2)
87 $ + abs(-4*qf*ae*af*chi1+8*ae*ve*af*vf*chi2)
90 vf=sign(.5,qf)-2.*qf*0.232
93 $ 2.*(qf**2-2.*qf*ve*vf*chi1
94 $ +(ae**2+ve**2)*(af**2+vf**2)*chi2)
95 $ + abs(-4*qf*ae*af*chi1+8*ae*ve*af*vf*chi2)
97 100 iq1=1+INT(nfla*rangen())
100 vf=sign(.5,qf)-2.*qf*0.232
104 $ (1.+ct**2)*(qf**2-2.*qf*ve*vf*chi1
105 $ +(ae**2+ve**2)*(af**2+vf**2)*chi2)
106 $ + ct*(-4*qf*ae*af*chi1+8*ae*ve*af*vf*chi2)
107 if(rangen().gt.dsigma/max(dsmax1,dsmax2)) goto 100
111 if(rangen().lt.0.5)iq1=-iq1
127 jorprt(1)=0 !!color-connection, no origin!!
129 if(idprt(idaprt(1,1)).lt.0)jt=2
131 if(idaprt(1,i).ne.0) then
133 if(idprt(i).lt.0.and.
134 & ((idprt(idaprt(2,i)).eq.9.and.jt.eq.1).or.
135 & (idprt(idaprt(1,i)).eq.9.and.jt.eq.2)))then
137 elseif(idprt(i).gt.0.and.idprt(i).ne.9.and.
138 & ((idprt(idaprt(2,i)).eq.9.and.jt.eq.2).or.
139 & (idprt(idaprt(1,i)).eq.9.and.jt.eq.1)))then
141 elseif(idprt(i).eq.9.and.idprt(idaprt(1,i)).ne.9.and.
142 & ((idprt(idaprt(1,i)).lt.0.and.jt.eq.2).or.
143 & (idprt(idaprt(1,i)).gt.0.and.jt.eq.1)))then
146 jorprt(idaprt(3-js,i))=jorprt(i)
147 jorprt(i)=idaprt(js,i)
148 jorprt(idaprt(js,i))=idaprt(3-js,i)
155 if(idaprt(1,i) .eq. 0 ) then
156 write(ifch,*) idprt(i)
166 if(idaprt(1,i) .eq. 0) then
169 pptl(j,nptl)=pprt(j,i)
178 ifrptl(1,iptl)=iptl+1
183 do while (idptl(nk2).eq.9)
189 p1(i)=p1(i)+pptl(i,j)
192 p1(5)=sqrt(max(0.,p1(4)**2-p1(3)**2-p1(2)**2-p1(1)**2))
200 if(idptl(nk1).lt.0)ii=2
201 jcp(abs(idptl(nk1)),ii)=1
202 jcm(abs(idptl(nk2)),3-ii)=1
204 if(amm.gt.p1(5))goto 123
206 if(nk1.lt.nptl)goto 441
212 write(ifch,98) i,(pprt(j,i),j=1,5),idprt(i)
213 & ,iorprt(i),idaprt(1,i),idaprt(2,i),jorprt(i)
218 & write(ifch,99) i,(pprt(j,i),j=1,5),idprt(i)
224 99 format(i4,5g10.3,1i4)
225 98 format(i4,5g10.3,5i4)
227 call utprix('timann',ish,ishini,5)
231 c---------------------------------------------------------------------
232 subroutine timsh1(q20,en,idfla)
233 c---------------------------------------------------------------------
235 include 'epos.incsem'
237 parameter (ntim=1000)
238 common/cprt/nprtj,pprt(5,ntim),idprt(ntim),iorprt(ntim)
240 common/cprtx/nprtjx,pprtx(5,2)
247 pprt(5,nprtj)=sqrt(q20)
255 c---------------------------------------------------------------------
256 subroutine timsh2(q20,q21,en,idfla1,idfla2)
257 c---------------------------------------------------------------------
259 include 'epos.incsem'
261 parameter (ntim=1000)
262 common/cprt/nprtj,pprt(5,ntim),idprt(ntim),iorprt(ntim)
264 common/cprtx/nprtjx,pprtx(5,2)
272 pprt(5,nprtj)=sqrt(q20)
280 pprt(5,nprtj)=sqrt(q21)
288 pprtx(3,nprtjx)=en/2.
289 pprtx(4,nprtjx)=en/2.
294 pprtx(3,nprtjx)=-en/2.
295 pprtx(4,nprtjx)=en/2.
301 c---------------------------------------------------------------------
302 subroutine timsho(j1,j2)
303 c---------------------------------------------------------------------
307 include 'epos.incsem'
308 parameter (ntim=1000)
309 common/cprt/nprtj,pprt(5,ntim),idprt(ntim),iorprt(ntim)
311 dimension pz(ntim),id(2,ntim)
312 dimension ij(2),ee(2),amm2(-6:10)
315 call utpri('timsho',ish,ishini,5)
341 if(float(n10).gt.1e7)then
346 q2start=pprt(5,ij(ii))**2
348 if(ij(2).eq.j2.and.ii2.eq.2)E=pprt(4,ij(1))+pprt(4,ij(2))
351 zetamx=pprt(5,io)/pprt(4,io)/sqrt(pz(io)*(1.-pz(io)))
354 c call timdev(idfl,q2start,E,zetamx,idfla,idflb,qa2,z)
355 c......................................................................
358 PT2MIN=max(qcdlam*1.1,q2fin)
359 ALFM=LOG(PT2MIN/qcdlam)
361 write (ifch,*) '---------------------',ii
362 $ ,pprt(5,ij(1)) !,pprt(5,ij(2))
363 write(ifch,*) ' idfl,q2start,zetamx:',idfl,q2start,zetamx
365 if (q2.lt.4.*q2fin+2.*amm2(idfl) )then
367 write(ifch,'(a,i4,i4,2f15.8)') 'null:',0.
375 390 zc=.5*(1.-sqrt(max(0.000001,1.-4.*q2fin/q2)))
377 write(ifch,*) 'zc=',zc
380 FBR=6.*LOG((1.-ZC)/ZC)+nfla*(0.5-ZC)
382 FBR=(8./3.)*LOG((1.-ZC)/ZC)
390 q2=q2*exp(log(r)*B0*ALFM/FBR)
392 write(ifch,*) 'q^2=',q2
394 if (q2.lt.4.*q2fin+2.*amm2(idfl))then
397 write(ifch,'(a,i4,i4,2f15.8)') 'null:',0.
404 c.....select flavor and z-value .....................................
406 if(rangen()*FBR.lt.nfla*(0.5-ZC))then
407 ! .................g -> qqbar
408 Z=ZC+(1.-2.*ZC)*rangen()
409 IF(Z**2+(1.-Z)**2.LT.rangen()) GOTO 390
410 idfla=int(1.+rangen()*real(nfla))
412 else !..................g -> gg
413 Z=(1.-ZC)*(ZC/(1.-ZC))**rangen()
414 IF(rangen().GT.0.5) Z=1.-Z
415 IF((1.-Z*(1.-Z))**2.lt.rangen()) GOTO 390
420 Z=1.-(1.-ZC)*(ZC/(1.-ZC))**rangen() !!........q -> qg
421 IF(1.+Z**2.LT.2.*rangen()) GOTO 390
426 if(alfm/log(q2*z*(1.-z)/qcdlam).lt.rangen()) goto 390
428 if(ij(1).ne.j1.or.ij(2).eq.0)then
429 if(E.lt.sqrt(q2))goto 390
430 pzz=sqrt((E-sqrt(q2))*(E+sqrt(q2)))
431 pt2=(E**2*(z*(1.-z)*q2-z*amm2(idflb)-(1.-z)*amm2(idfla))
432 $ -.25*(amm2(idflb)-amm2(idfla)-q2)**2+q2*amm2(idfla))/pzz**2
435 write(ifch,*) 'z not good for pt2:',z,pt2
441 zeta = sqrt(q2)/E/sqrt(z*(1.-z))
443 if (zeta.gt.zetamx)then
445 write(ifch,*) zeta,' > ',zetamx,'zeta-Ablehnung'
451 c......................................................................
453 pprt(5,ij(ii))=sqrt(q2)
467 pprt(3,ij(1))=sqrt(E**2-pprt(5,ij(1))**2)
468 elseif(ij(1).eq.j1.and.ij(2).eq.j2)then
469 E=pprt(4,ij(1))+pprt(4,ij(2))
470 ee(1)=E*.5+(pprt(5,ij(1))**2-pprt(5,ij(2))**2)/2./E
474 if(ee(ii)-pprt(5,ij(ii)).lt.0.) then
476 write(ifch,*) 'goto 11'
479 if ( pprt(5,ij(1))**2-amm2(idprt(ij(1))).lt.
480 $ pprt(5,ij(2))**2-amm2(idprt(ij(2))) ) ii=2
483 c zc=.5*(1.-sqrt(1.-pprt(5,ij(ii))**2/ee(ii)**2))
484 c if(pz(ij(ii)).lt.zc.or.pz(ij(ii)).gt.1.-zc)then
486 c write(ifch,*) 'first branching rejected'
492 pzz=sqrt((ee(ii)-pprt(5,ij(ii)))*(ee(ii)+pprt(5,ij(ii))))
494 pt2=(ee(ii)**2*(z*(1.-z)*q2-z*amm2(id(2,ii))
495 $ -(1.-z)*amm2(id(1,ii)))
496 $ -.25*(amm2(id(2,ii))-amm2(id(1,ii))-q2)**2
497 $ +q2*amm2(id(1,ii)))/pzz**2
501 if(id(1,ii).ne.0.and.pt2.le.0.)then
503 write(ifch,*) 'first branching rejected for pt2',ii
504 $ ,z1,q2,ee(ii),pprt(5,ij(ii)),id(1,ii),id(2,ii)
513 write(ifch,*) 'z of first branching',z1
515 pprt(3,ij(1))= sqrt(max(0.,ee(1)**2-pprt(5,ij(1))**2))
516 pprt(3,ij(2))=-sqrt(max(0.,ee(2)**2-pprt(5,ij(2))**2))
526 aM=am2**2-am0**2-am1**2
527 pzz=sqrt((E-am0)*(E+am0))
528 pprt(3,ij(1))=.5*(aM+2.*z1*E**2)/pzz
529 pprt(3,ij(2))=pzz-pprt(3,ij(1))
530 pt2=(E**2*(z1*z2*am0**2-z1*am2**2-z2*am1**2)
531 $ -.25*aM**2+am0**2*am1**2)/pzz**2
533 write(ifch,*) 'pt2,pzz=',pt2,pzz,z1**2*E*pprt(5,io),z1,E
536 111 if(pt2.lt.0.) then
538 if ( pprt(5,ij(1))**2-amm2(idprt(ij(1))).lt.
539 $ pprt(5,ij(2))**2-amm2(idprt(ij(2))) ) ii=2
546 pprt(1,ij(1))=cos(alpha)*pt
547 pprt(2,ij(1))=sin(alpha)*pt
550 pprt(1,ij(2))=-cos(alpha)*pt
551 pprt(2,ij(2))=-sin(alpha)*pt
553 if(ij(1).ne.j1.and.(pprt(1,io).ne.0..or.pprt(2,io).ne.0.))then
555 call utrota(-1,pprt(1,io),pprt(2,io),pprt(3,io)
556 & ,pprt(1,ij(ii)),pprt(2,ij(ii)),pprt(3,ij(ii)))
559 if(ij(1).ne.j1.and.pprt(3,io).lt.0.)then
562 pprt(k,ij(ii)) = -pprt(k,ij(ii))
567 if(id(1,ii).ne.0)then
568 idprt(nprtj+1)=id(1,ii)
569 idprt(nprtj+2)=id(2,ii)
570 pprt(4,nprtj+1)=pz(ij(ii))*pprt(4,ij(ii))
571 pprt(5,nprtj+1)=pz(ij(ii))*pprt(5,ij(ii))
572 pprt(4,nprtj+2)=(1.-pz(ij(ii)))*pprt(4,ij(ii))
573 pprt(5,nprtj+2)=(1.-pz(ij(ii)))*pprt(5,ij(ii))
574 iorprt(nprtj+1)=ij(ii)
575 iorprt(nprtj+2)=ij(ii)
576 idaprt(1,ij(ii))=nprtj+1
577 idaprt(2,ij(ii))=nprtj+2
590 write(ifch,98) io,(pprt(j,io),j=1,5),pz(io)
594 write(ifch,99) ij(1),(pprt(j,ij(1)),j=1,5),pz(ij(1))
595 & ,idprt(ij(1)),'->',id(1,1),id(2,1)
596 if(ij(2).ne.0)write(ifch,99) ij(2),
597 & (pprt(j,ij(2)),j=1,5),pz(ij(2))
598 & ,idprt(ij(2)),'->',id(1,2),id(2,2)
602 98 format(i4,6g10.3,1i4)
603 99 format(i4,6g10.3,1i4,a,2i4)
606 if(ij(1).le.nn)ij(1)=nn-1
612 if(ij(1).le.nprtj)goto10
617 write(ifch,'(i4,1x,5g10.4,2i4,a,2i4)')
618 & i,(pprt(j,i),j=1,5),idprt(i)
619 & ,iorprt(i),' -->',idaprt(1,i),idaprt(2,i)
623 9999 call utprix('timsho',ish,ishini,5)