1 c reshuffled from sem, sto, sha
3 c contains DIS, and unused 3P stuff
9 c###########################################################################
10 c###########################################################################
11 c###########################################################################
12 c###########################################################################
16 c###########################################################################
17 c###########################################################################
18 c###########################################################################
19 c###########################################################################
30 c-----------------------------------------------------------------------
31 subroutine lepexp(rxbj,rqsq)
32 c-----------------------------------------------------------------------
33 c generates x_bjorken and q**2 according to an experimental
34 c distribution ( given in array xq(nxbj,nqsq) ).
35 c-----------------------------------------------------------------------
36 parameter (nxbj=10,nqsq=10)
37 parameter (xbjmin=0.,qsqmin=4.)
38 parameter (xbjwid=0.025, qsqwid=4.)
39 dimension xq(nxbj,nqsq),vxq(nxbj*nqsq)
40 equivalence (xq(1,1),vxq(1))
43 & 1304.02, 366.40, 19.84, 10.79, 6.42,
44 & 4.54, 4.15, 3.38, 2.03, 1.56,
45 & 241.63, 1637.26, 427.36, 164.51, 73.72,
46 & 43.07, 20.73, 12.78, 9.34, 5.83,
47 & 0.01, 724.66, 563.79, 275.08, 176.13,
48 & 106.44, 85.82, 54.52, 37.12, 28.65,
49 & 0.01, 202.40, 491.10, 245.13, 157.07,
50 & 104.43, 61.05, 49.42, 37.84, 26.79,
51 & 0.01, 3.77, 316.38, 226.92, 133.45,
52 & 90.30, 63.67, 48.42, 35.73, 28.04/
53 data (vxq(i),i=51,100)/
54 & 0.01, 0.01, 153.74, 213.09, 114.14,
55 & 76.26, 60.02, 43.15, 43.47, 25.60,
56 & 0.01, 0.01, 39.31, 185.74, 108.56,
57 & 88.40, 47.29, 39.35, 31.80, 22.91,
58 & 0.01, 0.01, 0.01, 104.61, 107.01,
59 & 66.24, 45.34, 37.45, 33.44, 23.78,
60 & 0.01, 0.01, 0.01, 56.58, 99.39,
61 & 67.78, 43.28, 35.98, 34.63, 18.31,
62 & 0.01, 0.01, 0.01, 13.56, 76.25,
63 & 64.30, 42.80, 28.56, 21.19, 20.75 /
74 2 vxq(i)=vxq(i)+vxq(i-1)
81 call utloc(vxq,n,r,iloc)
82 if(iloc.ge.n) iloc=iloc-1
87 if(iloc.gt.0) dxint=vxq(iloc+1)-vxq(iloc)
88 dxbj=xbjwid*abs(r-vxq(iloc+1))/dxint
90 rxbj=xbjmin+xbjwid*float(i-1)+dxbj
91 rqsq=qsqmin+qsqwid*float(j-1)+dy
95 c-----------------------------------------------------------------------
96 subroutine fremny(wp1,wm1,pnx,pny,sm,ic1,ic2,ic3,ic4,coord,ey0)
97 c-----------------------------------------------------------------------
98 c treats remnant from deep inelastic process;
99 c-----------------------------------------------------------------------
101 include 'epos.incsem'
102 dimension coord(6),ic(2),ep(4),ey(3),ey0(3),ep3(4)
103 double precision ept(4),ept1(4)
105 call utpri('fremny',ish,ishini,5)
106 if(ish.ge.5)write(ifch,*)'writing remnant'
107 if(ish.ge.5)write(ifch,*)
108 *'wp1,wm1,pnx,pny,sm,ic1,ic2,ic3,ic4,coord,ey0:'
109 if(ish.ge.5)write(ifch,*)
110 *wp1,wm1,pnx,pny,sm,ic1,ic2,ic3,ic4,coord,ey0
112 if(ic3.eq.0.and.ic4.eq.0)then
121 call pstrans(ep3,ey0,-1)
126 pptl(5,nptl)=sqrt(sm)
127 idptl(nptl)=idtra(ic,0,0,3)
132 xorptl(i,nptl)=coord(i)
134 tivptl(1,nptl)=coord(5)
135 tivptl(2,nptl)=coord(6)
139 write(ifch,*)'proj: nptl, mass**2,id',nptl,sm,idptl(nptl)
141 *pptl(1,nptl),pptl(2,nptl),pptl(3,nptl),pptl(4,nptl)
149 idptl(nptl)=idtra(ic,0,0,3)
154 xorptl(i,nptl)=coord(i)
156 tivptl(1,nptl)=coord(5)
157 tivptl(2,nptl)=coord(6)
162 idptl(nptl+1)=idtra(ic,0,0,3)
167 xorptl(i,nptl+1)=coord(i)
169 tivptl(1,nptl+1)=coord(5)
170 tivptl(2,nptl+1)=coord(6)
177 call pstrans(ep3,ey0,-1) !boost to hadronic c.m.s.
187 call psdeftr(sm,ept1,ey)
192 call pstrans(ep,ey,1)
198 pptl(i,nptl+1)=ept(i)-pptl(i,nptl)
204 if(ish.ge.5)write(ifch,*)'fremny: final nptl',nptl
205 call utprix('fremny',ish,ishini,5)
209 c-----------------------------------------------------------------------
210 subroutine psadis(iret)
211 c-----------------------------------------------------------------------
212 c psadis - DIS interaction
213 c-----------------------------------------------------------------------
214 double precision ept(4),ept1(4),xx,wpt(2),eprt,pl,plprt,psutz
216 dimension ep3(4),ey(3),ey0(3),bx(6),
217 *qmin(2),iqc(2),nqc(2),ncc(2,2),gdv(2),gds(2),dfp(4)
218 parameter (mjstr=20000)
219 common /psar29/ eqj(4,mjstr),iqj(mjstr),ncj(2,mjstr),nj
220 common /psar30/ iorj(mjstr),ityj(mjstr),bxj(6,mjstr)
221 double precision pgampr,rgampr
222 common/cgampr/pgampr(5),rgampr(4)
223 parameter (ntim=1000)
224 common/cprt/nprtj,pprt(5,ntim),idprt(ntim),iorprt(ntim)
228 include 'epos.incsem'
230 call utpri('psadis',ish,ishini,3)
231 if(ish.ge.3)write (ifch,*)'engy,elepti,iolept:'
232 if(ish.ge.3)write (ifch,*)engy,elepti,iolept
249 engypr=wtot/4./elepti
250 gdv01=psdh(ydmax*wtot,qdmin,iclpro,0)
251 gdv02=psdh(ydmax*wtot,qdmin,iclpro,1)
252 gds01=psdsh(ydmax*wtot,qdmin,iclpro,dqsh,0)
253 gds02=psdsh(ydmax*wtot,qdmin,iclpro,dqsh1,1)
254 gb0=(1.+(1.-ydmax)**2)*(gdv01+gds01)
255 * +2.*(1.-ydmax)*(gdv02+gds02)
258 qq=qdmin*(qdmax/qdmin)**rangen()
259 yd=ydmin*(ydmax/ydmin)**rangen()
261 if(ish.ge.4)write (ifch,*)'qq,wd,yd,ydmin,ydmax:'
262 if(ish.ge.4)write (ifch,*)qq,wd,yd,ydmin,ydmax
265 gdv(1)=psdh(wd,qq,iclpro,0)
266 gdv(2)=psdh(wd,qq,iclpro,1)
267 gds(1)=psdsh(wd,qq,iclpro,dqsh,0)
268 gds(2)=psdsh(wd,qq,iclpro,dqsh1,1)
269 gbtr=(1.+(1.-yd)**2)*(gdv(1)+gds(1))
270 gblong=2.*(1.-yd)*(gdv(2)+gds(2))
272 gb=(gbtr+gblong)/gb0*.7
274 if(gb.gt.1.)write(ifmt,*)'gb,qq,yd,wd',gb,qq,yd,wd
275 write (ifch,*)'gb,gdv,gds,gdv0,gds0,yd:'
276 write (ifch,*)gb,gdv,gds,gdv01,gds01,
279 if(rangen().gt.gb)goto 2
281 long=int(rangen()+gblong/(gbtr+gblong))
282 elepto=qq/elepti/4.+elepti*(1.-yd)
283 costhet=1.-qq/elepti/elepto/2.
285 if(theta/pi*180..lt.themin)goto 2
286 if(theta/pi*180..gt.themax)goto 2
287 if(elepto.lt.elomin)goto 2
288 if(ish.ge.3)write (ifch,*)'theta,elepto,elepti,iclpro:'
289 if(ish.ge.3)write (ifch,*)theta/pi*180.,elepto,elepti,iclpro
294 rgampr(1)=-elepto*sin(theta)*bcos
295 rgampr(2)=-elepto*sin(theta)*bsin
296 rgampr(3)=elepti-elepto*costhet
297 rgampr(4)=elepti-elepto
301 pgampr(3)=rgampr(3)-engypr
302 pgampr(4)=rgampr(4)+engypr
303 sm2=pgampr(4)*pgampr(4)
304 * -pgampr(1)*pgampr(1)-pgampr(2)*pgampr(2)-pgampr(3)*pgampr(3)
306 call utlob2(1,pgampr(1),pgampr(2),pgampr(3),pgampr(4),pgampr(5)
307 * ,rgampr(1),rgampr(2),rgampr(3),rgampr(4),40)
308 if(ish.ge.4)write (ifch,*)'rgampr:',rgampr
310 elseif(iolept.lt.0)then
311 21 call lepexp(xbjevt,qsq)
314 if(qq.lt.qdmin.or.qq.gt.qdmax)goto21
316 gdv(1)=psdh(wd,qq,iclpro,0)
317 gdv(2)=psdh(wd,qq,iclpro,1)
318 gds(1)=psdsh(wd,qq,iclpro,dqsh,0)
319 gds(2)=psdsh(wd,qq,iclpro,dqsh1,1)
321 gbtr=(1.+(1.-yd)**2)*(gdv(1)+gds(1))
322 gblong=2.*(1.-yd)*(gdv(2)+gds(2))
323 gblong=0. !????????????
324 long=int(rangen()+gblong/(gbtr+gblong))
328 if(ish.ge.3)write (ifch,*)'qq,xbj,wd,gdv,gds,dqsh:'
329 if(ish.ge.3)write (ifch,*)qq,xbjevt,wd,gdv,gds,dqsh
334 wp0=sqrt(qq) !breit frame
336 ey0(1)=egyevt/wp0 !boost to the hadronic c.m.s.
344 sdmin=qq/(1.-sqrt(q2ini/qq))
347 sdmin=4.*max(q2min,qcmass**2)+qq !minimal mass for born
349 sqmin=1.1*(xmm+sqrt(xmm**2-qq*(sdmin-qq-4.*q2ini)))
350 * /2./(1.-4.*q2ini/(sdmin-qq))
352 if(long.eq.1.and.wd.lt.1.001*sdmin)goto 1
356 call fremnu(ammin,proja,projb,proja,projb,
357 *icp1,icp2,icp3,icp4)
361 if((rangen().lt.gdv(long+1)/(gdv(long+1)+gds(long+1)).or.
362 *egyevt.lt.1.0001*(ammin+sqrt(sdmin-qq))).and.
363 *(long.eq.0.or.wd.gt.sqmin))then
366 tu=psdfh4(xd,q2min,0.,iclpro,1)/2.25
367 td=psdfh4(xd,q2min,0.,iclpro,2)/9.
368 gdv0=(tu+td)*4.*pi**2*alfe/qq
369 * *sngl(psuds(qq,1)/psuds(q2min,1))
370 if(ish.ge.4)write (ifch,*)'gdv0:',gdv0,sdmin
372 if(rangen().lt.gdv0/gdv(1).or.wd.le.1.0001*sdmin)then !?????
373 if(ish.ge.3)write (ifch,*)'no cascade,gdv0,gdv',gdv0,gdv
374 if(rangen().lt.tu/(tu+td))then
382 if(ish.ge.8)write (ifch,*)'before call timsh2: ',
383 * 'qq,egyevt,iq1',qq,egyevt,iq1
384 call timsh2(qq,0.,egyevt,iq1,-iq1)
395 call pstrans(ep3,ey0,1)
403 call psreti(nqc,jq,1,ey0,s0xh,c0xh,s0h,c0h)
408 call psdint(wd,qq,sds0,sdn0,sdb0,sdt0,sdr0,1,long)
409 if(ish.ge.3)write (ifch,*)'wd,qq,sds0,sdn0,sdb0,sdt0,sdr0:'
410 if(ish.ge.3)write (ifch,*)wd,qq,sds0,sdn0,sdb0,sdt0
411 gb10=(sdn0+sdt0)*(1.-qq/wd)
415 xd=(xdmin-qq/wd)/((xdmin-qq/wd)/(1.-qq/wd))
417 call psdint(xd*wd,qq,sds,sdn,sdb,sdt,sdr,1,long)
418 if(ish.ge.3)write (ifch,*)'wdhard,qq,sds,sdn,sdb,sdt:'
419 if(ish.ge.3)write (ifch,*)xd*wd,qq,sds,sdn,sdb,sdt
420 tu=psdfh4(xd,q2min,0.,iclpro,1)
421 td=psdfh4(xd,q2min,0.,iclpro,2)
422 gb1=(sdn*(tu/2.25+td/9.)+sdt*(tu+td)/4.5)
423 * *(1.-qq/wd/xd)/gb10
424 if(gb1.gt.1..and.ish.ge.1)write(ifmt,*)'gb1,xd,wd,qq,sdt0,sdt',
425 * gb1,xd,wd,qq,sdt0,sdt
426 if(ish.ge.6)write (ifch,*)'gb1,xd,wd,qq,sdt0,sdt:'
427 if(ish.ge.6)write (ifch,*)gb1,xd,wd,qq,sdt0,sdt
428 if(rangen().gt.gb1)goto 3
433 dtu=tu*(sdn/2.25+sdt/4.5)
434 dtd=td*(sdn/9.+sdt/4.5)
435 if(rangen().lt.dtu/(dtu+dtd))then
452 eqj(1,nj)=.5*(wm0-wmi)
458 if(ish.ge.3)write (ifch,*)'wp0,wm0,wpi,wmi,iqc(2),eqj'
459 if(ish.ge.3)write (ifch,*)wp0,wm0,wpi,wmi,iqc(2),eqj(2,nj)
463 xpmax=((egyevt-ammin)**2+qq)/wd
464 iq1=int(3.*rangen()+1.)*(2.*int(.5+rangen())-1.)
467 if(long.eq.0.and.aks.lt.dqsh/gds(1).and.
468 * egyevt.gt.ammin+sqrt(s00))then
469 if(ish.ge.3)write (ifch,*)'no cascade for q_s',
481 call psdint(xpmax*wd,qq,sds0,sdn0,sdb0,sdt0,sdr0,0,long)
482 call psdint(xpmax*wd,qq,sdsq0,sdnq0,sdbq0,sdtq0,sdrq0,1,long)
483 if(ish.ge.3)write (ifch,*)
484 * 'xpmax*wd,qq,sds0,sdn0,sdb0,sdt0,sdr0:'
485 if(ish.ge.3)write (ifch,*)
486 * xpmax*wd,qq,sds0,sdn0,sdb0,sdt0,sdr0
487 gb10=sdt0*fzeroGluZZ(0.,iclpro)+(sdnq0+sdtq0)
488 * *fzeroSeaZZ(0.,iclpro)
491 4 xd=xdmin*(xpmax/xdmin)**rangen()
493 call psdint(xd*wd,qq,sds,sdn,sdb,sdt,sdr,0,long)
494 call psdint(xd*wd,qq,sdsq,sdnq,sdbq,sdtq,sdrq,1,long)
495 if(ish.ge.3)write (ifch,*)'xd*wd,qq,sds,sdn,sdb,sdt,sdr:'
496 if(ish.ge.3)write (ifch,*)xd*wd,qq,sds,sdn,sdb,sdt,sdr
497 wwg=sdt*fzeroGluZZ(xd,iclpro)
498 wwq=(sdnq+sdtq)*fzeroSeaZZ(xd,iclpro)
499 gb12=(wwq+wwg)/gb10*(xpmax/xd)**dels
500 if(gb12.gt.1..and.ish.ge.1)write(ifmt,*)
501 * 'gb12,xpmax*wd,xd*wd,sdt0,sdnq0+sdtq0,sdt,sdnq+sdtq',
502 * gb12,xpmax*wd,xd*wd,sdt0,sdnq0+sdtq0,sdt,sdnq+sdtq,
503 * wwq,wwg,(xpmax/xd)**dels,gb10
504 if(ish.ge.5)write (ifch,*)'gb12,xd,xpmax,wwq,wwg:'
505 if(ish.ge.5)write (ifch,*)gb12,xd,xpmax,wwq,wwg
506 if(rangen().gt.gb12)goto 4
510 gb20=(1.-xd/xpmax)**betpom*sdt*(1.-glusea)+
511 * EsoftQZero(xd/xpmax)*(sdnq+sdtq)*glusea
513 gb20=EsoftQZero(xd/xpmax)
515 if(1.+2.*(-alpqua)+dels.ge.0.)then
516 xpminl=(1.-xpmax)**(alplea(iclpro)+1.)
517 xpmaxl=(1.-xpmin)**(alplea(iclpro)+1.)
519 5 xp=1.-(xpminl+(xpmaxl-xpminl)*rangen())**
520 * (1./(alplea(iclpro)+1.))
522 gb2=((1.-xd/xp)**betpom*sdt*(1.-glusea)+
523 * EsoftQZero(xd/xp)*(sdnq+sdtq)*glusea)*(xp/xpmax)**
524 * (1.+2.*(-alpqua)+dels)/gb20
526 gb2=EsoftQZero(xd/xp)*(xp/xpmax)**(1.+2.*(-alpqua)+dels)/gb20
528 if(gb2.gt.1..and.ish.ge.1)then
529 write(ifmt,*)'gb2,xp:',gb2,xp
532 if(rangen().gt.gb2)goto 5
534 xpmaxl=xpmax**(2.+2.*(-alpqua)+dels)
535 xpminl=xpmin**(2.+2.*(-alpqua)+dels)
537 6 xp=(xpminl+(xpmaxl-xpminl)*rangen())**
538 * (1./(2.+2.*(-alpqua)+dels))
540 gb21=((1.-xd/xp)**betpom*sdt*(1.-glusea)+
541 * EsoftQZero(xd/xp)*(sdnq+sdtq)*glusea)*
542 * ((1.-xp)/(1.-xd))**alplea(iclpro)/gb20
544 gb21=EsoftQZero(xd/xp)*((1.-xp)/(1.-xd))**alplea(iclpro)/gb20
546 if(gb21.gt.1..and.ish.ge.1)then
547 write(ifmt,*)'gb21,xp:',gb21,xp
550 if(rangen().gt.gb21)goto 6
555 ammax=(egyevt-sqrt(wwsh))**2
556 22 call fremnx(ammax,ammin,sm,icp3,icp4,iret)
557 if(iret.ne.0.and.ish.ge.1)write(ifmt,*)'iret.ne.0!'
565 if(ish.ge.5)write(ifch,*)'wp0,wm0,wpn,wmn,wpp,wmp:'
566 if(ish.ge.5)write(ifch,*)wp0,wm0,wpn,wmn,wpp,wmp
568 if(jcasc.eq.0.or.rangen().lt.wwq/(wwg+wwq).
569 * and.xd*wd.gt.sqmin.and.wwsh.gt.
570 * (sqrt(wwh)+sqrt(s00))**2)then
572 zgmax=1./(1.+wp0/xd/wd/(wpp-wwh/wmp))
573 if(zgmin.gt.zgmax)goto 22
574 23 zg=zgmin-rangen()*(zgmin-zgmax)
575 if(rangen().gt.zg**dels*((1.-xd/xp/zg)/ (1.-xd/xp))**betpom)
577 xg=xd/zg !w- share for the struck quark
578 wmq=wd/wp0*(xg-xd) !w- for its counterpart
579 wpq=s00/wmq !1. gev^2 / wmq
584 if(ish.ge.5)write (ifch,*)'wpq,wmq,wpp,wmp,sxx:'
585 if(ish.ge.5)write (ifch,*)wpq,wmq,wpp,wmp,sxx
588 if(ish.ge.6)write (ifch,*)'before call timsh2: qq,sxx,iq1',
590 call timsh2(qq,0.,sqrt(sxx),iq1,-iq1)
595 call psdeftr(sxx,ept,ey)
601 call pstrans(ep3,ey,1)
610 if(ish.ge.3)write (ifch,*)'wwh,wwsh,sxx,wpp,wmp:',
611 * wwh,wwsh,sxx,wpp,wmp
616 24 call fremny(wpn,wmn,pnx,pny,sm,icp1,icp2,icp3,icp4,bx,ey0)
618 if((-alpqua).eq.-1.)stop'dis does not work for 1/x'
620 z=.5*aks**(1./(1.+(-alpqua)))
621 if(z.lt.1.e-5.or.rangen().gt.(2.*(1.-z))**(-alpqua))goto 25
622 if(rangen().gt..5)z=1.-z
628 iqj(nj)=-int(2.*rangen()+1.)
635 eqj(2,nj+1)=-eqj(1,nj+1)
650 if(iabs(iq1).eq.3)then
655 eqj(1,nj)=.5*(wpq+wmq)
656 eqj(2,nj)=.5*(wpq-wmq)
683 call psreti(nqc,jq,1,ey,s0xh,c0xh,s0h,c0h)
686 gdres=(sdtq-sdsq)/4.5
701 if(ish.ge.3)write (ifch,*)'wpn,wmn,wpi,wmi,wm1,wm2,nj'
702 if(ish.ge.3)write (ifch,*)wpn,wmn,wpi,wmi,wm1,wm2,nj
706 qmin(2)=q2min !effective momentum cutoff below
707 s2min=max(4.*qq,16.*q2min) !mass cutoff for born scattering
709 if(rangen().gt.gdres/(gdres+gdsin+gdnon).or.
710 *si.lt.(s2min+qq))goto 12
712 c---------------------------------------
713 c hard pomeron (resolved photon)
714 c---------------------------------------
715 if(ish.ge.3)write(ifmt,*)'resolved,gdrga,gdres',gdrga,gdres
718 if(rangen().gt.gdrga/gdres.and.si.gt.1.1*s2min+qq)then
719 if(ish.ge.3)write(ifmt,*)'dir-res,si,qq',si,qq
727 wpt(1)=wpi !lc+ for the current jet emission
728 wpt(2)=si/wpi !lc- for the current jet emission
730 qqmin=max(q2min,s2min/(si/qq-1.))
731 qqmax=min(si/2.,si-s2min)
735 if(qqmin.ge.qqmax.or.xmin.ge.xmax)stop'min>max'
736 gb0=psjti(qmin(1),qq,si-qq,7,iqc(2),1)*psfap(1.d0,0,1)
744 if(ish.ge.3)write(ifmt,*)'res,si,qq',si,qq
745 qmin(1)=q2min !effective momentum cutoff above
748 dft0=psdfh4(zmin,q2min,qq,0,0)*psjti(q2min,qq,si,0,iqc(2),1)
749 * +(psdfh4(zmin,q2min,qq,0,1)+psdfh4(zmin,q2min,qq,0,2)+
750 * psdfh4(zmin,q2min,qq,0,3))*psjti(q2min,qq,si,7,iqc(2),1)
755 dfp(i)=psdfh4(z,q2min,qq,0,i-1)
757 dfp(1)=dfp(1)*psjti(q2min,qq,z*si,0,iqc(2),1)
760 sjq=psjti(q2min,qq,z*si,1,0,1)
766 sjqqp=psjti(q2min,qq,z*si,1,2,1)
768 if(iabs(iqc(2)).eq.i-1)then
769 dfp(i)=dfp(i)*(psjti(q2min,qq,z*si,1,1,1)+
770 * psjti(q2min,qq,z*si,1,-1,1))/2.
778 if(rangen().gt.dfptot/dft0)goto 7
783 if(aks.lt.dfp(1))then
789 iqj(nj)=-int(2.*rangen()+1.)
796 eqj(1,nj+1)=.5*(wpq-wpq1)
797 eqj(2,nj+1)=eqj(1,nj+1)
803 if(aks.lt.dfp(1)+dfp(2))then
805 elseif(aks.lt.dfp(1)+dfp(2)+dfp(3))then
810 iqc(1)=iqc(1)*(2*int(2.*rangen())-1)
833 c---------------------------------------
834 pt2=ept(3)**2+ept(4)**2
837 wpt(1)=ept(1)+ept(2) !lc+ for the current jet emissi
838 wpt(2)=ept(1)-ept(2) !lc- for the current jet emissi
840 s2min=max(qmin(1),16.*qmin(2)) !mass cutoff for born
841 s2min=max(s2min,4.*qq)
844 wwmin=2.*s2min-2.*pt*sqrt(q2ini)
845 wwmin=(wwmin+sqrt(wwmin**2+4.*pt2*(s2min-q2ini)))
846 * /(1.-q2ini/s2min)/2.
847 sj=psjti(qmin(1),qq,si,iqc(1),iqc(2),1) !total jet
848 sj2=psjti1(q2min,qmin(1),qq,si,iqc(2),iqc(1),1)
849 if(ish.ge.3)write(ifch,*)'resolved - si,wwmin,s2min,sj,sj2:'
850 if(ish.ge.3)write(ifch,*)si,wwmin,s2min,sj,sj2
851 if(sj.eq.0.)stop'sj=0'
852 if(rangen().gt.sj2/sj.and.si.gt.1.1*wwmin)goto 26
855 sj=psjti1(qmin(2),qmin(1),qq,si,iqc(2),iqc(1),1)
856 sjb=psbint(qmin(1),qmin(2),qq,si,iqc(1),iqc(2),1) !born parton-parton
857 wwmin=17./16*s2min-2.*pt*sqrt(q2ini)
858 wwmin=(wwmin+sqrt(wwmin**2+pt2*(s2min/4.-4.*q2ini)))
859 */(1.-16.*q2ini/s2min)/2.
860 if(rangen().lt.sjb/sj.or.si.lt.1.1*wwmin)goto 10
863 wpt(jj)=wpt(jj)-pt2/wpt(3-jj)
866 discr=(si+2.*pt*sqrt(q2ini))**2-4.*q2ini*(2.*si+pt2)
867 if(discr.lt.0..and.ish.ge.1)write(ifmt,*)'discr,si,pt,wwmin',
870 qqmax=(si+2.*pt*sqrt(q2ini)+discr)/2./(2.+pt2/si)
872 discr=(si+2.*pt*sqrt(q2ini))**2-4.*q2ini*(17.*si+pt2)
873 if(discr.lt.0..and.ish.ge.1)write(ifmt,*)'discr,si,pt,wwmin',
876 qqmax=(si+2.*pt*sqrt(q2ini)+discr)/2./(17.+pt2/si)
878 qqmin=2.*q2ini*si/(si+2.*pt*sqrt(q2ini)+discr)
879 if(jj.eq.1.and.s2min.gt.qqmin.or.
880 *jj.eq.2.and.s2min.gt.16.*qqmin)then
881 xmm=.5*(si-s2min+2.*pt*sqrt(q2ini))
882 discr=xmm**2-q2ini*(si+pt2)
883 if(discr.lt.0..and.ish.ge.1)write(ifmt,*)'discr1,si,pt,wwmin',
885 qqmin=q2ini*si/(xmm+sqrt(discr))
890 if(ish.ge.6)write(ifch,*)'qqmin,qqmax,xmin,xmax',
891 *qqmin,qqmax,xmin,xmax
892 if(qqmin.lt.qmin(jj))then
894 xmi=max(1.-((pt*sqrt(qqmin)+sqrt(pt2*qqmin+
895 * si*(si-s2min-qqmin*(1.+pt2/si))))/si)**2,
896 * (s2min+qqmin*(1.+pt2/si)-2.*pt*sqrt(qqmin))/si)
898 if(xmin.le.0.)xmin=(s2min+qqmin*(1.+pt2/si))/si
899 if(ish.ge.6)write(ifch,*)'qqmin,qmin(jj),xmin,s2min',
900 * qqmin,qmin(jj),xmin,s2min
905 if(xm0.gt.xmax.or.xm0.lt.xmin)then
909 s2max=xm0*si-qm0*(1.+pt2/si)+2.*pt*sqrt(q2ini) !new ladder mass squared
913 sj0=psjti(qm0,qq,s2max,0,iqc(2),1)*psfap(xx,iqc(1),0)+
914 * psjti(qm0,qq,s2max,7,iqc(2),1)*psfap(xx,iqc(1),1)
915 gb0=sj0/log(q2ini/qcdlam)*sngl(psuds(qm0,iqc(1)))*qm0*2.
917 sj0=psjti1(qm0,qmin(1),qq,s2max,0,iqc(1),1)*psfap(xx,iqc(2),0)
918 * +psjti1(qm0,qmin(1),qq,s2max,7,iqc(1),1)*psfap(xx,iqc(2),1)
919 gb0=sj0/log(q2ini/qcdlam)*sngl(psuds(qm0,iqc(2)))*qm0*2.
922 write(ifmt,*)'gb0.le.0. si,qq,pt2:',si,qq,pt2
927 gb0=gb0*xm0**(1.-delh)
929 gb0=gb0*(1.-xm0)*2.**delh
933 xmin1=xmin**delh !xmin, xmax are put into powe
934 xmax1=min(xmax,.5)**delh !to simulate x value below
937 elseif(xmax.lt..5)then
940 djl=1./(1.+((2.*xmin)**delh-1.)/delh/
947 if(ntry.ge.10000)then
948 print *,"ntry.ge.10000"
953 if(rangen().gt.djl)then !lc momentum share in the cur
954 x=(xmin1+rangen()*(xmax1-xmin1))**(1./delh)
956 x=1.-(1.-xmin2)*((1.-xmax)/(1.-xmin2))**rangen()
958 q2=qqmin/(1.+rangen()*(qqmin/qqmax-1.))
960 if(ish.ge.6)write(ifch,*)'jj,q2,x,qt2',jj,q2,x,qt2
961 if(qt2.lt.q2ini)goto 9
963 x=xmin+rangen()*(xmax-xmin)
964 q2=qqmin*(qqmax/qqmin)**rangen()
966 if(ish.ge.6)write(ifch,*)'jj,q2,x,qt2',jj,q2,x,qt2
972 c ep3 is now 4-vector for s-channel gluon produced in current ladder run
975 ptnew=(ept(3)-ep3(3))**2+(ept(4)-ep3(4))**2
979 s2min2=max(s2min,16.*q2)
983 s2=x*si-q2*(1.+pt2/si)-ptnew+pt2+qt2 !new ladder mass squared
984 if(s2.lt.s2min2)goto 9 !rejection in case of too low mass
988 sj1=psjti(q2,qq,s2,0,iqc(2),1)
990 sj2=psjti(q2,qq,s2,iqc(1),iqc(2),1)
991 elseif(iqc(2).eq.0)then
992 sj2=psjti(q2,qq,s2,1,0,1)
994 sj2=psjti(q2,qq,s2,1,1,1)/6.+
995 * psjti(q2,qq,s2,-1,1,1)/6.+
996 * psjti(q2,qq,s2,2,1,1)/1.5
999 sj1=psjti1(q2,qmin(1),qq,s2,0,iqc(1),1)
1001 sj2=psjti1(q2,qmin(1),qq,s2,iqc(2),iqc(1),1)
1002 elseif(iqc(1).eq.0)then
1003 sj2=psjti1(q2,qmin(1),qq,s2,1,0,1)
1005 sj2=psjti1(q2,qmin(1),qq,s2,1,1,1)/6.+
1006 * psjti1(q2,qmin(1),qq,s2,-1,1,1)/6.+
1007 * psjti1(q2,qmin(1),qq,s2,2,1,1)/1.5
1010 c gb7 is the rejection function for x and q**2 simulation
1011 gb7=(sj1*psfap(xx,iqc(jj),0)+sj2*psfap(xx,iqc(jj),1))
1012 * /log(qt2/qcdlam)*sngl(psuds(q2,iqc(jj)))*q2/gb0
1015 gb7=gb7*x**(1.-delh)
1017 gb7=gb7*(1.-x)*2.**delh
1020 s2=x*si-q2 !new ladder mass squared
1021 if(s2.lt.s2min2)goto 9 !rejection in case of too low mass
1026 sj2=psjti(q2,qq,s2,1,0,1)
1028 sj2=psjti(q2,qq,s2,1,1,1)/naflav/2.+
1029 * psjti(q2,qq,s2,-1,1,1)/naflav/2.+
1030 * psjti(q2,qq,s2,2,1,1)*(1.-1./naflav)
1032 gb7=sj2*psfap(xx,0,1)/gb0 !????*(1.-x*qq/q2)
1034 if(gb7.gt.1..or.gb7.lt.0..and.ish.ge.1)write(ifmt,*)'gb7,q2,x,gb0'
1036 if(rangen().gt.gb7)goto 9
1038 if(ish.ge.6)write(ifch,*)'res: jj,iqc,ncc:',
1039 *jj,iqc(jj),ncc(1,jj),ncc(2,jj)
1044 if(rangen().lt.sj1/(sj1+sj2))then
1045 if(iqc(jj).eq.0)then
1047 jq=int(1.5+rangen())
1051 if(iqc(jj).gt.0)then
1061 if(iqc(jj).ne.0)then
1064 if(iqc(jj).gt.0)then
1072 jq=int(1.5+rangen())
1073 iq1=int(naflav*rangen()+1.)*(3-2*jq)
1080 jq=int(1.5+rangen())
1081 iq1=int(naflav*rangen()+1.)*(3-2*jq)
1086 *.5d0*((1.d0-x)*wpt(jj)+qt2/(1.d0-x)/wpt(jj)))
1087 pl=((1.d0-x)*wpt(jj)-eprt)*(3-2*jj)
1093 27 call timsh1(q2,sngl(eprt),iq2ini)
1095 plprt=eprt**2-amprt-qt2
1096 if(plprt.lt.-1d-6)goto 27
1098 ep3(2)=dsqrt(max(0.d0,plprt))
1099 if(pl.lt.0.d0)ep3(2)=-ep3(2)
1104 ept1(i)=ept(i)-ep3(i)
1106 call psdefrot(ep3,s0xh,c0xh,s0h,c0h)
1108 write(ifch,*)'q2,amprt,qt2',q2,amprt,qt2
1109 write(ifch,*)'eprt,plprt',eprt,plprt
1110 write(ifch,*)'ep3',ep3
1111 write(ifch,*)'ept',ept
1112 write(ifch,*)'ept1',ept1
1116 if(s2new.gt.s2min2)then
1118 gb=psjti(q2,qq,s2new,iqnew,iqc(2),1)
1120 gb=psjti1(q2,qmin(1),qq,s2new,iqnew,iqc(1),1)
1128 if(gb.gt.1.)write (ifch,*)'gb,s2new,s2,q2,iqnew',
1129 * gb,s2new,s2,q2,iqnew
1131 if(rangen().gt.gb)goto 9
1137 call psreti(nqc,jq,1,ey,s0xh,c0xh,s0h,c0h)
1142 ncc(jq,jj)=ncc(1,jj)
1147 ncc(1,jj)=ncc(3-jq,jj)
1153 if(ish.ge.6)write(ifch,*)'qt2,amprt,ncc:',
1154 *qt2,amprt,ncc(1,jj),ncc(2,jj)
1159 c c.m. energy squared, minimal 4-momentum transfer square and gluon 4-v
1160 c for the next ladder run
1163 if(ish.ge.3)write (ifch,*)'res: new jet - iqj,ncj,ep3,ept',
1164 *iqj(nj),ncj(1,nj),ncj(2,nj),ep3,ept
1166 goto 8 !next simulation step will be considered
1169 if(ish.ge.3)write(ifch,*)'res: iqc,si,ept:',iqc,si,ept
1171 c highest virtuality subprocess in the ladder
1172 c---------------------------------------
1173 qqs=max(qmin(1)/4.,4.*qmin(2))
1175 call psabor(si,qqs,iqc,ncc,ept,1,nptlh,bx)
1179 c---------------------------------------
1180 c hard pomeron (direct photon)
1181 c---------------------------------------
1186 if(ish.ge.3)write (ifch,*)'direct photon - ept,si,qq:',ept,si,qq
1191 c---------------------------------------
1192 pt2=ept(3)**2+ept(4)**2
1194 wpt(1)=ept(1)+ept(2)
1197 gdbor=psdbin(qmin(2),qq,si,iqc(2),long)
1198 gdtot=psdsin(qmin(2),qq,si,iqc(2),long)
1200 if(ish.ge.8)write (ifch,*)'qmin(2),qq,si',qmin(2),qq,si
1201 gdnon=psdnsi(qmin(2),qq,si,long)
1202 if(iabs(iqc(2)).eq.1.or.iabs(iqc(2)).eq.4)then
1204 gdtot=gdnon/2.25+gdtot/4.5
1207 gdtot=gdnon/9.+gdtot/4.5
1213 if(long.ne.0.or.qmin(2).ge.qq)then
1214 s2min=qq+4.*max(qmin(2),qcmass**2)
1215 wwmin=(5.*s2min-qq)/4.-2.*pt*sqrt(q2ini)
1216 wwmin=(wwmin+sqrt(wwmin**2-(qq-pt2)*(s2min-qq-4.*q2ini)))
1217 * /2./(1.-4.*q2ini/(s2min-qq))
1219 s2min=qq/(1.-sqrt(q2ini/qq))
1220 wwmin=s2min+qq-2.*pt*sqrt(q2ini)
1221 wwmin=(wwmin+sqrt(wwmin**2-4.*(qq-pt2)*(qq-q2ini)))
1225 if(ish.ge.3)write(ifch,*)'si,s2min,wwmin,qmin(2),gdtot,gdbor:'
1226 if(ish.ge.3)write(ifch,*)si,s2min,wwmin,qmin(2),gdtot,gdbor
1228 if((rangen().lt.gdbor/gdtot.or.si.lt.1.1*wwmin).and.
1229 *(long.eq.0.and.qmin(2).lt.qq.or.iqc(2).eq.0))goto 15
1230 if(si.lt.1.1*wwmin)stop'si<1.1*wwmin'
1235 xmm=si+2.*sqrt(q2ini)*pt-qq
1236 discr=xmm**2-4.*q2ini*(5.*si-qq+pt2)
1237 if(discr.lt.0.)goto 29
1239 qqmax=(xmm+discr)/2./(5.-(qq-pt2)/si)
1240 qqmin=2.*q2ini*si/(xmm+discr)
1243 if(4.*qqmin.lt.s2min-qq.or.long.eq.0.and.
1245 xmm=si-s2min+2.*sqrt(q2ini)*pt
1246 qqmin=2.*q2ini*si/(xmm+sqrt(xmm**2-4.*q2ini*(si-qq+pt2)))
1250 if(qqmin.lt.qmin(2))then
1252 xmi=max(1.-((pt*sqrt(qqmin)+sqrt(pt2*qqmin+
1253 * si*(si-s2min-qqmin*(1.-(qq-pt2)/si))))/si)**2,
1254 * (s2min+qqmin*(1.-(qq-pt2)/si)-2.*pt*sqrt(qqmin))/si)
1257 if(xmin.le.qq/si)xmin=1.001*qq/si
1259 if(long.eq.0.and.qmin(2).lt.qq)qqmax=max(qqmax,qq)
1262 if(ish.ge.6)write(ifch,*)'qqmax,qqmin,xmax,xmin:',
1263 *qqmax,qqmin,xmax,xmin
1264 if(qqmax.lt.qqmin)stop'qqmax<qqmin'
1268 s2max=si*xm0-qm0*(1.-qq/si)
1270 sds=psdsin(qm0,qq,s2max,0,long)/4.5
1271 sdv=psdsin(qm0,qq,s2max,1,long)/4.5
1273 sdn=psdnsi(qm0,qq,s2max,long)
1276 elseif(iabs(iqc(2)).eq.1.or.iabs(iqc(2)).eq.4)then
1284 sj0=sds*psfap(xx,iqc(2),0)+sdv*psfap(xx,iqc(2),1)
1285 gb0=sj0/log(q2ini/qcdlam)*sngl(psuds(qm0,iqc(2)))*qm0*5.
1287 write(ifmt,*)'gb0.le.0. si,qq,pt2:',si,qq,pt2
1293 gb0=gb0*(xm0-qq/si)/(1.-2.*qq/si)
1302 elseif(xmax.lt..5)then
1305 djl=1./(1.-(1.-2.*qq/si)*log((.5-qq/si)/(xmin-qq/si))/
1306 * log(2.*(1.-xmax)))
1310 if(rangen().gt.djl)then !lc momentum share in the cur
1311 x=(xmin-qq/si)*((xmax1-qq/si)/(xmin-qq/si))**rangen()+qq/si
1313 x=1.-(1.-xmin2)*((1.-xmax)/(1.-xmin2))**rangen()
1316 q2=qqmin/(1.+rangen()*(qqmin/qqmax-1.))
1319 if(ish.ge.9)write(ifch,*)'q2,x,qt2,qq,qqmin,qqmax:',
1320 *q2,x,qt2,qq,qqmin,qqmax
1321 if(qt2.lt.q2ini)goto 14 !p_t check
1323 if(long.ne.0.or.q2.ge.qq)then
1324 s2min2=max(4.*q2+qq,s2min)
1329 call pscs(bcos,bsin)
1330 c ep3 is now 4-vector for s-channel gluon produced in current ladder run
1333 ptnew=(ept(3)-ep3(3))**2+(ept(4)-ep3(4))**2
1335 s2=x*si-ptnew+pt2-q2*(x-(qq-pt2)/si)
1336 if(s2.lt.s2min2)goto 14 !check of the kinematics
1337 sds=psdsin(q2,qq,s2,0,long)/4.5
1338 sdv0=psdsin(q2,qq,s2,1,long)/4.5
1339 if(ish.ge.8)write (ifch,*)'q2,qq,s2',q2,qq,s2
1340 sdn0=psdnsi(q2,qq,s2,long)
1345 if(iabs(iqc(2)).eq.1.or.iabs(iqc(2)).eq.4)then
1354 sj1=sds*psfap(xx,iqc(2),0)
1355 sj2=sdv*psfap(xx,iqc(2),1)
1357 c gb7 is the rejection function for x and q**2 simulation.
1358 gb7=(sj1+sj2)/log(qt2/qcdlam)*sngl(psuds(q2,iqc(2)))/gb0*q2
1360 gb7=gb7*(x-qq/si)/(1.-2.*qq/si)
1365 if(gb7.gt.1..and.ish.ge.1)write(ifmt,*)'gb7,q2,x,qt2,iqc(2),'
1366 * ,'gb0,sj1,sj2',gb7,q2,x,qt2,iqc(2),gb0,sj1,sj2
1367 if(ish.ge.3)write (ifch,*)'gb7,q2,x,qt2,iqc(2),gb0,sj1,sj2,long',
1368 * gb7,q2,x,qt2,iqc(2),gb0,sj1,sj2,long
1369 if(rangen().gt.gb7)goto 14
1372 if(ish.ge.6)write(ifch,*)'iqc,ncc:',iqc(2),ncc(1,2),ncc(2,2)
1374 nqc(2)=0 !emitted parton color connections
1375 if(rangen().lt.sj1/(sj1+sj2).or.(long.ne.0.or.q2.ge.qq).and.
1376 *s2.lt.1.5*s2min2)then
1379 jq=int(1.5+rangen())
1406 if(naflav.eq.4)tu=tu*2.
1408 if(rangen().lt.tu/(tu+2.*td))then
1412 iq1=1+3*int(.5+rangen())
1415 iq1=int(2.5+rangen())
1417 jq=int(1.5+rangen())
1426 *.5d0*((1.d0-x)*wpt(2)+qt2/(1.d0-x)/wpt(2)))
1427 pl=eprt-(1.d0-x)*wpt(2)
1433 28 call timsh1(q2,sngl(eprt),iq2ini)
1435 plprt=eprt**2-amprt-qt2
1436 if(plprt.lt.-1d-6)goto 28
1438 ep3(2)=dsqrt(max(0.d0,plprt))
1439 if(pl.lt.0.d0)ep3(2)=-ep3(2)
1444 ept1(i)=ept(i)-ep3(i)
1446 call psdefrot(ep3,s0xh,c0xh,s0h,c0h)
1447 call psrotat(ep3,s0xh,c0xh,s0h,c0h)
1448 s2new=psnorm(ept1)+qq
1450 if((long.ne.0.or.q2.ge.qq).and.iqcnew.ne.0)then
1451 xmm=(5.*s2min2-qq)/4.-2.*sqrt(ptnew*q2ini)
1452 s2min2=1.1*(xmm+sqrt(xmm**2-(qq-ptnew)*
1453 * (s2min2-qq-4.*q2ini)))/2./(1.-4.*q2ini/(s2min2-qq))
1455 if(s2new.gt.s2min2)then
1456 sds1=psdsin(q2,qq,s2new,iqcnew,long)/4.5
1460 if(ish.ge.8)write (ifch,*)'q2,qq,s2new',q2,qq,s2new
1461 sdn1=psdnsi(q2,qq,s2new,long)
1462 if(iabs(iqcnew).eq.1.or.iabs(iqcnew).eq.4)then
1469 gb=.9999*(sds1+sdn1)/sdv
1471 if(ish.ge.3.and.gb.gt.1..and.ish.ge.1)write(ifmt,*)'gbs2',gb
1472 if(rangen().gt.gb)goto 14
1477 call psreti(nqc,jq,1,ey,s0xh,c0xh,s0h,c0h)
1480 if(jt.eq.1)then !current parton color connections
1488 ncc(1,2)=ncc(3-jq,2)
1495 if(ish.ge.3)write (ifch,*)'new jet - iqj,ncj,ep3,ept',
1496 *iqj(nj),ncj(1,nj),ncj(2,nj),ep3,ept
1497 c c.m. energy squared, minimal 4-momentum transfer square and gluon 4-v
1498 c for the next ladder run
1501 goto 13 !next simulation step will be considered
1504 if(ish.ge.3)write(ifch,*)'iqc,si,qmin(2),nj:',
1505 *iqc(2),si,qmin(2),nj
1506 c highest virtuality subprocess in the ladder
1507 c---------------------------------------
1511 if(iqc(2).eq.0.and.si.gt.qq+4.*max(qcmass**2,qmin(2)))then
1512 qminn=max(qcmass**2,qmin(2))
1513 tmin1=2.*qminn/(1.-qq/si)/(1.+sqrt(1.-4.*qminn/(si-qq)))
1516 fb01=psdbom(si,si/2.,si/2.,qq,long)
1517 if(long.eq.0)fb01=fb01*si/2.
1518 gb01=fb01/log(qminn/qcdlam)*sngl(psuds(qminn,iqc(2)))/si**2
1522 if(long.eq.0.and.qmin(2).lt.qq)then
1525 * 2.*q2ini/(1.-qq/si)/(1.+sqrt(1.-4.*q2ini/(si-qq))))
1526 ze=qq/si+tmin/si*(1.-qq/si)
1529 if(qt2.lt..999*q2ini.and.ish.ge.1)write(ifmt,*)'bor-dir:qt20'
1531 gb0=gb01+psfap(xx,iqc(2),1)/log(qt2/qcdlam)
1532 * *sngl(psuds(tmin,iqc(2))/psuds(tmin,1)*psuds(qq,1))
1533 * /si*(1.-tmin*qq/si**2/ze)
1537 call psdeftr(si-qq,ept,ey)
1539 if(ish.ge.6)write(ifch,*)'tmin,tmax,qq,si-qq,gb0:'
1540 if(ish.ge.6)write(ifch,*)tmin,tmax,qq,si-qq,psnorm(ept),gb0
1542 c------------------------------------------------
1545 t=tmin*(tmax/tmin)**rangen()
1547 t=tmin+(tmax-tmin)*rangen()
1551 ze=qq/si+t/si*(1.-qq/si)
1553 if(t.le.qq.and.long.eq.0)then
1555 gb=psfap(xx,iqc(2),1)/log(qt2/qcdlam)*sngl(psuds(t,iqc(2))
1556 * /psuds(t,1)*psuds(qq,1))/si*(1.-t*qq/si**2/ze)/gb0
1562 if(iqc(2).eq.0..and.si.gt.qq+4.*max(qcmass**2,qmin(2)).
1563 *and.qt2.gt.qcmass**2.and.t.le.si/2..and.t.ge.tmin1)then
1564 fb1=psdbom(si,t,u,qq,long)
1565 if(long.eq.0)fb1=fb1*t
1566 gb1=fb1/log(qt2/qcdlam)*sngl(psuds(qt2,iqc(2)))/si**2/gb0
1567 c gb1=0. !???????????????????????
1572 if(ish.ge.6)write(ifch,*)'gb,t,iqc(2),si,qq,qmin(2),long:',
1573 *gb,t,iqc(2),si,qq,qmin(2),long
1575 if(gb.gt.1.)write(*,*)'gb,gb1,gb0,gb01',
1576 * ',t,iqc(2),si,qq,qmin(2),long:',
1577 * gb,gb1,gb0,gb01,fb1,fb01,t,iqc(2),si,qq,qmin(2),long
1580 if(rangen().gt.gb)goto 16
1581 if(ish.ge.3)write(ifch,*)'born:t,qt2:',t,qt2
1585 jq=int(1.5+rangen())
1587 if(rangen().gt.gb1/gb)then
1588 iq1=(1+int(3.*rangen()))*(3-2*jq)
1592 iq2=-iq1 !quark flavors
1606 call pscs(bcos,bsin)
1607 z=sngl(psutz(dble(si-qq),dble(qt2),dble(qt2)))
1608 if(t.lt..5*si)z=1.-z
1611 if(iabs(iq1).eq.4)qt2=qt2-qcmass**2
1617 call psdefrot(ep3,s0xh,c0xh,s0h,c0h)
1628 if(ish.ge.5)write (ifch,*)'jq,jt,iq2ini1,iq2ini2',
1629 *jq,jt,iq2ini1,iq2ini2
1631 if(t.lt.qq.and.iabs(iq1).ne.4)then
1638 call timsh2(qq1,qq2,sqrt(si-qq),iq2ini1,iq2ini2)
1640 call psreti(nqc,jq,nfprt,ey,s0xh,c0xh,s0h,c0h)
1651 call psreti(nqc,jq2,nfprt,ey,s0xh,c0xh,s0h,c0h)
1654 if(ish.ge.3)write (ifch,*)'nj',nj
1663 call pstrans(ep3,ey0,-1) !boost to the c.m. system
1674 call psjarr(jfl) !kinky strings formation
1675 if(ish.ge.3)write (ifch,*)'jfl',jfl
1686 ep3(l)=ep3(l)-pptl(l,i)
1689 if(ish.ge.3)write(ifch,*)'energy-momentum balance:'
1690 if(ish.ge.3)write(ifch,*)ep3
1691 if(abs(ep3(4)).gt.3.e-2)write(*,*)'energy-momentum balance:',ep3
1693 9999 call utprix('psadis',ish,ishini,3)
1697 c-----------------------------------------------------------------------
1699 c-----------------------------------------------------------------------
1701 c structure functions calculation
1703 double precision xx,xmax
1704 dimension evs(21,21,135)
1705 common /psar2/ edmax,epmax
1706 common /psar31/ evk0(21,21,54)
1707 common /psar32/ evk(21,21,135)
1708 include 'epos.incsem'
1710 inquire(file=fnie(1:nfnie),exist=lcalc)
1713 write(ifmt,'(3a)')'read from ',fnie(1:nfnie),' ...'
1714 open(1,file=fnie(1:nfnie),status='old')
1715 read (1,*)qcdlam0,q2min0,q2ini0,naflav0,epmax0
1716 if(qcdlam0.ne.qcdlam)write(ifmt,'(a)')'iniev: wrong qcdlam'
1717 if(q2min0 .ne.q2min )write(ifmt,'(a)')'iniev: wrong q2min'
1718 if(q2ini0 .ne.q2ini )write(ifmt,'(a)')'iniev: wrong q2ini'
1719 if(naflav0.ne.naflav)write(ifmt,'(a)')'iniev: wrong naflav'
1720 if(epmax0 .ne.epmax )write(ifmt,'(a)')'iniev: wrong epmax'
1721 if(qcdlam0.ne.qcdlam.or.q2min0.ne.q2min.or.q2ini0.ne.q2ini
1722 * .or.naflav0.ne.naflav.or.epmax0.ne.epmax)then
1723 write(6,'(//a//)')' iniev has to be reinitialized!!!'
1732 write(ifmt,'(a)')'iniev does not exist -> calculate tables ...'
1733 xmax=1.d0-2.d0*q2ini/epmax
1736 xx=.1d0*exp(l-13.d0)
1740 xx=1.d0-.1d0*(10.d0*(1.d0-xmax))**((l-21)/6.)
1743 qmin=max(1.d0*q2min,q2ini/(1.-xx))
1745 qq=qmin*(.5*epmax/qmin)**((i-1)/20.)
1747 qj=qmin*(qq/qmin)**((j-1)/20.)
1748 if(l.eq.27.or.i.eq.1.or.j.eq.21)then
1752 evk(i,j,l+27*(k-1))=0.
1756 evk0(i,j,l+27*(k-1))=log(psev0(qj,qq,xx,k))
1767 2 format(5x,i2,'-th order contribution')
1772 xx=.1d0*exp(l-13.d0)
1776 xx=1.d0-.1d0*(10.d0*(1.d0-xmax))**((l-21)/6.)
1779 qmin=max(1.d0*q2min,q2ini/(1.d0-xx))
1781 qq=qmin*(.5*epmax/qmin)**((i-1)/20.)
1783 qj=qmin*(qq/qmin)**((j-1)/20.)
1787 ev=psev(qj,qq,xx,m,k,n)
1788 ev0=psevi0(qj,qq,xx,m,k)
1789 evs(i,j,l+27*(m-1)+54*(k-1))=log((ev+ev0)/psfap(xx,m-1,k-1)
1790 * /log(log(qq*(1.d0-xx)/qcdlam)/log(qj*(1.d0-xx)/qcdlam))*4.5)
1792 evs(i,j,l+108)=log((psev(qj,qq,xx,m,k,n)+
1793 * psevi0(qj,qq,xx,2,2))/psfap(xx,2,2)
1794 * /log(log(qq*(1.d0-xx)/qcdlam)/log(qj*(1.d0-xx)/qcdlam))*4.5)
1807 if(n.eq.2.or.evs(i,j,l+27*(k-1)).ne.0..and.
1808 * abs(1.-evk(i,j,l+27*(k-1))/evs(i,j,l+27*(k-1))).gt.1.e-2)then
1810 evk(i,j,l+27*(k-1))=evs(i,j,l+27*(k-1))
1819 write(ifmt,'(a)')'write to iniev ...'
1820 open(1,file=fnie(1:nfnie),status='unknown')
1821 write (1,*)qcdlam,q2min,q2ini,naflav,epmax
1829 c------------------------------------------------------------------------
1830 function psdbom(s,t,u,qq,long)
1831 c-----------------------------------------------------------------------
1832 c psdbom - integrand for DIS c-quark cross-sections (matrix element squared)
1833 c s - total c.m. energy squared for the scattering (for n=2: s+qq),
1834 c t - invariant variable for the scattering |(p1-p3)**2|
1835 c u - invariant variable for the scattering |(p1-p4)**2|
1836 c qq - photon virtuality
1837 c long: 0 - contr. to (F2-F_L), 1 - contr. to F_L
1838 c-----------------------------------------------------------------------
1839 include 'epos.incsem'
1840 if(long.eq.0)then !F2-F_L
1841 psdbom=(2.*(t/u+u/t)*(qq**2+(s-qq)**2)/s**2+
1842 * 4.*(qcmass*s/t/u)**2*(qq-2.*qcmass**2)+
1843 * 8.*qcmass**2/t/u*(s-2.*qq)) *2. !=4.5/2.25
1845 psdbom=16.*qq*((s-qq)/s**2-qcmass**2/t/u) *2. !=4.5/2.25
1850 c------------------------------------------------------------------------
1851 function psdbin(q1,qq,s,m1,long)
1852 c-----------------------------------------------------------------------
1853 c psdbin - DIS born cross-section
1854 c q1 - virtuality cutoff for current end of the ladder
1855 c qq - photon virtuality
1856 c s=2(pq) - s_true + qq
1857 c s2min - mass cutoff for born scattering
1858 c m1 - incoming parton type (0 - g, 1,2 - q)
1859 c-----------------------------------------------------------------------
1861 include 'epos.incsem'
1866 s2min=4.*max(q1,q2mass)+qq
1867 if(m1.eq.0.and.s.gt.s2min.and.(idisco.eq.0.or.idisco.eq.2))then
1869 qtq=4.*max(q2mass,q1)/(s-qq)
1871 tmin=.5*s*qtq/(1.+sqrt(1.-qtq))
1875 psdbin=psdbin+psdbor(q1,qq,s,long)*(1./tmin-1./tmax)
1878 if(long.eq.0.and.q1.lt.qq.and.s.gt.qq/(1.-q2ini/qq)
1879 *.and.(idisco.eq.0.or.idisco.eq.1))then
1882 psdbin=psdbin+psevi0(q1,qq,xx,m,2)*4.*pi**2*alfe/s
1887 c------------------------------------------------------------------------
1888 function psdbor(q1,qq,s,long)
1889 c-----------------------------------------------------------------------
1890 c psdbor - DIS born cross-section
1891 c q1 - virtuality cutoff for current end of the ladder
1892 c qq - photon virtuality
1893 c s=2(pq) - s_true + qq
1894 c s2min - mass cutoff for born scattering
1895 c-----------------------------------------------------------------------
1896 common /ar3/ x1(7),a1(7)
1898 include 'epos.incsem'
1899 double precision psuds
1903 qtq=4.*max(q2mass,q1)/(s-qq)
1908 tmin=.5*s*qtq/(1.+sqrt(1.-qtq))
1912 if(tmax.lt.tmin.and.ish.ge.1)write(ifmt,*)'s,q1,qq,tmin,tmax',
1918 t=2.*tmin/(1.+tmin/tmax+(2*m-3)*x1(i)*(1.-tmin/tmax))
1922 if(qt.lt..999*max(q2mass,q1).and.ish.ge.1)
1923 & write(ifmt,*)'psdbor:qt,q1',qt,q1
1924 fb=psdbom(s,t,u,qq,long)*t**2
1925 ft=ft+a1(i)*fb*pssalf(qt/qcdlam)*sngl(psuds(qt,j))
1928 psdbor=ft/s**2*pi**2*alfe/sngl(psuds(q1,j))
1932 c------------------------------------------------------------------------
1933 subroutine psdint(s,qq,sds,sdn,sdb,sdt,sdr,m1,long)
1934 c-----------------------------------------------------------------------
1935 c psdint - dis cross-sections interpolation - for minimal
1936 c effective momentum cutoff in the ladder
1937 c s - total c.m. energy squared for the ladder,
1938 c qq - photon virtuality,
1939 c sds - dis singlet cross-section,
1940 c sdn - dis nonsinglet cross-section,
1941 c sdb - dis born cross-section,
1942 c sdt - dis singlet+resolved cross-section,
1943 c m1 - parton type at current end of the ladder (0 - g, 1,2 - q)
1944 c-----------------------------------------------------------------------
1946 dimension wk(3),wj(3)
1947 common /psar2/ edmax,epmax
1948 common /psar27/ csds(21,26,4),csdt(21,26,2),csdr(21,26,2)
1949 include 'epos.incsem'
1956 sdb=psdbin(q2min,qq,s,m1,long)
1959 qlj=log(qq/q2min)*2.+1.
1964 wj(3)=wj(2)*(wj(2)-1.)*.5
1965 wj(1)=1.-wj(2)+wj(3)
1966 wj(2)=wj(2)-2.*wj(3)
1968 s2min=4.*max(q2min,qcmass**2)+qq
1969 if(m1.ne.0)s2min=s2min/(1.-4.*q2ini/(s2min-qq))
1970 if(s.le.s2min.or.idisco.ne.0.and.idisco.ne.2)goto 1
1972 qtq=4.*max(q2min,qcmass**2)/(s-qq)
1974 tmin=.5*s*qtq/(1.+sqrt(1.-qtq))
1980 sl=log(s/s2min)/log(edmax/s2min)*25.+1.
1985 wk(3)=wk(2)*(wk(2)-1.)*.5
1986 wk(1)=1.-wk(2)+wk(3)
1987 wk(2)=wk(2)-2.*wk(3)
1992 sds=sds+csds(j+j1-1,k2,m+2*long)*wj(j1)*wk(k1)
1996 sds=exp(sds)*(1./tmin-1./tmax)
2002 s2min=max(4.*qq,16.*q2min)+qq
2003 if(s.le.s2min.or.long.ne.0.or.idisco.ne.0.and.idisco.ne.3)then
2008 sl=log(s/s2min)/log(edmax/s2min)*25.+1.
2013 wk(3)=wk(2)*(wk(2)-1.)*.5
2014 wk(1)=1.-wk(2)+wk(3)
2015 wk(2)=wk(2)-2.*wk(3)
2020 sdr=sdr+csdr(j+j1-1,k2,m)*wj(j1)*wk(k1)
2021 sdt=sdt+csdt(j+j1-1,k2,m)*wj(j1)*wk(k1)
2026 sdt=max(sds,sds+sdt)
2030 if(long.eq.0.and.q2min.lt.qq.and.s.gt.qq/(1.-q2ini/qq)
2031 *.and.(idisco.eq.0.or.idisco.eq.1))then
2033 dsi=psevi(q2min,qq,xx,m,2)*4.*pi**2*alfe/s
2038 dnsi=psevi(q2min,qq,xx,3,2)*4.*pi**2*alfe/s
2040 sds=sds+max(dsi-dnsi,0.)
2041 sdt=sdt+max(dsi-dnsi,0.)
2054 c-----------------------------------------------------------------------
2055 function psdnsi(q1,qq,s,long)
2056 c-----------------------------------------------------------------------
2057 c psdnsi - DIS nonsinglet cross-section interpolation
2058 c q1 - effective momentum cutoff for current end of the ladder,
2059 c qq - photon virtuality,
2060 c s - total c.m. energy squared for the ladder,
2061 c-----------------------------------------------------------------------
2063 include 'epos.incsem'
2067 if(long.eq.0.and.q1.lt.qq.and.s.gt.qq/(1.-q2ini/qq))then
2069 psdnsi=psdnsi+max(0.,psevi(q1,qq,xx,3,2)*4.*pi**2*alfe/s)
2074 c-----------------------------------------------------------------------
2075 function psdrga(qq,s,s2min,j)
2076 c-----------------------------------------------------------------------
2077 c psdrga - DIS resolved cross-section (photon sf)
2078 c qq - photon virtuality
2079 c s - total c.m. energy squared for the process
2080 c s2min - mass cutoff for born scattering
2081 c j - parton type at current end of the ladder (0 - g, 1,2 etc. - q)
2082 c-----------------------------------------------------------------------
2083 common /ar3/ x1(7),a1(7)
2084 include 'epos.incsem'
2087 if(s.le.s2min)return
2092 z=xmin**(.5+(m-1.5)*x1(i))
2093 tu=psdfh4(z,q2min,qq,0,1)
2094 td=psdfh4(z,q2min,qq,0,2)
2095 ts=psdfh4(z,q2min,qq,0,3)
2096 tg=psdfh4(z,q2min,qq,0,0)
2098 sj=tg*psjti(q2min,qq,z*s,0,j,1)+
2099 * (tu+td+ts)*psjti(q2min,qq,z*s,1,j,1)
2101 sj=tg*psjti(q2min,qq,z*s,0,j,1)+
2102 * (tu+td)*(psjti(q2min,qq,z*s,1,1,1)/4.+
2103 * psjti(q2min,qq,z*s,-1,1,1)/4.+
2104 * psjti(q2min,qq,z*s,2,1,1)/2.)+
2105 * ts*psjti(q2min,qq,z*s,2,1,1)
2107 psdrga=psdrga+a1(i)*sj
2110 psdrga=-psdrga*log(xmin)*alfe/2. *4.5 !mean e^2 is taken out
2114 c-----------------------------------------------------------------------
2115 function psdres(qq,s,s2min,j)
2116 c-----------------------------------------------------------------------
2117 c psdres - DIS resolved photon cross-section
2118 c qq - photon virtuality
2119 c s - total w squared for the ladder (s+qq)
2120 c s2min - mass cutoff for born scattering
2121 c j - parton type at current end of the ladder (0 - g, 1,2 etc. - q)
2122 c-----------------------------------------------------------------------
2124 common /ar3/ x1(7),a1(7)
2126 include 'epos.incsem'
2129 if(s.le.s2min+qq)return
2131 qmin=max(q2min,s2min/(s/qq-1.))
2132 qmax=min(s-s2min,s/2.)
2134 c numerical integration over transverse momentum squared;
2135 c gaussian integration is used
2138 qi=2.*qmin/(1.+qmin/qmax+(2*m-3)*x1(i)*(1.-qmin/qmax))
2141 zmin=(max(qi,s2min)+qi)/s
2144 if(zmax.gt.zmin)then
2147 z=.5*(zmax+zmin+(2*m1-3)*x1(i1)*(zmax-zmin))
2151 sj=psfap(xx,0,1)*psjti(qi,qq,s2,1,j,1)
2153 sj=psfap(xx,0,1)*(psjti(qi,qq,s2,1,1,1)/6.+
2154 * psjti(qi,qq,s2,-1,1,1)/6.+
2155 * psjti(qi,qq,s2,2,1,1)/1.5)
2157 fsj=fsj+a1(i1)*sj*qi !????????(qi-z*qq)
2161 elseif(ish.ge.1)then
2162 write(ifmt,*)'psdres:zmax,zmin',zmax,zmin
2164 psdres=psdres+a1(i)*fsj
2167 psdres=psdres*(1./qmin-1./qmax)*alfe*.75/pi !alpha_s -> 6 alpha_e
2171 c------------------------------------------------------------------------
2172 function psds(q1,qq,s,j,long)
2173 c-----------------------------------------------------------------------
2174 c psds - DIS singlet cross-section
2175 c q1 - virtuality cutoff for current end of the ladder
2176 c qq - photon virtuality
2177 c s=2(pq) - s_true + qq
2178 c s2min - mass cutoff for born scattering
2179 c-----------------------------------------------------------------------
2180 double precision xxe,xmax,xmin,xmax1,xmin1
2181 common /ar3/ x1(7),a1(7)
2183 include 'epos.incsem'
2187 s2min=4.*max(q1,q2mass)
2188 smin=(s2min+qq)/(1.-4.*q2ini/s2min)
2189 if(s.le.1.001*smin)return
2191 xmax=.5d0*(1.d0+qq/s+dsqrt((1.d0-qq/s)**2-16.d0*q2ini/s))
2192 xmin=max(1.d0+qq/s-xmax,1.d0*(s2min+qq)/s)
2193 if(xmin.gt.xmax.and.ish.ge.1)write(ifmt,*)'xmin,xmax,q1,qq,s,smin'
2194 *,xmin,xmax,q1,qq,s,smin
2198 if(xmax.gt..9d0)then
2199 xmin1=max(xmin,.9d0)
2202 xxe=1.d0-(1.d0-xmax)*((1.d0-xmin1)/(1.d0-xmax))**
2203 * (.5d0-x1(i)*(m-1.5))
2207 qtmin=max(1.d0*max(q2mass,q1),q2ini/(1.d0-xxe))
2208 qtq=4.*qtmin/(sh-qq)
2210 tmin=.5*sh*qtq/(1.+sqrt(1.-qtq))
2212 if(tmin.gt.tmax.and.ish.ge.1)write(ifmt,*)'psds:tmin,tmax'
2218 t=.5*(tmin+tmax+(2*m1-3)*x1(i1)*(tmin-tmax))
2220 qt=t*u/sh*(1.-qq/sh)
2221 if(qt.lt.qtmin.and.ish.ge.1)write(ifmt,*)'psds:qt,qtmin'
2224 fb=psdsj(q1,xxe,sh,qt,t,u,qq,j,long)
2225 ft=ft+a1(i1)*fb*pssalf(qt/qcdlam)
2229 fx1=fx1+a1(i)*ft*(1.-xx)/sh**2
2232 fx1=fx1*log((1.d0-xmin1)/(1.d0-xmax))
2235 if(xmin.lt..9d0)then
2236 xmax1=min(xmax,.9d0)
2239 xxe=xmin*(xmax1/xmin)**(.5-x1(i)*(m-1.5))
2243 qtmin=max(1.d0*max(q2mass,q1),q2ini/(1.d0-xxe))
2244 qtq=4.*qtmin/(sh-qq)
2246 tmin=.5*sh*qtq/(1.+sqrt(1.-qtq))
2248 if(tmin.gt.tmax.and.ish.ge.1)write(ifmt,*)'psds:tmin,tmax'
2254 t=(.5*(tmin+tmax+(2*m1-3)*x1(i1)*
2257 qt=t*u/sh*(1.-qq/sh)
2258 if(qt.lt.qtmin.and.ish.ge.1)write(ifmt,*)'psds:qt,qtmin'
2261 fb=psdsj(q1,xxe,sh,qt,t,u,qq,j,long)
2262 ft=ft+a1(i1)*fb*pssalf(qt/qcdlam)
2266 fx2=fx2+a1(i)*ft*xx/sh**2
2269 fx2=fx2*log(xmax1/xmin)
2271 psds=(fx1+fx2)*pi**2*alfe
2275 c-----------------------------------------------------------------------
2276 function psdsj(q1,xx,s,qt,t,u,qq,j,long)
2277 c-----------------------------------------------------------------------
2278 c psdsj - integrand for dis singlet cross-section
2279 c q1 - virtuality cutoff for current end of the ladder
2280 c xx - lc momentum ratio between initial (j) and final (l) partons
2281 c s - c.m. energy squared for the born scattering,
2282 c t - invariant variable for the born scattering |(p1-p3)**2|
2283 c u - invariant variable for the born scattering |(p1-p4)**2|
2284 c qq - photon virtuality
2285 c j - initial parton at the end of the ladder (0 - g, 1,2 - q)
2286 c-----------------------------------------------------------------------
2288 include 'epos.incsem'
2290 fb=psdbom(s,t,u,qq,long)
2291 psdsj=psevi(q1,qt,xx,min(1,iabs(j))+1,1)*fb
2295 c------------------------------------------------------------------------
2296 function psdsin(q1,qq,s,m1,long)
2297 c-----------------------------------------------------------------------
2298 c psdsin - DIS singlet cross-section interpolation
2299 c q1 - effective momentum cutoff for current end of the ladder,
2300 c qq - photon virtuality,
2301 c s - total c.m. energy squared for the ladder,
2302 c m1 - parton type at current end of the ladder (0 - g, 1,2 - q)
2303 c-----------------------------------------------------------------------
2305 dimension wi(3),wj(3),wk(3)
2306 common /psar2/ edmax,epmax
2307 common /psar25/ csdsi(21,21,104)
2308 include 'epos.incsem'
2315 s2min=4.*max(q2min,q2mass)+qq
2316 sdmin=4.*max(q1,q2mass)+qq
2318 s2min=s2min/(1.-4.*q2ini/(s2min-qq))
2319 sdmin=sdmin/(1.-4.*q2ini/(sdmin-qq))
2321 c if(s.le.1.e8*sdmin)goto 2 !????????????????
2322 if(s.le.sdmin)goto 2
2326 if(m1.ne.0)qmax=(s-qq+sqrt((s-qq)**2-16.*s*q2ini))/8.
2327 qtq=4.*max(q2mass,q1)/(s-qq)
2329 tmin=.5*s*qtq/(1.+sqrt(1.-qtq))
2335 qlj=log(qq/q2min)*2.+1.
2340 wj(3)=wj(2)*(wj(2)-1.)*.5
2341 wj(1)=1.-wj(2)+wj(3)
2342 wj(2)=wj(2)-2.*wj(3)
2344 qli=log(q1/qmin)/log(qmax/qmin)*20.+1.
2349 wi(3)=wi(2)*(wi(2)-1.)*.5
2350 wi(1)=1.-wi(2)+wi(3)
2351 wi(2)=wi(2)-2.*wi(3)
2353 sl=log(s/s2min)/log(edmax/s2min)*25.+1.
2358 wk(3)=wk(2)*(wk(2)-1.)*.5
2359 wk(1)=1.-wk(2)+wk(3)
2360 wk(2)=wk(2)-2.*wk(3)
2364 k2=k+k1-1+26*(m-1)+52*long
2367 dsin1=dsin1+csdsi(i+i1-1,j+j1-1,k2)*wi(i1)*wj(j1)*wk(k1)
2372 psdsin=psdsin+exp(dsin1)*(1./tmin-1./tmax)
2374 psdsin=psdsin+max(0.,dsin1)
2378 if(long.eq.0.and.q1.lt.qq.and.s.gt.qq/(1.-q2ini/qq))then
2380 dsi=psevi(q1,qq,xx,m,2)*4.*pi**2*alfe/s
2382 psdsin=psdsin+max(dsi,0.)
2384 dnsi=psevi(q1,qq,xx,3,2)*4.*pi**2*alfe/s
2385 psdsin=psdsin+max(dsi-dnsi,0.)
2404 c###########################################################################
2405 c###########################################################################
2406 c###########################################################################
2407 c###########################################################################
2411 c###########################################################################
2412 c###########################################################################
2413 c###########################################################################
2414 c###########################################################################
2417 c------------------------------------------------------------------------
2418 function psvy(xpp0,xpr0,xpm0,xmr0,b,iqq)
2419 c-----------------------------------------------------------------------
2420 c psvy - 3p-contributions to the interaction eikonal
2421 c xpp - lc+ for the pomeron,
2422 c xpr - lc+ for the remnant,
2423 c xpm - lc- for the pomeron,
2424 c xpr - lc- for the remnant,
2425 c b - impact parameter,
2426 c iqq=1 - Y-proj-uncut
2427 c iqq=2 - Y-proj-1-cut
2428 c iqq=3 - Y-proj-2-cut
2429 c iqq=4 - Y-proj-soft-cut
2430 c iqq=5 - Y-proj-gss-cut
2431 c iqq=6 - Y-proj-qss-cut
2432 c iqq=7 - Y-proj-ssg-cut
2433 c iqq=8 - Y-proj-ssq-cut
2434 c iqq=9 - Y-proj-difr
2435 c iqq=-1 - Y-targ-uncut
2436 c iqq=-2 - Y-targ-1-cut
2437 c iqq=-3 - Y-targ-2-cut
2438 c iqq=-4 - Y-targ-soft-cut
2439 c iqq=-5 - Y-targ-gss-cut
2440 c iqq=-6 - Y-targ-qss-cut
2441 c iqq=-7 - Y-targ-ssg-cut
2442 c iqq=-8 - Y-targ-ssq-cut
2443 c iqq=-9 - Y-targ-difr
2444 c------------------------------------------------------------------------
2450 c------------------------------------------------------------------------
2451 function psvx(xpp,xpr,xpm,xmr,b,iqq)
2452 c-----------------------------------------------------------------------
2453 c psvx - 4p-contributions to the interaction eikonal
2454 c xpp - lc+ for the pomeron,
2455 c xpr - lc+ for the remnant,
2456 c xpm - lc- for the pomeron,
2457 c xpr - lc- for the remnant,
2458 c b - impact parameter,
2463 c iqq=3 - X-1-cut-soft
2464 c iqq=4 - X-1-cut-gss
2465 c iqq=-4 - X-1-cut-gss
2466 c iqq=5 - X-1-cut-qss
2467 c iqq=-5 - X-1-cut-qss
2470 c------------------------------------------------------------------------
2485 cc------------------------------------------------------------------------
2486 c function psftig(x,xpomr,jj)
2487 cc-----------------------------------------------------------------------
2493 cc------------------------------------------------------------------------
2494 c function psftih(zz,ddd)
2495 cc-----------------------------------------------------------------------
2501 cc------------------------------------------------------------------------
2502 c function psftij(zz,ddd)
2503 cc------------------------------------------------------------------------
2509 cc------------------------------------------------------------------------
2510 c function psftik(xp,del1,rh1,rh2,rh3,rp,z)
2511 cc-----------------------------------------------------------------------
2517 cc------------------------------------------------------------------------
2518 c function psftim(xp1,xp,del1,rh1,rh2,rh3,rp,z)
2519 cc-----------------------------------------------------------------------
2525 cc------------------------------------------------------------------------
2526 c function psftil(xp,del1,rh1,rh2,rh3,rp,z)
2527 cc------------------------------------------------------------------------
2533 cc------------------------------------------------------------------------
2534 c function psftigt(x)
2535 cc-----------------------------------------------------------------------
2541 cc------------------------------------------------------------------------
2542 c function psftist(x)
2543 cc-----------------------------------------------------------------------
2548 cc------------------------------------------------------------------------
2549 c function psftig1(x,xpomr,jj)
2550 cc-----------------------------------------------------------------------
2555 cc------------------------------------------------------------------------
2556 c function psftis1(x,xpomr,jj)
2557 cc-----------------------------------------------------------------------
2562 cc------------------------------------------------------------------------
2563 c function psd3p1(xd,xpomr,qq,jj)
2564 cc-----------------------------------------------------------------------
2565 cc psd3p1 - df2difr/dx_pomr
2567 cc xpomr - pomeron x,
2568 cc qq - photon virtuality
2570 cc-----------------------------------------------------------------------
2577 cc------------------------------------------------------------------------
2578 c function psv3p(sy,xpp,xpm,zb)
2579 cc-----------------------------------------------------------------------
2580 cc psv3p - 3p-contributions to the interaction eikonal
2581 cc sy - energy squared for the hard interaction,
2582 cc xpp - lc+ for the sh pomeron,
2583 cc xpm - lc- for the sh pomeron,
2584 cc z - impact parameter factor, z=exp(-b**2/4*rp),
2585 cc------------------------------------------------------------------------
2591 cc------------------------------------------------------------------------
2592 c function psfro(xpomr,zb,iclp,icdpro)
2593 cc-----------------------------------------------------------------------
2594 cc psfro - generalized froissaron between proj. and 3p-vertex
2595 cc xpp - lc+ for the proj. side,
2596 cc xpomr - lc+ for the vertex,
2597 cc zb - impact parameter factor, z=exp(-b**2/4*rp),
2598 cc------------------------------------------------------------------------
2603 cc------------------------------------------------------------------------
2604 c function psv2(xpomr,zb,iclp,iqq)
2605 cc-----------------------------------------------------------------------
2606 cc psv2 - 2-pom contribution to the froissaron
2607 cc xpomr - lc+ for the vertex,
2608 cc zb - impact parameter factor, z=exp(-b**2/4*rp),
2609 cc------------------------------------------------------------------------
2615 cc------------------------------------------------------------------------
2616 c function psvfro(xpp,xpr,xpomr,zb,iclp,icdpro,iqq)
2617 cc-----------------------------------------------------------------------
2618 cc psvfro - effective froissaron contributions
2619 cc xpomr - lc+ for the vertex,
2620 cc zb - impact parameter factor, z=exp(-b**2/4*rp),
2621 cc iqq=0 - total uncut
2622 cc iqq=1 - total 1-cut
2623 cc iqq=2 - total 2-cut
2624 cc iqq=3 - soft 1-cut
2628 cc------------------------------------------------------------------------
2634 cc------------------------------------------------------------------------
2635 c function psfroin(xpomr,z,iclp,icdpro)
2636 cc-----------------------------------------------------------------------
2637 cc psfroin - interpolation of effective froissaron corrections
2638 cc xpomr - lc+ for the 3p-vertex,
2639 cc z - impact parameter factor, z=exp(-b**2/4*rp),
2640 cc-----------------------------------------------------------------------
2646 cc------------------------------------------------------------------------
2647 c function psvnorm(b)
2648 cc-----------------------------------------------------------------------
2649 cc psvnorm - X-contribution normalization
2650 cc b - impact parameter
2651 cc-----------------------------------------------------------------------
2657 cc------------------------------------------------------------------------
2658 c function psvxb(dxpp,dxpr,dxpm,dxmr,dxpomr,bb1,bb2
2659 c *,iclp,iclt,icdpro,icdtar,iqq)
2660 cc-----------------------------------------------------------------------
2661 cc psvxb - integrand for X-contributions
2662 cc dxpomr - lc+ for the vertex,
2663 cc bb1,bb2 - impact parameters to proj(targ),
2667 cc iqq=3 - soft 1-cut
2671 cc------------------------------------------------------------------------
2672 c double precision dxpp,dxpr,dxpm,dxmr,dxpomr
2678 cc------------------------------------------------------------------------
2679 c function pscoef(zz,alp1,alp2,iclp,iqq)
2680 cc-----------------------------------------------------------------------
2681 cc pscoef - integrated vertexes
2682 cc zz=xpomr/xpr(xpp)
2686 cc------------------------------------------------------------------------
2692 cc------------------------------------------------------------------------
2693 c function pscoefi(z,i1,i2,iclp,iqq)
2694 cc-----------------------------------------------------------------------
2695 cc pscoefi - interpolation of integrated vertexes
2700 cc------------------------------------------------------------------------