2331 lines
84 KiB
FortranFixed
2331 lines
84 KiB
FortranFixed
C---------------------------------------------------------------------
|
|
C dtcpomqj.f (July 1993)
|
|
C-----------------------------------------------------------------------
|
|
************************************************************************
|
|
*
|
|
SUBROUTINE SIGSHD(ECM)
|
|
* May 1991
|
|
* input:
|
|
* hard cross sections (see DATA statements)
|
|
* ECM (independent of CMENER in /USER/)
|
|
* output:
|
|
* bar cross sections for soft (SIGSOF) hard (SIGHAR) and diffractive
|
|
* (SIGTRP) SCATTERING
|
|
*
|
|
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
*
|
|
* version determined by ISIG
|
|
C*********************************************************************
|
|
C ISIG=1-9 dropped since dpmjet-II.4.2
|
|
C*********************************************************************
|
|
* ISIG=1 Capella,Tran Thanh Van,Kwiecinski,PRL 58(1987)2015
|
|
* ISIG=2 Capella,Tran Thanh Van,Kwiecinski,PRL 58(1987)2015 CHG.SIG
|
|
* ISIG=3 ALL SUBPROCESSES HARD CROSS SECTIONS PTHR CHANGING WITH ECM
|
|
* ISIG=4 ALL SUBPROCESSES HARD CROSS SECTIONS PTHR=3 GEV/C MRS1
|
|
* ISIG=5 ALL SUBPROCESSES HARD CROSS SECTIONS PTHR=2 GEV/C MRS1
|
|
* ISIG=6 ALL SUBPROCESSES HARD CROSS SECTIONS PTHR=1.3 GEV/C MRS1
|
|
* ISIG=7 all subprocesses hard cross sections PTHR=2GEV/C MRS1
|
|
* ISIG=8 program written by Patrick and Maire
|
|
* ISIG=9 ALL SUBPROCESSES HARD CROSS SECTIONS PTHR=1.0 GEV/C MRS1
|
|
C*********************************************************************
|
|
C ISIG=1-9 dropped since dpmjet-II.4.2
|
|
C*********************************************************************
|
|
* ISIG=10 Version ISIG=4 including different sets
|
|
* of structure functions
|
|
*
|
|
*-----------------------------------------------------------------------
|
|
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
|
|
SAVE
|
|
* CONVERSION FACTOR GEV**-2 TO MILLIBARNS
|
|
PARAMETER (CONV=.38935D0)
|
|
PARAMETER (PI=3.141592654D0,
|
|
& THREE=3.D0,
|
|
& TWO =2.D0,
|
|
& EPS=1.D-3)
|
|
PARAMETER (THOUSA = 1000.D0)
|
|
*
|
|
* *** /OUTLEV/ controls output level for POMDI and parton X distribution
|
|
COMMON /OUTLEV/IOUTPO,IOUTPA,IOUXEV,IOUCOL
|
|
*
|
|
* *** /POMPAR/*/SIGMA/*/POMTYP/ used only in SIGMAPOM-routines (->POMDI)
|
|
COMMON /POMTYP/IPIM,ICON,ISIG,LMAX,MMAX,NMAX,DIFEL,DIFNU
|
|
COMMON/POMPAR/ALFA,ALFAP,A,C,AK
|
|
COMMON /SIGMA/SIGSOF,BS,ZSOF,SIGHAR,BH,ZHAR,SIGTRP,BT,ZTRP,
|
|
* SIGLOO,ZLOO
|
|
*
|
|
CHARACTER*80 TITLE
|
|
CHARACTER*8 PROJTY,TARGTY
|
|
C COMMON /USER/TITLE,PROJTY,TARGTY,CMENER,ISTRUF
|
|
C & ,ISINGD,IDUBLD,SDFRAC,PTLAR
|
|
COMMON /USER1/TITLE,PROJTY,TARGTY
|
|
COMMON /USER2/CMENER,SDFRAC,PTLAR,ISTRUF,ISINGD,IDUBLD
|
|
*
|
|
COMMON /STRUFU/ISTRUM,ISTRUT
|
|
COMMON /ALALA/ALALAM
|
|
C COMMON/COLLIS/S,IJPROJ,IJTAR,PTTHR,PTTHR2,IOPHRD,IJPRLU,IJTALU
|
|
C Prevent initialization energy
|
|
C to pollute s in /COLLIS/
|
|
COMMON /COLLPO/S,PTTHR,PTTHR2
|
|
C COMMON /COLLIS/SPO,IJPROJ,IJTAR,PTTPO,IOPHRD,IJPRLU,IJTALU,
|
|
C * PTTPO2
|
|
COMMON/COLLIS/SPO,IJPROJ,IJTAR,PTTPO,PTTPO2,IOPHRD,IJPRLU,IJTALU
|
|
COMMON /HAQQAP/ AQQAL,AQQPD,NQQAL,NQQPD
|
|
*
|
|
DIMENSION SQS(13)
|
|
DIMENSION SQSJ(17)
|
|
DIMENSION XSQSJ(21),XXHHJ4(21)
|
|
*
|
|
*
|
|
*
|
|
* used in ISIG=3,5,6,7,9
|
|
DATA XSQSJ/0.005,0.01,0.02,0.035,0.053,
|
|
* 0.1,0.2,0.35,0.54,1.,2.,5.,
|
|
*10.,20.,40.,100.,200.,400.,1000.,2000.,4000./
|
|
*
|
|
* used in ISIG 10,40
|
|
DATA SQS/1.,2.,3.,4.,5.,10.,20.,30.,40.,100.,200.,500.,1000./
|
|
*
|
|
PI4=4.*PI
|
|
S=ECM**2
|
|
***********************************************************************
|
|
*----------------------------------------------------------------------
|
|
*
|
|
* ** select option used
|
|
*
|
|
GO TO (10,20,30,40,50,60,70,80,90,100),ISIG
|
|
*
|
|
10 CONTINUE
|
|
WRITE(6,*)' This value of ISIG no longer available ISIG=',ISIG
|
|
*----------------------------------------------------------------------
|
|
* nach: Capella, Tran Thanh Van, Kwiecinski, PRL 58(1987)2015
|
|
* as used in Ranft et al. SSC 149 Eq. 4,5
|
|
*
|
|
20 CONTINUE
|
|
WRITE(6,*)' This value of ISIG no longer available ISIG=',ISIG
|
|
*----------------------------------------------------------------------
|
|
* nach: Capella,Tran Thanh Van,Kwiecinski,PRL 58(1987)2015 CHG.SIG
|
|
*
|
|
30 CONTINUE
|
|
WRITE(6,*)' This value of ISIG no longer available ISIG=',ISIG
|
|
*----------------------------------------------------------------------
|
|
* nach: all subprocesses hard cross sections LIKE 70
|
|
C PTHR RISING WITH ECM
|
|
* NEW SIGTRP RISING LIKE LOG(S) A.CAPELLA 30.3.90
|
|
C ONLY FOR USE WITH PRBLM2!!!!!!!!!!!!!!!!
|
|
40 CONTINUE
|
|
WRITE(6,*)' This value of ISIG no longer available ISIG=',ISIG
|
|
*----------------------------------------------------------------------
|
|
* nach: all subprocesses hard cross sections LIKE 70
|
|
C PTHR RISING WITH ECM ptthr=3gev
|
|
* NEW SIGTRP RISING LIKE LOG(S) A.CAPELLA 30.3.90
|
|
C ONLY FOR USE WITH PRBLM2!!!!!!!!!!!!!!!!
|
|
50 CONTINUE
|
|
WRITE(6,*)' This value of ISIG no longer available ISIG=',ISIG
|
|
*----------------------------------------------------------------------
|
|
* nach: all subprocesses hard cross sections LIKE 70
|
|
C PTHR RISING WITH ECM ptthr=2 gev
|
|
* NEW SIGTRP RISING LIKE LOG(S) A.CAPELLA 30.3.90
|
|
C ONLY FOR USE WITH PRBLM2!!!!!!!!!!!!!!!!
|
|
60 CONTINUE
|
|
WRITE(6,*)' This value of ISIG no longer available ISIG=',ISIG
|
|
*----------------------------------------------------------------------
|
|
* nach: all subprocesses hard cross sections LIKE 70
|
|
C PTHR RISING WITH ECM ptthr=1.3 GEV
|
|
* NEW SIGTRP RISING LIKE LOG(S) A.CAPELLA 30.3.90
|
|
C ONLY FOR USE WITH PRBLM2!!!!!!!!!!!!!!!!
|
|
70 CONTINUE
|
|
WRITE(6,*)' This value of ISIG no longer available ISIG=',ISIG
|
|
*----------------------------------------------------------------------
|
|
* nach: all subprocesses hard cross sections
|
|
*
|
|
80 CONTINUE
|
|
WRITE(6,*)' This value of ISIG no longer available ISIG=',ISIG
|
|
*----------------------------------------------------------------------
|
|
* nach: Patrick Maires program
|
|
90 CONTINUE
|
|
WRITE(6,*)' This value of ISIG no longer available ISIG=',ISIG
|
|
*----------------------------------------------------------------------
|
|
* nach: all subprocesses hard cross sections LIKE 70
|
|
C PTHR RISING WITH ECM ptthr=1.0 GEV
|
|
* NEW SIGTRP RISING LIKE LOG(S) A.CAPELLA 30.3.90
|
|
C ONLY FOR USE WITH PRBLM2!!!!!!!!!!!!!!!!
|
|
RETURN
|
|
100 CONTINUE
|
|
*----------------------------------------------------------------------
|
|
* nach: all subprocesses hard cross sections LIKE 70
|
|
C PTHR RISING WITH ECM
|
|
* NEW SIGTRP RISING LIKE LOG(S) A.CAPELLA 30.3.90
|
|
C ONLY FOR USE WITH PRBLM2!!!!!!!!!!!!!!!!
|
|
C INTRODUCED 18.12.90
|
|
C BY DIETER PERTERMANN
|
|
C modified 11-06-92 (R.Engel)
|
|
C
|
|
C default parameter set
|
|
ALFA=1.076
|
|
ALFAP=0.24
|
|
A=40.8
|
|
BH=3.51
|
|
BHOO=BH
|
|
BSOO=BH
|
|
AK=1.5
|
|
C ALALAM --> ALAM (see PRBLM2 and POMDI)
|
|
ALALAM=0.0
|
|
C begin fixed ptthr=3GeV
|
|
C--------------------------------------------------------------------
|
|
IF(ABS(PTTHR-THREE).LT.EPS) THEN
|
|
WRITE(6,*)' PTTHR=3. not available in dpmjet25'
|
|
WRITE(6,*) ' WARNING: no model parameter set available'
|
|
WRITE(6,*) ' for this combination of PTCUT and ISTRUF'
|
|
WRITE(6,*) ' (initialization using default values)'
|
|
ALFA = 1.078
|
|
A = 42.6
|
|
ALALAM=0.740
|
|
AQQAL=1.D0
|
|
AQQPD=1.D0
|
|
ALFAP= 0.24
|
|
AK=2.0
|
|
ENDIF
|
|
C end fixed ptthr=3GeV
|
|
C begin fixed ptthr=2GeV
|
|
IF(ABS(PTTHR-TWO).LT.EPS) THEN
|
|
WRITE(6,*)' PTTHR=2. not available in dpmjet25'
|
|
WRITE(6,*) ' WARNING: no model parameter set available'
|
|
WRITE(6,*) ' for this combination of PTCUT and ISTRUF'
|
|
WRITE(6,*) ' (initialization using default values)'
|
|
ALFA = 1.042
|
|
A = 64.54
|
|
ALALAM=0.6402
|
|
AQQAL=1.D0
|
|
AQQPD=1.D0
|
|
ALFAP= 0.24
|
|
AK=2.0
|
|
ENDIF
|
|
C\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
|
C end fixed ptthr=2GeV
|
|
C-----------------------------------------------------------
|
|
C-----------------------------------------------------------
|
|
C-----------------------------------------------------------
|
|
C begin ptthr= PTTHR=2.1+0.15*(LOG10(ECM/50.))**3
|
|
C-----------------------------------------------------------
|
|
IF(ISTRUT.EQ.1) THEN
|
|
WRITE(6,*)' ISTRUT=1 (PTTHR=2.1+0.15*(LOG10(ECM/50.))**3)',
|
|
* 'not available in dpmjet25'
|
|
PTTHR=2.1+0.15*(LOG10(ECM/50.))**3
|
|
PTTHR2=PTTHR
|
|
WRITE(6,*) ' WARNING: no model parameter set available'
|
|
WRITE(6,*) ' for this combination of PTCUT and ISTRUF'
|
|
WRITE(6,*) ' (initialization using default values)'
|
|
ALFA = 1.042
|
|
A = 64.54
|
|
ALALAM=0.6402
|
|
AQQAL=1.D0
|
|
AQQPD=1.D0
|
|
ALFAP= 0.24
|
|
AK=2.0
|
|
ENDIF
|
|
C end PTTHR=2.1+0.15*(LOG10(ECM/50.))**3
|
|
C\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
|
BHOO=BH
|
|
BSOO=BH
|
|
C\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
|
C-----------------------------------------------------------
|
|
C-----------------------------------------------------------
|
|
C-----------------------------------------------------------
|
|
C begin PTTHR=2.5+0.12*(LOG10(ECM/50.))**3
|
|
C-----------------------------------------------------------
|
|
IF(ISTRUT.EQ.2) THEN
|
|
PTTHR=2.5+0.12*(LOG10(ECM/50.))**3
|
|
PTTHR2=PTTHR
|
|
IF( ISTRUF.EQ.9 ) THEN
|
|
WRITE(6,*)' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
|
|
* 'and ISTRUF= ',ISTRUF ,' not available in dpmjet25'
|
|
GO TO 778
|
|
ELSEIF( ISTRUF.EQ.10 ) THEN
|
|
WRITE(6,*)' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
|
|
* 'and ISTRUF= ',ISTRUF ,' not available in dpmjet25'
|
|
GO TO 778
|
|
ELSEIF( ISTRUF.EQ.11 ) THEN
|
|
WRITE(6,*)' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
|
|
* 'and ISTRUF= ',ISTRUF ,' not available in dpmjet25'
|
|
GO TO 778
|
|
ELSEIF( ISTRUF.EQ.12 ) THEN
|
|
WRITE(6,*)' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
|
|
* 'and ISTRUF= ',ISTRUF ,' not available in dpmjet25'
|
|
GO TO 778
|
|
ELSEIF( ISTRUF.EQ.13 ) THEN
|
|
WRITE(6,*)' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
|
|
* 'and ISTRUF= ',ISTRUF ,' not available in dpmjet25'
|
|
GO TO 778
|
|
ELSEIF( ISTRUF.EQ.14 ) THEN
|
|
WRITE(6,*)' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
|
|
* 'and ISTRUF= ',ISTRUF ,' not available in dpmjet25'
|
|
GO TO 778
|
|
ELSEIF( ISTRUF.EQ.15 ) THEN
|
|
WRITE(6,*)' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
|
|
* 'and ISTRUF= ',ISTRUF ,' not available in dpmjet25'
|
|
C CETQ PDFs with other scale
|
|
GO TO 778
|
|
ELSEIF( ISTRUF.EQ.16 ) THEN
|
|
WRITE(6,*)' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
|
|
* 'and ISTRUF= ',ISTRUF ,' not available in dpmjet25'
|
|
AK=2.0
|
|
GO TO 778
|
|
ELSEIF( ISTRUF.EQ.17 ) THEN
|
|
WRITE(6,*)' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
|
|
* 'and ISTRUF= ',ISTRUF ,' not available in dpmjet25'
|
|
GO TO 778
|
|
ELSEIF( ISTRUF.EQ.18 ) THEN
|
|
WRITE(6,*)' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
|
|
* 'and ISTRUF= ',ISTRUF ,' not available in dpmjet25'
|
|
GO TO 778
|
|
ELSEIF( ISTRUF.EQ.19 ) THEN
|
|
WRITE(6,*)' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
|
|
* 'and ISTRUF= ',ISTRUF ,' not available in dpmjet25'
|
|
GO TO 778
|
|
ELSEIF( ISTRUF.EQ.20 ) THEN
|
|
WRITE(6,*)' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
|
|
* 'and ISTRUF= ',ISTRUF ,' not available in dpmjet25'
|
|
C GRV94LO AK=1. only for ISTRUT = 2
|
|
GO TO 778
|
|
ELSEIF( ISTRUF.EQ.21 ) THEN
|
|
ALFA = 1.0733
|
|
ALFAP= 0.171
|
|
A = 47.84
|
|
ALALAM=0.621
|
|
BSOO=1.58
|
|
BHOO=3.54
|
|
AK=1.000
|
|
C GRV94LO AK=2. only for ISTRUT = 2
|
|
ELSEIF( ISTRUF.EQ.22 ) THEN
|
|
ALFA = 1.0513
|
|
ALFAP= 0.3246
|
|
A = 55.16
|
|
ALALAM=0.5846
|
|
BSOO=1.114
|
|
BHOO=1.703
|
|
AK=2.000
|
|
C CTEQ96 AK=2. only for ISTRUT = 2
|
|
ELSEIF( ISTRUF.EQ.23 ) THEN
|
|
ALFA = 1.0448
|
|
ALFAP= 0.372
|
|
A = 57.51
|
|
ALALAM=0.566
|
|
BSOO=0.97
|
|
BHOO=1.47
|
|
AK=2.000
|
|
ELSE
|
|
778 CONTINUE
|
|
WRITE(6,*) ' WARNING: no model parameter set available'
|
|
WRITE(6,*) ' for this combination of PTCUT and ISTRUF'
|
|
WRITE(6,*) ' (initialization using default values)'
|
|
ALFA = 1.042
|
|
A = 64.54
|
|
ALALAM=0.6402
|
|
AQQAL=1.D0
|
|
AQQPD=1.D0
|
|
ALFAP= 0.24
|
|
AK=2.0
|
|
ENDIF
|
|
BHOO = BHOO/CONV
|
|
BSOO = BSOO/CONV
|
|
ENDIF
|
|
C end PTTHR=2.5+0.12*(LOG10(ECM/50.))**3
|
|
C\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
|
C slopes in GeV**-2
|
|
BS=BSOO+ALFAP*LOG(S)
|
|
BH=BHOO
|
|
* BS=BSOO+ALFAP*LOG(S)
|
|
C change units to mb
|
|
BH=BH*CONV
|
|
BS=BS*CONV
|
|
BT=BS
|
|
C\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
|
C BT=BS/2.
|
|
C=40.
|
|
C CHANGED 13.1.90 BY J.R.
|
|
C C=1.8
|
|
C\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
|
C C=1.E-8
|
|
* parametrizations of input cross sections
|
|
SIGSOF=A*S**(ALFA-1.)
|
|
* *** hard X-section
|
|
* read interpolation data for different
|
|
* sets of structure functions:
|
|
*
|
|
CALL RDXSEC(XXHHJ4)
|
|
IF(ISTRUF.EQ.21)AK=2.
|
|
SIGHAR=1.E-8
|
|
IF (S.GT.2450.D0)
|
|
* SIGHAR=AK*0.1*(S-2450.)**0.35
|
|
IF(ECM.GE.THOUSA*XSQSJ(2)) THEN
|
|
DO 1031 I=1,20
|
|
III=I+1
|
|
IF(ECM.LT.XSQSJ(III)*THOUSA.AND.
|
|
* ECM.GE.THOUSA*XSQSJ(I))THEN
|
|
DSQ=ECM-THOUSA*XSQSJ(I)
|
|
DDSQ=THOUSA*(XSQSJ(III)-XSQSJ(I))
|
|
DHS=(XXHHJ4(III)-XXHHJ4(I))
|
|
SIGHAR=AK*(XXHHJ4(I)+DHS*DSQ/DDSQ)*0.5
|
|
ENDIF
|
|
1031 CONTINUE
|
|
ENDIF
|
|
C
|
|
C *** trippel pomeron X-section
|
|
C
|
|
C VERSION A.CAPELLA 30.3.90
|
|
GCA=SQRT(A)
|
|
G3CA=GCA**3
|
|
GACA=0.42
|
|
C BSDOCA=1.372
|
|
BSDOCA=BSOO*CONV
|
|
C ALSCA=.0925
|
|
ALSCA=ALFAP*CONV
|
|
ALNS=LOG(S)
|
|
BSDCA=BSDOCA+2.*ALSCA*ALNS
|
|
SIGTRP=G3CA*GACA*LOG(S/10.)/(8.*3.14*BSDCA)
|
|
IF (SIGTRP.LT.0.D0)SIGTRP=0.01
|
|
C
|
|
BDDCA=2.*ALSCA*ALNS
|
|
ALO1SQ=(LOG(S/400.))**2
|
|
ALO2SQ=(LOG(25./S))**2
|
|
ALO3SQ=(LOG(5./20.))**2
|
|
SIGLOO=A*GACA**2*(ALO1SQ+ALO2SQ-2.*ALO3SQ)/(32.*3.14*BDDCA)
|
|
C
|
|
ZSOF=SIGSOF/(PI4*BS)
|
|
ZHAR=SIGHAR/(PI4*BH)
|
|
ZTRP=SIGTRP/(PI4*BT)
|
|
ZLOO=SIGLOO/(PI4*BT)
|
|
C
|
|
C WRITE(6,'(2(/1X,A))') 'SELECTED PARAMETERS:',
|
|
C & '===================='
|
|
C WRITE(6,'(1X,A,E12.3)') ' ALFA ',ALFA
|
|
C WRITE(6,'(1X,A,E12.3)') ' ALFAP ',ALFAP
|
|
C WRITE(6,'(1X,A,E12.3)') ' A ',A
|
|
C WRITE(6,'(1X,A,2E12.3)') ' BS,BSOO',BS,BSOO*CONV
|
|
C WRITE(6,'(1X,A,2E12.3)') ' BH,BHOO',BH,BHOO*CONV
|
|
C WRITE(6,'(1X,A,E12.3)') ' GACA ',GACA
|
|
C WRITE(6,'(1X,A,E12.3,/)') ' AK ',AK
|
|
C
|
|
RETURN
|
|
END
|
|
*
|
|
*
|
|
************************************************************************
|
|
************************************************************************
|
|
*
|
|
SUBROUTINE RDXSEC(XSEC)
|
|
C
|
|
C 18.12.90, Dieter Pertermann
|
|
C 15.03.93, 27.05.93 modified (R. Engel)
|
|
C
|
|
C RDXSEC READS DATA FOR INTERPOLATION
|
|
C OF THE TOTAL CROSS SECTIONS FOR DIFFERENT
|
|
C SETS OF STRUCTURE FUNCTIONS. THE CHOICE
|
|
C OF THE CORRESPONDIG DATA SET IS CONTROLED
|
|
C BY THE OVERALL STRUCTURE FUNCTION PARAMETER
|
|
C ISTRUF.
|
|
C
|
|
C CMENER taken out but no action necessary as not in SUB
|
|
C
|
|
C modified 11-05-92 (R.Engel)
|
|
*
|
|
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
|
|
SAVE
|
|
CHARACTER*80 TITLE
|
|
CHARACTER*8 PROJTY,TARGTY
|
|
C COMMON /USER/TITLE,PROJTY,TARGTY,CMENER,ISTRUF
|
|
C & ,ISINGD,IDUBLD,SDFRAC,PTLAR
|
|
COMMON /USER1/TITLE,PROJTY,TARGTY
|
|
COMMON /USER2/CMENER,SDFRAC,PTLAR,ISTRUF,ISINGD,IDUBLD
|
|
*
|
|
C COMMON/COLLIS/S,IJPROJ,IJTAR,PTTHR,PTTHR2,IOPHRD,IJPRLU,IJTALU
|
|
*
|
|
COMMON /COLLPO/S,PTTHR,PTTHR2
|
|
C COMMON /COLLIS/SPO,IJPROJ,IJTAR,PTTPO,IOPHRD,IJPRLU,IJTALU,
|
|
C * PTTPO2
|
|
COMMON/COLLIS/SPO,IJPROJ,IJTAR,PTTPO,PTTPO2,IOPHRD,IJPRLU,IJTALU
|
|
COMMON /STRUFU/ISTRUM,ISTRUT
|
|
C
|
|
DIMENSION XSEC(21)
|
|
DIMENSION XS21(189)
|
|
C
|
|
PARAMETER(EPSIL=1.D-4,
|
|
& THREE=3.D0,
|
|
& TWO=2.D0)
|
|
C
|
|
DATA XS21 /
|
|
& 0.000000E+00,0.137854E-04, .02, .13, .37, 1.32,
|
|
& 3.88, 8.02, 13.15, 24.32, 43.43, 79.69, 113.13,
|
|
& 147.5, 180.47, 221.01, 250.37,
|
|
& 279.4, 320.1, 349.6, 381.6,
|
|
* total X-section , cteq1M PTTHR=x GEV/C
|
|
& .000000E+00, .494767E-05, .02, .14, .41,
|
|
& 1.48, 4.17, 7.92, 11.90, 19.03, 28.59, 42.36,
|
|
& 52.78, 62.86, 72.65, 85.61, 95.97,
|
|
& 96., 96., 96., 96.,
|
|
* total X-section , cteq1MS PTTHR=x GEV/C
|
|
& 0.000000E+00,
|
|
& 0.517461E-05, .02, .14, .42, 1.49, 4.14,
|
|
& 7.87, 11.93, 19.58, 30.67, 48.39, 63.08,
|
|
& 78.1, 93.28, 114.33, 132.24,
|
|
& 133., 133., 133., 133.,
|
|
* total X-section , cteq1ML PTTHR=x GEV/C
|
|
& 0.000000E+00,
|
|
& 0.717097E-05, .03, .19, .54, 1.91, 5.33, 10.11,
|
|
& 16.16, 24.21, 36.41, 54.21, 67.92, 81.44,
|
|
& 94.81,112.9, 127.63,
|
|
& 128., 128., 128., 128.,
|
|
* total X-section , cteq1D PTTHR=x GEV/C
|
|
& 0.000000E+00,
|
|
& 0.761464E-05, .02, .17, .47, 1.56, 4.19,
|
|
& 7.76, 11.48, 18.11, 26.97, 39.82, 49.86, 59.35,
|
|
& 68.88, 81.65, 91.94,
|
|
& 92., 92., 92., 92.,
|
|
* total X-section , cteq1L PTTHR=x GEV/C
|
|
& .000000E+00,
|
|
& .620779E-05, .02, .12, .34, 1.19, 3.27,
|
|
& 6.16, 9.27, 14.99, 23.2, 36.85, 49.45,
|
|
& 64.43, 82.38, 112.06, 140.36,
|
|
& 141., 141., 141., 141.,
|
|
* total X-section , GRV94LO AK=1. PTTHR=x GEV/C
|
|
& .000000E+00,
|
|
& .620779E-05, .01, .05, .14, 0.55, 1.87,
|
|
& 4.29, 7.49, 14.81, 27.8, 55.99, 77.49,
|
|
& 105.98,138.48, 189.33, 236.37,
|
|
& 294., 395., 496., 629.,
|
|
* total X-section , GRV94LO AK=2. PTTHR=x GEV/C
|
|
& .000000E+00,
|
|
& .620779E-05, .01, .10, .31, 1.16, 3.76,
|
|
& 8.31, 14.16, 27.11, 49.3, 90.93,129.77,
|
|
& 174.16,223.83, 300.20, 370.00,
|
|
& 455., 600., 746., 936.,
|
|
* total X-section , CTEC96 AK=2. PTTHR=x GEV/C
|
|
& .000000E+00,
|
|
& .620779E-05, .01, .08, .27, 1.17, 4.15,
|
|
& 9.60, 16.75, 32.88, 61.1,125.98,169.87,
|
|
& 233.75,308.22, 426.95, 537.90,
|
|
& 673., 898., 1112., 1379./
|
|
*******************************************************************
|
|
*
|
|
IF( ABS(PTTHR-THREE).LT.EPSIL ) THEN
|
|
WRITE(6,*) ' ERROR RDXSEC: invalid pdf No. ',ISTRUF
|
|
STOP
|
|
ELSEIF( ABS(PTTHR-TWO).LT.EPSIL ) THEN
|
|
WRITE(6,*) ' ERROR RDXSEC: invalid pdf No. ',ISTRUF
|
|
STOP
|
|
ELSEIF( ISTRUT.EQ.1 ) THEN
|
|
WRITE(6,*) ' ERROR RDXSEC: invalid pdf No. ',ISTRUF
|
|
STOP
|
|
ELSEIF( ISTRUT.EQ.2 ) THEN
|
|
IF( (ISTRUF.GE.9).AND.(ISTRUF.LE.20) ) THEN
|
|
WRITE(6,*) ' ERROR RDXSEC: invalid pdf No. ',ISTRUF
|
|
STOP
|
|
ELSEIF( (ISTRUF.GE.21).AND.(ISTRUF.LE.23) ) THEN
|
|
DO 311 I=1,21
|
|
NXS = 21*(ISTRUF-15)+I
|
|
XSEC(I)=XS21(NXS)
|
|
311 CONTINUE
|
|
ELSE
|
|
WRITE(6,*) ' ERROR RDXSEC: invalid pdf No. ',ISTRUF
|
|
STOP
|
|
ENDIF
|
|
ELSE
|
|
WRITE(6,*) ' ERROR RDXSEC: PTCUT ',PTTHR,' not supported ***'
|
|
STOP
|
|
ENDIF
|
|
C
|
|
RETURN
|
|
END
|
|
*
|
|
*
|
|
************************************************************************
|
|
*
|
|
BLOCK DATA POMEN
|
|
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
|
|
C COMMON /POMENE/POEN(20),POEN1(20),POEN2(20)
|
|
COMMON /POMENE/POEN(28),POEN1(28),POEN2(28),NESTEP
|
|
DATA POEN/20.D0,50.D0,100.D0,200.D0,500.D0,
|
|
* 1000.D0,1500.D0,
|
|
* 2000.D0,3000.D0,4000.D0,6000.D0,8000.D0,10000.D0,
|
|
*15000.D0,20000.D0,30000.D0,40000.D0,60000.D0,
|
|
*80000.D0,100000.D0,150000.D0,200000.D0,300000.D0
|
|
*,400000.D0,600000.D0,800000.D0,1000000.D0,2000000.D0/
|
|
DATA POEN1/5.D0,30.D0,70.D0,150.D0,300.D0,
|
|
* 700.D0,1200.D0,1700.D0,
|
|
* 2500.D0,3500.D0,5000.D0,7000.D0,9000.D0,
|
|
*12000.D0,17000.D0,25000.D0,35000.D0,50000.D0,
|
|
*70000.D0,90000.D0,120000.D0,170000.D0,250000.D0,
|
|
*250000.D0,500000.D0,700000.D0,900000.D0,1500000.D0/
|
|
DATA POEN2/30.D0,70.D0,150.D0,300.D0,
|
|
* 700.D0,1200.D0,1700.D0,2500.D0,
|
|
* 3500.D0,5000.D0,7000.D0,9000.D0,12000.D0,
|
|
*17000.D0,25000.D0,35000.D0,50000.D0,70000.D0,
|
|
*90000.D0,120000.D0,170000.D0,250000.D0,350000.D0,
|
|
*500000.D0,700000.D0,900000.D0,1500000.D0,3000000.D0/
|
|
DATA NESTEP/28/
|
|
END
|
|
************************************************************************
|
|
************************************************************************
|
|
************************************************************************
|
|
*
|
|
SUBROUTINE PRBLM2(ECM)
|
|
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
|
|
C
|
|
C Routine to call QRBLM2 for NESTEP energies
|
|
* j.r.3/94
|
|
C-----------------------------------------------------------------------
|
|
C$
|
|
C$ If IPOMTA=1 file INIDAT already exists : the content of commons
|
|
C$ POMENE and POLMN1 will be read in (Logic unit is IUNIT=37)
|
|
C$ If IPOMTA=0 file INIDAT does not exist : the content of COMMON
|
|
C$ POMENE will be taken from BLOCKDATA POMEN or, when interfaced to
|
|
C$ HEMAS, directly from hemas input file INPFIL. Then, the content of
|
|
C$ POMENE and POLMN1 will be written in INIDAT (Logic unit is IUNIT=37)
|
|
C$ C.Forti 18-nov-94
|
|
C$
|
|
C COMMON /POMENE/POEN(20),POEN1(20),POEN2(20),NESTEP
|
|
COMMON /POMENE/POEN(28),POEN1(28),POEN2(28),NESTEP
|
|
COMMON /POMTAB/IPOMTA
|
|
C$
|
|
PARAMETER (MXPA25=30,MXPA26=MXPA25+1,MXPA13=13)
|
|
PARAMETER (MXPA50=250,MXPA51=MXPA50+1)
|
|
PARAMETER (MXPU50=100,MXPU51=MXPU50+1)
|
|
* *** /POLMN/ arrays having to do with cut soft and hard Pomerons
|
|
COMMON /POLMN/PLMN(0:MXPA25,0:MXPA50,0:MXPA13),
|
|
* PLMNCU(0:MXPA25,0:MXPA50,0:MXPA13)
|
|
COMMON /POLMN1/ PLMNEE(0:MXPA25,0:MXPU50,0:MXPA13,28)
|
|
DATA IUNIT/37/
|
|
C
|
|
CHARACTER*80 INIDAT
|
|
C
|
|
C$ Statement : setenv INIDAT /nfs/hpmac1/macro02/dpmjet/POMTAB_06.DAT
|
|
C$ in the job file is required
|
|
C
|
|
CALL GETENV('INIDAT',INIDAT)
|
|
C OPEN(IUNIT,FILE=INIDAT,STATUS='UNKNOWN',ERR=99)
|
|
OPEN(UNIT=IUNIT,FILE='pomtab.dat'
|
|
* ,STATUS='UNKNOWN',ERR=99)
|
|
C
|
|
IF (IPOMTA.EQ.0) THEN
|
|
DO 1 II=1,NESTEP
|
|
ENERGY = POEN(II)
|
|
CALL QRBLM2(ENERGY)
|
|
DO 10 JJ=0,MXPA25
|
|
DO 10 KK=0,MXPU50
|
|
DO 10 LL=0,MXPA13
|
|
PLMNEE(JJ,KK,LL,II)=PLMNCU(JJ,KK,LL)
|
|
10 CONTINUE
|
|
1 CONTINUE
|
|
C
|
|
WRITE(IUNIT,7102) NESTEP
|
|
DO 31 II=1,NESTEP
|
|
WRITE(IUNIT,7101) POEN(II), POEN1(II), POEN2(II)
|
|
WRITE(IUNIT,101)(((PLMNEE(JJ,KK,LL,II),LL=0,MXPA13),
|
|
* KK=0,MXPU50),JJ=0,MXPA25)
|
|
31 CONTINUE
|
|
7102 FORMAT(I13)
|
|
7101 FORMAT(3E13.5)
|
|
101 FORMAT(8E13.5)
|
|
C$
|
|
ELSEIF (IPOMTA.EQ.1)THEN
|
|
READ(IUNIT,7102) NESTEP
|
|
WRITE(6,7102) NESTEP
|
|
DO 11 II=1,NESTEP
|
|
READ(IUNIT,7101) POEN(II), POEN1(II), POEN2(II)
|
|
WRITE(6,7101) POEN(II), POEN1(II), POEN2(II)
|
|
READ(IUNIT,101)(((PLMNEE(JJ,KK,LL,II),LL=0,MXPA13),
|
|
* KK=0,MXPU50),JJ=0,MXPA25)
|
|
C WRITE(6,101)(((PLMNEE(JJ,KK,LL,II),LL=0,MXPA13),
|
|
C * KK=0,MXPU50),JJ=0,MXPA25)
|
|
11 CONTINUE
|
|
ENDIF
|
|
CLOSE(IUNIT)
|
|
RETURN
|
|
99 CONTINUE
|
|
WRITE(6,'(A)')'Error in PRBLM2 : file pomtab.dat ERROR'
|
|
CLOSE(IUNIT)
|
|
STOP
|
|
END
|
|
|
|
************************************************************************
|
|
*
|
|
SUBROUTINE QRBLM2(ECM)
|
|
* * input:
|
|
* ECM
|
|
* output:
|
|
* PLMN, PLMNCUmmulative, AVSOFN, AVHRDN,SIGDD/D/QEL/EL, PSOFT
|
|
*
|
|
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
*
|
|
* Probabilities for L soft cut, M hard cut pomerons
|
|
* and N someplace cut trippel pomerons
|
|
*
|
|
* Aurenche Maire's version of PRBLM
|
|
* modified from A.M. to include calculation of x-sections
|
|
* modified to get:
|
|
* version with high mass diffraction (Y's and PHI's)
|
|
* and on both sides 2 kanal low mass diffraction
|
|
* *** OPTION 21.2.90 FB
|
|
*----------------------------------------------------------------------
|
|
*
|
|
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
|
|
SAVE
|
|
PARAMETER ( ZERO=0.D0, ONE=1.D0)
|
|
PARAMETER (CONV=0.38935D0)
|
|
PARAMETER (PI=3.141592654D0)
|
|
PARAMETER (MXPA25=30,MXPA26=MXPA25+1,MXPA13=13)
|
|
* PARAMETRIZATION FOR PTMIN= 3. GEV
|
|
PARAMETER (MXPA50=250,MXPA51=MXPA50+1)
|
|
* PARAMETRIZATION FOR PTMIN= 2. GEV
|
|
C PARAMETER (MXPA50=350,MXPA51=MXPA50+1)
|
|
PARAMETER (MXPA96=96)
|
|
C PARAMETER (MXPA96=480)
|
|
LOGICAL LSQRT
|
|
C PARAMETER (MXLMN=5,LSQRT=.false.)
|
|
PARAMETER (MXLMN=5,LSQRT=.TRUE.)
|
|
DOUBLE PRECISION DTINY
|
|
C PARAMETER (TINY = 1.2D-38,DTINY=1.D-70,TIN=1.D-22,TINEXP = -300.D0)
|
|
C PARAMETER (TINY = 1.2D-38,DTINY=1.D-300,TIN=1.D-22,TINEXP =
|
|
C -700.D0)
|
|
PARAMETER (TINY=1.2D-38,DTINY=1.D-70,TIN=1.D-22,TINEXP=-700.D0)
|
|
C PARAMETER (TINY = 1.D-38,DTINY=tiny,TIN=1.D-22,TINEXP = -300.D0)
|
|
* in older version used:
|
|
PARAMETER (TINYEX = -48.D0)
|
|
* --- -- - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - -
|
|
* *** /POLMN/ arrays having to do with cut soft and hard Pomerons
|
|
COMMON /POLMN/PLMN(0:MXPA25,0:MXPA50,0:MXPA13),
|
|
* PLMNCU(0:MXPA25,0:MXPA50,0:MXPA13)
|
|
COMMON /POLMN0/PDIFR,PHARD,PSOFT,ALFAH,BETAH,
|
|
* SIGTOT,SIGQEL,SIGEL,SIGINE,SIGHIN,SIGD,SIGDD
|
|
* *** /POMPAR/*/SIGMA/*/POMTYP/ used only in SIGMAPOM-routines (->POMDI)
|
|
* (LMAX,MMAX,NMAX (max number of soft/hard/trippel pomerons)
|
|
COMMON /POMTYP/IPIM,ICON,ISIG,LMAX,MMAX,NMAX,DIFEL,DIFNU
|
|
COMMON /SIGMA/SIGSOF,BS,ZSOF,SIGHAR,BH,ZHAR,SIGTRP,BT,ZTRP,
|
|
* SIGLOO,ZLOO
|
|
COMMON/POMPAR/ALFA,ALFAP,A,C,AK
|
|
COMMON /SINGDI/SILMSD,SIGDI
|
|
* *** /OUTLEV/ controls output level for POMDI and parton X distribution
|
|
COMMON /OUTLEV/IOUTPO,IOUTPA,IOUXEV,IOUCOL
|
|
COMMON /ALALA/ALALAM
|
|
CHARACTER*80 TITLE
|
|
CHARACTER*8 PROJTY,TARGTY
|
|
C COMMON /USER/TITLE,PROJTY,TARGTY,CMENER,ISTRUF
|
|
C & ,ISINGD,IDUBLD,SDFRAC,PTLAR
|
|
COMMON /USER1/TITLE,PROJTY,TARGTY
|
|
COMMON /USER2/CMENER,SDFRAC,PTLAR,ISTRUF,ISINGD,IDUBLD
|
|
* --- -- - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - -
|
|
DOUBLE PRECISION SIG,SIGP,SIGM,SIGN,SIGO
|
|
DIMENSION SIG(0:MXPA25,0:MXPA50,0:MXPA13),
|
|
&SIGP(0:MXPA25,0:MXPA50,0:MXPA13),SIGM(0:MXPA25,0:MXPA50,0:MXPA13),
|
|
&SIGN(0:MXPA25,0:MXPA50,0:MXPA13),SIGO(0:MXPA25,0:MXPA50,0:MXPA13)
|
|
DIMENSION XPNT(MXPA96),WGHT(MXPA96),
|
|
&SSOFT(0:MXPA25),SHARD(0:MXPA50),STRPL(0:MXPA25)
|
|
C - - required MXPA25 > NMAX - -
|
|
DIMENSION FAK(0:MXPA13),CMBIN(0:MXPA13,0:MXPA13)
|
|
DOUBLE PRECISION
|
|
& EXPSOP,EXPSOH,EXMSOP,EXMSOH,EXNSOP,EXNSOH,EXOSOP,EXOSOH,
|
|
& EXPHAP,EXPHAH,EXMHAP,EXMHAH,EXNHAP,EXNHAH,EXOHAP,EXOHAH,
|
|
& EXPTRP,EXPTRH,EXMTRP,EXMTRH,EXNTRP,EXNTRH,EXOTRP,EXOTRH,
|
|
& EXPLOP,EXPLOH,EXMLOP,EXMLOH,EXNLOP,EXNLOH,EXOLOP,EXOLOH,
|
|
& EXPEXH,EXMEXH,EXNEXH,EXOEXH,EXPEXP,EXMEXP,EXNEXP,EXOEXP
|
|
DOUBLE PRECISION FAPSOF,FAMSOF,FANSOF,FAOSOF,
|
|
& FAPHAR,FAMHAR,FANHAR,FAOHAR,
|
|
& FAPTRP,FAMTRP,FANTRP,FAOTRP,
|
|
& FAPLOO,FAMLOO,FANLOO,FAOLOO
|
|
DOUBLE PRECISION DENOM,DENOMI,XPNTK,WGHTK,RMXLMN
|
|
& ,SIGSUM,SIGINL,SIGHRI
|
|
*
|
|
*---------------------------------------------------------------------------
|
|
*
|
|
* externe ICON option to internes NMAX=1,2,free
|
|
IF(ICON/10.EQ.4) NMAX=2
|
|
IF(ICON/10.EQ.5) NMAX=1
|
|
*
|
|
* for safty
|
|
IF( NMAX.GT.MXPA13) THEN
|
|
WRITE(6,*)' arrays limit NMAX set to' , MXPA13
|
|
NMAX=MXPA13
|
|
ENDIF
|
|
IF( MMAX.GT.MXPA50) THEN
|
|
WRITE(6,*)' arrays limit MMAX set to' , MXPA50
|
|
MMAX=MXPA50
|
|
ENDIF
|
|
IF( lMAX.GT.MXPA25) THEN
|
|
WRITE(6,*)' arrays limit LMAX set to' , MXPA25
|
|
LMAX=MXPA25
|
|
ENDIF
|
|
*
|
|
LMAXI = LMAX
|
|
MMAXI = MMAX
|
|
IF( NMAX.GE.3)THEN
|
|
NMAXI = NMAX
|
|
NNMAXI=(MXPA13-NMAXI)/(1+NMAXI)
|
|
C aim: MXPA13 =!= NNNMAX = NMAXI+(NMAXI+1)*NNMAXI
|
|
NLMAXI=0
|
|
ELSEIF( NMAX.EQ.2)THEN
|
|
NMAXI=1
|
|
NNMAXI=1
|
|
NLMAXI=1
|
|
ELSEIF( NMAX.EQ.1)THEN
|
|
NMAXI=1
|
|
NNMAXI=0
|
|
NLMAXI=1
|
|
ELSEIF( NMAX.LE.0)THEN
|
|
NMAXI=0
|
|
NNMAXI=0
|
|
NLMAXI=0
|
|
ENDIF
|
|
*
|
|
*
|
|
LENTRY=0
|
|
*
|
|
GOTO 111
|
|
*
|
|
*----------------------------------------------------------------------
|
|
*
|
|
ENTRY SIGMA2(ECM)
|
|
*
|
|
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
*
|
|
LENTRY=1
|
|
* externe ICON option to internes NMAX=1,2,free
|
|
IF(ICON/10.EQ.4) NMAX=2
|
|
IF(ICON/10.EQ.5) NMAX=1
|
|
* we drop L,M..dependent quantities, the rest is integrated for L=1,rest=0
|
|
LMAXI = 1
|
|
MMAXI = 0
|
|
NMAXI = 0
|
|
NNMAXI= 0
|
|
NLMAXI= 0
|
|
*
|
|
*----------------------------------------------------------------------
|
|
*
|
|
* *** calculate the B-space integral for L/M soft/hard cut-pom.
|
|
* *** NPNT is the number of integration points of B-space integ.
|
|
*
|
|
111 SIGTOT=0.0
|
|
SIGINL=0.0
|
|
SIGEL =0.0
|
|
SIGELE=0.0
|
|
SIGD =0.0
|
|
SIGDD =0.0
|
|
SIGDI =0.0
|
|
SIGDDI=0.0
|
|
SIGINE=0.0
|
|
SIHMDD=0.0
|
|
SIGHMD=0.
|
|
SIGLMD=0.
|
|
SIGHIN=0.
|
|
SIGIN=0.
|
|
SIGSIN=0.0
|
|
SIGHRI=0.0
|
|
SIGSUM=0.0
|
|
SIGSME=0.0
|
|
SILMSD=0.0
|
|
SILMDD=0.
|
|
SLHMDD=0.
|
|
DO 10 L=0,LMAXI
|
|
SSOFT(L)=0.
|
|
STRPL(L)=0.
|
|
DO 10 M=0,MMAXI
|
|
SHARD(M)=0.
|
|
DO 10 N=0, MXPA13
|
|
SIG(L,M,N)=0.
|
|
SIGP(L,M,N)=0.
|
|
SIGM(L,M,N)=0.
|
|
SIGN(L,M,N)=0.
|
|
SIGO(L,M,N)=0.
|
|
PLMN(L,M,N)=0.
|
|
PLMNCU(L,M,N)=0.
|
|
10 CONTINUE
|
|
*
|
|
* get bare X-sections
|
|
S=ECM**2
|
|
CALL SIGSHD(ECM)
|
|
*
|
|
IF(ALALAM.LE.1.D-2) THEN
|
|
ALAM=0.60
|
|
ELSE
|
|
ALAM=ALALAM
|
|
ENDIF
|
|
*
|
|
* prepare integration:
|
|
PI4 = 4.*PI
|
|
*
|
|
IF(ECM.LT.2000.D0)THEN
|
|
NPNT=96
|
|
CALL GSET(ZERO,ONE,NPNT,XPNT,WGHT)
|
|
ELSE
|
|
NPNT=MXPA96
|
|
CALL GSET(ZERO,ONE,NPNT,XPNT,WGHT)
|
|
ENDIF
|
|
*
|
|
* as low mass diffraction extra, high mass reduced:
|
|
REDU = 1.0
|
|
IF(IOUTPO.GE.0) WRITE (6,*) ' ALAM,REDU= ',ALAM,REDU
|
|
*
|
|
* --here the versions started--
|
|
* prepare factors to enter sum:
|
|
* notation: Z(HARd/SOFt/LOOp)(Plus/Minus/N=mixed/O=mixed)
|
|
*
|
|
ZHARP=(1.+ALAM)**2*ZHAR
|
|
ZSOFP=(1.+ALAM)**2*ZSOF
|
|
ZLOOP=(1.+ALAM)**2*ZLOO * REDU
|
|
ZHARM=(1.-ALAM)**2*ZHAR
|
|
ZSOFM=(1.-ALAM)**2*ZSOF
|
|
ZLOOM=(1.-ALAM)**2*ZLOO * REDU
|
|
ZHARN=(1.-ALAM**2)*ZHAR
|
|
ZSOFN=(1.-ALAM**2)*ZSOF
|
|
ZLOON=(1.-ALAM**2)*ZLOO * REDU
|
|
ZHARO=(1.-ALAM**2)*ZHAR
|
|
ZSOFO=(1.-ALAM**2)*ZSOF
|
|
ZLOOO=(1.-ALAM**2)*ZLOO * REDU
|
|
* one more factor at the top or at the bottom:
|
|
ZTRPP=(1.+ALAM)**3*ZTRP * REDU
|
|
ZTRPM=(1.-ALAM)**3*ZTRP * REDU
|
|
ZTRPN=(1.-ALAM**2)*(1.+ALAM)*ZTRP * REDU
|
|
ZTRPO=(1.-ALAM**2)*(1.-ALAM)*ZTRP * REDU
|
|
*
|
|
* begin M,N,L,LL loop
|
|
*
|
|
DO 720 L=0,LMAXI
|
|
IF(L.EQ.0) THEN
|
|
FAPSOF=1.
|
|
FAMSOF=1.
|
|
FANSOF=1.
|
|
FAOSOF=1.
|
|
ELSEIF(LSQRT) THEN
|
|
FAPSOF=FAPSOF* SQRT( ZSOFP/FLOAT(L))
|
|
FAMSOF=FAMSOF* SQRT( ZSOFM/FLOAT(L))
|
|
FANSOF=FANSOF* SQRT( ZSOFN/FLOAT(L))
|
|
FAOSOF=FAOSOF* SQRT( ZSOFO/FLOAT(L))
|
|
IF ( FAPSOF .LT.DTINY ) FAPSOF=0.
|
|
IF ( FAMSOF .LT.DTINY ) FAMSOF=0.
|
|
IF ( FANSOF .LT.DTINY ) FANSOF=0.
|
|
IF ( FAOSOF .LT.DTINY ) FAOSOF=0.
|
|
ELSEIF(.NOT.LSQRT) THEN
|
|
FAPSOF=FAPSOF*ZSOFP/FLOAT(L)
|
|
FAMSOF=FAMSOF*ZSOFM/FLOAT(L)
|
|
FANSOF=FANSOF*ZSOFN/FLOAT(L)
|
|
FAOSOF=FAOSOF*ZSOFO/FLOAT(L)
|
|
IF (FAPSOF.LT.DTINY ) FAPSOF=0.
|
|
IF (FAMSOF.LT.DTINY ) FAMSOF=0.
|
|
IF (FANSOF.LT.DTINY ) FANSOF=0.
|
|
IF (FAOSOF.LT.DTINY ) FAOSOF=0.
|
|
ENDIF
|
|
DO 730 M=0,MMAXI
|
|
IF(M.EQ.0) THEN
|
|
FAPHAR=1.
|
|
FAMHAR=1.
|
|
FANHAR=1.
|
|
FAOHAR=1.
|
|
ELSEIF(LSQRT) THEN
|
|
C WRITE(6,*)FAPHAR,ZHARP/FLOAT(M),FAMHAR,ZHARM/FLOAT(M)
|
|
FAPHAR=FAPHAR* SQRT( ZHARP/FLOAT(M) )
|
|
FAMHAR=FAMHAR* SQRT( ZHARM/FLOAT(M) )
|
|
FANHAR=FANHAR* SQRT( ZHARN/FLOAT(M) )
|
|
FAOHAR=FAOHAR* SQRT( ZHARO/FLOAT(M) )
|
|
IF ( FAPSOF*FAPHAR .LT.DTINY ) FAPHAR=0.
|
|
IF ( FAMSOF*FAMHAR .LT.DTINY ) FAMHAR=0.
|
|
IF ( FANSOF*FANHAR .LT.DTINY ) FANHAR=0.
|
|
IF ( FAOSOF*FAOHAR .LT.DTINY ) FAOHAR=0.
|
|
ELSEIF(.NOT.LSQRT) THEN
|
|
FAPHAR=FAPHAR*ZHARP/FLOAT(M)
|
|
FAMHAR=FAMHAR*ZHARM/FLOAT(M)
|
|
FANHAR=FANHAR*ZHARN/FLOAT(M)
|
|
FAOHAR=FAOHAR*ZHARO/FLOAT(M)
|
|
IF (FAPSOF*FAPHAR.LT.DTINY ) FAPHAR=0.
|
|
IF (FAMSOF*FAMHAR.LT.DTINY ) FAMHAR=0.
|
|
IF (FANSOF*FANHAR.LT.DTINY ) FANHAR=0.
|
|
IF (FAOSOF*FAOHAR.LT.DTINY ) FAOHAR=0.
|
|
ENDIF
|
|
DO 740 N=0,NMAXI
|
|
IF( N.EQ.0) THEN
|
|
FAPTRP=1.
|
|
FAMTRP=1.
|
|
FANTRP=1.
|
|
FAOTRP=1.
|
|
ELSEIF(LSQRT) THEN
|
|
FAPTRP=-FAPTRP* SQRT( ZTRPP/FLOAT(N) )
|
|
FAMTRP=-FAMTRP* SQRT( ZTRPM/FLOAT(N) )
|
|
FANTRP=-FANTRP* SQRT( ZTRPN/FLOAT(N) )
|
|
FAOTRP=-FAOTRP* SQRT( ZTRPO/FLOAT(N) )
|
|
IF (ABS(FAPTRP*FAPSOF*FAPHAR).LT.DTINY ) FAPTRP=0.
|
|
IF (ABS(FAMTRP*FAMSOF*FAMHAR).LT.DTINY ) FAMTRP=0.
|
|
IF (ABS(FANTRP*FANSOF*FANHAR).LT.DTINY ) FANTRP=0.
|
|
IF (ABS(FAOTRP*FAOSOF*FAOHAR).LT.DTINY ) FAOTRP=0.
|
|
ELSEIF(.NOT.LSQRT) THEN
|
|
FAPTRP=-FAPTRP*ZTRPP/FLOAT(N)
|
|
FAMTRP=-FAMTRP*ZTRPM/FLOAT(N)
|
|
FANTRP=-FANTRP*ZTRPN/FLOAT(N)
|
|
FAOTRP=-FAOTRP*ZTRPO/FLOAT(N)
|
|
IF (ABS(FAPTRP*FAPSOF*FAPHAR).LT.DTINY ) FAPTRP=0.
|
|
IF (ABS(FAMTRP*FAMSOF*FAMHAR).LT.DTINY ) FAMTRP=0.
|
|
IF (ABS(FANTRP*FANSOF*FANHAR).LT.DTINY ) FANTRP=0.
|
|
IF (ABS(FAOTRP*FAOSOF*FAOHAR).LT.DTINY ) FAOTRP=0.
|
|
ENDIF
|
|
DO 750 NN=0,NNMAXI
|
|
* for compatibility no new subscript is introduced in some arrays:
|
|
NNN=N+(NMAXI+1)*NN
|
|
* if only first order option jump out of second order contr.:
|
|
IF( NMAX.LE.2 .AND. N.EQ.1 .AND. NN.EQ.1 ) GO TO 750
|
|
IF(NN.EQ.0) THEN
|
|
FAPLOO=1.
|
|
FAMLOO=1.
|
|
FANLOO=1.
|
|
FAOLOO=1.
|
|
ELSEIF(LSQRT) THEN
|
|
FAPLOO=-FAPLOO* SQRT( ZLOOP/FLOAT(NN))
|
|
FAMLOO=-FAMLOO* SQRT( ZLOOM/FLOAT(NN))
|
|
FANLOO=-FANLOO* SQRT( ZLOON/FLOAT(NN))
|
|
FAOLOO=-FAOLOO* SQRT( ZLOOO/FLOAT(NN))
|
|
IF(ABS(FAPLOO*FAPTRP*FAPSOF*FAPHAR).LT.DTINY )FAPLOO=0.
|
|
IF(ABS(FAMLOO*FAMTRP*FAMSOF*FAMHAR).LT.DTINY )FAMLOO=0.
|
|
IF(ABS(FANLOO*FANTRP*FANSOF*FANHAR).LT.DTINY )FANLOO=0.
|
|
IF(ABS(FAOLOO*FAOTRP*FAOSOF*FAOHAR).LT.DTINY )FAOLOO=0.
|
|
ELSEIF(.NOT.LSQRT) THEN
|
|
FAPLOO=-FAPLOO*ZLOOP/FLOAT(NN)
|
|
FAMLOO=-FAMLOO*ZLOOM/FLOAT(NN)
|
|
FANLOO=-FANLOO*ZLOON/FLOAT(NN)
|
|
FAOLOO=-FAOLOO*ZLOOO/FLOAT(NN)
|
|
IF(ABS(FAPLOO*FAPTRP*FAPSOF*FAPHAR).LT.DTINY )FAPLOO=0.
|
|
IF(ABS(FAMLOO*FAMTRP*FAMSOF*FAMHAR).LT.DTINY )FAMLOO=0.
|
|
IF(ABS(FANLOO*FANTRP*FANSOF*FANHAR).LT.DTINY )FANLOO=0.
|
|
IF(ABS(FAOLOO*FAOTRP*FAOSOF*FAOHAR).LT.DTINY )FAOLOO=0.
|
|
ENDIF
|
|
*
|
|
* elastic processes are not generated
|
|
IF(L.EQ.0.AND.M.EQ.0.AND.N.EQ.0.AND.NN.EQ.0) GO TO 750
|
|
*
|
|
DENOM=DBLE(M)/DBLE(BH)+DBLE(L)/DBLE(BS)+DBLE(N)/DBLE(BT)
|
|
& +DBLE(NN)/DBLE(BT)
|
|
*
|
|
DO 735 K=1,NPNT
|
|
*
|
|
C change intergration for large L+M+N+NN?
|
|
IF ( (M+L+N+NN) .LE. MXLMN ) THEN
|
|
XPNTK=DBLE(XPNT(K))
|
|
WGHTK=DBLE(WGHT(K))
|
|
DENOMI=DENOM
|
|
ELSE
|
|
RMXLMN = DBLE(M+L+N+NN) /DBLE(MXLMN)
|
|
XPNTK=DBLE(XPNT(K))
|
|
WGHTK= DBLE(WGHT(K)) * XPNTK**(RMXLMN-1.)
|
|
DENOMI= DENOM / RMXLMN
|
|
ENDIF
|
|
*
|
|
EXPOSP=-ZSOFP*XPNTK**(1./(DENOMI*DBLE(BS)))
|
|
EXPOSM=-ZSOFM*XPNTK**(1./(DENOMI*DBLE(BS)))
|
|
EXPOSN=-ZSOFN*XPNTK**(1./(DENOMI*DBLE(BS)))
|
|
EXPOSO=-ZSOFO*XPNTK**(1./(DENOMI*DBLE(BS)))
|
|
*
|
|
EXPOHP=-ZHARP*XPNTK**(1./(DENOMI*DBLE(BH)))
|
|
EXPOHM=-ZHARM*XPNTK**(1./(DENOMI*DBLE(BH)))
|
|
EXPOHN=-ZHARN*XPNTK**(1./(DENOMI*DBLE(BH)))
|
|
EXPOHO=-ZHARO*XPNTK**(1./(DENOMI*DBLE(BH)))
|
|
*
|
|
EXPOTP=+ZTRPP*XPNTK**(1./(DENOMI*DBLE(BT)))
|
|
EXPOTM=+ZTRPM*XPNTK**(1./(DENOMI*DBLE(BT)))
|
|
EXPOTN=+ZTRPN*XPNTK**(1./(DENOMI*DBLE(BT)))
|
|
EXPOTO=+ZTRPO*XPNTK**(1./(DENOMI*DBLE(BT)))
|
|
*
|
|
EXPOLP=+ZLOOP*XPNTK**(1./(DENOMI*DBLE(BT)))
|
|
EXPOLM=+ZLOOM*XPNTK**(1./(DENOMI*DBLE(BT)))
|
|
EXPOLN=+ZLOON*XPNTK**(1./(DENOMI*DBLE(BT)))
|
|
EXPOLO=+ZLOOO*XPNTK**(1./(DENOMI*DBLE(BT)))
|
|
*
|
|
IF(IOUTPO.GE.7) THEN
|
|
WRITE(6,*)
|
|
* ' K=',K,' EXPOS/H=',EXPOSP,EXPOHP,' DENOMI/BH=',DENOMI,BH
|
|
WRITE(6,*)
|
|
* ' K=',K,' EXPOS/H=',EXPOSM,EXPOHM,' DENOMI/BH=',DENOMI,BH
|
|
WRITE(6,*)
|
|
* ' K=',K,' EXPOS/H=',EXPOSN,EXPOHN,' DENOMI/BH=',DENOMI,BH
|
|
WRITE(6,*)
|
|
* ' K=',K,'XPNT=',XPNTK,'WGHT=',WGHTK,'DENO=',DENOMI
|
|
ENDIF
|
|
*
|
|
* notation:
|
|
* EX(P=+/M=-/N=mixed/O=mixed)(EX=all/HArd,TRippel,LOop)(P/Half)
|
|
*
|
|
IF( EXPOSP .GT. TINEXP) THEN
|
|
EXPSOH=EXP(0.5D00*EXPOSP)
|
|
EXMSOH=EXP(0.5D00*EXPOSM)
|
|
EXNSOH=EXP(0.5D00*EXPOSN)
|
|
EXOSOH=EXP(0.5D00*EXPOSO)
|
|
ELSE
|
|
EXPSOH=0.
|
|
EXMSOH=0.
|
|
EXNSOH=0.
|
|
EXOSOH=0.
|
|
ENDIF
|
|
EXPSOP=EXPSOH**2
|
|
EXMSOP=EXMSOH**2
|
|
EXNSOP=EXNSOH**2
|
|
EXOSOP=EXOSOH**2
|
|
*
|
|
IF( EXPOHP .GT. TINEXP) THEN
|
|
EXPHAH=EXP(0.5D00*EXPOHP)
|
|
EXMHAH=EXP(0.5D00*EXPOHM)
|
|
EXNHAH=EXP(0.5D00*EXPOHN)
|
|
EXOHAH=EXP(0.5D00*EXPOHO)
|
|
ELSE
|
|
EXPHAH=0.
|
|
EXMHAH=0.
|
|
EXNHAH=0.
|
|
EXOHAH=0.
|
|
ENDIF
|
|
EXPHAP=EXPHAH**2
|
|
EXMHAP=EXMHAH**2
|
|
EXNHAP=EXNHAH**2
|
|
EXOHAP=EXOHAH**2
|
|
*
|
|
IF( NMAX.GE.3) THEN
|
|
IF( EXPOTP .GT. TINEXP) THEN
|
|
EXPTRH=EXP(0.5D00*EXPOTP)
|
|
EXMTRH=EXP(0.5D00*EXPOTM)
|
|
EXNTRH=EXP(0.5D00*EXPOTN)
|
|
EXOTRH=EXP(0.5D00*EXPOTO)
|
|
ELSE
|
|
EXPTRH=0.
|
|
EXMTRH=0.
|
|
EXNTRH=0.
|
|
EXOTRH=0.
|
|
ENDIF
|
|
EXPTRP= EXPTRH**2
|
|
EXMTRP= EXMTRH**2
|
|
EXNTRP= EXNTRH**2
|
|
EXOTRP= EXOTRH**2
|
|
ELSEIF( NMAX.LE.2) THEN
|
|
EXPTRH= 1 + 0.5*EXPOTP
|
|
EXMTRH= 1 + 0.5*EXPOTM
|
|
EXNTRH= 1 + 0.5*EXPOTN
|
|
EXOTRH= 1 + 0.5*EXPOTO
|
|
EXPTRP= 1 + EXPOTP
|
|
EXMTRP= 1 + EXPOTM
|
|
EXNTRP= 1 + EXPOTN
|
|
EXOTRP= 1 + EXPOTO
|
|
ENDIF
|
|
*
|
|
IF( NMAX.GE.3) THEN
|
|
IF( EXPOLP .GT. TINEXP) THEN
|
|
EXPLOH=EXP(0.5D00*EXPOLP)
|
|
EXMLOH=EXP(0.5D00*EXPOLM)
|
|
EXNLOH=EXP(0.5D00*EXPOLN)
|
|
EXOLOH=EXP(0.5D00*EXPOLO)
|
|
ELSE
|
|
EXPLOH=0.
|
|
EXMLOH=0.
|
|
EXNLOH=0.
|
|
EXOLOH=0.
|
|
ENDIF
|
|
EXPLOP=EXPLOH**2
|
|
EXMLOP=EXMLOH**2
|
|
EXNLOP=EXNLOH**2
|
|
EXOLOP=EXOLOH**2
|
|
ELSEIF( NMAX.EQ.2 ) THEN
|
|
EXPLOH= 1 + 0.5*EXPOLP
|
|
EXMLOH= 1 + 0.5*EXPOLM
|
|
EXNLOH= 1 + 0.5*EXPOLN
|
|
EXOLOH= 1 + 0.5*EXPOLO
|
|
EXPLOP= 1 + EXPOLP
|
|
EXMLOP= 1 + EXPOLM
|
|
EXNLOP= 1 + EXPOLN
|
|
EXOLOP= 1 + EXPOLO
|
|
ELSEIF( NMAX.LE.1 ) THEN
|
|
EXPLOH= 1
|
|
EXMLOH= 1
|
|
EXNLOH= 1
|
|
EXOLOH= 1
|
|
EXPLOP= 1
|
|
EXMLOP= 1
|
|
EXNLOP= 1
|
|
EXOLOP= 1
|
|
ENDIF
|
|
*
|
|
EXPEXH = EXPSOH *EXPHAH *EXPTRH *EXPLOH
|
|
EXMEXH = EXMSOH *EXMHAH *EXMTRH *EXMLOH
|
|
EXNEXH = EXNSOH *EXNHAH *EXNTRH *EXNLOH
|
|
EXOEXH = EXOSOH *EXOHAH *EXOTRH *EXOLOH
|
|
EXPEXP = EXPSOP *EXPHAP *EXPTRP *EXPLOP
|
|
EXMEXP = EXMSOP *EXMHAP *EXMTRP *EXMLOP
|
|
EXNEXP = EXNSOP *EXNHAP *EXNTRP *EXNLOP
|
|
EXOEXP = EXOSOP *EXOHAP *EXOTRP *EXOLOP
|
|
*
|
|
IF( ( NMAX.LE.2 .AND. N.EQ.1 ) .OR.
|
|
* ( NMAX.EQ.2 .AND. NN.EQ.1 ) .OR.
|
|
* NMAX.EQ.0 ) THEN
|
|
SIGP(L,M,NNN)=SIGP(L,M,NNN)+EXPSOP *EXPHAP *WGHTK
|
|
SIGM(L,M,NNN)=SIGM(L,M,NNN)+EXMSOP *EXMHAP *WGHTK
|
|
SIGN(L,M,NNN)=SIGN(L,M,NNN)+EXNSOP *EXNHAP *WGHTK
|
|
SIGO(L,M,NNN)=SIGO(L,M,NNN)+EXOSOP *EXOHAP *WGHTK
|
|
ELSE
|
|
SIGP(L,M,NNN)=SIGP(L,M,NNN)+EXPEXP*WGHTK
|
|
SIGM(L,M,NNN)=SIGM(L,M,NNN)+EXMEXP*WGHTK
|
|
SIGN(L,M,NNN)=SIGN(L,M,NNN)+EXNEXP*WGHTK
|
|
SIGO(L,M,NNN)=SIGO(L,M,NNN)+EXOEXP*WGHTK
|
|
ENDIF
|
|
*
|
|
* quantities without L,M,N,NN dependence considered ones
|
|
* (when, chosen to get suitable weights)
|
|
IF(L.EQ.1.AND.M.EQ.0.AND.N.EQ.0.AND.NN.EQ.0) THEN
|
|
*
|
|
IF ( (M+L+N+NN) .GT. MXLMN ) THEN
|
|
WRITE(6,*)' MXLMN too low ' , MXLMN,M,L,N,NN
|
|
RETURN
|
|
ENDIF
|
|
WGHFAC = WGHTK/XPNTK *PI4/DENOMI
|
|
IF ( NMAX.GE.3 ) THEN
|
|
SIGELE = SIGELE + WGHFAC *
|
|
* 0.0625*( 1.-EXPEXH + 1.-EXMEXH
|
|
* +1.-EXNEXH + 1.-EXOEXH )**2
|
|
* low mass diffraction:
|
|
SILMSD = SILMSD + WGHFAC *
|
|
* 0.125*(EXPEXH -EXMEXH)**2
|
|
SILMDD = SILMDD + WGHFAC *
|
|
* 0.0625*(EXPEXH+EXMEXH-EXNEXH-EXOEXH)**2
|
|
ELSEIF( NMAX.LE.2 ) THEN
|
|
SIGELE = SIGELE + WGHFAC *
|
|
* 0.0625*( ( 1.-EXPEXH + 1.-EXMEXH
|
|
* +1.-EXNEXH + 1.-EXOEXH
|
|
* subtract second order terms in each factor:
|
|
C////CHANGED - TO + BRACKET UNNECESSARY
|
|
* +(1.-EXPTRH)*(1-EXPLOH) *EXPSOH *EXPHAH
|
|
* +(1.-EXMTRH)*(1-EXMLOH) *EXMSOH *EXMHAH
|
|
* +(1.-EXNTRH)*(1-EXNLOH) *EXNSOH *EXNHAH
|
|
* +(1.-EXOTRH)*(1-EXOLOH) *EXOSOH *EXOHAH)**2
|
|
* subtract second order terms of product:
|
|
* - ( (2.-EXPTRH-EXPLOH) *EXPSOH *EXPHAH
|
|
* +(2.-EXMTRH-EXMLOH) *EXMSOH *EXMHAH
|
|
* +(2.-EXNTRH-EXNLOH) *EXNSOH *EXNHAH
|
|
* +(2.-EXOTRH-EXOLOH) *EXOSOH *EXOHAH ) **2)
|
|
* low mass diffraction:
|
|
SILMSD = SILMSD + WGHFAC *
|
|
* 0.125*( ( EXPEXH -EXMEXH
|
|
* subtract second order terms in each factor:
|
|
* -(1.-EXPTRH)*(1-EXPLOH) *EXPSOH*EXPHAH
|
|
* +(1.-EXMTRH)*(1-EXMLOH) *EXMSOH*EXMHAH )**2
|
|
* subtract second order terms of product:
|
|
* -( (2.-EXPTRH-EXPLOH) *EXPSOH *EXPHAH
|
|
* -(2.-EXMTRH-EXMLOH) *EXMSOH*EXMHAH ) **2)
|
|
SILMDD = SILMDD + WGHFAC *
|
|
* 0.0625*( (EXPEXH+EXMEXH-EXNEXH-EXOEXH
|
|
* subtract second order terms in each factor:
|
|
* -(1.-EXPTRH)*(1-EXPLOH) *EXPSOH *EXPHAH
|
|
* -(1.-EXMTRH)*(1-EXMLOH) *EXMSOH *EXMHAH
|
|
* +(1.-EXNTRH)*(1-EXNLOH) *EXNSOH *EXNHAH
|
|
* +(1.-EXOTRH)*(1-EXOLOH) *EXOSOH *EXOHAH)**2
|
|
* subtract second order terms of product:
|
|
* - ( (2.-EXPTRH-EXPLOH) *EXPSOH *EXPHAH
|
|
* +(2.-EXMTRH-EXMLOH) *EXMSOH *EXMHAH
|
|
* -(2.-EXNTRH-EXNLOH) *EXNSOH *EXNHAH
|
|
* -(2.-EXOTRH-EXOLOH) *EXOSOH *EXOHAH ) **2)
|
|
ENDIF
|
|
IF( NMAX.NE.2 ) THEN
|
|
SIGTOT=SIGTOT+2.*WGHFAC*
|
|
* 0.25*( 1.-EXPEXH + 1.-EXMEXH +
|
|
* 1.-EXNEXH + 1.-EXOEXH )
|
|
SIGINE = SIGINE + WGHFAC *
|
|
* 0.25*( 1.-EXPEXP + 1.-EXMEXP +
|
|
* 1.-EXNEXP + 1.-EXOEXP )
|
|
* pure-soft-inelastic (hard scatterring is included as absorbtion)
|
|
SIGSIN=SIGSIN+ WGHFAC *
|
|
* 0.25*( (EXPHAP-EXPEXP)
|
|
* +(EXMHAP-EXMEXP)
|
|
* +(EXNHAP-EXNEXP)
|
|
* +(EXOHAP-EXOEXP) )
|
|
* hard-inelastic (soft scatterring disregarded)
|
|
SIGHIN=SIGHIN+ WGHFAC*
|
|
* 0.25*( 1.-EXPHAP + 1.-EXMHAP +
|
|
* 1.-EXNHAP + 1.-EXOHAP )
|
|
ELSEIF( NMAX.EQ.2 ) THEN
|
|
SIGTOT=SIGTOT+2.*WGHFAC*
|
|
* 0.25*( 1.-EXPEXH + 1.-EXMEXH +
|
|
* 1.-EXNEXH + 1.-EXOEXH
|
|
* subtract second order terms in .TRH and LOH:
|
|
C/////CHANGED - TO +
|
|
* +(1.-EXPTRH)*(1-EXPLOH) *EXPSOH *EXPHAH
|
|
* +(1.-EXMTRH)*(1-EXMLOH) *EXMSOH *EXMHAH
|
|
* +(1.-EXNTRH)*(1-EXNLOH) *EXNSOH *EXNHAH
|
|
* +(1.-EXOTRH)*(1-EXOLOH) *EXOSOH *EXOHAH )
|
|
SIGINE = SIGINE + WGHFAC *
|
|
* 0.25*( 1.-EXPEXP + 1.-EXMEXP +
|
|
* 1.-EXNEXP + 1.-EXOEXP
|
|
* subtract second order terms in .TRP and LOP:
|
|
C/////CHANGED - TO +
|
|
* +(1.-EXPTRP)*(1-EXPLOP) *EXPSOP *EXPHAP
|
|
* +(1.-EXMTRP)*(1-EXMLOP) *EXMSOP *EXMHAP
|
|
* +(1.-EXNTRP)*(1-EXNLOP) *EXNSOP *EXNHAP
|
|
* +(1.-EXOTRP)*(1-EXOLOP) *EXOSOP *EXOHAP )
|
|
* pure-soft-inelastic (hard scatterring is included as absorbtion)
|
|
SIGSIN=SIGSIN+ WGHFAC *
|
|
* 0.25*( (EXPHAP-EXPEXP)
|
|
* +(EXMHAP-EXMEXP)
|
|
* +(EXNHAP-EXNEXP)
|
|
* +(EXOHAP-EXOEXP)
|
|
* subtract second order terms of 2nd column:
|
|
* +(1.-EXPTRP)*(1-EXPLOP) *EXPSOP *EXPHAP
|
|
* +(1.-EXMTRP)*(1-EXMLOP) *EXMSOP *EXMHAP
|
|
* +(1.-EXNTRP)*(1-EXNLOP) *EXNSOP *EXNHAP
|
|
* +(1.-EXOTRP)*(1-EXOLOP) *EXOSOP *EXOHAP)
|
|
* hard-inelastic (soft scatterring disregarded)
|
|
SIGHIN=SIGHIN+ WGHFAC*
|
|
* 0.25*( 1.-EXPHAP + 1.-EXMHAP +
|
|
* 1.-EXNHAP + 1.-EXOHAP )
|
|
ENDIF
|
|
* high mass diffraction (sep.low mass diffr. arbitrary)
|
|
* (naive 1/EX?TRP -> EX?TR as selected cut counts -1)
|
|
IF( NMAX.GE.3 ) THEN
|
|
SIGHMD=SIGHMD + WGHFAC *
|
|
* 0.25*( (EXPTRP-1.)*EXPEXP
|
|
* +(EXMTRP-1.)*EXMEXP
|
|
* +(EXNTRP-1.)*EXNEXP
|
|
* +(EXOTRP-1.)*EXOEXP)
|
|
ELSE
|
|
SIGHMD=SIGHMD + WGHFAC *
|
|
* 0.25*( EXPOTP * EXPSOP*EXPHAP
|
|
* +EXPOTM * EXMSOP*EXMHAP
|
|
* +EXPOTN * EXNSOP*EXNHAP
|
|
* +EXPOTO * EXOSOP*EXOHAP )
|
|
ENDIF
|
|
IF( NMAX.GE.3 ) THEN
|
|
SIHMDD=SIHMDD + WGHFAC *
|
|
* 0.25*( (EXPLOP-1.)*EXPEXP
|
|
* +(EXMLOP-1.)*EXMEXP
|
|
* +(EXNLOP-1.)*EXNEXP
|
|
* +(EXOLOP-1.)*EXOEXP)
|
|
ELSEIF (NMAX.EQ.2 ) THEN
|
|
SIHMDD=SIHMDD + WGHFAC *
|
|
* 0.25*( EXPOLP * EXPSOP*EXPHAP
|
|
* +EXPOLM * EXMSOP*EXMHAP
|
|
* +EXPOLN * EXNSOP*EXNHAP
|
|
* +EXPOLO * EXOSOP*EXOHAP )
|
|
* no action:
|
|
* ELSEIF (NMAX.LE.1 ) THEN
|
|
* SIHMDD=SIHMDD + WGHFAC *
|
|
* * 0.25*( 0. * EXPSOP*EXPHAP
|
|
* * + 0. * EXMSOP*EXMHAP
|
|
* * + 0. * EXNSOP*EXNHAP
|
|
* * + 0. * EXOSOP*EXOHAP )
|
|
ENDIF
|
|
ENDIF
|
|
* ending non L,M,N,NN depending part
|
|
*
|
|
735 CONTINUE
|
|
* ending impact-integral loop
|
|
*
|
|
IF(ABS(FAPHAR*FAPSOF*FAPTRP*FAPLOO*SIGP(L,M,NNN)).LT.DTINY)
|
|
& THEN
|
|
SIGP(L,M,NNN)=0.
|
|
ELSEIF(LSQRT) THEN
|
|
SIGP(L,M,NNN)=FAPHAR*FAPSOF*FAPTRP*FAPLOO*SIGP(L,M,NNN)
|
|
* * abs(FAPHAR*FAPSOF*FAPTRP*FAPLOO)/DENOMI*PI4
|
|
ELSEIF(.NOT.LSQRT) THEN
|
|
SIGP(L,M,NNN)=FAPHAR*FAPSOF*FAPTRP*FAPLOO*SIGP(L,M,NNN)
|
|
* /DENOMI*PI4
|
|
ENDIF
|
|
IF(ABS(FAMHAR*FAMSOF*FAMTRP*FAMLOO*SIGM(L,M,NNN)).LT.DTINY)
|
|
& THEN
|
|
SIGM(L,M,NNN)=0.
|
|
ELSEIF(LSQRT) THEN
|
|
SIGM(L,M,NNN)=FAMHAR*FAMSOF*FAMTRP*FAMLOO*SIGM(L,M,NNN)
|
|
* * abs( FAMHAR*FAMSOF*FAMTRP*FAMLOO)/DENOMI*PI4
|
|
ELSEIF(.NOT.LSQRT) THEN
|
|
SIGM(L,M,NNN)=FAMHAR*FAMSOF*FAMTRP*FAMLOO*SIGM(L,M,NNN)
|
|
* /DENOMI*PI4
|
|
ENDIF
|
|
IF(ABS(FANHAR*FANSOF*FANTRP*FANLOO*SIGN(L,M,NNN)).LT.DTINY)
|
|
& THEN
|
|
SIGN(L,M,NNN)=0.
|
|
ELSEIF(LSQRT) THEN
|
|
SIGN(L,M,NNN)=FANHAR*FANSOF*FANTRP*FANLOO*SIGN(L,M,NNN)
|
|
* * abs( FANHAR*FANSOF*FANTRP*FANLOO)/DENOMI*PI4
|
|
ELSEIF(.NOT.LSQRT) THEN
|
|
SIGN(L,M,NNN)=FANHAR*FANSOF*FANTRP*FANLOO*SIGN(L,M,NNN)
|
|
* /DENOMI*PI4
|
|
ENDIF
|
|
IF(ABS(FAOHAR*FAOSOF*FAOTRP*FAOLOO*SIGO(L,M,NNN)).LT.DTINY)
|
|
& THEN
|
|
SIGO(L,M,NNN)=0.
|
|
ELSEIF(LSQRT) THEN
|
|
SIGO(L,M,NNN)=FAOHAR*FAOSOF*FAOTRP*FAOLOO*SIGO(L,M,NNN)
|
|
* * abs( FAOHAR*FAOSOF*FAOTRP*FAOLOO/DENOMI)*PI4
|
|
ELSEIF(.NOT.LSQRT) THEN
|
|
SIGO(L,M,NNN)=FAOHAR*FAOSOF*FAOTRP*FAOLOO*SIGO(L,M,NNN)
|
|
* /DENOMI*PI4
|
|
ENDIF
|
|
*
|
|
750 CONTINUE
|
|
740 CONTINUE
|
|
730 CONTINUE
|
|
720 CONTINUE
|
|
*
|
|
* *** summing up the three contributions
|
|
*
|
|
NNNMAX=NMAXI+(NMAXI+1)*NNMAXI
|
|
DO 820 L=0,LMAXI
|
|
DO 830 M=0,MMAXI
|
|
DO 830 NNN=0,NNNMAX
|
|
SIG(L,M,NNN)=(SIGP(L,M,NNN)+SIGM(L,M,NNN)+
|
|
* SIGN(L,M,NNN)+SIGO(L,M,NNN) )/4.
|
|
830 CONTINUE
|
|
820 CONTINUE
|
|
*
|
|
*
|
|
* *** calculate summed quantities for print out
|
|
*
|
|
DO 3 L=0,LMAXI
|
|
DO 4 M=0,MMAXI
|
|
DO 4 N=0,NMAXI
|
|
DO 4 NN=0,NNMAXI
|
|
IF( NMAX.LE.2 .AND. N.EQ.1 .AND. NN.EQ.1 ) GO TO 4
|
|
NNN=N+(NMAXI+1)*NN
|
|
SIGSUM=SIGSUM + SIG(L,M,NNN)
|
|
* for options outlawing hard without soft:
|
|
IF(M.EQ.0.OR.L.GE.1) SIGSME=SIGSME + SIG(L,M,NNN)
|
|
SHARD(M)=SHARD(M)+SIG(L,M,NNN)
|
|
SSOFT(L)=SSOFT(L)+SIG(L,M,NNN)
|
|
STRPL(N)=STRPL(N)+SIG(L,M,NNN)
|
|
SIGINL = SIGINL + SIG(L,M,NNN)
|
|
IF(M.GE.1) SIGHRI = SIGHRI + SIG(L,M,NNN)
|
|
IF(L.EQ.0.AND.M.EQ.0.AND.NN.EQ.0.AND.N.GE.1) THEN
|
|
SIGDI = SIGDI + (-1)**N*SIG(L,M,NNN)
|
|
ELSEIF(L.EQ.0.AND.M.EQ.0.AND.N.EQ.0.AND.NN.GE.1) THEN
|
|
SIGDDI= SIGDDI + (-1)**NN*SIG(L,M,NNN)
|
|
ENDIF
|
|
4 CONTINUE
|
|
3 CONTINUE
|
|
* elastic processes were not generated, L,M,N,NN=0 no problem
|
|
*
|
|
SIGLMD=SILMSD+SILMDD
|
|
SITHMD=SIGHMD+SIHMDD
|
|
SIGD = SIGLMD + SITHMD
|
|
SLHMDD = SQRT(ABS(SILMDD*SIHMDD))
|
|
SIGDD= SILMDD + SIHMDD + SLHMDD
|
|
SIGIN=SIGINE+SIGLMD
|
|
SIGEL=SIGTOT-SIGIN
|
|
*
|
|
* *** print out
|
|
*
|
|
IF(LENTRY.EQ.1.AND.IOUTPO.LE.1) RETURN
|
|
*
|
|
WRITE(6,*)' '
|
|
WRITE(6,*)' --- properties of events ---'
|
|
WRITE (6,102)
|
|
WRITE(6,*)' Energy=',ECM
|
|
WRITE (6,102)
|
|
WRITE(6,*)' max.contributing soft/hard/diffr./doubl.diffr. cuts'
|
|
WRITE(6,*)' LMAXI= MMAXI= NMAXI= NNMAXI='
|
|
WRITE(6,'(15X,4I9)') LMAXI,MMAXI,NMAXI,NNMAXI
|
|
WRITE(6,*)' methode used: '
|
|
WRITE(6,*)' ISIG= ICON= IPIM= '
|
|
WRITE(6,'(15X,3I9)') ISIG,ICON,IPIM
|
|
WRITE (6,102)
|
|
WRITE(6,*)' --- bare cross section and eikonal constants ---'
|
|
C COMMON/POMPAR/ALFA,ALFAP,A,C,AK
|
|
C COMMON /SIGMA/SIGSOF,BS,ZSOF,SIGHAR,BH,ZHAR,SIGTRP,BT,ZTRP,
|
|
C * SIGLOO,ZLOO
|
|
WRITE(6,*)' ALFA =',ALFA,' ALFAP =',ALFAP,' A =',A
|
|
WRITE(6,*)' C =',C,' AK =',AK
|
|
WRITE(6,*)' ALALAM =',ALALAM
|
|
WRITE (6,102)
|
|
WRITE(6,*)' SIGSOF=',SIGSOF,' BS=',BS,' ZSOF=',ZSOF
|
|
WRITE(6,*)' SIGHAR=',SIGHAR,' BH=',BH,' ZHAR=',ZHAR
|
|
WRITE(6,*)' SIGTRP=',SIGTRP,' BT=',BT,' ZTRP=',ZTRP
|
|
WRITE(6,*)' SIGLOO=',SIGLOO,' BT=',BT,' ZLOO=',ZLOO
|
|
WRITE (6,102)
|
|
WRITE(6,*)' --- observable cross sections ---'
|
|
WRITE (6,102)
|
|
WRITE(6,*)' TOTAL X-SECTION = ',SIGTOT
|
|
WRITE(6,*)' ELASTIC X-SECTION = ',SIGELE
|
|
WRITE(6,*)' INELASTIC X-SECTION-LMD = ',SIGINE
|
|
WRITE(6,*)' INELASTIC X-SECTION = ',SIGIN
|
|
WRITE(6,*)' HARD INEL. X-SECTION = ',SIGHIN
|
|
WRITE (6,102)
|
|
WRITE(6,*)' LOW MASS SING./DOUB.DIFFR.X-SECTION= ',SILMSD,SILMDD
|
|
WRITE(6,*)' => LOW MASS TOTAL DIFFRACTIV.X-SECTION= ',SIGLMD
|
|
WRITE(6,*)' HIGH MASS SING./DOUB.DIFFR.X-SECTION= ',SIGDI,SIGDDI
|
|
WRITE(6,*)' => HIGH MASS TOTAL DIFFRACTIV.X-SECTION= ',SITHMD
|
|
WRITE(6,*)' ESTIMAT.MIXED (LM+HM) DOUBL.DIFFRAC.X.SEC.= ',SLHMDD
|
|
WRITE(6,*)' => '
|
|
WRITE(6,*)' DIFFRACTIVE X-SECTION = ',SIGD
|
|
WRITE(6,*)' DOUBLY DIFFRACTIVE X-SECT. =',SIGDD
|
|
WRITE (6,102)
|
|
*
|
|
IF(IOUTPO.GE.0) THEN
|
|
WRITE(6,*)' --- observ. x-sections, altern. calculated ---'
|
|
WRITE(6,*)' ELASTIC X-SECTION = ',SIGEL
|
|
WRITE(6,*)' INELASTIC X-SECTION-LMD = ',SIGINL
|
|
WRITE(6,*)' HARD INEL. X-SECTION= ',SIGHRI
|
|
WRITE(6,*)' HIGH MASS SING./DOUB.DIFFR.X-SECT.=',SIGHMD,SIHMDD
|
|
WRITE(6,*)' X-SECTION FOR (L,M,N,NN)= 1000 0100 0010 0001'
|
|
WRITE(6,*)' ',SIG(1,0,0),SIG(0,1,0)
|
|
* ,SIG(0,0,1),SIG(0,0,2)
|
|
WRITE (6,102)
|
|
ENDIF
|
|
*
|
|
IF(IOUTPO.GE.2) THEN
|
|
WRITE (6,102)
|
|
NNMAXP=NMAXI/2
|
|
IF( NMAXI.LT.2)NNMAXP=1
|
|
DO 52 N=0,NNMAXP
|
|
* printout loops:
|
|
DO 48 L=0,LMAXI
|
|
48 WRITE(6,101)(SIG(L,M,N),M=0,7)
|
|
WRITE (6,102)
|
|
DO 50 L=0,LMAXI
|
|
50 WRITE(6,101)(SIG(L,M,N),M=8,15)
|
|
WRITE (6,102)
|
|
WRITE(6,*)
|
|
& ' # CUT-POMERON SSOFT X-SECT. SHARD X-SECT.'
|
|
DO 58 L=0,LMAXI
|
|
58 WRITE (6,103)L,SSOFT(L),SHARD(L)
|
|
WRITE (6,102)
|
|
* printoutloop ends
|
|
52 CONTINUE
|
|
ENDIF
|
|
*
|
|
* *** attribute x-sections (SIG) for CUT objects ('s and PHI's)
|
|
* to string configurations (PLMN) s: **********
|
|
*
|
|
C CHANGED 10.1.90 BY J.R.
|
|
* preparations:
|
|
C just for Y and (Phi) - cuts:
|
|
FAK(0)=1
|
|
DO 500 I=1,NMAXI
|
|
FAK(I)=FAK(I-1)*I
|
|
500 CONTINUE
|
|
DO 501 I=0,NMAXI
|
|
DO 501 J=0,I
|
|
CMBIN(I,J)=FAK(I)/(FAK(J)*FAK(I-J))
|
|
501 CONTINUE
|
|
*
|
|
TMMP=0.
|
|
DO 5 L=0,LMAXI
|
|
DO 5 M=0,MMAXI
|
|
IF(ICON.EQ.44.OR.ICON.EQ.46.OR.ICON.EQ.48.
|
|
* OR.ICON.EQ.54) THEN
|
|
C///test:
|
|
* no Y or PHI cut
|
|
PLMNTM=SIG(L,M,0)/(SIGSUM+TIN)
|
|
PLMN(L,M,0) = PLMNTM + PLMN(L,M,0)
|
|
TMMP=TMMP+PLMNTM
|
|
* Y but no PHI cut
|
|
PLMNTM=SIG(L,M,1)/(SIGSUM+TIN)
|
|
TMMP=TMMP+PLMNTM
|
|
IF(L+2.LE.LMAXI) THEN
|
|
PLMN(L+2,M,0) = (-2.)* PLMNTM + PLMN(L+2,M,0)
|
|
PLMN(L+1,M,0) = 4. * PLMNTM + PLMN(L+1,M,0)
|
|
ELSE
|
|
PLMN(LMAXI,M,0) = (-2.)* PLMNTM + PLMN(LMAXI,M,0)
|
|
PLMN(LMAXI,M,0) = 4. * PLMNTM + PLMN(LMAXI,M,0)
|
|
ENDIF
|
|
IF(L.EQ.0 .AND. M.EQ.0) THEN
|
|
PLMN(L ,M,1) = (-1.)* PLMNTM + PLMN(L ,M,1)
|
|
ELSE
|
|
PLMN(L ,M,0) = (-1.)* PLMNTM + PLMN(L ,M,0)
|
|
ENDIF
|
|
* no Y but PHI cut
|
|
PLMNTM=SIG(L,M,2)/(SIGSUM+TIN)
|
|
TMMP=TMMP+PLMNTM
|
|
IF(L+2.LE.LMAXI) THEN
|
|
PLMN(L+2,M,0) = (-2.)* PLMNTM + PLMN(L+2,M,0)
|
|
PLMN(L+1,M,0) = 4. * PLMNTM + PLMN(L+1,M,0)
|
|
ELSE
|
|
PLMN(LMAXI,M,0) = (-2.)* PLMNTM + PLMN(LMAXI,M,0)
|
|
PLMN(LMAXI,M,0) = 4. * PLMNTM + PLMN(LMAXI,M,0)
|
|
ENDIF
|
|
IF(L.EQ.0 .AND. M.EQ.0) THEN
|
|
PLMN(L ,M,2) = (-1.)* PLMNTM + PLMN(L ,M,2)
|
|
ELSE
|
|
PLMN(L ,M,0) = (-1.)* PLMNTM + PLMN(L ,M,0)
|
|
ENDIF
|
|
C/// test end
|
|
ELSE
|
|
DO 51 N=0,NMAXI
|
|
DO 51 NN=0,NNMAXI
|
|
IF(NMAX.LE.2 .AND. N.EQ.1 .AND. NN.EQ.1) GO TO 51
|
|
NNN=N+(NMAXI+1)*NN
|
|
*
|
|
* to be attributed::
|
|
PLMNTM=SIG(L,M,NNN)/(SIGSUM+TIN)
|
|
TMMP=TMMP+PLMNTM
|
|
*
|
|
* attribution loop for Y-cuts
|
|
DO 511 N0CUT=0,N
|
|
DO 511 N1CUT=0,N-N0CUT
|
|
N2CUT=N-N0CUT-N1CUT
|
|
* combinatoric weight:
|
|
CMB0=CMBIN(N,N2CUT)
|
|
CMB1=CMBIN(N-N2CUT,N1CUT)
|
|
*
|
|
* attribution loop for PHI-cuts
|
|
DO 511 NN0CUT=0,NN
|
|
DO 511 NN1CUT=0,NN-NN0CUT
|
|
NN2CUT=NN-NN0CUT-NN1CUT
|
|
* combinatoric weight:
|
|
CMBN0=CMBIN(NN,NN2CUT)
|
|
CMBN1=CMBIN(NN-NN2CUT,NN1CUT)
|
|
*
|
|
* attributions matrix:
|
|
* ("L"soft,"M"hard,"N"1-diffr.,"NN"2-dif.,"NL"diffr.long in.part ):
|
|
* obviously:
|
|
L2STR = L
|
|
M2STR = M
|
|
N2STR = N0CUT
|
|
NN2STR= NN0CUT
|
|
NL2STR= 0
|
|
* specialties for Y's and PHI's:
|
|
L2STR=L2STR + N1CUT + NN1CUT + N2CUT + NN2CUT
|
|
IF(NMAX.LE.2)THEN
|
|
* room to have NL2STR's:
|
|
NL2STR= N2CUT + NN2CUT
|
|
ELSEIF(NMAX.GE.3)THEN
|
|
* the extra inner piece counts here like long strings:
|
|
L2STR=L2STR+N2CUT+NN2CUT
|
|
ENDIF
|
|
IF((ICON.EQ.26.OR.ICON.EQ.36.OR.ICON.EQ.46.OR.ICON.EQ.56)
|
|
& .AND. (L2STR.GE.1.OR.M2STR.GE.1))THEN
|
|
L2STR=L2STR + NL2STR
|
|
N2STR = 0
|
|
NN2STR = 0
|
|
NL2STR = 0
|
|
ENDIF
|
|
*
|
|
* getting and checking parameter for storing:
|
|
IF(L2STR.GT.LMAXI) L2STR=LMAXI
|
|
IF(M2STR.GT.LMAXI) M2STR=LMAXI
|
|
NNNSTR =N2STR +(NMAXI+1)*NN2STR
|
|
* +(NNMAXI+1)*(NMAXI+1)*NL2STR
|
|
IF(NNNSTR.GT.MXPA13) NNNSTR=MXPA13
|
|
*
|
|
* summing contributions
|
|
PLMN(L2STR,M2STR,NNNSTR) = PLMNTM
|
|
* *CMB0*CMB1 * (-2)**N2CUT * (4)**N1CUT * (-1)**N0CUT
|
|
* *CMBN0*CMBN1*(-2)**NN2CUT* (4)**NN1CUT* (-1)**NN0CUT
|
|
& + PLMN(L2STR,M2STR,NNNSTR)
|
|
*
|
|
511 CONTINUE
|
|
51 CONTINUE
|
|
ENDIF
|
|
C///// initial general methode ends
|
|
5 CONTINUE
|
|
IF(ABS(TMMP-1.D0).GT..03D0)THEN
|
|
WRITE(6,*)
|
|
& ' NORMALISATION ERROR SUM PLM before LMD reatribution=',TMMP
|
|
ENDIF
|
|
*
|
|
* *** built in low mass diffraction, get averages and check normalisation:
|
|
*
|
|
* low mass diffraction was SIGLMD=SILMSD+SILMDD
|
|
* and mixed LM/HM diffraction SLHMDD=SQRT(SILMDD*SIHMDD)
|
|
PLMFAC= (SIGSUM+TIN) / (SIGSUM+TIN +SIGLMD)
|
|
PLMN(0,0,1)= PLMN(0,0,1) +
|
|
& ( SILMSD - SLHMDD ) / (SIGSUM+TIN)
|
|
PLMN(0,0,2)= PLMN(0,0,2) +
|
|
& ( SILMDD + SLHMDD ) / (SIGSUM+TIN)
|
|
661 CONTINUE
|
|
* AVerage_SOft_N,AVerage_HaRD_N,SUM_over_Pl
|
|
AVSOFN=0.
|
|
AVHARN=0.
|
|
AVDIFN=0.
|
|
AVDDFN=0.
|
|
AVDLFN=0.
|
|
PSOFT=0.
|
|
TEMP=0.
|
|
TMP=0.
|
|
TMMP=0.
|
|
TMMP1=0.
|
|
*
|
|
* (L,M,N,NN,NL repl. L2STR,M2... for s.,h.,Y-dif.,PHI-dif.,i.Y-dif.str.#)
|
|
DO 6 NL=0,NLMAXI
|
|
DO 6 NN=0,NNMAXI
|
|
DO 6 N=0,NMAXI
|
|
IF(NMAX.LE.2 .AND. N+NN+NL.GE.2) GO TO 6
|
|
NNN =N +(NMAXI+1)*NN +(NNMAXI+1)*(NMAXI+1)* NL
|
|
DO 63 M=0,MMAXI
|
|
DO 63 L=0,LMAXI
|
|
IF(NL.EQ.0)TMMP1 = TMMP1 + SIG(L,M,NNN)
|
|
TMMP = TMMP + SIG(L,M,NNN)
|
|
PLMN(L,M,NNN)=PLMN(L,M,NNN) * PLMFAC
|
|
TMP = TMP + PLMN(L,M,NNN)
|
|
C IF(PLMN(L,M,NNN).LT.-.000001D0)
|
|
IF(PLMN(L,M,NNN).LT.-.000005D0)
|
|
& WRITE(6,*)' 0>PLMN',PLMN(L,M,NNN),L,M,N,NN,NL
|
|
AVSOFN=AVSOFN+PLMN(L,M,NNN)*L
|
|
AVHARN=AVHARN+PLMN(L,M,NNN)*M
|
|
AVDIFN=AVDIFN+PLMN(L,M,NNN)*N
|
|
AVDDFN=AVDDFN+PLMN(L,M,NNN)*NN
|
|
AVDLFN=AVDLFN+PLMN(L,M,NNN)*NL
|
|
IF (M.EQ.0)PSOFT=PSOFT+PLMN(L,M,NNN)
|
|
63 CONTINUE
|
|
6 CONTINUE
|
|
IF(ABS(TMP-1.D0).GT..01D0)THEN
|
|
WRITE(6,*)
|
|
& ' NORMALISATION ERROR SUM PLM before M reatribution=',TMP
|
|
ENDIF
|
|
TMMP=TMMP/SIGSUM
|
|
TMMP1=TMMP1/SIGSUM
|
|
IF(ABS(TMMP-1.D0).GT..01D0 .OR.ABS(TMMP1-1.D0).GT..01D0)THEN
|
|
WRITE(6,*)
|
|
& ' NORMALISATION ERROR TMMP,TMMP1=',TMMP,TMMP1
|
|
ENDIF
|
|
*
|
|
* *** reattribute purely hard scattering and get cummulant distribution
|
|
*
|
|
* (L,M,N,NN,NL repl. L2STR,M2...
|
|
* for soft,hard,Y-diffr.,PHI-diffr.,inner diffr. string #)
|
|
DO 61 NL=0,NLMAXI
|
|
DO 61 NN=0,NNMAXI
|
|
DO 61 N=0,NMAXI
|
|
IF(NMAX.LE.2 .AND. N+NN+NL.GE.2) GO TO 61
|
|
NNN =N +(NMAXI+1)*NN +(NNMAXI+1)*(NMAXI+1)* NL
|
|
DO 612 M=0,MMAXI
|
|
DO 611 L=0,LMAXI
|
|
* -- hard: a pure hard scattering gets an extra soft chain, it is considered
|
|
* a specialty of fragmentation and therefor implemented only here
|
|
* there are are number of other options which are dropped as they
|
|
* are hard to implement at this point
|
|
IF (L.EQ.0.AND.M.GE.1)THEN
|
|
PLMN(1,M,NNN)=PLMN(1,M,NNN)+PLMN(0,M,NNN)
|
|
PLMN(0,M,NNN)=0.
|
|
ENDIF
|
|
* -- cummulant of distribution
|
|
TEMP = TEMP + PLMN(L,M,NNN)
|
|
PLMNCU(L,M,NNN)=TEMP
|
|
611 CONTINUE
|
|
*
|
|
IF(IOUTPO.GE.3)WRITE (6,*)' M,(L,PLMN(L,M,N),L=0,LMAX)'
|
|
IF(IOUTPO.GE.3)WRITE (6,106) M,(L,PLMN(L,M,N),L=0,LMAXI)
|
|
IF(IOUTPO.GE.2)WRITE (6,*)' M,(L,PLMNCU(L,M,N),L=0,LMAX/2)'
|
|
IF(IOUTPO.GE.2)WRITE (6,106) M,(L,PLMNCU(L,M,N),L=0,LMAXI/2)
|
|
106 FORMAT (I3,9(I3,E11.2))
|
|
*
|
|
612 CONTINUE
|
|
61 CONTINUE
|
|
*
|
|
IF(ABS(TEMP-1.D0).GT..01D0)THEN
|
|
WRITE(6,*)' NORMALISATION ERROR SUM PLM=',TEMP
|
|
PLMFAC=1./(TEMP+TIN)
|
|
GO TO 661
|
|
ENDIF
|
|
*
|
|
IF(IOUTPO.GE.1)WRITE (6,*)
|
|
& '(((L,M,N,PLMN(L,M,N),N=0,2),M=0,5),L=0,7)'
|
|
IF(IOUTPO.GE.1)WRITE (6,1106)
|
|
& (((L,M,N,PLMN(L,M,N),N=0,2),M=0,5),L=0,7)
|
|
IF(IOUTPO.GE.1)WRITE (6,*)
|
|
& '(((L,M,N,SIG(L,M,N),N=0,2),M=0,5),L=0,7)'
|
|
IF(IOUTPO.GE.1)WRITE (6,1106)
|
|
& (((L,M,N,SIG(L,M,N),N=0,2),M=0,5),L=0,7)
|
|
1106 FORMAT (1X,3(I5,I5,I5,G12.5))
|
|
*
|
|
PHARD=1.-PSOFT
|
|
ALFAH=SIGHIN/(SIGINE+0.00001)
|
|
BETAH=1.-ALFAH
|
|
WRITE(6,116)AVSOFN,AVHARN,AVDIFN,AVDDFN,AVDLFN,
|
|
& PHARD,PSOFT,ALFAH,BETAH
|
|
116 FORMAT(/'--- various averages:'/
|
|
& /' AVSOFN= AVHARN= AVDIFN= AVDDFN= AVDLFN='
|
|
& /' ',5F11.3
|
|
& /' PHARD= PSOFT= ALFAH= BETAH= '
|
|
& /' ',4F11.3)
|
|
IF(IOUTPO.GE.1)WRITE(6,*)'SIGSUM=SIGINL-LMD',SIGSUM
|
|
*
|
|
IF(IOUTPO.GE.1)WRITE(6,610) SIGTOT,SIGINE,SIGD,SIGDD,SIGHIN
|
|
610 FORMAT (' SIGTOT,SIGINE,SIGD,SIGDD,SIGHIN= '/' ',5E18.6)
|
|
*
|
|
101 FORMAT(' ',10E10.3)
|
|
102 FORMAT(' ')
|
|
103 FORMAT(' ',5X,I4,5X,2E15.3)
|
|
*
|
|
RETURN
|
|
END
|
|
* ende problm
|
|
*
|
|
************************************************************************
|
|
*
|
|
*
|
|
SUBROUTINE SAMPLX(L2STR,M2STR,N2STR,NN2STR,NL2STR)
|
|
*
|
|
* input:
|
|
* PLMNCU
|
|
* output:
|
|
* samples number of soft (L) and hard (M) cut pomerons from PLMNC
|
|
* and of (N=0/1/2) diffractive excitations (for L=M=0
|
|
*
|
|
*----------------------------------------------------------------------
|
|
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
|
|
SAVE
|
|
COMMON /NNCMS/ GAMCM,BGCM,UMO,PCM,EPROJ,PPROJ
|
|
C COMMON /POMENE/POEN(20),POEN1(20),POEN2(20),NESTEP
|
|
COMMON /POMENE/POEN(28),POEN1(28),POEN2(28),NESTEP
|
|
PARAMETER (MXPU50=100,MXPU51=MXPU50+1)
|
|
PARAMETER (MXPA25=30,MXPA26=MXPA25+1,MXPA13=13)
|
|
* PARAMETRIZATION FOR PTMIN= 3. GEV
|
|
PARAMETER (MXPA50=250,MXPA51=MXPA50+1)
|
|
* PARAMETRIZATION FOR PTMIN= 2. GEV
|
|
C PARAMETER (MXPA50=350,MXPA51=MXPA50+1)
|
|
* *** /OUTLEV/ controls output level for POMDI and parton X distribution
|
|
COMMON /OUTLEV/IOUTPO,IOUTPA,IOUXEV,IOUCOL
|
|
COMMON /POMTYP/IPIM,ICON,ISIG,LMAX,MMAX,NMAX,DIFEL,DIFNU
|
|
* *** /POLMN/ arrays having to do with cut soft and hard Pomerons
|
|
COMMON /POLMN/PLMN(0:MXPA25,0:MXPA50,0:MXPA13),
|
|
* PLMNCU(0:MXPA25,0:MXPA50,0:MXPA13)
|
|
C COMMON /POLMN1/ PLMNEE(0:MXPA25,0:MXPU50,0:MXPA13,20)
|
|
COMMON /POLMN1/ PLMNEE(0:MXPA25,0:MXPU50,0:MXPA13,28)
|
|
COMMON /POLMN0/PDIFR,PHARD,PSOFT,ALFAH,BETAH,
|
|
* SIGTOT,SIGQEL,SIGEL,SIGINE,SIGHIN,SIGD,SIGDD
|
|
*
|
|
PARAMETER (PI=3.141592654D0)
|
|
DATA NPRINT/0/
|
|
C Determine the energy index
|
|
IPOEN=1
|
|
DO 20 II=1,NESTEP
|
|
IF(UMO.GE.POEN1(II).AND.UMO.LT.POEN2(II))THEN
|
|
IPOEN=II
|
|
GO TO 22
|
|
ENDIF
|
|
20 CONTINUE
|
|
22 CONTINUE
|
|
* "L"SOFT,"M"HARD
|
|
LMAXI = LMAX
|
|
MMAXI = MMAX
|
|
IF(IPIM.NE.2) THEN
|
|
* "N"diffr.,"NN"dou.dif.,("NL"long inner contr. for 2*cut Y or PHI)
|
|
NMAXI = NMAX
|
|
NNMAXI=0
|
|
NLMAXI=0
|
|
ELSEIF(IPIM.EQ.2) THEN
|
|
IF( NMAX.GE.3)THEN
|
|
NMAXI = NMAX
|
|
NNMAXI=(13-NMAXI)/(1+NMAXI)
|
|
* 13 =!= NNNMAX = NMAXI+(NMAXI+1)*NNMAXI
|
|
NLMAXI=0
|
|
ELSEIF( NMAX.EQ.2)THEN
|
|
NMAXI=1
|
|
NNMAXI=1
|
|
NLMAXI=1
|
|
ELSEIF( NMAX.EQ.1)THEN
|
|
NMAXI=1
|
|
NNMAXI=0
|
|
NLMAXI=1
|
|
ENDIF
|
|
ENDIF
|
|
111 CONTINUE
|
|
*
|
|
X=RNDM(V)
|
|
*
|
|
IF (X.LE.PLMNCU(0,0,0) .AND. NPRINT.LT.100)THEN
|
|
WRITE(6,*) ' No generator of elastic events '
|
|
WRITE(6,*) ' PLMNCU (0,0,0) =!= 0 = ',PLMNCU(0,0,0)
|
|
NPRINT=NPRINT+1
|
|
GOTO 111
|
|
ENDIF
|
|
*
|
|
DO 5 NL=0,NLMAXI
|
|
DO 5 NN=0,NNMAXI
|
|
DO 5 N=0,NMAXI
|
|
NNN =N +(NMAXI+1)*NN +(NNMAXI+1)*(NMAXI+1)* NL
|
|
DO 6 M=0,MMAXI
|
|
DO 7 L=0,LMAXI
|
|
*
|
|
C IF (X.LE.PLMNCU(L,M,NNN)) THEN
|
|
IF (X.LE.PLMNEE(L,M,NNN,IPOEN)) THEN
|
|
L2STR=L
|
|
M2STR=M
|
|
N2STR=N
|
|
NN2STR=NN
|
|
NL2STR=NL
|
|
RETURN
|
|
*
|
|
ENDIF
|
|
7 CONTINUE
|
|
6 CONTINUE
|
|
5 CONTINUE
|
|
*
|
|
NPRINT=NPRINT+1
|
|
IF(NPRINT.LT.100) WRITE(6,*)' RAR.IN SAMPLM,PLMNCU,RND=',
|
|
& PLMNCU(LMAX, MMAX,NNN),X,NPRINT
|
|
IF( PLMNCU(LMAX,MMAX,NNN) .GT. 0.1D0 ) RETURN
|
|
IF( PLMNCU(LMAX,0,0) .GT. 0.1D0 ) RETURN
|
|
WRITE(6,*)' RAR.IN SAMPLM- PROBLEM SEEMS BAD, DECIDE TO STOP'
|
|
STOP
|
|
END
|
|
*
|
|
*
|
|
************************************************************************
|
|
*
|
|
SUBROUTINE SAMPLM(L2STR,M2STR,N2STR)
|
|
*
|
|
* input:
|
|
* PLMNCU
|
|
* output:
|
|
* samples number of soft (L) and hard (M) cut pomerons from PLMNC
|
|
* and of (N=0/1/2) diffractive excitations (for L=M=0
|
|
*
|
|
*----------------------------------------------------------------------
|
|
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
|
|
SAVE
|
|
COMMON /NNCMS/ GAMCM,BGCM,UMO,PCM,EPROJ,PPROJ
|
|
C COMMON /POMENE/POEN(20),POEN1(20),POEN2(20),NESTEP
|
|
COMMON /POMENE/POEN(28),POEN1(28),POEN2(28),NESTEP
|
|
PARAMETER (MXPU50=100,MXPU51=MXPU50+1)
|
|
* *** /OUTLEV/ controls output level for POMDI and parton X distribution
|
|
COMMON /OUTLEV/IOUTPO,IOUTPA,IOUXEV,IOUCOL
|
|
COMMON /POMTYP/IPIM,ICON,ISIG,LMAX,MMAX,NMAX,DIFEL,DIFNU
|
|
* *** /POLMN/ arrays having to do with cut soft and hard Pomerons
|
|
PARAMETER (MXPA25=30,MXPA26=MXPA25+1,MXPA13=13)
|
|
* PARAMETRIZATION FOR PTMIN= 3. GEV
|
|
PARAMETER (MXPA50=250,MXPA51=MXPA50+1)
|
|
* PARAMETRIZATION FOR PTMIN= 2. GEV
|
|
C PARAMETER (MXPA50=350,MXPA51=MXPA50+1)
|
|
COMMON /POLMN/PLMN(0:MXPA25,0:MXPA50,0:MXPA13),
|
|
* PLMNCU(0:MXPA25,0:MXPA50,0:MXPA13)
|
|
C COMMON /POLMN1/ PLMNEE(0:MXPA25,0:MXPU50,0:MXPA13,20)
|
|
COMMON /POLMN1/ PLMNEE(0:MXPA25,0:MXPU50,0:MXPA13,28)
|
|
COMMON /POLMN0/PDIFR,PHARD,PSOFT,ALFAH,BETAH,
|
|
* SIGTOT,SIGQEL,SIGEL,SIGINE,SIGHIN,SIGD,SIGDD
|
|
*
|
|
PARAMETER (PI=3.141592654D0)
|
|
IPOEN=1
|
|
DO 20 II=1,NESTEP
|
|
IF(UMO.GE.POEN1(II).AND.UMO.LT.POEN2(II))THEN
|
|
IPOEN=II
|
|
GO TO 22
|
|
ENDIF
|
|
20 CONTINUE
|
|
22 CONTINUE
|
|
111 CONTINUE
|
|
*
|
|
X=RNDM(V)
|
|
*
|
|
IF (X.LE.PLMNCU(0,0,0))THEN
|
|
WRITE(6,*) ' No generator of elastic events '
|
|
WRITE(6,*) ' PLMNCU (0,0,0) =!= 0 = ',PLMNCU(0,0,0)
|
|
GOTO 111
|
|
ENDIF
|
|
*
|
|
DO 5 N=0,NMAX
|
|
C IF (N.GT.1) GO TO 111
|
|
DO 6 M=0,MMAX
|
|
DO 7 L=0,LMAX
|
|
*
|
|
C IF (X.LE.PLMNCU(L,M,N)) THEN
|
|
IF (X.LE.PLMNEE(L,M,N,IPOEN)) THEN
|
|
L2STR=L
|
|
M2STR=M
|
|
N2STR=N
|
|
RETURN
|
|
*
|
|
ENDIF
|
|
7 CONTINUE
|
|
6 CONTINUE
|
|
5 CONTINUE
|
|
*
|
|
WRITE(6,*)' RAR.IN SAMPLM,PLMNCU,RND=',PLMNCU(LMAX,MMAX,NMAX),X
|
|
IF( PLMNCU(LMAX,MMAX,NMAX) .GT. 0.1D0 ) RETURN
|
|
IF( PLMNCU(LMAX,0,0) .GT. 0.1D0 ) RETURN
|
|
WRITE(6,*)' RAR.IN SAMPLM- PROBLEM SEEMS BAD, DECIDE TO STOP'
|
|
STOP
|
|
END
|
|
*
|
|
*
|
|
*
|
|
*
|
|
************************************************************************
|
|
C--------------------------------------------------------------------
|
|
C
|
|
C dtUpom9h.for
|
|
C
|
|
C---------------------------------------------------------------------
|
|
************************************************************************
|
|
*
|
|
* POMDI,SIGMAS,SIGSHD,PRBLM0..9,SAMPLM,SIGMA1
|
|
*
|
|
* routines called by code word
|
|
* SIGMAPOM :
|
|
*
|
|
|
|
C--------------------------------------------------------------------
|
|
C
|
|
C dtUpom9h.for
|
|
C
|
|
C---------------------------------------------------------------------
|
|
************************************************************************
|
|
*
|
|
* POMDI,SIGMAS,SIGSHD,PRBLM0..9,SAMPLX,SIGMA1
|
|
*
|
|
* routines called by code word
|
|
* SIGMAPOM :
|
|
*
|
|
************************************************************************
|
|
*
|
|
* J.RANFT September 1987
|
|
SUBROUTINE POMDI
|
|
*
|
|
* to calculate the s-dependent X-sections
|
|
*
|
|
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
*
|
|
* input:
|
|
* ISIG characterizing X sections, transmitted to SIGSHD
|
|
* IPIM characterizes the method to calculate SIGMA(LSOFT,mhard)
|
|
* IPIM=1 : integral method with low mass dif.matr
|
|
* IPIM=2 : int.meth.with low mass dif.matr.(2*2)
|
|
* and reduced high mass diffraction
|
|
* IPIM=3 : integral methode
|
|
* IPIM=4 : integral methode with Y -cuts
|
|
* IPIM=5 : integral methode with Y-cuts + 2 CHANNEL EIK.
|
|
* rest : not implemented or
|
|
* special cases for checking
|
|
* LMAX < MXPA25 maximal number of considered soft pomerons
|
|
* MMAX < MXPA50 maximal number of considered hard pomerons
|
|
* NMAX < MXPA13 maximal number of considered trippel pomerons
|
|
* (not used in low masss diffraction formalism)
|
|
* output: printet and plottet in SIGMAS and
|
|
* printed on the end of this subroutine
|
|
*
|
|
* card XSECTION causes call to POMDI
|
|
* card SIGMAPOM with ITEST=1 causes call to POMDI
|
|
* POMDI calling
|
|
* SIGMAS ( SIGMA1..3( SIGSD, (1:/3:)GSET ), PLOT)
|
|
* PRBLM.. ( SIGSHD, (1:)GSET )
|
|
* (2:)SAMPLX, (1:/3:)SAMPLM
|
|
*
|
|
*----------------------------------------------------------------------
|
|
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
|
|
SAVE
|
|
*
|
|
* *** /POLMN/ arrays having to do with cut soft and hard Pomerons
|
|
PARAMETER (MXPA25=30,MXPA26=MXPA25+1,MXPA13=13)
|
|
* PARAMETRIZATION FOR PTMIN= 3. GEV
|
|
PARAMETER (MXPA50=250,MXPA51=MXPA50+1)
|
|
* PARAMETRIZATION FOR PTMIN= 2. GEV
|
|
C PARAMETER (MXPA50=350,MXPA51=MXPA50+1)
|
|
COMMON /POLMN/PLMN(0:MXPA25,0:MXPA50,0:MXPA13),
|
|
* PLMNCU(0:MXPA25,0:MXPA50,0:MXPA13)
|
|
COMMON /POLMN0/PDIFR,PHARD,PSOFT,ALFAH,BETAH,
|
|
* SIGTOT,SIGQEL,SIGEL,SIGINE,SIGHIN,SIGD,SIGDD
|
|
* *** /HISTOO/
|
|
INTEGER*2 NDISLM
|
|
COMMON /HISTOO/AS(50,9),AECM(50,9),ASIG(50,9),ALOS(50,9),
|
|
* ALOECM(50,9),NDISLM(0:MXPA25,0:MXPA50,0:MXPA13)
|
|
* *** /OUTLEV/ controls output level for POMDI and parton X distribution
|
|
COMMON /OUTLEV/IOUTPO,IOUTPA,IOUXEV,IOUCOL
|
|
* --- used only in SIGMAPOM-routines
|
|
* *** /POMPAR/ contains pomeron parameters used in some options
|
|
* ALFA,ALFAP,A,BH,C,BS are soft Pomeron parameters chosen in SIGMAS
|
|
* appearing in SIGMAS, PRBLM.., AK is K-factor
|
|
COMMON/POMPAR/ALFA,ALFAP,A,C,AK
|
|
* *** /SIGMA/ contains variables actually used in iteration
|
|
* ZSOF, ZHAR, BS, BH, SIGSOF,SIGHAR ( for soft, hard, trippel-Pom.)
|
|
* are input for X-section calculated in SIGSHD
|
|
C (/sigma/ is out of P.A.'s CM88, containing variables used in iter.
|
|
COMMON /SIGMA/SIGSOF,BS,ZSOF,SIGHAR,BH,ZHAR,SIGTRP,BT,ZTRP,
|
|
* SIGLOO,ZLOO
|
|
* *** /POMTYP/ contains parameters determining X-sections
|
|
* IPIM,ISIG,LMAX,MMAX,NMAX as described at "CODEWD = SIGMAPOM"
|
|
C LMAX,MMAX,NMAX kept open to enable avoiding of numerical problem
|
|
COMMON /POMTYP/IPIM,ICON,ISIG,LMAX,MMAX,NMAX,DIFEL,DIFNU
|
|
COMMON /ALALA/ALALAM
|
|
C COMMON/COLLIS/SS,IJPROJ,IJTAR,PTTHR,PTTHR2,IOPHRD,IJPRLU,IJTALU
|
|
C
|
|
COMMON /COLLPO/S,PTTHR,PTTHR2
|
|
C COMMON /COLLIS/SS,IJPROJ,IJTAR,PTTPO,IOPHRD,IJPRLU,IJTALU,PTTPO2
|
|
COMMON /COLLIS/SS,IJPROJ,IJTAR,PTTPO,PTTPO2,IOPHRD,IJPRLU,IJTALU
|
|
C
|
|
C ECM calculated as SQRT
|
|
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
PARAMETER (PI=3.141592654D0)
|
|
LMAXI = LMAX
|
|
MMAXI = MMAX
|
|
NMAXI = NMAX
|
|
SKEEP=SS
|
|
*
|
|
*---------------------------------------------------------------------
|
|
* CALL SIGMAS
|
|
*
|
|
* calculates and plotts out X-section at various energies
|
|
* runs thru energies independent of the rest
|
|
* and contains no preperation for other work
|
|
*
|
|
WRITE(6,'(1X/1X)')
|
|
WRITE(6,*)' '
|
|
WRITE(6,*)
|
|
*' ------ testing the energy dependence of x-sections ----------'
|
|
WRITE(6,*)' '
|
|
IF(IOUTPO.GT.-1) WRITE(6,*)
|
|
*' (as function of ALAM i.e.a low mass diffr.parameter)'
|
|
WRITE(6,*)' -----------------------------------------------'
|
|
WRITE(6,'(1X)')
|
|
*
|
|
DO 1007 IIJJ=1,10
|
|
IF(IOUTPO.GT.-1 .OR. IIJJ.EQ.6)THEN
|
|
C WITHOUT SIMGMAS FOR NORMAL USERS
|
|
C IF(IOUTPO.GT.-1 )THEN
|
|
ALALAM=IIJJ*0.1
|
|
IF(IOUTPO.GT.-1) WRITE(6,1008)ALALAM
|
|
1008 FORMAT (' ALAM= ',F10.3)
|
|
CALL SIGMAS
|
|
ENDIF
|
|
1007 CONTINUE
|
|
*
|
|
*---------------------------------------------------------------------
|
|
* test sampling L,M
|
|
*
|
|
1111 CONTINUE
|
|
* looping thru the energies
|
|
*
|
|
C DO 100 III=3,9
|
|
C S=10.**III
|
|
C ECM=SQRT(S)
|
|
*
|
|
S=SKEEP
|
|
ECM=SQRT(S)
|
|
*
|
|
* chosing one options with a standard call
|
|
*
|
|
IF(IPIM.EQ.2) THEN
|
|
IF( NMAX.GE.3)THEN
|
|
NNMAXI=(13-NMAXI)/(1+NMAXI)
|
|
* 13 =!= NNNMAX = NMAXI+(NMAXI+1)*NNMAXI
|
|
NLMAXI=0
|
|
ELSEIF( NMAX.EQ.2)THEN
|
|
NMAXI=1
|
|
NNMAXI=1
|
|
NLMAXI=1
|
|
ELSEIF( NMAX.EQ.1)THEN
|
|
NMAXI=1
|
|
NNMAXI=0
|
|
NLMAXI=1
|
|
ENDIF
|
|
CALL PRBLM2(ECM)
|
|
ENDIF
|
|
IF(IPIM.LT.1.AND.IPIM.GT.9)THEN
|
|
WRITE(6,*) 'RETURN caused by IPIM=',IPIM
|
|
RETURN
|
|
ENDIF
|
|
*
|
|
* randomly sample events and printout
|
|
*
|
|
WRITE (6,'(1X)' )
|
|
WRITE (6,102)ECM,S
|
|
102 FORMAT
|
|
* ('--- sample distribution for L soft and M hard inelastic'
|
|
* , ' pomerons (string pairs)--- '
|
|
* / 20X,'at ECM = ',F10.2,' S = ',F12.1)
|
|
DO 31 L=0,LMAXI
|
|
DO 32 M=0,MMAXI
|
|
DO 32 N=0,13
|
|
NDISLM(L,M,N)=0
|
|
32 CONTINUE
|
|
31 CONTINUE
|
|
*
|
|
IF(ICON.EQ.12)GO TO 100
|
|
DO 320 II=1,10000
|
|
IF(IPIM.EQ.2) THEN
|
|
CALL SAMPLX(L2STR,M2STR,N2STR,NN2STR,NL2STR)
|
|
NNNSTR =N2STR +(NMAXI+1)*NN2STR
|
|
* +(NNMAXI+1)*(NMAXI+1)*NL2STR
|
|
NDISLM(L2STR,M2STR,NNNSTR)=NDISLM(L2STR,M2STR,NNNSTR)+1
|
|
ELSE
|
|
CALL SAMPLM(L2STR,M2STR,N2STR)
|
|
NDISLM(L2STR,M2STR,N2STR)=NDISLM(L2STR,M2STR,N2STR)+1
|
|
ENDIF
|
|
320 CONTINUE
|
|
*
|
|
WRITE(6,*)
|
|
* ' with no diffractive contribution'
|
|
WRITE(6,*) ' '
|
|
WRITE(6,*)
|
|
* ' ....... vertical: NSTR, horizontal MSTR .........'
|
|
DO 3344 L=0,MIN(20,LMAXI)
|
|
3344 WRITE(6,34)L,(NDISLM(L,M,0),M=0,20)
|
|
WRITE(6,*) ' '
|
|
IF(IOUTPO.GE.0)THEN
|
|
DO 333 N=0,5
|
|
IF(N.NE.0)THEN
|
|
WRITE(6,*)' WITH NSTR=',N
|
|
DO 334 L=0,MIN(20,LMAXI)
|
|
WRITE(6,34)L,(NDISLM(L,M,N),M=0,20)
|
|
334 CONTINUE
|
|
WRITE(6,*) ' '
|
|
ENDIF
|
|
JMPA50 = INT(MXPA50/25)
|
|
C WRITE(6,*) 'WIDE PLOT 0<L<25, 0<M<'
|
|
WRITE(6,*) 'WIDE PLOT 0<L<',MXPA25,' 0<M<'
|
|
& ,MXPA50,' IN STEPS OF ',JMPA50
|
|
C DO 335 L=0,MIN(25,LMAXI)
|
|
DO 335 L=0,MXPA25
|
|
WRITE(6,35)L,(NDISLM(L,M,N),M=0,MXPA50,JMPA50)
|
|
335 CONTINUE
|
|
WRITE(6,*) ' '
|
|
333 CONTINUE
|
|
ENDIF
|
|
34 FORMAT (I5,':',21I4)
|
|
35 FORMAT (I5,26I4)
|
|
100 CONTINUE
|
|
* energy loop has ended
|
|
RETURN
|
|
END
|
|
*
|
|
*
|
|
************************************************************************
|
|
*
|
|
SUBROUTINE SIGMAS
|
|
*
|
|
* output:
|
|
* energy dependence of
|
|
* SIGMa-TOT, SIGma-INel, SIGma-Diffractive, SIGma-Hard-INelastic
|
|
* print- and plott-out
|
|
* using:
|
|
* called routines SIGSHD , SIGMA1..3 , PLOT
|
|
*
|
|
* runs thru energies independent of the rest
|
|
* and contains no preperation for other parts
|
|
*
|
|
*---------------------------------------------------------------------
|
|
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
|
|
SAVE
|
|
*
|
|
* *** /OUTLEV/ controls output level for POMDI and parton X distribution
|
|
COMMON /OUTLEV/IOUTPO,IOUTPA,IOUXEV,IOUCOL
|
|
* *** /POLMN/ arrays having to do with cut soft and hard Pomerons
|
|
PARAMETER (MXPA25=30,MXPA26=MXPA25+1,MXPA13=13)
|
|
PARAMETER ( ZERO=0.D0, ONE=1.D0)
|
|
* PARAMETRIZATION FOR PTMIN= 3. GEV
|
|
PARAMETER (MXPA50=250,MXPA51=MXPA50+1)
|
|
* PARAMETRIZATION FOR PTMIN= 2. GEV
|
|
C PARAMETER (MXPA50=350,MXPA51=MXPA50+1)
|
|
COMMON /POLMN/PLMN(0:MXPA25,0:MXPA50,0:MXPA13),
|
|
* PLMNCU(0:MXPA25,0:MXPA50,0:MXPA13)
|
|
COMMON /POLMN0/PDIFR,PHARD,PSOFT,ALFAH,BETAH,
|
|
* SIGTOT,SIGQEL,SIGEL,SIGINE,SIGHIN,SIGD,SIGDD
|
|
*
|
|
* *** /POMPAR/*/SIGMA/*/POMTYP/ used only in SIGMAPOM-routines (->POMDI)
|
|
COMMON /POMTYP/IPIM,ICON,ISIG,LMAX,MMAX,NMAX,DIFEL,DIFNU
|
|
COMMON/POMPAR/ALFA,ALFAP,A,C,AK
|
|
COMMON /SIGMA/SIGSOF,BS,ZSOF,SIGHAR,BH,ZHAR,SIGTRP,BT,ZTRP,
|
|
* SIGLOO,ZLOO
|
|
* ***
|
|
COMMON /TOPDR/ITOPD,IDUMTP
|
|
* ***
|
|
INTEGER*2 NDISLM
|
|
COMMON /HISTOO/AS(50,9),AECM(50,9),ASIG(50,9),ALOS(50,9),
|
|
* ALOECM(50,9),NDISLM(0:MXPA25,0:MXPA50,0:MXPA13)
|
|
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
PARAMETER (PI=3.141592654D0)
|
|
*
|
|
*---------------------------------------------------------------------
|
|
* run thru energies
|
|
* ------------------------------------------------------------------
|
|
*
|
|
ISTEP=2
|
|
IF(IOUTPO.GT.-1)ISTEP=7
|
|
DO 100 I=1,50,ISTEP
|
|
S=1.6**I
|
|
ECM=SQRT(S)+3.4
|
|
S=ECM**2
|
|
*
|
|
* *** running thru energies initializing AS,AECM,ASIG,ALOS,ALOECM *****
|
|
*
|
|
DO 111 III=1,9
|
|
AS(I,III)=S
|
|
AECM(I,III)=ECM
|
|
ALOS(I,III)=LOG10(S)
|
|
ALOECM(I,III)=LOG10(ECM)
|
|
ASIG(I,III)=0.
|
|
111 CONTINUE
|
|
*
|
|
* *** calling calculation of x- section
|
|
*
|
|
IF(IPIM.EQ.2 )THEN
|
|
CALL SIGMA2(ECM)
|
|
IF(I.EQ.1 .AND. IOUTPO.GE.0 ) WRITE(6,*)
|
|
& ' s-dep. by integr.with Y,PHI,LMD'
|
|
ELSE
|
|
CALL SIGMA2(ECM)
|
|
IF(I.EQ.1 .AND. IOUTPO.GE.0 ) WRITE(6,*)
|
|
& ' s-dep. by integr.with Y,PHI,LMD (DEFAULT)'
|
|
ENDIF
|
|
*
|
|
*
|
|
C* the preceeding coresponds to a call to SIGMA2 except extra prin
|
|
* *** getting plot array ASIG(I,J) :
|
|
ASIG(I,1)=SIGTOT
|
|
ASIG(I,2)=SIGINE
|
|
ASIG(I,3)=SIGHIN
|
|
ASIG(I,4)=SIGSOF
|
|
ASIG(I,5)=SIGHAR
|
|
ASIG(I,6)=SIGTRP
|
|
ASIG(I,7)=SIGTOT-SIGINE
|
|
ASIG(I,8)=SIGINE-SIGHIN
|
|
ASIG(I,9)=SIGD
|
|
WRITE (6,1007)ECM,SIGTOT,SIGINE,SIGEL,SIGD
|
|
1007 FORMAT (' ECM,SIGTOT,SIGINE,SIGEL,SIGD',F10.1,4E14.3)
|
|
100 CONTINUE
|
|
*
|
|
* energy loop ends
|
|
*---------------------------------------------------------------------
|
|
* print out results
|
|
* ------------------------------------------------------------------
|
|
WRITE (6,991)
|
|
991 FORMAT (//' shown as line printer plott'/' with'/
|
|
* J: drawn quantities:
|
|
1 ' (*) SIGTOT total x-section',
|
|
2 ' (2) SIGINE inelastic x-section'/
|
|
3 ' (3) SIGHIN hard inelastic cross section, one or more jets',
|
|
4 ' (4) SIGSOF input soft x-section'/
|
|
5 ' (5) SIGHAR input hard x-sections',
|
|
6 ' (6) SIGTRP input diffractive x-section (triple pomeron)'/
|
|
7 ' (7) SIGTOT-SIGINE elastic x-section',
|
|
8 ' (8) SIGINE-SIGHIN non-hard inelastic x-section, (no jets)'/
|
|
9 ' (9) SIGD diffractive xross section '/
|
|
* ' are plotted against LOG(10)of(CMENERGY)' //)
|
|
*
|
|
CALL PLOT(ALOECM,ASIG,450,9,50,ZERO, 0.1*ONE,ZERO, 2.0*ONE)
|
|
*
|
|
* special output on unit number 7
|
|
C I kept it as it was
|
|
IF (ITOPD.EQ.1) THEN
|
|
WRITE(7,95)
|
|
95 FORMAT(' NEW FRAME'/' SET FONT DUPLEX'/' SET SCALE X LOG'/
|
|
* ' SET LIMITS X FROM 1.0 TO 1E5 Y FROM 0. TO 200'/
|
|
* ' TITLE TOP < TOTAL,INEL. AND HARD (MINIJET) CROSS SECT.<'/
|
|
* ' TITLE BOTTOM <C.M.ENERGY [GEV]<'/
|
|
* ' TITLE < DUAL UNITARIZATION OF SOFT AND HARD CROSS SECTIONS<'/
|
|
* ' TITLE LEFT LINES=-1 <CROSS SECTION [MB]<'/
|
|
* ' TITLE 3 8.5 < SOLID = TOTAL X.S. <'/
|
|
* ' TITLE < DASHED= INELASTIC X.S. <'/
|
|
* ' TITLE < DOTTED= HARD X.S.<'/
|
|
* ' TITLE < DOT-DASH= HARD INPUT X.S. <'/
|
|
* ' TITLE < DOT-DASH= ELASTIC X.S. <')
|
|
92 FORMAT (5F15.5)
|
|
DO 94 IUU=1,7
|
|
IF (IUU.EQ.4)GO TO 94
|
|
IF (IUU.EQ.6)GO TO 94
|
|
IF (IUU.EQ.1) WRITE(7,97)
|
|
97 FORMAT (' SET TEXTURE SOLID')
|
|
IF (IUU.EQ.2) WRITE(7,98)
|
|
98 FORMAT (' SET TEXTURE DASHES')
|
|
IF (IUU.EQ.3) WRITE(7,99)
|
|
99 FORMAT (' SET TEXTURE DOTS')
|
|
IF (IUU.EQ.5) WRITE(7,197)
|
|
197 FORMAT (' SET TEXTURE DOTDASH')
|
|
DO 93 IU=2,46
|
|
WRITE(7,92)AECM(IU,IUU),ASIG(IU,IUU)
|
|
93 CONTINUE
|
|
WRITE(7,96)
|
|
96 FORMAT (' JOIN')
|
|
94 CONTINUE
|
|
ENDIF
|
|
* ending IF(ITOP=1) special output
|
|
RETURN
|
|
END
|
|
*
|
|
******************************************************************
|
|
* end dtupom90
|
|
******************************************************************
|
|
|