17 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
19 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
20 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
21 COMMON /haenvi/ nindep
22 COMMON /haoutl/ noutl,nouter,noutco
24 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
25 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
28 CHARACTER*8 projty,targty
31 COMMON /user1/
title,projty,targty
32 COMMON /user2/cmener,sdfrac,ptlar,istruf,isingd,idubld
34 common/collis/
s,ijproj,ijtar,ptthr,ptthr2,iophrd,ijprlu,ijtalu
36 COMMON /strufu/istrum,istrut
52 IF((istruf.GE.16).OR.(istruf.LE.20))
THEN
58 IF ( ijproj.EQ.2 ) nha =-1
61 IF ( ijtar .EQ.2 ) nhb =-1
80 IF ( iopt.EQ.0 ) CALL
harini
84 SUBROUTINE selhrd(MHARD,IJPVAL,IJTVAL,PTTHRE)
108 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
110 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
112 CHARACTER*8 projty,targty
115 COMMON /user1/
title,projty,targty
116 COMMON /user2/cmener,sdfrac,ptlar,istruf,isingd,idubld
117 common/collis/
s,ijproj,ijtar,ptthr,ptthr2,iophrd,ijprlu,ijtalu
118 COMMON /abrhrd/xh1(mscahd),xh2(mscahd),ijhi1(mscahd),
119 *ijhi2(mscahd),ijhf1(mscahd),ijhf2(mscahd),phard1(mscahd,4),
121 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
122 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
123 COMMON /haoutl/ noutl,nouter,noutco
124 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
125 COMMON /harslt/ lscahd,lsc1hd,
126 & etahd(mscahd,2) ,pthd(mscahd),
127 & xhd(mscahd,2) ,vhd(mscahd) ,x0hd(mscahd,2),
128 & ninhd(mscahd,2) ,nouthd(mscahd,2),
129 & n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
130 DATA x1su/0./ , x2su/0./
134 IF (ioutpa.GE.3)
WRITE(6,221)
135 * mhard,ijpval,ijtval
136 221
FORMAT (
' SELHRD ',3i10)
149 IF( ioutpa.GT. 6 )
WRITE(6,*)
n,x1su,x2su,xh1(
n),xh2(
n)
153 IF ( iiia.GT. 0 .AND. iiia.LT.10 ) iii = sign(iiia+10,iii)
154 IF ( iiia.GE.10 ) iii = sign(iiia-10,iii)
155 IF ( iiia.GE.10 ) ijpval = 1
159 IF ( iiia.GT. 0 .AND. iiia.LT.10 ) iii = sign(iiia+10,iii)
160 IF ( iiia.GE.10 ) iii = sign(iiia-10,iii)
161 IF ( iiia.GE.10 ) ijtval = 1
169 ijhf1(
n) = nouthd(
n,1)
170 ijhf2(
n) = nouthd(
n,2)
173 phard1(
n,j) = prec(j,i3)
174 20 phard2(
n,j) = prec(j,i4)
175 phard1(
n,4) = prec(0,i3)
176 phard2(
n,4) = prec(0,i4)
181 IF (ioutpa.GE.3)
WRITE (6,101)
182 101
FORMAT(
' SELHRD OUTPUT FOR INITIAL STATE SCATTERED PARTONS')
185 *
WRITE (6,103)i,ijpval,ijtval,ijhi1(i),ijhi2(i),xh1(i),xh2(i)
186 103
FORMAT (
' I,IJPVAL,IJTVAL,IJHI1,IJHI2,XH1,XH2= ',5i5,2f12.6)
188 IF (ioutpa.GE.3)
WRITE (6,301)
189 301
FORMAT(
' SELHRD OUTPUT FOR FINAL STATE SCATTERED PARTONS')
192 *
WRITE (6,303)i,ijhf1(i),ijhf2(i),(phard1(i,iii),iii=1,4)
194 *
WRITE (6,303)i,ijhf1(i),ijhf2(i),(phard2(i,iii),iii=1,4)
195 303
FORMAT (
' I,IJHI1,IJHI2,PHARD1 OR PHARD2 ',3i5,4f16.6)
214 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
216 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
217 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
218 COMMON /haenvi/ nindep
219 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
221 pt1 = max(pt1in,ptini(1))
232 IF ( nindep.EQ.1 ) CALL
hisfil
246 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
248 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
249 parameter( tiny= 1.
d-30,
one=1.d0, zsmall=1.
d-3 )
250 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
251 COMMON /hapdco/ npdcor
252 COMMON /haoutl/ noutl,nouter,noutco
253 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
254 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
255 &
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
256 COMMON /haxik / xrest,yrest,zmax,axxmax,wemax
257 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
260 COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
262 COMMON /harslt/ lscahd,lsc1hd,
263 & etahd(mscahd,2) ,pthd(mscahd),
264 & xhd(mscahd,2) ,vhd(mscahd) ,x0hd(mscahd,2),
265 & ninhd(mscahd,2) ,nouthd(mscahd,2),
266 & n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
267 itype(l) =
mod(lrec1(l),100)-50
278 IF(itry.GT.ntry) goto 301
280 xrest = xshmx-nhard*sa
281 yrest = xshmx-nhard*sa
282 IF(xrest*yrest.LT.aa)
THEN
283 WRITE(6,*)
' ****************** HAMULT ****************** '
284 WRITE(6,*)
' IT IS NOT POSSIBLE TO PRODUCE ',nhard,
' POMERONS '
291 wemax =
sqrt(1-axxmax)
297 a = (2.*ptwant/ecm)**2
301 IF ( pt1.LT.ptini(i) .AND. i.GT.1 ) goto 50
303 xsect(1,m) = xsecta(1,m,i)
304 xsect(2,m) = xsecta(2,m,i)
317 etahd(ihard,1) = etac
318 etahd(ihard,2) = etad
321 if(zmax/
a-
one.lt.zsmall)
THEN
322 CALL
xcheck(x1s,x2s,linmax)
326 wemax=
sqrt(1.-axxmax)
328 IF(ihard.LT.nhard) goto 10
331 IF ( npdcor.EQ.1 .AND.
333 & (1.-x1s)*(1.-x2s).LT.
rndm(ai)*(1.-aa*ihard)**2 ) goto 5
344 IF ( abs(it).GT.10 .AND. ival.EQ.0 )
THEN
346 ELSEIF ( abs(it).GT.10 .AND. ival.EQ.1 )
THEN
347 it = sign(abs(it)-10,it)
348 lrec1(ind) = (lrec1(ind)/100)*100+50+it
352 nouthd(i,k) = itype(ind+2)
358 IF ( ihard.NE.nhard .AND. nouter.EQ.1 )
THEN
359 WRITE(6,1010) nhard,ihard
360 1010
FORMAT(
' ###### HAMULT : CANNOT PRODUCE',i3,
' HARD SCATT.',
361 &
'; ONLY',i3,
' ARE PRODUCED !!!')
368 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
370 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
371 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
372 COMMON /hapdco/ npdcor
373 COMMON /haoutl/ noutl,nouter,noutco
374 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
375 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
376 &
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
377 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
379 COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
381 COMMON /harslt/ lscahd,lsc1hd,
382 & etahd(mscahd,2) ,pthd(mscahd),
383 & xhd(mscahd,2) ,vhd(mscahd) ,x0hd(mscahd,2),
384 & ninhd(mscahd,2) ,nouthd(mscahd,2),
385 & n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
391 prec(1,lp) = prec(1,l)
392 prec(2,lp) = prec(2,l)
393 prec(3,lp) = prec(3,l)
394 prec(0,lp) = prec(0,l)
395 lrec1( lp) = lrec1( l)
396 lrec2( lp) = lrec2( l)
400 ELSEIF( iopt.EQ.1 )
THEN
404 IF( ptest.EQ.qtest )
THEN
409 WRITE(6,*)
' RECCHK: NO NEW LINMAX FOUND - LINMAX=',linmax
412 WRITE(6,*)
' RECCHK: IOPT OUT OF RANGE - 0 OR 1 - IOPT=',iopt
417 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
419 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
420 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
421 COMMON /hapdco/ npdcor
422 COMMON /haoutl/ noutl,nouter,noutco
423 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
424 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
425 &
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
426 COMMON /haxik / xrest,yrest,zmax,axxmax,wemax
427 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
430 COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
432 COMMON /harslt/ lscahd,lsc1hd,
433 & etahd(mscahd,2) ,pthd(mscahd),
434 & xhd(mscahd,2) ,vhd(mscahd) ,x0hd(mscahd,2),
435 & ninhd(mscahd,2) ,nouthd(mscahd,2),
436 & n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
437 parameter(
one=1d0, zsmall=1
d-3)
441 WRITE(6,*)
' ERROR IN XCHECK : IHARD < 1 ',ihard
448 IF(xhd(i,1).GT.
xmax)
THEN
452 IF(xhd(i,2).GT.
xmax)
THEN
460 xrest=xrest+xhd(imax,1)-
sqrt(
a)
461 yrest=yrest+xhd(imax,2)-
sqrt(
a)
464 wemax=
sqrt(1.-axxmax)
472 etahd(mh,1) = etahd(i,1)
473 etahd(mh,2) = etahd(i,2)
475 nprohd(mh) = nprohd(i)
478 CALL
recchk( 4*imax,xhd1,0)
481 IF(zmax/
a-
one.LT.zsmall) goto 50
486 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
488 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
489 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
490 &
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
492 COMMON /haxik / xrest,yrest,zmax,axxmax,wemax
493 parameter( tiny= 1.
d-30,
one=1.d0 ,tiny6=1.
d-06)
506 if(
rndm(1.1).gt.ww) goto 12
514 uu=umin*(c**2+1.)/2./c
515 if(uu.gt.2.*ym.and.uu.lt.ym+
z/ym) goto 13
522 if(xrest.ge.yrest)
then
525 if(xrest.eq.yrest)
then
526 if(
rndm(3.).gt.0.5)
then
544 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
546 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
547 parameter( tiny= 1.
d-30,
one=1.d0 ,tiny6=1.
d-06)
548 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
549 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
550 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
551 &
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
553 COMMON /haxik / xrest,yrest,zmax,axxmax,wemax
555 & 3.80, 0.65, 2.00, 0.65, 0.89, 0.45, 0.445, 0.89 /
559 v =-0.5*w1/(w1+
rndm(ai)*w)
561 r = (1.+w)*2.25*(v*v*(3.-u*v-v/(u*u))-u)
562 rmax=rm(1)*wemax*(1.+wemax)
564 IF(wik.GT.1.d0)
WRITE(6,*)
' HARKIN : WIK > 1 : ',m,
r
566 IF(wik.LT.
rndm(ai)) goto 10
567 IF (
rndm(aj).LE.0.5d0 ) v = u
568 ELSEIF ( m.EQ.2 .OR. m.EQ.4 )
THEN
571 v =-
exp(-0.6931472+
rndm(ai)*wl)
573 r = (u*u+v*v)*((16./27.)/u-(4./3.)*v)*(wl/w)*axx
574 IF (
r*w.LT.rm(m)*
rndm(ai) ) goto 20
575 IF (
rndm(aj).LE.0.5d0 ) v = u
576 ELSEIF ( m.EQ.3 )
THEN
578 v =-0.5*w1/(w1+
rndm(ai)*w)
580 r = (1.+w)*(1.+u*u)*(1.-(4./9.)*v*v/u)
581 rmax=rm(3)*wemax*(1.+wemax)
583 IF(wik.GT.1.d0)
WRITE(6,*)
' HARKIN : WIK > 1 : ',m,
r
585 IF(wik.LT.
rndm(ai)) goto 30
586 ELSEIF ( m.EQ.5 )
THEN
588 v =-0.5*axx/(w1+2.*
rndm(ai)*w)
590 r = (4./9.)*(1.+u*u+v*v*(u*u+v*v))-(8./27.)*u*u*v
593 IF(wik.GT.1.d0)
WRITE(6,*)
' HARKIN : WIK > 1 : ',m,
r
595 IF(wik.LT.
rndm(ai)) goto 50
596 ELSEIF ( m.EQ.6 )
THEN
598 v =-0.5*(1.+w)+
rndm(ai)*w
600 r = (4./9.)*(u*u+v*v)*axx
601 IF (
r*w.LT.rm(6)*
rndm(ai) ) goto 60
602 ELSEIF ( m.EQ.7 )
THEN
604 v =-0.5*w1/(w1+
rndm(ai)*w)
606 r = (1.+w)*((2./9.)*(1.+u*u+(1.+v*v)*v*v/(u*u))-(4./27.)*v/u)
607 rmax=rm(7)*wemax*(1.+wemax)
609 IF(wik.GT.1.d0)
WRITE(6,*)
' HARKIN : WIK > 1 : ',m,
r
611 IF(wik.LT.
rndm(ai)) goto 70
612 IF (
rndm(aj).LE.0.5d0 ) v = u
613 ELSEIF ( m.EQ.8 )
THEN
615 v =-0.5*axx/(w1+2.*
rndm(ai)*w)
620 IF(wik.GT.1.d0)
WRITE(6,*)
' HARKIN : WIK > 1 : ',m,
r
622 IF(wik.LT.
rndm(ai)) goto 80
623 ELSEIF ( m.EQ.-1 )
THEN
626 v =-
exp(-0.6931472+
rndm(ai)*wl)
628 r = (1.+v*v)*(v/(u*u)-(4./9.))*(wl/w)*axx
629 IF (
r*w.LT.rm(-1)*
rndm(ai) ) goto 90
632 v = max(min( v,-tiny6 ),-1.+tiny6 )
633 u = max(min(-1.e0-v,-tiny6 ),-1.+tiny6 )
644 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
646 COMMON /hacuts/ ptl,ptu,etacl,etacu,etadl,etadu
647 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
648 &
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
651 IF (
pt .LT.ptl .OR.
pt .GT.ptu
652 & .OR. etac.LT.etacl .OR. etac.GT.etacu
653 & .OR. etad.LT.etadl .OR. etad.GT.etadu ) iopt = 0
658 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
660 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
661 parameter( tiny= 1.
d-30,
one=1.d0 ,tiny6=1.
d-06)
662 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
663 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
664 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
665 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
666 &
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
667 dimension pda(-6:6),pdb(-6:6)
669 COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
674 IF ( nqqal.EQ.1 )
THEN
676 ELSEIF ( nqqal.EQ.2 )
THEN
677 qqal = aqqal*
x1*
x2*ecm*ecm
678 ELSEIF ( nqqal.EQ.3 )
THEN
679 qqal = aqqal*
x1*
x2*ecm*ecm*(u*v)**(1./3.)
680 ELSEIF ( nqqal.EQ.4 )
THEN
681 qqal = aqqal*
x1*
x2*ecm*ecm*u*v/(1.+v*v+u*u)
683 IF ( nqqpd.EQ.1 )
THEN
685 ELSEIF ( nqqpd.EQ.2 )
THEN
686 qqpd = aqqpd*
x1*
x2*ecm*ecm
687 ELSEIF ( nqqpd.EQ.3 )
THEN
688 qqpd = aqqpd*
x1*
x2*ecm*ecm*(u*v)**(1./3.)
689 ELSEIF ( nqqpd.EQ.4 )
THEN
690 qqpd = aqqpd*
x1*
x2*ecm*ecm*u*v/(1.+v*v+u*u)
692 alpha = bqcd/
log(max(qqal/alasqr,1.1*
one))
693 f = xsect(1,mspr)*alpha**2
698 IF ( mspr.EQ.1 .OR. mspr.EQ.4 )
THEN
706 s2 = s2+pda(i)*pdb(-i)+pda(-i)*pdb( i)
707 s3 = s3+pda(i)*pdb( i)+pda(-i)*pdb(-i)
708 s4 = s4+pda(i)+pda(-i)
709 s5 = s5+pdb(i)+pdb(-i)
711 IF ( mspr.EQ.2 .OR. mspr.EQ.5 .OR. mspr.EQ.6 )
THEN
713 ELSEIF ( mspr.EQ.3 .OR. mspr.EQ.-1 )
THEN
714 pds = pda(0)*s5+pdb(0)*s4
715 ELSEIF ( mspr.EQ.7 )
THEN
717 ELSEIF ( mspr.EQ.8 )
THEN
728 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
730 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
731 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
732 COMMON /haoutl/ noutl,nouter,noutco
733 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
734 COMMON /hasca / ptwant,
a,aln,z1max,z1dif,z2max,z2dif,
735 &
pt,etac,etad,
x1,
x2,v,u,w,w1,axx,
weight,mspr,irejsc
736 dimension pda(-6:6),pdb(-6:6)
737 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
739 COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
745 IF ( mxsect(0,m).EQ.1 ) xsect(2,0) = xsect(2,0)+xsect(2,m)
756 b =
rndm(ai)*xsect(2,0)
760 IF ( mxsect(0,mspr).EQ.1 ) sum = sum+xsect(2,mspr)
761 IF ( sum.LT.b .AND. mspr.LT.
maxpro ) goto 20
766 IF ( iopt.EQ.0 ) goto 10
770 IF(
f .LE. 1.
d-15 )
f=0.
771 xsect(3,mspr) = xsect(3,mspr)+
f
772 xsect(4,mspr) = xsect(4,mspr)+
f*
f
773 mxsect(1,mspr) = mxsect(1,mspr)+1
792 mxsect(2,mspr) = mxsect(2,mspr)+1
793 IF ( mspr.EQ.-1 ) mspr = 3
796 scheck =
rndm(ai)*pds
797 IF ( mspr.EQ.1 .OR. mspr.EQ.4 )
THEN
800 ELSEIF ( mspr.EQ.2 .OR. mspr.EQ.5 .OR. mspr.EQ.6 )
THEN
802 IF ( ia.EQ.0 ) goto 610
803 sum = sum+pda(ia)*pdb(-ia)
804 IF ( sum.GE.scheck ) goto 620
807 ELSEIF ( mspr.EQ.3 )
THEN
810 IF ( ia.EQ.0 ) goto 630
811 sum = sum+pda(0)*pdb(ia)
812 IF ( sum.GE.scheck ) goto 640
813 sum = sum+pda(ia)*pdb(0)
814 IF ( sum.GE.scheck ) goto 650
819 ELSEIF ( mspr.EQ.7 )
THEN
821 IF ( ia.EQ.0 ) goto 660
822 sum = sum+pda(ia)*pdb(ia)
823 IF ( sum.GE.scheck ) goto 670
826 ELSEIF ( mspr.EQ.8 )
THEN
828 IF ( ia.EQ.0 ) goto 690
830 IF ( abs(ib).EQ.abs(ia) .OR. ib.EQ.0 ) goto 680
831 sum = sum+pda(ia)*pdb(ib)
832 IF ( sum.GE.scheck ) goto 700
840 IF ( mspr.EQ.2 )
THEN
843 ELSEIF ( mspr.EQ.4 )
THEN
844 ic =
int(float(nf+nf)*
rndm(ai))+1
845 IF ( ic.GT.nf ) ic = nf-ic
847 ELSEIF ( mspr.EQ.6 )
THEN
848 ic =
int(float(nf+nf-2)*
rndm(ai))+1
849 IF ( ic.GT.nf-1 ) ic = nf-1-ic
850 IF ( abs(ic).EQ.abs(ia) ) ic = sign(nf,ic)
856 IF ( ((a1*a1)+(a2*a2)).GT.1.0d0 ) goto 30
857 cosphi = ((a1*a1)-(a2*a2))/((a1*a1)+(a2*a2))
858 sinphi = sign(((a1*a2)+(a1*a2))/((a1*a1)+(a2*a2)),
rndm(ai)-0.5)
860 IF (
rndm(ai)*pda(ia).GT.pda(-ia) ) ia = sign(abs(ia)+10,ia)
861 IF (
rndm(aj)*pdb(ib).GT.pdb(-ib) ) ib = sign(abs(ib)+10,ib)
866 prec(3,line) = 0.5*ecm*
x1
867 prec(0,line) = prec(3,line)
868 lrec1(line) = ia+50+100*mspr
873 prec(3,line) =-0.5*ecm*
x2
874 prec(0,line) =-prec(3,line)
878 prec(1,line) =
pt*cosphi
879 prec(2,line) =
pt*sinphi
880 prec(3,line) =-0.5*ecm*(u*
x1-v*
x2)
881 prec(0,line) =-0.5*ecm*(u*
x1+v*
x2)
885 prec(1,line) =-
pt*cosphi
886 prec(2,line) =-
pt*sinphi
887 prec(3,line) =-0.5*ecm*(v*
x1-u*
x2)
888 prec(0,line) =-0.5*ecm*(v*
x1+u*
x2)
895 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
897 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
898 COMMON /haoutl/ noutl,nouter,noutco
899 COMMON /haevnt/ pt1,pt2,nhard,ntry,ihard,itry,irejev
900 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
901 COMMON /harslt/ lscahd,lsc1hd,
902 & etahd(mscahd,2) ,pthd(mscahd),
903 & xhd(mscahd,2) ,vhd(mscahd) ,x0hd(mscahd,2),
904 & ninhd(mscahd,2) ,nouthd(mscahd,2),
905 & n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
908 IF ( noutl.GE.4 )
THEN
909 WRITE(6,1010) nhard,ihard,irejev
910 1010
FORMAT(
' ===HARD EVENT=== NHARD,NTRUE,REJECTIONS ',3i5,/
911 &
' IA IB IC ID XA XB PT YC YD',
914 phi = atan2(prec(1,4*
n-1),prec(2,4*
n-1))
915 WRITE(6,1020) ninhd(
n,1),ninhd(
n,2),nouthd(
n,1),nouthd(
n,2),
916 & xhd(
n,1),xhd(
n,2),pthd(
n),etahd(
n,1),etahd(
n,2),
phi
917 1020
FORMAT(1
x,4i3,2f11.7,4f9.3)
920 IF ( noutl.GE.6 )
THEN
923 1030
FORMAT(
' EVENTRECORD')
925 WRITE(6,1040) lrec1(l),lrec2(l),(prec(i,l),i=0,3)
927 1040
FORMAT(2i12,4(1pe12.4))
944 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
946 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
953 IF ( mspr.EQ.1 .OR. mspr.EQ.4 ) maxfl = 0
959 IF ( npd.EQ.1 .OR. npd.EQ.2 )
THEN
961 WRITE(6,*)
' unsupported PDF number: ',npd
962 ELSEIF ( npd.GE.3 .AND. npd.LE.5 )
THEN
964 WRITE(6,*)
' unsupported PDF number: ',npd
967 WRITE(6,*)
' unsupported PDF number: ',npd
970 WRITE(6,*)
' unsupported PDF number: ',npd
973 WRITE(6,*)
' unsupported PDF number: ',npd
976 WRITE(6,*)
' unsupported PDF number: ',npd
977 ELSEIF(npd.EQ.10)
THEN
979 WRITE(6,*)
' unsupported PDF number: ',npd
980 ELSEIF(npd.EQ.11)
THEN
982 WRITE(6,*)
' unsupported PDF number: ',npd
983 ELSEIF(npd.EQ.12)
THEN
985 WRITE(6,*)
' unsupported PDF number: ',npd
987 ELSEIF((npd.GE.13).AND.(npd.LE.20))
THEN
989 WRITE(6,*)
' unsupported PDF number: ',npd
990 ELSEIF((npd.GE.21).AND.(npd.LE.23))
THEN
993 WRITE(6,*)
' unsupported PDF number: ',npd
997 IF ( pd(i).LT.1.
d-15 ) pd(i) = 0.0
1000 IF ( ihatyp.EQ.-1 )
THEN
1074 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1083 dimension pdff(-6:2)
1095 IF((mode.EQ.15))
THEN
1118 IF((mode.EQ.16))
THEN
1142 IF((mode.EQ.17))
THEN
1143 CALL
structm(
x,
scale,upv,dnv,usea,dsea,str,chm,bot,top,glu)
1190 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1192 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1193 COMMON /hacons/ pi,pi2,pi4,gevtmb
1194 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
1195 COMMON /hapadi/ npdm
1196 COMMON /hapdco/ npdcor
1197 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
1198 COMMON /haenvi/ nindep
1199 COMMON /haoutl/ noutl,nouter,noutco
1200 COMMON /hacuts/ ptl,ptu,etacl,etacu,etadl,etadu
1201 COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
1202 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
1203 COMMON /harslt/ lscahd,lsc1hd,
1204 & etahd(mscahd,2) ,pthd(mscahd),
1205 & xhd(mscahd,2) ,vhd(mscahd) ,x0hd(mscahd,2),
1206 & ninhd(mscahd,2) ,nouthd(mscahd,2),
1207 & n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
1209 COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
1224 2000
FORMAT(
'1***************************************************'
1225 & ,/,
' MONTE-CARLO GENERATION OF HARD HADRONIC SCATTERINGS'
1226 & ,/,
' ***************************************************',/)
1231 IF ( inp(1:1).EQ.
'-' ) goto 10
1233 READ(inp,1012,err=99) cw,
what
1238 1011
FORMAT(
' *********.* CONTROL.CARD*****.',4(9
x,
'.'),/,1
x,a70,/)
1239 1012
FORMAT(a8,2
x,6e10.0)
1240 1013
FORMAT(
' CARD IS INCORRECT, IGNORE AND TRY NEXT CARD',/)
1244 IF ( cw.EQ.
'END ' )
THEN
1249 1030
FORMAT(
' ******** END OF PROGRAM EXECUTION ********')
1252 ELSEIF ( cw.EQ.
'COMMENT ' )
THEN
1261 20
WRITE(6,1050) commnt
1265 ELSEIF ( cw.EQ.
'ENERGYPT' )
THEN
1275 IF (
what(1).GT.0.0d0 ) ecm =
what(1)
1277 ptini(i) =
what(i+1)
1280 ELSEIF ( cw.EQ.
'PARDISTR' )
THEN
1301 IF ( ipd.GE.1 .AND. ipd.LE.15 ) npd = ipd
1302 IF ( ipdm.EQ.1 ) npdm = ipdm
1304 ELSEIF ( cw.EQ.
'CUTS ' )
THEN
1326 IF ( ptu .LE.ptl ) ptu = ptl +1.0
1327 IF ( etacu.LE.etacl ) etacu = etacl+1.0
1328 IF ( etadu.LE.etadl ) etadu = etadl+1.0
1330 ELSEIF ( cw.EQ.
'INTPOINT' )
THEN
1352 ELSEIF ( cw.EQ.
'FLAVOR ' )
THEN
1357 IF ( nff.GE.0 .AND. nff .LE.6 ) nf = nff
1359 ELSEIF ( cw.EQ.
'PARTICLE' )
THEN
1368 IF ( abs(iha).EQ.1 ) nha = iha
1370 IF ( abs(ihb).EQ.1 ) nhb = ihb
1372 ELSEIF ( cw.EQ.
'OUTPUT ' )
THEN
1382 ELSEIF ( cw.EQ.
'INIT ' )
THEN
1388 ELSEIF ( cw.EQ.
'TESTINCL' )
THEN
1397 IF ( j.GE.1 .AND. j.LE.4 ) CALL
hatest(j)
1400 ELSEIF ( cw.EQ.
'TESTMC ' )
THEN
1410 IF ( nevt.LE.0 ) nevt = 100
1420 ELSEIF ( cw.EQ.
'SUBPRON ' )
THEN
1427 IF ( m.GE.1 .AND. m.LE.
maxpro ) mxsect(0,m) = 1
1429 mxsect(0,-1) = mxsect(0,3)
1431 ELSEIF ( cw.EQ.
'SUBPROFF' )
THEN
1438 IF ( m.GE.1 .AND. m.LE.
maxpro ) mxsect(0,m) = 0
1440 mxsect(0,-1) = mxsect(0,3)
1442 ELSEIF ( cw.EQ.
'HISOUT ' )
THEN
1455 IF ( j.GE.1 .AND. j.LE.6 ) CALL
hisout(j)
1458 ELSEIF ( cw.EQ.
'HISINI ' )
THEN
1464 ELSEIF ( cw.EQ.
'HARDSCAL' )
THEN
1480 IF (
what(2).GT.0.d0 ) aqqal =
what(2)
1482 IF (
what(4).GT.0.d0 ) aqqpd =
what(4)
1493 ELSEIF ( cw.EQ.
'PARDISCO' )
THEN
1504 9999
FORMAT(
' ##### UNKNOWN CODEWORD; CARD IS IGNORED ###',/)
1521 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1523 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1524 parameter( tiny= 1.
d-30, onep1=1.1d0 ,tiny6=1.
d-06)
1525 COMMON /hacons/ pi,pi2,pi4,gevtmb
1526 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
1527 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
1528 DOUBLE PRECISION ec,ed,xa,xb,sp,tp,up,
tt,uu,
1530 dimension dsigmm(0:
maxpro),pda(-6:6),pdb(-6:6)
1540 IF ( xa.GE.1.d0 .OR. xb.GE.1.d0 )
RETURN
1548 IF ( nqqal.EQ.1 )
THEN
1550 ELSEIF ( nqqal.EQ.2 )
THEN
1552 ELSEIF ( nqqal.EQ.3 )
THEN
1553 qqal = aqqal*sp*(up*tp)**(1./3.)
1554 ELSEIF ( nqqal.EQ.4 )
THEN
1555 qqal = aqqal*sp*up*tp/(1.+
tt+uu)
1557 IF ( nqqpd.EQ.1 )
THEN
1559 ELSEIF ( nqqpd.EQ.2 )
THEN
1561 ELSEIF ( nqqpd.EQ.3 )
THEN
1562 qqpd = aqqpd*sp*(up*tp)**(1./3.)
1563 ELSEIF ( nqqpd.EQ.4 )
THEN
1564 qqpd = aqqpd*sp*up*tp/(1.+
tt+uu)
1567 alpha = bqcd/
log(max(qqal/alasqr,onep1))
1568 factor = pi2*gevtmb*
pt*(alpha/sp)**2
1580 s2 = s2+pda(i)*pdb(-i)+pda(-i)*pdb( i)
1581 s3 = s3+pda(i)*pdb( i)+pda(-i)*pdb(-i)
1582 s4 = s4+pda(i)+pda(-i)
1583 s5 = s5+pdb(i)+pdb(-i)
1587 dsigm(1) = 2.25*(3.-((up*tp)+up/
tt+tp/uu))
1588 dsigm(6) = (4./9.)*(uu+
tt)
1589 dsigm(8) = (4./9.)*(1.+uu)/
tt
1590 dsigm(2) = (16./27.)*(uu+
tt)/(up*tp)-3.*dsigm(6)
1591 dsigm(3) = ((1.+uu)/
tt)-(4./9.)*(1.+uu)/up
1592 dsigm(4) = (9./32.)*dsigm(2)
1593 dsigm(5) = dsigm(6)+dsigm(8)-(8./27.)*uu/tp
1594 dsigm(7) = 0.5*(dsigm(8)+(4./9.)*(1.+
tt)/uu-(8./27.)/(up*tp))
1596 dsigm(1) = factor*dsigm(1)*s1
1597 dsigm(2) = factor*dsigm(2)*s2
1598 dsigm(3) = factor*dsigm(3)*(pda(0)*s5+pdb(0)*s4)
1599 dsigm(4) = factor*dsigm(4)*s1*nf
1600 dsigm(5) = factor*dsigm(5)*s2
1601 dsigm(6) = factor*dsigm(6)*s2*max(0,(nf-1))
1602 dsigm(7) = factor*dsigm(7)*s3
1603 dsigm(8) = factor*dsigm(8)*(s4*s5-(s2+s3))
1606 dsigm(0) = dsigm(0)+dsigm(m)
1609 dsigmm(m) = dsigm(m)
1617 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1619 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1623 parameter( tiny= 1.
d-20 )
1624 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
1625 COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
1627 dimension absz(32),weig(32)
1634 IF ( arg.LE.ec .OR. arg.LE.1./ec )
RETURN
1636 edl =-
log(arg-1./ec)
1638 CALL
gset(edl,edu,npoint,absz,weig)
1640 CALL
csj2m(
pt,etac,absz(i),dsig1)
1643 pctrl= dsig1(m)/tiny
1645 IF( pctrl.GE.1.d0 )
THEN
1646 dsigm(m) = dsigm(m)+weig(i)*dsig1(m)
1656 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1658 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1659 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
1660 COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
1662 dimension absz(32),weig(32)
1668 IF ( amt.GE.1.d0 )
RETURN
1669 ecu =
log((
sqrt(1.-amt*amt)+1.)/amt)
1672 CALL
gset(ecl,ecu,npoint,absz,weig)
1676 dsigm(m) = dsigm(m)+weig(i)*dsig1(m)
1687 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1689 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1690 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
1691 COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
1692 COMMON /xsecpt/ ptcut,sigs,dsigh
1694 dimension absz(32),weig(32)
1700 IF ( ptini(1).GE.ecm/2.d0 )
RETURN
1703 ptmax = min(fac*ptmin,ecm/2.)
1708 1000
FORMAT(1
x,
' d sigma/ p_t d p_t ',e12.5)
1712 ex =
log(sig1/(dsig1(0)+1.
e-30))/
log(fac)
1715 IF ( ptmin.GE.ptmax ) goto 40
1718 CALL
gset(rl,ru,npoint,absz,weig)
1723 f = weig(i)*
pt/(
r*ex1)
1725 dsigm(m) = dsigm(m)+
f*dsig1(m)
1747 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1749 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1750 parameter( tiny= 1.
d-30,
one=1.d0 ,tiny6=1.
d-06,
zero=0.)
1751 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
1753 COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
1756 CHARACTER*11 pdset,partic
1757 COMMON /peproc/ proc(0:
maxpro),pdset(23),partic(-1:1)
1759 COMMON /histo / pt10,dpt1,eta10,deta1,pt20,dpt2,eta20,deta2,
1760 &
x(50,-5:5),ab(50,-5:5),hpe(50,-5:5),hep(50,5),
1761 & hpm(50,8),hem(50,8),hp(50),he(50),
1770 xsect(2,0) = xsect(2,-1)
1771 mxsect(1,0) = mxsect(1,-1)
1772 mxsect(2,0) = mxsect(2,-1)
1774 mxsect(1,0) = mxsect(1,0)+mxsect(1,m)
1775 mxsect(2,0) = mxsect(2,0)+mxsect(2,m)
1776 7 xsect(2,0) = xsect(2,0)+xsect(2,m)
1778 1010
FORMAT(1
x,20(
'=='),
' HISTO-OUTPUT ',i2,1
x,10(
'=='),/)
1779 IF ( iout.EQ.1 )
THEN
1781 1040
FORMAT(
' PROCESS',15
x,
'EVENTS',22
x,
'HARD CROSS SECTION',/,
1782 & 25
x,
'TOTAL ACCEPT.',10
x,
'MONTE-CARLO',11
x,
'INCLUSIVE')
1788 IF ( mxsect(1,m).GT.0 )
THEN
1789 sig(m) = xsect(3,m)/mxsect(1,m)
1790 stdev(m) =
sqrt(max(
zero,xsect(4,m)-xsect(3,m)*sig(m)))/
1793 IF ( m.EQ.3 .AND. mxsect(1,-1).GT.0 )
THEN
1794 sigg = xsect(3,-1)/mxsect(1,-1)
1795 sig(3) = sig(3)+sigg
1797 & +
sqrt(max(
zero,xsect(4,-1)-xsect(3,-1)*sigg))/mxsect(1,-1)
1799 sigsum = sigsum+sig(m)
1800 stdevs = stdevs+stdev(m)
1802 mxsect(1,3) = mxsect(1,3)+mxsect(1,-1)
1803 mxsect(2,3) = mxsect(2,3)+mxsect(2,-1)
1804 WRITE(6,1050) proc(0),(mxsect(l,0),l=0,2),
1805 & sigsum,stdevs,xsect(5,0)
1807 IF ( mxsect(0,m).EQ.1 )
WRITE(6,1050) proc(m),
1808 & (mxsect(l,m),l=0,2),sig(m),stdev(m),xsect(5,m)
1810 1050
FORMAT(a19,i3,2i8,e14.4,
' +- ',e10.4,e14.4)
1811 mxsect(1,3) = mxsect(1,3)-mxsect(1,-1)
1812 mxsect(2,3) = mxsect(2,3)-mxsect(2,-1)
1813 ELSEIF ( iout.EQ.2 )
THEN
1814 fac = xsect(2,0)/(dpt1*mxsect(1,0))
1816 ab(i,1) = pt10+(i-1)*dpt1
1817 IF ( hp(i).GT.1.
d-35 )
x(i,1) = log10(fac*hp(i))
1820 1060
FORMAT(
' JET CROSS SECTION PT-DISTRIBUTION',/)
1821 CALL
plot(ab(1,1),
x(1,1),50,1,50,pt10,dpt1,xsmin,xsstep)
1822 ELSEIF ( iout.EQ.3 )
THEN
1823 fac = xsect(2,0)/(dpt1*mxsect(1,0))
1825 pt = pt10+(i-1)*dpt1
1828 IF ( hpm(i,j).GT.1.
d-35 )
x(i,j-6) = log10(fac*hpm(i,j))
1832 1070
FORMAT(
' JET CROSS SECTION PT-DISTRIBUTION',/,
1833 &
' FOR THE DIFF. SUBPROCESSES',/)
1834 CALL
plot(ab,
x,400,8,50,pt10,dpt1,xsmin,xsstep)
1835 ELSEIF ( iout.EQ.4 )
THEN
1836 fac = xsect(2,0)/(dpt1*deta1*mxsect(1,0))
1838 pt = pt10+(i-1)*dpt1
1841 IF ( hpe(i,j).GT.1.
d-35 )
x(i,j) = log10(fac*hpe(i,j))
1844 WRITE(6,1080) eta10,-eta10
1845 1080
FORMAT(
' JET CROSS SECTION PT-DISTRIBUTION',/,
1846 &
' RAP.=',f5.2,
'...',
f4.2,/)
1847 CALL
plot(ab,
x,550,11,50,pt10,dpt1,xsmin,xsstep)
1848 ELSEIF ( iout.EQ.5 )
THEN
1849 fac = xsect(2,0)/(deta2*dpt2*mxsect(1,0))
1851 eta = eta20+(i-1)*deta2
1854 IF ( hep(i,j).GT.1.
d-35 )
x(i,j) = log10(fac*hep(i,j))
1857 WRITE(6,1090) pt20,pt20+4.*dpt2
1858 1090
FORMAT(
' JET CROSS SECTION RAP.-DISTRIBUTION',/,
1859 &
' PT=',f6.2,
'...',f6.2,/)
1860 CALL
plot(ab(1,1),
x(1,1),250,5,50,eta20,deta2,xsmin,xsstep)
1861 ELSEIF ( iout.EQ.6 )
THEN
1862 fac = xsect(2,0)/(deta2*mxsect(1,0))
1864 eta = eta20+(i-1)*deta2
1867 IF ( hem(i,j).GT.1.
d-35 )
x(i,j-6) = log10(fac*hem(i,j))
1871 1100
FORMAT(
' JET CROSS SECTION RAP.-DISTRIBUTION',/,
1872 &
' FOR THE DIFF. SUBPROCESSES',/)
1873 CALL
plot(ab,
x,400,8,50,eta20,deta2,xsmin,xsstep)
1882 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1884 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1886 COMMON /histo / pt10,dpt1,eta10,deta1,pt20,dpt2,eta20,deta2,
1887 &
x(50,-5:5),ab(50,-5:5),hpe(50,-5:5),hep(50,5),
1888 & hpm(50,8),hem(50,8),hp(50),he(50),
1915 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1917 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1918 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
1919 COMMON /harslt/ lscahd,lsc1hd,
1920 & etahd(mscahd,2) ,pthd(mscahd),
1921 & xhd(mscahd,2) ,vhd(mscahd) ,x0hd(mscahd,2),
1922 & ninhd(mscahd,2) ,nouthd(mscahd,2),
1923 & n0inhd(mscahd,2),nbrahd(mscahd,2),nprohd(mscahd)
1925 COMMON /histo / pt10,dpt1,eta10,deta1,pt20,dpt2,eta20,deta2,
1926 &
x(50,-5:5),ab(50,-5:5),hpe(50,-5:5),hep(50,5),
1927 & hpm(50,8),hem(50,8),hp(50),he(50),
1934 ipt1 =
int((pthd(
n)-pt10)/dpt1)+1
1935 ieta1 =
int((etahd(
n,k)-eta10)/deta1+0.5)-5
1936 ipt2 =
int((pthd(
n)-pt20)/dpt2)+1
1937 ieta2 =
int((etahd(
n,k)-eta20)/deta2+0.5)
1938 IF ( ipt1.GE. 1 .AND. ipt1.LE.50 )
THEN
1939 hpm(ipt1,mspr) = hpm(ipt1,mspr)+1.
1940 hp(ipt1) = hp(ipt1)+1.
1941 IF ( abs(ieta1).LE.5 ) hpe(ipt1,ieta1) = hpe(ipt1,ieta1)+1.
1943 IF ( ieta2.GE. 1 .AND. ieta2.LE.50 )
THEN
1944 hem(ieta2,mspr) = hem(ieta2,mspr)+1.
1945 he(ieta2) = he(ieta2)+1.
1946 IF ( ipt2.GE.1 .AND. ipt2.LE.5 ) hep(ieta2,ipt2) =
1947 & hep(ieta2,ipt2)+1.
1955 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1957 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
1958 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
1960 CHARACTER*11 pdset,partic
1961 COMMON /peproc/ proc(0:
maxpro),pdset(23),partic(-1:1)
1963 COMMON /histo / vvv(50),xs(50,6),ab(50,6),dsig(0:
maxpro),pd(-6:6),
1965 IF ( iout.EQ.1 )
THEN
1967 WRITE(6,1010) ecm,ptini(1),(proc(m),dsig(m),m=0,
maxpro)
1968 1010
FORMAT(
' HARD CROSS SECTIONS FOR SINGLE PROCESSES',/,
1969 &
' AT CM-ENERGY=',e8.1,
' AND PTMIN=',f5.1,/,9(a25,e14.6,/))
1970 ELSEIF ( iout.EQ.2 )
THEN
1988 CALL
jtpdis(vvv(j),qq,1,1,pd)
1989 IF ( pd(0).GT.1.
d-30 ) xs(j,i) = log10(pd(0))
1992 1020
FORMAT(
' GLUONDISTRIBUTION OVER LOG10(X) ( Q**2=10**I;',
1994 CALL
plot(ab,xs,250,5,50,ymax,-
dy,pdmin,pdstep)
1995 ELSEIF ( iout.EQ.3 )
THEN
1999 b = float(i-1)*qqstep+qqmin
2011 IF ( pd(0).GT.1.
d-30 ) xs(i,j) = log10(pd(0))
2014 1030
FORMAT(
' GLUONDISTRIBUTION OVER LOG10(Q**2) ( X=10**(-I)'
2016 CALL
plot(ab,xs,200,4,50,qqmin,qqstep,pdmin,pdstep)
2017 ELSEIF ( iout.EQ.4 )
THEN
2024 pt = (i-1)*ptstep+ptmin
2034 IF ( dsig(0).GT.1.
d-30 ) xs(i,1) = log10(dsig(0))
2037 1040
FORMAT(
' DIFFERENTIAL HARD CROSS SECTION OVER PT , RAP.=0.')
2038 CALL
plot(ab,xs,50,1,50,ptmin,ptstep,xsmin,xsstep)
2057 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2059 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
2060 COMMON /hacons/ pi,pi2,pi4,gevtmb
2061 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
2062 COMMON /hapdco/ npdcor
2063 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
2064 COMMON /haoutl/ noutl,nouter,noutco
2066 COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
2069 CHARACTER*11 pdset,partic
2070 COMMON /peproc/ proc(0:
maxpro),pdset(23),partic(-1:1)
2071 dimension dsig(0:
maxpro),alam(23),q0s(23)
2072 DATA alam / 0.20, 0.29, 0.107, 0.250, 0.178, 0.25,
2073 * 0.10, 0.19, 0.190, 0.190, 0.190, 0.19,
2074 * 0.215,0.215,0.215,
2075 * 0.231,0.231,0.322, 0.247, 0.168,0.2,0.2,0.202 /
2076 DATA q0s / 5.0 , 5.0 , 5.0 , 5.0 , 5.0 , 0.2,
2077 * 5.0 , 5.0 , 5.0 , 5.0 , 5.0 , 5.0,
2078 * 5.0 , 5.0 , 5.0 , 4.0 , 4.0 , 4.0,
2079 * 4.0 , 4.0 , 0.4 ,0.4 ,1.60 /
2081 IF ( noutl.GE.1 )CALL
timdat
2082 alasqr = alam(npd)**2
2084 bqcd = pi4/(11.-(2./3.)*nf)
2088 IF ( ptini(i).LE..5d0.OR.ptini(i).GE.ecm*.5d0)ptini(i)=1.
d+30
2089 IF ( ptini(i).NE.1.
d+30 ) ini = ini+1
2093 IF ( ptini(j).LT.ptini(i) )
THEN
2114 IF ( noutl.GE.10 )
WRITE(6,1060) ptini(i)
2115 1060
FORMAT(
' NORMALIZATION FOR PTMIN=',f10.4,
' CALCULATED')
2117 IF ( noutl.GE.10 )
WRITE(6,1070) ptini(i)
2118 1070
FORMAT(
' MAXIMA FOR PTMIN=',f10.4,
' CALCULATED')
2119 xsecta(1,0,i) = ptini(i)
2121 xsecta(1,m,i) = xsect(1,m)
2122 xsecta(2,m,i) = xsect(2,m)
2128 xsect(5,m) = dsig(m)
2133 IF ( noutl.GE.10 )
WRITE(6,
'(/,1X,70(1H*))')
2134 WRITE(6,1057) ptini(1),pdset(npd),
sqrt(alasqr),q0sqr
2136 &
' --- parameters of the hard scattering program ---',/,
2137 &
' MIN. PT :',f15.1,/,
2138 &
' PARTON-DISTR. :',a15,/,
2139 &
' LAMBDA :',f15.3,/,
2140 &
' Q0**2 :',f15.3,/)
2141 IF ( noutl.GE.1 )
THEN
2142 WRITE(6,1050) partic(nha),partic(nhb),ecm,ptini(1),pdset(npd),
2143 &
sqrt(alasqr),q0sqr,npdcor,nqqal,aqqal,nqqpd,aqqpd
2144 1050
FORMAT(/,1
x,70(
'*'),/,
2145 &
' HARD SCATTERING PROGRAM IS INITIALIZED FOR',/,
2146 &
' PROJECTILE :',a15,/,
2147 &
' TARGET :',a15,/,
2148 &
' CM-ENERGY :',f15.1,/,
2149 &
' MIN. PT :',f15.1,/,
2150 &
' PARTON-DISTR. :',a15,/,
2151 &
' LAMBDA :',f15.3,/,
2152 &
' Q0**2 :',f15.3,/,
2153 &
' NPDCOR :',i15,/,
2155 &
' AQQAL :',f15.3,/,
2157 &
' AQQPD :',f15.3,/)
2164 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2166 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
2167 parameter( mxabwt = 1000 )
2168 parameter(
zero=0.d0,
one=1.d0)
2169 COMMON /hacons/ pi,pi2,pi4,gevtmb
2170 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
2171 COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
2173 COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
2175 dimension absz(mxabwt),weig(mxabwt)
2177 DATA f124 / 1.,0.,4.,2.,2.,2.,4.,1.,4.,4. /
2179 a = (2.*ptini(ind)/ecm)**2
2194 z2 = (1.-z1)*absz(i2)
2206 va =-0.5*w1/(w1+
z*w)
2208 vb =-0.5*faxx/(w1+2.*w*
z)
2210 vc =-
exp(hln+
z*wlog)
2214 s(1) =
s(1)+(1.+w)*2.25*(va*va*(3.-ua*va-va/(ua*ua))-ua)*
2216 s(2) =
s(2)+(vc*vc+uc*uc)*((16./27.)/uc-(4./3.)*vc)*fww*
2218 s(3) =
s(3)+(1.+w)*(1.+ua*ua)*(1.-(4./9.)*va*va/ua)*weig(i)
2219 s(5) =
s(5)+((4./9.)*(1.+ub*ub+(ub*ub+vb*vb)*vb*vb)-
2220 & (8./27.)*ua*ua*va)*weig(i)
2221 s(6) =
s(6)+(4./9.)*(ue*ue+ve*ve)*faxx*weig(i)
2222 s(7) =
s(7)+(1.+w)*((2./9.)*(1.+ua*ua+(1.+va*va)*va*va/
2223 & (ua*ua))-(4./27.)*va/ua)*weig(i)
2224 s(8) =
s(8)+(4./9.)*(1.+ub*ub)*weig(i)
2225 s(-1) =
s(-1)+(1.+vc*vc)*(vc/(uc*uc)-(4./9.))*fww*weig(i)
2227 s(4) =
s(2)*(9./32.)
2229 s2(m) = s2(m)+
s(m)*weig(i2)*w
2233 s1(m) = s1(m)+s2(m)*(1.-z1)*weig(i1)
2236 fff = pi*gevtmb*aln*aln/(
a*ecm*ecm)
2238 xsect(1,m) =
fff*f124(m)*s1(m)
2240 xsect(1,4) = xsect(1,4)*nf
2241 xsect(1,6) = xsect(1,6)*max(0,nf-1)
2246 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2248 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
2249 parameter( nkm = 5 )
2250 parameter( tiny= 1.
d-30 )
2251 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
2253 COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
2255 dimension
z(3),
d(3),
ff(nkm)
2272 IF (
f2.GT.
f3 )
z(i) =
z(i)-
d(i)
2273 IF (
f2.GT.
f3 )
d(i) =-
d(i)
2278 IF (
f3.GT.
f2 ) goto 20
2285 IF ( abs(fold-
f2)/
f2.GT.0.002d0.OR. it.LT.3 ) goto 10
2288 xsect(2,1) =
ff(1)*xsect(1,1)
2289 xsect(2,2) =
ff(2)*xsect(1,2)
2290 xsect(2,3) =
ff(4)*xsect(1,3)
2291 xsect(2,4) =
ff(1)*xsect(1,4)
2292 xsect(2,5) =
ff(2)*xsect(1,5)
2293 xsect(2,6) =
ff(2)*xsect(1,6)
2294 xsect(2,7) =
ff(3)*xsect(1,7)
2295 xsect(2,8) =
ff(5)*xsect(1,8)
2296 xsect(2,-1)=
ff(4)*xsect(1,-1)
2301 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2303 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
2304 parameter( nkm = 5 )
2305 parameter( tiny= 1.
d-30,
one=1.d0 ,tiny6=1.
d-06,
zero=0.d0)
2306 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
2307 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
2308 dimension
f(nkm),pda(-6:6),pdb(-6:6),
z(3)
2312 IF (
z(1).LE.0.0d0 .OR.
z(1).GE.1.0d0 )
RETURN
2313 IF (
z(2).LE.0.0d0 .OR.
z(2).GE.1.0d0 )
RETURN
2314 IF (
z(3).LT.0.0d0 .OR.
z(3).GT.1.0d0 )
RETURN
2315 a = (2.*ptini(ind)/ecm)**2
2322 v =-0.5+w*(
z(3)-0.5)
2324 pt = max(ptini(ind),
sqrt(u*v*
y1*ecm*ecm))
2326 IF ( nqqal.EQ.1 )
THEN
2328 ELSEIF ( nqqal.EQ.2 )
THEN
2329 qqal = aqqal*
y1*ecm*ecm
2330 ELSEIF ( nqqal.EQ.3 )
THEN
2331 qqal = aqqal*
y1*ecm*ecm*(u*v)**(1./3.)
2332 ELSEIF ( nqqal.EQ.4 )
THEN
2333 qqal = aqqal*
y1*ecm*ecm*u*v/(1.+v*v+u*u)
2335 IF ( nqqpd.EQ.1 )
THEN
2337 ELSEIF ( nqqpd.EQ.2 )
THEN
2338 qqpd = aqqpd*
y1*ecm*ecm
2339 ELSEIF ( nqqpd.EQ.3 )
THEN
2340 qqpd = aqqpd*
y1*ecm*ecm*(u*v)**(1./3.)
2341 ELSEIF ( nqqpd.EQ.4 )
THEN
2342 qqpd = aqqpd*
y1*ecm*ecm*u*v/(1.+v*v+u*u)
2344 factor = (bqcd/
log(max(qqal/alasqr,1.1*
one)))**2
2353 f(2) =
f(2)+pda(i)*pdb(-i)+pda(-i)*pdb( i)
2354 f(3) =
f(3)+pda(i)*pdb( i)+pda(-i)*pdb(-i)
2355 f(4) =
f(4)+pda(i)+pda(-i)
2356 f(5) =
f(5)+pdb(i)+pdb(-i)
2358 f(1) = pda(0)*pdb(0)
2359 t = pda(0)*
f(5)+pdb(0)*
f(4)
2360 f(5) =
f(4)*
f(5)-(
f(2)+
f(3))
2362 fdis = max(
zero,
f(nkon)*factor)
2367 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2369 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
2370 COMMON /hacons/ pi,pi2,pi4,gevtmb
2371 COMMON /hapara/ ecm,ptini(4),q0sqr,alasqr,bqcd,npd,nf,nha,nhb
2372 COMMON /hapadi/ npdm
2373 COMMON /hapdco/ npdcor
2374 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
2375 COMMON /haoutl/ noutl,nouter,noutco
2376 COMMON /hacuts/ ptl,ptu,etacl,etacu,etadl,etadu
2377 COMMON /hagaup/ ngaup1,ngaup2,ngauet,ngauin
2378 COMMON /haevtr/ line,lin,lrec1(mline),lrec2(mline),prec(0:3,mline)
2380 COMMON /haxsec/ xsecta(2,-1:
maxpro,4),xsect(5,-1:
maxpro),
2382 COMMON /haxsum/xshmx
2399 bqcd = pi4/(11.0-(2./3.)*nf)
2451 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2453 parameter(
maxpro = 8 , mline = 1000 , mscahd = 250 )
2455 CHARACTER*11 pdset,partic
2456 COMMON /peproc/ proc(0:
maxpro),pdset(23),partic(-1:1)
2458 DATA proc /
'SUM OVER PROCESSES',
'G +G --> G +G ',
2459 &
'Q +QB --> G +G ',
'G +Q --> G +Q ',
2460 &
'G +G --> Q +QB ',
'Q +QB --> Q +QB ',
2461 &
'Q +QB --> QS +QBS',
'Q +Q --> Q +Q ',
2462 &
'Q +QS --> Q +QS ' /
2463 DATA pdset /
' EHLQ SET 1',
' EHLQ SET 2',
' MRS SET 1',
2464 &
' MRS SET 2',
' MRS SET 3',
' GRV LO ',
2465 &
' HMRS SET 1',
' HMRS SET 2',
' KMRS SET 1',
2466 &
' KMRS SET 2',
' KMRS SET 3',
' KMRS SET 4',
2467 &
' MRS(S0) ',
' MRS(D0) ',
' MRS(D-) ',
2468 &
' CTEQ 1M ',
' CTEQ 1MS ',
' CTEQ 1ML ',
2469 &
' CTEQ 1D ',
' CTEQ 1L ',
' GRV94LO1 ' ,
2470 &
' GRV98LO ',
' CTEQ96 '/
2471 DATA partic /
' ANTIPROTON',
' ',
' PROTON' /
2527 SUBROUTINE dor94lo (X, Q2, UV, DV, DEL, UDB, SB, GL)
2528 IMPLICIT DOUBLE PRECISION (
a -
z)
2531 lam2 = 0.2322 * 0.2322
2537 nu = 2.284 + 0.802 *
s + 0.055 * s2
2538 aku = 0.590 - 0.024 *
s
2539 bku = 0.131 + 0.063 *
s
2540 au = -0.449 - 0.138 *
s - 0.076 * s2
2541 bu = 0.213 + 2.669 *
s - 0.728 * s2
2542 cu = 8.854 - 9.135 *
s + 1.979 * s2
2543 du = 2.997 + 0.753 *
s - 0.076 * s2
2544 uv =
dor94fv(
x, nu, aku, bku, au, bu, cu, du)
2546 nd = 0.371 + 0.083 *
s + 0.039 * s2
2548 bkd = 0.486 + 0.062 *
s
2549 ad = -0.509 + 3.310 *
s - 1.248 * s2
2550 bd = 12.41 - 10.52 *
s + 2.267 * s2
2551 cd = 6.373 - 6.208 *
s + 1.418 * s2
2552 dd = 3.691 + 0.799 *
s - 0.071 * s2
2553 dv =
dor94fv(
x, nd, akd, bkd, ad, bd, cd, dd)
2555 ne = 0.082 + 0.014 *
s + 0.008 * s2
2556 ake = 0.409 - 0.005 *
s
2557 bke = 0.799 + 0.071 *
s
2558 ae = -38.07 + 36.13 *
s - 0.656 * s2
2559 be = 90.31 - 74.15 *
s + 7.645 * s2
2561 de = 7.486 + 1.217 *
s - 0.159 * s2
2562 del =
dor94fv(
x, ne, ake, bke, ae, be, ce, de)
2566 akx = 0.410 - 0.232 *
s
2567 bkx = 0.534 - 0.457 *
s
2568 agx = 0.890 - 0.140 *
s
2570 cx = 0.320 + 0.683 *
s
2571 dx = 4.752 + 1.164 *
s + 0.286 * s2
2572 ex = 4.119 + 1.713 *
s
2573 esx = 0.682 + 2.978 *
s
2574 udb=
dor94fw(
x,
s, alx, bex, akx, bkx, agx, bgx, cx,
dx, ex, esx)
2578 aks = 1.798 - 0.596 *
s
2579 as = -5.548 + 3.669 * ds - 0.616 *
s
2580 bs = 18.92 - 16.73 * ds + 5.168 *
s
2581 dst = 6.379 - 0.350 *
s + 0.142 * s2
2582 est = 3.981 + 1.638 *
s
2584 sb =
dor94fs(
x,
s, als, bes, aks, as, bs, dst, est, ess)
2588 akg = 1.742 - 0.930 *
s
2590 ag = 7.486 - 2.185 *
s
2591 bg = 16.69 - 22.74 *
s + 5.779 * s2
2592 cg = -25.59 + 29.71 *
s - 7.296 * s2
2593 dg = 2.792 + 2.215 *
s + 0.422 * s2 - 0.104 * s3
2594 eg = 0.807 + 2.005 *
s
2595 esg = 3.841 + 0.316 *
s
2596 gl =
dor94fw(
x,
s, alg, beg, akg, bkg, ag, bg, cg, dg, eg, esg)
2602 SUBROUTINE dor94ho (X, Q2, UV, DV, DEL, UDB, SB, GL)
2603 IMPLICIT DOUBLE PRECISION (
a -
z)
2606 lam2 = 0.248 * 0.248
2612 nu = 1.304 + 0.863 *
s
2613 aku = 0.558 - 0.020 *
s
2615 au = -0.113 + 0.283 *
s - 0.321 * s2
2616 bu = 6.843 - 5.089 *
s + 2.647 * s2 - 0.527 * s3
2617 cu = 7.771 - 10.09 *
s + 2.630 * s2
2618 du = 3.315 + 1.145 *
s - 0.583 * s2 + 0.154 * s3
2619 uv =
dor94fv(
x, nu, aku, bku, au, bu, cu, du)
2621 nd = 0.102 - 0.017 *
s + 0.005 * s2
2622 akd = 0.270 - 0.019 *
s
2624 ad = 2.393 + 6.228 *
s - 0.881 * s2
2625 bd = 46.06 + 4.673 *
s - 14.98 * s2 + 1.331 * s3
2626 cd = 17.83 - 53.47 *
s + 21.24 * s2
2627 dd = 4.081 + 0.976 *
s - 0.485 * s2 + 0.152 * s3
2628 dv =
dor94fv(
x, nd, akd, bkd, ad, bd, cd, dd)
2630 ne = 0.070 + 0.042 *
s - 0.011 * s2 + 0.004 * s3
2631 ake = 0.409 - 0.007 *
s
2632 bke = 0.782 + 0.082 *
s
2633 ae = -29.65 + 26.49 *
s + 5.429 * s2
2634 be = 90.20 - 74.97 *
s + 4.526 * s2
2636 de = 8.122 + 2.120 *
s - 1.088 * s2 + 0.231 * s3
2637 del =
dor94fv(
x, ne, ake, bke, ae, be, ce, de)
2644 bgx = 3.210 - 1.866 *
s
2646 dx = 9.010 + 0.896 * ds + 0.222 * s2
2647 ex = 3.077 + 1.446 *
s
2648 esx = 3.173 - 2.445 * ds + 2.207 *
s
2649 udb=
dor94fw(
x,
s, alx, bex, akx, bkx, agx, bgx, cx,
dx, ex, esx)
2653 aks = 1.690 + 0.650 * ds - 0.922 *
s
2654 as = -4.329 + 1.131 *
s
2655 bs = 9.568 - 1.744 *
s
2656 dst = 9.377 + 1.088 * ds - 1.320 *
s + 0.130 * s2
2657 est = 3.031 + 1.639 *
s
2658 ess = 5.837 + 0.815 *
s
2659 sb =
dor94fs(
x,
s, als, bes, aks, as, bs, dst, est, ess)
2663 akg = 1.724 + 0.157 *
s
2664 bkg = 0.800 + 1.016 *
s
2665 ag = 7.517 - 2.547 *
s
2666 bg = 34.09 - 52.21 * ds + 17.47 *
s
2667 cg = 4.039 + 1.491 *
s
2668 dg = 3.404 + 0.830 *
s
2669 eg = -1.112 + 3.438 *
s - 0.302 * s2
2670 esg = 3.256 - 0.436 *
s
2671 gl =
dor94fw(
x,
s, alg, beg, akg, bkg, ag, bg, cg, dg, eg, esg)
2677 SUBROUTINE dor94di (X, Q2, UV, DV, DEL, UDB, SB, GL)
2678 IMPLICIT DOUBLE PRECISION (
a -
z)
2681 lam2 = 0.248 * 0.248
2687 nu = 2.484 + 0.116 *
s + 0.093 * s2
2688 aku = 0.563 - 0.025 *
s
2689 bku = 0.054 + 0.154 *
s
2690 au = -0.326 - 0.058 *
s - 0.135 * s2
2691 bu = -3.322 + 8.259 *
s - 3.119 * s2 + 0.291 * s3
2692 cu = 11.52 - 12.99 *
s + 3.161 * s2
2693 du = 2.808 + 1.400 *
s - 0.557 * s2 + 0.119 * s3
2694 uv =
dor94fv(
x, nu, aku, bku, au, bu, cu, du)
2696 nd = 0.156 - 0.017 *
s
2697 akd = 0.299 - 0.022 *
s
2698 bkd = 0.259 - 0.015 *
s
2699 ad = 3.445 + 1.278 *
s + 0.326 * s2
2700 bd = -6.934 + 37.45 *
s - 18.95 * s2 + 1.463 * s3
2701 cd = 55.45 - 69.92 *
s + 20.78 * s2
2702 dd = 3.577 + 1.441 *
s - 0.683 * s2 + 0.179 * s3
2703 dv =
dor94fv(
x, nd, akd, bkd, ad, bd, cd, dd)
2705 ne = 0.099 + 0.019 *
s + 0.002 * s2
2706 ake = 0.419 - 0.013 *
s
2707 bke = 1.064 - 0.038 *
s
2708 ae = -44.00 + 98.70 *
s - 14.79 * s2
2709 be = 28.59 - 40.94 *
s - 13.66 * s2 + 2.523 * s3
2710 ce = 84.57 - 108.8 *
s + 31.52 * s2
2711 de = 7.469 + 2.480 *
s - 0.866 * s2
2712 del =
dor94fv(
x, ne, ake, bke, ae, be, ce, de)
2716 akx = 0.326 + 0.150 *
s
2717 bkx = 0.956 + 0.405 *
s
2719 bgx = 3.794 - 2.359 * ds
2721 dx = 7.941 + 0.534 * ds - 0.940 *
s + 0.410 * s2
2722 ex = 3.049 + 1.597 *
s
2723 esx = 4.396 - 4.594 * ds + 3.268 *
s
2724 udb=
dor94fw(
x,
s, alx, bex, akx, bkx, agx, bgx, cx,
dx, ex, esx)
2728 aks = 1.415 - 0.641 * ds
2729 as = 0.580 - 9.763 * ds + 6.795 *
s - 0.558 * s2
2730 bs = 5.617 + 5.709 * ds - 3.972 *
s
2731 dst = 13.78 - 9.581 *
s + 5.370 * s2 - 0.996 * s3
2732 est = 4.546 + 0.372 * s2
2733 ess = 5.053 - 1.070 *
s + 0.805 * s2
2734 sb =
dor94fs(
x,
s, als, bes, aks, as, bs, dst, est, ess)
2739 bkg = 2.427 + 1.311 *
s - 0.153 * s2
2740 ag = 25.09 - 7.935 *
s
2741 bg = -14.84 - 124.3 * ds + 72.18 *
s
2742 cg = 590.3 - 173.8 *
s
2743 dg = 5.196 + 1.857 *
s
2744 eg = -1.648 + 3.988 *
s - 0.432 * s2
2745 esg = 3.232 - 0.542 *
s
2746 gl =
dor94fw(
x,
s, alg, beg, akg, bkg, ag, bg, cg, dg, eg, esg)
2753 IMPLICIT DOUBLE PRECISION (
a -
z)
2760 FUNCTION dor94fw (X, S, AL, BE, AK, BK, A, B, C, D, E, ES)
2761 IMPLICIT DOUBLE PRECISION (
a -
z)
2765 1 * dexp(-
e +
sqrt(es *
s**be * lx))) * (1.-
x)**
d
2769 FUNCTION dor94fs (X, S, AL, BE, AK, AG, B, D, E, ES)
2770 IMPLICIT DOUBLE PRECISION (
a -
z)
2775 1 * dexp(-
e +
sqrt(es *
s**be * lx))
DOUBLE PRECISION function rndm(RDUMMY)
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)
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