19 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
21 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
22 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
23 COMMON /haenvi/ nindep
24 COMMON /haoutl/ noutl,nouter,noutco
26 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
27 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
31 CHARACTER*8 projty,targty
32 CHARACTER*8 projty0,targty0
33 COMMON /userla1/
title,projty,targty
34 COMMON /userla2/cmener,sdfrac,ptlar,istruf ,isingd,idubld
35 COMMON /user1/title0,projty0,targty0
36 COMMON /user2/cmener0,sdfrac0,ptlar0,istruf0,isingd0,idubld0
37 COMMON /collap/
s,ijproj,ijtar,ptthr,ptthr2,iophrd,ijprlu,ijtalu
38 common/collis/ s0, ijproj0, ijtar0, ptthr0, ptthr20, iophrd0,
50 COMMON /strufu/istrum,istrut
54 COMMON /pomene/poen(28),poen1(28),poen2(28),nestep
56 COMMON /lapene/ptthrz(28),ptthz2(28),indene
82 ptthrz(iii)=2.1+0.15*(log10(poen(iii)/50.))**3
83 ptthz2(iii)=ptthrz(iii)
84 ELSEIF(istrut.EQ.2)
THEN
85 ptthrz(iii)=2.5+0.12*(log10(poen(iii)/50.))**3
86 ptthz2(iii)=ptthrz(iii)
103 IF((istruf.GE.16).OR.(istruf.LE.20))
THEN
109 IF ( ijproj.EQ.2 ) nha =-1
112 IF ( ijtar .EQ.2 ) nhb =-1
118 DO 201 indene=1,nestep
124 ptini(1) = ptthrz(indene)
125 ptini(2) = ptthz2(indene)
147 IF ( iopt.EQ.0 ) CALL
harini
153 SUBROUTINE selhrd(MHARD,IJPVAL,IJTVAL,PTTHRE)
177 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
179 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
183 CHARACTER*8 projty,targty
184 CHARACTER*8 projty0,targty0
185 COMMON /userla1/
title,projty,targty
186 COMMON /userla2/cmener,sdfrac,ptlar,istruf ,isingd,idubld
187 COMMON /user1/title0,projty0,targty0
188 COMMON /user2/cmener0,sdfrac0,ptlar0,istruf0,isingd0,idubld0
189 COMMON /collap/
s,ijproj,ijtar,ptthr,ptthr2,iophrd,ijprlu,ijtalu
190 common/collis/ s0, ijproj0, ijtar0, ptthr0, ptthr20, iophrd0,
198 COMMON /abrhrd/xh1(mscahd),xh2(mscahd),ijhi1(mscahd),
199 *ijhi2(mscahd),ijhf1(mscahd),ijhf2(mscahd),phard1(mscahd,4),
201 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
202 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
203 COMMON /haoutl/ noutl,nouter,noutco
204 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
205 COMMON /harslt/ lscahd,lsc1hd,
206 & etahd(mscahd,2) ,pthd(mscahd),
207 & xhd(mscahd,2) ,vhd(mscahd) ,x0hd(mscahd,2),
208 & ninhd(mscahd,2) ,nouthd(mscahd,2),
209 & n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
211 COMMON /pomene/poen(28),poen1(28),poen2(28),nestep
212 COMMON /lapene/ptthrz(28),ptthz2(28),indene
213 DATA x1su/0./ , x2su/0./
220 IF(cmener0.GE.poen1(ii).AND.cmener0.LT.poen2(ii))
THEN
227 ptini(1) = ptthrz(indene)
228 ptini(2) = ptthz2(indene)
232 IF (ioutpa.GE.3)
WRITE(6,221)
233 * mhard,ijpval,ijtval
234 221
FORMAT (
' SELHRD ',3i10)
249 IF( ioutpa.GT. 6 )
WRITE(6,*)
n,x1su,x2su,xh1(
n),xh2(
n)
253 IF ( iiia.GT. 0 .AND. iiia.LT.10 ) iii = sign(iiia+10,iii)
254 IF ( iiia.GE.10 ) iii = sign(iiia-10,iii)
255 IF ( iiia.GE.10 ) ijpval = 1
259 IF ( iiia.GT. 0 .AND. iiia.LT.10 ) iii = sign(iiia+10,iii)
260 IF ( iiia.GE.10 ) iii = sign(iiia-10,iii)
261 IF ( iiia.GE.10 ) ijtval = 1
269 ijhf1(
n) = nouthd(
n,1)
270 ijhf2(
n) = nouthd(
n,2)
273 phard1(
n,j) = prec(j,i3)
274 20 phard2(
n,j) = prec(j,i4)
275 phard1(
n,4) = prec(0,i3)
276 phard2(
n,4) = prec(0,i4)
281 IF (ioutpa.GE.3)
WRITE (6,101)
282 101
FORMAT(
' SELHRD OUTPUT FOR INITIAL STATE SCATTERED PARTONS')
285 *
WRITE (6,103)i,ijpval,ijtval,ijhi1(i),ijhi2(i),xh1(i),xh2(i)
286 103
FORMAT (
' I,IJPVAL,IJTVAL,IJHI1,IJHI2,XH1,XH2= ',5i5,2f12.6)
288 IF (ioutpa.GE.3)
WRITE (6,301)
289 301
FORMAT(
' SELHRD OUTPUT FOR FINAL STATE SCATTERED PARTONS')
292 *
WRITE (6,303)i,ijhf1(i),ijhf2(i),(phard1(i,iii),iii=1,4)
294 *
WRITE (6,303)i,ijhf1(i),ijhf2(i),(phard2(i,iii),iii=1,4)
295 303
FORMAT (
' I,IJHI1,IJHI2,PHARD1 OR PHARD2 ',3i5,4f16.6)
314 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
316 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
317 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
318 COMMON /haenvi/ nindep
319 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
321 pt1 = max(pt1in,ptini(1))
332 IF ( nindep.EQ.1 ) CALL
hisfil2
346 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
348 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
349 parameter( tiny= 1.
d-30,
one=1.d0, zsmall=1.
d-3 )
350 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
351 COMMON /hapdco/ npdcor
352 COMMON /haoutl/ noutl,nouter,noutco
353 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
354 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
355 & pt,etac,etad,x1,x2,v,u,w,w1,axx,weight,mspr,irejsc
356 COMMON /haxik / xrest,yrest,zmax,axxmax,wemax
357 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
362 COMMON /haxsec/ xsecta(2,-1:
maxpro,4,28),xsect(5,-1:
maxpro,28),
363 & mxsect(0:2,-1:
maxpro,28)
365 COMMON /lapene/ptthrz(28),ptthz2(28),indene
368 COMMON /harslt/ lscahd,lsc1hd,
369 & etahd(mscahd,2) ,pthd(mscahd),
370 & xhd(mscahd,2) ,vhd(mscahd) ,x0hd(mscahd,2),
371 & ninhd(mscahd,2) ,nouthd(mscahd,2),
372 & n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
373 itype(l) =
mod(lrec1(l),100)-50
385 IF(itry.GT.ntry) goto 301
387 xrest = xshmx-nhard*sa
388 yrest = xshmx-nhard*sa
389 IF(xrest*yrest.LT.aa)
THEN
390 WRITE(6,*)
' ****************** HAMULT ****************** '
391 WRITE(6,*)
' IT IS NOT POSSIBLE TO PRODUCE ',nhard,
' POMERONS '
399 wemax =
sqrt(1-axxmax)
405 a = (2.*ptwant/ecm)**2
409 IF ( pt1.LT.ptini(i) .AND. i.GT.1 ) goto 50
413 xsect(1,m,indene) = xsecta(1,m,i,indene)
414 xsect(2,m,indene) = xsecta(2,m,i,indene)
427 etahd(ihard,1) = etac
428 etahd(ihard,2) = etad
432 if(zmax/
a-
one.lt.zsmall)
THEN
433 CALL
xcheck(x1s,x2s,linmax)
437 wemax=
sqrt(1.-axxmax)
439 IF(ihard.LT.nhard) goto 10
442 IF ( npdcor.EQ.1 .AND.
444 & (1.-x1s)*(1.-x2s).LT.
rndm(ai)*(1.-aa*ihard)**2 ) goto 5
455 IF ( abs(it).GT.10 .AND. ival.EQ.0 )
THEN
457 ELSEIF ( abs(it).GT.10 .AND. ival.EQ.1 )
THEN
458 it = sign(abs(it)-10,it)
459 lrec1(ind) = (lrec1(ind)/100)*100+50+it
463 nouthd(i,k) = itype(ind+2)
469 IF ( ihard.NE.nhard .AND. nouter.EQ.1 )
THEN
470 WRITE(6,1010) nhard,ihard
471 1010
FORMAT(
' ###### HAMULT : CANNOT PRODUCE',i3,
' HARD SCATT.',
472 &
'; ONLY',i3,
' ARE PRODUCED !!!')
479 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
481 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
482 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
483 COMMON /hapdco/ npdcor
484 COMMON /haoutl/ noutl,nouter,noutco
485 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
486 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
487 & pt,etac,etad,x1,x2,v,u,w,w1,axx,weight,mspr,irejsc
488 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
492 COMMON /haxsec/ xsecta(2,-1:
maxpro,4,28),xsect(5,-1:
maxpro,28),
493 & mxsect(0:2,-1:
maxpro,28)
495 COMMON /lapene/ptthrz(28),ptthz2(28),indene
498 COMMON /harslt/ lscahd,lsc1hd,
499 & etahd(mscahd,2) ,pthd(mscahd),
500 & xhd(mscahd,2) ,vhd(mscahd) ,x0hd(mscahd,2),
501 & ninhd(mscahd,2) ,nouthd(mscahd,2),
502 & n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
508 prec(1,lp) = prec(1,l)
509 prec(2,lp) = prec(2,l)
510 prec(3,lp) = prec(3,l)
511 prec(0,lp) = prec(0,l)
512 lrec1( lp) = lrec1( l)
513 lrec2( lp) = lrec2( l)
517 ELSEIF( iopt.EQ.1 )
THEN
521 IF( ptest.EQ.qtest )
THEN
526 WRITE(6,*)
' RECCHK: NO NEW LINMAX FOUND - LINMAX=',linmax
529 WRITE(6,*)
' RECCHK: IOPT OUT OF RANGE - 0 OR 1 - IOPT=',iopt
534 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
536 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
537 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
538 COMMON /hapdco/ npdcor
539 COMMON /haoutl/ noutl,nouter,noutco
540 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
541 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
542 & pt,etac,etad,x1,x2,v,u,w,w1,axx,weight,mspr,irejsc
543 COMMON /haxik / xrest,yrest,zmax,axxmax,wemax
544 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
549 COMMON /haxsec/ xsecta(2,-1:
maxpro,4,28),xsect(5,-1:
maxpro,28),
550 & mxsect(0:2,-1:
maxpro,28)
552 COMMON /lapene/ptthrz(28),ptthz2(28),indene
555 COMMON /harslt/ lscahd,lsc1hd,
556 & etahd(mscahd,2) ,pthd(mscahd),
557 & xhd(mscahd,2) ,vhd(mscahd) ,x0hd(mscahd,2),
558 & ninhd(mscahd,2) ,nouthd(mscahd,2),
559 & n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
560 parameter(
one=1d0, zsmall=1
d-3)
564 WRITE(6,*)
' ERROR IN XCHECK : IHARD < 1 ',ihard
571 IF(xhd(i,1).GT.
xmax)
THEN
575 IF(xhd(i,2).GT.
xmax)
THEN
583 xrest=xrest+xhd(imax,1)-
sqrt(
a)
584 yrest=yrest+xhd(imax,2)-
sqrt(
a)
587 wemax=
sqrt(1.-axxmax)
595 etahd(mh,1) = etahd(i,1)
596 etahd(mh,2) = etahd(i,2)
598 nprohd(mh) = nprohd(i)
601 CALL
recchk( 4*imax,xhd1,0)
604 IF(zmax/
a-
one.LT.zsmall) goto 50
609 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
611 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
612 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
613 & pt,etac,etad,x1,x2,v,u,w,w1,axx,weight,mspr,irejsc
615 COMMON /haxik / xrest,yrest,zmax,axxmax,wemax
616 parameter( tiny= 1.
d-30,
one=1.d0 ,tiny6=1.
d-06)
629 if(
rndm(1.1).gt.ww) goto 12
637 uu=umin*(c**2+1.)/2./c
638 if(uu.gt.2.*ym.and.uu.lt.ym+
z/ym) goto 13
645 if(xrest.ge.yrest)
then
648 if(xrest.eq.yrest)
then
649 if(
rndm(3.).gt.0.5)
then
667 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
669 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
670 parameter( tiny= 1.
d-30,
one=1.d0 ,tiny6=1.
d-06)
671 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
672 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
673 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
674 & pt,etac,etad,x1,x2,v,u,w,w1,axx,weight,mspr,irejsc
676 COMMON /haxik / xrest,yrest,zmax,axxmax,wemax
678 & 3.80, 0.65, 2.00, 0.65, 0.89, 0.45, 0.445, 0.89 /
682 v =-0.5*w1/(w1+
rndm(ai)*w)
684 r = (1.+w)*2.25*(v*v*(3.-u*v-v/(u*u))-u)
685 rmax=rm(1)*wemax*(1.+wemax)
687 IF(wik.GT.1.d0)
WRITE(6,*)
' HARKIN : WIK > 1 : ',m,
r
689 IF(wik.LT.
rndm(ai)) goto 10
690 IF (
rndm(aj).LE.0.5d0 ) v = u
691 ELSEIF ( m.EQ.2 .OR. m.EQ.4 )
THEN
694 v =-
exp(-0.6931472+
rndm(ai)*wl)
696 r = (u*u+v*v)*((16./27.)/u-(4./3.)*v)*(wl/w)*axx
697 IF (
r*w.LT.rm(m)*
rndm(ai) ) goto 20
698 IF (
rndm(aj).LE.0.5d0 ) v = u
699 ELSEIF ( m.EQ.3 )
THEN
701 v =-0.5*w1/(w1+
rndm(ai)*w)
703 r = (1.+w)*(1.+u*u)*(1.-(4./9.)*v*v/u)
704 rmax=rm(3)*wemax*(1.+wemax)
706 IF(wik.GT.1.d0)
WRITE(6,*)
' HARKIN : WIK > 1 : ',m,
r
708 IF(wik.LT.
rndm(ai)) goto 30
709 ELSEIF ( m.EQ.5 )
THEN
711 v =-0.5*axx/(w1+2.*
rndm(ai)*w)
713 r = (4./9.)*(1.+u*u+v*v*(u*u+v*v))-(8./27.)*u*u*v
716 IF(wik.GT.1.d0)
WRITE(6,*)
' HARKIN : WIK > 1 : ',m,
r
718 IF(wik.LT.
rndm(ai)) goto 50
719 ELSEIF ( m.EQ.6 )
THEN
721 v =-0.5*(1.+w)+
rndm(ai)*w
723 r = (4./9.)*(u*u+v*v)*axx
724 IF (
r*w.LT.rm(6)*
rndm(ai) ) goto 60
725 ELSEIF ( m.EQ.7 )
THEN
727 v =-0.5*w1/(w1+
rndm(ai)*w)
729 r = (1.+w)*((2./9.)*(1.+u*u+(1.+v*v)*v*v/(u*u))-(4./27.)*v/u)
730 rmax=rm(7)*wemax*(1.+wemax)
732 IF(wik.GT.1.d0)
WRITE(6,*)
' HARKIN : WIK > 1 : ',m,
r
734 IF(wik.LT.
rndm(ai)) goto 70
735 IF (
rndm(aj).LE.0.5d0 ) v = u
736 ELSEIF ( m.EQ.8 )
THEN
738 v =-0.5*axx/(w1+2.*
rndm(ai)*w)
743 IF(wik.GT.1.d0)
WRITE(6,*)
' HARKIN : WIK > 1 : ',m,
r
745 IF(wik.LT.
rndm(ai)) goto 80
746 ELSEIF ( m.EQ.-1 )
THEN
749 v =-
exp(-0.6931472+
rndm(ai)*wl)
751 r = (1.+v*v)*(v/(u*u)-(4./9.))*(wl/w)*axx
752 IF (
r*w.LT.rm(-1)*
rndm(ai) ) goto 90
755 v = max(min( v,-tiny6 ),-1.+tiny6 )
756 u = max(min(-1.e0-v,-tiny6 ),-1.+tiny6 )
757 pt =
sqrt(u*v*x1*x2)*ecm
758 etac = 0.5*
log((u*x1)/(v*x2))
759 etad = 0.5*
log((v*x1)/(u*x2))
767 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
769 COMMON /hacuts/ ptl,ptu,etacl,etacu,etadl,etadu
770 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
771 & pt,etac,etad,x1,x2,v,u,w,w1,axx,weight,mspr,irejsc
774 IF ( pt .LT.ptl .OR. pt .GT.ptu
775 & .OR. etac.LT.etacl .OR. etac.GT.etacu
776 & .OR. etad.LT.etadl .OR. etad.GT.etadu ) iopt = 0
781 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
783 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
784 parameter( tiny= 1.
d-30,
one=1.d0 ,tiny6=1.
d-06)
785 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
786 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
787 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
788 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
789 & pt,etac,etad,x1,x2,v,u,w,w1,axx,weight,mspr,irejsc
790 dimension pda(-6:6),pdb(-6:6)
794 COMMON /haxsec/ xsecta(2,-1:
maxpro,4,28),xsect(5,-1:
maxpro,28),
795 & mxsect(0:2,-1:
maxpro,28)
797 COMMON /lapene/ptthrz(28),ptthz2(28),indene
803 IF ( nqqal.EQ.1 )
THEN
805 ELSEIF ( nqqal.EQ.2 )
THEN
806 qqal = aqqal*x1*x2*ecm*ecm
807 ELSEIF ( nqqal.EQ.3 )
THEN
808 qqal = aqqal*x1*x2*ecm*ecm*(u*v)**(1./3.)
809 ELSEIF ( nqqal.EQ.4 )
THEN
810 qqal = aqqal*x1*x2*ecm*ecm*u*v/(1.+v*v+u*u)
812 IF ( nqqpd.EQ.1 )
THEN
814 ELSEIF ( nqqpd.EQ.2 )
THEN
815 qqpd = aqqpd*x1*x2*ecm*ecm
816 ELSEIF ( nqqpd.EQ.3 )
THEN
817 qqpd = aqqpd*x1*x2*ecm*ecm*(u*v)**(1./3.)
818 ELSEIF ( nqqpd.EQ.4 )
THEN
819 qqpd = aqqpd*x1*x2*ecm*ecm*u*v/(1.+v*v+u*u)
821 alpha = bqcd/
log(max(qqal/alasqr,1.1*
one))
822 f = xsect(1,mspr,indene)*alpha**2
825 CALL
jtpdis(x1,qqpd,nha,mspr,pda)
826 CALL
jtpdis(x2,qqpd,nhb,mspr,pdb)
828 IF ( mspr.EQ.1 .OR. mspr.EQ.4 )
THEN
836 s2 = s2+pda(i)*pdb(-i)+pda(-i)*pdb( i)
837 s3 = s3+pda(i)*pdb( i)+pda(-i)*pdb(-i)
838 s4 = s4+pda(i)+pda(-i)
839 s5 = s5+pdb(i)+pdb(-i)
841 IF ( mspr.EQ.2 .OR. mspr.EQ.5 .OR. mspr.EQ.6 )
THEN
843 ELSEIF ( mspr.EQ.3 .OR. mspr.EQ.-1 )
THEN
844 pds = pda(0)*s5+pdb(0)*s4
845 ELSEIF ( mspr.EQ.7 )
THEN
847 ELSEIF ( mspr.EQ.8 )
THEN
858 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
860 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
861 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
862 COMMON /haoutl/ noutl,nouter,noutco
863 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
864 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
865 & pt,etac,etad,x1,x2,v,u,w,w1,axx,weight,mspr,irejsc
866 dimension pda(-6:6),pdb(-6:6)
867 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
871 COMMON /haxsec/ xsecta(2,-1:
maxpro,4,28),xsect(5,-1:
maxpro,28),
872 & mxsect(0:2,-1:
maxpro,28)
874 COMMON /lapene/ptthrz(28),ptthz2(28),indene
880 mxsect(0,0,indene) = 0
881 xsect(2,0,indene) = 0.0
884 IF ( mxsect(0,m,indene).EQ.1 )
885 & xsect(2,0,indene) = xsect(2,0,indene)+xsect(2,m,indene)
897 b =
rndm(ai)*xsect(2,0,indene)
902 IF ( mxsect(0,mspr,indene).EQ.1 ) sum = sum+xsect(2,mspr,indene)
904 IF ( sum.LT.b .AND. mspr.LT.
maxpro ) goto 20
909 IF ( iopt.EQ.0 ) goto 10
913 IF(
f .LE. 1.
d-15 )
f=0.
917 xsect(3,mspr,indene) = xsect(3,mspr,indene)+
f
918 xsect(4,mspr,indene) = xsect(4,mspr,indene)+
f*
f
919 mxsect(1,mspr,indene) = mxsect(1,mspr,indene)+1
923 weight =
f/xsect(2,mspr,indene)
925 IF ( weight.LT.
rndm(ai) ) goto 10
940 mxsect(2,mspr,indene) = mxsect(2,mspr,indene)+1
942 IF ( mspr.EQ.-1 ) mspr = 3
945 scheck =
rndm(ai)*pds
946 IF ( mspr.EQ.1 .OR. mspr.EQ.4 )
THEN
949 ELSEIF ( mspr.EQ.2 .OR. mspr.EQ.5 .OR. mspr.EQ.6 )
THEN
951 IF ( ia.EQ.0 ) goto 610
952 sum = sum+pda(ia)*pdb(-ia)
953 IF ( sum.GE.scheck ) goto 620
956 ELSEIF ( mspr.EQ.3 )
THEN
959 IF ( ia.EQ.0 ) goto 630
960 sum = sum+pda(0)*pdb(ia)
961 IF ( sum.GE.scheck ) goto 640
962 sum = sum+pda(ia)*pdb(0)
963 IF ( sum.GE.scheck ) goto 650
968 ELSEIF ( mspr.EQ.7 )
THEN
970 IF ( ia.EQ.0 ) goto 660
971 sum = sum+pda(ia)*pdb(ia)
972 IF ( sum.GE.scheck ) goto 670
975 ELSEIF ( mspr.EQ.8 )
THEN
977 IF ( ia.EQ.0 ) goto 690
979 IF ( abs(ib).EQ.abs(ia) .OR. ib.EQ.0 ) goto 680
980 sum = sum+pda(ia)*pdb(ib)
981 IF ( sum.GE.scheck ) goto 700
989 IF ( mspr.EQ.2 )
THEN
992 ELSEIF ( mspr.EQ.4 )
THEN
993 ic =
int(float(nf+nf)*
rndm(ai))+1
994 IF ( ic.GT.nf ) ic = nf-ic
996 ELSEIF ( mspr.EQ.6 )
THEN
997 ic =
int(float(nf+nf-2)*
rndm(ai))+1
998 IF ( ic.GT.nf-1 ) ic = nf-1-ic
999 IF ( abs(ic).EQ.abs(ia) ) ic = sign(nf,ic)
1005 IF ( ((a1*a1)+(a2*a2)).GT.1.0d0 ) goto 30
1006 cosphi = ((a1*a1)-(a2*a2))/((a1*a1)+(a2*a2))
1007 sinphi = sign(((a1*a2)+(a1*a2))/((a1*a1)+(a2*a2)),
rndm(ai)-0.5)
1009 IF (
rndm(ai)*pda(ia).GT.pda(-ia) ) ia = sign(abs(ia)+10,ia)
1010 IF (
rndm(aj)*pdb(ib).GT.pdb(-ib) ) ib = sign(abs(ib)+10,ib)
1015 prec(3,line) = 0.5*ecm*x1
1016 prec(0,line) = prec(3,line)
1017 lrec1(line) = ia+50+100*mspr
1022 prec(3,line) =-0.5*ecm*x2
1023 prec(0,line) =-prec(3,line)
1027 prec(1,line) = pt*cosphi
1028 prec(2,line) = pt*sinphi
1029 prec(3,line) =-0.5*ecm*(u*x1-v*x2)
1030 prec(0,line) =-0.5*ecm*(u*x1+v*x2)
1034 prec(1,line) =-pt*cosphi
1035 prec(2,line) =-pt*sinphi
1036 prec(3,line) =-0.5*ecm*(v*x1-u*x2)
1037 prec(0,line) =-0.5*ecm*(v*x1+u*x2)
1044 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1046 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1047 COMMON /haoutl/ noutl,nouter,noutco
1048 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
1049 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
1050 COMMON /harslt/ lscahd,lsc1hd,
1051 & etahd(mscahd,2) ,pthd(mscahd),
1052 & xhd(mscahd,2) ,vhd(mscahd) ,x0hd(mscahd,2),
1053 & ninhd(mscahd,2) ,nouthd(mscahd,2),
1054 & n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
1057 IF ( noutl.GE.4 )
THEN
1058 WRITE(6,1010) nhard,ihard,irejev
1059 1010
FORMAT(
' ===HARD EVENT=== NHARD,NTRUE,REJECTIONS ',3i5,/
1060 &
' IA IB IC ID XA XB PT YC YD',
1063 phi = atan2(prec(1,4*
n-1),prec(2,4*
n-1))
1064 WRITE(6,1020) ninhd(
n,1),ninhd(
n,2),nouthd(
n,1),nouthd(
n,2),
1065 & xhd(
n,1),xhd(
n,2),pthd(
n),etahd(
n,1),etahd(
n,2),
phi
1066 1020
FORMAT(1x,4i3,2f11.7,4f9.3)
1069 IF ( noutl.GE.6 )
THEN
1072 1030
FORMAT(
' EVENTRECORD')
1074 WRITE(6,1040) lrec1(l),lrec2(l),(prec(i,l),i=0,3)
1076 1040
FORMAT(2i12,4(1pe12.4))
1093 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1095 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
1102 IF ( mspr.EQ.1 .OR. mspr.EQ.4 ) maxfl = 0
1108 IF ( npd.EQ.1 .OR. npd.EQ.2 )
THEN
1110 WRITE(6,*)
' unsupported PDF number: ',npd
1111 ELSEIF ( npd.GE.3 .AND. npd.LE.5 )
THEN
1113 WRITE(6,*)
' unsupported PDF number: ',npd
1114 ELSEIF(npd.EQ.6)
THEN
1116 WRITE(6,*)
' unsupported PDF number: ',npd
1117 ELSEIF(npd.EQ.7)
THEN
1119 WRITE(6,*)
' unsupported PDF number: ',npd
1120 ELSEIF(npd.EQ.8)
THEN
1122 WRITE(6,*)
' unsupported PDF number: ',npd
1123 ELSEIF(npd.EQ.9)
THEN
1125 WRITE(6,*)
' unsupported PDF number: ',npd
1126 ELSEIF(npd.EQ.10)
THEN
1128 WRITE(6,*)
' unsupported PDF number: ',npd
1129 ELSEIF(npd.EQ.11)
THEN
1131 WRITE(6,*)
' unsupported PDF number: ',npd
1132 ELSEIF(npd.EQ.12)
THEN
1134 WRITE(6,*)
' unsupported PDF number: ',npd
1136 ELSEIF((npd.GE.13).AND.(npd.LE.20))
THEN
1138 WRITE(6,*)
' unsupported PDF number: ',npd
1139 ELSEIF((npd.GE.21).AND.(npd.LE.23))
THEN
1140 CALL
phkmrs(x,qq,pd,npd-6)
1142 WRITE(6,*)
' unsupported PDF number: ',npd
1145 DO 20 i=-maxfl,maxfl
1146 IF ( pd(i).LT.1.
d-15 ) pd(i) = 0.0
1149 IF ( ihatyp.EQ.-1 )
THEN
1223 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1232 dimension pdff(-6:2)
1244 IF((mode.EQ.15))
THEN
1247 CALL
po_grv98lo(iset,x,scale2,uv,dv,us,ds,ss,gl)
1267 IF((mode.EQ.16))
THEN
1270 CALL
po_grv98lo(iset,x,scale2,uv,dv,us,ds,ss,gl)
1291 IF((mode.EQ.17))
THEN
1292 CALL
structm(x,
scale,upv,dnv,usea,dsea,str,chm,bot,top,glu)
1339 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1341 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1342 COMMON /hacons/ pi,pi2,pi4,gevtmb
1343 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
1344 COMMON /hapadi/ npdm
1345 COMMON /hapdco/ npdcor
1346 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
1347 COMMON /haenvi/ nindep
1348 COMMON /haoutl/ noutl,nouter,noutco
1349 COMMON /hacuts/ ptl,ptu,etacl,etacu,etadl,etadu
1350 COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
1351 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
1352 COMMON /harslt/ lscahd,lsc1hd,
1353 & etahd(mscahd,2) ,pthd(mscahd),
1354 & xhd(mscahd,2) ,vhd(mscahd) ,x0hd(mscahd,2),
1355 & ninhd(mscahd,2) ,nouthd(mscahd,2),
1356 & n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
1360 COMMON /haxsec/ xsecta(2,-1:
maxpro,4,28),xsect(5,-1:
maxpro,28),
1361 & mxsect(0:2,-1:
maxpro,28)
1363 COMMON /lapene/ptthrz(28),ptthz2(28),indene
1379 2000
FORMAT(
'1***************************************************'
1380 & ,/,
' MONTE-CARLO GENERATION OF HARD HADRONIC SCATTERINGS'
1381 & ,/,
' ***************************************************',/)
1386 IF ( inp(1:1).EQ.
'-' ) goto 10
1388 READ(inp,1012,err=99) cw,
what
1393 1011
FORMAT(
' *********.* CONTROL.CARD*****.',4(9x,
'.'),/,1x,a70,/)
1394 1012
FORMAT(a8,2x,6e10.0)
1395 1013
FORMAT(
' CARD IS INCORRECT, IGNORE AND TRY NEXT CARD',/)
1399 IF ( cw.EQ.
'END ' )
THEN
1404 1030
FORMAT(
' ******** END OF PROGRAM EXECUTION ********')
1407 ELSEIF ( cw.EQ.
'COMMENT ' )
THEN
1416 20
WRITE(6,1050) commnt
1420 ELSEIF ( cw.EQ.
'ENERGYPT' )
THEN
1430 IF (
what(1).GT.0.0d0 ) ecm =
what(1)
1432 ptini(i) =
what(i+1)
1435 ELSEIF ( cw.EQ.
'PARDISTR' )
THEN
1456 IF ( ipd.GE.1 .AND. ipd.LE.15 ) npd = ipd
1457 IF ( ipdm.EQ.1 ) npdm = ipdm
1459 ELSEIF ( cw.EQ.
'CUTS ' )
THEN
1481 IF ( ptu .LE.ptl ) ptu = ptl +1.0
1482 IF ( etacu.LE.etacl ) etacu = etacl+1.0
1483 IF ( etadu.LE.etadl ) etadu = etadl+1.0
1485 ELSEIF ( cw.EQ.
'INTPOINT' )
THEN
1507 ELSEIF ( cw.EQ.
'FLAVOR ' )
THEN
1512 IF ( nff.GE.0 .AND. nff .LE.6 ) nf = nff
1514 ELSEIF ( cw.EQ.
'PARTICLE' )
THEN
1523 IF ( abs(iha).EQ.1 ) nha = iha
1525 IF ( abs(ihb).EQ.1 ) nhb = ihb
1527 ELSEIF ( cw.EQ.
'OUTPUT ' )
THEN
1537 ELSEIF ( cw.EQ.
'INIT ' )
THEN
1543 ELSEIF ( cw.EQ.
'TESTINCL' )
THEN
1552 IF ( j.GE.1 .AND. j.LE.4 ) CALL
hatest(j)
1555 ELSEIF ( cw.EQ.
'TESTMC ' )
THEN
1565 IF ( nevt.LE.0 ) nevt = 100
1575 ELSEIF ( cw.EQ.
'SUBPRON ' )
THEN
1582 IF ( m.GE.1 .AND. m.LE.
maxpro ) mxsect(0,m,indene) = 1
1585 mxsect(0,-1,indene) = mxsect(0,3,indene)
1588 ELSEIF ( cw.EQ.
'SUBPROFF' )
THEN
1595 IF ( m.GE.1 .AND. m.LE.
maxpro ) mxsect(0,m,indene) = 0
1598 mxsect(0,-1,indene) = mxsect(0,3,indene)
1601 ELSEIF ( cw.EQ.
'HISOUT ' )
THEN
1614 IF ( j.GE.1 .AND. j.LE.6 ) CALL
hisout(j)
1617 ELSEIF ( cw.EQ.
'HISINI ' )
THEN
1623 ELSEIF ( cw.EQ.
'HARDSCAL' )
THEN
1639 IF (
what(2).GT.0.d0 ) aqqal =
what(2)
1641 IF (
what(4).GT.0.d0 ) aqqpd =
what(4)
1652 ELSEIF ( cw.EQ.
'PARDISCO' )
THEN
1663 9999
FORMAT(
' ##### UNKNOWN CODEWORD; CARD IS IGNORED ###',/)
1680 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1682 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1683 parameter( tiny= 1.
d-30, onep1=1.1d0 ,tiny6=1.
d-06)
1684 COMMON /hacons/ pi,pi2,pi4,gevtmb
1685 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
1686 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
1687 DOUBLE PRECISION ec,ed,xa,xb,sp,tp,up,
tt,uu,
1689 dimension dsigmm(0:
maxpro),pda(-6:6),pdb(-6:6)
1699 IF ( xa.GE.1.d0 .OR. xb.GE.1.d0 )
RETURN
1707 IF ( nqqal.EQ.1 )
THEN
1709 ELSEIF ( nqqal.EQ.2 )
THEN
1711 ELSEIF ( nqqal.EQ.3 )
THEN
1712 qqal = aqqal*sp*(up*tp)**(1./3.)
1713 ELSEIF ( nqqal.EQ.4 )
THEN
1714 qqal = aqqal*sp*up*tp/(1.+
tt+uu)
1716 IF ( nqqpd.EQ.1 )
THEN
1718 ELSEIF ( nqqpd.EQ.2 )
THEN
1720 ELSEIF ( nqqpd.EQ.3 )
THEN
1721 qqpd = aqqpd*sp*(up*tp)**(1./3.)
1722 ELSEIF ( nqqpd.EQ.4 )
THEN
1723 qqpd = aqqpd*sp*up*tp/(1.+
tt+uu)
1726 alpha = bqcd/
log(max(qqal/alasqr,onep1))
1727 factor = pi2*gevtmb*pt*(alpha/sp)**2
1731 CALL
jtpdis(x1,qqpd,nha,0,pda)
1732 CALL
jtpdis(x2,qqpd,nhb,0,pdb)
1739 s2 = s2+pda(i)*pdb(-i)+pda(-i)*pdb( i)
1740 s3 = s3+pda(i)*pdb( i)+pda(-i)*pdb(-i)
1741 s4 = s4+pda(i)+pda(-i)
1742 s5 = s5+pdb(i)+pdb(-i)
1746 dsigm(1) = 2.25*(3.-((up*tp)+up/
tt+tp/uu))
1747 dsigm(6) = (4./9.)*(uu+
tt)
1748 dsigm(8) = (4./9.)*(1.+uu)/
tt
1749 dsigm(2) = (16./27.)*(uu+
tt)/(up*tp)-3.*dsigm(6)
1750 dsigm(3) = ((1.+uu)/
tt)-(4./9.)*(1.+uu)/up
1751 dsigm(4) = (9./32.)*dsigm(2)
1752 dsigm(5) = dsigm(6)+dsigm(8)-(8./27.)*uu/tp
1753 dsigm(7) = 0.5*(dsigm(8)+(4./9.)*(1.+
tt)/uu-(8./27.)/(up*tp))
1755 dsigm(1) = factor*dsigm(1)*s1
1756 dsigm(2) = factor*dsigm(2)*s2
1757 dsigm(3) = factor*dsigm(3)*(pda(0)*s5+pdb(0)*s4)
1758 dsigm(4) = factor*dsigm(4)*s1*nf
1759 dsigm(5) = factor*dsigm(5)*s2
1760 dsigm(6) = factor*dsigm(6)*s2*max(0,(nf-1))
1761 dsigm(7) = factor*dsigm(7)*s3
1762 dsigm(8) = factor*dsigm(8)*(s4*s5-(s2+s3))
1765 dsigm(0) = dsigm(0)+dsigm(m)
1768 dsigmm(m) = dsigm(m)
1776 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1778 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1782 parameter( tiny= 1.
d-20 )
1783 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
1784 COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
1786 dimension absz(32),weig(32)
1793 IF ( arg.LE.ec .OR. arg.LE.1./ec )
RETURN
1795 edl =-
log(arg-1./ec)
1797 CALL
gset(edl,edu,npoint,absz,weig)
1799 CALL
csj2m(pt,etac,absz(i),dsig1)
1802 pctrl= dsig1(m)/tiny
1804 IF( pctrl.GE.1.d0 )
THEN
1805 dsigm(m) = dsigm(m)+weig(i)*dsig1(m)
1815 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1817 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1818 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
1819 COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
1821 dimension absz(32),weig(32)
1827 IF ( amt.GE.1.d0 )
RETURN
1828 ecu =
log((
sqrt(1.-amt*amt)+1.)/amt)
1831 CALL
gset(ecl,ecu,npoint,absz,weig)
1833 CALL
csj1m(pt,absz(i),dsig1)
1835 dsigm(m) = dsigm(m)+weig(i)*dsig1(m)
1846 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1848 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1849 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
1850 COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
1851 COMMON /xsecpt/ ptcut,sigs,dsigh
1853 dimension absz(32),weig(32)
1859 IF ( ptini(1).GE.ecm/2.d0 )
RETURN
1862 ptmax = min(fac*ptmin,ecm/2.d0)
1867 1000
FORMAT(1x,
' d sigma/ p_t d p_t ',e12.5)
1871 ex =
log(sig1/(dsig1(0)+1.
d-30))/
log(fac)
1874 IF ( ptmin.GE.ptmax ) goto 40
1877 CALL
gset(rl,ru,npoint,absz,weig)
1882 f = weig(i)*pt/(
r*ex1)
1884 dsigm(m) = dsigm(m)+
f*dsig1(m)
1906 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1908 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1909 parameter( tiny= 1.
d-30,
one=1.d0 ,tiny6=1.
d-06,
zero=0.d0)
1910 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
1914 COMMON /haxsec/ xsecta(2,-1:
maxpro,4,28),xsect(5,-1:
maxpro,28),
1915 & mxsect(0:2,-1:
maxpro,28)
1917 COMMON /lapene/ptthrz(28),ptthz2(28),indene
1921 CHARACTER*11 pdset,partic
1922 COMMON /peproc/ proc(0:
maxpro),pdset(23),partic(-1:1)
1924 COMMON /histo / pt10,dpt1,eta10,deta1,pt20,dpt2,eta20,deta2,
1925 & x(50,-5:5),ab(50,-5:5),hpe(50,-5:5),hep(50,5),
1926 & hpm(50,8),hem(50,8),hp(50),he(50),
1935 xsect(2,0,indene) = xsect(2,-1,indene)
1936 mxsect(1,0,indene) = mxsect(1,-1,indene)
1937 mxsect(2,0,indene) = mxsect(2,-1,indene)
1942 mxsect(1,0,indene) = mxsect(1,0,indene)+mxsect(1,m,indene)
1943 mxsect(2,0,indene) = mxsect(2,0,indene)+mxsect(2,m,indene)
1944 7 xsect(2,0,indene) = xsect(2,0,indene)+xsect(2,m,indene)
1949 1010
FORMAT(1x,20(
'=='),
' HISTO-OUTPUT ',i2,1x,10(
'=='),/)
1950 IF ( iout.EQ.1 )
THEN
1952 1040
FORMAT(
' PROCESS',15x,
'EVENTS',22x,
'HARD CROSS SECTION',/,
1953 & 25x,
'TOTAL ACCEPT.',10x,
'MONTE-CARLO',11x,
'INCLUSIVE')
1959 IF ( mxsect(1,m,indene).GT.0 )
THEN
1960 sig(m) = xsect(3,m,indene)/mxsect(1,m,indene)
1961 stdev(m) =
sqrt(max(
zero,xsect(4,m,indene)-
1962 * xsect(3,m,indene)*sig(m)))/mxsect(1,m,indene)
1968 IF ( m.EQ.3 .AND. mxsect(1,-1,indene).GT.0 )
THEN
1969 sigg = xsect(3,-1,indene)/mxsect(1,-1,indene)
1972 sig(3) = sig(3)+sigg
1974 * +
sqrt(max(
zero,xsect(4,-1,indene)-
1975 * xsect(3,-1,indene)*sigg))/mxsect(1,-1,indene)
1978 sigsum = sigsum+sig(m)
1979 stdevs = stdevs+stdev(m)
1981 mxsect(1,3,indene) = mxsect(1,3,indene)+mxsect(1,-1,indene)
1982 mxsect(2,3,indene) = mxsect(2,3,indene)+mxsect(2,-1,indene)
1983 WRITE(6,1050) proc(0),(mxsect(l,0,indene),l=0,2),
1984 & sigsum,stdevs,xsect(5,0,indene)
1990 IF ( mxsect(0,m,indene).EQ.1 )
WRITE(6,1050) proc(m),
1991 & (mxsect(l,m,indene),l=0,2),sig(m),stdev(m),xsect(5,m,indene)
1995 1050
FORMAT(a19,i3,2i8,e14.4,
' +- ',e10.4,e14.4)
1996 mxsect(1,3,indene) = mxsect(1,3,indene)-mxsect(1,-1,indene)
1997 mxsect(2,3,indene) = mxsect(2,3,indene)-mxsect(2,-1,indene)
2000 ELSEIF ( iout.EQ.2 )
THEN
2001 fac = xsect(2,0,indene)/(dpt1*mxsect(1,0,indene))
2004 ab(i,1) = pt10+(i-1)*dpt1
2005 IF ( hp(i).GT.1.
d-35 ) x(i,1) = log10(fac*hp(i))
2008 1060
FORMAT(
' JET CROSS SECTION PT-DISTRIBUTION',/)
2009 CALL
plot(ab(1,1),x(1,1),50,1,50,pt10,dpt1,xsmin,xsstep)
2010 ELSEIF ( iout.EQ.3 )
THEN
2011 fac = xsect(2,0,indene)/(dpt1*mxsect(1,0,indene))
2014 pt = pt10+(i-1)*dpt1
2017 IF ( hpm(i,j).GT.1.
d-35 ) x(i,j-6) = log10(fac*hpm(i,j))
2021 1070
FORMAT(
' JET CROSS SECTION PT-DISTRIBUTION',/,
2022 &
' FOR THE DIFF. SUBPROCESSES',/)
2023 CALL
plot(ab,x,400,8,50,pt10,dpt1,xsmin,xsstep)
2024 ELSEIF ( iout.EQ.4 )
THEN
2025 fac = xsect(2,0,indene)/(dpt1*deta1*mxsect(1,0,indene))
2028 pt = pt10+(i-1)*dpt1
2031 IF ( hpe(i,j).GT.1.
d-35 ) x(i,j) = log10(fac*hpe(i,j))
2034 WRITE(6,1080) eta10,-eta10
2035 1080
FORMAT(
' JET CROSS SECTION PT-DISTRIBUTION',/,
2036 &
' RAP.=',f5.2,
'...',f4.2,/)
2037 CALL
plot(ab,x,550,11,50,pt10,dpt1,xsmin,xsstep)
2038 ELSEIF ( iout.EQ.5 )
THEN
2039 fac = xsect(2,0,indene)/(deta2*dpt2*mxsect(1,0,indene))
2042 eta = eta20+(i-1)*deta2
2045 IF ( hep(i,j).GT.1.
d-35 ) x(i,j) = log10(fac*hep(i,j))
2048 WRITE(6,1090) pt20,pt20+4.*dpt2
2049 1090
FORMAT(
' JET CROSS SECTION RAP.-DISTRIBUTION',/,
2050 &
' PT=',f6.2,
'...',f6.2,/)
2051 CALL
plot(ab(1,1),x(1,1),250,5,50,eta20,deta2,xsmin,xsstep)
2052 ELSEIF ( iout.EQ.6 )
THEN
2053 fac = xsect(2,0,indene)/(deta2*mxsect(1,0,indene))
2056 eta = eta20+(i-1)*deta2
2059 IF ( hem(i,j).GT.1.
d-35 ) x(i,j-6) = log10(fac*hem(i,j))
2063 1100
FORMAT(
' JET CROSS SECTION RAP.-DISTRIBUTION',/,
2064 &
' FOR THE DIFF. SUBPROCESSES',/)
2065 CALL
plot(ab,x,400,8,50,eta20,deta2,xsmin,xsstep)
2074 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2076 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
2078 COMMON /histo / pt10,dpt1,eta10,deta1,pt20,dpt2,eta20,deta2,
2079 & x(50,-5:5),ab(50,-5:5),hpe(50,-5:5),hep(50,5),
2080 & hpm(50,8),hem(50,8),hp(50),he(50),
2107 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2109 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
2110 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
2111 COMMON /harslt/ lscahd,lsc1hd,
2112 & etahd(mscahd,2) ,pthd(mscahd),
2113 & xhd(mscahd,2) ,vhd(mscahd) ,x0hd(mscahd,2),
2114 & ninhd(mscahd,2) ,nouthd(mscahd,2),
2115 & n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
2117 COMMON /histo / pt10,dpt1,eta10,deta1,pt20,dpt2,eta20,deta2,
2118 & x(50,-5:5),ab(50,-5:5),hpe(50,-5:5),hep(50,5),
2119 & hpm(50,8),hem(50,8),hp(50),he(50),
2126 ipt1 =
int((pthd(
n)-pt10)/dpt1)+1
2127 ieta1 =
int((etahd(
n,k)-eta10)/deta1+0.5)-5
2128 ipt2 =
int((pthd(
n)-pt20)/dpt2)+1
2129 ieta2 =
int((etahd(
n,k)-eta20)/deta2+0.5)
2130 IF ( ipt1.GE. 1 .AND. ipt1.LE.50 )
THEN
2131 hpm(ipt1,mspr) = hpm(ipt1,mspr)+1.
2132 hp(ipt1) = hp(ipt1)+1.
2133 IF ( abs(ieta1).LE.5 ) hpe(ipt1,ieta1) = hpe(ipt1,ieta1)+1.
2135 IF ( ieta2.GE. 1 .AND. ieta2.LE.50 )
THEN
2136 hem(ieta2,mspr) = hem(ieta2,mspr)+1.
2137 he(ieta2) = he(ieta2)+1.
2138 IF ( ipt2.GE.1 .AND. ipt2.LE.5 ) hep(ieta2,ipt2) =
2139 & hep(ieta2,ipt2)+1.
2147 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2149 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
2150 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
2152 CHARACTER*11 pdset,partic
2153 COMMON /peproc/ proc(0:
maxpro),pdset(23),partic(-1:1)
2155 COMMON /histo / vvv(50),xs(50,6),ab(50,6),dsig(0:
maxpro),pd(-6:6),
2157 IF ( iout.EQ.1 )
THEN
2159 WRITE(6,1010) ecm,ptini(1),(proc(m),dsig(m),m=0,
maxpro)
2160 1010
FORMAT(
' HARD CROSS SECTIONS FOR SINGLE PROCESSES',/,
2161 &
' AT CM-ENERGY=',e8.1,
' AND PTMIN=',f5.1,/,9(a25,e14.6,/))
2162 ELSEIF ( iout.EQ.2 )
THEN
2180 CALL
jtpdis(vvv(j),qq,1,1,pd)
2181 IF ( pd(0).GT.1.
d-30 ) xs(j,i) = log10(pd(0))
2184 1020
FORMAT(
' GLUONDISTRIBUTION OVER LOG10(X) ( Q**2=10**I;',
2186 CALL
plot(ab,xs,250,5,50,ymax,-
dy,pdmin,pdstep)
2187 ELSEIF ( iout.EQ.3 )
THEN
2191 b = float(i-1)*qqstep+qqmin
2202 CALL
jtpdis(x,vvv(i),1,1,pd)
2203 IF ( pd(0).GT.1.
d-30 ) xs(i,j) = log10(pd(0))
2206 1030
FORMAT(
' GLUONDISTRIBUTION OVER LOG10(Q**2) ( X=10**(-I)'
2208 CALL
plot(ab,xs,200,4,50,qqmin,qqstep,pdmin,pdstep)
2209 ELSEIF ( iout.EQ.4 )
THEN
2216 pt = (i-1)*ptstep+ptmin
2225 CALL
csj1m(pt,etac,dsig)
2226 IF ( dsig(0).GT.1.
d-30 ) xs(i,1) = log10(dsig(0))
2229 1040
FORMAT(
' DIFFERENTIAL HARD CROSS SECTION OVER PT , RAP.=0.')
2230 CALL
plot(ab,xs,50,1,50,ptmin,ptstep,xsmin,xsstep)
2249 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2251 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
2252 COMMON /hacons/ pi,pi2,pi4,gevtmb
2253 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
2254 COMMON /hapdco/ npdcor
2255 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
2256 COMMON /haoutl/ noutl,nouter,noutco
2260 COMMON /haxsec/ xsecta(2,-1:
maxpro,4,28),xsect(5,-1:
maxpro,28),
2261 & mxsect(0:2,-1:
maxpro,28)
2263 COMMON /lapene/ptthrz(28),ptthz2(28),indene
2267 CHARACTER*11 pdset,partic
2268 COMMON /peproc/ proc(0:
maxpro),pdset(23),partic(-1:1)
2269 dimension dsig(0:
maxpro),alam(23),q0s(23)
2270 DATA alam / 0.20d0, 0.29d0, 0.107d0, 0.250d0, 0.178d0, 0.25d0,
2271 * 0.10d0, 0.19d0, 0.190d0, 0.190d0, 0.190d0, 0.19d0,
2272 * 0.215d0,0.215d0,0.215d0,
2273 * 0.231d0,0.231d0,0.322d0, 0.247d0,
2274 * 0.168d0,0.2d0,0.2d0,0.202d0 /
2275 DATA q0s / 5.0d0 , 5.0d0 , 5.0d0 , 5.0d0 , 5.0d0 , 0.2d0,
2276 * 5.0d0 , 5.0d0 , 5.0d0 , 5.0d0 , 5.0d0 , 5.0d0,
2277 * 5.0d0 , 5.0d0 , 5.0d0 , 4.0d0 , 4.0d0 , 4.0d0,
2278 * 4.0d0 , 4.0d0 , 0.4d0 ,0.4d0 ,1.60d0 /
2280 WRITE(6,*)
' HARINI:NPD=',npd
2281 IF ( noutl.GE.1 )CALL
timdat
2282 alasqr = alam(npd)**2
2284 bqcd = pi4/(11.-(2./3.)*nf)
2288 IF ( ptini(i).LE..5d0.OR.ptini(i).GE.ecm*.5d0)ptini(i)=1.
d+30
2289 IF ( ptini(i).NE.1.
d+30 ) ini = ini+1
2293 IF ( ptini(j).LT.ptini(i) )
THEN
2302 xsect(3,m,indene) = 0.0
2303 xsect(4,m,indene) = 0.0
2304 mxsect(1,m,indene) = 0
2305 mxsect(2,m,indene) = 0
2314 xsecta(j,m,i,indene) = 0.0
2319 IF ( noutl.GE.10 )
WRITE(6,1060) ptini(i)
2320 1060
FORMAT(
' NORMALIZATION FOR PTMIN=',f10.4,
' CALCULATED')
2322 IF ( noutl.GE.10 )
WRITE(6,1070) ptini(i)
2323 1070
FORMAT(
' MAXIMA FOR PTMIN=',f10.4,
' CALCULATED')
2324 xsecta(1,0,i,indene) = ptini(i)
2327 xsecta(1,m,i,indene) = xsect(1,m,indene)
2328 xsecta(2,m,i,indene) = xsect(2,m,indene)
2336 xsect(5,m,indene) = dsig(m)
2342 IF ( noutl.GE.10 )
WRITE(6,
'(/,1X,70(1H*))')
2343 WRITE(6,1057) ptini(1),pdset(npd),
sqrt(alasqr),q0sqr
2345 &
' --- parameters of the hard scattering program ---',/,
2346 &
' MIN. PT :',f15.1,/,
2347 &
' PARTON-DISTR. :',a15,/,
2348 &
' LAMBDA :',f15.3,/,
2349 &
' Q0**2 :',f15.3,/)
2350 IF ( noutl.GE.1 )
THEN
2351 WRITE(6,1050) partic(nha),partic(nhb),ecm,ptini(1),pdset(npd),
2352 &
sqrt(alasqr),q0sqr,npdcor,nqqal,aqqal,nqqpd,aqqpd
2353 1050
FORMAT(/,1x,70(
'*'),/,
2354 &
' HARD SCATTERING PROGRAM IS INITIALIZED FOR',/,
2355 &
' PROJECTILE :',a15,/,
2356 &
' TARGET :',a15,/,
2357 &
' CM-ENERGY :',f15.1,/,
2358 &
' MIN. PT :',f15.1,/,
2359 &
' PARTON-DISTR. :',a15,/,
2360 &
' LAMBDA :',f15.3,/,
2361 &
' Q0**2 :',f15.3,/,
2362 &
' NPDCOR :',i15,/,
2364 &
' AQQAL :',f15.3,/,
2366 &
' AQQPD :',f15.3,/)
2373 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2375 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
2376 parameter( mxabwt = 1000 )
2377 parameter(
zero=0.d0,
one=1.d0)
2378 COMMON /hacons/ pi,pi2,pi4,gevtmb
2379 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
2380 COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
2384 COMMON /haxsec/ xsecta(2,-1:
maxpro,4,28),xsect(5,-1:
maxpro,28),
2385 & mxsect(0:2,-1:
maxpro,28)
2387 COMMON /lapene/ptthrz(28),ptthz2(28),indene
2390 dimension absz(mxabwt),weig(mxabwt)
2392 DATA f124 / 1.,0.,4.,2.,2.,2.,4.,1.,4.,4. /
2394 a = (2.*ptini(ind)/ecm)**2
2409 z2 = (1.-z1)*absz(i2)
2421 va =-0.5*w1/(w1+
z*w)
2423 vb =-0.5*faxx/(w1+2.*w*
z)
2425 vc =-
exp(hln+
z*wlog)
2429 s(1) =
s(1)+(1.+w)*2.25*(va*va*(3.-ua*va-va/(ua*ua))-ua)*
2431 s(2) =
s(2)+(vc*vc+uc*uc)*((16./27.)/uc-(4./3.)*vc)*fww*
2433 s(3) =
s(3)+(1.+w)*(1.+ua*ua)*(1.-(4./9.)*va*va/ua)*weig(i)
2434 s(5) =
s(5)+((4./9.)*(1.+ub*ub+(ub*ub+vb*vb)*vb*vb)-
2435 & (8./27.)*ua*ua*va)*weig(i)
2436 s(6) =
s(6)+(4./9.)*(ue*ue+ve*ve)*faxx*weig(i)
2437 s(7) =
s(7)+(1.+w)*((2./9.)*(1.+ua*ua+(1.+va*va)*va*va/
2438 & (ua*ua))-(4./27.)*va/ua)*weig(i)
2439 s(8) =
s(8)+(4./9.)*(1.+ub*ub)*weig(i)
2440 s(-1) =
s(-1)+(1.+vc*vc)*(vc/(uc*uc)-(4./9.))*fww*weig(i)
2442 s(4) =
s(2)*(9./32.)
2444 s2(m) = s2(m)+
s(m)*weig(i2)*w
2448 s1(m) = s1(m)+s2(m)*(1.-z1)*weig(i1)
2451 fff = pi*gevtmb*aln*aln/(
a*ecm*ecm)
2453 xsect(1,m,indene) = fff*f124(m)*s1(m)
2456 xsect(1,4,indene) = xsect(1,4,indene)*nf
2457 xsect(1,6,indene) = xsect(1,6,indene)*max(0,nf-1)
2464 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2466 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
2467 parameter( nkm = 5 )
2468 parameter( tiny= 1.
d-30 )
2469 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
2473 COMMON /haxsec/ xsecta(2,-1:
maxpro,4,28),xsect(5,-1:
maxpro,28),
2474 & mxsect(0:2,-1:
maxpro,28)
2476 COMMON /lapene/ptthrz(28),ptthz2(28),indene
2479 dimension
z(3),
d(3),ff(nkm)
2496 IF ( f2.GT.f3 )
z(i) =
z(i)-
d(i)
2497 IF ( f2.GT.f3 )
d(i) =-
d(i)
2502 IF ( f3.GT.f2 ) goto 20
2504 z(i) =
zz+0.5*
d(i)*(f3-f1)/max(tiny,f2+f2-f1-f3)
2505 IF ( abs(
zz-
z(i)).GT.
d(i)*0.1d0)CALL
hafdi1(nkon,
z,f1,ind)
2506 IF ( f1.LE.f2 )
z(i) =
zz
2509 IF ( abs(fold-f2)/f2.GT.0.002d0.OR. it.LT.3 ) goto 10
2512 xsect(2,1,indene) = ff(1)*xsect(1,1,indene)
2513 xsect(2,2,indene) = ff(2)*xsect(1,2,indene)
2514 xsect(2,3,indene) = ff(4)*xsect(1,3,indene)
2515 xsect(2,4,indene) = ff(1)*xsect(1,4,indene)
2516 xsect(2,5,indene) = ff(2)*xsect(1,5,indene)
2517 xsect(2,6,indene) = ff(2)*xsect(1,6,indene)
2518 xsect(2,7,indene) = ff(3)*xsect(1,7,indene)
2519 xsect(2,8,indene) = ff(5)*xsect(1,8,indene)
2520 xsect(2,-1,indene)= ff(4)*xsect(1,-1,indene)
2525 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2527 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
2528 parameter( nkm = 5 )
2529 parameter( tiny= 1.
d-30,
one=1.d0 ,tiny6=1.
d-06,
zero=0.d0)
2530 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
2531 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
2532 dimension
f(nkm),pda(-6:6),pdb(-6:6),
z(3)
2536 IF (
z(1).LE.0.0d0 .OR.
z(1).GE.1.0d0 )
RETURN
2537 IF (
z(2).LE.0.0d0 .OR.
z(2).GE.1.0d0 )
RETURN
2538 IF (
z(3).LT.0.0d0 .OR.
z(3).GT.1.0d0 )
RETURN
2539 a = (2.*ptini(ind)/ecm)**2
2542 y2 =-(1.-y1)+2.*(1.-y1)*
z(2)
2543 x1 = 0.5*(y2+
sqrt(y2*y2+4.*y1))
2545 w =
sqrt(max(tiny,1.-
a/y1))
2546 v =-0.5+w*(
z(3)-0.5)
2548 pt = max(ptini(ind),
sqrt(u*v*y1*ecm*ecm))
2550 IF ( nqqal.EQ.1 )
THEN
2552 ELSEIF ( nqqal.EQ.2 )
THEN
2553 qqal = aqqal*y1*ecm*ecm
2554 ELSEIF ( nqqal.EQ.3 )
THEN
2555 qqal = aqqal*y1*ecm*ecm*(u*v)**(1./3.)
2556 ELSEIF ( nqqal.EQ.4 )
THEN
2557 qqal = aqqal*y1*ecm*ecm*u*v/(1.+v*v+u*u)
2559 IF ( nqqpd.EQ.1 )
THEN
2561 ELSEIF ( nqqpd.EQ.2 )
THEN
2562 qqpd = aqqpd*y1*ecm*ecm
2563 ELSEIF ( nqqpd.EQ.3 )
THEN
2564 qqpd = aqqpd*y1*ecm*ecm*(u*v)**(1./3.)
2565 ELSEIF ( nqqpd.EQ.4 )
THEN
2566 qqpd = aqqpd*y1*ecm*ecm*u*v/(1.+v*v+u*u)
2568 factor = (bqcd/
log(max(qqal/alasqr,1.1*
one)))**2
2570 CALL
jtpdis(x1,qqpd,nha,0,pda)
2571 CALL
jtpdis(x2,qqpd,nhb,0,pdb)
2577 f(2) =
f(2)+pda(i)*pdb(-i)+pda(-i)*pdb( i)
2578 f(3) =
f(3)+pda(i)*pdb( i)+pda(-i)*pdb(-i)
2579 f(4) =
f(4)+pda(i)+pda(-i)
2580 f(5) =
f(5)+pdb(i)+pdb(-i)
2582 f(1) = pda(0)*pdb(0)
2583 t = pda(0)*
f(5)+pdb(0)*
f(4)
2584 f(5) =
f(4)*
f(5)-(
f(2)+
f(3))
2586 fdis = max(
zero,
f(nkon)*factor)
2591 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2593 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
2594 COMMON /hacons/ pi,pi2,pi4,gevtmb
2595 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
2596 COMMON /hapadi/ npdm
2597 COMMON /hapdco/ npdcor
2598 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
2599 COMMON /haoutl/ noutl,nouter,noutco
2600 COMMON /hacuts/ ptl,ptu,etacl,etacu,etadl,etadu
2601 COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
2602 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
2606 COMMON /haxsec/ xsecta(2,-1:
maxpro,4,28),xsect(5,-1:
maxpro,28),
2607 & mxsect(0:2,-1:
maxpro,28)
2609 COMMON /lapene/ptthrz(28),ptthz2(28),indene
2612 COMMON /haxsum/xshmx
2629 bqcd = pi4/(11.0-(2./3.)*nf)
2671 xsect(i,m,indene) = 0.0
2674 mxsect(1,m,indene) = 0
2675 mxsect(2,m,indene) = 0
2676 mxsect(0,m,indene) = 1
2682 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2684 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
2686 CHARACTER*11 pdset,partic
2687 COMMON /peproc/ proc(0:
maxpro),pdset(23),partic(-1:1)
2689 DATA proc /
'SUM OVER PROCESSES',
'G +G --> G +G ',
2690 &
'Q +QB --> G +G ',
'G +Q --> G +Q ',
2691 &
'G +G --> Q +QB ',
'Q +QB --> Q +QB ',
2692 &
'Q +QB --> QS +QBS',
'Q +Q --> Q +Q ',
2693 &
'Q +QS --> Q +QS ' /
2694 DATA pdset /
' EHLQ SET 1',
' EHLQ SET 2',
' MRS SET 1',
2695 &
' MRS SET 2',
' MRS SET 3',
' GRV LO ',
2696 &
' HMRS SET 1',
' HMRS SET 2',
' KMRS SET 1',
2697 &
' KMRS SET 2',
' KMRS SET 3',
' KMRS SET 4',
2698 &
' MRS(S0) ',
' MRS(D0) ',
' MRS(D-) ',
2699 &
' CTEQ 1M ',
' CTEQ 1MS ',
' CTEQ 1ML ',
2700 &
' CTEQ 1D ',
' CTEQ 1L ',
' GRV94LO1 ' ,
2701 &
' GRV98LO ',
' CTEQ96 '/
2702 DATA partic /
' ANTIPROTON',
' ',
' PROTON' /
2758 SUBROUTINE dor94lo (X, Q2, UV, DV, DEL, UDB, SB, GL)
2759 IMPLICIT DOUBLE PRECISION (
a -
z)
2762 lam2 = 0.2322 * 0.2322
2768 nu = 2.284 + 0.802 *
s + 0.055 * s2
2769 aku = 0.590 - 0.024 *
s
2770 bku = 0.131 + 0.063 *
s
2771 au = -0.449 - 0.138 *
s - 0.076 * s2
2772 bu = 0.213 + 2.669 *
s - 0.728 * s2
2773 cu = 8.854 - 9.135 *
s + 1.979 * s2
2774 du = 2.997 + 0.753 *
s - 0.076 * s2
2775 uv =
dor94fv(x, nu, aku, bku, au, bu, cu, du)
2777 nd = 0.371 + 0.083 *
s + 0.039 * s2
2779 bkd = 0.486 + 0.062 *
s
2780 ad = -0.509 + 3.310 *
s - 1.248 * s2
2781 bd = 12.41 - 10.52 *
s + 2.267 * s2
2782 cd = 6.373 - 6.208 *
s + 1.418 * s2
2783 dd = 3.691 + 0.799 *
s - 0.071 * s2
2784 dv =
dor94fv(x, nd, akd, bkd, ad, bd, cd, dd)
2786 ne = 0.082 + 0.014 *
s + 0.008 * s2
2787 ake = 0.409 - 0.005 *
s
2788 bke = 0.799 + 0.071 *
s
2789 ae = -38.07 + 36.13 *
s - 0.656 * s2
2790 be = 90.31 - 74.15 *
s + 7.645 * s2
2792 de = 7.486 + 1.217 *
s - 0.159 * s2
2793 del =
dor94fv(x, ne, ake, bke, ae, be, ce, de)
2797 akx = 0.410 - 0.232 *
s
2798 bkx = 0.534 - 0.457 *
s
2799 agx = 0.890 - 0.140 *
s
2801 cx = 0.320 + 0.683 *
s
2802 dx = 4.752 + 1.164 *
s + 0.286 * s2
2803 ex = 4.119 + 1.713 *
s
2804 esx = 0.682 + 2.978 *
s
2805 udb=
dor94fw(x,
s, alx, bex, akx, bkx, agx, bgx, cx,
dx, ex, esx)
2809 aks = 1.798 - 0.596 *
s
2810 as = -5.548 + 3.669 * ds - 0.616 *
s
2811 bs = 18.92 - 16.73 * ds + 5.168 *
s
2812 dst = 6.379 - 0.350 *
s + 0.142 * s2
2813 est = 3.981 + 1.638 *
s
2815 sb =
dor94fs(x,
s, als, bes, aks, as, bs, dst, est, ess)
2819 akg = 1.742 - 0.930 *
s
2821 ag = 7.486 - 2.185 *
s
2822 bg = 16.69 - 22.74 *
s + 5.779 * s2
2823 cg = -25.59 + 29.71 *
s - 7.296 * s2
2824 dg = 2.792 + 2.215 *
s + 0.422 * s2 - 0.104 * s3
2825 eg = 0.807 + 2.005 *
s
2826 esg = 3.841 + 0.316 *
s
2827 gl =
dor94fw(x,
s, alg, beg, akg, bkg, ag, bg, cg, dg, eg, esg)
2833 SUBROUTINE dor94ho (X, Q2, UV, DV, DEL, UDB, SB, GL)
2834 IMPLICIT DOUBLE PRECISION (
a -
z)
2837 lam2 = 0.248 * 0.248
2843 nu = 1.304 + 0.863 *
s
2844 aku = 0.558 - 0.020 *
s
2846 au = -0.113 + 0.283 *
s - 0.321 * s2
2847 bu = 6.843 - 5.089 *
s + 2.647 * s2 - 0.527 * s3
2848 cu = 7.771 - 10.09 *
s + 2.630 * s2
2849 du = 3.315 + 1.145 *
s - 0.583 * s2 + 0.154 * s3
2850 uv =
dor94fv(x, nu, aku, bku, au, bu, cu, du)
2852 nd = 0.102 - 0.017 *
s + 0.005 * s2
2853 akd = 0.270 - 0.019 *
s
2855 ad = 2.393 + 6.228 *
s - 0.881 * s2
2856 bd = 46.06 + 4.673 *
s - 14.98 * s2 + 1.331 * s3
2857 cd = 17.83 - 53.47 *
s + 21.24 * s2
2858 dd = 4.081 + 0.976 *
s - 0.485 * s2 + 0.152 * s3
2859 dv =
dor94fv(x, nd, akd, bkd, ad, bd, cd, dd)
2861 ne = 0.070 + 0.042 *
s - 0.011 * s2 + 0.004 * s3
2862 ake = 0.409 - 0.007 *
s
2863 bke = 0.782 + 0.082 *
s
2864 ae = -29.65 + 26.49 *
s + 5.429 * s2
2865 be = 90.20 - 74.97 *
s + 4.526 * s2
2867 de = 8.122 + 2.120 *
s - 1.088 * s2 + 0.231 * s3
2868 del =
dor94fv(x, ne, ake, bke, ae, be, ce, de)
2875 bgx = 3.210 - 1.866 *
s
2877 dx = 9.010 + 0.896 * ds + 0.222 * s2
2878 ex = 3.077 + 1.446 *
s
2879 esx = 3.173 - 2.445 * ds + 2.207 *
s
2880 udb=
dor94fw(x,
s, alx, bex, akx, bkx, agx, bgx, cx,
dx, ex, esx)
2884 aks = 1.690 + 0.650 * ds - 0.922 *
s
2885 as = -4.329 + 1.131 *
s
2886 bs = 9.568 - 1.744 *
s
2887 dst = 9.377 + 1.088 * ds - 1.320 *
s + 0.130 * s2
2888 est = 3.031 + 1.639 *
s
2889 ess = 5.837 + 0.815 *
s
2890 sb =
dor94fs(x,
s, als, bes, aks, as, bs, dst, est, ess)
2894 akg = 1.724 + 0.157 *
s
2895 bkg = 0.800 + 1.016 *
s
2896 ag = 7.517 - 2.547 *
s
2897 bg = 34.09 - 52.21 * ds + 17.47 *
s
2898 cg = 4.039 + 1.491 *
s
2899 dg = 3.404 + 0.830 *
s
2900 eg = -1.112 + 3.438 *
s - 0.302 * s2
2901 esg = 3.256 - 0.436 *
s
2902 gl =
dor94fw(x,
s, alg, beg, akg, bkg, ag, bg, cg, dg, eg, esg)
2908 SUBROUTINE dor94di (X, Q2, UV, DV, DEL, UDB, SB, GL)
2909 IMPLICIT DOUBLE PRECISION (
a -
z)
2912 lam2 = 0.248 * 0.248
2918 nu = 2.484 + 0.116 *
s + 0.093 * s2
2919 aku = 0.563 - 0.025 *
s
2920 bku = 0.054 + 0.154 *
s
2921 au = -0.326 - 0.058 *
s - 0.135 * s2
2922 bu = -3.322 + 8.259 *
s - 3.119 * s2 + 0.291 * s3
2923 cu = 11.52 - 12.99 *
s + 3.161 * s2
2924 du = 2.808 + 1.400 *
s - 0.557 * s2 + 0.119 * s3
2925 uv =
dor94fv(x, nu, aku, bku, au, bu, cu, du)
2927 nd = 0.156 - 0.017 *
s
2928 akd = 0.299 - 0.022 *
s
2929 bkd = 0.259 - 0.015 *
s
2930 ad = 3.445 + 1.278 *
s + 0.326 * s2
2931 bd = -6.934 + 37.45 *
s - 18.95 * s2 + 1.463 * s3
2932 cd = 55.45 - 69.92 *
s + 20.78 * s2
2933 dd = 3.577 + 1.441 *
s - 0.683 * s2 + 0.179 * s3
2934 dv =
dor94fv(x, nd, akd, bkd, ad, bd, cd, dd)
2936 ne = 0.099 + 0.019 *
s + 0.002 * s2
2937 ake = 0.419 - 0.013 *
s
2938 bke = 1.064 - 0.038 *
s
2939 ae = -44.00 + 98.70 *
s - 14.79 * s2
2940 be = 28.59 - 40.94 *
s - 13.66 * s2 + 2.523 * s3
2941 ce = 84.57 - 108.8 *
s + 31.52 * s2
2942 de = 7.469 + 2.480 *
s - 0.866 * s2
2943 del =
dor94fv(x, ne, ake, bke, ae, be, ce, de)
2947 akx = 0.326 + 0.150 *
s
2948 bkx = 0.956 + 0.405 *
s
2950 bgx = 3.794 - 2.359 * ds
2952 dx = 7.941 + 0.534 * ds - 0.940 *
s + 0.410 * s2
2953 ex = 3.049 + 1.597 *
s
2954 esx = 4.396 - 4.594 * ds + 3.268 *
s
2955 udb=
dor94fw(x,
s, alx, bex, akx, bkx, agx, bgx, cx,
dx, ex, esx)
2959 aks = 1.415 - 0.641 * ds
2960 as = 0.580 - 9.763 * ds + 6.795 *
s - 0.558 * s2
2961 bs = 5.617 + 5.709 * ds - 3.972 *
s
2962 dst = 13.78 - 9.581 *
s + 5.370 * s2 - 0.996 * s3
2963 est = 4.546 + 0.372 * s2
2964 ess = 5.053 - 1.070 *
s + 0.805 * s2
2965 sb =
dor94fs(x,
s, als, bes, aks, as, bs, dst, est, ess)
2970 bkg = 2.427 + 1.311 *
s - 0.153 * s2
2971 ag = 25.09 - 7.935 *
s
2972 bg = -14.84 - 124.3 * ds + 72.18 *
s
2973 cg = 590.3 - 173.8 *
s
2974 dg = 5.196 + 1.857 *
s
2975 eg = -1.648 + 3.988 *
s - 0.432 * s2
2976 esg = 3.232 - 0.542 *
s
2977 gl =
dor94fw(x,
s, alg, beg, akg, bkg, ag, bg, cg, dg, eg, esg)
2984 IMPLICIT DOUBLE PRECISION (
a -
z)
2991 FUNCTION dor94fw (X, S, AL, BE, AK, BK, A, B, C, D, E, ES)
2992 IMPLICIT DOUBLE PRECISION (
a -
z)
2995 dor94fw = (x**ak * (
a + x * (b + x*c)) * lx**
bk +
s**al
2996 1 * dexp(-
e +
sqrt(es *
s**be * lx))) * (1.- x)**
d
3000 FUNCTION dor94fs (X, S, AL, BE, AK, AG, B, D, E, ES)
3001 IMPLICIT DOUBLE PRECISION (
a -
z)
3005 dor94fs =
s**al / lx**ak * (1.+ ag*
dx + b*x) * (1.- x)**
d
3006 1 * dexp(-
e +
sqrt(es *
s**be * lx))
subroutine gset(AX, BX, NX, Z, W)
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
subroutine csj1m(PT, ETAC, DSIGM)
subroutine selhrd(MHARD, IJPVAL, IJTVAL, PTTHRE)
void fill(G4double x, G4double weight=1.)
subroutine csj1mi(PT, DSIGM)
subroutine hafdis(PDS, PDA, PDB, FDISTR)
subroutine structm(XX, QQ, UPV, DNV, USEA, DSEA, STR, CHM, BOT, TOP, GLU)
G4int mod(G4int a, G4int b)
subroutine harevt(MHARD, PT1IN)
subroutine plot(X, Y, N, M, MM, XO, DX, YO, DY)
subroutine xcheck(X1S, X2S, LINMAX)
subroutine phkmrs(XQ, QQ, PD, MODE)
function dor94fw(X, S, AL, BE, AK, BK, A, B, C, D, E, ES)
subroutine dor94ho(X, Q2, UV, DV, DEL, UDB, SB, GL)
subroutine dor94di(X, Q2, UV, DV, DEL, UDB, SB, GL)
subroutine po_grv98lo(ISET, X, Q2, UV, DV, US, DS, SS, GL)
subroutine csj2m(PT, ETAC, ETAD, DSIGMM)
double precision function rndm(RDUMMY)
const char * what(void) const
subroutine title(NA, NB, NCA, NCB)
static c2_log_p< float_type > & log()
make a *new object
function dor94fv(X, N, AK, BK, A, B, C, D)
subroutine hafdi1(NKON, Z, FDIS, IND)
static c2_sqrt_p< float_type > & sqrt()
make a *new object
subroutine recchk(LINMAX, X, IOPT)
subroutine dor94lo(X, Q2, UV, DV, DEL, UDB, SB, GL)
function dor94fs(X, S, AL, BE, AK, AG, B, D, E, ES)
float_type xmax() const
return the upper bound of the domain for this function as set by set_domain()
subroutine jtpdis(X, QQ, IHATYP, MSPR, PD)
static c2_exp_p< float_type > & exp()
make a *new object