37 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
40 parameter(conv=.38935d0)
41 parameter(pi=3.141592654d0,
45 parameter(thousa = 1000.d0)
48 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
51 COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
52 common/pompar/alfa,alfap,
a,c,ak
53 COMMON /sigma/sigsof,bs,zsof,sighar,bh,zhar,sigtrp,bt,ztrp,
57 CHARACTER*8 projty,targty
60 COMMON /user1/
title,projty,targty
61 COMMON /user2/cmener,sdfrac,ptlar,istruf,isingd,idubld
63 COMMON /strufu/istrum,istrut
68 COMMON /collpo/
s,ptthr,ptthr2
71 common/collis/spo,ijproj,ijtar,pttpo,pttpo2,iophrd,ijprlu,ijtalu
72 COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
76 dimension xsqsj(21),xxhhj4(21)
81 DATA xsqsj/0.005,0.01,0.02,0.035,0.053,
82 * 0.1,0.2,0.35,0.54,1.,2.,5.,
83 *10.,20.,40.,100.,200.,400.,1000.,2000.,4000./
86 DATA sqs/1.,2.,3.,4.,5.,10.,20.,30.,40.,100.,200.,500.,1000./
95 go to(10,20,30,40,50,60,70,80,90,100),isig
98 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
104 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
109 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
116 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
123 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
130 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
137 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
142 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
146 WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
175 IF(abs(ptthr-three).LT.eps)
THEN
176 WRITE(6,*)
' PTTHR=3. not available in dpmjet25'
177 WRITE(6,*)
' WARNING: no model parameter set available'
178 WRITE(6,*)
' for this combination of PTCUT and ISTRUF'
179 WRITE(6,*)
' (initialization using default values)'
190 IF(abs(ptthr-two).LT.eps)
THEN
191 WRITE(6,*)
' PTTHR=2. not available in dpmjet25'
192 WRITE(6,*)
' WARNING: no model parameter set available'
193 WRITE(6,*)
' for this combination of PTCUT and ISTRUF'
194 WRITE(6,*)
' (initialization using default values)'
211 WRITE(6,*)
' ISTRUT=1 (PTTHR=2.1+0.15*(LOG10(ECM/50.))**3)',
212 *
'not available in dpmjet25'
213 ptthr=2.1+0.15*(log10(ecm/50.))**3
215 WRITE(6,*)
' WARNING: no model parameter set available'
216 WRITE(6,*)
' for this combination of PTCUT and ISTRUF'
217 WRITE(6,*)
' (initialization using default values)'
237 ptthr=2.5+0.12*(log10(ecm/50.))**3
239 IF( istruf.EQ.9 )
THEN
240 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
241 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
243 ELSEIF( istruf.EQ.10 )
THEN
244 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
245 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
247 ELSEIF( istruf.EQ.11 )
THEN
248 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
249 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
251 ELSEIF( istruf.EQ.12 )
THEN
252 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
253 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
255 ELSEIF( istruf.EQ.13 )
THEN
256 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
257 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
259 ELSEIF( istruf.EQ.14 )
THEN
260 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
261 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
263 ELSEIF( istruf.EQ.15 )
THEN
264 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
265 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
268 ELSEIF( istruf.EQ.16 )
THEN
269 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
270 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
273 ELSEIF( istruf.EQ.17 )
THEN
274 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
275 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
277 ELSEIF( istruf.EQ.18 )
THEN
278 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
279 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
281 ELSEIF( istruf.EQ.19 )
THEN
282 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
283 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
285 ELSEIF( istruf.EQ.20 )
THEN
286 WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
287 *
'and ISTRUF= ',istruf ,
' not available in dpmjet25'
290 ELSEIF( istruf.EQ.21 )
THEN
299 ELSEIF( istruf.EQ.22 )
THEN
308 ELSEIF( istruf.EQ.23 )
THEN
318 WRITE(6,*)
' WARNING: no model parameter set available'
319 WRITE(6,*)
' for this combination of PTCUT and ISTRUF'
320 WRITE(6,*)
' (initialization using default values)'
350 sigsof=
a*
s**(alfa-1.)
356 IF(istruf.EQ.21)ak=2.
359 * sighar=ak*0.1*(
s-2450.)**0.35
360 IF(ecm.GE.thousa*xsqsj(2))
THEN
363 IF(ecm.LT.xsqsj(iii)*thousa.AND.
364 * ecm.GE.thousa*xsqsj(i))
THEN
365 dsq=ecm-thousa*xsqsj(i)
366 ddsq=thousa*(xsqsj(iii)-xsqsj(i))
367 dhs=(xxhhj4(iii)-xxhhj4(i))
368 sighar=ak*(xxhhj4(i)+dhs*dsq/ddsq)*0.5
384 bsdca=bsdoca+2.*alsca*alns
385 sigtrp=g3ca*gaca*
log(
s/10.)/(8.*3.14*bsdca)
386 IF (sigtrp.LT.0.d0)sigtrp=0.01
389 alo1sq=(
log(
s/400.))**2
390 alo2sq=(
log(25./
s))**2
391 alo3sq=(
log(5./20.))**2
392 sigloo=
a*gaca**2*(alo1sq+alo2sq-2.*alo3sq)/(32.*3.14*bddca)
432 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
435 CHARACTER*8 projty,targty
438 COMMON /user1/
title,projty,targty
439 COMMON /user2/cmener,sdfrac,ptlar,istruf,isingd,idubld
443 COMMON /collpo/
s,ptthr,ptthr2
446 common/collis/spo,ijproj,ijtar,pttpo,pttpo2,iophrd,ijprlu,ijtalu
447 COMMON /strufu/istrum,istrut
452 parameter(epsil=1.
d-4,
457 & 0.000000
e+00,0.137854
e-04, .02, .13, .37, 1.32,
458 & 3.88, 8.02, 13.15, 24.32, 43.43, 79.69, 113.13,
459 & 147.5, 180.47, 221.01, 250.37,
460 & 279.4, 320.1, 349.6, 381.6,
462 & .000000
e+00, .494767
e-05, .02, .14, .41,
463 & 1.48, 4.17, 7.92, 11.90, 19.03, 28.59, 42.36,
464 & 52.78, 62.86, 72.65, 85.61, 95.97,
465 & 96., 96., 96., 96.,
468 & 0.517461
e-05, .02, .14, .42, 1.49, 4.14,
469 & 7.87, 11.93, 19.58, 30.67, 48.39, 63.08,
470 & 78.1, 93.28, 114.33, 132.24,
471 & 133., 133., 133., 133.,
474 & 0.717097
e-05, .03, .19, .54, 1.91, 5.33, 10.11,
475 & 16.16, 24.21, 36.41, 54.21, 67.92, 81.44,
476 & 94.81,112.9, 127.63,
477 & 128., 128., 128., 128.,
480 & 0.761464
e-05, .02, .17, .47, 1.56, 4.19,
481 & 7.76, 11.48, 18.11, 26.97, 39.82, 49.86, 59.35,
482 & 68.88, 81.65, 91.94,
483 & 92., 92., 92., 92.,
486 & .620779
e-05, .02, .12, .34, 1.19, 3.27,
487 & 6.16, 9.27, 14.99, 23.2, 36.85, 49.45,
488 & 64.43, 82.38, 112.06, 140.36,
489 & 141., 141., 141., 141.,
492 & .620779
e-05, .01, .05, .14, 0.55, 1.87,
493 & 4.29, 7.49, 14.81, 27.8, 55.99, 77.49,
494 & 105.98,138.48, 189.33, 236.37,
495 & 294., 395., 496., 629.,
498 & .620779
e-05, .01, .10, .31, 1.16, 3.76,
499 & 8.31, 14.16, 27.11, 49.3, 90.93,129.77,
500 & 174.16,223.83, 300.20, 370.00,
501 & 455., 600., 746., 936.,
504 & .620779
e-05, .01, .08, .27, 1.17, 4.15,
505 & 9.60, 16.75, 32.88, 61.1,125.98,169.87,
506 & 233.75,308.22, 426.95, 537.90,
507 & 673., 898., 1112., 1379./
510 IF( abs(ptthr-three).LT.epsil )
THEN
511 WRITE(6,*)
' ERROR RDXSEC: invalid pdf No. ',istruf
513 ELSEIF( abs(ptthr-two).LT.epsil )
THEN
514 WRITE(6,*)
' ERROR RDXSEC: invalid pdf No. ',istruf
516 ELSEIF( istrut.EQ.1 )
THEN
517 WRITE(6,*)
' ERROR RDXSEC: invalid pdf No. ',istruf
519 ELSEIF( istrut.EQ.2 )
THEN
520 IF( (istruf.GE.9).AND.(istruf.LE.20) )
THEN
521 WRITE(6,*)
' ERROR RDXSEC: invalid pdf No. ',istruf
523 ELSEIF( (istruf.GE.21).AND.(istruf.LE.23) )
THEN
525 nxs = 21*(istruf-15)+i
529 WRITE(6,*)
' ERROR RDXSEC: invalid pdf No. ',istruf
533 WRITE(6,*)
' ERROR RDXSEC: PTCUT ',ptthr,
' not supported ***'
544 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
546 COMMON /pomene/poen(28),poen1(28),poen2(28),nestep
547 DATA poen/20.d0,50.d0,100.d0,200.d0,500.d0,
549 * 2000.d0,3000.d0,4000.d0,6000.d0,8000.d0,10000.d0,
550 *15000.d0,20000.d0,30000.d0,40000.d0,60000.d0,
551 *80000.d0,100000.d0,150000.d0,200000.d0,300000.d0
552 *,400000.d0,600000.d0,800000.d0,1000000.d0,2000000.d0/
553 DATA poen1/5.d0,30.d0,70.d0,150.d0,300.d0,
554 * 700.d0,1200.d0,1700.d0,
555 * 2500.d0,3500.d0,5000.d0,7000.d0,9000.d0,
556 *12000.d0,17000.d0,25000.d0,35000.d0,50000.d0,
557 *70000.d0,90000.d0,120000.d0,170000.d0,250000.d0,
558 *250000.d0,500000.d0,700000.d0,900000.d0,1500000.d0/
559 DATA poen2/30.d0,70.d0,150.d0,300.d0,
560 * 700.d0,1200.d0,1700.d0,2500.d0,
561 * 3500.d0,5000.d0,7000.d0,9000.d0,12000.d0,
562 *17000.d0,25000.d0,35000.d0,50000.d0,70000.d0,
563 *90000.d0,120000.d0,170000.d0,250000.d0,350000.d0,
564 *500000.d0,700000.d0,900000.d0,1500000.d0,3000000.d0/
572 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
587 COMMON /pomene/poen(28),poen1(28),poen2(28),nestep
588 COMMON /pomtab/ipomta
590 parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
591 parameter(mxpa50=250,mxpa51=mxpa50+1)
592 parameter(mxpu50=100,mxpu51=mxpu50+1)
594 COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
595 * plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
596 COMMON /polmn1/ plmnee(0:mxpa25,0:mxpu50,0:mxpa13,28)
604 CALL getenv(
'INIDAT',inidat)
606 OPEN(
unit=iunit,file=
'pomtab.dat'
607 * ,
status=
'UNKNOWN',err=99)
609 IF (ipomta.EQ.0)
THEN
616 plmnee(jj,kk,ll,ii)=plmncu(jj,kk,ll)
620 WRITE(iunit,7102) nestep
622 WRITE(iunit,7101) poen(ii), poen1(ii), poen2(ii)
623 WRITE(iunit,101)(((plmnee(jj,kk,ll,ii),ll=0,mxpa13),
624 * kk=0,mxpu50),jj=0,mxpa25)
630 ELSEIF (ipomta.EQ.1)
THEN
631 READ(iunit,7102) nestep
634 READ(iunit,7101) poen(ii), poen1(ii), poen2(ii)
635 WRITE(6,7101) poen(ii), poen1(ii), poen2(ii)
636 READ(iunit,101)(((plmnee(jj,kk,ll,ii),ll=0,mxpa13),
637 * kk=0,mxpu50),jj=0,mxpa25)
645 WRITE(6,
'(A)')
'Error in PRBLM2 : file pomtab.dat ERROR'
671 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
673 parameter(
zero=0.d0,
one=1.d0)
674 parameter(conv=0.38935d0)
675 parameter(pi=3.141592654d0)
676 parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
678 parameter(mxpa50=250,mxpa51=mxpa50+1)
685 parameter(mxlmn=5,lsqrt=.true.)
686 DOUBLE PRECISION dtiny
690 parameter(tiny=1.2
d-38,dtiny=1.
d-70,tin=1.
d-22,tinexp=-700.d0)
693 parameter(tinyex = -48.d0)
696 COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
697 * plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
698 COMMON /polmn0/pdifr,phard,psoft,alfah,betah,
699 * sigtot,sigqel,sigel,sigine,sighin,sigd,sigdd
702 COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
703 COMMON /sigma/sigsof,bs,zsof,sighar,bh,zhar,sigtrp,bt,ztrp,
705 common/pompar/alfa,alfap,
a,c,ak
706 COMMON /singdi/silmsd,sigdi
708 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
711 CHARACTER*8 projty,targty
714 COMMON /user1/
title,projty,targty
715 COMMON /user2/cmener,sdfrac,ptlar,istruf,isingd,idubld
717 DOUBLE PRECISION sig,sigp,sigm,sign,sigo
718 dimension sig(0:mxpa25,0:mxpa50,0:mxpa13),
719 &sigp(0:mxpa25,0:mxpa50,0:mxpa13),sigm(0:mxpa25,0:mxpa50,0:mxpa13),
720 &sign(0:mxpa25,0:mxpa50,0:mxpa13),sigo(0:mxpa25,0:mxpa50,0:mxpa13)
721 dimension xpnt(mxpa96),wght(mxpa96),
722 &ssoft(0:mxpa25),shard(0:mxpa50),strpl(0:mxpa25)
724 dimension fak(0:mxpa13),cmbin(0:mxpa13,0:mxpa13)
726 & expsop,expsoh,exmsop,exmsoh,exnsop,exnsoh,exosop,exosoh,
727 & exphap,exphah,exmhap,exmhah,exnhap,exnhah,exohap,exohah,
728 & exptrp,exptrh,exmtrp,exmtrh,exntrp,exntrh,exotrp,exotrh,
729 & explop,exploh,exmlop,exmloh,exnlop,exnloh,exolop,exoloh,
730 & expexh,exmexh,exnexh,exoexh,expexp,exmexp,exnexp,exoexp
731 DOUBLE PRECISION fapsof,famsof,fansof,faosof,
732 & faphar,famhar,fanhar,faohar,
733 & faptrp,famtrp,fantrp,faotrp,
734 & faploo,famloo,fanloo,faoloo
735 DOUBLE PRECISION denom,denomi,xpntk,wghtk,rmxlmn
736 & ,sigsum,siginl,sighri
741 IF(icon/10.EQ.4)
nmax=2
742 IF(icon/10.EQ.5)
nmax=1
745 IF(
nmax.GT.mxpa13)
THEN
746 WRITE(6,*)
' arrays limit NMAX set to' , mxpa13
749 IF( mmax.GT.mxpa50)
THEN
750 WRITE(6,*)
' arrays limit MMAX set to' , mxpa50
753 IF( lmax.GT.mxpa25)
THEN
754 WRITE(6,*)
' arrays limit LMAX set to' , mxpa25
762 nnmaxi=(mxpa13-nmaxi)/(1+nmaxi)
765 ELSEIF(
nmax.EQ.2)
THEN
769 ELSEIF(
nmax.EQ.1)
THEN
773 ELSEIF(
nmax.LE.0)
THEN
792 IF(icon/10.EQ.4)
nmax=2
793 IF(icon/10.EQ.5)
nmax=1
846 IF(alalam.LE.1.
d-2)
THEN
855 IF(ecm.LT.2000.d0)
THEN
865 IF(ioutpo.GE.0)
WRITE (6,*)
' ALAM,REDU= ',alam,redu
871 zharp=(1.+alam)**2*zhar
872 zsofp=(1.+alam)**2*zsof
873 zloop=(1.+alam)**2*zloo * redu
874 zharm=(1.-alam)**2*zhar
875 zsofm=(1.-alam)**2*zsof
876 zloom=(1.-alam)**2*zloo * redu
877 zharn=(1.-alam**2)*zhar
878 zsofn=(1.-alam**2)*zsof
879 zloon=(1.-alam**2)*zloo * redu
880 zharo=(1.-alam**2)*zhar
881 zsofo=(1.-alam**2)*zsof
882 zlooo=(1.-alam**2)*zloo * redu
884 ztrpp=(1.+alam)**3*ztrp * redu
885 ztrpm=(1.-alam)**3*ztrp * redu
886 ztrpn=(1.-alam**2)*(1.+alam)*ztrp * redu
887 ztrpo=(1.-alam**2)*(1.-alam)*ztrp * redu
898 fapsof=fapsof*
sqrt( zsofp/float(l))
899 famsof=famsof*
sqrt( zsofm/float(l))
900 fansof=fansof*
sqrt( zsofn/float(l))
901 faosof=faosof*
sqrt( zsofo/float(l))
902 IF ( fapsof .LT.dtiny ) fapsof=0.
903 IF ( famsof .LT.dtiny ) famsof=0.
904 IF ( fansof .LT.dtiny ) fansof=0.
905 IF ( faosof .LT.dtiny ) faosof=0.
906 ELSEIF(.NOT.lsqrt)
THEN
907 fapsof=fapsof*zsofp/float(l)
908 famsof=famsof*zsofm/float(l)
909 fansof=fansof*zsofn/float(l)
910 faosof=faosof*zsofo/float(l)
911 IF (fapsof.LT.dtiny ) fapsof=0.
912 IF (famsof.LT.dtiny ) famsof=0.
913 IF (fansof.LT.dtiny ) fansof=0.
914 IF (faosof.LT.dtiny ) faosof=0.
924 faphar=faphar*
sqrt( zharp/float(m) )
925 famhar=famhar*
sqrt( zharm/float(m) )
926 fanhar=fanhar*
sqrt( zharn/float(m) )
927 faohar=faohar*
sqrt( zharo/float(m) )
928 IF ( fapsof*faphar .LT.dtiny ) faphar=0.
929 IF ( famsof*famhar .LT.dtiny ) famhar=0.
930 IF ( fansof*fanhar .LT.dtiny ) fanhar=0.
931 IF ( faosof*faohar .LT.dtiny ) faohar=0.
932 ELSEIF(.NOT.lsqrt)
THEN
933 faphar=faphar*zharp/float(m)
934 famhar=famhar*zharm/float(m)
935 fanhar=fanhar*zharn/float(m)
936 faohar=faohar*zharo/float(m)
937 IF (fapsof*faphar.LT.dtiny ) faphar=0.
938 IF (famsof*famhar.LT.dtiny ) famhar=0.
939 IF (fansof*fanhar.LT.dtiny ) fanhar=0.
940 IF (faosof*faohar.LT.dtiny ) faohar=0.
949 faptrp=-faptrp*
sqrt( ztrpp/float(
n) )
950 famtrp=-famtrp*
sqrt( ztrpm/float(
n) )
951 fantrp=-fantrp*
sqrt( ztrpn/float(
n) )
952 faotrp=-faotrp*
sqrt( ztrpo/float(
n) )
953 IF (abs(faptrp*fapsof*faphar).LT.dtiny ) faptrp=0.
954 IF (abs(famtrp*famsof*famhar).LT.dtiny ) famtrp=0.
955 IF (abs(fantrp*fansof*fanhar).LT.dtiny ) fantrp=0.
956 IF (abs(faotrp*faosof*faohar).LT.dtiny ) faotrp=0.
957 ELSEIF(.NOT.lsqrt)
THEN
958 faptrp=-faptrp*ztrpp/float(
n)
959 famtrp=-famtrp*ztrpm/float(
n)
960 fantrp=-fantrp*ztrpn/float(
n)
961 faotrp=-faotrp*ztrpo/float(
n)
962 IF (abs(faptrp*fapsof*faphar).LT.dtiny ) faptrp=0.
963 IF (abs(famtrp*famsof*famhar).LT.dtiny ) famtrp=0.
964 IF (abs(fantrp*fansof*fanhar).LT.dtiny ) fantrp=0.
965 IF (abs(faotrp*faosof*faohar).LT.dtiny ) faotrp=0.
971 IF(
nmax.LE.2 .AND.
n.EQ.1 .AND. nn.EQ.1 ) go to 750
978 faploo=-faploo*
sqrt( zloop/float(nn))
979 famloo=-famloo*
sqrt( zloom/float(nn))
980 fanloo=-fanloo*
sqrt( zloon/float(nn))
981 faoloo=-faoloo*
sqrt( zlooo/float(nn))
982 IF(abs(faploo*faptrp*fapsof*faphar).LT.dtiny )faploo=0.
983 IF(abs(famloo*famtrp*famsof*famhar).LT.dtiny )famloo=0.
984 IF(abs(fanloo*fantrp*fansof*fanhar).LT.dtiny )fanloo=0.
985 IF(abs(faoloo*faotrp*faosof*faohar).LT.dtiny )faoloo=0.
986 ELSEIF(.NOT.lsqrt)
THEN
987 faploo=-faploo*zloop/float(nn)
988 famloo=-famloo*zloom/float(nn)
989 fanloo=-fanloo*zloon/float(nn)
990 faoloo=-faoloo*zlooo/float(nn)
991 IF(abs(faploo*faptrp*fapsof*faphar).LT.dtiny )faploo=0.
992 IF(abs(famloo*famtrp*famsof*famhar).LT.dtiny )famloo=0.
993 IF(abs(fanloo*fantrp*fansof*fanhar).LT.dtiny )fanloo=0.
994 IF(abs(faoloo*faotrp*faosof*faohar).LT.dtiny )faoloo=0.
998 IF(l.EQ.0.AND.m.EQ.0.AND.
n.EQ.0.AND.nn.EQ.0) go to 750
1000 denom=dble(m)/dble(bh)+dble(l)/dble(bs)+dble(
n)/dble(bt)
1001 & +dble(nn)/dble(bt)
1006 IF ( (m+l+
n+nn) .LE. mxlmn )
THEN
1011 rmxlmn = dble(m+l+
n+nn) /dble(mxlmn)
1013 wghtk= dble(wght(k)) * xpntk**(rmxlmn-1.)
1014 denomi= denom / rmxlmn
1017 exposp=-zsofp*xpntk**(1./(denomi*dble(bs)))
1018 exposm=-zsofm*xpntk**(1./(denomi*dble(bs)))
1019 exposn=-zsofn*xpntk**(1./(denomi*dble(bs)))
1020 exposo=-zsofo*xpntk**(1./(denomi*dble(bs)))
1022 expohp=-zharp*xpntk**(1./(denomi*dble(bh)))
1023 expohm=-zharm*xpntk**(1./(denomi*dble(bh)))
1024 expohn=-zharn*xpntk**(1./(denomi*dble(bh)))
1025 expoho=-zharo*xpntk**(1./(denomi*dble(bh)))
1027 expotp=+ztrpp*xpntk**(1./(denomi*dble(bt)))
1028 expotm=+ztrpm*xpntk**(1./(denomi*dble(bt)))
1029 expotn=+ztrpn*xpntk**(1./(denomi*dble(bt)))
1030 expoto=+ztrpo*xpntk**(1./(denomi*dble(bt)))
1032 expolp=+zloop*xpntk**(1./(denomi*dble(bt)))
1033 expolm=+zloom*xpntk**(1./(denomi*dble(bt)))
1034 expoln=+zloon*xpntk**(1./(denomi*dble(bt)))
1035 expolo=+zlooo*xpntk**(1./(denomi*dble(bt)))
1037 IF(ioutpo.GE.7)
THEN
1039 *
' K=',k,
' EXPOS/H=',exposp,expohp,
' DENOMI/BH=',denomi,bh
1041 *
' K=',k,
' EXPOS/H=',exposm,expohm,
' DENOMI/BH=',denomi,bh
1043 *
' K=',k,
' EXPOS/H=',exposn,expohn,
' DENOMI/BH=',denomi,bh
1045 *
' K=',k,
'XPNT=',xpntk,
'WGHT=',wghtk,
'DENO=',denomi
1051 IF( exposp .GT. tinexp)
THEN
1052 expsoh=
exp(0.5d00*exposp)
1053 exmsoh=
exp(0.5d00*exposm)
1054 exnsoh=
exp(0.5d00*exposn)
1055 exosoh=
exp(0.5d00*exposo)
1067 IF( expohp .GT. tinexp)
THEN
1068 exphah=
exp(0.5d00*expohp)
1069 exmhah=
exp(0.5d00*expohm)
1070 exnhah=
exp(0.5d00*expohn)
1071 exohah=
exp(0.5d00*expoho)
1084 IF( expotp .GT. tinexp)
THEN
1085 exptrh=
exp(0.5d00*expotp)
1086 exmtrh=
exp(0.5d00*expotm)
1087 exntrh=
exp(0.5d00*expotn)
1088 exotrh=
exp(0.5d00*expoto)
1099 ELSEIF(
nmax.LE.2)
THEN
1100 exptrh= 1 + 0.5*expotp
1101 exmtrh= 1 + 0.5*expotm
1102 exntrh= 1 + 0.5*expotn
1103 exotrh= 1 + 0.5*expoto
1111 IF( expolp .GT. tinexp)
THEN
1112 exploh=
exp(0.5d00*expolp)
1113 exmloh=
exp(0.5d00*expolm)
1114 exnloh=
exp(0.5d00*expoln)
1115 exoloh=
exp(0.5d00*expolo)
1126 ELSEIF(
nmax.EQ.2 )
THEN
1127 exploh= 1 + 0.5*expolp
1128 exmloh= 1 + 0.5*expolm
1129 exnloh= 1 + 0.5*expoln
1130 exoloh= 1 + 0.5*expolo
1135 ELSEIF(
nmax.LE.1 )
THEN
1146 expexh = expsoh *exphah *exptrh *exploh
1147 exmexh = exmsoh *exmhah *exmtrh *exmloh
1148 exnexh = exnsoh *exnhah *exntrh *exnloh
1149 exoexh = exosoh *exohah *exotrh *exoloh
1150 expexp = expsop *exphap *exptrp *explop
1151 exmexp = exmsop *exmhap *exmtrp *exmlop
1152 exnexp = exnsop *exnhap *exntrp *exnlop
1153 exoexp = exosop *exohap *exotrp *exolop
1155 IF( (
nmax.LE.2 .AND.
n.EQ.1 ) .OR.
1156 * (
nmax.EQ.2 .AND. nn.EQ.1 ) .OR.
1158 sigp(l,m,nnn)=sigp(l,m,nnn)+expsop *exphap *wghtk
1159 sigm(l,m,nnn)=sigm(l,m,nnn)+exmsop *exmhap *wghtk
1160 sign(l,m,nnn)=sign(l,m,nnn)+exnsop *exnhap *wghtk
1161 sigo(l,m,nnn)=sigo(l,m,nnn)+exosop *exohap *wghtk
1163 sigp(l,m,nnn)=sigp(l,m,nnn)+expexp*wghtk
1164 sigm(l,m,nnn)=sigm(l,m,nnn)+exmexp*wghtk
1165 sign(l,m,nnn)=sign(l,m,nnn)+exnexp*wghtk
1166 sigo(l,m,nnn)=sigo(l,m,nnn)+exoexp*wghtk
1171 IF(l.EQ.1.AND.m.EQ.0.AND.
n.EQ.0.AND.nn.EQ.0)
THEN
1173 IF ( (m+l+
n+nn) .GT. mxlmn )
THEN
1174 WRITE(6,*)
' MXLMN too low ' , mxlmn,m,l,
n,nn
1177 wghfac = wghtk/xpntk *pi4/denomi
1178 IF (
nmax.GE.3 )
THEN
1179 sigele = sigele + wghfac *
1180 * 0.0625*( 1.-expexh + 1.-exmexh
1181 * +1.-exnexh + 1.-exoexh )**2
1183 silmsd = silmsd + wghfac *
1184 * 0.125*(expexh -exmexh)**2
1185 silmdd = silmdd + wghfac *
1186 * 0.0625*(expexh+exmexh-exnexh-exoexh)**2
1187 ELSEIF(
nmax.LE.2 )
THEN
1188 sigele = sigele + wghfac *
1189 * 0.0625*( ( 1.-expexh + 1.-exmexh
1190 * +1.-exnexh + 1.-exoexh
1193 * +(1.-exptrh)*(1-exploh) *expsoh *exphah
1194 * +(1.-exmtrh)*(1-exmloh) *exmsoh *exmhah
1195 * +(1.-exntrh)*(1-exnloh) *exnsoh *exnhah
1196 * +(1.-exotrh)*(1-exoloh) *exosoh *exohah)**2
1198 * - ( (2.-exptrh-exploh) *expsoh *exphah
1199 * +(2.-exmtrh-exmloh) *exmsoh *exmhah
1200 * +(2.-exntrh-exnloh) *exnsoh *exnhah
1201 * +(2.-exotrh-exoloh) *exosoh *exohah ) **2)
1203 silmsd = silmsd + wghfac *
1204 * 0.125*( ( expexh -exmexh
1206 * -(1.-exptrh)*(1-exploh) *expsoh*exphah
1207 * +(1.-exmtrh)*(1-exmloh) *exmsoh*exmhah )**2
1209 * -( (2.-exptrh-exploh) *expsoh *exphah
1210 * -(2.-exmtrh-exmloh) *exmsoh*exmhah ) **2)
1211 silmdd = silmdd + wghfac *
1212 * 0.0625*( (expexh+exmexh-exnexh-exoexh
1214 * -(1.-exptrh)*(1-exploh) *expsoh *exphah
1215 * -(1.-exmtrh)*(1-exmloh) *exmsoh *exmhah
1216 * +(1.-exntrh)*(1-exnloh) *exnsoh *exnhah
1217 * +(1.-exotrh)*(1-exoloh) *exosoh *exohah)**2
1219 * - ( (2.-exptrh-exploh) *expsoh *exphah
1220 * +(2.-exmtrh-exmloh) *exmsoh *exmhah
1221 * -(2.-exntrh-exnloh) *exnsoh *exnhah
1222 * -(2.-exotrh-exoloh) *exosoh *exohah ) **2)
1224 IF(
nmax.NE.2 )
THEN
1225 sigtot=sigtot+2.*wghfac*
1226 * 0.25*( 1.-expexh + 1.-exmexh +
1227 * 1.-exnexh + 1.-exoexh )
1228 sigine = sigine + wghfac *
1229 * 0.25*( 1.-expexp + 1.-exmexp +
1230 * 1.-exnexp + 1.-exoexp )
1232 sigsin=sigsin+ wghfac *
1233 * 0.25*( (exphap-expexp)
1236 * +(exohap-exoexp) )
1238 sighin=sighin+ wghfac*
1239 * 0.25*( 1.-exphap + 1.-exmhap +
1240 * 1.-exnhap + 1.-exohap )
1241 ELSEIF(
nmax.EQ.2 )
THEN
1242 sigtot=sigtot+2.*wghfac*
1243 * 0.25*( 1.-expexh + 1.-exmexh +
1244 * 1.-exnexh + 1.-exoexh
1247 * +(1.-exptrh)*(1-exploh) *expsoh *exphah
1248 * +(1.-exmtrh)*(1-exmloh) *exmsoh *exmhah
1249 * +(1.-exntrh)*(1-exnloh) *exnsoh *exnhah
1250 * +(1.-exotrh)*(1-exoloh) *exosoh *exohah )
1251 sigine = sigine + wghfac *
1252 * 0.25*( 1.-expexp + 1.-exmexp +
1253 * 1.-exnexp + 1.-exoexp
1256 * +(1.-exptrp)*(1-explop) *expsop *exphap
1257 * +(1.-exmtrp)*(1-exmlop) *exmsop *exmhap
1258 * +(1.-exntrp)*(1-exnlop) *exnsop *exnhap
1259 * +(1.-exotrp)*(1-exolop) *exosop *exohap )
1261 sigsin=sigsin+ wghfac *
1262 * 0.25*( (exphap-expexp)
1267 * +(1.-exptrp)*(1-explop) *expsop *exphap
1268 * +(1.-exmtrp)*(1-exmlop) *exmsop *exmhap
1269 * +(1.-exntrp)*(1-exnlop) *exnsop *exnhap
1270 * +(1.-exotrp)*(1-exolop) *exosop *exohap)
1272 sighin=sighin+ wghfac*
1273 * 0.25*( 1.-exphap + 1.-exmhap +
1274 * 1.-exnhap + 1.-exohap )
1278 IF(
nmax.GE.3 )
THEN
1279 sighmd=sighmd + wghfac *
1280 * 0.25*( (exptrp-1.)*expexp
1281 * +(exmtrp-1.)*exmexp
1282 * +(exntrp-1.)*exnexp
1283 * +(exotrp-1.)*exoexp)
1285 sighmd=sighmd + wghfac *
1286 * 0.25*( expotp * expsop*exphap
1287 * +expotm * exmsop*exmhap
1288 * +expotn * exnsop*exnhap
1289 * +expoto * exosop*exohap )
1291 IF(
nmax.GE.3 )
THEN
1292 sihmdd=sihmdd + wghfac *
1293 * 0.25*( (explop-1.)*expexp
1294 * +(exmlop-1.)*exmexp
1295 * +(exnlop-1.)*exnexp
1296 * +(exolop-1.)*exoexp)
1297 ELSEIF (
nmax.EQ.2 )
THEN
1298 sihmdd=sihmdd + wghfac *
1299 * 0.25*( expolp * expsop*exphap
1300 * +expolm * exmsop*exmhap
1301 * +expoln * exnsop*exnhap
1302 * +expolo * exosop*exohap )
1317 IF(abs(faphar*fapsof*faptrp*faploo*sigp(l,m,nnn)).LT.dtiny)
1321 sigp(l,m,nnn)=faphar*fapsof*faptrp*faploo*sigp(l,m,nnn)
1322 * * abs(faphar*fapsof*faptrp*faploo)/denomi*pi4
1323 ELSEIF(.NOT.lsqrt)
THEN
1324 sigp(l,m,nnn)=faphar*fapsof*faptrp*faploo*sigp(l,m,nnn)
1327 IF(abs(famhar*famsof*famtrp*famloo*sigm(l,m,nnn)).LT.dtiny)
1331 sigm(l,m,nnn)=famhar*famsof*famtrp*famloo*sigm(l,m,nnn)
1332 * * abs( famhar*famsof*famtrp*famloo)/denomi*pi4
1333 ELSEIF(.NOT.lsqrt)
THEN
1334 sigm(l,m,nnn)=famhar*famsof*famtrp*famloo*sigm(l,m,nnn)
1337 IF(abs(fanhar*fansof*fantrp*fanloo*sign(l,m,nnn)).LT.dtiny)
1341 sign(l,m,nnn)=fanhar*fansof*fantrp*fanloo*sign(l,m,nnn)
1342 * * abs( fanhar*fansof*fantrp*fanloo)/denomi*pi4
1343 ELSEIF(.NOT.lsqrt)
THEN
1344 sign(l,m,nnn)=fanhar*fansof*fantrp*fanloo*sign(l,m,nnn)
1347 IF(abs(faohar*faosof*faotrp*faoloo*sigo(l,m,nnn)).LT.dtiny)
1351 sigo(l,m,nnn)=faohar*faosof*faotrp*faoloo*sigo(l,m,nnn)
1352 * * abs( faohar*faosof*faotrp*faoloo/denomi)*pi4
1353 ELSEIF(.NOT.lsqrt)
THEN
1354 sigo(l,m,nnn)=faohar*faosof*faotrp*faoloo*sigo(l,m,nnn)
1365 nnnmax=nmaxi+(nmaxi+1)*nnmaxi
1369 sig(l,m,nnn)=(sigp(l,m,nnn)+sigm(l,m,nnn)+
1370 * sign(l,m,nnn)+sigo(l,m,nnn) )/4.
1381 IF(
nmax.LE.2 .AND.
n.EQ.1 .AND. nn.EQ.1 ) go to 4
1383 sigsum=sigsum + sig(l,m,nnn)
1385 IF(m.EQ.0.OR.l.GE.1) sigsme=sigsme + sig(l,m,nnn)
1386 shard(m)=shard(m)+sig(l,m,nnn)
1387 ssoft(l)=ssoft(l)+sig(l,m,nnn)
1388 strpl(
n)=strpl(
n)+sig(l,m,nnn)
1389 siginl = siginl + sig(l,m,nnn)
1390 IF(m.GE.1) sighri = sighri + sig(l,m,nnn)
1391 IF(l.EQ.0.AND.m.EQ.0.AND.nn.EQ.0.AND.
n.GE.1)
THEN
1392 sigdi = sigdi + (-1)**
n*sig(l,m,nnn)
1393 ELSEIF(l.EQ.0.AND.m.EQ.0.AND.
n.EQ.0.AND.nn.GE.1)
THEN
1394 sigddi= sigddi + (-1)**nn*sig(l,m,nnn)
1400 siglmd=silmsd+silmdd
1401 sithmd=sighmd+sihmdd
1402 sigd = siglmd + sithmd
1403 slhmdd =
sqrt(abs(silmdd*sihmdd))
1404 sigdd= silmdd + sihmdd + slhmdd
1410 IF(lentry.EQ.1.AND.ioutpo.LE.1)
RETURN
1413 WRITE(6,*)
' --- properties of events ---'
1415 WRITE(6,*)
' Energy=',ecm
1417 WRITE(6,*)
' max.contributing soft/hard/diffr./doubl.diffr. cuts'
1418 WRITE(6,*)
' LMAXI= MMAXI= NMAXI= NNMAXI='
1419 WRITE(6,
'(15X,4I9)') lmaxi,mmaxi,nmaxi,nnmaxi
1420 WRITE(6,*)
' methode used: '
1421 WRITE(6,*)
' ISIG= ICON= IPIM= '
1422 WRITE(6,
'(15X,3I9)') isig,icon,ipim
1424 WRITE(6,*)
' --- bare cross section and eikonal constants ---'
1428 WRITE(6,*)
' ALFA =',alfa,
' ALFAP =',alfap,
' A =',
a
1429 WRITE(6,*)
' C =',c,
' AK =',ak
1430 WRITE(6,*)
' ALALAM =',alalam
1432 WRITE(6,*)
' SIGSOF=',sigsof,
' BS=',bs,
' ZSOF=',zsof
1433 WRITE(6,*)
' SIGHAR=',sighar,
' BH=',bh,
' ZHAR=',zhar
1434 WRITE(6,*)
' SIGTRP=',sigtrp,
' BT=',bt,
' ZTRP=',ztrp
1435 WRITE(6,*)
' SIGLOO=',sigloo,
' BT=',bt,
' ZLOO=',zloo
1437 WRITE(6,*)
' --- observable cross sections ---'
1439 WRITE(6,*)
' TOTAL X-SECTION = ',sigtot
1440 WRITE(6,*)
' ELASTIC X-SECTION = ',sigele
1441 WRITE(6,*)
' INELASTIC X-SECTION-LMD = ',sigine
1442 WRITE(6,*)
' INELASTIC X-SECTION = ',sigin
1443 WRITE(6,*)
' HARD INEL. X-SECTION = ',sighin
1445 WRITE(6,*)
' LOW MASS SING./DOUB.DIFFR.X-SECTION= ',silmsd,silmdd
1446 WRITE(6,*)
' => LOW MASS TOTAL DIFFRACTIV.X-SECTION= ',siglmd
1447 WRITE(6,*)
' HIGH MASS SING./DOUB.DIFFR.X-SECTION= ',sigdi,sigddi
1448 WRITE(6,*)
' => HIGH MASS TOTAL DIFFRACTIV.X-SECTION= ',sithmd
1449 WRITE(6,*)
' ESTIMAT.MIXED (LM+HM) DOUBL.DIFFRAC.X.SEC.= ',slhmdd
1451 WRITE(6,*)
' DIFFRACTIVE X-SECTION = ',sigd
1452 WRITE(6,*)
' DOUBLY DIFFRACTIVE X-SECT. =',sigdd
1455 IF(ioutpo.GE.0)
THEN
1456 WRITE(6,*)
' --- observ. x-sections, altern. calculated ---'
1457 WRITE(6,*)
' ELASTIC X-SECTION = ',sigel
1458 WRITE(6,*)
' INELASTIC X-SECTION-LMD = ',siginl
1459 WRITE(6,*)
' HARD INEL. X-SECTION= ',sighri
1460 WRITE(6,*)
' HIGH MASS SING./DOUB.DIFFR.X-SECT.=',sighmd,sihmdd
1461 WRITE(6,*)
' X-SECTION FOR (L,M,N,NN)= 1000 0100 0010 0001'
1462 WRITE(6,*)
' ',sig(1,0,0),sig(0,1,0)
1463 * ,sig(0,0,1),sig(0,0,2)
1467 IF(ioutpo.GE.2)
THEN
1470 IF( nmaxi.LT.2)nnmaxp=1
1474 48
WRITE(6,101)(sig(l,m,
n),m=0,7)
1477 50
WRITE(6,101)(sig(l,m,
n),m=8,15)
1480 &
' # CUT-POMERON SSOFT X-SECT. SHARD X-SECT.'
1482 58
WRITE (6,103)l,ssoft(l),shard(l)
1500 cmbin(i,j)=fak(i)/(fak(j)*fak(i-j))
1506 IF(icon.EQ.44.OR.icon.EQ.46.OR.icon.EQ.48.
1507 * or.icon.EQ.54)
THEN
1510 plmntm=sig(l,m,0)/(sigsum+tin)
1511 plmn(l,m,0) = plmntm + plmn(l,m,0)
1514 plmntm=sig(l,m,1)/(sigsum+tin)
1516 IF(l+2.LE.lmaxi)
THEN
1517 plmn(l+2,m,0) = (-2.)* plmntm + plmn(l+2,m,0)
1518 plmn(l+1,m,0) = 4. * plmntm + plmn(l+1,m,0)
1520 plmn(lmaxi,m,0) = (-2.)* plmntm + plmn(lmaxi,m,0)
1521 plmn(lmaxi,m,0) = 4. * plmntm + plmn(lmaxi,m,0)
1523 IF(l.EQ.0 .AND. m.EQ.0)
THEN
1524 plmn(l ,m,1) = (-1.)* plmntm + plmn(l ,m,1)
1526 plmn(l ,m,0) = (-1.)* plmntm + plmn(l ,m,0)
1529 plmntm=sig(l,m,2)/(sigsum+tin)
1531 IF(l+2.LE.lmaxi)
THEN
1532 plmn(l+2,m,0) = (-2.)* plmntm + plmn(l+2,m,0)
1533 plmn(l+1,m,0) = 4. * plmntm + plmn(l+1,m,0)
1535 plmn(lmaxi,m,0) = (-2.)* plmntm + plmn(lmaxi,m,0)
1536 plmn(lmaxi,m,0) = 4. * plmntm + plmn(lmaxi,m,0)
1538 IF(l.EQ.0 .AND. m.EQ.0)
THEN
1539 plmn(l ,m,2) = (-1.)* plmntm + plmn(l ,m,2)
1541 plmn(l ,m,0) = (-1.)* plmntm + plmn(l ,m,0)
1547 IF(
nmax.LE.2 .AND.
n.EQ.1 .AND. nn.EQ.1) go to 51
1551 plmntm=sig(l,m,nnn)/(sigsum+tin)
1556 DO 511 n1cut=0,
n-n0cut
1560 cmb1=cmbin(
n-n2cut,n1cut)
1564 DO 511 nn1cut=0,nn-nn0cut
1565 nn2cut=nn-nn0cut-nn1cut
1567 cmbn0=cmbin(nn,nn2cut)
1568 cmbn1=cmbin(nn-nn2cut,nn1cut)
1579 l2str=l2str + n1cut + nn1cut + n2cut + nn2cut
1582 nl2str= n2cut + nn2cut
1583 ELSEIF(
nmax.GE.3)
THEN
1585 l2str=l2str+n2cut+nn2cut
1587 IF((icon.EQ.26.OR.icon.EQ.36.OR.icon.EQ.46.OR.icon.EQ.56)
1588 & .AND. (l2str.GE.1.OR.m2str.GE.1))
THEN
1589 l2str=l2str + nl2str
1596 IF(l2str.GT.lmaxi) l2str=lmaxi
1597 IF(m2str.GT.lmaxi) m2str=lmaxi
1598 nnnstr =n2str +(nmaxi+1)*nn2str
1599 * +(nnmaxi+1)*(nmaxi+1)*nl2str
1600 IF(nnnstr.GT.mxpa13) nnnstr=mxpa13
1603 plmn(l2str,m2str,nnnstr) = plmntm
1604 * *cmb0*cmb1 * (-2)**n2cut * (4)**n1cut * (-1)**n0cut
1605 * *cmbn0*cmbn1*(-2)**nn2cut* (4)**nn1cut* (-1)**nn0cut
1606 & + plmn(l2str,m2str,nnnstr)
1613 IF(abs(tmmp-1.d0).GT..03d0)
THEN
1615 &
' NORMALISATION ERROR SUM PLM before LMD reatribution=',tmmp
1622 plmfac= (sigsum+tin) / (sigsum+tin +siglmd)
1623 plmn(0,0,1)= plmn(0,0,1) +
1624 & ( silmsd - slhmdd ) / (sigsum+tin)
1625 plmn(0,0,2)= plmn(0,0,2) +
1626 & ( silmdd + slhmdd ) / (sigsum+tin)
1644 IF(
nmax.LE.2 .AND.
n+nn+nl.GE.2) go to 6
1645 nnn =
n +(nmaxi+1)*nn +(nnmaxi+1)*(nmaxi+1)* nl
1648 IF(nl.EQ.0)tmmp1 = tmmp1 + sig(l,m,nnn)
1649 tmmp = tmmp + sig(l,m,nnn)
1650 plmn(l,m,nnn)=plmn(l,m,nnn) * plmfac
1651 tmp = tmp + plmn(l,m,nnn)
1653 IF(plmn(l,m,nnn).LT.-.000005d0)
1654 &
WRITE(6,*)
' 0>PLMN',plmn(l,m,nnn),l,m,
n,nn,nl
1655 avsofn=avsofn+plmn(l,m,nnn)*l
1656 avharn=avharn+plmn(l,m,nnn)*m
1657 avdifn=avdifn+plmn(l,m,nnn)*
n
1658 avddfn=avddfn+plmn(l,m,nnn)*nn
1659 avdlfn=avdlfn+plmn(l,m,nnn)*nl
1660 IF (m.EQ.0)psoft=psoft+plmn(l,m,nnn)
1663 IF(abs(tmp-1.d0).GT..01d0)
THEN
1665 &
' NORMALISATION ERROR SUM PLM before M reatribution=',tmp
1669 IF(abs(tmmp-1.d0).GT..01d0 .OR.abs(tmmp1-1.d0).GT..01d0)
THEN
1671 &
' NORMALISATION ERROR TMMP,TMMP1=',tmmp,tmmp1
1681 IF(
nmax.LE.2 .AND.
n+nn+nl.GE.2) go to 61
1682 nnn =
n +(nmaxi+1)*nn +(nnmaxi+1)*(nmaxi+1)* nl
1689 IF (l.EQ.0.AND.m.GE.1)
THEN
1690 plmn(1,m,nnn)=plmn(1,m,nnn)+plmn(0,m,nnn)
1694 temp = temp + plmn(l,m,nnn)
1695 plmncu(l,m,nnn)=temp
1698 IF(ioutpo.GE.3)
WRITE (6,*)
' M,(L,PLMN(L,M,N),L=0,LMAX)'
1699 IF(ioutpo.GE.3)
WRITE (6,106) m,(l,plmn(l,m,
n),l=0,lmaxi)
1700 IF(ioutpo.GE.2)
WRITE (6,*)
' M,(L,PLMNCU(L,M,N),L=0,LMAX/2)'
1701 IF(ioutpo.GE.2)
WRITE (6,106) m,(l,plmncu(l,m,
n),l=0,lmaxi/2)
1702 106
FORMAT (i3,9(i3,e11.2))
1707 IF(abs(temp-1.d0).GT..01d0)
THEN
1708 WRITE(6,*)
' NORMALISATION ERROR SUM PLM=',temp
1709 plmfac=1./(temp+tin)
1713 IF(ioutpo.GE.1)
WRITE (6,*)
1714 &
'(((L,M,N,PLMN(L,M,N),N=0,2),M=0,5),L=0,7)'
1715 IF(ioutpo.GE.1)
WRITE (6,1106)
1716 & (((l,m,
n,plmn(l,m,
n),
n=0,2),m=0,5),l=0,7)
1717 IF(ioutpo.GE.1)
WRITE (6,*)
1718 &
'(((L,M,N,SIG(L,M,N),N=0,2),M=0,5),L=0,7)'
1719 IF(ioutpo.GE.1)
WRITE (6,1106)
1720 & (((l,m,
n,sig(l,m,
n),
n=0,2),m=0,5),l=0,7)
1721 1106
FORMAT (1x,3(i5,i5,i5,g12.5))
1724 alfah=sighin/(sigine+0.00001)
1726 WRITE(6,116)avsofn,avharn,avdifn,avddfn,avdlfn,
1727 & phard,psoft,alfah,betah
1728 116
FORMAT(/
'--- various averages:'/
1729 & /
' AVSOFN= AVHARN= AVDIFN= AVDDFN= AVDLFN='
1731 & /
' PHARD= PSOFT= ALFAH= BETAH= '
1733 IF(ioutpo.GE.1)
WRITE(6,*)
'SIGSUM=SIGINL-LMD',sigsum
1735 IF(ioutpo.GE.1)
WRITE(6,610) sigtot,sigine,sigd,sigdd,sighin
1736 610
FORMAT (
' SIGTOT,SIGINE,SIGD,SIGDD,SIGHIN= '/
' ',5e18.6)
1738 101
FORMAT(
' ',10e10.3)
1740 103
FORMAT(
' ',5x,i4,5x,2e15.3)
1749 SUBROUTINE samplx(L2STR,M2STR,N2STR,NN2STR,NL2STR)
1758 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1760 COMMON /nncms/ gamcm,bgcm,umo,pcm,eproj,pproj
1762 COMMON /pomene/poen(28),poen1(28),poen2(28),nestep
1763 parameter(mxpu50=100,mxpu51=mxpu50+1)
1764 parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
1766 parameter(mxpa50=250,mxpa51=mxpa50+1)
1770 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
1771 COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
1773 COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
1774 * plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
1776 COMMON /polmn1/ plmnee(0:mxpa25,0:mxpu50,0:mxpa13,28)
1777 COMMON /polmn0/pdifr,phard,psoft,alfah,betah,
1778 * sigtot,sigqel,sigel,sigine,sighin,sigd,sigdd
1780 parameter(pi=3.141592654d0)
1785 IF(umo.GE.poen1(ii).AND.umo.LT.poen2(ii))
THEN
1799 ELSEIF(ipim.EQ.2)
THEN
1802 nnmaxi=(13-nmaxi)/(1+nmaxi)
1805 ELSEIF(
nmax.EQ.2)
THEN
1809 ELSEIF(
nmax.EQ.1)
THEN
1819 IF (x.LE.plmncu(0,0,0) .AND. nprint.LT.100)
THEN
1820 WRITE(6,*)
' No generator of elastic events '
1821 WRITE(6,*)
' PLMNCU (0,0,0) =!= 0 = ',plmncu(0,0,0)
1829 nnn =
n +(nmaxi+1)*nn +(nnmaxi+1)*(nmaxi+1)* nl
1834 IF (x.LE.plmnee(l,m,nnn,ipoen))
THEN
1848 IF(nprint.LT.100)
WRITE(6,*)
' RAR.IN SAMPLM,PLMNCU,RND=',
1849 & plmncu(lmax, mmax,nnn),x,nprint
1850 IF( plmncu(lmax,mmax,nnn) .GT. 0.1d0 )
RETURN
1851 IF( plmncu(lmax,0,0) .GT. 0.1d0 )
RETURN
1852 WRITE(6,*)
' RAR.IN SAMPLM- PROBLEM SEEMS BAD, DECIDE TO STOP'
1868 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
1870 COMMON /nncms/ gamcm,bgcm,umo,pcm,eproj,pproj
1872 COMMON /pomene/poen(28),poen1(28),poen2(28),nestep
1873 parameter(mxpu50=100,mxpu51=mxpu50+1)
1875 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
1876 COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
1878 parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
1880 parameter(mxpa50=250,mxpa51=mxpa50+1)
1883 COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
1884 * plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
1886 COMMON /polmn1/ plmnee(0:mxpa25,0:mxpu50,0:mxpa13,28)
1887 COMMON /polmn0/pdifr,phard,psoft,alfah,betah,
1888 * sigtot,sigqel,sigel,sigine,sighin,sigd,sigdd
1890 parameter(pi=3.141592654d0)
1893 IF(umo.GE.poen1(ii).AND.umo.LT.poen2(ii))
THEN
1903 IF (x.LE.plmncu(0,0,0))
THEN
1904 WRITE(6,*)
' No generator of elastic events '
1905 WRITE(6,*)
' PLMNCU (0,0,0) =!= 0 = ',plmncu(0,0,0)
1915 IF (x.LE.plmnee(l,m,
n,ipoen))
THEN
1926 WRITE(6,*)
' RAR.IN SAMPLM,PLMNCU,RND=',plmncu(lmax,mmax,
nmax),x
1927 IF( plmncu(lmax,mmax,
nmax) .GT. 0.1d0 )
RETURN
1928 IF( plmncu(lmax,0,0) .GT. 0.1d0 )
RETURN
1929 WRITE(6,*)
' RAR.IN SAMPLM- PROBLEM SEEMS BAD, DECIDE TO STOP'
1997 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2001 parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
2003 parameter(mxpa50=250,mxpa51=mxpa50+1)
2006 COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
2007 * plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
2008 COMMON /polmn0/pdifr,phard,psoft,alfah,betah,
2009 * sigtot,sigqel,sigel,sigine,sighin,sigd,sigdd
2012 COMMON /histoo/as(50,9),aecm(50,9),asig(50,9),alos(50,9),
2013 * aloecm(50,9),ndislm(0:mxpa25,0:mxpa50,0:mxpa13)
2015 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
2020 common/pompar/alfa,alfap,
a,c,ak
2025 COMMON /sigma/sigsof,bs,zsof,sighar,bh,zhar,sigtrp,bt,ztrp,
2030 COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
2031 COMMON /alala/alalam
2034 COMMON /collpo/
s,ptthr,ptthr2
2036 COMMON /collis/ss,ijproj,ijtar,pttpo,pttpo2,iophrd,ijprlu,ijtalu
2040 parameter(pi=3.141592654d0)
2056 *
' ------ testing the energy dependence of x-sections ----------'
2058 IF(ioutpo.GT.-1)
WRITE(6,*)
2059 *
' (as function of ALAM i.e.a low mass diffr.parameter)'
2060 WRITE(6,*)
' -----------------------------------------------'
2064 IF(ioutpo.GT.-1 .OR. iijj.EQ.6)
THEN
2068 IF(ioutpo.GT.-1)
WRITE(6,1008)alalam
2069 1008
FORMAT (
' ALAM= ',f10.3)
2091 nnmaxi=(13-nmaxi)/(1+nmaxi)
2094 ELSEIF(
nmax.EQ.2)
THEN
2098 ELSEIF(
nmax.EQ.1)
THEN
2105 IF(ipim.LT.1.AND.ipim.GT.9)
THEN
2106 WRITE(6,*)
'RETURN caused by IPIM=',ipim
2115 * (
'--- sample distribution for L soft and M hard inelastic'
2116 * ,
' pomerons (string pairs)--- '
2117 * / 20x,
'at ECM = ',f10.2,
' S = ',f12.1)
2125 IF(icon.EQ.12)go to 100
2128 CALL
samplx(l2str,m2str,n2str,nn2str,nl2str)
2129 nnnstr =n2str +(nmaxi+1)*nn2str
2130 * +(nnmaxi+1)*(nmaxi+1)*nl2str
2131 ndislm(l2str,m2str,nnnstr)=ndislm(l2str,m2str,nnnstr)+1
2133 CALL
samplm(l2str,m2str,n2str)
2134 ndislm(l2str,m2str,n2str)=ndislm(l2str,m2str,n2str)+1
2139 *
' with no diffractive contribution'
2142 *
' ....... vertical: NSTR, horizontal MSTR .........'
2143 DO 3344 l=0,min(20,lmaxi)
2144 3344
WRITE(6,34)l,(ndislm(l,m,0),m=0,20)
2149 WRITE(6,*)
' WITH NSTR=',
n
2150 DO 334 l=0,min(20,lmaxi)
2151 WRITE(6,34)l,(ndislm(l,m,
n),m=0,20)
2155 jmpa50 =
int(mxpa50/25)
2157 WRITE(6,*)
'WIDE PLOT 0<L<',mxpa25,
' 0<M<'
2158 & ,mxpa50,
' IN STEPS OF ',jmpa50
2161 WRITE(6,35)l,(ndislm(l,m,
n),m=0,mxpa50,jmpa50)
2166 34
FORMAT (i5,
':',21i4)
2189 IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
2193 COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
2195 parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
2196 parameter(
zero=0.d0,
one=1.d0)
2198 parameter(mxpa50=250,mxpa51=mxpa50+1)
2201 COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
2202 * plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
2203 COMMON /polmn0/pdifr,phard,psoft,alfah,betah,
2204 * sigtot,sigqel,sigel,sigine,sighin,sigd,sigdd
2207 COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
2208 common/pompar/alfa,alfap,
a,c,ak
2209 COMMON /sigma/sigsof,bs,zsof,sighar,bh,zhar,sigtrp,bt,ztrp,
2212 COMMON /topdr/itopd,idumtp
2215 COMMON /histoo/as(50,9),aecm(50,9),asig(50,9),alos(50,9),
2216 * aloecm(50,9),ndislm(0:mxpa25,0:mxpa50,0:mxpa13)
2218 parameter(pi=3.141592654d0)
2225 IF(ioutpo.GT.-1)istep=7
2236 alos(i,iii)=log10(
s)
2237 aloecm(i,iii)=log10(ecm)
2245 IF(i.EQ.1 .AND. ioutpo.GE.0 )
WRITE(6,*)
2246 &
' s-dep. by integr.with Y,PHI,LMD'
2249 IF(i.EQ.1 .AND. ioutpo.GE.0 )
WRITE(6,*)
2250 &
' s-dep. by integr.with Y,PHI,LMD (DEFAULT)'
2262 asig(i,7)=sigtot-sigine
2263 asig(i,8)=sigine-sighin
2265 WRITE (6,1007)ecm,sigtot,sigine,sigel,sigd
2266 1007
FORMAT (
' ECM,SIGTOT,SIGINE,SIGEL,SIGD',f10.1,4e14.3)
2274 991
FORMAT (//
' shown as line printer plott'/
' with'/
2276 1
' (*) SIGTOT total x-section',
2277 2
' (2) SIGINE inelastic x-section'/
2278 3
' (3) SIGHIN hard inelastic cross section, one or more jets',
2279 4
' (4) SIGSOF input soft x-section'/
2280 5
' (5) SIGHAR input hard x-sections',
2281 6
' (6) SIGTRP input diffractive x-section (triple pomeron)'/
2282 7
' (7) SIGTOT-SIGINE elastic x-section',
2283 8
' (8) SIGINE-SIGHIN non-hard inelastic x-section, (no jets)'/
2284 9
' (9) SIGD diffractive xross section '/
2285 *
' are plotted against LOG(10)of(CMENERGY)' //)
2291 IF (itopd.EQ.1)
THEN
2293 95
FORMAT(
' NEW FRAME'/
' SET FONT DUPLEX'/
' SET SCALE X LOG'/
2294 *
' SET LIMITS X FROM 1.0 TO 1E5 Y FROM 0. TO 200'/
2295 *
' TITLE TOP < TOTAL,INEL. AND HARD (MINIJET) CROSS SECT.<'/
2296 *
' TITLE BOTTOM <C.M.ENERGY [GEV]<'/
2297 *
' TITLE < DUAL UNITARIZATION OF SOFT AND HARD CROSS SECTIONS<'/
2298 *
' TITLE LEFT LINES=-1 <CROSS SECTION [MB]<'/
2299 *
' TITLE 3 8.5 < SOLID = TOTAL X.S. <'/
2300 *
' TITLE < DASHED= INELASTIC X.S. <'/
2301 *
' TITLE < DOTTED= HARD X.S.<'/
2302 *
' TITLE < DOT-DASH= HARD INPUT X.S. <'/
2303 *
' TITLE < DOT-DASH= ELASTIC X.S. <')
2306 IF (iuu.EQ.4)go to 94
2307 IF (iuu.EQ.6)go to 94
2308 IF (iuu.EQ.1)
WRITE(7,97)
2309 97
FORMAT (
' SET TEXTURE SOLID')
2310 IF (iuu.EQ.2)
WRITE(7,98)
2311 98
FORMAT (
' SET TEXTURE DASHES')
2312 IF (iuu.EQ.3)
WRITE(7,99)
2313 99
FORMAT (
' SET TEXTURE DOTS')
2314 IF (iuu.EQ.5)
WRITE(7,197)
2315 197
FORMAT (
' SET TEXTURE DOTDASH')
2317 WRITE(7,92)aecm(iu,iuu),asig(iu,iuu)
subroutine gset(AX, BX, NX, Z, W)
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
BasicVector3D< T > unit() const
subroutine samplm(L2STR, M2STR, N2STR)
subroutine samplx(L2STR, M2STR, N2STR, NN2STR, NL2STR)
subroutine plot(X, Y, N, M, MM, XO, DX, YO, DY)
double precision function energy(A, Z)
double precision function rndm(RDUMMY)
subroutine title(NA, NB, NCA, NCB)
static c2_log_p< float_type > & log()
make a *new object
static c2_sqrt_p< float_type > & sqrt()
make a *new object
static c2_exp_p< float_type > & exp()
make a *new object