+++ /dev/null
-C***********************************************************************
-C
-C
-C
-C PHOJET version 1.12
-C -------------------
-C
-C
-C ($Revision$, $Date$)
-C
-C
-C Authors: Ralph Engel
-C (eng@lepton.bartol.udel.edu)
-C
-C Johannes Ranft
-C (johannes.ranft@cern.ch)
-C
-C Stefan Roesler
-C (sroesler@SLAC.Stanford.EDU)
-C
-C
-C For the latest version and documentation check
-C http://lepton.bartol.udel.edu/~eng/phojet.html
-C
-C
-C Bug reports, questions, complaints are welcome
-C (please send a mail to eng@lepton.bartol.udel).
-C
-C
-C Note that the code is available with several interfaces to
-C Lund fragmentation programs (JETSET7.x, 1.x and a double
-C precision JETSET version). This file is the code with
-C
-
-C interface to PYTHIA 6.1 (or higher)
-
-C for usage in DPMJET 3.x (Lund common block dimensions increased)
-
-C
-C***********************************************************************
-C
-C
-C List of subroutines and functions
-C ---------------------------------
-C
-C
-C main event simulation routines
-C
-C PHO_EVENT
-C PHO_PARTON
-C PHO_POSPOM
-C
-C PHO_STDPAR
-C PHO_POMSCA
-C
-C
-C user steering interface
-C
-C PHO_SETMDL
-C PHO_PRESEL
-C
-C
-C experimental setup / photon flux calculation
-C
-C PHO_FIXLAB
-C PHO_FIXCOL
-C PHO_GPHERA
-C PHO_GGEPEM
-C PHO_WGEPEM
-C PHO_GGBLSR
-C PHO_GGBEAM
-C PHO_GGHIOF
-C PHO_GGHIOG
-C PHO_GGFLCL
-C PHO_GGFLCR
-C PHO_GGFAUX
-C PHO_GGFNUC
-C PHO_GHHIOF
-C PHO_GHHIAS
-C
-C
-C initialization
-C
-C PHO_INIT
-C PHO_DATINI
-C PHO_PARDAT
-C PHO_MCINI
-C
-C PHO_EVEINI
-C
-C PHO_HARINI
-C PHO_FRAINI
-C
-C PHO_FITPAR
-C
-C
-C cross section calculation
-C
-C PHO_CSINT
-C
-C PHO_XSECT
-C PHO_BORNCS
-C PHO_HARXTO
-C
-C PHO_DSIGDT
-C
-C PHO_TRIREG
-C PHO_LOOREG
-C PHO_TRXPOM
-C
-C PHO_EIKON
-C PHO_CHAN2A
-C
-C PHO_SCALES
-C
-C
-C multiple interaction structure
-C
-C PHO_IMPAMP
-C PHO_PRBDIS
-C PHO_SAMPRO
-C PHO_SAMPRB
-C
-C
-C hadron / photon remnant treatment, soft x selection
-C
-C PHO_HARREM
-C PHO_PARREM
-C
-C PHO_HADSP2
-C PHO_HADSP3
-C PHO_SOFTXX
-C PHO_SELSXR
-C PHO_SELSX2
-C PHO_SELSXS
-C PHO_SELSXI
-C
-C PHO_VALFLA
-C PHO_REGFLA
-C PHO_SEAFLA
-C PHO_FLAUX
-C PHO_BETAF
-C IPHO_DIQU
-C
-C
-C primordial kt and soft parton pt
-C
-C PHO_PRIMKT
-C PHO_PARTPT
-C PHO_SOFTPT
-C PHO_SELPT
-C
-C PHO_CONN0
-C PHO_CONN1
-C
-C
-C simulation of hard scattering, initial state radiation
-C
-C PHO_HARCOL
-C PHO_SELCOL
-C PHO_HARCOR
-C
-C PHO_HARDIR
-C PHO_HARX12
-C PHO_HARDX1
-C PHO_HARKIN
-C PHO_HARWGH
-C PHO_HARSCA
-C PHO_HARFAC
-C PHO_HARWGX
-C PHO_HARWGI
-C PHO_HARINT
-C PHO_HARMCI
-C
-C PHO_HARXR3
-C PHO_HARXR2
-C PHO_HARXD2
-C PHO_HARXPT
-C PHO_HARISR
-C PHO_HARZSP
-C
-C PHO_PTCUT
-C PHO_ALPHAE
-C PHO_ALPHAS
-C
-C
-C diffraction dissociation
-C
-C PHO_DIFDIS
-C PHO_DIFPRO
-C PHO_DIFPAR
-C PHO_QELAST
-C PHO_CDIFF
-C PHO_DFWRAP
-C
-C PHO_SAMASS
-C PHO_DSIGDM
-C PHO_DFMASS
-C
-C PHO_SDECAY
-C PHO_SDECY2
-C PHO_SDECY3
-C
-C PHO_DIFSLP
-C PHO_DIFKIN
-C PHO_VECRES
-C PHO_DIFRES
-C
-C PHO_REGPAR
-C
-C PHO_PECMS
-C PHO_SETPAR
-C
-C
-C fragmentation, treatment of low-mass strings
-C
-C PHO_STRING
-C PHO_STRFRA
-C
-C PHO_ID2STR
-C PHO_MCHECK
-C PHO_POMCOR
-C PHO_MASCOR
-C PHO_PARCOR
-C
-C PHO_GLU2QU
-C PHO_GLUSPL
-C
-C PHO_DQMASS
-C PHO_BAMASS
-C PHO_MEMASS
-C
-C
-C particle code tables, particle numbering conversion
-C
-C PHO_PNAME
-C PHO_PMASS
-C IPHO_CHR3
-C IPHO_BAR3
-C
-C IPHO_ANTI
-C
-C IPHO_PDG2ID
-C IPHO_ID2PDG
-C IPHO_LU2PDG
-C IPHO_PDG2LU
-C
-C IPHO_CNV1
-C PHO_HACODE
-C
-C
-C
-C Lorentz transformations, rotations and mass adjustment
-C
-C PHO_ALTRA
-C PHO_LTRANS
-C PHO_TRANS
-C PHO_TRANI
-C
-C PHO_MKSLTR
-C PHO_GETLTR
-C
-C PHO_LTRHEP
-C
-C PHO_MSHELL
-C PHO_MASSAD
-C
-C
-C program debugging and internal cross-checks
-C
-C PHO_PREVNT
-C PHO_PRSTRG
-C PHO_CHECK
-C
-C PHO_TRACE
-C
-C PHO_REJSTA
-C
-C PHO_ABORT
-C
-C
-C cross section fitting
-C
-C PHO_FITMAI
-C PHO_FITINP
-C PHO_FITDAT
-C PHO_FITOUT
-C PHO_FITAMP
-C PHO_FITTST
-C PHO_FITMSQ
-C PHO_FITVD1
-C PHO_FITCN1
-C PHO_FITINI
-C
-C
-C cross section parametrizations
-C
-C PHO_HADCSL
-C PHO_ALLM97
-C PHO_CSDIFF
-C
-
-C
-C random numbers
-C
-
-C DPMJET random number generator DT_RNDM used
-
-C
-C PHO_SFECFE
-C PHO_RNDBET
-C PHO_RNDGAM
-C
-C
-C auxiliary routines / numerical methods
-C
-C PHO_GAUSET
-C PHO_GAUDAT
-C
-C pho_samp1d
-C
-C PHO_DZEROX
-C PHO_EXPINT
-C PHO_BESSJ0
-C PHO_BESSI0
-C pho_ExpBessI0
-C PHO_BESSI1
-C PHO_BESSK0
-C PHO_BESSK1
-C
-C PHO_XLAM
-C
-C PHO_SWAPD
-C PHO_SWAPI
-C
-C
-C parton density parametrization management / interface
-C
-C PHO_PDF
-C
-C PHO_SETPDF
-C PHO_GETPDF
-C PHO_ACTPDF
-C
-C PHO_QPMPDF
-C
-C PHO_PDFTST
-C
-C
-C parton density parametrizations from other authors
-C
-C PHO_DOR98LO
-C PHO_DOR98SC
-C PHO_DOR94LO
-C PHO_DOR94HO
-C PHO_DOR94DI
-C PHO_DOR92LO
-C PHO_DOR92HO
-C PHO_DORPLO
-C PHO_DORPHO
-C PHO_DORGLO
-C PHO_DORGHO
-C PHO_DORGH0
-C PHO_DOR94FV
-C PHO_DOR94FW
-C PHO_DOR94FS
-C PHO_DOR92FV
-C PHO_DOR92FW
-C PHO_DOR92FS
-C PHO_DORFVP
-C PHO_DORFGP
-C PHO_DORFQP
-C PHO_DORGF
-C PHO_DORGFS
-C PHO_grsf1
-C PHO_grsf2
-C
-C PHO_CKMTPA
-C PHO_CKMTPD
-C PHO_CKMTPO
-C PHO_CKMTFV
-C
-C PHO_DBFINT
-C
-C PHO_SASGAM
-C PHO_SASVMD
-C PHO_SASANO
-C PHO_SASBEH
-C PHO_SASDIR
-C
-C PHO_PHGAL
-C PHVAL
-C
-C
-C***********************************************************************
-
-CDECK ID>, PHO_INIT
-**sr temporarily changed
-C SUBROUTINE PHO_INIT(LINP,LOUT,IREJ)
- SUBROUTINE PHO_INIT(LINP,IREJ)
-**
-C***********************************************************************
-C
-C main subroutine to configure and manage PHOJET calculations
-C
-C input: LINP input unit to read from
-C -1 to skip reading of input file
-C LOUT output unit to write to
-C
-C output: IREJ 0 success
-C 1 failure
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C integration precision for hard cross sections (obsolete)
- INTEGER NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
- COMMON /POGAUP/ NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
-C some hadron information, will be deleted in future versions
- INTEGER NFS
- DOUBLE PRECISION QMASS,BET,PCOUDI,PNORM,VALPRG
- COMMON /POHDRN/ QMASS(6),BET,PCOUDI,PNORM,VALPRG(2),NFS
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C photon flux kinematics and cuts
- DOUBLE PRECISION ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2
- INTEGER ITAG1,ITAG2
- COMMON /POFCUT/ ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2,
- & ITAG1,ITAG2
-C cut probability distribution
- INTEGER IEETA1,IIMAX,KKMAX
- PARAMETER( IEETA1=20, IIMAX=20, KKMAX=20 )
- INTEGER IEEMAX,IMAX,KMAX
- REAL PROB
- DOUBLE PRECISION EPTAB
- COMMON /POPROB/ PROB(4,IEETA1,0:IIMAX,0:KKMAX),EPTAB(4,IEETA1),
- & IEEMAX,IMAX,KMAX
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-C names of hard scattering processes
- INTEGER Max_pro_1
- PARAMETER ( Max_pro_1 = 16 )
- CHARACTER*18 PROC
- COMMON /POHPRO/ PROC(0:Max_pro_1)
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-
- INTEGER MSTU,MSTJ
- DOUBLE PRECISION PARU,PARJ
- COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-
- INTEGER KCHG
- DOUBLE PRECISION PMAS,PARF,VCKM
- COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-
- INTEGER MDCY,MDME,KFDP
- DOUBLE PRECISION BRAT
- COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
-
- INTEGER PYCOMP
-
- DIMENSION ITMP(0:11)
- CHARACTER*10 CNAME
- CHARACTER*70 NUMBER,FILENA
-
- 14 FORMAT(A10,A69)
- 15 FORMAT(A12)
-
-C define input/output units
- IF(LINP.GE.0) THEN
- LI = LINP
- ELSE
- LI = 5
- ENDIF
-**sr temporarily changed
-C LO = LOUT
- LO = 6
-**
-
- IREJ = 0
-
- WRITE(LO,*)
- WRITE(LO,*) ' ==================================================='
- WRITE(LO,*) ' '
- WRITE(LO,*) ' ---- PHOJET version 1.12 ---- '
- WRITE(LO,*) ' '
- WRITE(LO,*) ' ==================================================='
- WRITE(LO,*) ' Authors: Ralph Engel (Bartol Res. Inst.)'
- WRITE(LO,*) ' Johannes Ranft (Siegen Univ.)'
- WRITE(LO,*) ' Stefan Roesler (SLAC)'
- WRITE(LO,*) ' ---------------------------------------------------'
- WRITE(LO,*) ' Manual, updates, and further information:'
- WRITE(LO,*) ' http://lepton.bartol.udel.edu/~eng/phojet.html'
- WRITE(LO,*) ' ---------------------------------------------------'
- WRITE(LO,*) ' please send suggestions / bug reports etc. to:'
- WRITE(LO,*) ' eng@lepton.bartol.udel.edu'
- WRITE(LO,*) ' ==================================================='
- WRITE(LO,*) ' $Date$'
- WRITE(LO,*) ' $Revision$'
-
- WRITE(LO,*) ' (code version with interface to PYTHIA 6.x)'
-
- WRITE(LO,*) ' (code version for usage in DPMJET 3.x)'
-
- WRITE(LO,*) ' ==================================================='
- WRITE(LO,*)
-
-C standard initializations
- CALL PHO_DATINI
- CALL PHO_PARDAT
- DUM = PHO_PMASS(0,-1)
-
-C initialize standard PDFs
-C proton
- CALL PHO_SETPDF(2212,IDUM,5,6,0,0,-1)
- CALL PHO_SETPDF(-2212,IDUM,5,6,0,0,-1)
-C neutron
- CALL PHO_SETPDF(2112,IDUM,5,6,0,0,-1)
- CALL PHO_SETPDF(-2112,IDUM,5,6,0,0,-1)
-C photon
- CALL PHO_SETPDF(22,IDUM,5,3,0,0,-1)
-C pomeron
- CALL PHO_SETPDF(990,IDUM,4,0,0,0,-1)
-C pions
- CALL PHO_SETPDF(211,IDUM,5,2,0,0,-1)
- CALL PHO_SETPDF(-211,IDUM,5,2,0,0,-1)
- CALL PHO_SETPDF(111,IDUM,5,2,0,0,-1)
-C kaons
- CALL PHO_SETPDF(321,IDUM,5,2,0,0,-1)
- CALL PHO_SETPDF(-321,IDUM,5,2,0,0,-1)
- CALL PHO_SETPDF(130,IDUM,5,2,0,0,-1)
- CALL PHO_SETPDF(310,IDUM,5,2,0,0,-1)
-
-C nothing to be done
- IF(LINP.LT.0) RETURN
-
-C main loop to read input cards
- 1200 CONTINUE
- READ(LINP,14,END=1300) CNAME,NUMBER
- IF(CNAME.EQ.'ENDINPUT ') THEN
- GOTO 1300
- ELSE IF(CNAME.EQ.'STOP ') THEN
- WRITE(LO,*) 'STOP'
- STOP
- ELSE IF(CNAME.EQ.'COMMENT ') THEN
- WRITE(LO,'(1X,A10,A69)') 'COMMENT ',NUMBER
- ELSE IF(CNAME(1:1).EQ.'*') THEN
- WRITE(LO,'(1X,A10,A69)') CNAME,NUMBER
- ELSE IF(CNAME.EQ.'PTCUT ') THEN
- READ(NUMBER,*) PARMDL(36),PARMDL(37),PARMDL(38),PARMDL(39)
- WRITE(LO,*) 'PTCUT ',PARMDL(36),PARMDL(37),
- & PARMDL(38),PARMDL(39)
- ELSE IF(CNAME.EQ.'PROCESS ') THEN
- READ(NUMBER,*) (IPRON(KK,1),KK=1,8)
- WRITE(LO,*) 'PROCESS ',(IPRON(KK,1),KK=1,8)
- ELSE IF(CNAME.EQ.'DIFF-PROC ') THEN
- READ(NUMBER,*) (ITMP(KK),KK=0,11)
- WRITE(LO,*) 'DIFF-PROC ',(ITMP(KK),KK=0,8)
- DO 112 KK=1,8
- IPRON(KK,ITMP(0)) = ITMP(KK)
- 112 CONTINUE
- ELSE IF(CNAME.EQ.'SUBPROCESS') THEN
- READ(NUMBER,*) IMPRO,IP,ION
- WRITE(LO,*) 'SUBPROCESS',IMPRO,IP,ION
- MH_pro_on(IMPRO,IP) = ION
- ELSE IF(CNAME.EQ.'PARTICLE1 ') THEN
- READ(NUMBER,*) IDPDG,PVIR
- IHFLS(1) = 1
- XPSUB = 1.D0
- CALL PHO_SETPAR(1,IDPDG,0,PVIR)
- WRITE(LO,*) 'PARTICLE1 ',IDPDG,PVIR
- ELSE IF(CNAME.EQ.'PARTICLE2 ') THEN
- READ(NUMBER,*) IDPDG,PVIR
- IHFLS(2) = 1
- XTSUB = 1.D0
- CALL PHO_SETPAR(2,IDPDG,0,PVIR)
- WRITE(LO,*) 'PARTICLE2 ',IDPDG,PVIR
- ELSE IF(CNAME.EQ.'REMNANT1 ') THEN
- READ(NUMBER,*) IDPDG,IFL1,IFL2,IVAL,XSUB
- IHFLS(1) = IVAL
- IHFLD(1,1) = IFL1
- IHFLD(1,2) = IFL2
- XPSUB = XSUB
- PVIR = 0.D0
- CALL PHO_SETPAR(1,IDPDG,-1,PVIR)
- WRITE(LO,*) 'REMNANT1 ',IDPDG,IFL1,IFL2,IVAL,XSUB
- ELSE IF(CNAME.EQ.'REMNANT2 ') THEN
- READ(NUMBER,*) IDPDG,IFL1,IFL2,IVAL,XSUB
- IHFLS(2) = IVAL
- IHFLD(2,1) = IFL1
- IHFLD(2,2) = IFL2
- XTSUB = XSUB
- PVIR = 0.D0
- CALL PHO_SETPAR(2,IDPDG,-1,PVIR)
- WRITE(LO,*) 'REMNANT2 ',IDPDG,IFL1,IFL2,IVAL,XSUB
- ELSE IF(CNAME.EQ.'PDF ') THEN
- READ(NUMBER,*) IDPDG,IPAR,ISET,IEXT
- WRITE(LO,*) 'PDF ',IDPDG,IPAR,ISET,IEXT
- CALL PHO_SETPDF(IDPDG,IDUM,IPAR,ISET,IEXT,0,-1)
- ELSE IF(CNAME.EQ.'SETMODEL ') THEN
- READ(NUMBER,*) I,IVAL
- WRITE(LO,*) 'SETMODEL ',I,IVAL
- CALL PHO_SETMDL(I,IVAL,1)
- ELSE IF(CNAME.EQ.'SETPARAM ') THEN
- READ(NUMBER,*) I,PARNEW
- WRITE(LO,*) 'SETPARAM ',I,PARNEW
- PARMDL(I) = PARNEW
- ELSE IF(CNAME.EQ.'DEBUG ') THEN
- READ(NUMBER,*) IDEBF,IDEBN,IDLEV
- WRITE(LO,*) 'DEBUG ',IDEBF,IDEBN,IDLEV
- CALL PHO_TRACE(IDEBF,IDEBN,IDLEV)
- ELSE IF(CNAME.EQ.'TRACE ') THEN
- READ(NUMBER,*) IDEBF,IDLEV
- WRITE(LO,*) 'TRACE ',IDEBF,IDLEV
- IDEB(IDEBF) = IDLEV
- ELSE IF(CNAME.EQ.'SETICUT ') THEN
- READ(NUMBER,*) I,ICUT
- WRITE(LO,*) 'SETICUT ',I,ICUT
- ISWCUT(I) = ICUT
- ELSE IF(CNAME.EQ.'SETFCUT ') THEN
- READ(NUMBER,*) I,PARNEW
- WRITE(LO,*) 'SETFCUT ',I,PARNEW
- HSWCUT(I) = PARNEW
- ELSE IF(CNAME.EQ.'LUND-MSTU ') THEN
- READ(NUMBER,*) I,IVAL
- WRITE(LO,*) 'LUND-MSTU ',I,IVAL
- MSTU(I) = IVAL
- ELSE IF(CNAME.EQ.'LUND-MSTJ ') THEN
- READ(NUMBER,*) I,IVAL
- WRITE(LO,*) 'LUND-MSTJ ',I,IVAL
- MSTJ(I) = IVAL
- ELSE IF(CNAME.EQ.'LUND-PARJ ') THEN
- READ(NUMBER,*) I,EE
- WRITE(LO,*) 'LUND-PARJ ',I,EE
- PARJ(I) = REAL(EE)
- ELSE IF(CNAME.EQ.'LUND-PARU ') THEN
- READ(NUMBER,*) I,EE
- WRITE(LO,*) 'LUND-PARU ',I,EE
- PARU(I) = REAL(EE)
- ELSE IF(CNAME.EQ.'LUND-DECAY') THEN
- READ(NUMBER,*) ID,ION
- WRITE(LO,*) 'LUND-DECAY ',ID,ION
-
- KC=PYCOMP(ID)
-
- MDCY(KC,1) = ION
- ELSE IF(CNAME.EQ.'PSOFTMIN ') THEN
- READ(NUMBER,*) PSOMIN
- WRITE(LO,*) 'PSOFTMIN ',PSOMIN
- ELSE IF(CNAME.EQ.'INTPREC ') THEN
- READ(NUMBER,*) NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
- WRITE(LO,*) 'INTPREC ',NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
-
-C PDF test utility
- ELSE IF(CNAME.EQ.'PDFTEST ') THEN
- READ(NUMBER,*) IDPDG,SCALE2,PVIRT2
- PVIRT2 = ABS(PVIRT2)
- WRITE(LO,*) 'PDFTEST ',IDPDG,' ',SCALE2,' ',PVIRT2
- CALL PHO_PDFTST(IDPDG,SCALE2,PVIRT2)
-
-C mass cut on gamma-gamma or gamma-hadron system
- ELSE IF(CNAME.EQ.'ECMS-CUT ') THEN
- READ(NUMBER,*) ECMIN,ECMAX
- WRITE(LO,*) 'ECMS-CUT ',ECMIN,ECMAX
-
-C beam lepton (anti-)tagging system
- ELSE IF(CNAME.EQ.'TAG-METHOD') THEN
- READ(NUMBER,*) ITAG1,ITAG2
- WRITE(LO,*) 'TAG-METHOD',ITAG1,ITAG2
- ELSE IF(CNAME.EQ.'E-TAG1 ') THEN
- READ(NUMBER,*)
- & EEMIN1,YMIN1,YMAX1,Q2MIN1,Q2MAX1,THMIN1,THMAX1
- WRITE(LO,*) 'E-TAG1 ',EEMIN1,YMIN1,YMAX1,
- & Q2MIN1,Q2MAX1,THMIN1,THMAX1
- ELSE IF(CNAME.EQ.'E-TAG2 ') THEN
- READ(NUMBER,*)
- & EEMIN2,YMIN2,YMAX2,Q2MIN2,Q2MAX2,THMIN2,THMAX2
- WRITE(LO,*) 'E-TAG2 ',EEMIN2,YMIN2,YMAX2,
- & Q2MIN2,Q2MAX2,THMIN2,THMAX2
-
-C sampling of gamma-p events in ep (HERA)
- ELSE IF( (CNAME.EQ.'WW-HERA ')
- & .OR.(CNAME.EQ.'GP-HERA ')) THEN
- READ(NUMBER,*) EE1,EE2,NEV
- WRITE(LO,*) 'GP-HERA ',EE1,EE2,NEV
- IF(YMAX2.LT.0.D0) THEN
- WRITE(LO,*) ' PHO_INIT:ERROR:ELECTRON TAGGER NOT SET'
- ELSE
- CALL PHO_GPHERA(NEV,EE1,EE2)
- KEVENT = 0
- ENDIF
-
-C sampling of gamma-gamma events in e+e- (LEP)
- ELSE IF( (CNAME.EQ.'GG-EPEM ')
- & .OR.(CNAME.EQ.'WW-EPEM ')) THEN
- READ(NUMBER,*) EE1,EE2,NEV
- WRITE(LO,*) 'GG-EPEM ',EE1,EE2,NEV
- IF((YMAX1.LT.0.D0).OR.(YMAX2.LT.0.D0)) THEN
- WRITE(LO,*) ' PHO_INIT:ERROR:ELECTRON TAGGERS NOT SET'
- ELSE
- CALL PHO_GGEPEM(-1,EE1,EE2)
- CALL PHO_GGEPEM(NEV,EE1,EE2)
- CALL PHO_GGEPEM(-2,sig_tot,sig_gg)
- KEVENT = 0
- ENDIF
-
-C sampling of gamma-gamma in heavy-ion collisions
- ELSE IF(CNAME.EQ.'GG-HION-F ') THEN
- READ(NUMBER,*) EE,NA,NZ,NEV
- WRITE(LO,*) 'GG-HION-F ',EE,NA,NZ,NEV
- IF((YMAX1.LT.0.D0).OR.(YMAX2.LT.0.D0)) THEN
- WRITE(LO,*) ' PHO_INIT:ERROR:Y RANGE FOR PHOTONS NOT SET'
- ELSE
- CALL PHO_GGHIOF(NEV,EE,NA,NZ)
- KEVENT = 0
- ENDIF
- ELSE IF(CNAME.EQ.'GG-HION-G ') THEN
- READ(NUMBER,*) EE,NA,NZ,NEV
- WRITE(LO,*) 'GG-HION-G ',EE,NA,NZ,NEV
- IF((YMAX1.LT.0.D0).OR.(YMAX2.LT.0.D0)) THEN
- WRITE(LO,*) ' PHO_INIT:ERROR:Y RANGE FOR PHOTONS NOT SET'
- ELSE
- CALL PHO_GGHIOG(NEV,EE,NA,NZ)
- KEVENT = 0
- ENDIF
-
-C sampling of gamma-hadron events in heavy ion collisions
- ELSE IF(CNAME.EQ.'GH-HION-F ') THEN
- READ(NUMBER,*) EE,NA,NZ,NEV
- WRITE(LO,*) 'GH-HION-F ',EE,NA,NZ,NEV
- IF((YMAX1.LT.0.D0).OR.(YMAX2.LT.0.D0)) THEN
- WRITE(LO,*) ' PHO_INIT:ERROR:Y RANGE FOR PHOTONS NOT SET'
- ELSE
- CALL PHO_GHHIOF(NEV,EE,NA,NZ)
- KEVENT = 0
- ENDIF
-
-C sampling of hadron-gamma events in hadron - heavy ion collisions
- ELSE IF(CNAME.EQ.'HG-HIAS-F ') THEN
- READ(NUMBER,*) EP,EE,NA,NZ,NEV
- WRITE(LO,*) 'HG-HIAS-F ',EP,EE,NA,NZ,NEV
- IF(YMAX2.LT.0.D0) THEN
- WRITE(LO,*) ' PHO_INIT:ERROR:Y RANGE FOR PHOTONS NOT SET'
- ELSE
- CALL PHO_GHHIAS(NEV,EP,EE,NA,NZ)
- KEVENT = 0
- ENDIF
-
-C sampling of photoproduction events e+e-, backscattered laser
- ELSE IF(CNAME.EQ.'BLASER ') THEN
- READ(NUMBER,*) EE1,EE2,Pl_lam_1,Pl_lam_2,X_1,X_2,rho,A,NEV
- WRITE(LO,*) 'BLASER ',EE1,EE2,
- & Pl_lam_1,Pl_lam_2,X_1,X_2,rho,A,NEV
- CALL PHO_GGBLSR(NEV,EE1,EE2,Pl_lam_1,Pl_lam_2,X_1,X_2,rho,A)
- KEVENT = 0
-
-C sampling of photoproduction events beamstrahlung
- ELSE IF(CNAME.EQ.'BEAMST ') THEN
- READ(NUMBER,*) EE1,YPSI,SIGX,SIGY,SIGZ,AEB,NEV
- WRITE(LO,*) 'BEAMST ',EE1,YPSI,SIGX,SIGY,SIGZ,AEB,NEV
- IF(YMAX1.LT.0.D0) THEN
- WRITE(LO,*) ' PHO_INIT:ERROR:ELECTRON TAGGER 1 NOT SET'
- ELSE
- CALL PHO_GGBEAM(NEV,EE1,YPSI,SIGX,SIGY,SIGZ,AEB)
- KEVENT = 0
- ENDIF
-
-C fixed-energy events in LAB system of particle 2
- ELSE IF(CNAME.EQ.'EVENT-LAB ') THEN
- READ(NUMBER,*) PLAB,NEV
- WRITE(LO,*) 'EVENT-LAB ',PLAB,NEV
- CALL PHO_FIXLAB(PLAB,NEV)
- KEVENT = 0
-
-C fixed-energy events in CM system
- ELSE IF(CNAME.EQ.'EVENT-CMS ') THEN
- READ(NUMBER,*) ECM,NEV
- WRITE(LO,*) 'EVENT-CMS ',ECM,NEV
- PMASS1 = PHO_PMASS(IFPAB(1),0)-SQRT(PVIRT(1))
- PMASS2 = PHO_PMASS(IFPAB(2),0)-SQRT(PVIRT(2))
- CALL PHO_PECMS(1,PMASS1,PMASS2,ECM,PCM,EE)
- E1 = EE
- E2 = ECM-EE
- THETA = 0.D0
- PHI = 0.D0
- CALL PHO_FIXCOL(E1,E2,THETA,PHI,NEV)
- KEVENT = 0
-
-C fixed-energy events for collider setup with crossing angle
- ELSE IF(CNAME.EQ.'EVENT-COLL') THEN
- READ(NUMBER,*) E1,E2,THETA,PHI,NEV
- WRITE(LO,*) 'EVENT-COLL',E1,E2,THETA,PHI,NEV
- CALL PHO_FIXCOL(E1,E2,THETA,PHI,NEV)
- KEVENT = 0
-
-C unknown data card
- ELSE
- WRITE(LO,*) 'PHO_INIT: unknown data card: ',CNAME,NUMBER
- ENDIF
-
- GOTO 1200
- 1300 CONTINUE
- WRITE(LO,*) ' RETURN'
-
- END
-
-CDECK ID>, PHO_SETMDL
- SUBROUTINE PHO_SETMDL(INDX,IVAL,IMODE)
-C**********************************************************************
-C
-C set model switches
-C
-C input: INDX model parameter number
-C (positive: ISWMDL, negative: IPAMDL)
-C IVAL new value
-C IMODE -1 print value of parameter INDX
-C 1 set new value
-C -2 print current settings
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-
- IF(IMODE.EQ.-2) THEN
-C *** Commented by Chiara
-C WRITE(LO,'(/1X,A,/1X,A,/)') 'PHO_SETMDL: current settings',
-C & '----------------------------'
- DO 100 I=1,48,3
- IF(ISWMDL(I).EQ.-9999) GOTO 200
- IF(ISWMDL(I+1).EQ.-9999) THEN
-C *** Commented by Chiara
-C WRITE(LO,'(5X,I3,A1,A,I6)') I,':',MDLNA(I),ISWMDL(I)
- GOTO 200
- ELSE IF(ISWMDL(I+2).EQ.-9999) THEN
-C WRITE(LO,'(2(5X,I3,A1,A,I6))') I,':',MDLNA(I),ISWMDL(I),
-C & I+1,':',MDLNA(I+1),ISWMDL(I+1)
- GOTO 200
- ELSE
-C WRITE(LO,'(3(5X,I3,A1,A,I6))')
-C & (I+K,':',MDLNA(I+K),ISWMDL(I+K),K=0,2)
- ENDIF
- 100 CONTINUE
- 200 CONTINUE
- ELSE IF(IMODE.EQ.-1) THEN
-C WRITE(LO,'(1X,A,1X,A,I6)')
-C & 'PHO_SETMDL:',MDLNA(INDX),ISWMDL(INDX)
- ELSE IF(IMODE.EQ.1) THEN
- IF(INDX.GT.0) THEN
- IF(ISWMDL(INDX).NE.IVAL) THEN
- WRITE(LO,'(1X,A,I4,1X,A,2I6)')
- & 'PHO_SETMDL:ISWMDL(OLD/NEW):',
- & INDX,MDLNA(INDX),ISWMDL(INDX),IVAL
- ISWMDL(INDX) = IVAL
- ENDIF
- ELSE IF(INDX.LT.0) THEN
- IF(IPAMDL(-INDX).NE.IVAL) THEN
- WRITE(LO,'(1X,A,I4,1X,2I6)') 'PHO_SETMDL:IPAMDL(OLD/NEW):',
- & -INDX,IPAMDL(-INDX),IVAL
- IPAMDL(-INDX) = IVAL
- ENDIF
- ENDIF
- ELSE
- WRITE(LO,'(/1X,A,I6)')
- & 'PHO_SETMDL:ERROR: unsupported mode',IMODE
- ENDIF
- END
-
-CDECK ID>, PHO_DATINI
- SUBROUTINE PHO_DATINI
-C*********************************************************************
-C
-C initialization of variables and switches
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-C scale parameters for parton model calculations
- INTEGER NQQAL,NQQALI,NQQALF,NQQPD
- DOUBLE PRECISION AQQAL,AQQALI,AQQALF,AQQPD
- COMMON /POHSCL/ AQQAL,AQQALI,AQQALF,AQQPD,
- & NQQAL,NQQALI,NQQALF,NQQPD
-C integration precision for hard cross sections (obsolete)
- INTEGER NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
- COMMON /POGAUP/ NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
-C hard scattering parameters used for most recent hard interaction
- INTEGER NFbeta,NF
- DOUBLE PRECISION ALQCD2,BQCD
- COMMON /POHAPA/ ALQCD2(3,4),BQCD(4),NFbeta,NF
-C cut probability distribution
- INTEGER IEETA1,IIMAX,KKMAX
- PARAMETER( IEETA1=20, IIMAX=20, KKMAX=20 )
- INTEGER IEEMAX,IMAX,KMAX
- REAL PROB
- DOUBLE PRECISION EPTAB
- COMMON /POPROB/ PROB(4,IEETA1,0:IIMAX,0:KKMAX),EPTAB(4,IEETA1),
- & IEEMAX,IMAX,KMAX
-C gamma-lepton or gamma-hadron vertex information
- INTEGER IGHEL,IDPSRC,IDBSRC
- DOUBLE PRECISION PINI,PFIN,PGAM,GYY,GQ2,GGECM,GAIMP,PFTHE,PFPHI,
- & RADSRC,AMSRC,GAMSRC
- COMMON /POFSRC/ PINI(5,2),PFIN(5,2),PGAM(5,2),IGHEL(2),
- & GYY(2),GQ2(2),GGECM,GAIMP(2),PFTHE(2),PFPHI(2),
- & IDPSRC(2),IDBSRC(2),RADSRC(2),AMSRC(2),GAMSRC(2)
-C photon flux kinematics and cuts
- DOUBLE PRECISION ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2
- INTEGER ITAG1,ITAG2
- COMMON /POFCUT/ ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2,
- & ITAG1,ITAG2
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C some hadron information, will be deleted in future versions
- INTEGER NFS
- DOUBLE PRECISION QMASS,BET,PCOUDI,PNORM,VALPRG
- COMMON /POHDRN/ QMASS(6),BET,PCOUDI,PNORM,VALPRG(2),NFS
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C parameters of the "simple" Vector Dominance Model
- DOUBLE PRECISION VMAS,GAMM,RMIN,RMAX,VMSL,VMFA
- COMMON /POSVDM/ VMAS(4),GAMM(4),RMIN(4),RMAX(4),VMSL(4),VMFA(4)
-C parameters for DGLAP backward evolution in ISR
- INTEGER NFSISR
- DOUBLE PRECISION Q2MISR,PMISR,ZMISR,AL2ISR
- COMMON /PODGL1/ Q2MISR(2),PMISR(2),ZMISR(2),AL2ISR(2),NFSISR
-C particles created by initial state evolution
- INTEGER MXISR1,MXISR2
- PARAMETER ( MXISR1 = 150, MXISR2 = 50 )
- INTEGER IFLISR,IPOISR,IMXISR
- DOUBLE PRECISION PHISR
- COMMON /POPISR/ IFLISR(2,MXISR1),PHISR(2,4,MXISR1),
- & IPOISR(2,2,MXISR2),IMXISR(2)
-C names of hard scattering processes
- INTEGER Max_pro_1
- PARAMETER ( Max_pro_1 = 16 )
- CHARACTER*18 PROC
- COMMON /POHPRO/ PROC(0:Max_pro_1)
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-C interpolation tables for hard cross section and MC selection weights
- INTEGER Max_tab_E,Max_tab_Q2,Max_pro_tab
- PARAMETER ( Max_tab_E = 20, Max_tab_Q2 = 10, Max_pro_tab = 16 )
- INTEGER IH_Q2a_up,IH_Q2b_up,IH_Ecm_up
- DOUBLE PRECISION Hfac_tab,HWgx_tab,HSig_tab,Hdpt_tab,
- & HQ2a_tab,HQ2b_tab,HEcm_tab
- COMMON /POHTAB/
- & Hfac_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & HWgx_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & HSig_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & Hdpt_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & HQ2a_tab(1:Max_tab_Q2,0:4),HQ2b_tab(1:Max_tab_Q2,0:4),
- & HEcm_tab(1:Max_tab_E,0:4),
- & IH_Q2a_up(0:4),IH_Q2b_up(0:4),IH_Ecm_up(0:4)
-
-C initialize /POCONS/
- PI = ATAN(1.D0)*4.D0
- PI2 = 2.D0*PI
- PI4 = 2.D0*PI2
-C GeV**-2 --> millibarn (multiply by GEV2MB to get mb as units)
- GEV2MB = 0.389365D0
-C precalculate quark charges
- do i=1,6
- Q_ch(i) = dble(2-3*mod(i,2))/3.D0
- Q_ch(-i) = -Q_ch(i)
-
- Q_ch2(i) = Q_ch(i)**2
- Q_ch2(-i) = Q_ch2(i)
-
- Q_ch4(i) = Q_ch2(i)**2
- Q_ch4(-i) = Q_ch4(i)
- enddo
- Q_ch(0) = 0.D0
- Q_ch2(0) = 0.D0
- Q_ch4(0) = 0.D0
-
-C initialize /GLOCMS/
- ECM = 50.D0
- PMASS(1) = 0.D0
- PVIRT(1) = 0.D0
- PMASS(2) = 0.D0
- PVIRT(2) = 0.D0
- IFPAP(1) = 22
- IFPAP(2) = 22
-C initialize /HADVAL/
- IHFLD(1,1) = 0
- IHFLD(1,2) = 0
- IHFLD(2,1) = 0
- IHFLD(2,2) = 0
- IHFLS(1) = 1
- IHFLS(2) = 1
-C initialize /MODELS/
- ISWMDL(1) = 3
- MDLNA(1) = 'AMPL MOD'
- ISWMDL(2) = 1
- MDLNA(2) = 'MIN-BIAS'
- ISWMDL(3) = 1
- MDLNA(3) = 'PTS DISH'
- ISWMDL(4) = 1
- MDLNA(4) = 'PTS DISP'
- ISWMDL(5) = 2
- MDLNA(5) = 'PTS ASSI'
- ISWMDL(6) = 3
- MDLNA(6) = 'HADRONIZ'
- ISWMDL(7) = 2
- MDLNA(7) = 'MASS COR'
- ISWMDL(8) = 3
- MDLNA(8) = 'PAR SHOW'
- ISWMDL(9) = 0
- MDLNA(9) = 'GLU SPLI'
- ISWMDL(10) = 2
- MDLNA(10) = 'VIRT PHO'
- ISWMDL(11) = 0
- MDLNA(11) = 'LARGE NC'
- ISWMDL(12) = 0
- MDLNA(12) = 'LIPA POM'
- ISWMDL(13) = 1
- MDLNA(13) = 'QELAS VM'
- ISWMDL(14) = 2
- MDLNA(14) = 'ENHA GRA'
- ISWMDL(15) = 4
- MDLNA(15) = 'MULT SCA'
- ISWMDL(16) = 4
- MDLNA(16) = 'MULT DIF'
- ISWMDL(17) = 4
- MDLNA(17) = 'MULT CDF'
- ISWMDL(18) = 0
- MDLNA(18) = 'BALAN PT'
- ISWMDL(19) = 1
- MDLNA(19) = 'POMV FLA'
- ISWMDL(20) = 0
- MDLNA(20) = 'SEA FLA'
- ISWMDL(21) = 2
- MDLNA(21) = 'SPIN DEC'
- ISWMDL(22) = 1
- MDLNA(22) = 'DIF.MASS'
- ISWMDL(23) = 1
- MDLNA(23) = 'DIFF RES'
- ISWMDL(24) = 0
- MDLNA(24) = 'PTS HPOM'
- ISWMDL(25) = 0
- MDLNA(25) = 'POM CORR'
- ISWMDL(26) = 1
- MDLNA(26) = 'OVERLAP '
- ISWMDL(27) = 0
- MDLNA(27) = 'MUL R/AN'
- ISWMDL(28) = 1
- MDLNA(28) = 'SUR PROB'
- ISWMDL(29) = 1
- MDLNA(29) = 'PRIMO KT'
- ISWMDL(30) = 0
- MDLNA(30) = 'DIFF. CS'
- ISWMDL(31) = -9999
-C mass-independent sea flavour ratios (for low-mass strings)
- PARMDL(1) = 0.425D0
- PARMDL(2) = 0.425D0
- PARMDL(3) = 0.15D0
- PARMDL(4) = 0.D0
- PARMDL(5) = 0.D0
- PARMDL(6) = 0.D0
-C suppression by energy momentum conservation
- PARMDL(8) = 9.D0
- PARMDL(9) = 7.D0
-C VDM factors
- PARMDL(10) = 0.866D0
- PARMDL(11) = 0.288D0
- PARMDL(12) = 0.288D0
- PARMDL(13) = 0.288D0
- PARMDL(14) = 0.866D0
- PARMDL(15) = 0.288D0
- PARMDL(16) = 0.288D0
- PARMDL(17) = 0.288D0
- PARMDL(18) = 0.D0
-C lower energy limit for initialization
- PARMDL(19) = 5.D0
-C soft pt for hard scattering remnants
- PARMDL(20) = 5.D0
-C low energy beta of soft pt distribution 1
- PARMDL(21) = 4.5D0
-C high energy beta of soft pt distribution 1
- PARMDL(22) = 3.0D0
-C low energy beta of soft pt distribution 0
- PARMDL(23) = 2.5D0
-C high energy beta of soft pt distribution 0
- PARMDL(24) = 0.4D0
-C effective quark mass in photon wave function
- PARMDL(25) = 0.2D0
-C normalization of unevolved Pomeron PDFs
- PARMDL(26) = 0.3D0
-C effective VDM parameters for Q**2 dependence of cross section
- PARMDL(27) = 0.65D0
- PARMDL(28) = 0.08D0
- PARMDL(29) = 0.05D0
- PARMDL(30) = 0.22D0
- PARMDL(31) = 0.589824D0
- PARMDL(32) = 0.609961D0
- PARMDL(33) = 1.038361D0
- PARMDL(34) = 1.96D0
-C Q**2 suppression of multiple interactions
- PARMDL(35) = 0.59D0
-C pt cutoff defaults
- PARMDL(36) = 2.5D0
- PARMDL(37) = 2.5D0
- PARMDL(38) = 2.5D0
- PARMDL(39) = 2.5D0
-C enhancement factor for diffractive cross sections
- PARMDL(40) = 1.D0
- PARMDL(41) = 1.D0
- PARMDL(42) = 1.D0
-C mass in soft pt distribution
- PARMDL(43) = 0.D0
-C maximum of x allowed for leading particle
- PARMDL(44) = 0.9D0
-C max. mass sampled in diffraction
- PARMDL(45) = sqrt(0.4D0)
-C mass threshold in diffraction (2pi mass)
- PARMDL(46) = 0.3D0
-C regularization of slope parameter in diffraction
- PARMDL(47) = 4.D0
-C renormalized intercept for enhanced graphs
- PARMDL(48) = 1.08D0
-C coherence constraint for diff. cross sections
- PARMDL(49) = sqrt(0.05D0)
-C exponents of x distributions
-C baryon
- PARMDL(50) = 1.5D0
- PARMDL(51) = -0.5D0
- PARMDL(52) = -0.99D0
- PARMDL(53) = -0.99D0
-C meson (non-strangeness part)
- PARMDL(54) = -0.5D0
- PARMDL(55) = -0.5D0
- PARMDL(56) = -0.99D0
- PARMDL(57) = -0.99D0
-C meson (strangeness part)
- PARMDL(58) = -0.2D0
- PARMDL(59) = -0.2D0
- PARMDL(60) = -0.99D0
- PARMDL(61) = -0.99D0
-C particle remnant (no valence quarks)
- PARMDL(62) = -0.5D0
- PARMDL(63) = -0.5D0
- PARMDL(64) = -0.99D0
- PARMDL(65) = -0.99D0
-C ratio beetween triple-pomeron/reggeon couplings grrp/gppp
- PARMDL(66) = 10.D0
-C ratio beetween triple-pomeron/reggeon couplings gppr/gppp
- PARMDL(67) = 10.D0
-C min. abs(t) in diffraction
- PARMDL(68) = 0.D0
-C max. abs(t) in diffraction
- PARMDL(69) = 10.D0
-C min. mass for elastic pomerons in central diffraction
- PARMDL(70) = 2.D0
-C min. mass of diffractive blob in central diffraction
- PARMDL(71) = 2.D0
-C min. Feynman x cut in central diffraction
- PARMDL(72) = 0.D0
-C direct pomeron coupling
- PARMDL(74) = 0.D0
-C relative deviation allowed for energy-momentum conservation
-C energy-momentum relative deviation
- PARMDL(75) = 0.01D0
-C transverse momentum deviation
- PARMDL(76) = 0.01D0
-C couplings for unitarization in diffraction
-C non-unitarized pomeron coupling (sqrt(mb))
- PARMDL(77) = 3.D0
-C rescaling factor for pomeron PDF
- PARMDL(78) = 3.D0
-C coupling probabilities
- PARMDL(79) = 1.D0
- PARMDL(80) = 0.D0
-C scales to calculate alpha-s of matrix element
- PARMDL(81) = 1.D0
- PARMDL(82) = 1.D0
- PARMDL(83) = 1.D0
-C scales to calculate alpha-s of initial state radiation
- PARMDL(84) = 1.D0
- PARMDL(85) = 1.D0
- PARMDL(86) = 1.D0
-C scales to calculate alpha-s of final state radiation
- PARMDL(87) = 1.D0
- PARMDL(88) = 1.D0
- PARMDL(89) = 1.D0
-C scales to calculate PDFs
- PARMDL(90) = 1.D0
- PARMDL(91) = 1.D0
- PARMDL(92) = 1.D0
-C scale for ISR starting virtuality
- PARMDL(93) = 1.D0
-C min. virtuality to generate time-like showers in ISR
- PARMDL(94) = 2.D0
-C factor to scale the max. allowed time-like parton shower virtuality
- PARMDL(95) = 4.D0
-C max. transverse momentum for primordial kt
- PARMDL(100) = 2.D0
-C weight factors for pt-distribution
- PARMDL(101) = 2.D0
- PARMDL(102) = 2.D0
- PARMDL(103) = 4.D0
- PARMDL(104) = 2.D0
- PARMDL(105) = 6.D0
- PARMDL(106) = 4.D0
-C
-* PARMDL(110-125) reserved for hard scattering
-C currently chosen scales for hard scattering
- DO 10 I=1,16
- PARMDL(109+I) = 0.D0
- 10 CONTINUE
-C virtuality cutoff in initial state evolution
- PARMDL(126) = PARMDL(36)**2
- PARMDL(127) = PARMDL(37)**2
- PARMDL(128) = PARMDL(38)**2
- PARMDL(129) = PARMDL(39)**2
-C virtuality cutoff for direct contribution to photon PDF
- PARMDL(130) = 1.D30
- PARMDL(131) = 1.D30
- PARMDL(132) = 1.D30
- PARMDL(133) = 1.D30
-C fraction of events without popcorn
- PARMDL(134) = -1.D0
-C fraction of diquarks with spin 1 (relative to sum of spin 1 and 0)
- PARMDL(135) = 0.5D0
-C soft color re-connection (fraction)
-C g g final state
- PARMDL(140) = 1.D0/64.D0
-C g q final state
- PARMDL(141) = 1.D0/24.D0
-C q q final state
- PARMDL(142) = 1.D0/9.D0
-C effective scale in Drees-Godbole like suppresion in photon PDF
- PARMDL(144) = 0.766D0**2
-C QCD scales (if PDF scales are not used, 4 active flavours)
- PARMDL(145) = 0.2D0**2
- PARMDL(146) = 0.2D0**2
- PARMDL(147) = 0.2D0**2
-C threshold scales for variable flavour calculation (GeV**2)
- PARMDL(148) = 1.5D0**2
- PARMDL(149) = 4.5D0**2
- PARMDL(150) = 175.D0**2
-C constituent quark masses
- PARMDL(151) = 0.3D0
- PARMDL(152) = 0.3D0
- PARMDL(153) = 0.5D0
- PARMDL(154) = 1.6D0
- PARMDL(155) = 5.D0
- PARMDL(156) = 174.D0
-C min. masses of valence quark
- PARMDL(157) = 0.3D0
-C min. masses of valence diquark
- PARMDL(158) = 0.8D0
-C min. mass of sea quark
- PARMDL(159) = 0.D0
-C suppression of strange quarks as photon valences
- PARMDL(160) = 0.2D0
-C min. masses for strings (used in PHO_SOFTXX)
- PARMDL(161) = 1.D0
- PARMDL(162) = 1.D0
- PARMDL(163) = 1.D0
- PARMDL(164) = 1.D0
-C min. momentum fraction for soft processes
- PARMDL(165) = 0.3D0
-C min. phase space for x-sampling
- PARMDL(166) = 0.135D0
-C Ross-Stodolsky exponent
- PARMDL(170) = 4.2D0
-C cutoff on photon-pomeron invariant mass in hadron-hadron collisions
- PARMDL(175) = 2.D0
-
-**sr
-* extra factor multiplying difference between Goulianos and PHOJET-
-* diff. cross sections
- PARMDL(200) = 0.6D0
-**
-
-C complex amplitudes, eikonal functions
- IPAMDL(1) = 0
-C allow for Reggeon cuts
- IPAMDL(2) = 1
-C decay of hadron resonances in diffraction (0 iso, 1 trans, 2 long)
- IPAMDL(3) = 0
-C polarization of photon resonances (0 none, 1 trans, 2 long)
- IPAMDL(4) = 1
-C pt of valence partons
- IPAMDL(5) = 1
-C pt of hard scattering remnant
- IPAMDL(6) = 2
-C running cutoff for hard scattering
- IPAMDL(7) = 1
-C intercept used for the calculation of enhanced graphs
- IPAMDL(8) = 1
-C effective slope of hard scattering amplitde
- IPAMDL(9) = 1
-C mass dependence of slope parameters
- IPAMDL(10) = 0
-C lepton-photon vertex 1
- IPAMDL(11) = 0
-C lepton-photon vertex 2
- IPAMDL(12) = 0
-C call by DPMJET
- IPAMDL(13) = 0
-C method to sample x distributions
- IPAMDL(14) = 3
-C energy-momentum check
- IPAMDL(15) = 1
-C phase space correction for DPMJET interface
- IPAMDL(16) = 1
-C fragment strings from projectile/target/central diff. separately
- IPAMDL(17) = 1
-C method to construct strings for hard interactions
- IPAMDL(18) = 1
-C method to construct strings for soft sea (pomeron cuts)
- IPAMDL(19) = 0
-C method to construct strings in pomeron interactions
- IPAMDL(20) = 0
-C soft color re-connection
- IPAMDL(21) = 0
-C resummation of triple- and loop-Pomeron
- IPAMDL(24) = 1
-C resummation of X iterated triple-Pomeron
- IPAMDL(25) = 1
-C dimension of interpolation table for weights in hard scattering
- IPAMDL(30) = Max_tab_E
-C dimension of interpolation table for pomeron cut distribution
- IPAMDL(31) = IEETA1
-C number of cut soft pomerons (restriction by field dimension)
- IPAMDL(32) = IIMAX
-C number of cut hard pomerons (restriction by field dimension)
- IPAMDL(33) = KKMAX
-C tau pair production in direct photon-photon collisions
- IPAMDL(64) = 0
-C currently chosen scales for hard scattering
-C ATTENTION: IPAMDL(65-80) reserved for hard scattering!
- DO 15 I=1,16
- IPAMDL(64+I) = -99999
- 15 CONTINUE
-C scales to calculate alpha-s of matrix element
- IPAMDL(81) = 1
- IPAMDL(82) = 1
- IPAMDL(83) = 1
-C scales to calculate alpha-s of initial state radiation
- IPAMDL(84) = 1
- IPAMDL(85) = 1
- IPAMDL(86) = 1
-C scales to calculate alpha-s of final state radiation
- IPAMDL(87) = 1
- IPAMDL(88) = 1
- IPAMDL(89) = 1
-C scales to calculate PDFs
- IPAMDL(90) = 1
- IPAMDL(91) = 1
- IPAMDL(92) = 1
-C where to get the parameter sets from
- IPAMDL(99) = 1
-C program PHO_ABORT for fatal errors (simulation of division by zero)
- IPAMDL(100) = 0
-C initial state parton showers for all / hardest interaction(s)
- IPAMDL(101) = 1
-C final state parton showers for all / hardest interaction(s)
- IPAMDL(102) = 1
-C initial virtuality for ISR generation
- IPAMDL(109) = 1
-C qqbar-gamma coupling in initial state showers
- IPAMDL(110) = 1
-C generation of time-like showers during ISR
- IPAMDL(111) = 1
-C reweighting of multiple soft contributions for virtual photons
- IPAMDL(114) = 1
-C reweighting / use photon virtuality in photon PDF calculations
- IPAMDL(115) = 0
-C use full QPM model incl. interference terms (direct part in gam-gam)
- IPAMDL(116) = 0
-C matching sigma_tot to F2 as given by parton density at high Q2
- IPAMDL(117) = 1
-C use virtuality of target in F2 calculations (two-gamma only)
- IPAMDL(118) = 1
-C calculation of alpha_em
- IPAMDL(120) = 1
-C strict pt cutoff for gamma-gamma events
- IPAMDL(121) = 0
-C photon virtuality sampled in photon flux approximations
- IPAMDL(174) = 1
-C photon-pomeron: 0,1,2: both,left,right photon emission
- IPAMDL(175) = 0
-C keep full history information in PHOJET-JETSET interface
- IPAMDL(178) = 1
-C max. number of conservation law violations allowed in one run
- IPAMDL(179) = 20
-C selection of soft X values
-C max. iteration number in PHO_SELSXS
- IPAMDL(180) = 50
-C max. iteration number in PHO_SELSXR
- IPAMDL(181) = 200
-C max. iteration number in PHO_SELSX2
- IPAMDL(182) = 100
-C max. iteration number in PHO_SELSXI
- IPAMDL(183) = 50
-
-C initialize /PROBAB/
- IEEMAX = IEETA1
- IMAX = IIMAX
- KMAX = KKMAX
-
- DO 20 I=1,30
- PARMDL(300+I) = -100000.D0
- 20 CONTINUE
-C initialize /POHDRN/
- QMASS(1) = PARMDL(151)
- QMASS(2) = PARMDL(152)
- QMASS(3) = PARMDL(153)
- QMASS(4) = PARMDL(154)
- QMASS(5) = PARMDL(155)
- QMASS(6) = PARMDL(156)
- BET = 8.D0
- PCOUDI = 0.D0
- VALPRG(1) = 1.D0
- VALPRG(2) = 1.D0
-C number of light flavours (quarks treated as massless)
- NFS = 4
-C initialize /POCUT1/
- PTCUT(1) = PARMDL(36)
- PTCUT(2) = PARMDL(37)
- PTCUT(3) = PARMDL(38)
- PTCUT(4) = PARMDL(39)
- PSOMIN = 0.D0
- XSOMIN = 0.D0
-C initialize /POHAPA/
- NFbeta = 4
- NF = 4
- BQCD(1) = PI4/(11.D0-(2.D0/3.D0)*3)
- BQCD(2) = PI4/(11.D0-(2.D0/3.D0)*4)
- BQCD(3) = PI4/(11.D0-(2.D0/3.D0)*5)
- BQCD(4) = PI4/(11.D0-(2.D0/3.D0)*6)
-C initialize /POGAUP/
- NGAUP1 = 12
- NGAUP2 = 12
- NGAUET = 16
- NGAUIN = 12
- NGAUSO = 96
-C initialize //
- DO 30 I=1,100
- IDEB(I) = 0
- 30 CONTINUE
-C initialize /PROCES/
- DO 35 I=1,11
- IPRON(I,1) = 1
- 35 CONTINUE
-
-C DPMJET default: no elastic scattering
- IPRON(2,1) = 0
-
- DO 36 K=2,4
- DO 37 I=2,11
- IPRON(I,K) = 0
- 37 CONTINUE
- IPRON(1,K) = 1
- IPRON(8,K) = 1
- 36 CONTINUE
-C initialize /POSVDM/
- TWOPIM = 0.28D0
- RMIN(1) = 0.285D0
- RMIN(2) = 0.45D0
- RMIN(3) = 1.D0
- RMIN(4) = TWOPIM
- VMAS(1) = 0.770D0
- VMAS(2) = 0.787D0
- VMAS(3) = 1.02D0
- VMAS(4) = TWOPIM
- GAMM(1) = 0.155D0
- GAMM(2) = 0.01D0
- GAMM(3) = 0.0045D0
- GAMM(4) = 1.D0
- RMAX(1) = VMAS(1)+TWOPIM
- RMAX(2) = VMAS(2)+TWOPIM
- RMAX(3) = VMAS(3)+TWOPIM
- RMAX(4) = VMAS(1)+TWOPIM
- VMSL(1) = 11.D0
- VMSL(2) = 10.D0
- VMSL(3) = 6.D0
- VMSL(4) = 4.D0
- VMFA(1) = 0.0033D0
- VMFA(2) = 0.00036D0
- VMFA(3) = 0.0002D0
- VMFA(4) = 0.0002D0
-C initialize /PODGL1/
- Q2MISR(1) = PARMDL(36)**2
- Q2MISR(2) = PARMDL(36)**2
- PMISR(1) = 1.D0
- PMISR(2) = 1.D0
- ZMISR(1) = 0.001D0
- ZMISR(2) = 0.001D0
- AL2ISR(1) = 0.046D0
- AL2ISR(2) = 0.046D0
- NFSISR = 4
-C initialize /POPISR/
- DO 40 I=1,50
- IPOISR(1,2,I) = 0
- IPOISR(2,2,I) = 0
- 40 CONTINUE
-C initialize /POHPRO/
- PROC(0) = 'sum over processes'
- PROC(1) = 'G +G --> G +G '
- PROC(2) = 'Q +QB --> G +G '
- PROC(3) = 'G +Q --> G +Q '
- PROC(4) = 'G +G --> Q +QB '
- PROC(5) = 'Q +QB --> Q +QB '
- PROC(6) = 'Q +QB --> QP +QBP'
- PROC(7) = 'Q +Q --> Q +Q '
- PROC(8) = 'Q +QP --> Q +QP '
- PROC(9) = 'resolved processes'
- PROC(10) = 'gam+Q --> G +Q '
- PROC(11) = 'gam+G --> Q +QB '
- PROC(12) = 'Q +gam--> G +Q '
- PROC(13) = 'G +gam--> Q +QB '
- PROC(14) = 'gam+gam--> Q +QB '
- PROC(15) = 'direct processes '
- PROC(16) = 'gam+gam--> l+ +l- '
-
-C initialize /POHRCS/
- do M=1,Max_pro_2
- HWgx(M) = 0.D0
- HSig(M) = 0.D0
- Hdpt(M) = 0.D0
- enddo
- DO I=0,4
- DO M=-1,Max_pro_2
-C switch all hard subprocesses on
- MH_pro_on(M,I) = 1
-C reset all counters
- MH_tried(M,I) = 0
- MH_acc_1(M,I) = 0
- MH_acc_2(M,I) = 0
- ENDDO
- MH_pro_on(16,I) = 0
- ENDDO
-
-C initialize /POHTAB/
- do I=0,4
- IH_Ecm_up(I) = 0
- IH_Q2a_up(I) = 0
- IH_Q2b_up(I) = 0
- HEcm_tab(1,I) = 0.D0
- enddo
- HEcm_last = 0.D0
- IHa_last = 0.D0
- IHb_last = 0.D0
-
-C initialize /POFSRC/
- IGHEL(1) = -1
- IGHEL(2) = -1
-C initialize /LEPCUT/
- ECMIN = 5.D0
- ECMAX = 1.D+30
- EEMIN1 = 1.D0
- EEMIN2 = 1.D0
- YMAX1 = -1.D0
- YMAX2 = -1.D0
- THMIN1 = 0.D0
- THMAX1 = PI
- THMIN2 = 0.D0
- THMAX2 = PI
- ITAG1 = 1
- ITAG2 = 1
-C initialize /POWGHT/
- DO 70 I=1,20
- HSWCUT(I) = 0.D0
- ISWCUT(I) = 0
- 70 CONTINUE
- EVWGHT(1) = 1.D0
- IVWGHT(1) = 0
- SIGGEN(1) = 0.D0
- SIGGEN(2) = 0.D0
- SIGGEN(3) = 0.D0
- SIGGEN(4) = 0.D0
-
- END
-
-CDECK ID>, PHO_PARDAT
- SUBROUTINE PHO_PARDAT
-C***********************************************************************
-C
-C particle data (based on 1996 PDG naming scheme and data tables)
-C
-C***********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C particle ID translation table
- integer ID_pdg_list,ID_list,ID_pdg_max
- character*12 name_list
- COMMON /POPAR1/ ID_pdg_list(300),ID_list(577),name_list(300),
- & ID_pdg_max
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-C particle decay data
- double precision wg_sec_list
- integer idec_list,isec_list
- COMMON /POPAR3/ wg_sec_list(500),idec_list(3,300),
- & isec_list(3,500)
-
-C external functions
-
- integer ipho_pdg2id
- double precision pho_pmass
-
-C local variables for storing data tables
-
- integer number,ich3,iba3,iq_linear,idec_linear,isec_linear,
- & id_psm_linear,id_vem_linear,id_b8_linear,id_b10_linear
-
- dimension number(300),ich3(300),iba3(300),iq_linear(900),
- & idec_linear(900),isec_linear(900),id_psm_linear(36),
- & id_vem_linear(36),id_b8_linear(216),id_b10_linear(216)
-
- double precision xmass,gamma,wg_chan
- dimension xmass(300),gamma(300),wg_chan(300)
-
- character*12 name
- dimension name(300)
-
- integer i,i1,i2,ii,j,jj,k,l,ichan,i_tab_max,K8,K10,L8,L10
- double precision AM1,AM2,AM2P,AM2V,AM82,AM102,AMM
-
- integer itmp
-
- DATA i_tab_max /260/
-
- DATA (number(K),K= 1, 171) /
- & 1, 2, 3, 4, 5, 6, 1103, 2101, 2103,
- & 2203, 3101, 3103, 3201, 3203, 3303, 4101, 4103, 4201,
- & 4203, 4301, 4303, 4403, 81, 82, 90, 91, 92,
- & 110, 990, 21, 22, 24, 23, 11, 13, 15,
- & 12, 14, 16, 211, 111, 221, 113, 213, 223,
- & 331, 10221, 10111, 10211, 333, 10223, 10113, 10213, 20113,
- & 20213, 225, 20223, 20221, 20111, 20211, 115, 215, 30223,
- & 50223, 40113, 40213, 50221, 335, 60223, 227, 10115, 10215,
- & 10333, 117, 217, 30113, 30213, 60221, 337, 20225, 229,
- & 30225, 40225, 321, 311, 310, 130, 323, 313, 10313,
- & 10323, 20313, 20323, 30313, 30323, 10311, 10321, 325, 315,
- & 40313, 40323, 10315, 10325, 317, 327, 20315, 20325, 319,
- & 329, 411, 421, 423, 413, 10423, 425, 415, 431,
- & 433, 10433, 521, 511, 513, 523, 531, 441, 443,
- & 10441, 10443, 445, 20443, 30443, 40443, 50443, 60443, 553,
- & 551, 10553, 555, 20553, 10551, 70553, 10555, 30553, 40553,
- & 50553, 60553, 2212, 2112, 12112, 12212, 1214, 2124, 22112,
- & 22212, 32112, 32212, 2116, 2216, 12116, 12216, 21214, 22124,
- & 42112, 42212, 31214, 32124, 1218, 2128, 1114, 2114, 2214/
- DATA (number(K),K= 172, 260) /
- & 2224, 31114, 32114, 32214, 32224, 1112, 1212, 2122, 2222,
- & 11114, 12114, 12214, 12224, 1116, 1216, 2126, 2226, 21112,
- & 21212, 22122, 22222, 21114, 22114, 22214, 22224, 11116, 11216,
- & 12126, 12226, 1118, 2118, 2218, 2228, 3122, 13122, 3124,
- & 23122, 33122, 13124, 43122, 53122, 3126, 13126, 23124, 3128,
- & 23126, 3222, 3212, 3112, 3224, 3214, 3114, 13112, 13212,
- & 13222, 13114, 13214, 13224, 23112, 23212, 23222, 3116, 3216,
- & 3226, 13116, 13216, 13226, 23114, 23214, 23224, 3118, 3218,
- & 3228, 3322, 3312, 3324, 3314, 13314, 13324, 3334, 4122,
- & 14122, 4222, 4212, 4112, 4232, 4132, 4332, 5122/
- DATA (name(K),K= 1, 76) /
- &'d ','u ','s ','c ',
- &'b ','t ','(dd)_1 ','(ud)_0 ',
- &'(ud)_1 ','(uu)_1 ','(sd)_0 ','(sd)_1 ',
- &'(su)_0 ','(su)_1 ','(ss)_1 ','(cd)_0 ',
- &'(cd)_1 ','(cu)_0 ','(cu)_1 ','(cs)_0 ',
- &'(cs)_1 ','(cc)_1 ','remnant 1 ','remnant 2 ',
- &'string ','mod. string ','coll. string','reggeon ',
- &'pomeron ','gluon ','gamma ','W ',
- &'Z ','e ','mu ','tau ',
- &'nu(e) ','nu(mu) ','nu(tau) ','pi ',
- &'pi ','eta ','rho(770) ','rho(770) ',
- &'ome(782) ','etap(958) ','f(0)(980) ','a(0)(980) ',
- &'a(0)(980) ','phi(1020) ','h(1)(1170) ','b(1)(1235) ',
- &'b(1)(1235) ','a(1)(1260) ','a(1)(1260) ','f(2)(1270) ',
- &'f(1)(1285) ','eta(1295) ','pi(1300) ','pi(1300) ',
- &'a(2)(1320) ','a(2)(1320) ','f(1)(1420) ','ome(1420) ',
- &'rho(1450) ','rho(1450) ','f(0)(1500) ','f(2)p(1525) ',
- &'ome(1600) ','ome(3)(1670)','pi(2)(1670) ','pi(2)(1670) ',
- &'phi(1680) ','rho(3)(1690)','rho(3)(1690)','rho(1700) '/
- DATA (name(K),K= 77, 152) /
- &'rho(1700) ','f(J)(1710) ','phi(3)(1850)','f(2)(2010) ',
- &'f(4)(2050) ','f(2)(2300) ','f(2)(2340) ','K ',
- &'K ','K(S) ','K(L) ','K*(892) ',
- &'K*(892) ','K(1)(1270) ','K(1)(1270) ','K(1)(1400) ',
- &'K(1)(1400) ','K*(1410) ','K*(1410) ','K(0)*(1430) ',
- &'K(0)*(1430) ','K(2)*(1430) ','K(2)*(1430) ','K*(1680) ',
- &'K*(1680) ','K(2)(1770) ','K(2)(1770) ','K(3)*(1780) ',
- &'K(3)*(1780) ','K(2)(1820) ','K(2)(1820) ','K(4)*(2045) ',
- &'K(4)*(2045) ','D ','D ','D*(2007) ',
- &'D*(2010) ','D(1)(2420) ','D(2)*(2460) ','D(2)*(2460) ',
- &'D(s) ','D(s)* ','D(s1)(2536) ','B ',
- &'B ','B* ','B* ','B(s) ',
- &'eta(c)(1S) ','J/psi(1S) ','chi(c0)(1P) ','chi(c1)(1P) ',
- &'chi(c2)(1P) ','psi(2S) ','psi(3770) ','psi(4040) ',
- &'psi(4160) ','psi(4415) ','Ups(1S) ','chi(b0)(1P) ',
- &'chi(b1)(1P) ','chi(b2)(1P) ','Ups(2S) ','chi(b0)(2P) ',
- &'chi(b1)(2P) ','chi(b2)(2P) ','Ups(3S) ','Ups(4S) ',
- &'Ups(10860) ','Ups(11020) ','p ','n ',
- &'N(1440) ','N(1440) ','N(1520) ','N(1520) '/
- DATA (name(K),K= 153, 228) /
- &'N(1535) ','N(1535) ','N(1650) ','N(1650) ',
- &'N(1675) ','N(1675) ','N(1680) ','N(1680) ',
- &'N(1700) ','N(1700) ','N(1710) ','N(1710) ',
- &'N(1720) ','N(1720) ','N(2190) ','N(2190) ',
- &'Del(1232) ','Del(1232) ','Del(1232) ','Del(1232) ',
- &'Del(1600) ','Del(1600) ','Del(1600) ','Del(1600) ',
- &'Del(1620) ','Del(1620) ','Del(1620) ','Del(1620) ',
- &'Del(1700) ','Del(1700) ','Del(1700) ','Del(1700) ',
- &'Del(1905) ','Del(1905) ','Del(1905) ','Del(1905) ',
- &'Del(1910) ','Del(1910) ','Del(1910) ','Del(1910) ',
- &'Del(1920) ','Del(1920) ','Del(1920) ','Del(1920) ',
- &'Del(1930) ','Del(1930) ','Del(1930) ','Del(1930) ',
- &'Del(1950) ','Del(1950) ','Del(1950) ','Del(1950) ',
- &'Lambda ','Lam(1405) ','Lam(1520) ','Lam(1600) ',
- &'Lam(1670) ','Lam(1690) ','Lam(1800) ','Lam(1810) ',
- &'Lam(1820) ','Lam(1830) ','Lam(1890) ','Lam(2100) ',
- &'Lam(2110) ','Sigma ','Sigma ','Sigma ',
- &'Sig(1385) ','Sig(1385) ','Sig(1385) ','Sig(1660) ',
- &'Sig(1660) ','Sig(1660) ','Sig(1670) ','Sig(1670) '/
- DATA (name(K),K= 229, 260) /
- &'Sig(1670) ','Sig(1750) ','Sig(1750) ','Sig(1750) ',
- &'Sig(1775) ','Sig(1775) ','Sig(1775) ','Sig(1915) ',
- &'Sig(1915) ','Sig(1915) ','Sig(1940) ','Sig(1940) ',
- &'Sig(1940) ','Sig(2030) ','Sig(2030) ','Sig(2030) ',
- &'Xi ','Xi ','Xi(1530) ','Xi(1530) ',
- &'Xi(1820) ','Xi(1820) ','Omega ','Lam(c) ',
- &'Lam(c)(2593)','Sig(c)(2455)','Sig(c)(2455)','Sig(c)(2455)',
- &'Xi(c) ','Xi(c) ','Ome(c) ','Lam(b) '/
- DATA (ich3(K),K= 1, 260) /
- &-1, 2,-1, 2,-1, 2,-2, 1, 1, 4,-2,-2, 1, 1,-2, 1, 1, 4, 4, 1, 1, 4,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0,-3,-3,-3, 0, 0, 0, 3, 0, 0, 0, 3,
- & 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 3,
- & 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3,
- & 0, 0, 3, 0, 3, 0, 3, 0, 3, 3, 0, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 3,
- & 0, 0, 3, 0, 0, 3, 3, 3, 3, 3, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 3, 0, 3,
- & 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3,-3, 0, 3, 6,-3, 0, 3, 6,
- &-3, 0, 3, 6,-3, 0, 3, 6,-3, 0, 3, 6,-3, 0, 3, 6,-3, 0, 3, 6,-3, 0,
- & 3, 6,-3, 0, 3, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0,-3,
- & 3, 0,-3,-3, 0, 3,-3, 0, 3,-3, 0, 3,-3, 0, 3,-3, 0, 3,-3, 0, 3,-3,
- & 0, 3, 0,-3, 0,-3,-3, 0,-3, 3, 3, 6, 3, 0, 3, 0, 0, 0/
- DATA (iba3(K),K= 1, 260) /
- &1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,
- &0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- &0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- &0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- &0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- &3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- &3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- &3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3/
- DATA (iq_linear(K),K= 1, 418) /
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 2,
- & 1, 0, 2, 1, 0, 2, 2, 0, 3, 1, 0, 3, 1, 0, 3, 2, 0, 3, 2, 0, 3, 3,
- & 0, 4, 1, 0, 4, 1, 0, 4, 2, 0, 4, 2, 0, 4, 3, 0, 4, 3, 0, 4, 4, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 2,-1, 0, 1,-1, 0, 2,-2, 0, 1,-1, 0, 2,-1, 0,
- & 2,-2, 0, 3,-3, 0, 2,-2, 0, 1,-1, 0, 2,-1, 0, 3,-3, 0, 2,-2, 0, 1,
- &-1, 0, 2,-1, 0, 1,-1, 0, 2, 1, 0, 2,-2, 0, 2,-2, 0, 2,-2, 0, 1,-1,
- & 0, 2,-1, 0, 1,-1, 0, 2,-1, 0, 2,-2, 0, 2,-2, 0, 1,-1, 0, 2,-1, 0,
- & 2,-2, 0, 3,-3, 0, 2,-2, 0, 2,-2, 0, 1,-1, 0, 2,-1, 0, 3,-3, 0, 1,
- &-1, 0, 2,-1, 0, 1,-1, 0, 2,-1, 0, 2,-2, 0, 3,-3, 0, 2,-2, 0, 2,-2,
- & 0, 2,-2, 0, 2,-2, 0, 2,-3, 0, 1,-3, 0, 1,-3, 0, 3,-1, 0, 2,-3, 0,
- & 1,-3, 0, 1,-3, 0, 2,-3, 0, 1,-3, 0, 2,-3, 0, 1,-3, 0, 2,-3, 0, 1,
- &-3, 0, 2,-3, 0, 2,-3, 0, 1,-3, 0, 1,-3, 0, 2,-3, 0, 1,-3, 0, 2,-3,
- & 0, 1,-3, 0, 2,-3, 0, 1,-3, 0, 2,-3, 0, 1,-3, 0, 2,-3, 0, 4,-1, 0,
- & 4,-2, 0, 4,-2, 0, 4,-1, 0, 4,-2, 0, 4,-2, 0, 4,-1, 0, 4,-3, 0, 4,
- &-3, 0, 4,-3, 0, 2,-5, 0, 1,-5, 0, 1,-5, 0, 2,-5, 0, 3,-5, 0, 4,-4,
- & 0, 4,-4, 0, 4,-4, 0, 4,-4, 0, 4,-4, 0, 4,-4, 0, 4,-4, 0, 4,-4, 0,
- & 4,-4, 0, 4,-4, 0, 5,-5, 0, 5,-5, 0, 5,-5, 0, 5,-5, 0, 5,-5, 0, 5/
- DATA (iq_linear(K),K= 419, 780) /
- &-5, 0, 5,-5, 0, 5,-5, 0, 5,-5, 0, 5,-5, 0, 5,-5, 0, 5,-5, 0, 2, 2,
- & 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1,
- & 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2,
- & 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1,
- & 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2,
- & 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2,
- & 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1,
- & 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1,
- & 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 3, 1, 2, 3,
- & 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1,
- & 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 2, 2, 3, 2, 1, 3, 1, 1, 3,
- & 3, 2, 2, 3, 2, 1, 3, 1, 1, 3, 1, 1, 3, 2, 1, 3, 2, 2, 3, 1, 1, 3,
- & 2, 1, 3, 2, 2, 3, 1, 1, 3, 2, 1, 3, 2, 2, 3, 1, 1, 3, 2, 1, 3, 2,
- & 2, 3, 1, 1, 3, 2, 1, 3, 2, 2, 3, 1, 1, 3, 2, 1, 3, 2, 2, 3, 1, 1,
- & 3, 2, 1, 3, 2, 2, 2, 3, 3, 1, 3, 3, 2, 3, 3, 1, 3, 3, 3, 3, 1, 3,
- & 3, 2, 3, 3, 3, 2, 1, 4, 4, 1, 2, 2, 2, 4, 2, 1, 2, 1, 1, 4, 3, 2,
- & 2, 3, 1, 2, 3, 3, 4, 5, 1, 2/
- DATA (xmass(K),K= 1, 114) /
- &3.0000E-01,3.0000E-01,3.5000E-01,1.4500E+00,4.5000E+00,1.7400E+02,
- &7.7133E-01,5.7933E-01,7.7133E-01,7.7133E-01,8.0473E-01,9.2953E-01,
- &8.0473E-01,9.2953E-01,1.0936E+00,1.9691E+00,2.0081E+00,1.9691E+00,
- &2.0081E+00,2.1543E+00,2.1797E+00,3.2753E+00,0.0000E+00,0.0000E+00,
- &0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,
- &0.0000E+00,8.0410E+01,9.1187E+01,5.1100E-04,1.0566E-01,1.7771E+00,
- &0.0000E+00,0.0000E+00,0.0000E+00,1.3957E-01,1.3498E-01,5.4730E-01,
- &7.7000E-01,7.7000E-01,7.8194E-01,9.5778E-01,9.8000E-01,9.8340E-01,
- &9.8340E-01,1.0194E+00,1.1700E+00,1.2295E+00,1.2295E+00,1.2300E+00,
- &1.2300E+00,1.2750E+00,1.2819E+00,1.2970E+00,1.3000E+00,1.3000E+00,
- &1.3181E+00,1.3181E+00,1.4262E+00,1.4190E+00,1.4650E+00,1.4650E+00,
- &1.5000E+00,1.5250E+00,1.6490E+00,1.6670E+00,1.6700E+00,1.6700E+00,
- &1.6800E+00,1.6910E+00,1.6910E+00,1.7000E+00,1.7000E+00,1.7120E+00,
- &1.8540E+00,2.0100E+00,2.0440E+00,2.2970E+00,2.3400E+00,4.9368E-01,
- &4.9767E-01,4.9767E-01,4.9767E-01,8.9166E-01,8.9610E-01,1.2720E+00,
- &1.2720E+00,1.4020E+00,1.4020E+00,1.4140E+00,1.4140E+00,1.4290E+00,
- &1.4290E+00,1.4256E+00,1.4324E+00,1.7170E+00,1.7170E+00,1.7730E+00,
- &1.7730E+00,1.7760E+00,1.7760E+00,1.8160E+00,1.8160E+00,2.0450E+00,
- &2.0450E+00,1.8693E+00,1.8646E+00,2.0067E+00,2.0100E+00,2.4222E+00/
- DATA (xmass(K),K= 115, 228) /
- &2.4589E+00,2.4590E+00,1.9685E+00,2.1124E+00,2.5353E+00,5.2789E+00,
- &5.2792E+00,5.3249E+00,5.3249E+00,5.3693E+00,2.9798E+00,3.0969E+00,
- &3.4173E+00,3.5105E+00,3.5562E+00,3.6860E+00,3.7699E+00,4.0400E+00,
- &4.1590E+00,4.4150E+00,9.4604E+00,9.8598E+00,9.8919E+00,9.9132E+00,
- &1.0023E+01,1.0232E+01,1.0255E+01,1.0268E+01,1.0355E+01,1.0580E+01,
- &1.0865E+01,1.1019E+01,9.3827E-01,9.3957E-01,1.4400E+00,1.4400E+00,
- &1.5200E+00,1.5200E+00,1.5350E+00,1.5350E+00,1.6500E+00,1.6500E+00,
- &1.6750E+00,1.6750E+00,1.6800E+00,1.6800E+00,1.7000E+00,1.7000E+00,
- &1.7100E+00,1.7100E+00,1.7200E+00,1.7200E+00,2.1900E+00,2.1900E+00,
- &1.2320E+00,1.2320E+00,1.2320E+00,1.2320E+00,1.6000E+00,1.6000E+00,
- &1.6000E+00,1.6000E+00,1.6200E+00,1.6200E+00,1.6200E+00,1.6200E+00,
- &1.7000E+00,1.7000E+00,1.7000E+00,1.7000E+00,1.9050E+00,1.9050E+00,
- &1.9050E+00,1.9050E+00,1.9100E+00,1.9100E+00,1.9100E+00,1.9100E+00,
- &1.9200E+00,1.9200E+00,1.9200E+00,1.9200E+00,1.9300E+00,1.9300E+00,
- &1.9300E+00,1.9300E+00,1.9500E+00,1.9500E+00,1.9500E+00,1.9500E+00,
- &1.1157E+00,1.4070E+00,1.5195E+00,1.6000E+00,1.6700E+00,1.6900E+00,
- &1.8000E+00,1.8100E+00,1.8200E+00,1.8300E+00,1.8900E+00,2.1000E+00,
- &2.1100E+00,1.1894E+00,1.1926E+00,1.1974E+00,1.3828E+00,1.3837E+00,
- &1.3872E+00,1.6600E+00,1.6600E+00,1.6600E+00,1.6700E+00,1.6700E+00/
- DATA (xmass(K),K= 229, 260) /
- &1.6700E+00,1.7500E+00,1.7500E+00,1.7500E+00,1.7750E+00,1.7750E+00,
- &1.7750E+00,1.9150E+00,1.9150E+00,1.9150E+00,1.9400E+00,1.9400E+00,
- &1.9400E+00,2.0300E+00,2.0300E+00,2.0300E+00,1.3149E+00,1.3213E+00,
- &1.5318E+00,1.5350E+00,1.8230E+00,1.8230E+00,1.6724E+00,2.2849E+00,
- &2.5939E+00,2.4528E+00,2.4536E+00,2.4522E+00,2.4656E+00,2.4703E+00,
- &2.7040E+00,5.6240E+00/
- DATA (gamma(K),K= 1, 114) /
- &8.0000E-01,8.0000E-01,8.0000E-01,8.0000E-01,8.0000E-01,8.0000E-01,
- &8.0000E-01,8.0000E-01,8.0000E-01,8.0000E-01,8.0000E-01,8.0000E-01,
- &8.0000E-01,8.0000E-01,8.0000E-01,0.0000E+00,0.0000E+00,0.0000E+00,
- &0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,
- &0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,
- &0.0000E+00,2.0600E+00,2.4900E+00,0.0000E+00,2.9959E-19,2.2700E-12,
- &0.0000E+00,0.0000E+00,0.0000E+00,2.5284E-17,7.8000E-09,1.1800E-06,
- &1.5070E-01,1.5070E-01,8.4100E-03,2.0300E-04,0.0000E+00,0.0000E+00,
- &0.0000E+00,4.4300E-03,3.6000E-01,1.4200E-01,1.4200E-01,0.0000E+00,
- &0.0000E+00,1.8550E-01,2.4000E-02,5.3000E-02,0.0000E+00,0.0000E+00,
- &1.0700E-01,1.0700E-01,5.5000E-02,1.7000E-01,3.1000E-01,3.1000E-01,
- &1.1200E-01,7.6000E-02,2.2000E-01,1.6800E-01,2.5800E-01,2.5800E-01,
- &1.5000E-01,1.6000E-01,1.6000E-01,2.4000E-01,2.4000E-01,1.3300E-01,
- &8.7000E-02,2.0000E-01,2.0800E-01,1.5000E-01,3.2000E-01,5.3140E-17,
- &0.0000E+00,7.3730E-15,1.2730E-17,5.0800E-02,5.0500E-02,9.0000E-02,
- &9.0000E-02,1.7400E-01,1.7400E-01,2.3200E-01,2.3200E-01,2.8700E-01,
- &2.8700E-01,9.8500E-02,1.0900E-01,3.2000E-01,3.2000E-01,1.8600E-01,
- &1.8600E-01,1.5900E-01,1.5900E-01,2.7600E-01,2.7600E-01,1.9800E-01,
- &1.9800E-01,6.2300E-13,1.5860E-12,5.0000E-03,2.0000E-03,1.8900E-02/
- DATA (gamma(K),K= 115, 228) /
- &2.3000E-02,2.5000E-02,1.4100E-12,2.0000E-03,0.0000E+00,3.9900E-13,
- &4.2200E-13,0.0000E+00,0.0000E+00,4.2700E-13,1.3200E-02,8.7000E-05,
- &1.4000E-02,8.8000E-04,2.0000E-03,2.7700E-04,2.3600E-02,5.2000E-02,
- &7.8000E-02,4.3000E-02,5.2500E-05,0.0000E+00,0.0000E+00,0.0000E+00,
- &4.4000E-05,0.0000E+00,0.0000E+00,0.0000E+00,2.6300E-05,1.0000E-02,
- &1.1000E-01,7.9000E-02,0.0000E+00,7.4240E-28,3.5000E-01,3.5000E-01,
- &1.2000E-01,1.2000E-01,1.5000E-01,1.5000E-01,1.5000E-01,1.5000E-01,
- &1.5000E-01,1.5000E-01,1.3000E-01,1.3000E-01,1.0000E-01,1.0000E-01,
- &1.0000E-01,1.0000E-01,1.5000E-01,1.5000E-01,4.5000E-01,4.5000E-01,
- &1.2000E-01,1.2000E-01,1.2000E-01,1.2000E-01,3.5000E-01,3.5000E-01,
- &3.5000E-01,3.5000E-01,1.5000E-01,1.5000E-01,1.5000E-01,1.5000E-01,
- &3.0000E-01,3.0000E-01,3.0000E-01,3.0000E-01,3.5000E-01,3.5000E-01,
- &3.5000E-01,3.5000E-01,2.5000E-01,2.5000E-01,2.5000E-01,2.5000E-01,
- &2.0000E-01,2.0000E-01,2.0000E-01,2.0000E-01,3.5000E-01,3.5000E-01,
- &3.5000E-01,3.5000E-01,3.0000E-01,3.0000E-01,3.0000E-01,3.0000E-01,
- &2.5010E-15,5.0000E-02,1.5600E-02,1.5000E-01,3.5000E-02,6.0000E-02,
- &3.0000E-01,1.5000E-01,8.0000E-02,9.5000E-02,1.0000E-01,2.0000E-01,
- &2.0000E-01,8.2400E-15,8.9000E-06,4.4500E-15,3.5800E-02,3.6000E-02,
- &3.9400E-02,1.0000E-01,1.0000E-01,1.0000E-01,6.0000E-02,6.0000E-02/
- DATA (gamma(K),K= 229, 260) /
- &6.0000E-02,9.0000E-02,9.0000E-02,9.0000E-02,1.2000E-01,1.2000E-01,
- &1.2000E-01,1.2000E-01,1.2000E-01,1.2000E-01,2.2000E-01,2.2000E-01,
- &2.2000E-01,1.8000E-01,1.8000E-01,1.8000E-01,2.2700E-15,4.0200E-15,
- &9.1000E-03,9.9000E-03,2.4000E-02,2.4000E-02,8.0100E-15,3.1900E-12,
- &3.6000E-03,0.0000E+00,0.0000E+00,0.0000E+00,1.8600E-12,6.7000E-12,
- &1.0200E-11,5.3100E-13/
- DATA (idec_linear(K),K= 1, 304) /
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 3, 1, 1, 2, 2, 6, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 3, 7, 7, 3, 8, 9, 1, 10, 14, 1, 15,
- & 16, 1, 17, 17, 1, 18, 20, 1, 21, 24, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 1, 25, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 30, 32,
- & 1, 33, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 35, 37, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 1, 38, 39, 0, 0, 0, 0, 0,
- & 0, 1, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 41, 46, 0, 0, 0, 3,
- & 47, 48, 3, 49, 52, 1, 53, 54, 1, 55, 56, 1, 57, 58, 1, 59,
- & 60, 0, 0, 0, 0, 0, 0, 1, 61, 68, 1, 69, 76, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0/
- DATA (idec_linear(K),K= 305, 608) /
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 2, 77, 78, 2, 79, 82, 1, 83, 84,
- & 1, 85, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 88, 90, 1,
- & 91, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 2, 93, 95, 1, 96, 98, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 1, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,102,102, 1,103,112, 1,
- &113,122, 0, 0, 0, 0, 0, 0, 1,123,129, 1,130,136, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 1,137,144, 1,145,152, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 1,153,153, 1,154,155, 1,156,
- &157, 1,158,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,159,162, 1,
- &163,169, 1,170,176, 1,177,180, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0/
- DATA (idec_linear(K),K= 609, 780) /
- & 0, 0, 0, 0, 3,181,182, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,183,184, 3,185,
- &185, 3,186,186, 1,187,189, 1,190,192, 1,193,194, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,195,203, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 1,204,216, 0, 0, 0, 3,217,217, 3,
- &218,218, 1,219,220, 1,221,222, 0, 0, 0, 0, 0, 0, 2,223,
- &225, 2,226,239, 0, 0, 0, 2,240,240, 2,241,241, 2,242,242,
- & 2,243,246, 2,247,251, 2,252,255, 0, 0, 0/
- DATA (isec_linear(K),K= 1, 152) /
- & 11, 12, -12, 13, -14, 16, 11, -12,
- & 16, -213, 16, 0, -211, 16, 0, -323,
- & 16, 0, -13, 12, 0, 22, 22, 0,
- & 22, -11, 11, 22, 22, 0, 111, 22,
- & 22, 111, 111, 111, 211, -211, 111, 211,
- & -211, 22, 211, -211, 0, 111, 111, 0,
- & 211, 111, 0, 211, -211, 111, 211, -211,
- & 0, 111, 22, 0, 221, 211, -211, 221,
- & 111, 111, 211, -211, 22, 22, 22, 0,
- & 321, -321, 0, 130, 310, 0, 113, 111,
- & 0, 211, -211, 111, 221, 22, 0, 113,
- & 111, 0, -213, 211, 0, 213, -211, 0,
- & 211, -211, 0, 111, 111, 0, 113, 111,
- & 0, -213, 211, 0, 213, -211, 0, 311,
- & -313, 0, -311, 313, 0, 113, 211, -211,
- & -13, 12, 0, 211, 111, 0, 211, 211,
- & -211, 211, 111, 111, -13, 111, 12, -11,
- & 111, 12, 211, -211, 0, 111, 111, 0,
- & 111, 111, 111, 211, -211, 111, 211, 13/
- DATA (isec_linear(K),K= 153, 304) /
- & 12, 211, 11, 12, 321, 111, 0, 311,
- & 211, 0, 311, 111, 0, 321, -211, 0,
- & 311, 111, 0, 321, -211, 0, 321, 111,
- & 0, 311, 211, 0, 311, 111, 0, 321,
- & -211, 0, 313, 111, 0, 323, -211, 0,
- & 311, 113, 0, 321, -213, 0, 311, 223,
- & 0, 311, 221, 0, 321, 111, 0, 311,
- & 211, 0, 323, 111, 0, 313, 211, 0,
- & 321, 113, 0, 311, 213, 0, 321, 223,
- & 0, 321, 221, 0, -321, 211, 211, -311,
- & 211, 0, -321, 211, 0, -321, 211, 111,
- & 311, 211, -211, 311, 111, 0, 421, 111,
- & 0, 421, 22, 0, 421, 211, 0, 411,
- & 111, 0, 411, 22, 0, 221, 211, 0,
- & 321, -321, 321, 321, -311, 0, 431, 22,
- & 0, 431, 22, 0, 111, 111, 0, 211,
- & -211, 0, 22, 22, 0, -11, 11, 0,
- & -13, 13, 0, 211, -211, 111, 443, 211,
- & -211, 443, 111, 111, 443, 221, 0, 2212/
- DATA (isec_linear(K),K= 305, 456) /
- & 11, 12, 2112, 111, 0, 2212, -211, 0,
- & 2112, 111, 111, 2112, 211, -211, 1114, 211,
- & 0, 2114, 111, 0, 2214, -211, 0, 2112,
- & 113, 0, 2212, -213, 0, 2112, 221, 0,
- & 2212, 111, 0, 2112, 211, 0, 2212, 111,
- & 111, 2212, 211, -211, 2224, -211, 0, 2214,
- & 111, 0, 2114, 211, 0, 2212, 113, 0,
- & 2112, 213, 0, 2212, 221, 0, 2212, -211,
- & 0, 2112, 111, 0, 2214, -211, 0, 2114,
- & 111, 0, 1114, 211, 0, 2212, -213, 0,
- & 2112, 113, 0, 2212, 111, 0, 2112, 211,
- & 0, 2224, -211, 0, 2214, 111, 0, 2114,
- & 211, 0, 2212, 113, 0, 2112, 213, 0,
- & 2212, -211, 0, 2112, 111, 0, 2212, -213,
- & 0, 2112, 113, 0, 3122, 311, 0, 3212,
- & 311, 0, 3112, 321, 0, 2112, 221, 0,
- & 2212, 111, 0, 2112, 211, 0, 2212, 113,
- & 0, 2112, 213, 0, 3122, 321, 0, 3222,
- & 311, 0, 3212, 321, 0, 2212, 221, 0/
- DATA (isec_linear(K),K= 457, 608) /
- & 2112, -211, 0, 2212, -211, 0, 2112, 111,
- & 0, 2212, 111, 0, 2112, 211, 0, 2212,
- & 211, 0, 2112, -211, 0, 2114, -211, 0,
- & 1114, 111, 0, 2112, -213, 0, 2212, -211,
- & 0, 2112, 111, 0, 2214, -211, 0, 2114,
- & 111, 0, 1114, 211, 0, 2212, -213, 0,
- & 2112, 113, 0, 2212, 111, 0, 2112, 211,
- & 0, 2224, -211, 0, 2214, 111, 0, 2114,
- & 211, 0, 2212, 113, 0, 2112, 213, 0,
- & 2212, 211, 0, 2224, 111, 0, 2214, 211,
- & 0, 2212, 213, 0, 2212, -211, 0, 2112,
- & 111, 0, 2212, 111, 0, 2112, 211, 0,
- & 3122, 22, 0, 2112, -211, 0, 3122, 211,
- & 0, 3212, 211, 0, 3222, 111, 0, 3122,
- & 111, 0, 3222, -211, 0, 3112, 211, 0,
- & 3122, -211, 0, 3212, -211, 0, 2112, -311,
- & 0, 2212, -321, 0, 3222, -211, 0, 3212,
- & 111, 0, 3112, 211, 0, 3122, 221, 0,
- & 3224, -211, 0, 3114, 211, 0, 3214, 111/
- DATA (isec_linear(K),K= 609, 760) /
- & 0, 2112, -311, 0, 2212, -321, 0, 3122,
- & 111, 0, 3122, 223, 0, 3122, 113, 0,
- & 3222, -213, 0, 3112, 213, 0, 3212, 113,
- & 0, 3122, 221, 0, 3212, 221, 0, 3222,
- & -211, 0, 3112, 211, 0, 3212, 111, 0,
- & 3122, 111, 0, 3122, -211, 0, 3322, 111,
- & 0, 3312, 211, 0, 3322, -211, 0, 3312,
- & 111, 0, 3322, -211, 0, 3312, 111, 0,
- & 3122, -321, 0, 3222, 221, 0, 3222, 331,
- & 0, 2212, -311, 0, 3322, 321, 0, 3224,
- & 221, 0, 2214, 331, 0, 2224, -321, 0,
- & 3122, 213, 0, 3212, 213, 0, 3222, 113,
- & 0, 3222, 223, 0, 2212, -313, 0, 2214,
- & -313, 0, 2224, -323, 0, 4122, 211, 0,
- & 4122, 111, 0, 4122, -211, 0, 3222, -311,
- & 0, 3322, 211, 0, 3222, -313, 0, 3322,
- & 213, 0, 3212, -313, 0, 3222, -323, 0,
- & 3322, 223, 0, 3312, 213, 0, 3214, -313,
- & 0, 3322, -311, 0, 3322, 313, 0, 3334/
- DATA (isec_linear(K),K= 761, 765) /
- & 213, 0, 3334, 211, 0/
- DATA (wg_chan(K),K= 1, 114) /
- &1.0000E+00,2.8000E-01,2.8000E-01,3.5000E-01,7.0000E-02,2.0000E-02,
- &1.0000E+00,9.9000E-01,1.0000E-02,3.8000E-01,3.0000E-02,3.0000E-01,
- &2.4000E-01,5.0000E-02,1.0000E+00,0.0000E+00,1.0000E+00,8.8800E-01,
- &2.5000E-02,8.7000E-02,4.8000E-01,2.4000E-01,2.6000E-01,2.0000E-02,
- &4.9100E-01,3.4400E-01,1.2900E-01,2.4000E-02,1.2000E-02,4.0000E-01,
- &3.0000E-01,3.0000E-01,6.0000E-01,4.0000E-01,4.0000E-01,3.0000E-01,
- &3.0000E-01,5.0000E-01,5.0000E-01,1.0000E+00,6.4000E-01,2.1000E-01,
- &6.0000E-02,2.0000E-02,3.0000E-02,4.0000E-02,6.9000E-01,3.1000E-01,
- &2.1000E-01,1.2000E-01,2.7000E-01,4.0000E-01,3.3000E-01,6.7000E-01,
- &3.3000E-01,6.7000E-01,3.3000E-01,6.7000E-01,3.3000E-01,6.7000E-01,
- &1.9000E-01,3.8000E-01,9.0000E-02,2.0000E-01,3.0000E-02,4.0000E-02,
- &5.0000E-02,2.0000E-02,1.9000E-01,3.8000E-01,9.0000E-02,2.0000E-01,
- &3.0000E-02,4.0000E-02,5.0000E-02,2.0000E-02,7.0000E-01,3.0000E-01,
- &1.0000E-01,5.0000E-01,1.6000E-01,2.4000E-01,5.5000E-01,4.5000E-01,
- &6.8000E-01,3.0000E-01,2.0000E-02,3.0000E-01,4.0000E-01,3.0000E-01,
- &9.0000E-01,1.0000E-01,4.9000E-01,4.9000E-01,2.0000E-02,1.0000E-01,
- &1.0000E-01,8.0000E-01,6.0000E-01,3.0000E-01,1.0000E-01,1.0000E+00,
- &1.5000E-01,3.5000E-01,7.0000E-02,1.8000E-01,1.1000E-01,6.0000E-02,
- &3.0000E-02,1.0000E-02,3.0000E-02,1.0000E-02,1.5000E-01,3.5000E-01/
- DATA (wg_chan(K),K= 115, 228) /
- &7.0000E-02,1.8000E-01,1.1000E-01,6.0000E-02,3.0000E-02,1.0000E-02,
- &3.0000E-02,1.0000E-02,3.7000E-01,1.8000E-01,4.0000E-02,8.0000E-02,
- &1.3000E-01,1.3000E-01,7.0000E-02,1.8000E-01,3.7000E-01,1.3000E-01,
- &8.0000E-02,4.0000E-02,7.0000E-02,1.3000E-01,1.3000E-01,7.0000E-02,
- &4.7000E-01,2.3000E-01,5.0000E-02,1.0000E-02,2.0000E-02,2.0000E-02,
- &7.0000E-02,1.3000E-01,2.3000E-01,4.7000E-01,5.0000E-02,2.0000E-02,
- &1.0000E-02,2.0000E-02,1.0000E+00,3.3000E-01,6.7000E-01,6.7000E-01,
- &3.3000E-01,1.0000E+00,2.5000E-01,1.8000E-01,2.7000E-01,3.0000E-01,
- &8.0000E-02,1.7000E-01,2.4000E-01,3.0000E-02,1.8000E-01,1.0000E-01,
- &2.0000E-01,1.7000E-01,8.0000E-02,1.8000E-01,3.0000E-02,2.4000E-01,
- &2.0000E-01,1.0000E-01,2.5000E-01,2.7000E-01,1.8000E-01,3.0000E-01,
- &6.4000E-01,3.6000E-01,5.2000E-01,4.8000E-01,1.0000E+00,1.0000E+00,
- &8.8000E-01,6.0000E-02,6.0000E-02,8.8000E-01,6.0000E-02,6.0000E-02,
- &8.8000E-01,1.2000E-01,1.9000E-01,1.9000E-01,1.6000E-01,1.6000E-01,
- &1.7000E-01,3.0000E-02,3.0000E-02,3.0000E-02,4.0000E-02,1.0000E-01,
- &1.0000E-01,2.0000E-01,1.2000E-01,1.0000E-01,4.0000E-02,4.0000E-02,
- &5.0000E-02,7.5000E-02,7.5000E-02,3.0000E-02,3.0000E-02,4.0000E-02,
- &1.0000E+00,1.0000E+00,3.3000E-01,6.7000E-01,6.7000E-01,3.3000E-01,
- &2.5000E-01,2.5000E-01,5.0000E-01,2.0000E-02,3.0000E-02,7.0000E-02/
- DATA (wg_chan(K),K= 229, 255) /
- &2.0000E-02,2.0000E-02,4.0000E-02,1.3000E-01,7.0000E-02,6.0000E-02,
- &6.0000E-02,2.0000E-01,1.4000E-01,4.0000E-02,1.0000E-01,1.0000E+00,
- &1.0000E+00,1.0000E+00,2.5000E-01,3.0000E-02,3.0000E-01,4.2000E-01,
- &2.2000E-01,3.5000E-01,1.9000E-01,1.6000E-01,8.0000E-02,3.7000E-01,
- &2.0000E-01,3.6000E-01,7.0000E-02/
- DATA (id_psm_linear(K),K= 1, 36) /
- & 111, 211, -311, 411, 0, 0, -211, 111,
- & -321, 421, 0, 0, 311, 321, 221, 431,
- & 0, 0, -411, -421, -431, 441, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0/
- DATA (id_vem_linear(K),K= 1, 36) /
- & 113, 213, -313, 413, 0, 0, -213, 113,
- & -323, 423, 0, 0, 313, 323, 333, 433,
- & 0, 0, -413, -423, -433, 20443, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0/
- DATA (id_b8_linear(K),K= 1, 171) /
- & 1114, 2112, 3112, 4112, 0, 0, 2112, 2212, 3212,
- & 4122, 0, 0, 3112, 3212, 3312, 4132, 0, 0,
- & 4112, 4122, 4132, 4412, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 2112, 2212, 3212, 4122, 0, 0, 2212, 2224, 3222,
- & 4222, 0, 0, 3212, 3222, 3322, 4232, 0, 0,
- & 4122, 4222, 4232, 4422, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 3112, 3212, 3312, 4132, 0, 0, 3212, 3222, 3322,
- & 4232, 0, 0, 3312, 3322, 3334, 4332, 0, 0,
- & 4132, 4232, 4332, 4432, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 4112, 4122, 4132, 4412, 0, 0, 4122, 4222, 4232,
- & 4422, 0, 0, 4132, 4232, 4332, 4432, 0, 0,
- & 4412, 4422, 4432, 4444, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0/
- DATA (id_b8_linear(K),K= 172, 216) /
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0/
- DATA (id_b10_linear(K),K= 1, 171) /
- & 1114, 2114, 3114, 4114, 0, 0, 2114, 2214, 3214,
- & 4214, 0, 0, 3114, 3214, 3314, 4314, 0, 0,
- & 4114, 4214, 4314, 4414, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 2114, 2214, 3214, 4214, 0, 0, 2214, 2224, 3224,
- & 4224, 0, 0, 3214, 3224, 3324, 4324, 0, 0,
- & 4214, 4224, 4324, 4424, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 3114, 3214, 3314, 4314, 0, 0, 3214, 3224, 3324,
- & 4324, 0, 0, 3314, 3324, 3334, 4334, 0, 0,
- & 4314, 4324, 4334, 4434, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 4114, 4214, 4314, 4414, 0, 0, 4214, 4224, 4324,
- & 4424, 0, 0, 4314, 4324, 4334, 4434, 0, 0,
- & 4414, 4424, 4434, 4444, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0/
- DATA (id_b10_linear(K),K= 172, 216) /
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0,
- & 0, 0, 0, 0, 0, 0, 0, 0, 0/
-
- ID_pdg_max = i_tab_max
-
-C copy from local to global variables
- do i=1,i_tab_max
- ID_pdg_list(i) = number(i)
- name_list(i) = name(i)
- xm_list(i) = xmass(i)
- gam_list(i) = gamma(i)
- ich3_list(i) = ich3(i)
- iba3_list(i) = iba3(i)
- do j=1,3
- iq_list(j,i) = iq_linear(3*(i-1)+j)
- idec_list(j,i) = idec_linear(3*(i-1)+j)
- enddo
- enddo
-
-C initialize hash table
- call pho_cpcini(ID_pdg_max,ID_pdg_list,ID_list)
-
- itmp = IDEB(71)
- IDEB(71) = -1
-
-C quark index table for mesons
- do i=1,6
- do j=1,6
- id_psm_list(i,j) = ipho_pdg2id(id_psm_linear(6*(j-1)+i))
- id_vem_list(i,j) = ipho_pdg2id(id_vem_linear(6*(j-1)+i))
- enddo
- enddo
-
-C quark index table for baryons
- do i=1,6
- do j=1,6
- do k=1,6
- id_b8_list(i,j,k) =
- & ipho_pdg2id(id_b8_linear(36*(k-1)+6*(j-1)+i))
- id_b10_list(i,j,k) =
- & ipho_pdg2id(id_b10_linear(36*(k-1)+6*(j-1)+i))
- enddo
- enddo
- enddo
-
- IDEB(71) = itmp
-
-C copy secondary particles
-C (translate PDG-ID to CPC and sort according to CPC)
- ichan = 0
- do i=1,i_tab_max
- if(idec_list(1,i).ne.0) then
- do j=idec_list(2,i),idec_list(3,i)
- ichan = ichan+1
- wg_sec_list(ichan) = wg_chan(j)
- do k=1,3
- if(isec_linear(3*(j-1)+k).ne.0) then
- isec_list(k,ichan) = ipho_pdg2id(isec_linear(3*(j-1)+k))
- else
- isec_list(k,ichan) = 0
- endif
- enddo
- enddo
- endif
- enddo
-
-C add two-pion background (low-mass photon dissociation)
- i = ipho_pdg2id(92)
- ichan = ichan+1
- idec_list(1,i) = 1
- idec_list(2,i) = ichan
- idec_list(3,i) = ichan
- wg_sec_list(ichan) = 1.D0
- isec_list(1,ichan) = ipho_pdg2id(211)
- isec_list(2,ichan) = ipho_pdg2id(-211)
- isec_list(3,ichan) = 0
-
-C min. mass limits for strings: q-qbar
- do i=1,6
- do j=1,6
- AM2P = 1000.D0
- AM2V = 1000.D0
- do k=1,3
-C pseudo-scalar mesons
- i1 = iabs(id_psm_list(i,k))
- if(i1.ne.0) then
- AM1 = xm_list(i1)
- else
- AM1 = pho_pmass(i,3)+pho_pmass(k,3)
- endif
- i2 = iabs(id_psm_list(k,j))
- if(i2.ne.0) then
- AM2 = xm_list(i2)
- else
- AM2 = pho_pmass(k,3)+pho_pmass(j,3)
- endif
- AM2P = MIN(AM2P,AM1+AM2)
-C vector mesons
- i1 = iabs(id_vem_list(i,k))
- if(i1.ne.0) then
- AM1 = xm_list(i1)
- else
- AM1 = pho_pmass(i,3)+pho_pmass(k,3)
- endif
- i2 = iabs(id_vem_list(k,j))
- if(i2.ne.0) then
- AM2 = xm_list(i2)
- else
- AM2 = pho_pmass(k,3)+pho_pmass(j,3)
- endif
- AM2V = MIN(AM2V,AM1+AM2)
- enddo
- xm_psm2_list(i,j) = AM2P
- xm_vem2_list(i,j) = AM2V
- enddo
- enddo
-
-C min. mass limits for strings: qq-q
- do i=1,6
- do j=1,6
- do k=1,6
- AM82 = 1000.D0
- AM102 = 1000.D0
- do l=1,3
-C pseudo-scalar meson
- i1 = iabs(id_psm_list(k,l))
- if(i1.ne.0) then
- AM1 = xm_list(i1)
- else
- AM1 = pho_pmass(i,3)+pho_pmass(k,3)
- endif
-C vector meson
- i2 = iabs(id_vem_list(k,l))
- if(i2.ne.0) then
- AM2 = xm_list(i2)
- else
- AM2 = pho_pmass(i,3)+pho_pmass(k,3)
- endif
-C octet baryon
- AMM = min(AM1,AM2)
- K8 = id_b8_list(i,j,l)
- if(K8.ne.0) then
- AM1 = xm_list(K8)
- else
- AM1 = pho_pmass(i,3)+pho_pmass(j,3)+pho_pmass(l,3)
- endif
- AM82 = MIN(AM82, AM1 + AMM)
-C decuplet baryon
- K10 = id_b10_list(i,j,l)
- if(K10.ne.0) then
- AM2 = xm_list(K10)
- else
- AM2 = pho_pmass(i,3)+pho_pmass(j,3)+pho_pmass(l,3)
- endif
- AM102 = MIN(AM102, AM2 + AMM)
- enddo
- xm_b82_list(i,j,k) = AM82
- xm_b102_list(i,j,k) = AM102
- enddo
- enddo
- enddo
-
-C min. mass limits for strings: qq-qbarqbar
- do i=1,6
- do j=1,6
- do ii=1,6
- do jj=1,6
- AM82 = 1000.D0
- AM102 = 1000.D0
- do l=1,3
-C octet baryons
- K8 = id_b8_list(i,j,l)
- if(K8.ne.0) then
- AM1 = xm_list(K8)
- else
- AM1 = pho_pmass(i,3)+pho_pmass(j,3)+pho_pmass(l,3)
- endif
- L8 = id_b8_list(ii,jj,l)
- if(L8.ne.0) then
- AM2 = xm_list(L8)
- else
- AM2 = pho_pmass(ii,3)+pho_pmass(jj,3)+pho_pmass(l,3)
- endif
- AM82 = MIN(AM82, AM1+AM2)
-C decuplet baryons
- K10 = id_b10_list(i,j,l)
- if(K10.ne.0) then
- AM1 = xm_list(K10)
- else
- AM1 = pho_pmass(i,3)+pho_pmass(j,3)+pho_pmass(l,3)
- endif
- L10 = id_b10_list(ii,jj,l)
- if(L10.ne.0) then
- AM2 = xm_list(L10)
- else
- AM2 = pho_pmass(ii,3)+pho_pmass(jj,3)+pho_pmass(l,3)
- endif
- AM102 = MIN(AM102, AM1+AM2)
- enddo
- xm_bb82_list(i,j,ii,jj) = AM82
- xm_bb102_list(i,j,ii,jj) = AM102
- enddo
- enddo
- enddo
- enddo
-
- END
-
-CDECK ID>, PHO_PRESEL
- SUBROUTINE PHO_PRESEL(MODE,IREJ)
-C**********************************************************************
-C
-C user specific function to pre-select events during generation
-C
-C input: MODE 5 electron and photon kinematics
-C 10 process and number of cut Pomerons
-C 15 partons without construction of strings
-C 20 partons assigned to strings
-C 25 after fragmentation, complete final state
-C
-C output: IREJ 0 event accepted
-C 50 event rejected
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C gamma-lepton or gamma-hadron vertex information
- INTEGER IGHEL,IDPSRC,IDBSRC
- DOUBLE PRECISION PINI,PFIN,PGAM,GYY,GQ2,GGECM,GAIMP,PFTHE,PFPHI,
- & RADSRC,AMSRC,GAMSRC
- COMMON /POFSRC/ PINI(5,2),PFIN(5,2),PGAM(5,2),IGHEL(2),
- & GYY(2),GQ2(2),GGECM,GAIMP(2),PFTHE(2),PFPHI(2),
- & IDPSRC(2),IDBSRC(2),RADSRC(2),AMSRC(2),GAMSRC(2)
-C hard scattering data
- INTEGER MSCAHD
- PARAMETER ( MSCAHD = 50 )
- INTEGER LSCAHD,LSC1HD,LSIDX,
- & NINHD,N0INHD,NIVAL,N0IVAL,NOUTHD,NBRAHD,NPROHD
- DOUBLE PRECISION PPH,PTHD,ETAHD,Q2SCA,PDFVA,XHD,VHD,X0HD
- COMMON /POHSLT/ LSCAHD,LSC1HD,LSIDX(MSCAHD),
- & PPH(8*MSCAHD,2),PTHD(MSCAHD),ETAHD(MSCAHD,2),
- & Q2SCA(MSCAHD,2),PDFVA(MSCAHD,2),
- & XHD(MSCAHD,2),VHD(MSCAHD),X0HD(MSCAHD,2),
- & NINHD(MSCAHD,2),N0INHD(MSCAHD,2),
- & NIVAL(MSCAHD,2),N0IVAL(MSCAHD,2),
- & NOUTHD(MSCAHD,2),NBRAHD(MSCAHD,2),NPROHD(MSCAHD)
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-
- IREJ = 0
-
-* XBJ = GQ2(2)/(GGECM**2+GQ2(2))
-* IF(XBJ.LT.0.002D0) IREJ = 1
-
- END
-
-CDECK ID>, PHO_FIXCOL
- SUBROUTINE PHO_FIXCOL(E1,E2,THETA,PHI,NEV)
-C**********************************************************************
-C
-C interface to call PHOJET (fixed energy run) with
-C collider kinematics
-C
-C equivalen photon approximation to get photon flux
-C
-C input: NEV number of events to generate
-C THETA azimuthal angle (micro radians)
-C PHI beam crossing angle
-C (with respect to x, in degrees)
-C E1 energy of particle 1 (+z direction, GeV)
-C E2 energy of particle 2 (-z direction, GeV)
-C
-C note: particle types have to be specified before
-C with PHO_SETPAR
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER(TWOPI=6.283185307D0,BOG=TWOPI/360.0D0)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C integration precision for hard cross sections (obsolete)
- INTEGER NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
- COMMON /POGAUP/ NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-
- DIMENSION P1(4),P2(4)
-
-C remnant initialization (only needed for DPMJET)
- ISAVP1 = IFPAP(1)
- ISAVB1 = IFPAB(1)
- IF(IFPAP(1).EQ.81) THEN
- IFPAP(1) = IDEQP(1)
- IFPAB(1) = IDEQB(1)
- ENDIF
- ISAVP2 = IFPAP(2)
- ISAVB2 = IFPAB(2)
- IF(IFPAP(2).EQ.82) THEN
- IFPAP(2) = IDEQP(2)
- IFPAB(2) = IDEQB(2)
- ENDIF
- PMASS1 = PHO_PMASS(IFPAB(1),0)-SQRT(PVIRT(1))
- PMASS2 = PHO_PMASS(IFPAB(2),0)-SQRT(PVIRT(2))
- PP1 = SQRT(E1**2-PMASS1**2)
- PP2 = SQRT(E2**2-PMASS2**2)
-C beam crossing angle
- TH = 1.D-6*THETA/2.D0
- PH = PHI*BOG
- P1(1) = PP1*SIN(TH)*COS(PH)
- P1(2) = PP1*SIN(TH)*SIN(PH)
- P1(3) = PP1*COS(TH)
- P1(4) = E1
- P2(1) = PP2*SIN(TH)*COS(PH)
- P2(2) = PP2*SIN(TH)*SIN(PH)
- P2(3) = -PP2*COS(TH)
- P2(4) = E2
- CALL PHO_EVENT(-1,P1,P2,SIGMAX,IREJ)
- IFPAP(1) = ISAVP1
- IFPAB(1) = ISAVB1
- IFPAP(2) = ISAVP2
- IFPAB(2) = ISAVB2
- ITRY = 0
- CALL PHO_PHIST(-1,SIGMAX)
- CALL PHO_LHIST(-1,SIGMAX)
-C test of DPMJET interface (default is IPAMDL(13)=0)
- if(IPAMDL(13).gt.0) then
- MODE = IPAMDL(13)
- IPAMDL(13) = 0
- else
- MODE = 1
- endif
-C main generation loop
- DO 50 I=1,NEV
- 55 CONTINUE
- ITRY = ITRY+1
- CALL PHO_EVENT(MODE,P1,P2,SIGCUR,IREJ)
- IF(IREJ.NE.0) GOTO 55
- CALL PHO_PHIST(1,HSWGHT(0))
- CALL PHO_LHIST(1,HSWGHT(0))
- 50 CONTINUE
-
- IF(NEV.GT.0) THEN
- SIGMAX = SIGMAX*DBLE(NEV)/DBLE(ITRY)
- WRITE(LO,'(//1X,A,/1X,A,1PE12.3,A,/1X,A)')
- & '=========================================================',
- & ' ***** simulated cross section: ',SIGMAX,' mb *****',
- & '========================================================='
- CALL PHO_EVENT(-2,P1,P2,SIGCUR,IREJ)
- CALL PHO_PHIST(-2,SIGMAX)
- CALL PHO_LHIST(-2,SIGMAX)
- ELSE
- WRITE(LO,'(1X,A,I5)') 'POFCOL: no events simulated',NEV
- ENDIF
-
- END
-
-CDECK ID>, PHO_FIXLAB
- SUBROUTINE PHO_FIXLAB(PLAB,NEV)
-C**********************************************************************
-C
-C interface to call PHOJET (fixed energy run) with
-C LAB kinematics (second particle as target)
-C
-C equivalent photon approximation to get photon flux
-C
-C input: NEV number of events to generate
-C PLAB LAB momentum of particle 1
-C
-C note: particle types have to be specified before
-C with PHO_SETPAR
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C integration precision for hard cross sections (obsolete)
- INTEGER NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
- COMMON /POGAUP/ NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-
- DIMENSION P1(4),P2(4)
-
-C remnant initialization (only needed for DPMJET)
- SPCM = PLAB
- ISAVP1 = IFPAP(1)
- ISAVB1 = IFPAB(1)
- IF(IFPAP(1).EQ.81) THEN
- IFPAP(1) = IDEQP(1)
- IFPAB(1) = IDEQB(1)
- ENDIF
- ISAVP2 = IFPAP(2)
- ISAVB2 = IFPAB(2)
- IF(IFPAP(2).EQ.82) THEN
- IFPAP(2) = IDEQP(2)
- IFPAB(2) = IDEQB(2)
- ENDIF
-C get momenta in LAB system
- PMASS1 = PHO_PMASS(IFPAB(1),0)**2-PVIRT(1)
- PMASS2 = PHO_PMASS(IFPAB(2),0)**2-PVIRT(2)
- IF(PMASS2.LT.0.1D0) THEN
- WRITE(LO,'(/1X,2A,2I7)') 'PHO_FIXLAB:ERROR: ',
- & 'no LAB system possible',IFPAB(1),IFPAB(2)
- ELSE
- P1(1) = 0.D0
- P1(2) = 0.D0
- P1(3) = PLAB
- P1(4) = SQRT(PMASS1+PLAB**2)
- P2(1) = 0.D0
- P2(2) = 0.D0
- P2(3) = 0.D0
- P2(4) = SQRT(PMASS2)
- CALL PHO_EVENT(-1,P1,P2,SIGMAX,IREJ)
- IFPAP(1) = ISAVP1
- IFPAB(1) = ISAVB1
- IFPAP(2) = ISAVP2
- IFPAB(2) = ISAVB2
- ITRY = 0
- CALL PHO_PHIST(-1,SIGMAX)
- CALL PHO_LHIST(-1,SIGMAX)
-C event generation loop
- DO 40 I=1,NEV
- 45 CONTINUE
- ITRY = ITRY+1
- CALL PHO_EVENT(1,P1,P2,SIGCUR,IREJ)
- IF(IREJ.NE.0) GOTO 45
- CALL PHO_LHIST(1,HSWGHT(0))
-
- CALL PHO_PHIST(10,HSWGHT(0))
-
- 40 CONTINUE
- IF(NEV.GT.0) THEN
- SIGMAX = SIGMAX*DBLE(NEV)/DBLE(ITRY)
- WRITE(LO,'(//1X,A,/1X,A,1PE12.3,A,/1X,A)')
- & '=========================================================',
- & ' ***** simulated cross section: ',SIGMAX,' mb *****',
- & '========================================================='
- CALL PHO_EVENT(-2,P1,P2,SIGCUR,IREJ)
- CALL PHO_PHIST(-2,SIGMAX)
- CALL PHO_LHIST(-2,SIGMAX)
- ELSE
- WRITE(LO,'(1X,A,I5)')
- & 'PHO_FIXLAB: no events simulated',NEV
- ENDIF
- ENDIF
-
- END
-
-CDECK ID>, PHO_GPHERA
- SUBROUTINE PHO_GPHERA(NEVENT,EE1,EE2)
-C**********************************************************************
-C
-C interface to call PHOJET (variable energy run) with
-C HERA kinematics, photon as particle 2
-C
-C equivalent photon approximation to get photon flux
-C
-C input: NEVENT number of events to generate
-C EE1 proton energy (LAB system)
-C EE2 electron energy (LAB system)
-C from /POFCUT/:
-C YMIN2 lower limit of Y
-C (energy fraction taken by photon from electron)
-C YMAX2 upper limit of Y
-C Q2MIN2 lower limit of photon virtuality
-C Q2MAX2 upper limit of photon virtuality
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-10,
- & PI = 3.14159265359D0 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C photon flux kinematics and cuts
- DOUBLE PRECISION ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2
- INTEGER ITAG1,ITAG2
- COMMON /POFCUT/ ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2,
- & ITAG1,ITAG2
-C gamma-lepton or gamma-hadron vertex information
- INTEGER IGHEL,IDPSRC,IDBSRC
- DOUBLE PRECISION PINI,PFIN,PGAM,GYY,GQ2,GGECM,GAIMP,PFTHE,PFPHI,
- & RADSRC,AMSRC,GAMSRC
- COMMON /POFSRC/ PINI(5,2),PFIN(5,2),PGAM(5,2),IGHEL(2),
- & GYY(2),GQ2(2),GGECM,GAIMP(2),PFTHE(2),PFPHI(2),
- & IDPSRC(2),IDBSRC(2),RADSRC(2),AMSRC(2),GAMSRC(2)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-
- DIMENSION P1(4),P2(4)
-
- WRITE(LO,'(//1X,A,I10)') 'PHO_GPHERA: events to process',NEVENT
-C assign particle momenta according to HERA kinematics
-C proton data
- PROM = PHO_PMASS(2212,1)
- PROM2 = PROM**2
- IDPSRC(1) = 0
- IDBSRC(1) = 0
-C electron data
- ELEM = 0.512D-03
- ELEM2 = ELEM**2
- AMSRC(2) = ELEM
- IDPSRC(2) = 11
- IDBSRC(2) = ipho_pdg2id(11)
-C
- Q2MIN = Q2MIN2
- Q2MAX = Q2MAX2
-C
- XIMAX = LOG(YMAX2)
- XIMIN = LOG(YMIN2)
- XIDEL = XIMAX-XIMIN
-C
- IF(Q2MIN.GT.ELEM2*YMIN2**2/(1.D0-YMIN2))
- & WRITE(LO,'(/1X,A,1P2E11.4)')
- & 'PHO_GPHERA: lower Q2 cutoff larger than kin. limit:',
- & Q2MIN,ELEM2*YMIN2**2/(1.D0-YMIN2)
-C
- Max_tab = 50
- DELLY = LOG(YMAX2/YMIN2)/DBLE(Max_tab-1)
- FLUXT = 0.D0
- FLUXL = 0.D0
- IF(IDEB(30).GE.1) WRITE(LO,'(1X,A,I5)')
- & 'PHO_GPHERA: table of photon flux (trans/long)',Max_tab
- DO 100 I=1,Max_tab
- Y = EXP(XIMIN+DELLY*DBLE(I-1))
- Q2LOW = MAX(Q2MIN,ELEM2*Y**2/(1.D0-Y))
- FFT = ((1.D0+(1.D0-Y)**2)/Y*LOG(Q2MAX/Q2LOW)
- & -2.D0*ELEM2*Y*(1.D0/Q2LOW-1.D0/Q2MAX))/(2.D0*PI*137.D0)
- FFL = 2.D0*(1.D0-Y)/Y*LOG(Q2MAX/Q2LOW)/(2.D0*PI*137.D0)
- FLUXT = FLUXT + Y*FFT
- FLUXL = FLUXL + Y*FFL
- IF(IDEB(30).GE.1) WRITE(LO,'(5X,1P3E14.4)') Y,FFT,FFL
- 100 CONTINUE
- FLUXT = FLUXT*DELLY
- FLUXL = FLUXL*DELLY
- IF(IDEB(30).GE.1) WRITE(LO,'(1X,A,1P2E12.4)')
- & 'PHO_GPHERA: integrated flux (trans./long.):',FLUXT,FLUXL
-C
- AY = 0.D0
- AY2 = 0.D0
- YY = YMIN2
- Q2LOW = MAX(Q2MIN,ELEM2*YY**2/(1.D0-YY))
- WGMAX = (1.D0+(1.D0-YY)**2)*LOG(Q2MAX/Q2LOW)
- & -2.D0*ELEM2*YY*(1.D0/Q2LOW-1.D0/Q2MAX)*YY
- IF(ISWMDL(10).GE.2) WGMAX = WGMAX+2.D0*(1.D0-YY)*LOG(Q2MAX/Q2LOW)
-C
-C initialization of PHOJET at upper energy limit
-C proton momentum
- P1(1) = 0.D0
- P1(2) = 0.D0
- P1(3) = SQRT(EE1**2-PROM2+DEPS)
- P1(4) = EE1
-C photon momentum
- EGAM = YMAX2*EE2
- P2(1) = 0.D0
- P2(2) = 0.D0
- P2(3) = -EGAM
- P2(4) = EGAM
-C sum of both photon polarizations
- IGHEL(2) = -1
-C
- CALL PHO_SETPAR(1,2212,0,0.D0)
- CALL PHO_SETPAR(2,22,0,0.D0)
- CALL PHO_EVENT(-1,P1,P2,SIGMAX,IREJ)
- CALL PHO_PHIST(-1,SIGMAX)
- CALL PHO_LHIST(-1,SIGMAX)
-C
-C generation of events, flux calculation
-
- ECMIN2 = ECMIN**2
- ECMAX2 = ECMAX**2
- AY = 0.D0
- AY2 = 0.D0
- Q22MIN = 1.D30
- Q22AVE = 0.D0
- Q22AV2 = 0.D0
- Q22MAX = 0.D0
- AN2MIN = 1.D30
- AN2MAX = 0.D0
- YY2MIN = 1.D30
- YY2MAX = 0.D0
- NITER = NEVENT
- ITRY = 0
- ITRW = 0
- DO 200 I=1,NITER
- 150 CONTINUE
-C sample y
- ITRY = ITRY+1
- 175 CONTINUE
- ITRW = ITRW+1
- YY = EXP(XIDEL*DT_RNDM(AY)+XIMIN)
- IF(ISWMDL(10).GE.2) THEN
- YEFF = 1.D0+(1.D0-YY)**2+2.D0*(1.D0-YY)
- ELSE
- YEFF = 1.D0+(1.D0-YY)**2
- ENDIF
- Q2LOW = MAX(Q2MIN,ELEM2*YY**2/(1.D0-YY))
- Q2LOG = LOG(Q2MAX/Q2LOW)
- WGH = YEFF*Q2LOG-2.D0*ELEM2*YY**2*(1.D0/Q2LOW-1.D0/Q2MAX)
- IF(WGMAX.LT.WGH) THEN
- WRITE(LO,'(1X,A,3E12.5)')
- & 'PHO_GPHERA: inconsistent weight:',YY,WGMAX,WGH
- ENDIF
- IF(DT_RNDM(AY2)*WGMAX.GT.WGH) GOTO 175
-C sample Q2
- IF(IPAMDL(174).EQ.1) THEN
- 185 CONTINUE
- Q2 = Q2LOW*EXP(Q2LOG*DT_RNDM(YY))
- WEIGHT = (YEFF-2.D0*ELEM2*YY**2/Q2)/YEFF
- IF(WEIGHT.LT.DT_RNDM(Q2)) GOTO 185
- ELSE
- Q2 = Q2LOW
- ENDIF
-C
-
-C incoming electron
- PINI(1,2) = 0.D0
- PINI(2,2) = 0.D0
- PINI(3,2) = -EE2
- PINI(4,2) = EE2
- PINI(5,2) = 0.D0
-C outgoing electron
- YQ2 = SQRT((1.D0-YY)*Q2)
- Q2E = Q2/(4.D0*EE2)
- E1Y = EE2*(1.D0-YY)
- CALL PHO_SFECFE(SIF,COF)
- PFIN(1,2) = YQ2*COF
- PFIN(2,2) = YQ2*SIF
- PFIN(3,2) = -E1Y+Q2E
- PFIN(4,2) = E1Y+Q2E
- PFIN(5,2) = 0.D0
-C set /POFSRC/
- GYY(2) = YY
- GQ2(2) = Q2
-C polar angle
- PFTHE(2) = ACOS(PFIN(3,2)/PFIN(4,2))
-C electron tagger
- IF(PFIN(4,2).GT.EEMIN2) THEN
- IF((PFTHE(2).LT.THMIN2).OR.(PFTHE(2).GT.THMAX2)) GOTO 175
- ENDIF
-C azimuthal angle
- PFPHI(2) = ATAN2(COF,SIF)
-C photon momentum
- P2(1) = -PFIN(1,2)
- P2(2) = -PFIN(2,2)
- P2(3) = PINI(3,2)-PFIN(3,2)
- P2(4) = PINI(4,2)-PFIN(4,2)
-C proton momentum
- P1(1) = 0.D0
- P1(2) = 0.D0
- P1(3) = SQRT(EE1**2-PROM2)
- P1(4) = EE1
-C ECMS cut
- GGECM = (P1(4)+P2(4))**2-(P1(1)+P2(1))**2
- & -(P1(2)+P2(2))**2-(P1(3)+P2(3))**2
- IF((GGECM.LT.ECMIN2).OR.(GGECM.GT.ECMAX2)) GOTO 175
- GGECM = SQRT(GGECM)
-C
- PGAM(1,2) = P2(1)
- PGAM(2,2) = P2(2)
- PGAM(3,2) = P2(3)
- PGAM(4,2) = P2(4)
- PGAM(5,2) = -SQRT(Q2)
-C photon helicity
- IF(ISWMDL(10).GE.2) THEN
- WGH = YEFF-2.D0*ELEM2*YY**2/Q2
- WGHL = 2.D0*(1-YY)
- IF(DT_RNDM(YY).GE.WGHL/WGH) THEN
- IGHEL(2) = 1
- ELSE
- IGHEL(2) = 0
- ENDIF
- ELSE
- IGHEL(2) = -1
- ENDIF
-C user cuts
- CALL PHO_PRESEL(5,IREJ)
- IF(IREJ.NE.0) GOTO 175
-C event generation
- CALL PHO_EVENT(1,P1,P2,SIGCUR,IREJ)
- IF(IREJ.NE.0) GOTO 150
-
-C statistics
- AY = AY+YY
- AY2 = AY2+YY*YY
- YY2MIN = MIN(YY2MIN,YY)
- YY2MAX = MAX(YY2MAX,YY)
- Q22MIN = MIN(Q22MIN,Q2)
- Q22MAX = MAX(Q22MAX,Q2)
- Q22AVE = Q22AVE+Q2
- Q22AV2 = Q22AV2+Q2*Q2
- AN2MIN = MIN(AN2MIN,PFTHE(2))
- AN2MAX = MAX(AN2MAX,PFTHE(2))
-C histograms
- CALL PHO_PHIST(1,HSWGHT(0))
- CALL PHO_LHIST(1,HSWGHT(0))
- 200 CONTINUE
-C
- WGY = WGMAX*DBLE(ITRY)/DBLE(ITRW)/(137.D0*2.D0*PI)
- WGY = WGY*LOG(YMAX2/YMIN2)
- AY = AY/DBLE(NITER)
- AY2 = AY2/DBLE(NITER)
- DAY = SQRT((AY2-AY**2)/DBLE(NITER))
- Q22AVE = Q22AVE/DBLE(NITER)
- Q22AV2 = Q22AV2/DBLE(NITER)
- Q22AV2 = SQRT((Q22AV2-Q22AVE**2)/DBLE(NITER))
- WEIGHT = WGY*SIGMAX*DBLE(NITER)/DBLE(ITRY)
-C output of histograms
- WRITE(LO,'(//1X,A,/1X,A,1PE12.3,A,/1X,A)')
- &'=========================================================',
- &' ***** simulated cross section: ',WEIGHT,' mb *****',
- &'========================================================='
- WRITE(LO,'(//1X,A,3I10)')
- & 'PHO_GPHERA:SUMMARY:NITER,ITRY,ITRW',NITER,ITRY,ITRW
- WRITE(LO,'(1X,A,1P2E12.4)') 'EFFECTIVE WEIGHT (FLUX,TOTAL)',
- & WGY,WEIGHT
- WRITE(LO,'(1X,A,1P2E12.4)') 'AVERAGE Y,DY ',AY,DAY
- WRITE(LO,'(1X,A,1P2E12.4)') 'SAMPLED Y RANGE PHOTON ',
- & YY2MIN,YY2MAX
- WRITE(LO,'(1X,A,1P2E12.4)') 'AVERAGE Q2,DQ2 ',
- & Q22AVE,Q22AV2
- WRITE(LO,'(1X,A,1P2E12.4)') 'SAMPLED Q2 RANGE PHOTON ',
- & Q22MIN,Q22MAX
- WRITE(LO,'(1X,A,1P4E12.4)') 'SAMPLED THETA RANGE ELECTRON ',
- & AN2MIN,AN2MAX,PI-AN2MAX,PI-AN2MIN
-C
- CALL PHO_EVENT(-2,P1,P2,WEIGHT,IREJ)
- IF(NITER.GT.1) THEN
- CALL PHO_PHIST(-2,WEIGHT)
- CALL PHO_LHIST(-2,WEIGHT)
- ELSE
- WRITE(LO,'(1X,A,I4)') 'PHO_GPHERA:NO OUTPUT OF HISTOGRAMS',NITER
- ENDIF
-
- END
-
-CDECK ID>, PHO_GGEPEM
- SUBROUTINE PHO_GGEPEM(NEVENT,EE1,EE2)
-C**********************************************************************
-C
-C interface to call PHOJET (variable energy run) for
-C gamma-gamma collisions on e+e- collider
-C
-C fully differential equivalent (improved) photon approximation
-C to get photon flux
-C
-C input: EE1 LAB system energy of electron/positron 1
-C EE2 LAB system energy of electron/positron 2
-C NEVENT >0 number of events to generate
-C -1 initialization
-C -2 final call (cross section calculation)
-C from /LEPCUT/:
-C YMIN1 lower limit of Y1
-C (energy fraction taken by photon from electron)
-C YMAX1 upper limit of Y1
-C Q2MIN1 lower limit of photon virtuality
-C Q2MAX1 upper limit of photon virtuality
-C THMIN1 lower limit of scattered electron
-C THMAX1 upper limit of scattered electron
-C YMIN2 lower limit of Y2
-C (energy fraction taken by photon from electron)
-C YMAX2 upper limit of Y2
-C Q2MIN2 lower limit of photon virtuality
-C Q2MAX2 upper limit of photon virtuality
-C THMIN2 lower limit of scattered electron
-C THMAX2 upper limit of scattered electron
-C
-C output: after final call with NEVENT=-2
-C EE1 e+ e- cross section (mb)
-C EE2 gamma-gamma cross section (mb)
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- DOUBLE PRECISION EE1,EE2
- INTEGER NEVENT
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C photon flux kinematics and cuts
- DOUBLE PRECISION ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2
- INTEGER ITAG1,ITAG2
- COMMON /POFCUT/ ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2,
- & ITAG1,ITAG2
-C gamma-lepton or gamma-hadron vertex information
- INTEGER IGHEL,IDPSRC,IDBSRC
- DOUBLE PRECISION PINI,PFIN,PGAM,GYY,GQ2,GGECM,GAIMP,PFTHE,PFPHI,
- & RADSRC,AMSRC,GAMSRC
- COMMON /POFSRC/ PINI(5,2),PFIN(5,2),PGAM(5,2),IGHEL(2),
- & GYY(2),GQ2(2),GGECM,GAIMP(2),PFTHE(2),PFPHI(2),
- & IDPSRC(2),IDBSRC(2),RADSRC(2),AMSRC(2),GAMSRC(2)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-
-C external functions
- DOUBLE PRECISION DT_RNDM
-
-C local variables
- DOUBLE PRECISION AN1MAX,AN1MIN,AN2MAX,AN2MIN,AY1,AY2,AYS1,AYS2,
- & COF1,COF2,CPFTHE,DAY1,DAY2,DELLY,DITRY,DITRW,
- & ECFRAC,ECMAX2,ECMIN2,EGAM,ELEM,ELEM2,FFL,FFT,FLUXL,FLUXT,
- & FLXAPP,FLXQPM,GGECM2,P1,P2,PP,PT,PT2,Q21AV2,Q21AVE,Q21MAX,
- & Q21MIN,Q22AV2,Q22AVE,Q22MAX,Q22MIN,Q2LOG1,Q2LOG2,Q2LOW1,
- & Q2LOW2,Q2P1,Q2P2,SIF1,SIF2,SIGCUR,SIGMAX,THMAC1,
- & THMAC2,THMIC1,THMIC2,WEIGHT,WG,WGFX,WGH,WGHAPP,WGHL,WGHQPM,
- & WGMAX,WGY,X1DEL,X1MAX,X1MIN,X2DEL,X2MAX,X2MIN,Y1,Y2,YEFF1,YEFF2,
- & YMI,YY1MAX,YY1MIN,YY2MAX,YY2MIN
-
- INTEGER I,IHEAC1,IHEAC2,IHETRY,IREJ,ITRW_low,ITRW_high,ITRY_low,
- & ITRY_high,K,Max_tab,NITER,ITG1,ITG2
-
- DIMENSION P1(4),P2(4),IHETRY(4),IHEAC1(4),IHEAC2(4)
- integer ipho_pdg2id
-
-C initialization of event generation
-
- if(NEVENT.eq.-1) then
-
- DO 10 I=1,4
- IHETRY(I) = 0
- IHEAC1(I) = 0
- IHEAC2(I) = 0
- 10 CONTINUE
-
- WRITE(LO,'(//1X,A)') 'PHO_GGEPEM: initialization'
-
-C electron data
- ELEM = 0.512D-03
- ELEM2 = ELEM**2
- AMSRC(1) = ELEM
- AMSRC(2) = ELEM
-C lepton numbers
- IDPSRC(1) = 11
- IDPSRC(2) = -11
- IDBSRC(1) = ipho_pdg2id(11)
- IDBSRC(2) = ipho_pdg2id(-11)
-
-C check/update kinematic limitations
-
- Ymi = min(Ymax1,1.D0-ELEM/EE1)
- if(Ymi.lt.Ymax1) then
- WRITE(LO,'(/1X,A,2E12.5)')
- & 'PHO_GGEPEM: Ymax1 decreased (old/new)',Ymax1,Ymi
- Ymax1 = YMI
- endif
- Ymi = min(Ymax2,1.D0-ELEM/EE2)
- if(Ymi.lt.Ymax2) then
- WRITE(LO,'(/1X,A,2E12.5)')
- & 'PHO_GGEPEM: Ymax2 decreased (old/new)',Ymax2,Ymi
- Ymax2 = YMI
- endif
-
- YMI = ECMIN**2/(4.D0*EE1*EE2*YMAX2)
- IF(YMIN1.LT.YMI) THEN
- WRITE(LO,'(/1X,A,2E12.5)')
- & 'PHO_GGEPEM: Ymin1 increased (old/new)',YMIN1,YMI
- YMIN1 = YMI
- ELSE IF(YMIN1.GT.YMI) THEN
- WRITE(LO,'(/1X,A,/1X,A,E12.5,A,E12.5)')
- & 'PHO_GGEPEM:','ECM-CUT corresponds to YMIN1 of',YMI,
- & ' INSTEAD OF',YMIN1
- ENDIF
- YMI = ECMIN**2/(4.D0*EE1*EE2*YMAX1)
- IF(YMIN2.LT.YMI) THEN
- WRITE(LO,'(/1X,A,2E12.5)')
- & 'PHO_GGEPEM: Ymin2 increased (old/new)',YMIN2,YMI
- YMIN2 = YMI
- ELSE IF(YMIN2.GT.YMI) THEN
- WRITE(LO,'(/1X,A,/1X,A,E12.5,A,E12.5)')
- & 'PHO_GGEPEM:','ECM-CUT corresponds to YMIN2 of',YMI,
- & ' INSTEAD OF',YMIN2
- ENDIF
-
-C store COS of angular tagging range
- THMIC1 = COS(MAX(0.D0,THMIN1))
- THMAC1 = COS(MIN(THMAX1,PI))
- THMIC2 = COS(MAX(0.D0,THMIN2))
- THMAC2 = COS(MIN(THMAX2,PI))
-
- X1MAX = LOG(YMAX1)
- X1MIN = LOG(YMIN1)
- X1DEL = X1MAX-X1MIN
- X2MAX = LOG(YMAX2)
- X2MIN = LOG(YMIN2)
- X2DEL = X2MAX-X2MIN
-
-C debug: integrated photon flux
-
- if(IDEB(30).ge.1) then
- Max_tab = 50
- FLUXT = 0.D0
- FLUXL = 0.D0
- DELLY = LOG(YMAX1/YMIN1)/DBLE(Max_tab-1)
- IF(IDEB(30).GE.2) WRITE(LO,'(1X,2A,I5)') 'PHO_GGEPEM: ',
- & 'table of photon flux (trans/long side 1)',Max_tab
- do I=1,Max_tab
- Y1 = EXP(X1MIN+DELLY*DBLE(I-1))
- if((1.D0-Y1).gt.1.D-8) then
- Q2LOW1 = MAX(Q2MIN1,ELEM2*Y1*Y1/(1.D0-Y1))
- else
- Q2low1 = 2.D0*Q2max1
- endif
- if(Q2low1.lt.Q2max1) then
- FFT = ((1.D0+(1.D0-Y1)**2)/Y1*LOG(Q2MAX1/Q2LOW1)
- & -2.D0*ELEM2*Y1*(1.D0/Q2LOW1-1.D0/Q2MAX1))/(2.D0*PI*137.D0)
- FFL = 2.D0*(1.D0-Y1)*LOG(Q2MAX1/Q2LOW1)/(2.D0*PI*137.D0)
- else
- FFT = 0.D0
- FFL = 0.D0
- endif
- FLUXT = FLUXT + Y1*FFL
- FLUXL = FLUXL + Y1*FFT
- IF(IDEB(30).GE.2) WRITE(LO,'(5X,1P3E14.4)') Y1,FFT,FFL
- enddo
- FLUXT = FLUXT*DELLY
- FLUXL = FLUXL*DELLY
- WRITE(LO,'(1X,2A,1P2E12.4)') 'PHO_GGEPEM: ',
- & 'integrated flux (trans/long side 1):',FLUXT,FLUXL
- endif
-
-C maximum weight
-
- Q2LOW1 = MAX(Q2MIN1,ELEM2*YMIN1**2/(1.D0-YMIN1))
- Q2LOW2 = MAX(Q2MIN2,ELEM2*YMIN2**2/(1.D0-YMIN2))
- Y1 = YMIN1
- Y2 = YMIN2
- IF(ISWMDL(10).GE.2) THEN
-C long. and transversely polarized photons
- WGMAX = ((1.D0+(1.D0-Y1)**2+2.D0*(1.D0-Y1))*LOG(Q2MAX1/Q2LOW1)
- & -2.D0*ELEM2*Y1*(1.D0/Q2LOW1-1.D0/Q2MAX1)*Y1)
- & *((1.D0+(1.D0-Y2)**2+2.D0*(1.D0-Y2))*LOG(Q2MAX2/Q2LOW2)
- & -2.D0*ELEM2*Y2*(1.D0/Q2LOW2-1.D0/Q2MAX2)*Y2)
- ELSE
-C transversely polarized photons only
- WGMAX = ((1.D0+(1.D0-Y1)**2)*LOG(Q2MAX1/Q2LOW1)
- & -2.D0*ELEM2*Y1*(1.D0/Q2LOW1-1.D0/Q2MAX1)*Y1)
- & *((1.D0+(1.D0-Y2)**2)*LOG(Q2MAX2/Q2LOW2)
- & -2.D0*ELEM2*Y2*(1.D0/Q2LOW2-1.D0/Q2MAX2)*Y2)
- ENDIF
-
-C initialize gamma-gamma event generator
-
-C photon 1
- EGAM = YMAX1*EE1
- P1(1) = 0.D0
- P1(2) = 0.D0
- P1(3) = SQRT(EGAM**2-Q2LOW1)
- P1(4) = EGAM
-C photon 2
- EGAM = YMAX2*EE2
- P2(1) = 0.D0
- P2(2) = 0.D0
- P2(3) = -SQRT(EGAM**2-Q2LOW2)
- P2(4) = EGAM
-C sum of helicities
- IGHEL(1) = -1
- IGHEL(2) = -1
-
-C set min. energy for interpolation tables
- parmdl(19) = min(parmdl(19),ecmin)
-
-C initialize event gneration
- CALL PHO_SETPAR(1,22,0,0.D0)
- CALL PHO_SETPAR(2,22,0,0.D0)
- CALL PHO_EVENT(-1,P1,P2,SIGMAX,IREJ)
- CALL PHO_PHIST(-1,SIGMAX)
- CALL PHO_LHIST(-1,SIGMAX)
-
-C generation of events, flux calculation
-
- ECMIN2 = ECMIN**2
- ECMAX2 = ECMAX**2
- ECFRAC = ECMIN2/(4.D0*EE1*EE2)
- AY1 = 0.D0
- AY2 = 0.D0
- AYS1 = 0.D0
- AYS2 = 0.D0
- Q21MIN = 1.D30
- Q22MIN = 1.D30
- Q21MAX = 0.D0
- Q22MAX = 0.D0
- Q21AVE = 0.D0
- Q22AVE = 0.D0
- Q21AV2 = 0.D0
- Q22AV2 = 0.D0
- AN1MIN = 1.D30
- AN2MIN = 1.D30
- AN1MAX = 0.D0
- AN2MAX = 0.D0
- YY1MIN = 1.D30
- YY2MIN = 1.D30
- YY1MAX = 0.D0
- YY2MAX = 0.D0
- NITER = 0
- ITRY_low = 0
- ITRY_high = 0
- ITRW_low = 0
- ITRW_high = 0
-
-C generate NEVENT events (might be just 1 per call)
-
- else if(NEVENT.gt.0) then
-
- NITER = NITER+NEVENT
-
- DO 200 I=1,NEVENT
-
-C sample y1, y2
- 150 CONTINUE
- ITRY_low = ITRY_low+1
- if(ITRY_low.eq.1000000) then
- ITRY_low = 0
- ITRY_high = ITRY_high+1
- endif
-
- 175 CONTINUE
- ITRW_low = ITRW_low+1
- if(ITRW_low.eq.1000000) then
- ITRW_low = 0
- ITRW_high = ITRW_high+1
- endif
-
- Y1 = EXP(X1DEL*DT_RNDM(AY1)+X1MIN)
- Y2 = EXP(X2DEL*DT_RNDM(AY2)+X2MIN)
- IF(Y1*Y2.LT.ECFRAC) GOTO 175
- IF(ISWMDL(10).GE.2) THEN
- YEFF1 = 1.D0+(1.D0-Y1)**2+2.D0*(1.D0-Y1)
- YEFF2 = 1.D0+(1.D0-Y2)**2+2.D0*(1.D0-Y2)
- ELSE
- YEFF1 = 1.D0+(1.D0-Y1)**2
- YEFF2 = 1.D0+(1.D0-Y2)**2
- ENDIF
-
- Q2LOW1 = MAX(Q2MIN1,ELEM2*Y1**2/(1.D0-Y1))
- Q2LOW2 = MAX(Q2MIN2,ELEM2*Y2**2/(1.D0-Y2))
- Q2LOG1 = LOG(Q2MAX1/Q2LOW1)
- Q2LOG2 = LOG(Q2MAX2/Q2LOW2)
- WGH = (YEFF1*Q2LOG1
- & -2.D0*ELEM2*Y1*(1.D0/Q2LOW1-1.D0/Q2MAX1)*Y1)
- & *(YEFF2*Q2LOG2
- & -2.D0*ELEM2*Y2*(1.D0/Q2LOW2-1.D0/Q2MAX2)*Y2)
- IF(WGMAX.LT.WGH) THEN
- WRITE(LO,'(1X,A,4E12.5)')
- & 'PHO_GGEPEM: inconsistent weight:',Y1,Y2,WGMAX,WGH
- ENDIF
- IF(DT_RNDM(AYS1)*WGMAX.GT.WGH) GOTO 175
-
-C limit on Ecm_gg (app. cut, precise cut applied later)
- GGECM2 = 4.D0*Y1*Y2*EE1*EE2
- if(GGECM2.lt.ECMIN2) goto 175
-
-C sample Q2
- IF(IPAMDL(174).EQ.1) THEN
- 185 CONTINUE
- Q2P1 = Q2LOW1*EXP(Q2LOG1*DT_RNDM(Y1))
- WEIGHT = (YEFF1-2.D0*(1.D0-Y1)*Q2LOW1/Q2P1)/YEFF1
- IF(WEIGHT.LT.DT_RNDM(Q2P1)) GOTO 185
- ELSE
- Q2P1 = Q2LOW1
- ENDIF
-
- IF(IPAMDL(174).EQ.1) THEN
- 186 CONTINUE
- Q2P2 = Q2LOW2*EXP(Q2LOG2*DT_RNDM(Y2))
- WEIGHT = (YEFF2-2.D0*(1.D0-Y2)*Q2LOW2/Q2P2)/YEFF2
- IF(WEIGHT.LT.DT_RNDM(Q2P2)) GOTO 186
- ELSE
- Q2P2 = Q2LOW2
- ENDIF
-
- GYY(1) = Y1
- GQ2(1) = Q2P1
- GYY(2) = Y2
- GQ2(2) = Q2P2
-
-C incoming electron 1
- PINI(1,1) = 0.D0
- PINI(2,1) = 0.D0
- PINI(3,1) = EE1*(1.D0-0.5D0*ELEM2/EE1**2)
- PINI(4,1) = EE1
- PINI(5,1) = ELEM
-C photon 1
- PP = (2.D0*EE1**2*Y1+Q2P1)/(2.D0*PINI(3,1))
- PT2 = (EE1**2*(Q2P1*(1.D0-Y1)-ELEM2*Y1**2)
- & -0.25D0*Q2P1**2-Q2P1*ELEM2)/PINI(3,1)**2
- IF(PT2.LT.0.D0) GOTO 175
- PT = SQRT(PT2)
- CALL PHO_SFECFE(SIF1,COF1)
- P1(1) = COF1*PT
- P1(2) = SIF1*PT
- P1(3) = PP
- P1(4) = EE1*Y1
-C outgoing electron 1
- PFIN(1,1) = -P1(1)
- PFIN(2,1) = -P1(2)
- PFIN(3,1) = PINI(3,1)-P1(3)
- PFIN(4,1) = PINI(4,1)-P1(4)
- PFIN(5,1) = ELEM
-C incoming electron 2
- PINI(1,2) = 0.D0
- PINI(2,2) = 0.D0
- PINI(3,2) = -EE2*(1.D0-0.5D0*ELEM2/EE2**2)
- PINI(4,2) = EE2
- PINI(5,2) = 0.D0
-C photon 2
- PP = (2.D0*EE2**2*Y2+Q2P2)/(2.D0*PINI(3,2))
- PT2 = (EE2**2*(Q2P2*(1.D0-Y2)-ELEM2*Y2**2)
- & -0.25D0*Q2P2**2-Q2P2*ELEM2)/PINI(3,2)**2
- IF(PT2.LT.0.D0) GOTO 175
- PT = SQRT(PT2)
- CALL PHO_SFECFE(SIF2,COF2)
- P2(1) = COF2*PT
- P2(2) = SIF2*PT
- P2(3) = PP
- P2(4) = EE2*Y2
-C outgoing electron 2
- PFIN(1,2) = -P2(1)
- PFIN(2,2) = -P2(2)
- PFIN(3,2) = PINI(3,2)-P2(3)
- PFIN(4,2) = PINI(4,2)-P2(4)
- PFIN(5,2) = ELEM
-
-C precise ECMS cut
-
- GGECM2 = (P1(4)+P2(4))**2-(P1(1)+P2(1))**2
- & -(P1(2)+P2(2))**2-(P1(3)+P2(3))**2
- IF((GGECM2.LT.ECMIN2).OR.(GGECM2.GT.ECMAX2)) GOTO 175
- GGECM = SQRT(GGECM2)
-
-C beam lepton detector acceptance
-
-C lepton tagger 1
- CPFTHE = PFIN(3,1)/PFIN(4,1)
- ITG1 = 0
- IF(PFIN(4,1).GE.EEMIN1) THEN
- IF((CPFTHE.LE.THMIC1).AND.(CPFTHE.GE.THMAC1)) ITG1 = 1
- ENDIF
-
-C lepton tagger 2
- CPFTHE = PFIN(3,2)/PFIN(4,2)
- ITG2 = 0
- IF(PFIN(4,2).GE.EEMIN2) THEN
- IF((CPFTHE.LE.THMIC2).AND.(CPFTHE.GE.THMAC2)) ITG2 = 1
- ENDIF
-
-C beam lepton taggers
-
-C anti-tag
- IF((ITAG1.EQ.-1).AND.(ITG1.NE.0)) GOTO 175
- IF((ITAG2.EQ.-1).AND.(ITG2.NE.0)) GOTO 175
-C tag
- IF((ITAG1.EQ.1).AND.(ITG1.EQ.0)) GOTO 175
- IF((ITAG2.EQ.1).AND.(ITG2.EQ.0)) GOTO 175
-C single-tag inclusive
- IF((ITAG1.EQ.0).AND.(ITAG2.EQ.0).AND.(ITG1+ITG2.EQ.0))
- & GOTO 175
-C single-tag/anti-tag
- IF((ITAG1.EQ.2).AND.(ITAG2.EQ.2).AND.(ITG1+ITG2.NE.1))
- & GOTO 175
-
- PGAM(1,1) = P1(1)
- PGAM(2,1) = P1(2)
- PGAM(3,1) = P1(3)
- PGAM(4,1) = P1(4)
- PGAM(5,1) = -SQRT(Q2P1)
- PGAM(1,2) = P2(1)
- PGAM(2,2) = P2(2)
- PGAM(3,2) = P2(3)
- PGAM(4,2) = P2(4)
- PGAM(5,2) = -SQRT(Q2P2)
-
-C photon helicities
- IF(ISWMDL(10).GE.2) THEN
- WGH = YEFF1-2.D0*ELEM2*Y1**2/Q2P1
- WGHL = 2.D0*(1-Y1)
- IF(DT_RNDM(Y1).GT.WGHL/WGH) THEN
- IGHEL(1) = 1
- ELSE
- IGHEL(1) = 0
- ENDIF
- WGH = YEFF2-2.D0*ELEM2*Y2**2/Q2P2
- WGHL = 2.D0*(1-Y2)
- IF(DT_RNDM(Y2).GT.WGHL/WGH) THEN
- IGHEL(2) = 1
- ELSE
- IGHEL(2) = 0
- ENDIF
- K = 2*IGHEL(1)+IGHEL(2)+1
- IHETRY(K) = IHETRY(K)+1
- ELSE
- IGHEL(1) = -1
- IGHEL(2) = -1
- ENDIF
-
-C user cuts
- CALL PHO_PRESEL(5,IREJ)
- IF(IREJ.NE.0) GOTO 175
-
- WGFX = 1.D0
-C reweight according to LO photon emission diagrams (Budnev et al.)
- IF(IPAMDL(116).GE.1) THEN
- CALL PHO_WGEPEM(FLXAPP,FLXQPM,0)
- WGFX = FLXQPM/FLXAPP
- if(WGFX.gt.1.D0) then
- WRITE(LO,'(1x,a,/,5x,1p,5e11.4)')
- & ' PHO_GGEPEM: flux weight > 1 (y1/2,Q21/2,W)',
- & Y1,Y2,Q2P1,Q2P2,GGECM
- endif
- ENDIF
-
-C event generation
-* IVWGHT(1) = 1
-* EVWGHT(1) = MAX(WGFX,1.D0)
- CALL PHO_EVENT(1,P1,P2,SIGCUR,IREJ)
- IF(IREJ.NE.0) GOTO 150
- IF(ISWMDL(10).GE.2) THEN
- K = 2*IGHEL(1)+IGHEL(2)+1
- IHEAC1(K) = IHEAC1(K)+1
- ENDIF
-
-C reweight according to QPM model (e+e- collider only)
- IF((KHDIR.GT.0).AND.
- & (IPAMDL(116).GE.2).AND.(ISWMDL(10).GE.2)) THEN
- CALL PHO_WGEPEM(WGHAPP,WGHQPM,1)
- WG = WGHQPM/WGHAPP/MAX(1.D0,WGFX)
- IF(DT_RNDM(WG).GT.WG) GOTO 150
- ELSE IF(IPAMDL(116).GE.1) THEN
- IF(DT_RNDM(WG).GT.WGFX) GOTO 150
- ENDIF
-
-C polar angle
- PFTHE(1) = ACOS(PFIN(3,1)/PFIN(4,1))
- PFTHE(2) = ACOS(PFIN(3,2)/PFIN(4,2))
-C azimuthal angle
- PFPHI(1) = ATAN2(COF1,SIF1)
- PFPHI(2) = ATAN2(COF2,SIF2)
-
-C statistics
- AY1 = AY1+Y1
- AYS1 = AYS1+Y1*Y1
- AY2 = AY2+Y2
- AYS2 = AYS2+Y2*Y2
- Q21MIN = MIN(Q21MIN,Q2P1)
- Q22MIN = MIN(Q22MIN,Q2P2)
- Q21MAX = MAX(Q21MAX,Q2P1)
- Q22MAX = MAX(Q22MAX,Q2P2)
- AN1MIN = MIN(AN1MIN,PFTHE(1))
- AN2MIN = MIN(AN2MIN,PFTHE(2))
- AN1MAX = MAX(AN1MAX,PFTHE(1))
- AN2MAX = MAX(AN2MAX,PFTHE(2))
- YY1MIN = MIN(YY1MIN,Y1)
- YY2MIN = MIN(YY2MIN,Y2)
- YY1MAX = MAX(YY1MAX,Y1)
- YY2MAX = MAX(YY2MAX,Y2)
- Q21AVE = Q21AVE+Q2P1
- Q22AVE = Q22AVE+Q2P2
- Q21AV2 = Q21AV2+Q2P1*Q2P1
- Q22AV2 = Q22AV2+Q2P2*Q2P2
- IF(ISWMDL(10).GE.2) THEN
- K = 2*IGHEL(1)+IGHEL(2)+1
- IHEAC2(K) = IHEAC2(K)+1
- ENDIF
-
-C external histograms
- CALL PHO_PHIST(1,HSWGHT(0))
- CALL PHO_LHIST(1,HSWGHT(0))
- 200 CONTINUE
-
-C final cross section calculation and event generation summary
-
- else if(NEVENT.eq.-2) then
-
-* EVWGHT(1) = 1.D0
-* IVWGHT(1) = 0
- DITRY = dble(ITRY_high)*1.D+6+dble(ITRY_low)
- DITRW = dble(ITRW_high)*1.D+6+dble(ITRW_low)
- WGY = WGMAX*DITRY/DITRW/(137.D0*2.D0*PI)**2
- WGY = WGY*LOG(YMAX1/YMIN1)*LOG(YMAX2/YMIN2)
- AY1 = AY1/DBLE(NITER)
- AYS1 = AYS1/DBLE(NITER)
- DAY1 = SQRT((AYS1-AY1**2)/DBLE(NITER))
- AY2 = AY2/DBLE(NITER)
- AYS2 = AYS2/DBLE(NITER)
- DAY2 = SQRT((AYS2-AY2**2)/DBLE(NITER))
- Q21AVE = Q21AVE/DBLE(NITER)
- Q21AV2 = Q21AV2/DBLE(NITER)
- Q21AV2 = SQRT((Q21AV2-Q21AVE**2)/DBLE(NITER))
- Q22AVE = Q22AVE/DBLE(NITER)
- Q22AV2 = Q22AV2/DBLE(NITER)
- Q22AV2 = SQRT((Q22AV2-Q22AVE**2)/DBLE(NITER))
- WEIGHT = WGY*SIGMAX*DBLE(NITER)/DITRY
- EE1 = WEIGHT
- EE2 = SIGMAX*DBLE(NITER)/DITRY
-
-C output of statistics, histograms
- WRITE(LO,'(//1X,A,/1X,A,1PE12.3,A,/1X,A)')
- & '=========================================================',
- & ' ***** simulated cross section: ',WEIGHT,' mb *****',
- & '========================================================='
- WRITE(LO,'(//1X,A,I10,1p,2e14.6)')
- & 'PHO_GGEPEM:summary: NITER,ITRY,ITRW',NITER,DITRY,DITRW
- WRITE(LO,'(1X,A,1P2E12.4)') 'effective weight (FLUX,TOTAL)',
- & WGY,WEIGHT
- WRITE(LO,'(1X,A,1P2E12.4)') 'average Y1,DY1 ',
- & AY1,DAY1
- WRITE(LO,'(1X,A,1P2E12.4)') 'average Y2,DY2 ',
- & AY2,DAY2
- WRITE(LO,'(1X,A,1P2E12.4)') 'sampled Y range photon 1 ',
- & YY1MIN,YY1MAX
- WRITE(LO,'(1X,A,1P2E12.4)') 'sampled Y range photon 2 ',
- & YY2MIN,YY2MAX
- WRITE(LO,'(1X,A,1P2E12.4)') 'average Q2,DQ2 photon 1 ',
- & Q21AVE,Q21AV2
- WRITE(LO,'(1X,A,1P2E12.4)') 'sampled Q2 range photon 1 ',
- & Q21MIN,Q21MAX
- WRITE(LO,'(1X,A,1P2E12.4)') 'average Q2,DQ2 photon 2 ',
- & Q22AVE,Q22AV2
- WRITE(LO,'(1X,A,1P2E12.4)') 'sampled Q2 range photon 2 ',
- & Q22MIN,Q22MAX
- WRITE(LO,'(1X,A,1P2E12.4)') 'sampled THETA range electron1',
- & AN1MIN,AN1MAX
- WRITE(LO,'(1X,A,1P4E12.4)') 'sampled THETA range electron2',
- & AN2MIN,AN2MAX,PI-AN2MAX,PI-AN2MIN
-
- IF(ISWMDL(10).GE.2) THEN
- WRITE(LO,'(/1X,A,3(/1X,A,4I12))')
- & 'Helicity decomposition: 0 0 0 1 1 0 1 1',
- & 'tried: ',IHETRY,
- & 'accepted (1): ',IHEAC1,
- & 'accepted (2): ',IHEAC2
- ENDIF
-
- CALL PHO_EVENT(-2,P1,P2,WEIGHT,IREJ)
- IF(NITER.GT.1) THEN
- CALL PHO_PHIST(-2,WEIGHT)
- CALL PHO_LHIST(-2,WEIGHT)
- ELSE
- WRITE(LO,'(1X,A,I4)')
- & 'PHO_GGEPEM: no output of histograms',NITER
- ENDIF
-
- endif
-
- END
-
-CDECK ID>, PHO_WGEPEM
- SUBROUTINE PHO_WGEPEM(WGHAPP,WGHQPM,IMODE)
-C**********************************************************************
-C
-C calculate cross section weights for
-C fully differential equivalent (improved) photon approximation
-C and/or
-C fully differential QPM model with exact one-photon exchange graphs
-C
-C (unpolarized lepton beams)
-C
-C input: IMODE 0 flux calculation only
-C 1 flux folded with QPM cross section
-C /POFSRC/ photon and electron momenta
-C /POPRCS/ process type
-C /POCKIN/ kinematics of hard scattering
-C
-C output: WGHAPP weight of event according to approximation
-C WGHQPM weight of event according to one-photon exchange
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- DOUBLE PRECISION WGHAPP,WGHQPM
- INTEGER IMODE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C gamma-lepton or gamma-hadron vertex information
- INTEGER IGHEL,IDPSRC,IDBSRC
- DOUBLE PRECISION PINI,PFIN,PGAM,GYY,GQ2,GGECM,GAIMP,PFTHE,PFPHI,
- & RADSRC,AMSRC,GAMSRC
- COMMON /POFSRC/ PINI(5,2),PFIN(5,2),PGAM(5,2),IGHEL(2),
- & GYY(2),GQ2(2),GGECM,GAIMP(2),PFTHE(2),PFPHI(2),
- & IDPSRC(2),IDBSRC(2),RADSRC(2),AMSRC(2),GAMSRC(2)
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-C hard scattering parameters used for most recent hard interaction
- INTEGER NFbeta,NF
- DOUBLE PRECISION ALQCD2,BQCD
- COMMON /POHAPA/ ALQCD2(3,4),BQCD(4),NFbeta,NF
-C currently activated parton density parametrizations
- CHARACTER*8 PDFNAM
- INTEGER IPARID,IPAVA,ITYPE,IGRP,ISET,IEXT,NPAOLD
- DOUBLE PRECISION PDFLAM,PDFQ2M
- COMMON /POPPDF/ PDFLAM(2),PDFQ2M(2),PDFNAM(2),IPARID(2),
- & IPAVA(2),ITYPE(2),IGRP(2),ISET(2),IEXT(2),NPAOLD
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
- DOUBLE PRECISION AA,ALPHA1,ALPHA2,BB,CC,CCAP,DD,FAC,HELFLX,
- & P1,P1P2,P1Q2,P2,P2Q1,Q1KK,Q1Q2,Q2,Q2KK,QC2,RHO100,RHO1PP,
- & RHO200,RHO2PP,RHOP08,RHOPM2,RR,SH,SIGQPM,SP,SS,SW0000,SW0P0M,
- & SW0P0P,SW0PM0,SWP00P,SWP0M0,SWP0P0,SWPMPM,SWPP00,SWPPMM,SWPPPP,
- & TH,TP,UH,W2,WGHEQ,WGHQQ,XCAP,XK1,XK2,XKAM,XKAP,
- & XM2,XQ2,XTM1,XTM2,XTM3,YCAP
- DOUBLE PRECISION PHO_ALPHAS,pho_alphae
-
- INTEGER I,I1,I2,IDIR,IPFL1,IPFL2,IPOS,K
-
- DIMENSION WGHEQ(2),XM2(2),P1(4),P2(4),XK1(4),XK2(4)
- DIMENSION HELFLX(6),SIGQPM(6)
-
- WGHAPP = 1.D0
- WGHQPM = 0.D0
-
-C strict pt cutoff after putting partons on mass shell,
-C calculated in gamma-gamma CMS
- if((Imode.eq.1).and.(ipamdl(121).gt.0)) then
- if(PTfin.lt.PTwant) then
- if(ipamdl(121).gt.1) return
- if((ipamdl(121).eq.1).and.(MSPR.eq.14)) return
- endif
- endif
-
-C cross section of sampled event (approximate treatment)
-
-C photon flux
- DO 50 K=1,2
- XM2(K) = AMSRC(K)**2
- IF(abs(IGHEL(K)).EQ.1) THEN
- WGHEQ(K) = ((1.D0+(1.D0-GYY(K))**2)/GYY(K)
- & -2.D0*XM2(K)*GYY(K)/GQ2(K))/(137.D0*2.D0*PI*GQ2(K))
- ELSE
- WGHEQ(K) = (1.D0-GYY(K))/GYY(K)/(137.D0*PI*GQ2(K))
- ENDIF
- 50 CONTINUE
-
- W2 = GGECM*GGECM
- IDIR = 0
- WGHQQ = 1.D0
-
-C direct or single-resolved gam-gam interaction
- IF((IMODE.GE.1).AND.
- & (IPROCE.EQ.8).AND.(MSPR.GE.10)) THEN
- IDIR = 1
- WGHQQ = 0.D0
-C determine final state partons
- DO 100 I=3,NHEP
- IF(ISTHEP(I).EQ.25) GOTO 110
- 100 CONTINUE
- WRITE(LO,'(/1X,2A,I5)') 'PHO_WGEPEM:ERROR: ',
- & 'inconsistent process information (MSPR)',MSPR
- CALL PHO_ABORT
- 110 CONTINUE
- IPOS = I
-C final state flavors
- IPFL1 = ABS(IDHEP(IPOS+3))
- IPFL2 = ABS(IDHEP(IPOS+4))
- SH = X1*X2*W2
-C calculate alpha-em
- ALPHA1 = pho_alphae(QQAL)
-C calculate alpha-s
- IF(MSPR.LT.14) THEN
- ALPHA2 = PHO_ALPHAS(QQAL,3)
- ENDIF
-C LO matrix element (8 pi s dsig/dt)
-* QC2 = 4.D0/9.D0 - DBLE(MOD(IPFL2,2))*3.D0/9.D0
- QC2 = Q_ch2(IPFL2)
- IF(IPFL2.EQ.0) THEN
- WRITE(LO,'(1X,2A,/,5X,A,I12,I3,4I4)') 'PHO_WGEPEM:ERROR: ',
- & 'invalid hard process - flavor combination',
- & 'EVENT,MSPR,IA,IB,IC,ID:',KEVENT,MSPR,IA,IB,IC,ID
- ENDIF
- IF(MSPR.EQ.10) THEN
- WGHQQ = -8.D0*PI/(3.D0*SH**2)*ALPHA1*QC2*ALPHA2*(U**2+1.D0)/U
- & *8.D0*PI*SH
- ELSE IF(MSPR.EQ.11) THEN
- WGHQQ = PI/SH**2*ALPHA1*QC2*ALPHA2*(V**2+U**2)/(U*V)
- & *8.D0*PI*SH
- ELSE IF(MSPR.EQ.12) THEN
- WGHQQ = -8.D0*PI/(3.D0*SH**2)*ALPHA1*QC2*ALPHA2*(V**2+1.D0)/V
- & *8.D0*PI*SH
- ELSE IF(MSPR.EQ.13) THEN
- WGHQQ = PI/SH**2*ALPHA1*QC2*ALPHA2*(V**2+U**2)/(U*V)
- & *8.D0*PI*SH
- ELSE IF(MSPR.EQ.14) THEN
- WGHQQ = 6.D0*PI/SH**2*(ALPHA1*QC2)**2*(V**2+U**2)/(U*V)
- & *8.D0*PI*SH
- ENDIF
- ENDIF
-
-C fully differential cross section dsig/(dQ_^2 dQ_2^2 dy_1 dy_2 dphi)
- WGHAPP = WGHEQ(1)*WGHEQ(2)*WGHQQ/(2.D0*PI)
-
-C full leading-order QPM prediction (Budnev et al.)
-
-C full two-gamma flux
-
- P1Q2 = PINI(4,1)*PGAM(4,2)-PINI(1,1)*PGAM(1,2)
- & -PINI(2,1)*PGAM(2,2)-PINI(3,1)*PGAM(3,2)
- P2Q1 = PINI(4,2)*PGAM(4,1)-PINI(1,2)*PGAM(1,1)
- & -PINI(2,2)*PGAM(2,1)-PINI(3,2)*PGAM(3,1)
- Q1Q2 = PGAM(4,1)*PGAM(4,2)-PGAM(1,1)*PGAM(1,2)
- & -PGAM(2,1)*PGAM(2,2)-PGAM(3,1)*PGAM(3,2)
- P1P2 = PINI(4,1)*PINI(4,2)-PINI(1,1)*PINI(1,2)
- & -PINI(2,1)*PINI(2,2)-PINI(3,1)*PINI(3,2)
- DO 120 I=1,4
- P1(I) = 2.D0*PINI(I,1)-PGAM(I,1)
- P2(I) = 2.D0*PINI(I,2)-PGAM(I,2)
- 120 CONTINUE
- XTM1 = 2.D0*P1Q2-Q1Q2
- XTM2 = 2.D0*P2Q1-Q1Q2
- XTM3 = P1(4)*P2(4)-P1(1)*P2(1)-P1(2)*P2(2)-P1(3)*P2(3)
- XCAP = Q1Q2**2-GQ2(1)*GQ2(2)
- YCAP = P1P2**2-XM2(1)*XM2(2)
- CCAP = -XTM3 + Q1Q2*XTM1*XTM2/XCAP
-
- RHO1PP = (XTM1**2/XCAP+1.D0-4.D0*XM2(1)/GQ2(1))/2.D0
- RHO2PP = (XTM2**2/XCAP+1.D0-4.D0*XM2(2)/GQ2(2))/2.D0
- RHO100 = XTM1**2/XCAP-1.D0
- RHO200 = XTM2**2/XCAP-1.D0
- RHOPM2 = CCAP**2/(GQ2(1)*GQ2(2))-2.D0*(RHO1PP-1.D0)*(RHO2PP-1.D0)
- RHOP08 = 4.D0*XTM1*XTM2*CCAP/XCAP/SQRT(GQ2(1)*GQ2(2))
- SS = 2.D0*P1P2+XM2(1)+XM2(2)
-
- HELFLX(1) = 4.D0*RHO1PP*RHO2PP
- HELFLX(2) = RHOPM2
- HELFLX(3) = 2.D0*RHO1PP*RHO200
- HELFLX(4) = 2.D0*RHO100*RHO2PP
- HELFLX(5) = RHO100*RHO200
- HELFLX(6) = -RHOP08
-
-C only flux calculation
-
- IF(IDIR.EQ.0) THEN
- IF((IGHEL(1).EQ.1).AND.(IGHEL(2).EQ.1)) THEN
- WEIGHT = HELFLX(1)
- ELSE IF((IGHEL(1).EQ.1).AND.(IGHEL(2).EQ.0)) THEN
- WEIGHT = HELFLX(3)
- ELSE IF((IGHEL(1).EQ.0).AND.(IGHEL(2).EQ.1)) THEN
- WEIGHT = HELFLX(4)
- ELSE IF((IGHEL(1).EQ.0).AND.(IGHEL(2).EQ.0)) THEN
- WEIGHT = HELFLX(5)
- ELSE IF((IGHEL(1).EQ.-1).AND.(IGHEL(2).EQ.-1)) THEN
- WEIGHT = HELFLX(1)
- ELSE
- WRITE(LO,'(/1X,A,2I3)')
- & 'PHO_GGEPEM:ERROR: invalid photon helicities: ',IGHEL
- WRITE(LO,'(1X,A,I12)')
- & 'PHO_GGEPEM: event rejected (KEVENT)',KEVENT
- WEIGHT = 0.D0
- ENDIF
-
-C fully differential cross section dsig/(dQ_^2 dQ_2^2 dy_1 dy_2 dphi)
- WGHQPM = WEIGHT/(137.D0**2*16.D0*PI**4*GQ2(1)*GQ2(2))
- & *SQRT(XCAP/YCAP)*PI*SS/(2.D0*YCAP)*PINI(4,1)*PINI(4,2)
-
- ELSE
-
-C flux folded with cross section
-C polarized, leading order gam gam --> q qbar cross sections
-
- DO 125 I=1,6
- SIGQPM(I) = 0.D0
- 125 CONTINUE
-C momenta of produced parton pair
- I1 = IPOS+3
- I2 = IPOS+4
- DO 150 K=1,4
- XK1(K) = PHEP(K,I1)
- XK2(K) = PHEP(K,I2)
- 150 CONTINUE
- XQ2 = PHEP(5,I2)**2
-
- IF(MSPR.EQ.14) THEN
-C direct photon-photon interaction
- XKAP = XQ2-(PGAM(4,1)-XK1(4))**2
- & +(PGAM(1,1)-XK1(1))**2+(PGAM(2,1)-XK1(2))**2
- & +(PGAM(3,1)-XK1(3))**2
- XKAM = XQ2-(PGAM(4,1)-XK2(4))**2
- & +(PGAM(1,1)-XK2(1))**2+(PGAM(2,1)-XK2(2))**2
- & +(PGAM(3,1)-XK2(3))**2
- CC = Q1Q2
- AA = XKAP*XKAM-GQ2(1)*GQ2(2)
- BB = CC**2-XKAP*XKAM
- DD = CC**2-GQ2(1)*GQ2(2)
- RR = -XQ2+W2*AA/(4.D0*DD)
- Q1KK = Q1Q2-GQ2(1)
- Q2KK = Q1Q2-GQ2(2)
- FAC = 192.D0*(PI*ALPHA1*QC2/(XKAP*XKAM))**2/(4.D0*SQRT(XCAP))
-
- ELSE
-C single-resolved photon-hadron interactions
-C Mandelstam variables
- IF(MSPR.LE.11) THEN
- TH = (PGAM(4,1)-XK1(4))**2-(PGAM(1,1)-XK1(1))**2
- & -(PGAM(2,1)-XK1(2))**2-(PGAM(3,1)-XK1(3))**2
- UH = (PGAM(4,1)-XK2(4))**2-(PGAM(1,1)-XK2(1))**2
- & -(PGAM(2,1)-XK2(2))**2-(PGAM(3,1)-XK2(3))**2
- ELSE
- TH = (PGAM(4,2)-XK2(4))**2-(PGAM(1,2)-XK2(1))**2
- & -(PGAM(2,2)-XK2(2))**2-(PGAM(3,2)-XK2(3))**2
- UH = (PGAM(4,2)-XK1(4))**2-(PGAM(1,2)-XK1(1))**2
- & -(PGAM(2,2)-XK1(2))**2-(PGAM(3,2)-XK1(3))**2
- ENDIF
- V = TH/SH
- U = UH/SH
- ENDIF
-
- WEIGHT = 0.D0
- IF((IGHEL(1).EQ.1).AND.(IGHEL(2).EQ.1)) THEN
- IF((MSPR.EQ.10).OR.(MSPR.EQ.12)) THEN
- IF(MSPR.EQ.10) THEN
- Q2 = -GQ2(1)
- SP = SH-XQ2
- TP = UH-XQ2
- ELSE
- Q2 = -GQ2(2)
- SP = SH-XQ2
- TP = TH-XQ2
- ENDIF
- SIGQPM(1)= -32.D0*PI**2*4.D0/3.D0*ALPHA1*QC2*ALPHA2
- & *(SP*TP*(2.D0*Q2**4-4.D0*Q2*SP**3-2.D0*Q2**3*(3*SP+TP)
- & +SP**2*(SP**2+TP**2)+Q2**2*(7.D0*SP**2+2.D0*SP*TP+TP**2))
- & -2.D0*(2.D0*SP**3*TP*(SP+TP)+Q2**3*(SP**2+6.D0*SP*TP+TP**2)
- & -2.D0*Q2**2*SP*(SP**2+4.D0*SP*TP+3.D0*TP**2)+Q2*SP*
- & (SP**3+SP**2*TP-SP*TP**2+TP**3))*XQ2 +
- & 4.D0*(2.D0*Q2**2-SP**2)*(SP+TP)**2*XQ2**2)/
- & (SP**2*TP**2*((Q2-SP)**2-4.D0*Q2*XQ2))
- WEIGHT = HELFLX(1)*SIGQPM(1)/(2.D0*(SH+GQ2(1)+GQ2(2)))
- ELSE IF((MSPR.EQ.11).OR.(MSPR.EQ.13)) THEN
- IF(MSPR.EQ.11) THEN
- Q2 = -GQ2(1)
- ELSE
- Q2 = -GQ2(2)
- ENDIF
- SP = SH
- TP = UH
- SIGQPM(1) = -32.D0*PI**2/2.D0*ALPHA1*QC2*ALPHA2
- & *(-((Q2**2+SP**2)*TP*(Q2**3-SP**3-3.D0*SP**2*TP
- & - 4.D0*SP*TP**2 - 2.D0*TP**3 - 3.D0*Q2**2*(SP + TP) + Q2*
- & (3.D0*SP**2 + 6.D0*SP*TP + 4.D0*TP**2))) +
- & (3.D0*Q2**5 - Q2**4*(11.D0*SP + 10.D0*TP) +
- & 4.D0*Q2**3*(4.D0*SP**2 + 5.D0*SP*TP + 4.D0*TP**2)
- & +Q2*SP**2*(5.D0*SP**2+4.D0*SP*TP+8.D0*TP**2)-4.D0*Q2**2
- & *(3.D0*SP**3+3.D0*SP**2*TP+4.D0*SP*TP**2+2.D0*TP**3)-
- & SP**2*(SP**3+2.D0*SP**2*TP+8.D0*SP*TP**2+8.D0*TP**3))*XQ2+
- & (11.D0*Q2**4-10.D0*Q2**3*(3.D0*SP+2.D0*TP)-2.D0*Q2*SP**2
- & *(7.D0*SP+2.D0*TP)+2.D0*Q2**2*(15.D0*SP**2+10.D0*SP*TP
- & +6.D0*TP**2)+SP**2*(3.D0*SP**2+4.D0*SP*TP+12.D0*TP**2))
- & *XQ2**2+8.D0*(Q2**3-SP**2*TP-Q2**2*(SP+TP))*XQ2**3+
- & 2.D0*(Q2**2+SP**2)*XQ2**4)/((Q2-SP)**2*(-TP+XQ2)**2*
- & (Q2-SP-TP+XQ2)**2)
- WEIGHT = HELFLX(1)*SIGQPM(1)/(2.D0*(SH+GQ2(1)+GQ2(2)))
- ELSE IF(MSPR.EQ.14) THEN
- SWPMPM = 4.D0*CC**2*RR*(W2-2.D0*RR)
- SWPPPP = SWPMPM +2.D0*(CC**2+BB)*(AA-4.D0*RR*CC)
- SWPPMM = 8.D0*RR*CC*(XKAP*XKAM-RR*CC)
- & -2.D0*XKAP*XKAM*AA
- SIGQPM(1) = (SWPPPP+SWPMPM)/2.D0*FAC
- SIGQPM(2) = SWPPMM*FAC
- WEIGHT = HELFLX(1)*SIGQPM(1)
- & +HELFLX(2)*SIGQPM(2)
- ENDIF
- ELSE IF((IGHEL(1).EQ.1).AND.(IGHEL(2).EQ.0)) THEN
- IF(MSPR.EQ.12) THEN
- Q2 = -GQ2(2)
- SP = SH-XQ2
- TP = TH-XQ2
- SIGQPM(3) = 32.D0*PI**2*8.D0/3.D0*ALPHA1*QC2*ALPHA2
- & *Q2*(-(SP**2*TP**2*(-Q2 + SP + TP)) +
- & SP*TP*(2.D0*Q2**2 + 3.D0*SP**2 + 2.D0*SP*TP -
- & TP**2 - 2.D0*Q2*(3*SP + TP))*XQ2 -
- & 2.D0*(Q2*(SP**2 + 6.D0*SP*TP + TP**2) -
- & 2.D0*SP*(SP**2 + 4.D0*SP*TP + 3.D0*TP**2))*
- & XQ2**2 + 8.D0*(SP + TP)**2*XQ2**3)/
- & (SP**2*TP**2*((Q2 - SP)**2 - 4.D0*Q2*XQ2))
- WEIGHT = HELFLX(3)*SIGQPM(3)/(2.D0*(SH+GQ2(2)))
- ELSE IF(MSPR.EQ.13) THEN
- Q2 = -GQ2(2)
- SP = SH
- TP = TH
- SIGQPM(3) = 32.D0*PI**2*2.D0*ALPHA1*QC2*ALPHA2
- & *(-Q2*(SP*TP*(-Q2+SP+TP)+(Q2**2-Q2*SP-2*SP*TP)*XQ2 +
- & SP*XQ2**2))/((Q2-SP)**2*(-TP+XQ2)*(Q2-SP-TP+XQ2))
- WEIGHT = HELFLX(3)*SIGQPM(3)/(2.D0*(SH+GQ2(2)))
- ELSE IF(MSPR.EQ.14) THEN
- SWP0M0 = 4.D0*RR*GQ2(2)*(-CC**2*GQ2(1)*W2
- & -XKAP*XKAM*Q1KK**2)/DD
- SWP0P0 = - SWP0M0+2.D0*GQ2(2)*GQ2(1)**2*W2*BB/DD
- SWPP00 = 2.D0*W2*BB*(AA-2.D0*CC*RR)
- & *SQRT(GQ2(1)*GQ2(2))/DD
- SWP00P = 4.D0*RR*(CC**2*(GQ2(1)*Q2KK+GQ2(2)*Q1KK)
- & +XKAP*XKAM*Q1KK*Q2KK)*SQRT(GQ2(1)*GQ2(2))/DD
- SW0PM0 = -SWP00P-2.D0*GQ2(1)*GQ2(2)*W2*BB
- & *SQRT(GQ2(1)*GQ2(2))/DD
- SIGQPM(3) = SWP0P0*FAC
- SIGQPM(6) = (SWPP00+SW0PM0)/2.D0*FAC
- WEIGHT = HELFLX(3)*SIGQPM(3)
- & +HELFLX(6)*SIGQPM(6)/2.D0
- ENDIF
- ELSE IF((IGHEL(1).EQ.0).AND.(IGHEL(2).EQ.1)) THEN
- IF(MSPR.EQ.10) THEN
- Q2 = -GQ2(1)
- SP = SH-XQ2
- TP = UH-XQ2
- SIGQPM(4) = 32.D0*PI**2*8.D0/3.D0*ALPHA1*QC2*ALPHA2
- & *Q2*(-(SP**2*TP**2*(-Q2 + SP + TP)) +
- & SP*TP*(2.D0*Q2**2 + 3.D0*SP**2 + 2.D0*SP*TP -
- & TP**2 - 2.D0*Q2*(3*SP + TP))*XQ2 -
- & 2.D0*(Q2*(SP**2 + 6.D0*SP*TP + TP**2) -
- & 2.D0*SP*(SP**2 + 4.D0*SP*TP + 3.D0*TP**2))*
- & XQ2**2 + 8.D0*(SP + TP)**2*XQ2**3)/
- & (SP**2*TP**2*((Q2 - SP)**2 - 4.D0*Q2*XQ2))
- WEIGHT = HELFLX(4)*SIGQPM(4)/(2.D0*(SH+GQ2(1)))
- ELSE IF(MSPR.EQ.11) THEN
- Q2 = -GQ2(1)
- SP = SH
- TP = TH
- SIGQPM(4) = 32.D0*PI**2*2.D0*ALPHA1*QC2*ALPHA2
- & *(-Q2*(SP*TP*(-Q2+SP+TP)+(Q2**2-Q2*SP-2*SP*TP)*XQ2 +
- & SP*XQ2**2))/((Q2-SP)**2*(-TP+XQ2)*(Q2-SP-TP+XQ2))
- WEIGHT = HELFLX(4)*SIGQPM(4)/(2.D0*(SH+GQ2(2)))
- ELSE IF(MSPR.EQ.14) THEN
- SW0P0M = 4.D0*RR*GQ2(1)*(-CC**2*GQ2(2)*W2
- & -XKAP*XKAM*Q2KK**2)/DD
- SW0P0P = - SW0P0M+2.D0*GQ2(1)*GQ2(2)**2*W2*BB/DD
- SWPP00 = 2.D0*W2*BB*(AA-2.D0*CC*RR)
- & *SQRT(GQ2(1)*GQ2(2))/DD
- SWP00P = 4.D0*RR*(CC**2*(GQ2(1)*Q2KK+GQ2(2)*Q1KK)
- & +XKAP*XKAM*Q1KK*Q2KK)*SQRT(GQ2(1)*GQ2(2))/DD
- SW0PM0 = -SWP00P-2.D0*GQ2(1)*GQ2(2)*W2*BB
- & *SQRT(GQ2(1)*GQ2(2))/DD
- SIGQPM(4) = SW0P0P*FAC
- SIGQPM(6) = (SWPP00+SW0PM0)/2.D0*FAC
- WEIGHT = HELFLX(4)*SIGQPM(4)
- & +HELFLX(6)*SIGQPM(6)/2.D0
- ENDIF
- ELSE IF((IGHEL(1).EQ.0).AND.(IGHEL(2).EQ.0)) THEN
- IF(MSPR.EQ.14) THEN
- SW0000 = 2.D0*GQ2(1)*GQ2(2)*W2*W2*AA*BB/DD**2
- SIGQPM(5) = SW0000*FAC
- WEIGHT = HELFLX(5)*SIGQPM(5)
- ENDIF
- ELSE
- WRITE(LO,'(/1X,A,2I3)')
- & 'PHO_GGEPEM:ERROR: invalid photon helicities: ',IGHEL
- WRITE(LO,'(1X,A,I12)')
- & 'PHO_GGEPEM: event rejected (KEVENT)',KEVENT
- WEIGHT = 0.D0
- ENDIF
-
-C fully differential cross section dsig/(dQ_^2 dQ_2^2 dy_1 dy_2 dphi)
-
- WGHQPM = WEIGHT/(137.D0**2*16.D0*PI**4*GQ2(1)*GQ2(2))
- & *SQRT(XCAP/YCAP)*PI*SS/(2.D0*YCAP)*PINI(4,1)*PINI(4,2)
-
- ENDIF
-
- END
-
-CDECK ID>, PHO_GGBLSR
- SUBROUTINE PHO_GGBLSR(NEVENT,EE1,EE2,
- & Pl_lam_1,Pl_lam_2,X_1,X_2,rho,A)
-C***********************************************************************
-C
-C interface to call PHOJET (variable energy run) for
-C gamma-gamma collisions via laser backscattering
-C
-C input: EE1 lab. system energy of electron/positron 1
-C EE2 lab. system energy of electron/positron 2
-C NEVENT number of events to generate
-C Pl_lam_1/2 product of electron and photon pol.
-C X_1/2 standard X parameter
-C rho ratio of distance to conversion point and
-C transverse beam size
-C A ellipticity of electon beam
-C
-C (see Ginzburg & Kotkin hep-ph/9905462)
-C
-C from /LEPCUT/:
-C YMIN1 lower limit of Y1
-C (energy fraction taken by photon from electron)
-C YMAX1 upper limit of Y1
-C YMIN2 lower limit of Y2
-C (energy fraction taken by photon from electron)
-C YMAX2 upper limit of Y2
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( PI = 3.14159265359D0 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C photon flux kinematics and cuts
- DOUBLE PRECISION ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2
- INTEGER ITAG1,ITAG2
- COMMON /POFCUT/ ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2,
- & ITAG1,ITAG2
-C gamma-lepton or gamma-hadron vertex information
- INTEGER IGHEL,IDPSRC,IDBSRC
- DOUBLE PRECISION PINI,PFIN,PGAM,GYY,GQ2,GGECM,GAIMP,PFTHE,PFPHI,
- & RADSRC,AMSRC,GAMSRC
- COMMON /POFSRC/ PINI(5,2),PFIN(5,2),PGAM(5,2),IGHEL(2),
- & GYY(2),GQ2(2),GGECM,GAIMP(2),PFTHE(2),PFPHI(2),
- & IDPSRC(2),IDBSRC(2),RADSRC(2),AMSRC(2),GAMSRC(2)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-
- parameter (N_dim=100)
- dimension X_inp_1(N_dim),F_inp_1(N_dim),F_int_1(N_dim),
- & X_inp_2(N_dim),F_inp_2(N_dim),F_int_2(N_dim),
- & Xgrid(96),Wgrid(96)
-
- DIMENSION P1(4),P2(4)
-
- Pi2 = 2.D0*Pi
-
- WRITE(LO,'(//1X,A,I10)') 'PHO_GGBLSR: events to process',NEVENT
-
- YMAX1 = MIN(X_1/(1.D0+X_1),YMAX1)
- YMAX2 = MIN(X_2/(1.D0+X_2),YMAX2)
- IF((YMIN1.GT.YMAX1).OR.(YMIN2.GT.YMAX2)) THEN
- WRITE(LO,'(/1X,2A,2E12.4)') 'PHO_GGBLSR:ERROR: ',
- & 'invalid Ymin1,Ymin2',YMIN1,YMIN2
- RETURN
- ENDIF
- IDPSRC(1) = 0
- IDBSRC(1) = 0
- IDPSRC(2) = 0
- IDBSRC(2) = 0
-
-C initialize sampling
-
- Max_tab = 50
- DELY1 = (YMAX1-YMIN1)/DBLE(Max_tab-1)
- DELY2 = (YMAX2-YMIN2)/DBLE(Max_tab-1)
-
- IF(IDEB(30).GE.1) WRITE(LO,'(1X,A,I5)')
- & 'PHO_GGBLSR: table of photon flux ',Max_tab
-
- DO 100 I=1,Max_tab
-
- y1 = YMIN1+DELY1*DBLE(I-1)
- r1 = y1/(X_1*(1.D0-y1))
- X_inp_1(i) = y1
- F_inp_1(i) = 1.D0/(1.D0-y1)-y1+(2.D0*r1-1.D0)**2
- & -Pl_lam_1*X_1*r1*(2.D0*r1-1.D0)*(2.D0-y1)
-
- y2 = YMIN2+DELY2*DBLE(I-1)
- r2 = y2/(X_2*(1.D0-y2))
- X_inp_2(i) = y2
- F_inp_2(i) = 1.D0/(1.D0-y2)-y2+(2.D0*r2-1.D0)**2
- & -Pl_lam_2*X_2*r2*(2.D0*r2-1.D0)*(2.D0-y2)
-
- IF(IDEB(30).GE.1) WRITE(LO,'(5X,1p,2E13.4,5x,2E13.4)')
- & y1,F_inp_1(i),y2,F_inp_2(i)
-
- 100 CONTINUE
-
- call pho_samp1d(-1,X_inp_1,F_inp_1,F_int_1,Max_tab,X_out_1)
- call pho_samp1d(-1,X_inp_2,F_inp_2,F_int_2,Max_tab,X_out_2)
-
-C initialize event generator
-
-C photon 1
- EGAM = YMAX1*EE1
- P1(1) = 0.D0
- P1(2) = 0.D0
- P1(3) = EGAM
- P1(4) = EGAM
-C photon 2
- EGAM = YMAX2*EE2
- P2(1) = 0.D0
- P2(2) = 0.D0
- P2(3) = -EGAM
- P2(4) = EGAM
- CALL PHO_SETPAR(1,22,0,0.D0)
- CALL PHO_SETPAR(2,22,0,0.D0)
- CALL PHO_EVENT(-1,P1,P2,SIGMAX,IREJ)
- CALL PHO_PHIST(-1,SIGMAX)
- CALL PHO_LHIST(-1,SIGMAX)
-
-C generation of events
-
- AY1 = 0.D0
- AY2 = 0.D0
- AYS1 = 0.D0
- AYS2 = 0.D0
- NITER = NEVENT
- ITRY = 0
- ITRW = 0
- DO 200 I=1,NITER
- 150 CONTINUE
- ITRY = ITRY+1
- 175 CONTINUE
- ITRW = ITRW+1
-
- call pho_samp1d(1,X_inp_1,F_inp_1,F_int_1,Max_tab,X_out_1)
- call pho_samp1d(1,X_inp_2,F_inp_2,F_int_2,Max_tab,X_out_2)
-
- g_1 = sqrt(max(0.D0,X_1/(X_out_1+1.D-6)-X_1-1.D0))
- g_2 = sqrt(max(0.D0,X_2/(X_out_2+1.D-6)-X_2-1.D0))
- if(abs(1.D0-A).lt.1.D-3) then
- v = rho**2/4.D0*g_1*g_2
- Wght = exp(-rho**2/8.D0*(g_1-g_2)**2)*pho_ExpBessI0(v)
- else
- Nint = 16
- call pho_gauset(0.D0,Pi2,Nint,Xgrid,Wgrid)
- A2 = A**2
- fac = rho**2/(4.D0*(1.D0+A2))
- Wght = 0.D0
- do i1=1,Nint
- phi_1 = Xgrid(i1)
- do i2=1,Nint
- phi_2 = Xgrid(i2)
- Wght = Wght
- & +exp(-fac*(A2*(g_1*cos(phi_1)+g_2*cos(phi_2))**2
- & +(g_1*sin(phi_1)+g_2*sin(phi_2))**2))
- & *Wgrid(i1)*Wgrid(i2)
- enddo
- enddo
- Wght = Wght/Pi2**2
- endif
-
- IF(Wght.GT.1.D0) THEN
- WRITE(LO,'(1X,A,5E11.4)')
- & 'PHO_GGBLSR:WEIGHT ERROR:',Y1,Y2,Wght
- ENDIF
- IF(DT_RNDM(dum).GT.Wght) GOTO 175
-
- Y1 = X_out_1
- Y2 = X_out_2
-
- Q2P1 = 0.D0
- Q2P2 = 0.D0
- GYY(1) = Y1
- GQ2(1) = Q2P1
- GYY(2) = Y2
- GQ2(2) = Q2P2
-C incoming electron 1
- PINI(1,1) = 0.D0
- PINI(2,1) = 0.D0
- PINI(3,1) = EE1
- PINI(4,1) = EE1
- PINI(5,1) = 0.D0
-C outgoing electron 1
- YQ2 = SQRT((1.D0-Y1)*Q2P2)
- Q2E = Q2P1/(4.D0*EE1)
- E1Y = EE1*(1.D0-Y1)
- CALL PHO_SFECFE(SIF,COF)
- PFIN(1,1) = YQ2*COF
- PFIN(2,1) = YQ2*SIF
- PFIN(3,1) = E1Y-Q2E
- PFIN(4,1) = E1Y+Q2E
- PFIN(5,1) = 0.D0
-C photon 1
- P1(1) = -PFIN(1,1)
- P1(2) = -PFIN(2,1)
- P1(3) = PINI(3,1)-PFIN(3,1)
- P1(4) = PINI(4,1)-PFIN(4,1)
-C incoming electron 2
- PINI(1,2) = 0.D0
- PINI(2,2) = 0.D0
- PINI(3,2) = -EE2
- PINI(4,2) = EE2
- PINI(5,2) = 0.D0
-C outgoing electron 2
- YQ2 = SQRT((1.D0-Y2)*Q2P2)
- Q2E = Q2P2/(4.D0*EE2)
- E1Y = EE2*(1.D0-Y2)
- CALL PHO_SFECFE(SIF,COF)
- PFIN(1,2) = YQ2*COF
- PFIN(2,2) = YQ2*SIF
- PFIN(3,2) = -E1Y+Q2E
- PFIN(4,2) = E1Y+Q2E
- PFIN(5,2) = 0.D0
-C photon 2
- P2(1) = -PFIN(1,2)
- P2(2) = -PFIN(2,2)
- P2(3) = PINI(3,2)-PFIN(3,2)
- P2(4) = PINI(4,2)-PFIN(4,2)
-C ECMS cut
- GGECM = (P1(4)+P2(4))**2-(P1(1)+P2(1))**2
- & -(P1(2)+P2(2))**2-(P1(3)+P2(3))**2
- IF(GGECM.LT.0.1D0) GOTO 175
- GGECM = SQRT(GGECM)
- IF((GGECM.LT.ECMIN).OR.(GGECM.GT.ECMAX)) GOTO 175
-
- PGAM(1,1) = P1(1)
- PGAM(2,1) = P1(2)
- PGAM(3,1) = P1(3)
- PGAM(4,1) = P1(4)
- PGAM(5,1) = 0.D0
- PGAM(1,2) = P2(1)
- PGAM(2,2) = P2(2)
- PGAM(3,2) = P2(3)
- PGAM(4,2) = P2(4)
- PGAM(5,2) = 0.D0
-C photon helicities
- IGHEL(1) = 1
- IGHEL(2) = 1
-C cut given by user
- CALL PHO_PRESEL(5,IREJ)
- IF(IREJ.NE.0) GOTO 175
-C event generation
- CALL PHO_EVENT(1,P1,P2,SIGCUR,IREJ)
- IF(IREJ.NE.0) GOTO 150
-
-C statistics
- AY1 = AY1+Y1
- AYS1 = AYS1+Y1*Y1
- AY2 = AY2+Y2
- AYS2 = AYS2+Y2*Y2
-C histograms
- CALL PHO_PHIST(1,HSWGHT(0))
- CALL PHO_LHIST(1,HSWGHT(0))
- 200 CONTINUE
-
- WGY = DBLE(ITRY)/DBLE(ITRW)
- AY1 = AY1/DBLE(NITER)
- AYS1 = AYS1/DBLE(NITER)
- DAY1 = SQRT((AYS1-AY1**2)/DBLE(NITER))
- AY2 = AY2/DBLE(NITER)
- AYS2 = AYS2/DBLE(NITER)
- DAY2 = SQRT((AYS2-AY2**2)/DBLE(NITER))
- WEIGHT = WGY*SIGMAX*DBLE(NITER)/DBLE(ITRY)
-C output of statistics, histograms
- WRITE(LO,'(//1X,A,/1X,A,1PE12.3,A,/1X,A)')
- &'=========================================================',
- &' ***** simulated cross section: ',WEIGHT,' mb *****',
- &'========================================================='
- WRITE(LO,'(//1X,A,3I10)')
- & 'PHO_GGBLSR:SUMMARY:NITER,ITRY,ITRW',NITER,ITRY,ITRW
- WRITE(LO,'(1X,A,1P2E12.4)') 'EFFECTIVE WEIGHT (FLUX,TOTAL)',
- & WGY,WEIGHT
- WRITE(LO,'(1X,A,2F10.5)') 'PHO_GGBLSR:AVERAGE Y1,DY1 ',AY1,DAY1
- WRITE(LO,'(1X,A,2F10.5)') 'PHO_GGBLSR:AVERAGE Y2,DY2 ',AY2,DAY2
-
- CALL PHO_EVENT(-2,P1,P2,WEIGHT,IREJ)
- IF(NITER.GT.1) THEN
- CALL PHO_PHIST(-2,WEIGHT)
- CALL PHO_LHIST(-2,WEIGHT)
- ELSE
- WRITE(LO,'(1X,A,I4)') 'PHO_GGBLSR:NO OUTPUT OF HISTOGRAMS',NITER
- ENDIF
-
- END
-
-CDECK ID>, pho_samp1d
- SUBROUTINE pho_samp1d(Imode,X_inp,F_inp,F_int,N_dim,X_out)
-C***********************************************************************
-C
-C Monte Carlo sampling from arbitrary 1d distribution
-C (linear interpolation to improve reproduction of initial function)
-C
-C input: Imode -1 initialization
-C 1 sampling (after initialization)
-C X_inp(N_dim) array with x values
-C F_inp(N_dim) array with function values
-C F_int(N_dim) array with integral
-C
-C output: X_out sampled value (Imode=1)
-C
-C (R.E. 10/99)
-C
-C***********************************************************************
- implicit none
- save
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- integer Imode,N_dim
- double precision X_inp,F_inp,F_int,X_out
- dimension X_inp(N_dim),F_inp(N_dim),F_int(N_dim)
-
-C local variables
- integer i
- double precision dum,xi,a,b
-
-C external functions
- double precision DT_RNDM
- external DT_RNDM
-
- if(Imode.eq.-1) then
-
-C initialization
-
- F_int(1) = 0.D0
- do i=2,N_dim
- F_int(i) = F_int(i-1)
- & +0.5D0*(F_inp(i)+F_inp(i-1))*(X_inp(i)-X_inp(i-1))
- enddo
-
- else if(Imode.eq.1) then
-
-C sample from previously calculated integral
-
- xi = DT_RNDM(dum)*F_int(N_dim)
-
- do i=2,N_dim
- if(xi.lt.F_int(i)) then
- a = (F_inp(i)-F_inp(i-1))/(X_inp(i)-X_inp(i-1))
- b = F_inp(i)-a*X_inp(i)
- xi = xi-F_int(i-1)+0.5D0*a*X_inp(i-1)**2+b*X_inp(i-1)
- X_out = (sqrt(b**2+2.D0*a*xi)-b)/a
- return
- endif
- enddo
- X_out = X_inp(N_dim)
-
- else
-
-C invalid option Imode
-
- WRITE(LO,'(1x,a,i6)') 'PHO_SAMP1D: invalid option Imode: ',Imode
- X_out = 0.D0
-
- endif
-
- END
-
-CDECK ID>, pho_ExpBessI0
- DOUBLE PRECISION FUNCTION pho_ExpBessI0(X)
-C**********************************************************************
-C
-C Bessel Function I0 times exponential function from neg. arg.
-C (defined for pos. arguments only)
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- AX = ABS(X)
- IF (AX .LT. 3.75D0) THEN
- Y = (X/3.75D0)**2
- pho_ExpBessI0 =
- & (1.0D0+Y*(3.5156229D0+Y*(3.0899424D0+Y*(1.2067492D0
- & +Y*(0.2659732D0+Y*(0.360768D-1+Y*0.45813D-2))))))*EXP(-AX)
- ELSE
- Y = 3.75D0/AX
- pho_ExpBessI0 =
- & (1.D0/SQRT(AX))*(0.39894228D0+Y*(0.1328592D-1
- & +Y*(0.225319D-2+Y*(-0.157565D-2+Y*(0.916281D-2
- & +Y*(-0.2057706D-1+Y*(0.2635537D-1+Y*(-0.1647633D-1
- & +Y*0.392377D-2))))))))
- ENDIF
-
- END
-
-CDECK ID>, PHO_GGBEAM
- SUBROUTINE PHO_GGBEAM(NEVENT,EE,YPSI,SIGX,SIGY,SIGZ,AEB)
-C**********************************************************************
-C
-C interface to call PHOJET (variable energy run) for
-C gamma-gamma collisions via beamstrahlung
-C
-C input: EE LAB system energy of electron/positron
-C YPSI beamstrahlung parameter
-C SIGX,Y transverse bunch dimensions
-C SIGZ longitudinal bunch dimension
-C AEB number of electrons/positrons in a bunch
-C NEVENT number of events to generate
-C from /LEPCUT/:
-C YMIN1 lower limit of Y
-C (energy fraction taken by photon from electron)
-C YMAX1 upper cutoff for Y, necessary to avoid
-C underflows
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-20,
- & PI = 3.14159265359D0 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C photon flux kinematics and cuts
- DOUBLE PRECISION ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2
- INTEGER ITAG1,ITAG2
- COMMON /POFCUT/ ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2,
- & ITAG1,ITAG2
-C gamma-lepton or gamma-hadron vertex information
- INTEGER IGHEL,IDPSRC,IDBSRC
- DOUBLE PRECISION PINI,PFIN,PGAM,GYY,GQ2,GGECM,GAIMP,PFTHE,PFPHI,
- & RADSRC,AMSRC,GAMSRC
- COMMON /POFSRC/ PINI(5,2),PFIN(5,2),PGAM(5,2),IGHEL(2),
- & GYY(2),GQ2(2),GGECM,GAIMP(2),PFTHE(2),PFPHI(2),
- & IDPSRC(2),IDBSRC(2),RADSRC(2),AMSRC(2),GAMSRC(2)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-
- PARAMETER (Max_tab=100)
- DIMENSION P1(4),P2(4),TABCU(0:Max_tab),TABYL(0:Max_tab)
-
-C
- WRITE(LO,'(//1X,A,I10)') 'PHO_GGBEAM: events to process',NEVENT
-C electron data
- RE = 2.818D-12
- ELEM = 0.512D-03
- IDPSRC(1) = 0
- IDBSRC(1) = 0
- IDPSRC(2) = 0
- IDBSRC(2) = 0
-C table of flux function, log interpolation
- IF(YPSI.LE.0.D0) THEN
- YPSI = 5.D0*RE**2*EE*AEB*137.D0/(6.D0*SIGZ*(SIGX+SIGY)*ELEM)
- ENDIF
- WRITE(LO,'(/1X,A,E12.4)')
- & 'PHO_GGBEAM: beamstrahlung parameter:',YPSI
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GGBEAM: sigma-z,ne-bunch:',SIGZ,AEB
- TT = 2.D0/3.D0
- OT = 1.D0/3.D0
-C GAOT = DGAMMA(OT)
- GAOT = 2.6789385347D0
- AKAP = TT/YPSI
- WW = 1.D0/(6.D0*SQRT(AKAP))
- ANGAM = 5.D0*SIGZ*ELEM/(137.D0**2*2.D0*RE*EE)
- & *YPSI/SQRT(1.D0+YPSI**TT)
-
- YMIN = YMIN1
- YMAX = MIN(YMAX1,0.9D0)
- TABCU(0) = 0.D0
- TABYL(0) = LOG(YMIN)
- DELLY = LOG(YMAX/YMIN)/DBLE(Max_tab-1)
- FLUX = 0.D0
- IF(IDEB(30).GE.1) WRITE(LO,'(1X,A,I5)')
- & 'PHO_GGBEAM: table of photon flux',Max_tab
- DO 100 I=1,Max_tab
- Y = EXP(TABYL(0)+DELLY*DBLE(I-1))
- GG = 1.D0-0.5D0*(1-Y)**TT*(1.D0-Y+(1.D0+Y)*SQRT(1.D0+YPSI**TT))
- FF = AKAP**OT/GAOT/Y**TT/(1.D0-Y)**OT*EXP(-AKAP*Y/(1.D0-Y))
- & *((1.D0-WW)/GG*(1.D0-(1.D0-EXP(-ANGAM*GG))/(ANGAM*GG))
- & +WW*(1.D0-(1.D0-EXP(-ANGAM))/ANGAM))
- TABCU(I) = TABCU(I-1)+FF*Y
- TABYL(I) = LOG(Y)
- FLUX = FLUX+Y*FF
- IF(IDEB(30).GE.1) WRITE(LO,'(5X,2E15.4)') Y,FF
- 100 CONTINUE
- FLUX = FLUX*DELLY
- IF(IDEB(30).GE.1) WRITE(LO,'(1X,A,E12.4)')
- & 'PHO_GGBEAM: integrated flux (one side):',FLUX
-
- EE1 = EE
- EE2 = EE
-C photon 1
- EGAM = YMAX*EE
- P1(1) = 0.D0
- P1(2) = 0.D0
- P1(3) = EGAM
- P1(4) = EGAM
-C photon 2
- EGAM = YMAX*EE
- P2(1) = 0.D0
- P2(2) = 0.D0
- P2(3) = -EGAM
- P2(4) = EGAM
- CALL PHO_SETPAR(1,22,0,0.D0)
- CALL PHO_SETPAR(2,22,0,0.D0)
- CALL PHO_EVENT(-1,P1,P2,SIGMAX,IREJ)
- CALL PHO_PHIST(-1,SIGMAX)
- CALL PHO_LHIST(-1,SIGMAX)
-
-C generation of events
-
- AY1 = 0.D0
- AY2 = 0.D0
- AYS1 = 0.D0
- AYS2 = 0.D0
- NITER = NEVENT
- ITRY = 0
- ITRW = 0
- DO 200 I=1,NITER
- 150 CONTINUE
- ITRY = ITRY+1
- 175 CONTINUE
- ITRW = ITRW+1
- XI = DT_RNDM(AY1)*TABCU(Max_tab)
- DO 110 K=1,Max_tab
- IF(TABCU(K).GE.XI) THEN
- Y1 = DELLY/(TABCU(K)-TABCU(K-1))*(XI-TABCU(K-1))+TABYL(K-1)
- Y1 = EXP(Y1)
- GOTO 120
- ENDIF
- 110 CONTINUE
- Y1 = YMAX
- 120 CONTINUE
- XI = DT_RNDM(AY2)*TABCU(Max_tab)
- DO 130 K=1,Max_tab
- IF(TABCU(K).GE.XI) THEN
- Y2 = DELLY/(TABCU(K)-TABCU(K-1))*(XI-TABCU(K-1))+TABYL(K-1)
- Y2 = EXP(Y2)
- GOTO 140
- ENDIF
- 130 CONTINUE
- Y2 = YMAX
- 140 CONTINUE
-
- Q2P1 = 0.D0
- Q2P2 = 0.D0
- GYY(1) = Y1
- GQ2(1) = Q2P1
- GYY(2) = Y2
- GQ2(2) = Q2P2
-C incoming electron 1
- PINI(1,1) = 0.D0
- PINI(2,1) = 0.D0
- PINI(3,1) = EE1
- PINI(4,1) = EE1
- PINI(5,1) = 0.D0
-C outgoing electron 1
- YQ2 = SQRT((1.D0-Y1)*Q2P2)
- Q2E = Q2P1/(4.D0*EE1)
- E1Y = EE1*(1.D0-Y1)
- CALL PHO_SFECFE(SIF,COF)
- PFIN(1,1) = YQ2*COF
- PFIN(2,1) = YQ2*SIF
- PFIN(3,1) = E1Y-Q2E
- PFIN(4,1) = E1Y+Q2E
- PFIN(5,1) = 0.D0
-C photon 1
- P1(1) = -PFIN(1,1)
- P1(2) = -PFIN(2,1)
- P1(3) = PINI(3,1)-PFIN(3,1)
- P1(4) = PINI(4,1)-PFIN(4,1)
-C incoming electron 2
- PINI(1,2) = 0.D0
- PINI(2,2) = 0.D0
- PINI(3,2) = -EE2
- PINI(4,2) = EE2
- PINI(5,2) = 0.D0
-C outgoing electron 2
- YQ2 = SQRT((1.D0-Y2)*Q2P2)
- Q2E = Q2P2/(4.D0*EE2)
- E1Y = EE2*(1.D0-Y2)
- CALL PHO_SFECFE(SIF,COF)
- PFIN(1,2) = YQ2*COF
- PFIN(2,2) = YQ2*SIF
- PFIN(3,2) = -E1Y+Q2E
- PFIN(4,2) = E1Y+Q2E
- PFIN(5,2) = 0.D0
-C photon 2
- P2(1) = -PFIN(1,2)
- P2(2) = -PFIN(2,2)
- P2(3) = PINI(3,2)-PFIN(3,2)
- P2(4) = PINI(4,2)-PFIN(4,2)
-C ECMS cut
- GGECM = (P1(4)+P2(4))**2-(P1(1)+P2(1))**2
- & -(P1(2)+P2(2))**2-(P1(3)+P2(3))**2
- IF(GGECM.LT.0.1D0) GOTO 175
- GGECM = SQRT(GGECM)
- IF((GGECM.LT.ECMIN).OR.(GGECM.GT.ECMAX)) GOTO 175
-C
- PGAM(1,1) = P1(1)
- PGAM(2,1) = P1(2)
- PGAM(3,1) = P1(3)
- PGAM(4,1) = P1(4)
- PGAM(5,1) = 0.D0
- PGAM(1,2) = P2(1)
- PGAM(2,2) = P2(2)
- PGAM(3,2) = P2(3)
- PGAM(4,2) = P2(4)
- PGAM(5,2) = 0.D0
-C photon helicities
- IGHEL(1) = 1
- IGHEL(2) = 1
-C cut given by user
- CALL PHO_PRESEL(5,IREJ)
- IF(IREJ.NE.0) GOTO 175
-C event generation
- CALL PHO_EVENT(1,P1,P2,SIGCUR,IREJ)
- IF(IREJ.NE.0) GOTO 150
- GGECML = LOG(GGECM)
-
-C statistics
- AY1 = AY1+Y1
- AYS1 = AYS1+Y1*Y1
- AY2 = AY2+Y2
- AYS2 = AYS2+Y2*Y2
-C histograms
- CALL PHO_PHIST(1,HSWGHT(0))
- CALL PHO_LHIST(1,HSWGHT(0))
- 200 CONTINUE
-C
- WGY = FLUX**2*DBLE(ITRY)/DBLE(ITRW)
- AY1 = AY1/DBLE(NITER)
- AYS1 = AYS1/DBLE(NITER)
- DAY1 = SQRT((AYS1-AY1**2)/DBLE(NITER))
- AY2 = AY2/DBLE(NITER)
- AYS2 = AYS2/DBLE(NITER)
- DAY2 = SQRT((AYS2-AY2**2)/DBLE(NITER))
- WEIGHT = WGY*SIGMAX*DBLE(NITER)/DBLE(ITRY)
-C output of statistics, histograms
- WRITE(LO,'(//1X,A,/1X,A,1PE12.3,A,/1X,A)')
- &'=========================================================',
- &' ***** simulated cross section: ',WEIGHT,' mb *****',
- &'========================================================='
- WRITE(LO,'(//1X,A,2I10)')
- & 'PHO_GGBEAM:SUMMARY:NITER,ITRY',NITER,ITRY
- WRITE(LO,'(1X,A,1P2E12.4)') 'EFFECTIVE WEIGHT (FLUX,TOTAL)',
- & WGY,WEIGHT
- WRITE(LO,'(1X,A,2F10.5)') 'PHO_GGBEAM:AVERAGE Y1,DY1 ',AY1,DAY1
- WRITE(LO,'(1X,A,2F10.5)') 'PHO_GGBEAM:AVERAGE Y2,DY2 ',AY2,DAY2
-C
- CALL PHO_EVENT(-2,P1,P2,WEIGHT,IREJ)
- IF(NITER.GT.1) THEN
- CALL PHO_PHIST(-2,WEIGHT)
- CALL PHO_LHIST(-2,WEIGHT)
- ELSE
- WRITE(LO,'(1X,A,I4)') 'PHO_GGBEAM:NO OUTPUT OF HISTOGRAMS',NITER
- ENDIF
-
- END
-
-CDECK ID>, PHO_GGHIOF
- SUBROUTINE PHO_GGHIOF(NEVENT,EEN,NA,NZ)
-C**********************************************************************
-C
-C interface to call PHOJET (variable energy run) for
-C gamma-gamma collisions via heavy ions (form factor approach)
-C
-C input: EEN LAB system energy per nucleon
-C NA atomic number of ion/hadron
-C NZ charge number of ion/hadron
-C NEVENT number of events to generate
-C from /LEPCUT/:
-C YMIN1,2 lower limit of Y
-C (energy fraction taken by photon from hadron)
-C YMAX1,2 upper cutoff for Y, necessary to avoid
-C underflows
-C Q2MIN1,2 minimum Q**2 of photons (should be set to 0)
-C Q2MAX1,2 maximum Q**2 of photons (if necessary,
-C corrected according size of hadron)
-C
-C currently implemented approximation similar to:
-C E.Papageorgiu PhysLettB250(1990)155
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( PI = 3.14159265359D0 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C photon flux kinematics and cuts
- DOUBLE PRECISION ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2
- INTEGER ITAG1,ITAG2
- COMMON /POFCUT/ ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2,
- & ITAG1,ITAG2
-C gamma-lepton or gamma-hadron vertex information
- INTEGER IGHEL,IDPSRC,IDBSRC
- DOUBLE PRECISION PINI,PFIN,PGAM,GYY,GQ2,GGECM,GAIMP,PFTHE,PFPHI,
- & RADSRC,AMSRC,GAMSRC
- COMMON /POFSRC/ PINI(5,2),PFIN(5,2),PGAM(5,2),IGHEL(2),
- & GYY(2),GQ2(2),GGECM,GAIMP(2),PFTHE(2),PFPHI(2),
- & IDPSRC(2),IDBSRC(2),RADSRC(2),AMSRC(2),GAMSRC(2)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-
- DIMENSION P1(4),P2(4),BIMP(2,2)
-
-C
- WRITE(LO,'(2(/1X,A))') 'PHO_GGHIOF:GAMMA-GAMMA EVENT GENERATION',
- & '--------------------------------------'
-C hadron size and mass
- FM2GEV = 5.07D0
- HIMASS = DBLE(NA)*0.938D0
- HIMA2 = HIMASS**2
- HIRADI = 1.2D0*FM2GEV*DBLE(NA)**0.333
- ALPHA = DBLE(NZ**2)/137.D0
-C correct Q2MAX1,2 according to hadron size
- Q2MAXH = 2.D0/HIRADI**2
- Q2MAX1 = MIN(Q2MAX1,Q2MAXH)
- Q2MAX2 = MIN(Q2MAX2,Q2MAXH)
- IF(Q2MAX1.LT.1.D-20) Q2MAX1 = Q2MAXH
- IF(Q2MAX2.LT.1.D-20) Q2MAX2 = Q2MAXH
-C total hadron / heavy ion energy
- EE = EEN*DBLE(NA)
- GAMMA = EE/HIMASS
-C setup /POFSRC/
- GAMSRC(1) = GAMMA
- GAMSRC(2) = GAMMA
- RADSRC(1) = HIRADI
- RADSRC(2) = HIRADI
- AMSRC(1) = HIMASS
- AMSRC(1) = HIMASS
-C kinematic limitations
- YMI = (ECMIN/(2.D0*EE))**2
- IF(YMIN1.LT.YMI) THEN
- WRITE(LO,'(/1X,A,2E12.5)')
- & 'PHO_GGHIOF: ymin1 increased to (old/new)',YMIN1,YMI
- YMIN1 = YMI
- ELSE IF(YMIN1.GT.YMI) THEN
- WRITE(LO,'(/1X,A,/1X,A,E12.5,A,E12.5)')
- & 'PHO_GGHIOF:','ECM-CUT CORRESPONDS TO YMIN1 OF',YMI,
- & ' INSTEAD OF',YMIN1
- ENDIF
- IF(YMIN2.LT.YMI) THEN
- WRITE(LO,'(/1X,A,2E12.5)')
- & 'PHO_GGHIOF: ymin2 increased to (old/new)',YMIN2,YMI
- YMIN2 = YMI
- ELSE IF(YMIN2.GT.YMI) THEN
- WRITE(LO,'(/1X,A,/1X,A,E12.5,A,E12.5)')
- & 'PHO_GGHIOF:','ECM-CUT CORRESPONDS TO YMIN2 OF',YMI,
- & ' INSTEAD OF',YMIN2
- ENDIF
-C kinematic limitation
- Q2LOW1 = MAX(Q2MIN1,HIMA2*YMIN1**2/(1.D0-YMIN1))
- Q2LOW2 = MAX(Q2MIN2,HIMA2*YMIN2**2/(1.D0-YMIN2))
-C debug output
- WRITE(LO,'(/6X,A,2I4)') 'MASS NUMBER, CHARGE NUMBER ',NA,NZ
- WRITE(LO,'(6X,A,E12.5)') 'HADRON MASS (GeV) ',HIMASS
- WRITE(LO,'(6X,A,E12.5)') 'HADRON RADIUS (GeV**-1) ',HIRADI
- WRITE(LO,'(6X,A,2E12.5)') 'Q**2 RANGE PHOTON 1 (GEV**2)',Q2LOW1,
- & Q2MAX1
- WRITE(LO,'(6X,A,2E12.5)') 'Q**2 RANGE PHOTON 2 (GEV**2)',Q2LOW2,
- & Q2MAX2
- WRITE(LO,'(6X,A,2E12.5)') 'Y RANGE PHOTON 1 ',YMIN1,
- & YMAX1
- WRITE(LO,'(6X,A,2E12.5)') 'Y RANGE PHOTON 2 ',YMIN2,
- & YMAX2
- WRITE(LO,'(6X,A,2E12.5)') 'SQRT(S) PER NUCLEON, TOTAL ',
- & 2.D0*EEN,2.D0*EE
- WRITE(LO,'(6X,A,I10)') 'EVENTS TO PROCESS ',NEVENT
- IF(Q2LOW1.GE.Q2MAX1) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GGHIOF:ERROR:INCONSISTENT Q**2 RANGE 1',Q2LOW1,Q2MAX1
- CALL PHO_ABORT
- ENDIF
- IF(Q2LOW2.GE.Q2MAX2) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GGHIOF:ERROR:INCONSISTENT Q**2 RANGE 2',Q2LOW2,Q2MAX2
- CALL PHO_ABORT
- ENDIF
-C hadron numbers set to 0
- IDPSRC(1) = 0
- IDPSRC(2) = 0
- IDBSRC(1) = 0
- IDBSRC(2) = 0
-C
- Max_tab = 100
- YMAX = YMAX1
- YMIN = YMIN1
- XMAX = LOG(YMAX)
- XMIN = LOG(YMIN)
- XDEL = XMAX-XMIN
- DELLY = LOG(YMAX/YMIN)/DBLE(Max_tab-1)
- DO 100 I=1,Max_tab
- Y1 = EXP(XMIN+DELLY*DBLE(I-1))
- Q2LOW1 = MAX(Q2MIN1,HIMA2*Y1*Y1/(1.D0-Y1))
- IF(Q2LOW1.GE.Q2MAX1) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GGHIOF: ymax1 changed from/to',YMAX1,Y1
- YMAX1 = MIN(Y1,YMAX1)
- GOTO 101
- ENDIF
- 100 CONTINUE
- 101 CONTINUE
- YMAX = YMAX2
- YMIN = YMIN2
- XMAX = LOG(YMAX)
- XMIN = LOG(YMIN)
- XDEL = XMAX-XMIN
- DELLY = LOG(YMAX/YMIN)/DBLE(Max_tab-1)
- DO 102 I=1,Max_tab
- Y1 = EXP(XMIN+DELLY*DBLE(I-1))
- Q2LOW2 = MAX(Q2MIN2,HIMA2*Y1*Y1/(1.D0-Y1))
- IF(Q2LOW2.GE.Q2MAX2) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GGHIOF: ymax2 changed from/to',YMAX2,Y1
- YMAX2 = MIN(Y1,YMAX2)
- GOTO 103
- ENDIF
- 102 CONTINUE
- 103 CONTINUE
- YMI = (ECMIN/(2.D0*EE))**2/YMAX2
- IF(YMI.GT.YMIN1) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GGHIOF: ymin1 changed from/to',YMIN1,YMI
- YMIN1 = YMI
- ENDIF
- YMI = (ECMIN/(2.D0*EE))**2/YMAX1
- IF(YMI.GT.YMIN2) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GGHIOF: ymin2 changed from/to',YMIN2,YMI
- YMIN2 = YMI
- ENDIF
-C
- X1MAX = LOG(YMAX1)
- X1MIN = LOG(YMIN1)
- X1DEL = X1MAX-X1MIN
- X2MAX = LOG(YMAX2)
- X2MIN = LOG(YMIN2)
- X2DEL = X2MAX-X2MIN
- DELLY = LOG(YMAX1/YMIN1)/DBLE(Max_tab-1)
- FLUX = 0.D0
- IF(IDEB(30).GE.1) WRITE(LO,'(/1X,A,I5)')
- & 'PHO_GGHIOF: table of raw photon flux (side 1)',Max_tab
- DO 105 I=1,Max_tab
- Y1 = EXP(X1MIN+DELLY*DBLE(I-1))
- Q2LOW1 = MAX(Q2MIN1,HIMA2*Y1*Y1/(1.D0-Y1))
- FF = ((1.D0+(1.D0-Y1)**2)/Y1*LOG(Q2MAX1/Q2LOW1)
- & -2.D0*HIMA2*Y1*(1.D0/Q2LOW1-1.D0/Q2MAX1))*ALPHA/(2.D0*PI)
- FLUX = FLUX+Y1*FF
- IF(IDEB(30).GE.1) WRITE(LO,'(5X,2E15.4)') Y1,FF
- 105 CONTINUE
- FLUX = FLUX*DELLY
- IF(IDEB(30).GE.1) WRITE(LO,'(1X,A,E12.4)')
- & 'PHO_GGHIOF: integrated flux (one side):',FLUX
-C
- Q2LOW1 = MAX(Q2MIN1,HIMA2*YMIN1**2/(1.D0-YMIN1))
- Q2LOW2 = MAX(Q2MIN2,HIMA2*YMIN2**2/(1.D0-YMIN2))
- Y1 = YMIN1
- Y2 = YMIN2
- WGMAX = ((1.D0+(1.D0-Y1)**2)*LOG(Q2MAX1/Q2LOW1)
- & -2.D0*HIMA2*Y1*(1.D0/Q2LOW1-1.D0/Q2MAX1)*Y1)
- & *((1.D0+(1.D0-Y2)**2)*LOG(Q2MAX2/Q2LOW2)
- & -2.D0*HIMA2*Y2*(1.D0/Q2LOW2-1.D0/Q2MAX2)*Y2)
-C
-C photon 1
- EGAM = YMAX1*EE
- P1(1) = 0.D0
- P1(2) = 0.D0
- P1(3) = EGAM
- P1(4) = EGAM
-C photon 2
- EGAM = YMAX2*EE
- P2(1) = 0.D0
- P2(2) = 0.D0
- P2(3) = -EGAM
- P2(4) = EGAM
- CALL PHO_SETPAR(1,22,0,0.D0)
- CALL PHO_SETPAR(2,22,0,0.D0)
- CALL PHO_EVENT(-1,P1,P2,SIGMAX,IREJ)
- CALL PHO_PHIST(-1,SIGMAX)
- CALL PHO_LHIST(-1,SIGMAX)
-C
-C generation of events, flux calculation
-
- ECFRAC = ECMIN**2/(4.D0*EE*EE)
- AY1 = 0.D0
- AY2 = 0.D0
- AYS1 = 0.D0
- AYS2 = 0.D0
- Q21MIN = 1.D30
- Q22MIN = 1.D30
- Q21MAX = 0.D0
- Q22MAX = 0.D0
- Q21AVE = 0.D0
- Q22AVE = 0.D0
- Q21AV2 = 0.D0
- Q22AV2 = 0.D0
- YY1MIN = 1.D30
- YY2MIN = 1.D30
- YY1MAX = 0.D0
- YY2MAX = 0.D0
- NITER = NEVENT
- ITRY = 0
- ITRW = 0
- DO 200 I=1,NITER
-C sample y1, y2
- 150 CONTINUE
- ITRY = ITRY+1
- 175 CONTINUE
- ITRW = ITRW+1
- Y1 = EXP(X1DEL*DT_RNDM(AY1)+X1MIN)
- Y2 = EXP(X2DEL*DT_RNDM(AY2)+X2MIN)
- IF(Y1*Y2.LT.ECFRAC) GOTO 175
-C
- Q2LOW1 = MAX(Q2MIN1,HIMA2*Y1**2/(1.D0-Y1))
- IF(Q2LOW1.GE.Q2MAX1) GOTO 175
- Q2LOW2 = MAX(Q2MIN2,HIMA2*Y2**2/(1.D0-Y2))
- IF(Q2LOW2.GE.Q2MAX2) GOTO 175
- Q2LOG1 = LOG(Q2MAX1/Q2LOW1)
- Q2LOG2 = LOG(Q2MAX2/Q2LOW2)
- WGH = ((1.D0+(1.D0-Y1)**2)*Q2LOG1
- & -2.D0*HIMA2*Y1*(1.D0/Q2LOW1-1.D0/Q2MAX1)*Y1)
- & *((1.D0+(1.D0-Y2)**2)*Q2LOG2
- & -2.D0*HIMA2*Y2*(1.D0/Q2LOW2-1.D0/Q2MAX2)*Y2)
- IF(WGMAX.LT.WGH) THEN
- WRITE(LO,'(1X,A,4E12.5)')
- & 'PHO_GGHIOF:WEIGHT ERROR:',Y1,Y2,WGMAX,WGH
- ENDIF
- IF(DT_RNDM(AYS1)*WGMAX.GT.WGH) GOTO 175
-C sample Q2
- IF(IPAMDL(174).EQ.1) THEN
- YEFF = 1.D0+(1.D0-Y1)**2
- 185 CONTINUE
- Q2P1 = Q2LOW1*EXP(Q2LOG1*DT_RNDM(Y1))
- WEIGHT = (YEFF-2.D0*(1.D0-Y1)*Q2LOW1/Q2P1)/YEFF
- IF(WEIGHT.LT.DT_RNDM(Q2P1)) GOTO 185
- ELSE
- Q2P1 = Q2LOW1
- ENDIF
- IF(IPAMDL(174).EQ.1) THEN
- YEFF = 1.D0+(1.D0-Y2)**2
- 186 CONTINUE
- Q2P2 = Q2LOW2*EXP(Q2LOG2*DT_RNDM(Y2))
- WEIGHT = (YEFF-2.D0*(1.D0-Y2)*Q2LOW2/Q2P2)/YEFF
- IF(WEIGHT.LT.DT_RNDM(Q2P2)) GOTO 186
- ELSE
- Q2P2 = Q2LOW2
- ENDIF
-C impact parameter
- GAIMP(1) = 1.D0/SQRT(Q2P1)
- GAIMP(2) = 1.D0/SQRT(Q2P2)
-C form factor (squared)
- FF21 = 1.D0
- IF(GAIMP(1).LT.HIRADI) FF21 = 0.D0
- FF22 = 1.D0
- IF(GAIMP(2).LT.HIRADI) FF22 = 0.D0
- IF(DT_RNDM(Q2P1).GE.FF21*FF22) GOTO 175
-C do the hadrons overlap?
- IF(ISWMDL(26).GT.0) THEN
- DO 190 K=1,2
- CALL PHO_SFECFE(SIF,COF)
- BIMP(1,K) = SIF*GAIMP(K)
- BIMP(2,K) = COF*GAIMP(K)
- 190 CONTINUE
- BBABS = SQRT((BIMP(1,1)-BIMP(1,2))**2
- & +(BIMP(2,1)-BIMP(2,2))**2)
- IF(BBABS.LT.HIRADI+HIRADI) GOTO 175
- ENDIF
-C photon data
- GYY(1) = Y1
- GQ2(1) = Q2P1
- GYY(2) = Y2
- GQ2(2) = Q2P2
-C
-
-C incoming hadron 1
- PINI(1,1) = 0.D0
- PINI(2,1) = 0.D0
- PINI(3,1) = EE
- PINI(4,1) = EE
- PINI(5,1) = 0.D0
-C outgoing hadron 1
- YQ2 = SQRT((1.D0-Y1)*Q2P1)
- Q2E = Q2P1/(4.D0*EE)
- E1Y = EE*(1.D0-Y1)
- CALL PHO_SFECFE(SIF,COF)
- PFIN(1,1) = YQ2*COF
- PFIN(2,1) = YQ2*SIF
- PFIN(3,1) = E1Y-Q2E
- PFIN(4,1) = E1Y+Q2E
- PFIN(5,1) = 0.D0
- PFPHI(1) = ATAN2(COF,SIF)
- PFTHE(1) = ACOS((E1Y-Q2E)/(Q2E+E1Y))
-C photon 1
- P1(1) = -PFIN(1,1)
- P1(2) = -PFIN(2,1)
- P1(3) = PINI(3,1)-PFIN(3,1)
- P1(4) = PINI(4,1)-PFIN(4,1)
-C incoming hadron 2
- PINI(1,2) = 0.D0
- PINI(2,2) = 0.D0
- PINI(3,2) = -EE
- PINI(4,2) = EE
- PINI(5,2) = 0.D0
-C outgoing hadron 2
- YQ2 = SQRT((1.D0-Y2)*Q2P2)
- Q2E = Q2P2/(4.D0*EE)
- E1Y = EE*(1.D0-Y2)
- CALL PHO_SFECFE(SIF,COF)
- PFIN(1,2) = YQ2*COF
- PFIN(2,2) = YQ2*SIF
- PFIN(3,2) = -E1Y+Q2E
- PFIN(4,2) = E1Y+Q2E
- PFIN(5,2) = 0.D0
- PFPHI(2) = ATAN2(COF,SIF)
- PFTHE(2) = ACOS((Q2E-E1Y)/(Q2E+E1Y))
-C photon 2
- P2(1) = -PFIN(1,2)
- P2(2) = -PFIN(2,2)
- P2(3) = PINI(3,2)-PFIN(3,2)
- P2(4) = PINI(4,2)-PFIN(4,2)
-C ECMS cut
- GGECM = (P1(4)+P2(4))**2-(P1(1)+P2(1))**2
- & -(P1(2)+P2(2))**2-(P1(3)+P2(3))**2
- IF(GGECM.LT.0.1D0) GOTO 175
- GGECM = SQRT(GGECM)
- IF((GGECM.LT.ECMIN).OR.(GGECM.GT.ECMAX)) GOTO 175
-C
- PGAM(1,1) = P1(1)
- PGAM(2,1) = P1(2)
- PGAM(3,1) = P1(3)
- PGAM(4,1) = P1(4)
- PGAM(5,1) = -SQRT(Q2P1)
- PGAM(1,2) = P2(1)
- PGAM(2,2) = P2(2)
- PGAM(3,2) = P2(3)
- PGAM(4,2) = P2(4)
- PGAM(5,2) = -SQRT(Q2P2)
-C photon helicities
- IGHEL(1) = 1
- IGHEL(2) = 1
-C cut given by user
- CALL PHO_PRESEL(5,IREJ)
- IF(IREJ.NE.0) GOTO 175
-C event generation
- CALL PHO_EVENT(1,P1,P2,SIGCUR,IREJ)
- IF(IREJ.NE.0) GOTO 150
-
-C statistics
- AY1 = AY1+Y1
- AYS1 = AYS1+Y1*Y1
- AY2 = AY2+Y2
- AYS2 = AYS2+Y2*Y2
- Q21MIN = MIN(Q21MIN,Q2P1)
- Q22MIN = MIN(Q22MIN,Q2P2)
- Q21MAX = MAX(Q21MAX,Q2P1)
- Q22MAX = MAX(Q22MAX,Q2P2)
- YY1MIN = MIN(YY1MIN,Y1)
- YY2MIN = MIN(YY2MIN,Y2)
- YY1MAX = MAX(YY1MAX,Y1)
- YY2MAX = MAX(YY2MAX,Y2)
- Q21AVE = Q21AVE+Q2P1
- Q22AVE = Q22AVE+Q2P2
- Q21AV2 = Q21AV2+Q2P1*Q2P1
- Q22AV2 = Q22AV2+Q2P2*Q2P2
-C histograms
- CALL PHO_PHIST(1,HSWGHT(0))
- CALL PHO_LHIST(1,HSWGHT(0))
- 200 CONTINUE
-C
- WGY = WGMAX*DBLE(ITRY)/DBLE(ITRW)*(ALPHA/(2.D0*PI))**2
- WGY = WGY*LOG(YMAX1/YMIN1)*LOG(YMAX2/YMIN2)
- AY1 = AY1/DBLE(NITER)
- AYS1 = AYS1/DBLE(NITER)
- DAY1 = SQRT((AYS1-AY1**2)/DBLE(NITER))
- AY2 = AY2/DBLE(NITER)
- AYS2 = AYS2/DBLE(NITER)
- DAY2 = SQRT((AYS2-AY2**2)/DBLE(NITER))
- Q21AVE = Q21AVE/DBLE(NITER)
- Q21AV2 = Q21AV2/DBLE(NITER)
- Q21AV2 = SQRT((Q21AV2-Q21AVE**2)/DBLE(NITER))
- Q22AVE = Q22AVE/DBLE(NITER)
- Q22AV2 = Q22AV2/DBLE(NITER)
- Q22AV2 = SQRT((Q22AV2-Q22AVE**2)/DBLE(NITER))
- WEIGHT = WGY*SIGMAX*DBLE(NITER)/DBLE(ITRY)
-C output of statistics, histograms
- WRITE(LO,'(//1X,A,/1X,A,1PE12.3,A,/1X,A)')
- &'=========================================================',
- &' ***** simulated cross section: ',WEIGHT,' mb *****',
- &'========================================================='
- WRITE(LO,'(//1X,A,3I10)')
- & 'PHO_GGHIOF:SUMMARY:NITER,ITRY,ITRW',NITER,ITRY,ITRW
- WRITE(LO,'(1X,A,1P2E12.4)') 'EFFECTIVE WEIGHT (FLUX,TOTAL)',
- & WGY,WEIGHT
- WRITE(LO,'(1X,A,1P2E12.4)') 'AVERAGE Y1,DY1 ',
- & AY1,DAY1
- WRITE(LO,'(1X,A,1P2E12.4)') 'AVERAGE Y2,DY2 ',
- & AY2,DAY2
- WRITE(LO,'(1X,A,1P2E12.4)') 'SAMPLED Y RANGE PHOTON 1 ',
- & YY1MIN,YY1MAX
- WRITE(LO,'(1X,A,1P2E12.4)') 'SAMPLED Y RANGE PHOTON 2 ',
- & YY2MIN,YY2MAX
- WRITE(LO,'(1X,A,1P2E12.4)') 'AVERAGE Q2,DQ2 PHOTON 1 ',
- & Q21AVE,Q21AV2
- WRITE(LO,'(1X,A,1P2E12.4)') 'SAMPLED Q2 RANGE PHOTON 1 ',
- & Q21MIN,Q21MAX
- WRITE(LO,'(1X,A,1P2E12.4)') 'AVERAGE Q2,DQ2 PHOTON 2 ',
- & Q22AVE,Q22AV2
- WRITE(LO,'(1X,A,1P2E12.4)') 'SAMPLED Q2 RANGE PHOTON 2 ',
- & Q22MIN,Q22MAX
-C
- CALL PHO_EVENT(-2,P1,P2,WEIGHT,IREJ)
- IF(NITER.GT.1) THEN
- CALL PHO_PHIST(-2,WEIGHT)
- CALL PHO_LHIST(-2,WEIGHT)
- ELSE
- WRITE(LO,'(1X,A,I4)') 'PHO_GGHIOF:NO OUTPUT OF HISTOGRAMS',NITER
- ENDIF
-
- END
-
-CDECK ID>, PHO_GGHIOG
- SUBROUTINE PHO_GGHIOG(NEVENT,EEN,NA,NZ)
-C**********************************************************************
-C
-C interface to call PHOJET (variable energy run) for
-C gamma-gamma collisions via heavy ions (geometrical approach)
-C
-C
-C input: EEN LAB system energy per nucleon
-C NA atomic number of ion/hadron
-C NZ charge number of ion/hadron
-C NEVENT number of events to generate
-C from /LEPCUT/:
-C YMIN1,2 lower limit of Y
-C (energy fraction taken by photon from hadron)
-C YMAX1,2 upper cutoff for Y, necessary to avoid
-C underflows
-C
-C currently implemented approximation similar to:
-C
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-20,
- & PI = 3.14159265359D0 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C photon flux kinematics and cuts
- DOUBLE PRECISION ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2
- INTEGER ITAG1,ITAG2
- COMMON /POFCUT/ ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2,
- & ITAG1,ITAG2
-C gamma-lepton or gamma-hadron vertex information
- INTEGER IGHEL,IDPSRC,IDBSRC
- DOUBLE PRECISION PINI,PFIN,PGAM,GYY,GQ2,GGECM,GAIMP,PFTHE,PFPHI,
- & RADSRC,AMSRC,GAMSRC
- COMMON /POFSRC/ PINI(5,2),PFIN(5,2),PGAM(5,2),IGHEL(2),
- & GYY(2),GQ2(2),GGECM,GAIMP(2),PFTHE(2),PFPHI(2),
- & IDPSRC(2),IDBSRC(2),RADSRC(2),AMSRC(2),GAMSRC(2)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-
- PARAMETER (Max_tab=100)
- DIMENSION P1(4),P2(4),TABCU(0:Max_tab),TABYL(0:Max_tab)
-
-C
- WRITE(LO,'(2(/1X,A))') 'PHO_GGHIOG: gamma-gamma event generation',
- & '---------------------------------------'
-C hadron size and mass
- FM2GEV = 5.07D0
- HIMASS = DBLE(NA)*0.938D0
- HIMA2 = HIMASS**2
- HIRADI = 1.2D0*FM2GEV*DBLE(NA)**0.333
- ALPHA = DBLE(NZ**2)/137.D0
-C total hadron / heavy ion energy
- EE = EEN*DBLE(NA)
- GAMMA = EE/HIMASS
-C setup /POFSRC/
- GAMSRC(1) = GAMMA
- GAMSRC(2) = GAMMA
- RADSRC(1) = HIRADI
- RADSRC(2) = HIRADI
- AMSRC(1) = HIMASS
- AMSRC(1) = HIMASS
-C kinematic limitations
- YMI = (ECMIN/(2.D0*EE))**2
- IF(YMIN1.LT.YMI) THEN
- WRITE(LO,'(/1X,A,2E12.5)')
- & 'PHO_GGHIOG: ymin1 increased to (old/new)',YMIN1,YMI
- YMIN1 = YMI
- ELSE IF(YMIN1.GT.YMI) THEN
- WRITE(LO,'(/1X,A,/1X,A,E12.5,A,E12.5)')
- & 'PHO_GGHIOG:','ECM-CUT CORRESPONDS TO YMIN1 OF',YMI,
- & ' INSTEAD OF',YMIN1
- ENDIF
- IF(YMIN2.LT.YMI) THEN
- WRITE(LO,'(/1X,A,2E12.5)')
- & 'PHO_GGHIOG: ymin2 increased to (old/new)',YMIN2,YMI
- YMIN2 = YMI
- ELSE IF(YMIN2.GT.YMI) THEN
- WRITE(LO,'(/1X,A,/1X,A,E12.5,A,E12.5)')
- & 'PHO_GGHIOG:','ECM-CUT CORRESPONDS TO YMIN2 OF',YMI,
- & ' INSTEAD OF',YMIN2
- ENDIF
-C debug output
- WRITE(LO,'(/6X,A,2I4)') 'MASS NUMBER, CHARGE NUMBER ',NA,NZ
- WRITE(LO,'(6X,A,E12.5)') 'HADRON MASS (GeV) ',HIMASS
- WRITE(LO,'(6X,A,E12.5)') 'HADRON RADIUS (GeV**-1) ',HIRADI
- WRITE(LO,'(6X,A,E12.5)') 'LORENTZ GAMMA ',GAMMA
- WRITE(LO,'(6X,A,2E12.5)') 'Y RANGE PHOTON 1 ',YMIN1,
- & YMAX1
- WRITE(LO,'(6X,A,2E12.5)') 'Y RANGE PHOTON 2 ',YMIN2,
- & YMAX2
- WRITE(LO,'(6X,A,2E12.5)') 'SQRT(S) PER NUCLEON, TOTAL ',
- & 2.D0*EEN,2.D0*EE
- WRITE(LO,'(6X,A,I10)') 'EVENTS TO PROCESS ',NEVENT
-C hadron numbers set to 0
- IDPSRC(1) = 0
- IDBSRC(1) = 0
- IDPSRC(2) = 0
- IDBSRC(2) = 0
-C table of flux function, log interpolation
- YMIN = YMIN1
- YMAX = YMAX1
- YMAX = MIN(YMAX,0.9999999D0)
- DELLY = LOG(YMAX/YMIN)/DBLE(Max_tab-1)
- TABYL(0) = LOG(YMIN)
- FFMAX = 0.D0
- DO 100 I=1,Max_tab
- Y = EXP(TABYL(0)+DELLY*DBLE(I-1))
- WG = EE*Y
- XI = WG*HIRADI/GAMMA
- FF = ALPHA*PHO_GGFLCL(XI)/Y
- FFMAX = MAX(FF,FFMAX)
- IF(FF.LT.1.D-10*FFMAX) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GGHIOG: ymax1 changed from/to',YMAX1,Y
- YMAX1 = MIN(Y,YMAX1)
- GOTO 101
- ENDIF
- 100 CONTINUE
- 101 CONTINUE
- YMIN = YMIN2
- YMAX = YMAX2
- YMAX = MIN(YMAX,0.9999999D0)
- DELLY = LOG(YMAX/YMIN)/DBLE(Max_tab-1)
- TABYL(0) = LOG(YMIN)
- FFMAX = 0.D0
- DO 102 I=1,Max_tab
- Y = EXP(TABYL(0)+DELLY*DBLE(I-1))
- WG = EE*Y
- XI = WG*HIRADI/GAMMA
- FF = ALPHA*PHO_GGFLCL(XI)/Y
- FFMAX = MAX(FF,FFMAX)
- IF(FF.LT.1.D-10*FFMAX) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GGHIOG: ymax2 changed from/to',YMAX2,Y
- YMAX2 = MIN(Y,YMAX2)
- GOTO 103
- ENDIF
- 102 CONTINUE
- 103 CONTINUE
- YMI = (ECMIN/(2.D0*EE))**2/YMAX2
- IF(YMI.GT.YMIN1) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GGHIOG: ymin1 changed from/to',YMIN1,YMI
- YMIN1 = YMI
- ENDIF
- YMAX1 = MIN(YMAX,YMAX1)
- YMI = (ECMIN/(2.D0*EE))**2/YMAX1
- IF(YMI.GT.YMIN2) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GGHIOG: ymin2 changed from/to',YMIN2,YMI
- YMIN2 = YMI
- ENDIF
-C
- YMIN = YMIN1
- YMAX = YMAX1
- DELLY = LOG(YMAX/YMIN)/DBLE(Max_tab-1)
- TABCU(0) = 0.D0
- TABYL(0) = LOG(YMIN)
- FLUX = 0.D0
- IF(IDEB(30).GE.1) WRITE(LO,'(/1X,A,I5)')
- & 'PHO_GGHIOG: table of raw photon flux (side 1)',Max_tab
- DO 105 I=1,Max_tab
- Y = EXP(TABYL(0)+DELLY*DBLE(I-1))
- WG = EE*Y
- XI = WG*HIRADI/GAMMA
- FF = ALPHA*PHO_GGFLCL(XI)/Y
- FFMAX = MAX(FF,FFMAX)
- TABCU(I) = TABCU(I-1)+FF*Y
- TABYL(I) = LOG(Y)
- FLUX = FLUX+Y*FF
- IF(IDEB(30).GE.1) WRITE(LO,'(5X,2E15.4)') Y,FF
- 105 CONTINUE
- FLUX = FLUX*DELLY
- IF(IDEB(30).GE.1) WRITE(LO,'(1X,A,E12.4)')
- & 'PHO_GGHIOG: integrated flux (one side):',FLUX
-C
-C initialization
-C photon 1
- EGAM = YMAX*EE
- P1(1) = 0.D0
- P1(2) = 0.D0
- P1(3) = EGAM
- P1(4) = EGAM
-C photon 2
- EGAM = YMAX*EE
- P2(1) = 0.D0
- P2(2) = 0.D0
- P2(3) = -EGAM
- P2(4) = EGAM
- CALL PHO_SETPAR(1,22,0,0.D0)
- CALL PHO_SETPAR(2,22,0,0.D0)
- CALL PHO_EVENT(-1,P1,P2,SIGMAX,IREJ)
- CALL PHO_PHIST(-1,SIGMAX)
- CALL PHO_LHIST(-1,SIGMAX)
-C
-C generation of events
-
- AY1 = 0.D0
- AY2 = 0.D0
- AYS1 = 0.D0
- AYS2 = 0.D0
- YY1MIN = 1.D30
- YY2MIN = 1.D30
- YY1MAX = 0.D0
- YY2MAX = 0.D0
- NITER = NEVENT
- ITRY = 0
- ITRW = 0
- DO 200 I=1,NITER
- 150 CONTINUE
- ITRY = ITRY+1
- 175 CONTINUE
- ITRW = ITRW+1
- XI = DT_RNDM(AY1)*TABCU(Max_tab)
- DO 110 K=1,Max_tab
- IF(TABCU(K).GE.XI) THEN
- Y1 = DELLY/(TABCU(K)-TABCU(K-1))*(XI-TABCU(K-1))+TABYL(K-1)
- Y1 = EXP(Y1)
- GOTO 120
- ENDIF
- 110 CONTINUE
- Y1 = YMAX1
- 120 CONTINUE
- XI = DT_RNDM(AY2)*TABCU(Max_tab)
- DO 130 K=1,Max_tab
- IF(TABCU(K).GE.XI) THEN
- Y2 = DELLY/(TABCU(K)-TABCU(K-1))*(XI-TABCU(K-1))+TABYL(K-1)
- Y2 = EXP(Y2)
- GOTO 140
- ENDIF
- 130 CONTINUE
- Y2 = YMAX2
- 140 CONTINUE
-C setup kinematics
-
- GYY(1) = Y1
- GQ2(1) = 0.D0
- GYY(2) = Y2
- GQ2(2) = 0.D0
-C incoming electron 1
- PINI(1,1) = 0.D0
- PINI(2,1) = 0.D0
- PINI(3,1) = EE
- PINI(4,1) = EE
- PINI(5,1) = 0.D0
-C outgoing electron 1
- E1Y = EE*(1.D0-Y1)
- PFIN(1,1) = 0.D0
- PFIN(2,1) = 0.D0
- PFIN(3,1) = E1Y
- PFIN(4,1) = E1Y
- PFIN(5,1) = 0.D0
-C photon 1
- P1(1) = -PFIN(1,1)
- P1(2) = -PFIN(2,1)
- P1(3) = PINI(3,1)-PFIN(3,1)
- P1(4) = PINI(4,1)-PFIN(4,1)
-C incoming electron 2
- PINI(1,2) = 0.D0
- PINI(2,2) = 0.D0
- PINI(3,2) = -EE
- PINI(4,2) = EE
- PINI(5,2) = 0.D0
-C outgoing electron 2
- E1Y = EE*(1.D0-Y2)
- PFIN(1,2) = 0.D0
- PFIN(2,2) = 0.D0
- PFIN(3,2) = -E1Y
- PFIN(4,2) = E1Y
- PFIN(5,2) = 0.D0
-C photon 2
- P2(1) = -PFIN(1,2)
- P2(2) = -PFIN(2,2)
- P2(3) = PINI(3,2)-PFIN(3,2)
- P2(4) = PINI(4,2)-PFIN(4,2)
-C ECMS cut
- GGECM = (P1(4)+P2(4))**2-(P1(3)+P2(3))**2
- IF(GGECM.LT.0.1D0) GOTO 175
- GGECM = SQRT(GGECM)
- IF((GGECM.LT.ECMIN).OR.(GGECM.GT.ECMAX)) GOTO 175
- PGAM(1,1) = P1(1)
- PGAM(2,1) = P1(2)
- PGAM(3,1) = P1(3)
- PGAM(4,1) = P1(4)
- PGAM(5,1) = 0.D0
- PGAM(1,2) = P2(1)
- PGAM(2,2) = P2(2)
- PGAM(3,2) = P2(3)
- PGAM(4,2) = P2(4)
- PGAM(5,2) = 0.D0
-C impact parameter constraints
- XI1 = P1(4)*HIRADI/GAMMA
- XI2 = P2(4)*HIRADI/GAMMA
- FLX = PHO_GGFLCL(XI1)*PHO_GGFLCL(XI2)
- FCORR = PHO_GGFLCR(HIRADI)
- WGX = (FLX-FCORR)/FLX
- IF(DT_RNDM(Y2).GT.WGX) GOTO 175
-C photon helicities
- IGHEL(1) = 1
- IGHEL(2) = 1
-C cut given by user
- CALL PHO_PRESEL(5,IREJ)
- IF(IREJ.NE.0) GOTO 175
-C event generation
- CALL PHO_EVENT(1,P1,P2,SIGCUR,IREJ)
- IF(IREJ.NE.0) GOTO 150
-
-C statistics
- AY1 = AY1+Y1
- AYS1 = AYS1+Y1*Y1
- AY2 = AY2+Y2
- AYS2 = AYS2+Y2*Y2
- YY1MIN = MIN(YY1MIN,Y1)
- YY2MIN = MIN(YY2MIN,Y2)
- YY1MAX = MAX(YY1MAX,Y1)
- YY2MAX = MAX(YY2MAX,Y2)
-C histograms
- CALL PHO_PHIST(1,HSWGHT(0))
- CALL PHO_LHIST(1,HSWGHT(0))
- 200 CONTINUE
-C
- WGY = FLUX**2*DBLE(ITRY)/DBLE(ITRW)
- AY1 = AY1/DBLE(NITER)
- AYS1 = AYS1/DBLE(NITER)
- DAY1 = SQRT((AYS1-AY1**2)/DBLE(NITER))
- AY2 = AY2/DBLE(NITER)
- AYS2 = AYS2/DBLE(NITER)
- DAY2 = SQRT((AYS2-AY2**2)/DBLE(NITER))
- WEIGHT = WGY*SIGMAX*DBLE(NITER)/DBLE(ITRY)
-C output of statistics, histograms
- WRITE(LO,'(//1X,A,/1X,A,1PE12.3,A,/1X,A)')
- &'=========================================================',
- &' ***** simulated cross section: ',WEIGHT,' mb *****',
- &'========================================================='
- WRITE(LO,'(//1X,A,3I12)')
- & 'PHO_GGHIOG:SUMMARY:NITER,ITRY,ITRW',NITER,ITRY,ITRW
- WRITE(LO,'(1X,A,1P2E12.4)') 'EFFECTIVE WEIGHT (FLUX,TOTAL)',
- & WGY,WEIGHT
- WRITE(LO,'(1X,A,1P2E12.4)') 'AVERAGE Y1,DY1 ',
- & AY1,DAY1
- WRITE(LO,'(1X,A,1P2E12.4)') 'AVERAGE Y2,DY2 ',
- & AY2,DAY2
- WRITE(LO,'(1X,A,1P2E12.4)') 'SAMPLED Y RANGE PHOTON 1 ',
- & YY1MIN,YY1MAX
- WRITE(LO,'(1X,A,1P2E12.4)') 'SAMPLED Y RANGE PHOTON 2 ',
- & YY2MIN,YY2MAX
-
-C
- CALL PHO_EVENT(-2,P1,P2,WEIGHT,IREJ)
- IF(NITER.GT.1) THEN
- CALL PHO_PHIST(-2,WEIGHT)
- CALL PHO_LHIST(-2,WEIGHT)
- ELSE
- WRITE(LO,'(1X,A,I4)') 'PHO_GGHIOG:NO OUTPUT OF HISTOGRAMS',NITER
- ENDIF
-
- END
-
-CDECK ID>, PHO_GGFLCL
- DOUBLE PRECISION FUNCTION PHO_GGFLCL(XI)
-C*********************************************************************
-C
-C semi-classical photon flux (geometrical model)
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PHO_GGFLCL = 2.D0/3.1415927D0*(XI*PHO_BESSK0(XI)*PHO_BESSK1(XI)
- & -XI**2/2.D0*(PHO_BESSK1(XI)**2-PHO_BESSK0(XI)**2))
-
- END
-
-CDECK ID>, PHO_GGFLCR
- DOUBLE PRECISION FUNCTION PHO_GGFLCR(XI)
-C*********************************************************************
-C
-C semi-classical photon flux correction due to
-C overlap in impact parameter space (geometrical model)
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER (PI = 3.14159265359D0, ACCUR = 1D-2)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C gamma-lepton or gamma-hadron vertex information
- INTEGER IGHEL,IDPSRC,IDBSRC
- DOUBLE PRECISION PINI,PFIN,PGAM,GYY,GQ2,GGECM,GAIMP,PFTHE,PFPHI,
- & RADSRC,AMSRC,GAMSRC
- COMMON /POFSRC/ PINI(5,2),PFIN(5,2),PGAM(5,2),IGHEL(2),
- & GYY(2),GQ2(2),GGECM,GAIMP(2),PFTHE(2),PFPHI(2),
- & IDPSRC(2),IDBSRC(2),RADSRC(2),AMSRC(2),GAMSRC(2)
-
- DIMENSION XGAUSS(126),WGAUSS(126)
-
- DATA XGAUSS(1)/ .57735026918962576D0/
- DATA XGAUSS(2)/-.57735026918962576D0/
- DATA WGAUSS(1)/ 1.00000000000000000D0/
- DATA WGAUSS(2)/ 1.00000000000000000D0/
-
- DATA XGAUSS(3)/ .33998104358485627D0/
- DATA XGAUSS(4)/ .86113631159405258D0/
- DATA XGAUSS(5)/-.33998104358485627D0/
- DATA XGAUSS(6)/-.86113631159405258D0/
- DATA WGAUSS(3)/ .65214515486254613D0/
- DATA WGAUSS(4)/ .34785484513745385D0/
- DATA WGAUSS(5)/ .65214515486254613D0/
- DATA WGAUSS(6)/ .34785484513745385D0/
-
- DATA XGAUSS(7)/ .18343464249564981D0/
- DATA XGAUSS(8)/ .52553240991632899D0/
- DATA XGAUSS(9)/ .79666647741362674D0/
- DATA XGAUSS(10)/ .96028985649753623D0/
- DATA XGAUSS(11)/-.18343464249564981D0/
- DATA XGAUSS(12)/-.52553240991632899D0/
- DATA XGAUSS(13)/-.79666647741362674D0/
- DATA XGAUSS(14)/-.96028985649753623D0/
- DATA WGAUSS(7)/ .36268378337836198D0/
- DATA WGAUSS(8)/ .31370664587788727D0/
- DATA WGAUSS(9)/ .22238103445337448D0/
- DATA WGAUSS(10)/ .10122853629037627D0/
- DATA WGAUSS(11)/ .36268378337836198D0/
- DATA WGAUSS(12)/ .31370664587788727D0/
- DATA WGAUSS(13)/ .22238103445337448D0/
- DATA WGAUSS(14)/ .10122853629037627D0/
-
- DATA XGAUSS(15)/ .0950125098376374402D0/
- DATA XGAUSS(16)/ .281603550779258913D0/
- DATA XGAUSS(17)/ .458016777657227386D0/
- DATA XGAUSS(18)/ .617876244402643748D0/
- DATA XGAUSS(19)/ .755404408355003034D0/
- DATA XGAUSS(20)/ .865631202387831744D0/
- DATA XGAUSS(21)/ .944575023073232576D0/
- DATA XGAUSS(22)/ .989400934991649933D0/
- DATA XGAUSS(23)/-.0950125098376374402D0/
- DATA XGAUSS(24)/-.281603550779258913D0/
- DATA XGAUSS(25)/-.458016777657227386D0/
- DATA XGAUSS(26)/-.617876244402643748D0/
- DATA XGAUSS(27)/-.755404408355003034D0/
- DATA XGAUSS(28)/-.865631202387831744D0/
- DATA XGAUSS(29)/-.944575023073232576D0/
- DATA XGAUSS(30)/-.989400934991649933D0/
- DATA WGAUSS(15)/ .189450610455068496D0/
- DATA WGAUSS(16)/ .182603415044923589D0/
- DATA WGAUSS(17)/ .169156519395002538D0/
- DATA WGAUSS(18)/ .149595988816576732D0/
- DATA WGAUSS(19)/ .124628971255533872D0/
- DATA WGAUSS(20)/ .0951585116824927848D0/
- DATA WGAUSS(21)/ .0622535239386478929D0/
- DATA WGAUSS(22)/ .0271524594117540949D0/
- DATA WGAUSS(23)/ .189450610455068496D0/
- DATA WGAUSS(24)/ .182603415044923589D0/
- DATA WGAUSS(25)/ .169156519395002538D0/
- DATA WGAUSS(26)/ .149595988816576732D0/
- DATA WGAUSS(27)/ .124628971255533872D0/
- DATA WGAUSS(28)/ .0951585116824927848D0/
- DATA WGAUSS(29)/ .0622535239386478929D0/
- DATA WGAUSS(30)/ .0271524594117540949D0/
-
- DATA XGAUSS(31)/ .0483076656877383162D0/
- DATA XGAUSS(32)/ .144471961582796493D0/
- DATA XGAUSS(33)/ .239287362252137075D0/
- DATA XGAUSS(34)/ .331868602282127650D0/
- DATA XGAUSS(35)/ .421351276130635345D0/
- DATA XGAUSS(36)/ .506899908932229390D0/
- DATA XGAUSS(37)/ .587715757240762329D0/
- DATA XGAUSS(38)/ .663044266930215201D0/
- DATA XGAUSS(39)/ .732182118740289680D0/
- DATA XGAUSS(40)/ .794483795967942407D0/
- DATA XGAUSS(41)/ .849367613732569970D0/
- DATA XGAUSS(42)/ .896321155766052124D0/
- DATA XGAUSS(43)/ .934906075937739689D0/
- DATA XGAUSS(44)/ .964762255587506430D0/
- DATA XGAUSS(45)/ .985611511545268335D0/
- DATA XGAUSS(46)/ .997263861849481564D0/
- DATA XGAUSS(47)/-.0483076656877383162D0/
- DATA XGAUSS(48)/-.144471961582796493D0/
- DATA XGAUSS(49)/-.239287362252137075D0/
- DATA XGAUSS(50)/-.331868602282127650D0/
- DATA XGAUSS(51)/-.421351276130635345D0/
- DATA XGAUSS(52)/-.506899908932229390D0/
- DATA XGAUSS(53)/-.587715757240762329D0/
- DATA XGAUSS(54)/-.663044266930215201D0/
- DATA XGAUSS(55)/-.732182118740289680D0/
- DATA XGAUSS(56)/-.794483795967942407D0/
- DATA XGAUSS(57)/-.849367613732569970D0/
- DATA XGAUSS(58)/-.896321155766052124D0/
- DATA XGAUSS(59)/-.934906075937739689D0/
- DATA XGAUSS(60)/-.964762255587506430D0/
- DATA XGAUSS(61)/-.985611511545268335D0/
- DATA XGAUSS(62)/-.997263861849481564D0/
- DATA WGAUSS(31)/ .0965400885147278006D0/
- DATA WGAUSS(32)/ .0956387200792748594D0/
- DATA WGAUSS(33)/ .0938443990808045654D0/
- DATA WGAUSS(34)/ .0911738786957638847D0/
- DATA WGAUSS(35)/ .0876520930044038111D0/
- DATA WGAUSS(36)/ .0833119242269467552D0/
- DATA WGAUSS(37)/ .0781938957870703065D0/
- DATA WGAUSS(38)/ .0723457941088485062D0/
- DATA WGAUSS(39)/ .0658222227763618468D0/
- DATA WGAUSS(40)/ .0586840934785355471D0/
- DATA WGAUSS(41)/ .0509980592623761762D0/
- DATA WGAUSS(42)/ .0428358980222266807D0/
- DATA WGAUSS(43)/ .0342738629130214331D0/
- DATA WGAUSS(44)/ .0253920653092620595D0/
- DATA WGAUSS(45)/ .0162743947309056706D0/
- DATA WGAUSS(46)/ .00701861000947009660D0/
- DATA WGAUSS(47)/ .0965400885147278006D0/
- DATA WGAUSS(48)/ .0956387200792748594D0/
- DATA WGAUSS(49)/ .0938443990808045654D0/
- DATA WGAUSS(50)/ .0911738786957638847D0/
- DATA WGAUSS(51)/ .0876520930044038111D0/
- DATA WGAUSS(52)/ .0833119242269467552D0/
- DATA WGAUSS(53)/ .0781938957870703065D0/
- DATA WGAUSS(54)/ .0723457941088485062D0/
- DATA WGAUSS(55)/ .0658222227763618468D0/
- DATA WGAUSS(56)/ .0586840934785355471D0/
- DATA WGAUSS(57)/ .0509980592623761762D0/
- DATA WGAUSS(58)/ .0428358980222266807D0/
- DATA WGAUSS(59)/ .0342738629130214331D0/
- DATA WGAUSS(60)/ .0253920653092620595D0/
- DATA WGAUSS(61)/ .0162743947309056706D0/
- DATA WGAUSS(62)/ .00701861000947009660D0/
-
- DATA XGAUSS(63)/ .02435029266342443250D0/
- DATA XGAUSS(64)/ .0729931217877990394D0/
- DATA XGAUSS(65)/ .121462819296120554D0/
- DATA XGAUSS(66)/ .169644420423992818D0/
- DATA XGAUSS(67)/ .217423643740007084D0/
- DATA XGAUSS(68)/ .264687162208767416D0/
- DATA XGAUSS(69)/ .311322871990210956D0/
- DATA XGAUSS(70)/ .357220158337668116D0/
- DATA XGAUSS(71)/ .402270157963991604D0/
- DATA XGAUSS(72)/ .446366017253464088D0/
- DATA XGAUSS(73)/ .489403145707052957D0/
- DATA XGAUSS(74)/ .531279464019894546D0/
- DATA XGAUSS(75)/ .571895646202634034D0/
- DATA XGAUSS(76)/ .611155355172393250D0/
- DATA XGAUSS(77)/ .648965471254657340D0/
- DATA XGAUSS(78)/ .685236313054233243D0/
- DATA XGAUSS(79)/ .719881850171610827D0/
- DATA XGAUSS(80)/ .752819907260531897D0/
- DATA XGAUSS(81)/ .783972358943341408D0/
- DATA XGAUSS(82)/ .813265315122797560D0/
- DATA XGAUSS(83)/ .840629296252580363D0/
- DATA XGAUSS(84)/ .865999398154092820D0/
- DATA XGAUSS(85)/ .889315445995114106D0/
- DATA XGAUSS(86)/ .910522137078502806D0/
- DATA XGAUSS(87)/ .929569172131939576D0/
- DATA XGAUSS(88)/ .946411374858402816D0/
- DATA XGAUSS(89)/ .961008799652053719D0/
- DATA XGAUSS(90)/ .973326827789910964D0/
- DATA XGAUSS(91)/ .983336253884625957D0/
- DATA XGAUSS(92)/ .991013371476744321D0/
- DATA XGAUSS(93)/ .996340116771955279D0/
- DATA XGAUSS(94)/ .999305041735772139D0/
- DATA XGAUSS(95)/-.02435029266342443250D0/
- DATA XGAUSS(96)/-.0729931217877990394D0/
- DATA XGAUSS(97)/-.121462819296120554D0/
- DATA XGAUSS(98)/-.169644420423992818D0/
- DATA XGAUSS(99)/-.217423643740007084D0/
- DATA XGAUSS(100)/-.264687162208767416D0/
- DATA XGAUSS(101)/-.311322871990210956D0/
- DATA XGAUSS(102)/-.357220158337668116D0/
- DATA XGAUSS(103)/-.402270157963991604D0/
- DATA XGAUSS(104)/-.446366017253464088D0/
- DATA XGAUSS(105)/-.489403145707052957D0/
- DATA XGAUSS(106)/-.531279464019894546D0/
- DATA XGAUSS(107)/-.571895646202634034D0/
- DATA XGAUSS(108)/-.611155355172393250D0/
- DATA XGAUSS(109)/-.648965471254657340D0/
- DATA XGAUSS(110)/-.685236313054233243D0/
- DATA XGAUSS(111)/-.719881850171610827D0/
- DATA XGAUSS(112)/-.752819907260531897D0/
- DATA XGAUSS(113)/-.783972358943341408D0/
- DATA XGAUSS(114)/-.813265315122797560D0/
- DATA XGAUSS(115)/-.840629296252580363D0/
- DATA XGAUSS(116)/-.865999398154092820D0/
- DATA XGAUSS(117)/-.889315445995114106D0/
- DATA XGAUSS(118)/-.910522137078502806D0/
- DATA XGAUSS(119)/-.929569172131939576D0/
- DATA XGAUSS(120)/-.946411374858402816D0/
- DATA XGAUSS(121)/-.961008799652053719D0/
- DATA XGAUSS(122)/-.973326827789910964D0/
- DATA XGAUSS(123)/-.983336253884625957D0/
- DATA XGAUSS(124)/-.991013371476744321D0/
- DATA XGAUSS(125)/-.996340116771955279D0/
- DATA XGAUSS(126)/-.999305041735772139D0/
- DATA WGAUSS(63)/ .0486909570091397204D0/
- DATA WGAUSS(64)/ .0485754674415034269D0/
- DATA WGAUSS(65)/ .0483447622348029572D0/
- DATA WGAUSS(66)/ .0479993885964583077D0/
- DATA WGAUSS(67)/ .0475401657148303087D0/
- DATA WGAUSS(68)/ .0469681828162100173D0/
- DATA WGAUSS(69)/ .0462847965813144172D0/
- DATA WGAUSS(70)/ .0454916279274181445D0/
- DATA WGAUSS(71)/ .0445905581637565631D0/
- DATA WGAUSS(72)/ .0435837245293234534D0/
- DATA WGAUSS(73)/ .0424735151236535890D0/
- DATA WGAUSS(74)/ .0412625632426235286D0/
- DATA WGAUSS(75)/ .0399537411327203414D0/
- DATA WGAUSS(76)/ .0385501531786156291D0/
- DATA WGAUSS(77)/ .0370551285402400460D0/
- DATA WGAUSS(78)/ .0354722132568823838D0/
- DATA WGAUSS(79)/ .0338051618371416094D0/
- DATA WGAUSS(80)/ .0320579283548515535D0/
- DATA WGAUSS(81)/ .0302346570724024789D0/
- DATA WGAUSS(82)/ .0283396726142594832D0/
- DATA WGAUSS(83)/ .0263774697150546587D0/
- DATA WGAUSS(84)/ .0243527025687108733D0/
- DATA WGAUSS(85)/ .0222701738083832542D0/
- DATA WGAUSS(86)/ .0201348231535302094D0/
- DATA WGAUSS(87)/ .0179517157756973431D0/
- DATA WGAUSS(88)/ .0157260304760247193D0/
- DATA WGAUSS(89)/ .0134630478967186426D0/
- DATA WGAUSS(90)/ .0111681394601311288D0/
- DATA WGAUSS(91)/ .00884675982636394772D0/
- DATA WGAUSS(92)/ .00650445796897836286D0/
- DATA WGAUSS(93)/ .00414703326056246764D0/
- DATA WGAUSS(94)/ .00178328072169643295D0/
- DATA WGAUSS(95)/ .0486909570091397204D0/
- DATA WGAUSS(96)/ .0485754674415034269D0/
- DATA WGAUSS(97)/ .0483447622348029572D0/
- DATA WGAUSS(98)/ .0479993885964583077D0/
- DATA WGAUSS(99)/ .0475401657148303087D0/
- DATA WGAUSS(100)/ .0469681828162100173D0/
- DATA WGAUSS(101)/ .0462847965813144172D0/
- DATA WGAUSS(102)/ .0454916279274181445D0/
- DATA WGAUSS(103)/ .0445905581637565631D0/
- DATA WGAUSS(104)/ .0435837245293234534D0/
- DATA WGAUSS(105)/ .0424735151236535890D0/
- DATA WGAUSS(106)/ .0412625632426235286D0/
- DATA WGAUSS(107)/ .0399537411327203414D0/
- DATA WGAUSS(108)/ .0385501531786156291D0/
- DATA WGAUSS(109)/ .0370551285402400460D0/
- DATA WGAUSS(110)/ .0354722132568823838D0/
- DATA WGAUSS(111)/ .0338051618371416094D0/
- DATA WGAUSS(112)/ .0320579283548515535D0/
- DATA WGAUSS(113)/ .0302346570724024789D0/
- DATA WGAUSS(114)/ .0283396726142594832D0/
- DATA WGAUSS(115)/ .0263774697150546587D0/
- DATA WGAUSS(116)/ .0243527025687108733D0/
- DATA WGAUSS(117)/ .0222701738083832542D0/
- DATA WGAUSS(118)/ .0201348231535302094D0/
- DATA WGAUSS(119)/ .0179517157756973431D0/
- DATA WGAUSS(120)/ .0157260304760247193D0/
- DATA WGAUSS(121)/ .0134630478967186426D0/
- DATA WGAUSS(122)/ .0111681394601311288D0/
- DATA WGAUSS(123)/ .00884675982636394772D0/
- DATA WGAUSS(124)/ .00650445796897836286D0/
- DATA WGAUSS(125)/ .00414703326056246764D0/
- DATA WGAUSS(126)/ .00178328072169643295D0/
-
-C integrate first over b1
-C
-C Loop incrementing the boundary
-C
- tmin = 0.D0
- tmax = 0.25D0
- Sum = 0.D0
-
- 50 CONTINUE
-
-C
-C Loop for the Gauss integration
-C
- XINT=0.D0
- DO 100 N=1,6
- XINT2 = XINT
- XINT=0.D0
- DO 200 I=2**N-1,2**(N+1)-2
- t = (tmax-tmin)/2.D0*XGAUSS(I)+(tmax+tmin)/2.D0
- b1 = RADSRC(1) * EXP (t)
- XINT=XINT+WGAUSS(I) * PHO_GGFAUX(b1) * b1**2
- 200 CONTINUE
- XINT = (tmax-tmin)/2.D0*XINT
- IF (ABS ((XINT2-XINT)/XINT) .LT. ACCUR) GOTO 300
- 100 CONTINUE
- WRITE(LO,*) ' (b1) GAUSS MAY BE INACCURATE'
- 300 CONTINUE
-
- Sum = Sum + XINT
- IF (ABS (XINT2/Sum) .GT. ACCUR) THEN
- tmin = tmax
- tmax = tmax + 0.5D0
- GOTO 50
- ENDIF
-
- PHO_GGFLCR = 4.D0*Pi * Sum
-
- END
-
-CDECK ID>, PHO_GGFAUX
- DOUBLE PRECISION FUNCTION PHO_GGFAUX(b1)
-C*********************************************************************
-C
-C auxiliary function for integration over b2,
-C semi-classical photon flux correction due to
-C overlap in impact parameter space (geometrical model)
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER (PI = 3.14159265359D0, ACCUR = 1D-2)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C gamma-lepton or gamma-hadron vertex information
- INTEGER IGHEL,IDPSRC,IDBSRC
- DOUBLE PRECISION PINI,PFIN,PGAM,GYY,GQ2,GGECM,GAIMP,PFTHE,PFPHI,
- & RADSRC,AMSRC,GAMSRC
- COMMON /POFSRC/ PINI(5,2),PFIN(5,2),PGAM(5,2),IGHEL(2),
- & GYY(2),GQ2(2),GGECM,GAIMP(2),PFTHE(2),PFPHI(2),
- & IDPSRC(2),IDBSRC(2),RADSRC(2),AMSRC(2),GAMSRC(2)
-
- DIMENSION XGAUSS(126),WGAUSS(126)
-
- DATA XGAUSS(1)/ .57735026918962576D0/
- DATA XGAUSS(2)/-.57735026918962576D0/
- DATA WGAUSS(1)/ 1.00000000000000000D0/
- DATA WGAUSS(2)/ 1.00000000000000000D0/
-
- DATA XGAUSS(3)/ .33998104358485627D0/
- DATA XGAUSS(4)/ .86113631159405258D0/
- DATA XGAUSS(5)/-.33998104358485627D0/
- DATA XGAUSS(6)/-.86113631159405258D0/
- DATA WGAUSS(3)/ .65214515486254613D0/
- DATA WGAUSS(4)/ .34785484513745385D0/
- DATA WGAUSS(5)/ .65214515486254613D0/
- DATA WGAUSS(6)/ .34785484513745385D0/
-
- DATA XGAUSS(7)/ .18343464249564981D0/
- DATA XGAUSS(8)/ .52553240991632899D0/
- DATA XGAUSS(9)/ .79666647741362674D0/
- DATA XGAUSS(10)/ .96028985649753623D0/
- DATA XGAUSS(11)/-.18343464249564981D0/
- DATA XGAUSS(12)/-.52553240991632899D0/
- DATA XGAUSS(13)/-.79666647741362674D0/
- DATA XGAUSS(14)/-.96028985649753623D0/
- DATA WGAUSS(7)/ .36268378337836198D0/
- DATA WGAUSS(8)/ .31370664587788727D0/
- DATA WGAUSS(9)/ .22238103445337448D0/
- DATA WGAUSS(10)/ .10122853629037627D0/
- DATA WGAUSS(11)/ .36268378337836198D0/
- DATA WGAUSS(12)/ .31370664587788727D0/
- DATA WGAUSS(13)/ .22238103445337448D0/
- DATA WGAUSS(14)/ .10122853629037627D0/
-
- DATA XGAUSS(15)/ .0950125098376374402D0/
- DATA XGAUSS(16)/ .281603550779258913D0/
- DATA XGAUSS(17)/ .458016777657227386D0/
- DATA XGAUSS(18)/ .617876244402643748D0/
- DATA XGAUSS(19)/ .755404408355003034D0/
- DATA XGAUSS(20)/ .865631202387831744D0/
- DATA XGAUSS(21)/ .944575023073232576D0/
- DATA XGAUSS(22)/ .989400934991649933D0/
- DATA XGAUSS(23)/-.0950125098376374402D0/
- DATA XGAUSS(24)/-.281603550779258913D0/
- DATA XGAUSS(25)/-.458016777657227386D0/
- DATA XGAUSS(26)/-.617876244402643748D0/
- DATA XGAUSS(27)/-.755404408355003034D0/
- DATA XGAUSS(28)/-.865631202387831744D0/
- DATA XGAUSS(29)/-.944575023073232576D0/
- DATA XGAUSS(30)/-.989400934991649933D0/
- DATA WGAUSS(15)/ .189450610455068496D0/
- DATA WGAUSS(16)/ .182603415044923589D0/
- DATA WGAUSS(17)/ .169156519395002538D0/
- DATA WGAUSS(18)/ .149595988816576732D0/
- DATA WGAUSS(19)/ .124628971255533872D0/
- DATA WGAUSS(20)/ .0951585116824927848D0/
- DATA WGAUSS(21)/ .0622535239386478929D0/
- DATA WGAUSS(22)/ .0271524594117540949D0/
- DATA WGAUSS(23)/ .189450610455068496D0/
- DATA WGAUSS(24)/ .182603415044923589D0/
- DATA WGAUSS(25)/ .169156519395002538D0/
- DATA WGAUSS(26)/ .149595988816576732D0/
- DATA WGAUSS(27)/ .124628971255533872D0/
- DATA WGAUSS(28)/ .0951585116824927848D0/
- DATA WGAUSS(29)/ .0622535239386478929D0/
- DATA WGAUSS(30)/ .0271524594117540949D0/
-
- DATA XGAUSS(31)/ .0483076656877383162D0/
- DATA XGAUSS(32)/ .144471961582796493D0/
- DATA XGAUSS(33)/ .239287362252137075D0/
- DATA XGAUSS(34)/ .331868602282127650D0/
- DATA XGAUSS(35)/ .421351276130635345D0/
- DATA XGAUSS(36)/ .506899908932229390D0/
- DATA XGAUSS(37)/ .587715757240762329D0/
- DATA XGAUSS(38)/ .663044266930215201D0/
- DATA XGAUSS(39)/ .732182118740289680D0/
- DATA XGAUSS(40)/ .794483795967942407D0/
- DATA XGAUSS(41)/ .849367613732569970D0/
- DATA XGAUSS(42)/ .896321155766052124D0/
- DATA XGAUSS(43)/ .934906075937739689D0/
- DATA XGAUSS(44)/ .964762255587506430D0/
- DATA XGAUSS(45)/ .985611511545268335D0/
- DATA XGAUSS(46)/ .997263861849481564D0/
- DATA XGAUSS(47)/-.0483076656877383162D0/
- DATA XGAUSS(48)/-.144471961582796493D0/
- DATA XGAUSS(49)/-.239287362252137075D0/
- DATA XGAUSS(50)/-.331868602282127650D0/
- DATA XGAUSS(51)/-.421351276130635345D0/
- DATA XGAUSS(52)/-.506899908932229390D0/
- DATA XGAUSS(53)/-.587715757240762329D0/
- DATA XGAUSS(54)/-.663044266930215201D0/
- DATA XGAUSS(55)/-.732182118740289680D0/
- DATA XGAUSS(56)/-.794483795967942407D0/
- DATA XGAUSS(57)/-.849367613732569970D0/
- DATA XGAUSS(58)/-.896321155766052124D0/
- DATA XGAUSS(59)/-.934906075937739689D0/
- DATA XGAUSS(60)/-.964762255587506430D0/
- DATA XGAUSS(61)/-.985611511545268335D0/
- DATA XGAUSS(62)/-.997263861849481564D0/
- DATA WGAUSS(31)/ .0965400885147278006D0/
- DATA WGAUSS(32)/ .0956387200792748594D0/
- DATA WGAUSS(33)/ .0938443990808045654D0/
- DATA WGAUSS(34)/ .0911738786957638847D0/
- DATA WGAUSS(35)/ .0876520930044038111D0/
- DATA WGAUSS(36)/ .0833119242269467552D0/
- DATA WGAUSS(37)/ .0781938957870703065D0/
- DATA WGAUSS(38)/ .0723457941088485062D0/
- DATA WGAUSS(39)/ .0658222227763618468D0/
- DATA WGAUSS(40)/ .0586840934785355471D0/
- DATA WGAUSS(41)/ .0509980592623761762D0/
- DATA WGAUSS(42)/ .0428358980222266807D0/
- DATA WGAUSS(43)/ .0342738629130214331D0/
- DATA WGAUSS(44)/ .0253920653092620595D0/
- DATA WGAUSS(45)/ .0162743947309056706D0/
- DATA WGAUSS(46)/ .00701861000947009660D0/
- DATA WGAUSS(47)/ .0965400885147278006D0/
- DATA WGAUSS(48)/ .0956387200792748594D0/
- DATA WGAUSS(49)/ .0938443990808045654D0/
- DATA WGAUSS(50)/ .0911738786957638847D0/
- DATA WGAUSS(51)/ .0876520930044038111D0/
- DATA WGAUSS(52)/ .0833119242269467552D0/
- DATA WGAUSS(53)/ .0781938957870703065D0/
- DATA WGAUSS(54)/ .0723457941088485062D0/
- DATA WGAUSS(55)/ .0658222227763618468D0/
- DATA WGAUSS(56)/ .0586840934785355471D0/
- DATA WGAUSS(57)/ .0509980592623761762D0/
- DATA WGAUSS(58)/ .0428358980222266807D0/
- DATA WGAUSS(59)/ .0342738629130214331D0/
- DATA WGAUSS(60)/ .0253920653092620595D0/
- DATA WGAUSS(61)/ .0162743947309056706D0/
- DATA WGAUSS(62)/ .00701861000947009660D0/
-
- DATA XGAUSS(63)/ .02435029266342443250D0/
- DATA XGAUSS(64)/ .0729931217877990394D0/
- DATA XGAUSS(65)/ .121462819296120554D0/
- DATA XGAUSS(66)/ .169644420423992818D0/
- DATA XGAUSS(67)/ .217423643740007084D0/
- DATA XGAUSS(68)/ .264687162208767416D0/
- DATA XGAUSS(69)/ .311322871990210956D0/
- DATA XGAUSS(70)/ .357220158337668116D0/
- DATA XGAUSS(71)/ .402270157963991604D0/
- DATA XGAUSS(72)/ .446366017253464088D0/
- DATA XGAUSS(73)/ .489403145707052957D0/
- DATA XGAUSS(74)/ .531279464019894546D0/
- DATA XGAUSS(75)/ .571895646202634034D0/
- DATA XGAUSS(76)/ .611155355172393250D0/
- DATA XGAUSS(77)/ .648965471254657340D0/
- DATA XGAUSS(78)/ .685236313054233243D0/
- DATA XGAUSS(79)/ .719881850171610827D0/
- DATA XGAUSS(80)/ .752819907260531897D0/
- DATA XGAUSS(81)/ .783972358943341408D0/
- DATA XGAUSS(82)/ .813265315122797560D0/
- DATA XGAUSS(83)/ .840629296252580363D0/
- DATA XGAUSS(84)/ .865999398154092820D0/
- DATA XGAUSS(85)/ .889315445995114106D0/
- DATA XGAUSS(86)/ .910522137078502806D0/
- DATA XGAUSS(87)/ .929569172131939576D0/
- DATA XGAUSS(88)/ .946411374858402816D0/
- DATA XGAUSS(89)/ .961008799652053719D0/
- DATA XGAUSS(90)/ .973326827789910964D0/
- DATA XGAUSS(91)/ .983336253884625957D0/
- DATA XGAUSS(92)/ .991013371476744321D0/
- DATA XGAUSS(93)/ .996340116771955279D0/
- DATA XGAUSS(94)/ .999305041735772139D0/
- DATA XGAUSS(95)/-.02435029266342443250D0/
- DATA XGAUSS(96)/-.0729931217877990394D0/
- DATA XGAUSS(97)/-.121462819296120554D0/
- DATA XGAUSS(98)/-.169644420423992818D0/
- DATA XGAUSS(99)/-.217423643740007084D0/
- DATA XGAUSS(100)/-.264687162208767416D0/
- DATA XGAUSS(101)/-.311322871990210956D0/
- DATA XGAUSS(102)/-.357220158337668116D0/
- DATA XGAUSS(103)/-.402270157963991604D0/
- DATA XGAUSS(104)/-.446366017253464088D0/
- DATA XGAUSS(105)/-.489403145707052957D0/
- DATA XGAUSS(106)/-.531279464019894546D0/
- DATA XGAUSS(107)/-.571895646202634034D0/
- DATA XGAUSS(108)/-.611155355172393250D0/
- DATA XGAUSS(109)/-.648965471254657340D0/
- DATA XGAUSS(110)/-.685236313054233243D0/
- DATA XGAUSS(111)/-.719881850171610827D0/
- DATA XGAUSS(112)/-.752819907260531897D0/
- DATA XGAUSS(113)/-.783972358943341408D0/
- DATA XGAUSS(114)/-.813265315122797560D0/
- DATA XGAUSS(115)/-.840629296252580363D0/
- DATA XGAUSS(116)/-.865999398154092820D0/
- DATA XGAUSS(117)/-.889315445995114106D0/
- DATA XGAUSS(118)/-.910522137078502806D0/
- DATA XGAUSS(119)/-.929569172131939576D0/
- DATA XGAUSS(120)/-.946411374858402816D0/
- DATA XGAUSS(121)/-.961008799652053719D0/
- DATA XGAUSS(122)/-.973326827789910964D0/
- DATA XGAUSS(123)/-.983336253884625957D0/
- DATA XGAUSS(124)/-.991013371476744321D0/
- DATA XGAUSS(125)/-.996340116771955279D0/
- DATA XGAUSS(126)/-.999305041735772139D0/
- DATA WGAUSS(63)/ .0486909570091397204D0/
- DATA WGAUSS(64)/ .0485754674415034269D0/
- DATA WGAUSS(65)/ .0483447622348029572D0/
- DATA WGAUSS(66)/ .0479993885964583077D0/
- DATA WGAUSS(67)/ .0475401657148303087D0/
- DATA WGAUSS(68)/ .0469681828162100173D0/
- DATA WGAUSS(69)/ .0462847965813144172D0/
- DATA WGAUSS(70)/ .0454916279274181445D0/
- DATA WGAUSS(71)/ .0445905581637565631D0/
- DATA WGAUSS(72)/ .0435837245293234534D0/
- DATA WGAUSS(73)/ .0424735151236535890D0/
- DATA WGAUSS(74)/ .0412625632426235286D0/
- DATA WGAUSS(75)/ .0399537411327203414D0/
- DATA WGAUSS(76)/ .0385501531786156291D0/
- DATA WGAUSS(77)/ .0370551285402400460D0/
- DATA WGAUSS(78)/ .0354722132568823838D0/
- DATA WGAUSS(79)/ .0338051618371416094D0/
- DATA WGAUSS(80)/ .0320579283548515535D0/
- DATA WGAUSS(81)/ .0302346570724024789D0/
- DATA WGAUSS(82)/ .0283396726142594832D0/
- DATA WGAUSS(83)/ .0263774697150546587D0/
- DATA WGAUSS(84)/ .0243527025687108733D0/
- DATA WGAUSS(85)/ .0222701738083832542D0/
- DATA WGAUSS(86)/ .0201348231535302094D0/
- DATA WGAUSS(87)/ .0179517157756973431D0/
- DATA WGAUSS(88)/ .0157260304760247193D0/
- DATA WGAUSS(89)/ .0134630478967186426D0/
- DATA WGAUSS(90)/ .0111681394601311288D0/
- DATA WGAUSS(91)/ .00884675982636394772D0/
- DATA WGAUSS(92)/ .00650445796897836286D0/
- DATA WGAUSS(93)/ .00414703326056246764D0/
- DATA WGAUSS(94)/ .00178328072169643295D0/
- DATA WGAUSS(95)/ .0486909570091397204D0/
- DATA WGAUSS(96)/ .0485754674415034269D0/
- DATA WGAUSS(97)/ .0483447622348029572D0/
- DATA WGAUSS(98)/ .0479993885964583077D0/
- DATA WGAUSS(99)/ .0475401657148303087D0/
- DATA WGAUSS(100)/ .0469681828162100173D0/
- DATA WGAUSS(101)/ .0462847965813144172D0/
- DATA WGAUSS(102)/ .0454916279274181445D0/
- DATA WGAUSS(103)/ .0445905581637565631D0/
- DATA WGAUSS(104)/ .0435837245293234534D0/
- DATA WGAUSS(105)/ .0424735151236535890D0/
- DATA WGAUSS(106)/ .0412625632426235286D0/
- DATA WGAUSS(107)/ .0399537411327203414D0/
- DATA WGAUSS(108)/ .0385501531786156291D0/
- DATA WGAUSS(109)/ .0370551285402400460D0/
- DATA WGAUSS(110)/ .0354722132568823838D0/
- DATA WGAUSS(111)/ .0338051618371416094D0/
- DATA WGAUSS(112)/ .0320579283548515535D0/
- DATA WGAUSS(113)/ .0302346570724024789D0/
- DATA WGAUSS(114)/ .0283396726142594832D0/
- DATA WGAUSS(115)/ .0263774697150546587D0/
- DATA WGAUSS(116)/ .0243527025687108733D0/
- DATA WGAUSS(117)/ .0222701738083832542D0/
- DATA WGAUSS(118)/ .0201348231535302094D0/
- DATA WGAUSS(119)/ .0179517157756973431D0/
- DATA WGAUSS(120)/ .0157260304760247193D0/
- DATA WGAUSS(121)/ .0134630478967186426D0/
- DATA WGAUSS(122)/ .0111681394601311288D0/
- DATA WGAUSS(123)/ .00884675982636394772D0/
- DATA WGAUSS(124)/ .00650445796897836286D0/
- DATA WGAUSS(125)/ .00414703326056246764D0/
- DATA WGAUSS(126)/ .00178328072169643295D0/
-C
- W1 = PGAM(4,1)
- W2 = PGAM(4,2)
- bmin = b1 - 2.D0*RADSRC(1)
- IF (RADSRC(1) .GT. bmin) THEN
- bmin = RADSRC(1)
- ENDIF
- bmax = b1 + 2.D0 * RADSRC(1)
-
- XINT = 0.D0
- DO 100 N=1,6
- XINT2 = XINT
- XINT = 0.D0
- DO 200 I=2**N-1,2**(N+1)-2
- b2 = (bmax-bmin)/2.D0*XGAUSS(I)+(bmax+bmin)/2.D0
- XINT3 = PHO_GGFNUC(W1,b1,GAMSRC(1))
- & * PHO_GGFNUC(W2,b2,GAMSRC(2))
- & * ACOS ((b1**2+b2**2-4.D0*RADSRC(1)**2)/(2.D0*b1*b2))
- XINT = XINT +WGAUSS(I) * b2 * XINT3
- 200 CONTINUE
- XINT = (bmax-bmin)/2.D0*XINT
- IF (ABS((XINT2 - XINT)/XINT) .LT. ACCUR) GOTO 300
- 100 CONTINUE
- WRITE(LO,*) ' (b2) GAUSS MAY BE INACCURATE'
- 300 CONTINUE
-
- PHO_GGFAUX = XINT
-
- END
-
-CDECK ID>, PHO_GGFNUC
- DOUBLE PRECISION FUNCTION PHO_GGFNUC(W,Rho,Gamma)
-C**********************************************************************
-C
-C differential photonnumber for a nucleus (geometrical model)
-C (without form factor)
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER (PI = 3.14159265359D0)
-
- WGamma = W/Gamma
- Wphib = WGamma * PHO_BESSK1(WGamma*Rho)
-
- PHO_GGFNUC = 1.D0/PI**2 * Wphib**2
-
- END
-
-CDECK ID>, PHO_GHHIOF
- SUBROUTINE PHO_GHHIOF(NEVENT,EEN,NA,NZ)
-C**********************************************************************
-C
-C interface to call PHOJET (variable energy run) for
-C gamma-hadron collisions in heavy ion collisions
-C (form factor approach)
-C
-C input: EEN LAB system energy per nucleon
-C NA atomic number of ion/hadron
-C NZ charge number of ion/hadron
-C NEVENT number of events to generate
-C from /LEPCUT/:
-C YMIN1,2 lower limit of Y
-C (energy fraction taken by photon from hadron)
-C YMAX1,2 upper cutoff for Y, necessary to avoid
-C underflows
-C Q2MIN1,2 minimum Q**2 of photons (should be set to 0)
-C Q2MAX1,2 maximum Q**2 of photons (if necessary,
-C corrected according size of hadron)
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( PI = 3.14159265359D0 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C photon flux kinematics and cuts
- DOUBLE PRECISION ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2
- INTEGER ITAG1,ITAG2
- COMMON /POFCUT/ ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2,
- & ITAG1,ITAG2
-C gamma-lepton or gamma-hadron vertex information
- INTEGER IGHEL,IDPSRC,IDBSRC
- DOUBLE PRECISION PINI,PFIN,PGAM,GYY,GQ2,GGECM,GAIMP,PFTHE,PFPHI,
- & RADSRC,AMSRC,GAMSRC
- COMMON /POFSRC/ PINI(5,2),PFIN(5,2),PGAM(5,2),IGHEL(2),
- & GYY(2),GQ2(2),GGECM,GAIMP(2),PFTHE(2),PFPHI(2),
- & IDPSRC(2),IDBSRC(2),RADSRC(2),AMSRC(2),GAMSRC(2)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-
- DIMENSION P1(4),P2(4)
- DIMENSION NITERS(2),ITRW(2)
-
- WRITE(LO,'(2(/1X,A))')
- & 'PHO_GHHIOF: gamma-hadron event generation',
- & '-----------------------------------------'
-C hadron size and mass
- FM2GEV = 5.07D0
- HIMASS = DBLE(NA)*0.938D0
- HIMA2 = HIMASS**2
- HIRADI = 1.2D0*FM2GEV*DBLE(NA)**0.333
- ALPHA = DBLE(NZ**2)/137.D0
- AMP = 0.938D0
- AMP2 = AMP**2
-C correct Q2MAX1,2 according to hadron size
- Q2MAXH = 2.D0/HIRADI**2
- Q2MAX1 = MIN(Q2MAX1,Q2MAXH)
- Q2MAX2 = MIN(Q2MAX2,Q2MAXH)
- IF(Q2MAX1.LT.1.D-20) Q2MAX1 = Q2MAXH
- IF(Q2MAX2.LT.1.D-20) Q2MAX2 = Q2MAXH
-C total hadron / heavy ion energy
- EE = EEN*DBLE(NA)
- GAMMA = EE/HIMASS
-C setup /POFSRC/
- GAMSRC(1) = GAMMA
- GAMSRC(2) = GAMMA
- RADSRC(1) = HIRADI
- RADSRC(2) = HIRADI
- AMSRC(1) = HIMASS
- AMSRC(2) = HIMASS
-C check cuts on photon-hadron mass
- IF((0.765D0+PARMDL(46)).GT.(PARMDL(45)*ECMIN)) THEN
- YMI = ECMIN
- ECMIN = PARMDL(46)/PARMDL(45)+0.1D0
- WRITE(LO,'(/1X,A,2E12.5)')
- & 'PHO_GHHIOF: ecmin corrected to (old/new)',YMI,ECMIN
- ENDIF
-C check kinematic limitations
- YMI = ECMIN**2/(4.D0*EE*EEN)
- IF(YMIN1.LT.YMI) THEN
- WRITE(LO,'(/1X,A,2E12.5)')
- & 'PHO_GHHIOF: ymin1 increased to (old/new)',YMIN1,YMI
- YMIN1 = YMI
- ELSE IF(YMIN1.GT.YMI) THEN
- WRITE(LO,'(/1X,A,/1X,A,E12.5,A,E12.5)')
- & 'PHO_GHHIOF:','ECM-CUT CORRESPONDS TO YMIN1 OF',YMI,
- & ' INSTEAD OF',YMIN1
- ENDIF
- IF(YMIN2.LT.YMI) THEN
- WRITE(LO,'(/1X,A,2E12.5)')
- & 'PHO_GHHIOF: ymin2 increased to (old/new)',YMIN2,YMI
- YMIN2 = YMI
- ELSE IF(YMIN2.GT.YMI) THEN
- WRITE(LO,'(/1X,A,/1X,A,E12.5,A,E12.5)')
- & 'PHO_GHHIOF:','ECM-CUT CORRESPONDS TO YMIN2 OF',YMI,
- & ' INSTEAD OF',YMIN2
- ENDIF
-C kinematic limitation
- Q2LOW1 = MAX(Q2MIN1,HIMA2*YMIN1**2/(1.D0-YMIN1))
- Q2LOW2 = MAX(Q2MIN2,HIMA2*YMIN2**2/(1.D0-YMIN2))
-C debug output
- WRITE(LO,'(/6X,A,2I4)') 'MASS NUMBER, CHARGE NUMBER ',NA,NZ
- WRITE(LO,'(6X,A,E12.5)') 'HADRON MASS (GeV) ',HIMASS
- WRITE(LO,'(6X,A,E12.5)') 'HADRON RADIUS (GeV**-1) ',HIRADI
- WRITE(LO,'(6X,A,2E12.5)') 'Q**2 RANGE PHOTON 1 (GEV**2)',Q2LOW1,
- & Q2MAX1
- WRITE(LO,'(6X,A,2E12.5)') 'Q**2 RANGE PHOTON 2 (GEV**2)',Q2LOW2,
- & Q2MAX2
- WRITE(LO,'(6X,A,2E12.5)') 'Y RANGE PHOTON 1 ',YMIN1,
- & YMAX1
- WRITE(LO,'(6X,A,2E12.5)') 'Y RANGE PHOTON 2 ',YMIN2,
- & YMAX2
- WRITE(LO,'(6X,A,2E12.5)') 'SQRT(S) PER NUCLEON, TOTAL ',
- & 2.D0*EEN,2.D0*EE
- WRITE(LO,'(6X,A,2E12.5)') 'INV.MASS PHOTON-HADRON ',ECMIN,
- & ECMAX
- WRITE(LO,'(6X,A,E12.5)') 'MIN. INV.MASS PHOTON-POMERON',
- & PARMDL(175)
- WRITE(LO,'(6X,A,I10)') 'EVENTS TO PROCESS ',NEVENT
- IF(Q2LOW1.GE.Q2MAX1) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GHHIOF:ERROR:INCONSISTENT Q**2 RANGE 1',Q2LOW1,Q2MAX1
- CALL PHO_ABORT
- ENDIF
- IF(Q2LOW2.GE.Q2MAX2) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GHHIOF:ERROR:INCONSISTENT Q**2 RANGE 2',Q2LOW2,Q2MAX2
- CALL PHO_ABORT
- ENDIF
-C hadron numbers set to 0
- IDPSRC(1) = 0
- IDPSRC(2) = 0
- IDBSRC(1) = 0
- IDBSRC(2) = 0
-C
- Max_tab = 100
- YMAX = YMAX1
- YMIN = YMIN1
- XMAX = LOG(YMAX)
- XMIN = LOG(YMIN)
- XDEL = XMAX-XMIN
- DELLY = LOG(YMAX/YMIN)/DBLE(Max_tab-1)
- DO 100 I=1,Max_tab
- Y1 = EXP(XMIN+DELLY*DBLE(I-1))
- Q2LOW1 = MAX(Q2MIN1,HIMA2*Y1*Y1/(1.D0-Y1))
- IF(Q2LOW1.GE.Q2MAX1) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GHHIOF: ymax1 changed from/to',YMAX1,Y1
- YMAX1 = MIN(Y1,YMAX1)
- GOTO 101
- ENDIF
- 100 CONTINUE
- 101 CONTINUE
- YMAX = YMAX2
- YMIN = YMIN2
- XMAX = LOG(YMAX)
- XMIN = LOG(YMIN)
- XDEL = XMAX-XMIN
- DELLY = LOG(YMAX/YMIN)/DBLE(Max_tab-1)
- DO 102 I=1,Max_tab
- Y1 = EXP(XMIN+DELLY*DBLE(I-1))
- Q2LOW2 = MAX(Q2MIN2,HIMA2*Y1*Y1/(1.D0-Y1))
- IF(Q2LOW2.GE.Q2MAX2) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GHHIOF: ymax2 changed from/to',YMAX2,Y1
- YMAX2 = MIN(Y1,YMAX2)
- GOTO 103
- ENDIF
- 102 CONTINUE
- 103 CONTINUE
-C
- X1MAX = LOG(YMAX1)
- X1MIN = LOG(YMIN1)
- X1DEL = X1MAX-X1MIN
- X2MAX = LOG(YMAX2)
- X2MIN = LOG(YMIN2)
- X2DEL = X2MAX-X2MIN
- DELLY = LOG(YMAX1/YMIN1)/DBLE(Max_tab-1)
- FLUX = 0.D0
- IF(IDEB(30).GE.1) WRITE(LO,'(/1X,A,I5)')
- & 'PHO_GHHIOF: table of raw photon flux (side 1)',Max_tab
- DO 105 I=1,Max_tab
- Y1 = EXP(X1MIN+DELLY*DBLE(I-1))
- Q2LOW1 = MAX(Q2MIN1,HIMA2*Y1*Y1/(1.D0-Y1))
- FF = ((1.D0+(1.D0-Y1)**2)/Y1*LOG(Q2MAX1/Q2LOW1)
- & -2.D0*HIMA2*Y1*(1.D0/Q2LOW1-1.D0/Q2MAX1))*ALPHA/(2.D0*PI)
- FLUX = FLUX+Y1*FF
- IF(IDEB(30).GE.1) WRITE(LO,'(5X,2E15.4)') Y1,FF
- 105 CONTINUE
- FLUX = FLUX*DELLY
- IF(IDEB(30).GE.1) WRITE(LO,'(1X,A,E12.4)')
- & 'PHO_GHHIOF: integrated flux (one side):',FLUX
-C
-C photon
- EGAM = MAX(YMAX1,YMAX2)*EE
- P1(1) = 0.D0
- P1(2) = 0.D0
- P1(3) = EGAM
- P1(4) = EGAM
-C hadron
- P2(1) = 0.D0
- P2(2) = 0.D0
- P2(3) = -SQRT(EEN**2-AMP2)
- P2(4) = EEN
- CALL PHO_SETPAR(1,22,0,0.D0)
- CALL PHO_SETPAR(2,2212,0,0.D0)
- CALL PHO_EVENT(-1,P1,P2,SIGMAX,IREJ)
-C
- Q2LOW1 = MAX(Q2MIN1,HIMA2*YMIN1**2/(1.D0-YMIN1))
- Q2LOW2 = MAX(Q2MIN2,HIMA2*YMIN2**2/(1.D0-YMIN2))
- Y1 = YMIN1
- Y2 = YMIN2
- WGMAX1 = (1.D0+(1.D0-Y1)**2)*LOG(Q2MAX1/Q2LOW1)
- & -2.D0*HIMA2*Y1*(1.D0/Q2LOW1-1.D0/Q2MAX1)*Y1
- WGMAX2 = (1.D0+(1.D0-Y2)**2)*LOG(Q2MAX2/Q2LOW2)
- & -2.D0*HIMA2*Y2*(1.D0/Q2LOW2-1.D0/Q2MAX2)*Y2
-C
- IF(IPAMDL(175).EQ.1) WGMAX2 = 0.D0
- IF(IPAMDL(175).EQ.2) WGMAX1 = 0.D0
-C
- FAC12 = WGMAX1*LOG(YMAX1/YMIN1)
- & /(WGMAX1*LOG(YMAX1/YMIN1)+WGMAX2*LOG(YMAX2/YMIN2))
-C
- CALL PHO_PHIST(-1,SIGMAX)
- CALL PHO_LHIST(-1,SIGMAX)
-C
-C generation of events, flux calculation
-
- AY1 = 0.D0
- AY2 = 0.D0
- AYS1 = 0.D0
- AYS2 = 0.D0
- Q21MIN = 1.D30
- Q22MIN = 1.D30
- Q21MAX = 0.D0
- Q22MAX = 0.D0
- Q21AVE = 0.D0
- Q22AVE = 0.D0
- Q21AV2 = 0.D0
- Q22AV2 = 0.D0
- YY1MIN = 1.D30
- YY2MIN = 1.D30
- YY1MAX = 0.D0
- YY2MAX = 0.D0
- NITER = NEVENT
- NITERS(1) = 0
- NITERS(2) = 0
- ITRY = 0
- ITRW(1) = 0
- ITRW(2) = 0
- DO 200 I=1,NITER
-C sample y1, y2
- 150 CONTINUE
- ITRY = ITRY+1
- 175 CONTINUE
-C
-C select side of photon emission
- IF(DT_RNDM(AY1).LT.FAC12) THEN
- ITRW(1) = ITRW(1)+1
-C select Y1
- Y1 = EXP(X1DEL*DT_RNDM(AY1)+X1MIN)
- Q2LOW1 = MAX(Q2MIN1,HIMA2*Y1**2/(1.D0-Y1))
- IF(Q2LOW1.GE.Q2MAX1) GOTO 175
- Q2LOG1 = LOG(Q2MAX1/Q2LOW1)
- WGH = (1.D0+(1.D0-Y1)**2)*Q2LOG1
- & -2.D0*HIMA2*Y1*(1.D0/Q2LOW1-1.D0/Q2MAX1)*Y1
- IF(WGMAX1.LT.WGH) WRITE(LO,'(1X,A,3E12.5)')
- & 'PHO_GHHIOF:WEIGHT ERROR (1):',Y1,WGMAX1,WGH
- IF(DT_RNDM(AYS1)*WGMAX1.GT.WGH) GOTO 175
-C sample Q2
- IF(IPAMDL(174).EQ.1) THEN
- YEFF = 1.D0+(1.D0-Y1)**2
- 185 CONTINUE
- Q2P1 = Q2LOW1*EXP(Q2LOG1*DT_RNDM(Y1))
- WEIGHT = (YEFF-2.D0*(1.D0-Y1)*Q2LOW1/Q2P1)/YEFF
- IF(WEIGHT.LT.DT_RNDM(Q2P1)) GOTO 185
- ELSE
- Q2P1 = Q2LOW1
- ENDIF
-C impact parameter
- GAIMP(1) = 1.D0/SQRT(Q2P1)
-C form factor (squared)
- FF2 = 1.D0
- IF(GAIMP(1).LT.2.D0*HIRADI) FF2 = 0.D0
- IF(DT_RNDM(Q2P1).GE.FF2) GOTO 175
-C photon data
- GYY(1) = Y1
- GQ2(1) = Q2P1
-
-C
-C incoming hadron 1
- PINI(1,1) = 0.D0
- PINI(2,1) = 0.D0
- PINI(3,1) = SQRT(EE**2-AMP2)
- PINI(4,1) = EE
- PINI(5,1) = AMP
-C outgoing hadron 1
- YQ2 = SQRT((1.D0-Y1)*Q2P1)
- Q2E = Q2P1/(4.D0*EE)
- E1Y = EE*(1.D0-Y1)
- CALL PHO_SFECFE(SIF,COF)
- PFIN(1,1) = YQ2*COF
- PFIN(2,1) = YQ2*SIF
- PFIN(3,1) = E1Y-Q2E
- PFIN(4,1) = E1Y+Q2E
- PFIN(5,1) = 0.D0
- PFPHI(1) = ATAN2(COF,SIF)
- PFTHE(1) = ACOS((E1Y-Q2E)/(Q2E+E1Y))
-C incoming hadron 2
- PINI(1,2) = 0.D0
- PINI(2,2) = 0.D0
- PINI(3,2) = -SQRT(EE**2-AMP2)
- PINI(4,2) = EE
- PINI(5,2) = AMP
-C scattering photon
- P1(1) = -PFIN(1,1)
- P1(2) = -PFIN(2,1)
- P1(3) = PINI(3,1)-PFIN(3,1)
- P1(4) = PINI(4,1)-PFIN(4,1)
-C scattering hadron
- P2(1) = 0.D0
- P2(2) = 0.D0
- P2(3) = -SQRT(EEN**2-AMP2)
- P2(4) = EEN
- ISIDE = 1
-C
- ELSE
-C
- ITRW(2) = ITRW(2)+1
-C select Y2
- Y2 = EXP(X2DEL*DT_RNDM(AY2)+X2MIN)
- Q2LOW2 = MAX(Q2MIN2,HIMA2*Y2**2/(1.D0-Y2))
- IF(Q2LOW2.GE.Q2MAX2) GOTO 175
- Q2LOG2 = LOG(Q2MAX2/Q2LOW2)
- WGH = (1.D0+(1.D0-Y2)**2)*Q2LOG2
- & -2.D0*HIMA2*Y2*(1.D0/Q2LOW2-1.D0/Q2MAX2)*Y2
- IF(WGMAX2.LT.WGH) WRITE(LO,'(1X,A,3E12.5)')
- & 'PHO_GHHIOF:WEIGHT ERROR (2):',Y2,WGMAX2,WGH
- IF(DT_RNDM(AYS1)*WGMAX2.GT.WGH) GOTO 175
-C sample Q2
- IF(IPAMDL(174).EQ.1) THEN
- YEFF = 1.D0+(1.D0-Y2)**2
- 186 CONTINUE
- Q2P2 = Q2LOW2*EXP(Q2LOG2*DT_RNDM(Y2))
- WEIGHT = (YEFF-2.D0*(1.D0-Y2)*Q2LOW2/Q2P2)/YEFF
- IF(WEIGHT.LT.DT_RNDM(Q2P2)) GOTO 186
- ELSE
- Q2P2 = Q2LOW2
- ENDIF
-C impact parameter
- GAIMP(2) = 1.D0/SQRT(Q2P2)
-C form factor (squared)
- FF2 = 1.D0
- IF(GAIMP(2).LT.2.D0*HIRADI) FF2 = 0.D0
- IF(DT_RNDM(Q2P2).GE.FF2) GOTO 175
-C photon data
- GYY(2) = Y2
- GQ2(2) = Q2P2
-
-C
-C incoming hadron 1
- PINI(1,1) = 0.D0
- PINI(2,1) = 0.D0
- PINI(3,1) = SQRT(EE**2-AMP2)
- PINI(4,1) = EE
- PINI(5,1) = AMP
-C incoming hadron 2
- PINI(1,2) = 0.D0
- PINI(2,2) = 0.D0
- PINI(3,2) = -SQRT(EE**2-AMP2)
- PINI(4,2) = EE
- PINI(5,2) = AMP
-C outgoing hadron 2
- YQ2 = SQRT((1.D0-Y2)*Q2P2)
- Q2E = Q2P2/(4.D0*EE)
- E1Y = EE*(1.D0-Y2)
- CALL PHO_SFECFE(SIF,COF)
- PFIN(1,2) = YQ2*COF
- PFIN(2,2) = YQ2*SIF
- PFIN(3,2) = -E1Y+Q2E
- PFIN(4,2) = E1Y+Q2E
- PFIN(5,2) = 0.D0
- PFPHI(2) = ATAN2(COF,SIF)
- PFTHE(2) = ACOS((Q2E-E1Y)/(Q2E+E1Y))
-C scattering hadron
- P2(1) = 0.D0
- P2(2) = 0.D0
- P2(3) = SQRT(EEN**2-AMP2)
- P2(4) = EEN
-C scattering photon
- P1(1) = -PFIN(1,2)
- P1(2) = -PFIN(2,2)
- P1(3) = PINI(3,2)-PFIN(3,2)
- P1(4) = PINI(4,2)-PFIN(4,2)
- ISIDE = 2
- ENDIF
-C ECMS cut
- GGECM = (P1(4)+P2(4))**2-(P1(1)+P2(1))**2
- & -(P1(2)+P2(2))**2-(P1(3)+P2(3))**2
- IF(GGECM.LT.0.1D0) GOTO 175
- GGECM = SQRT(GGECM)
- IF((GGECM.LT.ECMIN).OR.(GGECM.GT.ECMAX)) GOTO 175
-C
- PGAM(1,1) = P1(1)
- PGAM(2,1) = P1(2)
- PGAM(3,1) = P1(3)
- PGAM(4,1) = P1(4)
- PGAM(5,1) = -SQRT(Q2P1)
- PGAM(1,2) = P2(1)
- PGAM(2,2) = P2(2)
- PGAM(3,2) = P2(3)
- PGAM(4,2) = P2(4)
- PGAM(5,2) = -SQRT(Q2P2)
- CALL PHO_PRESEL(5,IREJ)
-C photon helicities
- IGHEL(1) = 1
- IGHEL(2) = 1
-C user cuts
- IF(IREJ.NE.0) GOTO 175
-C event generation
- CALL PHO_EVENT(1,P1,P2,SIGCUR,IREJ)
- IF(IREJ.NE.0) GOTO 150
-C cut on diffractive mass
- DO 250 K=1,NHEP
- IF(ISTHEP(K).EQ.30) THEN
- GHDIFF = PHEP(1,K)
- IF(GHDIFF.GE.PARMDL(175)) THEN
- GOTO 251
- ELSE
- GOTO 150
- ENDIF
- ENDIF
- 250 CONTINUE
- WRITE(LO,'(/,1X,A)')
- & 'PHO_GHHIOF: no diffractive entry found'
- CALL PHO_PREVNT(-1)
- GOTO 150
- 251 CONTINUE
-C remove quasi-elastically scattered hadron
- DO 260 K=1,NHEP
- IF((ISTHEP(K).EQ.1).AND.(IDHEP(K).EQ.2212)) THEN
- XF = ABS(PHEP(3,K)/EEN)
- IF(XF.LT.PARMDL(72)) GOTO 150
-* ISTHEP(K) = 2
- GOTO 261
- ENDIF
- 260 CONTINUE
- 261 CONTINUE
-C
-C statistics
-
- NITERS(ISIDE) = NITERS(ISIDE)+1
- IF(ISIDE.EQ.1) THEN
-
- AY1 = AY1+Y1
- AYS1 = AYS1+Y1*Y1
- Q21AVE = Q21AVE+Q2P1
- Q21AV2 = Q21AV2+Q2P1*Q2P1
- Q21MIN = MIN(Q21MIN,Q2P1)
- Q21MAX = MAX(Q21MAX,Q2P1)
- YY1MIN = MIN(YY1MIN,Y1)
- YY1MAX = MAX(YY1MAX,Y1)
- ELSE
-
- AY2 = AY2+Y2
- AYS2 = AYS2+Y2*Y2
- Q22AVE = Q22AVE+Q2P2
- Q22AV2 = Q22AV2+Q2P2*Q2P2
- Q22MIN = MIN(Q22MIN,Q2P2)
- Q22MAX = MAX(Q22MAX,Q2P2)
- YY2MIN = MIN(YY2MIN,Y2)
- YY2MAX = MAX(YY2MAX,Y2)
- ENDIF
-C histograms
- CALL PHO_PHIST(1,HSWGHT(0))
- CALL PHO_LHIST(1,HSWGHT(0))
- 200 CONTINUE
-C
- WGMAX = WGMAX1*LOG(YMAX1/YMIN1)*FAC12
- WGY1 = WGMAX*DBLE(ITRY)/DBLE(MAX(ITRW(1),1))*ALPHA/(2.D0*PI)
- WGMAX = WGMAX2*LOG(YMAX2/YMIN2)*(1.D0-FAC12)
- WGY2 = WGMAX*DBLE(ITRY)/DBLE(MAX(ITRW(2),1))*ALPHA/(2.D0*PI)
- AY1 = AY1/DBLE(MAX(NITERS(1),1))
- AYS1 = AYS1/DBLE(MAX(NITERS(1),1))
- DAY1 = SQRT((AYS1-AY1**2)/DBLE(MAX(NITERS(1),1)))
- AY2 = AY2/DBLE(MAX(NITERS(2),1))
- AYS2 = AYS2/DBLE(MAX(NITERS(2),1))
- DAY2 = SQRT((AYS2-AY2**2)/DBLE(MAX(NITERS(2),1)))
- Q21AVE = Q21AVE/DBLE(MAX(NITERS(1),1))
- Q21AV2 = Q21AV2/DBLE(MAX(NITERS(1),1))
- Q21AV2 = SQRT((Q21AV2-Q21AVE**2)/DBLE(MAX(NITERS(1),1)))
- Q22AVE = Q22AVE/DBLE(MAX(NITERS(2),1))
- Q22AV2 = Q22AV2/DBLE(MAX(NITERS(2),1))
- Q22AV2 = SQRT((Q22AV2-Q22AVE**2)/DBLE(MAX(NITERS(2),1)))
- WGMAX = WGMAX1*LOG(YMAX1/YMIN1)+WGMAX2*LOG(YMAX2/YMIN2)
- WGY = WGMAX*DBLE(ITRY)/DBLE(ITRW(1)+ITRW(2))*ALPHA/(2.D0*PI)
- WEIGHT = WGY*SIGMAX*DBLE(NITER)/DBLE(ITRY)
-C output of statistics, histograms
- WRITE(LO,'(//1X,A,/1X,A,1PE12.3,A,/1X,A)')
- &'=========================================================',
- &' ***** simulated cross section: ',WEIGHT,' mb *****',
- &'========================================================='
- WRITE(LO,'(//1X,A,/3X,6I12)')
- & 'PHO_GHHIOF:SUMMARY: NITER, NITERS1/2, ITRY, ITRW1,2',
- & NITER,NITERS,ITRY,ITRW
- WRITE(LO,'(1X,A,1P2E12.4)') 'EFFECTIVE WEIGHT (FLUX,TOTAL)',
- & WGY,WEIGHT
- WRITE(LO,'(1X,A,1P2E12.4)') 'AVERAGE Y1,DY1 ',
- & AY1,DAY1
- WRITE(LO,'(1X,A,1P2E12.4)') 'AVERAGE Y2,DY2 ',
- & AY2,DAY2
- WRITE(LO,'(1X,A,1P2E12.4)') 'SAMPLED Y RANGE PHOTON 1 ',
- & YY1MIN,YY1MAX
- WRITE(LO,'(1X,A,1P2E12.4)') 'SAMPLED Y RANGE PHOTON 2 ',
- & YY2MIN,YY2MAX
- WRITE(LO,'(1X,A,1P2E12.4)') 'AVERAGE Q2,DQ2 PHOTON 1 ',
- & Q21AVE,Q21AV2
- WRITE(LO,'(1X,A,1P2E12.4)') 'SAMPLED Q2 RANGE PHOTON 1 ',
- & Q21MIN,Q21MAX
- WRITE(LO,'(1X,A,1P2E12.4)') 'AVERAGE Q2,DQ2 PHOTON 2 ',
- & Q22AVE,Q22AV2
- WRITE(LO,'(1X,A,1P2E12.4)') 'SAMPLED Q2 RANGE PHOTON 2 ',
- & Q22MIN,Q22MAX
-C
- CALL PHO_EVENT(-2,P1,P2,WEIGHT,IREJ)
- IF(NITER.GT.1) THEN
- CALL PHO_PHIST(-2,WEIGHT)
- CALL PHO_LHIST(-2,WEIGHT)
- ELSE
- WRITE(LO,'(1X,A,I4)') 'PHO_GHHIOF:NO OUTPUT OF HISTOGRAMS',NITER
- ENDIF
-
- END
-
-CDECK ID>, PHO_GHHIAS
- SUBROUTINE PHO_GHHIAS(NEVENT,EEP,EEN,NA,NZ)
-C**********************************************************************
-C
-C interface to call PHOJET (variable energy run) for
-C gamma-hadron collisions in heavy ion - hadron
-C collisions (form factor approach)
-C
-C input: EEP LAB system energy of proton (GeV)
-C EEN LAB system energy per nucleon (GeV)
-C NA atomic number of ion/hadron
-C NZ charge number of ion/hadron
-C NEVENT number of events to generate
-C from /LEPCUT/:
-C YMIN2 lower limit of Y
-C (energy fraction taken by photon from hadron)
-C YMAX2 upper cutoff for Y, necessary to avoid
-C underflows
-C Q2MIN2 minimum Q**2 of photons (should be set to 0)
-C Q2MAX2 maximum Q**2 of photons (if necessary,
-C corrected according size of hadron)
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( PI = 3.14159265359D0 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C photon flux kinematics and cuts
- DOUBLE PRECISION ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2
- INTEGER ITAG1,ITAG2
- COMMON /POFCUT/ ECMIN,ECMAX,EEMIN1,EEMIN2,
- & YMIN1,YMAX1,YMIN2,YMAX2,
- & Q2MIN1,Q2MAX1,Q2MIN2,Q2MAX2,
- & THMIN1,THMAX1,THMIN2,THMAX2,
- & ITAG1,ITAG2
-C gamma-lepton or gamma-hadron vertex information
- INTEGER IGHEL,IDPSRC,IDBSRC
- DOUBLE PRECISION PINI,PFIN,PGAM,GYY,GQ2,GGECM,GAIMP,PFTHE,PFPHI,
- & RADSRC,AMSRC,GAMSRC
- COMMON /POFSRC/ PINI(5,2),PFIN(5,2),PGAM(5,2),IGHEL(2),
- & GYY(2),GQ2(2),GGECM,GAIMP(2),PFTHE(2),PFPHI(2),
- & IDPSRC(2),IDBSRC(2),RADSRC(2),AMSRC(2),GAMSRC(2)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-
- DIMENSION P1(4),P2(4)
-
- WRITE(LO,'(2(/1X,A))')
- & 'PHO_GHHIAS: hadron-gamma event generation',
- & '-----------------------------------------'
-C hadron size and mass
- FM2GEV = 5.07D0
- HIMASS = DBLE(NA)*0.938D0
- HIMA2 = HIMASS**2
- HIRADI = 1.2D0*FM2GEV*DBLE(NA)**0.333
- ALPHA = DBLE(NZ**2)/137.D0
- AMP = 0.938D0
- AMP2 = AMP**2
-C correct Q2MAX2 according to hadron size
- Q2MAXH = 2.D0/HIRADI**2
- Q2MAX2 = MIN(Q2MAX2,Q2MAXH)
- IF(Q2MAX2.LT.1.D-20) Q2MAX2 = Q2MAXH
-C total hadron / heavy ion energy
- EE = EEN*DBLE(NA)
- GAMMA = EE/HIMASS
-C setup /POFSRC/
- GAMSRC(2) = GAMMA
- RADSRC(2) = HIRADI
- AMSRC(2) = HIMASS
-C check kinematic limitations
- YMI = ECMIN**2/(4.D0*EE*EEP)
- IF(YMIN2.LT.YMI) THEN
- WRITE(LO,'(/1X,A,2E12.5)')
- & 'PHO_GHHIOF: ymin2 increased to (old/new)',YMIN2,YMI
- YMIN2 = YMI
- ELSE IF(YMIN2.GT.YMI) THEN
- WRITE(LO,'(/1X,A,/1X,A,E12.5,A,E12.5)')
- & 'PHO_GHHIOF:','ECM-CUT CORRESPONDS TO YMIN2 OF',YMI,
- & ' INSTEAD OF',YMIN2
- ENDIF
-C kinematic limitation
- Q2LOW2 = MAX(Q2MIN2,HIMA2*YMIN2**2/(1.D0-YMIN2))
-C debug output
- WRITE(LO,'(/6X,A,2I4)') 'MASS NUMBER, CHARGE NUMBER ',NA,NZ
- WRITE(LO,'(6X,A,E12.5)') 'HEAVY ION MASS (GeV) ',HIMASS
- WRITE(LO,'(6X,A,E12.5)') 'HEAVY ION RADIUS (GeV**-1) ',HIRADI
- WRITE(LO,'(6X,A,2E12.5)') 'Q**2 RANGE PHOTON 2 (GEV**2)',Q2LOW2,
- & Q2MAX2
- WRITE(LO,'(6X,A,2E12.5)') 'Y RANGE PHOTON 2 ',YMIN2,
- & YMAX2
- WRITE(LO,'(6X,A,2E12.5)') 'SQRT(S) PER NUCLEON, TOTAL ',
- & 2.D0*SQRT(EEN*EEP),2.D0*SQRT(EE*EEP)
- WRITE(LO,'(6X,A,2E12.5)') 'INV.MASS HADRON-PHOTON ',ECMIN,
- & ECMAX
- WRITE(LO,'(6X,A,I10)') 'EVENTS TO PROCESS ',NEVENT
- IF(Q2LOW2.GE.Q2MAX2) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GHHIOF:ERROR:inconsistent Q**2 range 2',Q2LOW2,Q2MAX2
- CALL PHO_ABORT
- ENDIF
-C hadron numbers set to 0
- IDPSRC(1) = 0
- IDPSRC(2) = 0
- IDBSRC(1) = 0
- IDBSRC(2) = 0
-C
- Max_tab = 100
- YMAX = YMAX2
- YMIN = YMIN2
- XMAX = LOG(YMAX)
- XMIN = LOG(YMIN)
- XDEL = XMAX-XMIN
- DELLY = LOG(YMAX/YMIN)/DBLE(Max_tab-1)
- DO 102 I=1,Max_tab
- Y1 = EXP(XMIN+DELLY*DBLE(I-1))
- Q2LOW2 = MAX(Q2MIN2,HIMA2*Y1*Y1/(1.D0-Y1))
- IF(Q2LOW2.GE.Q2MAX2) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_GHHIOF: ymax2 changed from/to',YMAX2,Y1
- YMAX2 = MIN(Y1,YMAX2)
- GOTO 103
- ENDIF
- 102 CONTINUE
- 103 CONTINUE
-C
- X2MAX = LOG(YMAX2)
- X2MIN = LOG(YMIN2)
- X2DEL = X2MAX-X2MIN
- DELLY = LOG(YMAX2/YMIN2)/DBLE(Max_tab-1)
- FLUX = 0.D0
- IF(IDEB(30).GE.1) WRITE(LO,'(/1X,A,I5)')
- & 'PHO_GHHIAS: table of raw photon flux (side 2)',Max_tab
- DO 105 I=1,Max_tab
- Y2 = EXP(X2MIN+DELLY*DBLE(I-1))
- Q2LOW2 = MAX(Q2MIN2,HIMA2*Y2*Y2/(1.D0-Y2))
- FF = ((1.D0+(1.D0-Y2)**2)/Y2*LOG(Q2MAX2/Q2LOW2)
- & -2.D0*HIMA2*Y2*(1.D0/Q2LOW2-1.D0/Q2MAX2))*ALPHA/(2.D0*PI)
- FLUX = FLUX+Y2*FF
- IF(IDEB(30).GE.1) WRITE(LO,'(5X,2E15.4)') Y2,FF
- 105 CONTINUE
- FLUX = FLUX*DELLY
- IF(IDEB(30).GE.1) WRITE(LO,'(1X,A,E12.4)')
- & 'PHO_GHHIAS: integrated flux:',FLUX
-C
-C hadron
- P1(1) = 0.D0
- P1(2) = 0.D0
- P1(3) = -SQRT(EEP**2-AMP2)
- P1(4) = EEP
-C photon
- EGAM = YMAX2*EE
- P2(1) = 0.D0
- P2(2) = 0.D0
- P2(3) = EGAM
- P2(4) = EGAM
- CALL PHO_SETPAR(1,2212,0,0.D0)
- CALL PHO_SETPAR(2,22,0,0.D0)
- CALL PHO_EVENT(-1,P1,P2,SIGMAX,IREJ)
-C
- Q2LOW2 = MAX(Q2MIN2,HIMA2*YMIN2**2/(1.D0-YMIN2))
- Y2 = YMIN2
- WGMAX2 = (1.D0+(1.D0-Y2)**2)*LOG(Q2MAX2/Q2LOW2)
- & -2.D0*HIMA2*Y2*(1.D0/Q2LOW2-1.D0/Q2MAX2)*Y2
-C
- CALL PHO_PHIST(-1,SIGMAX)
- CALL PHO_LHIST(-1,SIGMAX)
-C
-C generation of events, flux calculation
-
- AY1 = 0.D0
- AY2 = 0.D0
- AYS1 = 0.D0
- AYS2 = 0.D0
- Q22MIN = 1.D30
- Q22MAX = 0.D0
- Q22AVE = 0.D0
- Q22AV2 = 0.D0
- YY2MIN = 1.D30
- YY2MAX = 0.D0
- NITER = NEVENT
- NITERS = 0
- ITRY = 0
- ITRW = 0
- DO 200 I=1,NITER
-C sample photon flux
- 150 CONTINUE
- ITRY = ITRY+1
- 175 CONTINUE
-C
- ITRW = ITRW+1
-C select Y2
- Y2 = EXP(X2DEL*DT_RNDM(AY2)+X2MIN)
- Q2LOW2 = MAX(Q2MIN2,HIMA2*Y2**2/(1.D0-Y2))
- IF(Q2LOW2.GE.Q2MAX2) GOTO 175
- Q2LOG2 = LOG(Q2MAX2/Q2LOW2)
- WGH = (1.D0+(1.D0-Y2)**2)*Q2LOG2
- & -2.D0*HIMA2*Y2*(1.D0/Q2LOW2-1.D0/Q2MAX2)*Y2
- IF(WGMAX2.LT.WGH) WRITE(LO,'(1X,A,3E12.5)')
- & 'PHO_GHHIOF:WEIGHT ERROR (2):',Y2,WGMAX2,WGH
- IF(DT_RNDM(AYS1)*WGMAX2.GT.WGH) GOTO 175
-C sample Q2
- IF(IPAMDL(174).EQ.1) THEN
- YEFF = 1.D0+(1.D0-Y2)**2
- 186 CONTINUE
- Q2P2 = Q2LOW2*EXP(Q2LOG2*DT_RNDM(Y2))
- WEIGHT = (YEFF-2.D0*(1.D0-Y2)*Q2LOW2/Q2P2)/YEFF
- IF(WEIGHT.LT.DT_RNDM(Q2P2)) GOTO 186
- ELSE
- Q2P2 = Q2LOW2
- ENDIF
-C impact parameter
- GAIMP(2) = 1.D0/SQRT(Q2P2)
-C form factor (squared)
- FF2 = 1.D0
- IF(GAIMP(2).LT.2.D0*HIRADI) FF2 = 0.D0
- IF(DT_RNDM(Q2P2).GE.FF2) GOTO 175
-C photon data
- GYY(2) = Y2
- GQ2(2) = Q2P2
-
-C
-C incoming hadron 1
- PINI(1,1) = 0.D0
- PINI(2,1) = 0.D0
- PINI(3,1) = SQRT(EEP**2-AMP2)
- PINI(4,1) = EEP
- PINI(5,1) = AMP
-C incoming hadron 2
- PINI(1,2) = 0.D0
- PINI(2,2) = 0.D0
- PINI(3,2) = -SQRT(EE**2-AMP2)
- PINI(4,2) = EE
- PINI(5,2) = AMP
-C outgoing hadron 2
- YQ2 = SQRT((1.D0-Y2)*Q2P2)
- Q2E = Q2P2/(4.D0*EE)
- E1Y = EE*(1.D0-Y2)
- CALL PHO_SFECFE(SIF,COF)
- PFIN(1,2) = YQ2*COF
- PFIN(2,2) = YQ2*SIF
- PFIN(3,2) = -E1Y+Q2E
- PFIN(4,2) = E1Y+Q2E
- PFIN(5,2) = 0.D0
- PFPHI(2) = ATAN2(COF,SIF)
- PFTHE(2) = ACOS((Q2E-E1Y)/(Q2E+E1Y))
-C scattering hadron
- P1(1) = 0.D0
- P1(2) = 0.D0
- P1(3) = SQRT(EEP**2-AMP2)
- P1(4) = EEP
- Q2P1 = AMP2
-C scattering photon
- P2(1) = -PFIN(1,2)
- P2(2) = -PFIN(2,2)
- P2(3) = PINI(3,2)-PFIN(3,2)
- P2(4) = PINI(4,2)-PFIN(4,2)
- ISIDE = 2
-C
-C ECMS cut
- GGECM = (P1(4)+P2(4))**2-(P1(1)+P2(1))**2
- & -(P1(2)+P2(2))**2-(P1(3)+P2(3))**2
- IF(GGECM.LT.0.1D0) GOTO 175
- GGECM = SQRT(GGECM)
- IF((GGECM.LT.ECMIN).OR.(GGECM.GT.ECMAX)) GOTO 175
-C
- PGAM(1,1) = P1(1)
- PGAM(2,1) = P1(2)
- PGAM(3,1) = P1(3)
- PGAM(4,1) = P1(4)
- PGAM(5,1) = AMP
- PGAM(1,2) = P2(1)
- PGAM(2,2) = P2(2)
- PGAM(3,2) = P2(3)
- PGAM(4,2) = P2(4)
- PGAM(5,2) = -SQRT(Q2P2)
-C photon helicities
- IGHEL(2) = 1
-C user cuts
- CALL PHO_PRESEL(5,IREJ)
- IF(IREJ.NE.0) GOTO 175
-C event generation
- CALL PHO_EVENT(1,P1,P2,SIGCUR,IREJ)
- IF(IREJ.NE.0) GOTO 150
-C cut on diffractive mass
- DO 250 K=1,NHEP
- IF(ISTHEP(K).EQ.30) THEN
- GHDIFF = PHEP(1,K)
- IF(GHDIFF.GE.PARMDL(175)) THEN
- GOTO 251
- ELSE
- GOTO 150
- ENDIF
- ENDIF
- 250 CONTINUE
- WRITE(LO,'(/,1X,A)')
- & 'PHO_GHHIOF: no diffractive entry found'
- CALL PHO_PREVNT(-1)
- GOTO 150
- 251 CONTINUE
-C remove quasi-elastically scattered hadron
- DO 260 K=1,NHEP
- IF((ISTHEP(K).EQ.1).AND.(IDHEP(K).EQ.2212)) THEN
- XF = ABS(PHEP(3,K)/EEN)
- IF(XF.LT.PARMDL(72)) GOTO 150
-* ISTHEP(K) = 2
- GOTO 261
- ENDIF
- 260 CONTINUE
- 261 CONTINUE
-C
-C statistics
-
- NITERS = NITERS+1
-
- AY2 = AY2+Y2
- AYS2 = AYS2+Y2*Y2
- Q22AVE = Q22AVE+Q2P2
- Q22AV2 = Q22AV2+Q2P2*Q2P2
- Q22MIN = MIN(Q22MIN,Q2P2)
- Q22MAX = MAX(Q22MAX,Q2P2)
- YY2MIN = MIN(YY2MIN,Y2)
- YY2MAX = MAX(YY2MAX,Y2)
-C histograms
- CALL PHO_PHIST(1,HSWGHT(0))
- CALL PHO_LHIST(1,HSWGHT(0))
- 200 CONTINUE
-C
- WGMAX = WGMAX2*LOG(YMAX2/YMIN2)
- WGY2 = WGMAX*DBLE(ITRY)/DBLE(MAX(ITRW,1))*ALPHA/(2.D0*PI)
- AY2 = AY2/DBLE(MAX(NITERS,1))
- AYS2 = AYS2/DBLE(MAX(NITERS,1))
- DAY2 = SQRT((AYS2-AY2**2)/DBLE(MAX(NITERS,1)))
- Q22AVE = Q22AVE/DBLE(MAX(NITERS,1))
- Q22AV2 = Q22AV2/DBLE(MAX(NITERS,1))
- Q22AV2 = SQRT((Q22AV2-Q22AVE**2)/DBLE(MAX(NITERS,1)))
- WGMAX = WGMAX2*LOG(YMAX2/YMIN2)
- WGY = WGMAX*DBLE(ITRY)/DBLE(ITRW)*ALPHA/(2.D0*PI)
- WEIGHT = WGY*SIGMAX*DBLE(NITER)/DBLE(ITRY)
-C output of statistics, histograms
- WRITE(LO,'(//1X,A,/1X,A,1PE12.3,A,/1X,A)')
- &'=========================================================',
- &' ***** simulated cross section: ',WEIGHT,' mb *****',
- &'========================================================='
- WRITE(LO,'(//1X,A,/3X,4I12)')
- & 'PHO_GHHIOF:SUMMARY: NITER, NITERS, ITRY, ITRW',
- & NITER,NITERS,ITRY,ITRW
- WRITE(LO,'(1X,A,1P2E12.4)') 'EFFECTIVE WEIGHT (FLUX,TOTAL)',
- & WGY,WEIGHT
- WRITE(LO,'(1X,A,1P2E12.4)') 'AVERAGE Y2,DY2 ',
- & AY2,DAY2
- WRITE(LO,'(1X,A,1P2E12.4)') 'SAMPLED Y RANGE PHOTON 2 ',
- & YY2MIN,YY2MAX
- WRITE(LO,'(1X,A,1P2E12.4)') 'AVERAGE Q2,DQ2 PHOTON 2 ',
- & Q22AVE,Q22AV2
- WRITE(LO,'(1X,A,1P2E12.4)') 'SAMPLED Q2 RANGE PHOTON 2 ',
- & Q22MIN,Q22MAX
-C
- CALL PHO_EVENT(-2,P1,P2,WEIGHT,IREJ)
- IF(NITER.GT.1) THEN
- CALL PHO_PHIST(-2,WEIGHT)
- CALL PHO_LHIST(-2,WEIGHT)
- ELSE
- WRITE(LO,'(1X,A,I4)')
- & 'PHO_GHHIOF: no output of histograms',NITER
- ENDIF
-
- END
-
-CDECK ID>, PHO_FITPAR
- SUBROUTINE PHO_FITPAR(IOUTP)
-C**********************************************************************
-C
-C read input parameters according to PDFs
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEFA=-99999.D0,
- & DEFB=-100000.D0,
- & THOUS=1.D3)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C currently activated parton density parametrizations
- CHARACTER*8 PDFNAM
- INTEGER IPARID,IPAVA,ITYPE,IGRP,ISET,IEXT,NPAOLD
- DOUBLE PRECISION PDFLAM,PDFQ2M
- COMMON /POPPDF/ PDFLAM(2),PDFQ2M(2),PDFNAM(2),IPARID(2),
- & IPAVA(2),ITYPE(2),IGRP(2),ISET(2),IEXT(2),NPAOLD
-C Reggeon phenomenology parameters
- DOUBLE PRECISION ALPOM,ALPOMP,GP,B0POM,ALREG,ALREGP,GR,B0REG,
- & GPPP,GPPR,B0PPP,B0PPR,VDMFAC,VDMQ2F,B0HAR,AKFAC
- COMMON /POPREG/ ALPOM,ALPOMP,GP(2),B0POM(2),
- & ALREG,ALREGP,GR(2),B0REG(2),
- & GPPP,GPPR,B0PPP,B0PPR,
- & VDMFAC(4),VDMQ2F(4),B0HAR,AKFAC
-C parameters of 2x2 channel model
- DOUBLE PRECISION PHISUP,RMASS,VAR,AMPFAC,ELAFAC,VFAC
- COMMON /PO2CHA/ PHISUP(2),RMASS(2),VAR,AMPFAC(4),ELAFAC(4),VFAC
-
- DIMENSION INUM(3),IFPAS(2)
- CHARACTER*8 CNAME8,PDFNA1,PDFNA2
- CHARACTER*10 CNAM10
-
- PARAMETER ( Max_tab = 22 )
- DIMENSION XDPtab(27,Max_tab),IDPtab(8,Max_tab)
- REAL XDPtab
- INTEGER IDPtab
-
-C parameter set for 2212 (GRV94 LO) 2212 (GRV94 LO)
- DATA (IDPtab(k, 1),k=1,8) /
- & 2212, 5, 6, 0, 2212, 5, 6, 0 /
- DATA (XDPtab(k, 1),k=1,27) /
- &1.1000E+00,2.5000E-01,6.3870E+00,6.3870E+00,1.1610E+00,1.1610E+00,
- &4.5000E-01,9.0000E-01,1.0263E+01,1.0263E+01,1.1710E+00,1.1710E+00,
- &1.5600E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &1.0000E+00,0.0000E+00,1.0000E+00,0.0000E+00,3.5000E+00,2.0000E+00,
- &6.0000E-01,6.0000E-01,1.1000E+00,1.1000E+00,3.000E+00 /
-
-C parameter set for 2212 (GRV94 LO) -2212 (GRV94 LO)
- DATA (IDPtab(k, 2),k=1,8) /
- & 2212, 5, 6, 0, -2212, 5, 6, 0 /
- DATA (XDPtab(k, 2),k=1,27) /
- &1.1000E+00,2.5000E-01,6.3870E+00,6.3870E+00,1.1610E+00,1.1610E+00,
- &4.5000E-01,9.0000E-01,1.5174E+01,1.5174E+01,1.5400E+00,1.5400E+00,
- &1.5600E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &1.0000E+00,0.0000E+00,1.0000E+00,0.0000E+00,3.5000E+00,2.0000E+00,
- &6.0000E-01,6.0000E-01,1.1000E+00,1.1000E+00,3.000E+00 /
-
-C parameter set for 22 (GRV-G LO) 2212 (GRV94 LO)
- DATA (IDPtab(k, 3),k=1,8) /
- & 22, 5, 3, 0, 2212, 5, 6, 0 /
- DATA (XDPtab(k, 3),k=1,27) /
- &1.0970E+00,2.5000E-01,2.7450E+00,6.8270E+00,1.2250E+00,1.1360E+00,
- &5.0000E-01,1.0000E+00,4.7210E+00,1.1740E+01,4.6200E-01,4.2800E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &4.3100E-03,8.0000E-05,1.0000E+00,0.0000E+00,3.2000E+00,1.0000E+00,
- &7.0000E-01,6.0000E-01,1.0000E+00,1.1000E+00,3.000E+00 /
-
-C parameter set for 22 (GRV-G LO) 22 (GRV-G LO)
- DATA (IDPtab(k, 4),k=1,8) /
- & 22, 5, 3, 0, 22, 5, 3, 0 /
- DATA (XDPtab(k, 4),k=1,27) /
- &1.0970E+00,2.5000E-01,2.7450E+00,2.7450E+00,1.2250E+00,1.2250E+00,
- &5.0000E-01,1.0000E+00,4.7210E+00,4.7210E+00,4.6200E-01,4.6200E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &4.3100E-03,8.0000E-05,4.3100E-03,8.0000E-05,3.2000E+00,1.0000E+00,
- &7.0000E-01,7.0000E-01,1.0000E+00,1.0000E+00,3.000E+00 /
-
-C parameter set for 22 (GRS-G LO) 2212 (GRV94 LO)
- DATA (IDPtab(k, 5),k=1,8) /
- & 22, 5, 4, 4, 2212, 5, 6, 0 /
- DATA (XDPtab(k, 5),k=1,27) /
- &1.0970E+00,2.5000E-01,2.7450E+00,6.8270E+00,1.2250E+00,1.1360E+00,
- &5.0000E-01,1.0000E+00,4.7210E+00,1.1740E+01,4.6200E-01,4.2800E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &4.3100E-03,8.0000E-05,1.0000E+00,0.0000E+00,3.2000E+00,1.0000E+00,
- &7.0000E-01,6.0000E-01,1.0000E+00,1.1000E+00,3.000E+00 /
-
-C parameter set for 22 (GRS-G LO) 22 (GRS-G LO)
- DATA (IDPtab(k, 6),k=1,8) /
- & 22, 5, 4, 4, 22, 5, 4, 4 /
- DATA (XDPtab(k, 6),k=1,27) /
- &1.0970E+00,2.5000E-01,2.7450E+00,2.7450E+00,1.2250E+00,1.2250E+00,
- &5.0000E-01,1.0000E+00,4.7210E+00,4.7210E+00,4.6200E-01,4.6200E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &4.3100E-03,8.0000E-05,4.3100E-03,8.0000E-05,3.2000E+00,1.0000E+00,
- &7.0000E-01,7.0000E-01,1.0000E+00,1.0000E+00,3.000E+00 /
-
-C parameter set for 22 (SaS-1D ) 22 (SaS-1D )
- DATA (IDPtab(k, 7),k=1,8) /
- & 22, 1, 1, 4, 22, 1, 1, 4 /
- DATA (XDPtab(k, 7),k=1,27) /
- &1.0970E+00,2.5000E-01,3.1170E+00,3.1170E+00,1.3450E+00,1.3450E+00,
- &3.0200E-01,1.0000E+00,6.6050E+00,6.6050E+00,1.7500E-01,1.7500E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &4.0900E-03,9.0000E-05,4.0900E-03,9.0000E-05,3.2000E+00,1.0000E+00,
- &7.0000E-01,7.0000E-01,1.0000E+00,1.0000E+00,3.000E+00 /
-
-C parameter set for 22 (SaS-1M ) 22 (SaS-1M )
- DATA (IDPtab(k, 8),k=1,8) /
- & 22, 1, 2, 4, 22, 1, 2, 4 /
- DATA (XDPtab(k, 8),k=1,27) /
- &1.0970E+00,2.5000E-01,2.5540E+00,2.5540E+00,1.0910E+00,1.0910E+00,
- &5.0000E-01,1.0000E+00,4.2580E+00,4.2580E+00,4.9000E-01,4.9000E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &4.5700E-03,1.0000E-04,4.5700E-03,1.0000E-04,3.2000E+00,1.0000E+00,
- &7.0000E-01,7.0000E-01,1.0000E+00,1.0000E+00,3.000E+00 /
-
-C parameter set for 22 (SaS-2D ) 22 (SaS-2D )
- DATA (IDPtab(k, 9),k=1,8) /
- & 22, 1, 3, 4, 22, 1, 3, 4 /
- DATA (XDPtab(k, 9),k=1,27) /
- &1.0970E+00,2.5000E-01,2.5330E+00,2.5330E+00,1.1340E+00,1.1340E+00,
- &5.0100E-01,1.0000E+00,4.2300E+00,4.2300E+00,4.9300E-01,4.9300E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &4.5900E-03,1.0000E-04,4.5900E-03,1.0000E-04,3.2000E+00,1.0000E+00,
- &7.0000E-01,7.0000E-01,1.0000E+00,1.0000E+00,3.000E+00 /
-
-C parameter set for 22 (SaS-2M ) 22 (SaS-2M )
- DATA (IDPtab(k, 10),k=1,8) /
- & 22, 1, 4, 4, 22, 1, 4, 4 /
- DATA (XDPtab(k, 10),k=1,27) /
- &1.0970E+00,2.5000E-01,2.8220E+00,2.8220E+00,1.0910E+00,1.0910E+00,
- &4.9100E-01,1.0000E+00,4.6870E+00,4.6870E+00,4.5800E-01,4.5800E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &4.6600E-03,3.0000E-05,4.6600E-03,3.0000E-05,3.2000E+00,1.0000E+00,
- &7.0000E-01,7.0000E-01,1.0000E+00,1.0000E+00,3.000E+00 /
-
-C parameter set for 22 (LAC ) 2212 (GRV94 LO)
- DATA (IDPtab(k, 11),k=1,8) /
- & 22, 3, 1, 3, 2212, 5, 6, 0 /
- DATA (XDPtab(k, 11),k=1,27) /
- &1.0970E+00,2.5000E-01,3.3050E+00,6.8270E+00,9.4500E-01,1.1360E+00,
- &4.5000E-01,1.0000E+00,6.7120E+00,1.1740E+01,2.5800E-01,4.6200E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &3.3400E-03,2.4000E-04,1.0000E+00,0.0000E+00,2.0000E+00,1.0000E+00,
- &7.0000E-01,6.0000E-01,1.0000E+00,1.1000E+00,3.000E+00 /
-
-C parameter set for 22 (PDFLIB2 ) 2212 (GRV94 LO)
- DATA (IDPtab(k, 12),k=1,8) /
- & 22, 3, 1, 2, 2212, 5, 6, 0 /
- DATA (XDPtab(k, 12),k=1,27) /
- &1.0970E+00,2.5000E-01,3.3050E+00,6.8270E+00,9.4500E-01,1.1360E+00,
- &4.5000E-01,1.0000E+00,6.7120E+00,1.1740E+01,2.5800E-01,4.6200E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &3.3400E-03,2.4000E-04,1.0000E+00,0.0000E+00,2.0000E+00,1.0000E+00,
- &7.0000E-01,6.0000E-01,1.0000E+00,1.1000E+00,3.000E+00 /
-
-C parameter set for 22 (LAC ) 22 (LAC )
- DATA (IDPtab(k, 13),k=1,8) /
- & 22, 3, 1, 3, 22, 3, 1, 3 /
- DATA (XDPtab(k, 13),k=1,27) /
- &1.0970E+00,2.5000E-01,3.3050E+00,3.3050E+00,9.4500E-01,9.4500E-01,
- &4.5000E-01,1.0000E+00,6.7120E+00,6.7120E+00,2.5800E-01,2.5800E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &3.3400E-03,2.4000E-04,3.3400E-03,2.4000E-04,2.0000E+00,1.0000E+00,
- &7.0000E-01,7.0000E-01,1.0000E+00,1.0000E+00,3.000E+00 /
-
-C parameter set for 22 (PDFLIB2 ) 22 (PDFLIB2 )
- DATA (IDPtab(k, 14),k=1,8) /
- & 22, 3, 1, 2, 22, 3, 1, 2 /
- DATA (XDPtab(k, 14),k=1,27) /
- &1.0970E+00,2.5000E-01,3.3050E+00,3.3050E+00,9.4500E-01,9.4500E-01,
- &4.5000E-01,1.0000E+00,6.7120E+00,6.7120E+00,2.5800E-01,2.5800E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &3.3400E-03,2.4000E-04,3.3400E-03,2.4000E-04,2.0000E+00,1.0000E+00,
- &7.0000E-01,7.0000E-01,1.0000E+00,1.0000E+00,3.000E+00 /
-
-C parameter set for 22 (LAC ) 2212 (GRV94 LO)
- DATA (IDPtab(k, 15),k=1,8) /
- & 22, 3, 2, 3, 2212, 5, 6, 0 /
- DATA (XDPtab(k, 15),k=1,27) /
- &1.0970E+00,2.5000E-01,3.1450E+00,6.8270E+00,1.0490E+00,1.1360E+00,
- &4.5000E-01,1.0000E+00,6.3680E+00,1.1740E+01,1.4700E-01,4.6200E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &3.8700E-03,1.1000E-04,1.0000E+00,0.0000E+00,2.0000E+00,1.0000E+00,
- &7.0000E-01,6.0000E-01,1.0000E+00,1.1000E+00,3.000E+00 /
-
-C parameter set for 22 (PDFLIB2 ) 2212 (GRV94 LO)
- DATA (IDPtab(k, 16),k=1,8) /
- & 22, 3, 2, 2, 2212, 5, 6, 0 /
- DATA (XDPtab(k, 16),k=1,27) /
- &1.0970E+00,2.5000E-01,3.1450E+00,6.8270E+00,1.0490E+00,1.1360E+00,
- &4.5000E-01,1.0000E+00,6.3680E+00,1.1740E+01,1.4700E-01,4.6200E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &3.8700E-03,1.1000E-04,1.0000E+00,0.0000E+00,2.0000E+00,1.0000E+00,
- &7.0000E-01,6.0000E-01,1.0000E+00,1.1000E+00,3.000E+00 /
-
-C parameter set for 22 (LAC ) 22 (LAC )
- DATA (IDPtab(k, 17),k=1,8) /
- & 22, 3, 2, 3, 22, 3, 2, 3 /
- DATA (XDPtab(k, 17),k=1,27) /
- &1.0970E+00,2.5000E-01,3.1450E+00,3.1450E+00,1.0490E+00,1.0490E+00,
- &4.5000E-01,1.0000E+00,6.3680E+00,6.3680E+00,1.4700E-01,1.4700E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &3.8700E-03,1.1000E-04,3.8700E-03,1.0000E-04,2.0000E+00,1.0000E+00,
- &7.0000E-01,7.0000E-01,1.0000E+00,1.0000E+00,3.000E+00 /
-
-C parameter set for 22 (PDFLIB2 ) 22 (PDFLIB2 )
- DATA (IDPtab(k, 18),k=1,8) /
- & 22, 3, 2, 2, 22, 3, 2, 2 /
- DATA (XDPtab(k, 18),k=1,27) /
- &1.0970E+00,2.5000E-01,3.1450E+00,3.1450E+00,1.0490E+00,1.0490E+00,
- &4.5000E-01,1.0000E+00,6.3680E+00,6.3680E+00,1.4700E-01,1.4700E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &3.8700E-03,1.1000E-04,3.8700E-03,1.0000E-04,2.0000E+00,1.0000E+00,
- &7.0000E-01,7.0000E-01,1.0000E+00,1.0000E+00,3.000E+00 /
-
-C parameter set for 22 (LAC ) 2212 (GRV94 LO)
- DATA (IDPtab(k, 19),k=1,8) /
- & 22, 3, 3, 3, 2212, 5, 6, 0 /
- DATA (XDPtab(k, 19),k=1,27) /
- &1.0970E+00,2.5000E-01,3.0510E+00,6.8270E+00,1.0500E+00,1.1360E+00,
- &4.5000E-01,1.0000E+00,6.0060E+00,1.1740E+01,2.0500E-01,4.6200E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &4.0200E-03,1.0000E-04,1.0000E+00,0.0000E+00,2.0000E+00,1.0000E+00,
- &7.0000E-01,6.0000E-01,1.0000E+00,1.1000E+00,3.000E+00 /
-
-C parameter set for 22 (PDFLIB2 ) 2212 (GRV94 LO)
- DATA (IDPtab(k, 20),k=1,8) /
- & 22, 3, 3, 2, 2212, 5, 6, 0 /
- DATA (XDPtab(k, 20),k=1,27) /
- &1.0970E+00,2.5000E-01,3.0510E+00,6.8270E+00,1.0500E+00,1.1360E+00,
- &4.5000E-01,1.0000E+00,6.0060E+00,1.1740E+01,2.0500E-01,4.6200E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &4.0200E-03,1.0000E-04,1.0000E+00,0.0000E+00,2.0000E+00,1.0000E+00,
- &7.0000E-01,6.0000E-01,1.0000E+00,1.1000E+00,3.000E+00 /
-
-C parameter set for 22 (LAC ) 22 (LAC )
- DATA (IDPtab(k, 21),k=1,8) /
- & 22, 3, 3, 3, 22, 3, 3, 3 /
- DATA (XDPtab(k, 21),k=1,27) /
- &1.0970E+00,2.5000E-01,3.0510E+00,3.0510E+00,1.0500E+00,1.0500E+00,
- &4.5000E-01,1.0000E+00,6.0060E+00,6.0060E+00,2.0500E-01,2.0500E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &4.0200E-03,1.0000E-04,4.0200E-03,1.0000E-04,2.0000E+00,1.0000E+00,
- &7.0000E-01,7.0000E-01,1.0000E+00,1.0000E+00,3.000E+00 /
-
-C parameter set for 22 (PDFLIB2 ) 22 (PDFLIB2 )
- DATA (IDPtab(k, 22),k=1,8) /
- & 22, 3, 3, 2, 22, 3, 3, 2 /
- DATA (XDPtab(k, 22),k=1,27) /
- &1.0970E+00,2.5000E-01,3.0510E+00,3.0510E+00,1.0500E+00,1.0500E+00,
- &4.5000E-01,1.0000E+00,6.0060E+00,6.0060E+00,2.0500E-01,2.0500E-01,
- &1.7000E-01,5.0000E-01,6.1200E-01,3.0000E-01,
- &4.0200E-03,1.0000E-04,4.0200E-03,1.0000E-04,2.0000E+00,1.0000E+00,
- &7.0000E-01,7.0000E-01,1.0000E+00,1.0000E+00,3.000E+00 /
-
- DATA CNAME8 /' '/
- DATA CNAM10 /' '/
- DATA INIT / 0 /
- DATA IFPAS / 0, 0 /
-
- IF((INIT.EQ.1).AND.
- & (IFPAP(1).EQ.IFPAS(1)).AND.(IFPAP(2).EQ.IFPAS(2))) GOTO 1300
-
- INIT=1
- IFPAS(1) = IFPAP(1)
- IFPAS(2) = IFPAP(2)
-
-C parton distribution functions
- CALL PHO_ACTPDF(IFPAP(1),1)
- CALL PHO_GETPDF(1,PDFNA1,ALAM2,Q2MIN,Q2MAX,XMIN,XMAX)
- CALL PHO_ACTPDF(IFPAP(2),2)
- CALL PHO_GETPDF(2,PDFNA2,ALAM2,Q2MIN,Q2MAX,XMIN,XMAX)
-C initialize alpha_s calculation
- DUMMY = PHO_ALPHAS(0.D0,-4)
-
- IF(IDEB(54).GE.0) THEN
- WRITE(LO,'(/1X,A,I7,2X,A,3I7)') 'PHO_FITPAR: looking for PDF',
- & IFPAP(1),PDFNA1,IGRP(1),ISET(1),IEXT(1)
- WRITE(LO,'(1X,A,I7,2X,A,3I7)') 'PHO_FITPAR: looking for PDF',
- & IFPAP(2),PDFNA2,IGRP(2),ISET(2),IEXT(2)
- ENDIF
-
- IFOUND = 0
-
-C load parameter set from internal tables
- I1 = 1
- I2 = 2
- 110 CONTINUE
-
- DO I=1,Max_tab
- IF((IFPAP(I1).EQ.IDPtab(1,I))
- & .AND.(IGRP(I1).EQ.IDPtab(2,I))
- & .AND.(ISET(I1).EQ.IDPtab(3,I))
- & .AND.(IEXT(I1).EQ.IDPtab(4,I))) THEN
- IF((IFPAP(I2).EQ.IDPtab(5,I))
- & .AND.(IGRP(I2).EQ.IDPtab(6,I))
- & .AND.(ISET(I2).EQ.IDPtab(7,I))
- & .AND.(IEXT(I2).EQ.IDPtab(8,I))) THEN
-C *** Commented by Chiara
-C WRITE(LO,'(/1X,A)')
-C & 'PHO_FITPAR: parameter set found in internal table'
- ALPOM = XDPtab(1,I)
- ALPOMP = XDPtab(2,I)
- GP(I1) = XDPtab(3,I)
- GP(I2) = XDPtab(4,I)
- B0POM(I1) = XDPtab(5,I)
- B0POM(I2) = XDPtab(6,I)
- ALREG = XDPtab(7,I)
- ALREGP = XDPtab(8,I)
- GR(I1) = XDPtab(9,I)
- GR(I2) = XDPtab(10,I)
- B0REG(I1) = XDPtab(11,I)
- B0REG(I2) = XDPtab(12,I)
- GPPP = XDPtab(13,I)
- B0PPP = XDPtab(14,I)
- GPPR = XDPtab(15,I)
- B0PPR = XDPtab(16,I)
- VDMFAC(2*I1-1) = XDPtab(17,I)
- VDMFAC(2*I1) = XDPtab(18,I)
- VDMFAC(2*I2-1) = XDPtab(19,I)
- VDMFAC(2*I2) = XDPtab(20,I)
- B0HAR = XDPtab(21,I)
- AKFAC = XDPtab(22,I)
- PHISUP(I1) = XDPtab(23,I)
- PHISUP(I2) = XDPtab(24,I)
- RMASS(I1) = XDPtab(25,I)
- RMASS(I2) = XDPtab(26,I)
- VAR = XDPtab(27,I)
- IFOUND = 1
- GOTO 1200
- ENDIF
- ENDIF
- ENDDO
-
- IF(I1.EQ.1) THEN
- I1 = 2
- I2 = 1
- GOTO 110
- ELSE
-C *** Commented by Chiara
-C WRITE(LO,'(/1X,A)')
-C & 'PHO_FITPAR: parameter set not found in internal table'
- ENDIF
-
- 1200 CONTINUE
-
-C get parameters of soft cross sections from fitpar.dat
- IF(IPAMDL(99).GT.IFOUND) THEN
-
- WRITE(LO,'(/1X,A)')
- & 'PHO_FITPAR: loading parameter set from file fitpar.dat'
- OPEN(12,FILE='fitpar.dat',ERR=1010,STATUS='OLD')
-
- 100 CONTINUE
- READ(12,'(A8)',ERR=1020,END=1010) CNAME8
- IF(CNAME8.EQ.'STOP') GOTO 1010
- IF(CNAME8.EQ.'NEXTDATA') THEN
- READ(12,'(I8,2X,A8,3I6)',ERR=1020,END=1010)
- & IDPA1,CNAME8,INUM
- IF((IDPA1.EQ.IFPAP(1)).AND.(CNAME8.EQ.PDFNA1)
- & .AND.(INUM(1).EQ.IGRP(1)).AND.(INUM(2).EQ.ISET(1))) THEN
- READ(12,'(I8,2X,A8,3I6)',ERR=1020,END=1010)
- & IDPA2,CNAME8,INUM
- IF((IDPA2.EQ.IFPAP(2)).AND.(CNAME8.EQ.PDFNA2).AND.
- & (INUM(1).EQ.IGRP(2)).AND.(INUM(2).EQ.ISET(2))) THEN
- WRITE(LO,'(/1X,A)') 'PHO_FITPAR: parameter set found'
- READ(12,*) ALPOM,ALPOMP,GP,B0POM
- READ(12,*) ALREG,ALREGP,GR,B0REG
- READ(12,*) GPPP,B0PPP,GPPR,B0PPR
- READ(12,*) VDMFAC(1),VDMFAC(2),VDMFAC(3),VDMFAC(4)
- READ(12,*) B0HAR
- READ(12,*) AKFAC
- READ(12,*) PHISUP
- READ(12,*) RMASS,VAR
- IFOUND = 1
- GOTO 1100
- ENDIF
- ENDIF
- ENDIF
- GOTO 100
-
- 1020 CONTINUE
- WRITE(LO,'(/A)') ' PHO_FITPAR: cannot read file fitpar.dat'
- WRITE(LO,'(A,A10,A8)') ' last data card: ',CNAM10,CNAME8
- 1010 CONTINUE
- WRITE(LO,'(/A)')
- & ' PHO_FITPAR: cannot find parameter set in file fitpar.dat'
-
- 1100 CONTINUE
- CLOSE(12)
-
- ENDIF
-
-C nothing found
- IF(IFOUND.EQ.0) THEN
- WRITE(LO,'(/A)') ' PHO_FITPAR: could not find parameter set'
- WRITE(LO,'(3(10X,A,/))')
- & '(copy fitpar.dat into the working directory and/or',
- & ' request the missing parameter set via e-mail from',
- & ' eng@lepton.bartol.udel.edu)'
- STOP
- ENDIF
-
- 1300 CONTINUE
-
-C overwrite parameters with user settings
- IF(PARMDL(301).GT.DEFA) THEN
- ALPOM = PARMDL(301)
- PARMDL(301) = DEFB
- ENDIF
- IF(PARMDL(302).GT.DEFA) THEN
- ALPOMP = PARMDL(302)
- PARMDL(302) = DEFB
- ENDIF
- IF(PARMDL(303).GT.DEFA) THEN
- GP(1) = PARMDL(303)
- PARMDL(303) = DEFB
- ENDIF
- IF(PARMDL(304).GT.DEFA) THEN
- GP(2) = PARMDL(304)
- PARMDL(304) = DEFB
- ENDIF
- IF(PARMDL(305).GT.DEFA) THEN
- B0POM(1) = PARMDL(305)
- PARMDL(305) = DEFB
- ENDIF
- IF(PARMDL(306).GT.DEFA) THEN
- B0POM(2) = PARMDL(306)
- PARMDL(306) = DEFB
- ENDIF
- IF(PARMDL(307).GT.DEFA) THEN
- ALREG = PARMDL(307)
- PARMDL(307) = DEFB
- ENDIF
- IF(PARMDL(308).GT.DEFA) THEN
- ALREGP = PARMDL(308)
- PARMDL(308) = DEFB
- ENDIF
- IF(PARMDL(309).GT.DEFA) THEN
- GR(1) = PARMDL(309)
- PARMDL(309) = DEFB
- ENDIF
- IF(PARMDL(310).GT.DEFA) THEN
- GR(2) = PARMDL(310)
- PARMDL(310) = DEFB
- ENDIF
- IF(PARMDL(311).GT.DEFA) THEN
- B0REG(1) = PARMDL(311)
- PARMDL(311) = DEFB
- ENDIF
- IF(PARMDL(312).GT.DEFA) THEN
- B0REG(2) = PARMDL(312)
- PARMDL(312) = DEFB
- ENDIF
- IF(PARMDL(313).GT.DEFA) THEN
- GPPP = PARMDL(313)
- PARMDL(313) = DEFB
- ENDIF
- IF(PARMDL(314).GT.DEFA) THEN
- B0PPP = PARMDL(314)
- PARMDL(314)= DEFB
- ENDIF
- IF(PARMDL(315).GT.DEFA) THEN
- VDMFAC(1) = PARMDL(315)
- PARMDL(315)= DEFB
- ENDIF
- IF(PARMDL(316).GT.DEFA) THEN
- VDMFAC(2) = PARMDL(316)
- PARMDL(316)= DEFB
- ENDIF
- IF(PARMDL(317).GT.DEFA) THEN
- VDMFAC(3) = PARMDL(317)
- PARMDL(317)= DEFB
- ENDIF
- IF(PARMDL(318).GT.DEFA) THEN
- VDMFAC(4) = PARMDL(318)
- PARMDL(318)= DEFB
- ENDIF
- IF(PARMDL(319).GT.DEFA) THEN
- B0HAR = PARMDL(319)
- PARMDL(319)= DEFB
- ENDIF
- IF(PARMDL(320).GT.DEFA) THEN
- AKFAC = PARMDL(320)
- PARMDL(320)= DEFB
- ENDIF
- IF(PARMDL(321).GT.DEFA) THEN
- PHISUP(1) = PARMDL(321)
- PARMDL(321)= DEFB
- ENDIF
- IF(PARMDL(322).GT.DEFA) THEN
- PHISUP(2) = PARMDL(322)
- PARMDL(322)= DEFB
- ENDIF
- IF(PARMDL(323).GT.DEFA) THEN
- RMASS(1) = PARMDL(323)
- PARMDL(323)= DEFB
- ENDIF
- IF(PARMDL(324).GT.DEFA) THEN
- RMASS(2) = PARMDL(324)
- PARMDL(324)= DEFB
- ENDIF
- IF(PARMDL(325).GT.DEFA) THEN
- VAR = PARMDL(325)
- PARMDL(325)= DEFB
- ENDIF
- IF(PARMDL(327).GT.DEFA) THEN
- GPPR = PARMDL(327)
- PARMDL(327)= DEFB
- ENDIF
- IF(PARMDL(328).GT.DEFA) THEN
- B0PPR = PARMDL(328)
- PARMDL(328)= DEFB
- ENDIF
-
- VDMQ2F(1) = VDMFAC(1)
- VDMQ2F(2) = VDMFAC(2)
- VDMQ2F(3) = VDMFAC(3)
- VDMQ2F(4) = VDMFAC(4)
-
-C output of parameter set
-C *** Commented by Chiara
-C IF((IDEB(54).GE.5).OR.(IOUTP.GT.0)) THEN
-C WRITE(LO,'(/,A,/,A)') ' PHO_FITPAR: parameter set',
-C & ' -------------------------'
-C WRITE(LO,'(2(A,F7.3),2(A,2F9.3))')
-C & ' ALPOM:',ALPOM,' ALPOMP:',ALPOMP,' GP:',GP,' B0POM:',
-C & B0POM
-C WRITE(LO,'(2(A,F7.3),2(A,2F9.3))')
-C & ' ALREG:',ALREG,' ALREGP:',ALREGP,' GR:',GR,' B0REG:',
-C & B0REG
-C WRITE(LO,'(4(A,F7.3))')
-C & ' GPPP :',GPPP,' B0PPP:',B0PPP,' GPPR :',GPPR,' B0PPR:',B0PPR
-C WRITE(LO,'(A,4F10.5)') ' VDMFAC:',VDMFAC
-C WRITE(LO,'(A,4F10.5)') ' VDMQ2F:',VDMQ2F
-C WRITE(LO,'(A,F8.3)') ' B0HAR:',B0HAR
-C WRITE(LO,'(A,F8.3)') ' AKFAC:',AKFAC
-C WRITE(LO,'(A,2F8.3)') ' PHISUP:',PHISUP
-C WRITE(LO,'(A,3F8.3)') ' RMASS:',RMASS,VAR
-C ENDIF
-
- CALL PHO_HARINI(1,IFPAP(1),IFPAP(2),PVIRT(1),PVIRT(2),6,IOUTP-1)
-
- END
-
-CDECK ID>, PHO_BORNCS
- SUBROUTINE PHO_BORNCS(IP,IFHARD,XM1,XM2,XM3,XM4)
-C*********************************************************************
-C
-C calculation of Born graph cross sections and slopes
-C
-C input: IP particle combination
-C IFHARD -1 calculate hard Born graph cross section
-C 0 take hard Born graph cross section
-C from interpolation table if available
-C 1 assume that correct hard cross
-C sections are already stored in /POSBRN/
-C XM1,XM2,XM3,XM4 masses of external lines
-C /GLOCMS/ energy and PT cut-off
-C /POPREG/ soft and hard parameters
-C /POSBRN/ input cross sections
-C /POZBRN/ scaled input values
-C IFHARD 0 calculate hard input cross sections
-C 1 assume hard input cross sections exist
-C
-C output: ZPOM scaled pomeron cross section
-C ZIGR scaled reggeon cross section
-C ZIGHR scaled hard resolved cross section
-C ZIGHD scaled hard direct cross section
-C ZIGT1 scaled triple-Pomeron cross section
-C ZIGT2 scaled triple-Pomeron cross section
-C ZIGL scaled loop-Pomeron cross section
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER(ITWO=2,
- & ITHREE=3,
- & IFOUR=4,
- & IFIVE=5,
- & FIVE=5.D0,
- & THOUS=1.D3,
- & EPS=0.01D0,
- & DEPS=1.D-30)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C names of hard scattering processes
- INTEGER Max_pro_1
- PARAMETER ( Max_pro_1 = 16 )
- CHARACTER*18 PROC
- COMMON /POHPRO/ PROC(0:Max_pro_1)
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-C interpolation tables for hard cross section and MC selection weights
- INTEGER Max_tab_E,Max_tab_Q2,Max_pro_tab
- PARAMETER ( Max_tab_E = 20, Max_tab_Q2 = 10, Max_pro_tab = 16 )
- INTEGER IH_Q2a_up,IH_Q2b_up,IH_Ecm_up
- DOUBLE PRECISION Hfac_tab,HWgx_tab,HSig_tab,Hdpt_tab,
- & HQ2a_tab,HQ2b_tab,HEcm_tab
- COMMON /POHTAB/
- & Hfac_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & HWgx_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & HSig_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & Hdpt_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & HQ2a_tab(1:Max_tab_Q2,0:4),HQ2b_tab(1:Max_tab_Q2,0:4),
- & HEcm_tab(1:Max_tab_E,0:4),
- & IH_Q2a_up(0:4),IH_Q2b_up(0:4),IH_Ecm_up(0:4)
-C Born graph cross sections and slopes
- INTEGER Max_pro_3
- PARAMETER ( Max_pro_3 = 16 )
- COMPLEX*16 SIGP,SIGR,SIGHD,SIGHR,SIGT1,SIGT2,SIGL,SIGDP,
- & SIGD1,SIGD2,DSIGH
- COMMON /POSBRN/ SIGP,SIGR,SIGHD,SIGHR,SIGT1(2),SIGT2(2),SIGL,
- & SIGDP(4),SIGD1(2),SIGD2(2),DSIGH(0:Max_pro_3)
-C scaled cross sections and slopes
- COMPLEX*16 ZIGP,ZIGR,ZIGHD,ZIGHR,ZIGT1,ZIGT2,ZIGL,ZIGDP,
- & ZIGD1,ZIGD2,
- & BPOM,BREG,BHAR,BHAD,BTR1,BTR2,BLOO,BDP,BD1,BD2
- COMMON /POZBRN/ ZIGP,ZIGR,ZIGHD,ZIGHR,ZIGT1(2),ZIGT2(2),ZIGL,
- & ZIGDP(4),ZIGD1(2),ZIGD2(2),
- & BPOM,BREG,BHAR,BHAD,BTR1(2),BTR2(2),BLOO,BDP(4),
- & BD1(2),BD2(2)
-C Reggeon phenomenology parameters
- DOUBLE PRECISION ALPOM,ALPOMP,GP,B0POM,ALREG,ALREGP,GR,B0REG,
- & GPPP,GPPR,B0PPP,B0PPR,VDMFAC,VDMQ2F,B0HAR,AKFAC
- COMMON /POPREG/ ALPOM,ALPOMP,GP(2),B0POM(2),
- & ALREG,ALREGP,GR(2),B0REG(2),
- & GPPP,GPPR,B0PPP,B0PPR,
- & VDMFAC(4),VDMQ2F(4),B0HAR,AKFAC
-C parameters of 2x2 channel model
- DOUBLE PRECISION PHISUP,RMASS,VAR,AMPFAC,ELAFAC,VFAC
- COMMON /PO2CHA/ PHISUP(2),RMASS(2),VAR,AMPFAC(4),ELAFAC(4),VFAC
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C data needed for soft-pt calculation
- DOUBLE PRECISION SIGS,DSIGHP,SIGH,FS,FH,BETAS,AAS,PTCON
- COMMON /POINT3/ SIGS,DSIGHP,SIGH,FS,FH,BETAS(3),AAS,PTCON
-
- COMPLEX*16 CZERO,BP4,BR4,BHR4,BHD4,BT14,BT24,BD4,SP,SR,SS,
- & BPOM1,BPOM2,BREG1,BREG2,B0HARD
- DIMENSION SCB1(4),SCB2(4),SCG1(4),SCG2(4)
- DIMENSION BT14(2),BT24(2),BD4(4)
- DIMENSION DSPT(0:Max_pro_2)
-
- DATA XMPOM / 0.766D0 /
- DATA CZERO /(0.D0,0.D0)/
-
- CDABS(SS) = ABS(SS)
- DCMPLX(X,Y) = CMPLX(X,Y)
-
-C debug output
- IF(IDEB(48).GE.10) WRITE(LO,'(/1X,A,I3,4E12.3,I3)')
- & 'PHO_BORNCS: IP,M1..M4,IFHARD',IP,XM1,XM2,XM3,XM4,IFHARD
-C scales
- CALL PHO_SCALES(XM1,XM2,XM3,XM4,SCALE1,SCALE2,SCALB1,SCALB2)
-C
-C calculate hard input cross sections (output in mb)
- IF(IFHARD.NE.1) THEN
- IF((IFHARD.EQ.0).AND.(HEcm_tab(1,IP).GT.1.D0)) THEN
-C double-log interpolation
- CALL PHO_HARINT(IP,ECMP,0.D0,0.D0,0,Max_pro_2,3,4,1)
- DO 60 M=0,Max_pro_2
- DSIGH(M) = HSig(M)
- DSPT(M) = Hdpt(M)
- 60 CONTINUE
- ELSE
-C new calculation
- CALL PHO_HARINT(IP,ECMP,0.D0,0.D0,0,-2,0,0,1)
- CALL PHO_HARXTO(ECMP,PTCUT(IP),PTCUT(IP),DSIGH,DSPT)
- ENDIF
-C
-C save values to calculate soft pt distribution
- IF(IP.EQ.1) THEN
- VDMQ2F(1) = VDMFAC(1)
- VDMQ2F(2) = VDMFAC(2)
- VDMQ2F(3) = VDMFAC(3)
- VDMQ2F(4) = VDMFAC(4)
- ELSE IF(IP.EQ.2) THEN
- VDMQ2F(1) = VDMFAC(1)
- VDMQ2F(2) = VDMFAC(2)
- VDMQ2F(3) = 1.D0
- VDMQ2F(4) = 0.D0
- ELSE IF(IP.EQ.3) THEN
- VDMQ2F(1) = VDMFAC(3)
- VDMQ2F(2) = VDMFAC(4)
- VDMQ2F(3) = 1.D0
- VDMQ2F(4) = 0.D0
- ELSE
- VDMQ2F(1) = 1.D0
- VDMQ2F(2) = 0.D0
- VDMQ2F(3) = 1.D0
- VDMQ2F(4) = 0.D0
- ENDIF
-C VDM factors
- AMPFAC(1) = SQRT(VDMQ2F(1)*VDMQ2F(3))
- AMPFAC(2) = SQRT(VDMQ2F(2)*VDMQ2F(3))
- AMPFAC(3) = SQRT(VDMQ2F(1)*VDMQ2F(4))
- AMPFAC(4) = SQRT(VDMQ2F(2)*VDMQ2F(4))
- ELAFAC(1) = VDMQ2F(1)*VDMQ2F(3)+VDMQ2F(2)*VDMQ2F(3)
- & +VDMQ2F(1)*VDMQ2F(4)+VDMQ2F(2)*VDMQ2F(4)
- ELAFAC(2) = 2.D0*(AMPFAC(1)*AMPFAC(2)+AMPFAC(3)*AMPFAC(4))
- ELAFAC(3) = 2.D0*(AMPFAC(1)*AMPFAC(3)+AMPFAC(2)*AMPFAC(4))
- ELAFAC(4) = 4.D0*AMPFAC(1)*AMPFAC(4)
- VFAC = ELAFAC(1)+PHISUP(1)*PHISUP(2)*ELAFAC(4)
- & +PHISUP(1)*ELAFAC(2)+PHISUP(2)*ELAFAC(3)
- DSIGHP = DSPT(9)/VFAC
- SIGH = DSIGH(9)/VFAC
-C extract real part
- IF(IPAMDL(1).EQ.0) THEN
- DO 50 I=0,Max_pro_2
- DSIGH(I)=DCMPLX(DREAL(DSIGH(I)),0.D0)
- 50 CONTINUE
- ENDIF
-C write out results
- IF(IDEB(48).GE.15) THEN
- WRITE(LO,'(/1X,A,1P,2E11.3)')
- & 'PHO_BORNCS: QCD-PM cross sections (mb)',ECMP,PTCUT(IP)
- DO 200 I=0,Max_pro_2
- WRITE(LO,'(10X,A,2E14.4)') PROC(I),DSIGH(I)
- 200 CONTINUE
- ENDIF
- ENDIF
-
-C DPMJET interface: subtract anomalous part
- IF((IP.EQ.1).AND.(IPAMDL(13).GT.0))
- & DSIGH(9) = DSIGH(9)-DCMPLX(DT_SANO(ECMP),0.D0)
-
- SCALE = CDABS(DSIGH(15))
- IF(SCALE.LT.DEPS) THEN
- SIGHD=CZERO
- ELSE
- SIGHD=DSIGH(15)
- ENDIF
- SCALE = CDABS(DSIGH(9))
- IF(SCALE.LT.DEPS) THEN
- SIGHR=CZERO
- ELSE
- SIGHR=DSIGH(9)*SCALE1*SCALE2/VFAC
- ENDIF
-
-C calculate soft input cross sections (output in mb)
- SS=DCMPLX(ECMP**2-PMASSP(1)**2-PMASSP(2)**2+0.01D0,0.D0)
- IF(IPAMDL(1).EQ.1) THEN
-C pomeron signature
- SP=SS*DCMPLX(0.D0,-1.D0)
-C reggeon signature
- SR=SS*DCMPLX(0.D0,1.D0)
- ELSE
- SP=SS
- SR=SS
- ENDIF
-C coupling constants (mb**1/2)
-C particle dependent slopes (GeV**-2)
- IF(IP.EQ.1) THEN
- GP1 = GP(1)
- GP2 = GP(2)
- GR1 = GR(1)
- GR2 = GR(2)
- B0POM1 = B0POM(1)
- B0POM2 = B0POM(2)
- B0REG1 = B0REG(1)
- B0REG2 = B0REG(2)
- B0HARD = B0HAR
- RMASS1 = RMASS(1)
- RMASS2 = RMASS(2)
- ELSE IF(IP.EQ.2) THEN
- GP1 = GP(1)
- GP2 = PARMDL(77)
- GR1 = GR(1)
- GR2 = PARMDL(77)*GPPR/GPPP
- B0POM1 = B0POM(1)
- B0POM2 = B0PPP
- B0REG1 = B0REG(1)
- B0REG2 = B0PPR
- B0HARD = B0POM1+B0POM2
- RMASS1 = RMASS(1)
- RMASS2 = XMPOM
- ELSE IF(IP.EQ.3) THEN
- GP1 = GP(2)
- GP2 = PARMDL(77)
- GR1 = GR(2)
- GR2 = PARMDL(77)*GPPR/GPPP
- B0POM1 = B0POM(2)
- B0POM2 = B0PPP
- B0REG1 = B0REG(2)
- B0REG2 = B0PPR
- B0HARD = B0POM1+B0POM2
- RMASS1 = RMASS(2)
- RMASS2 = XMPOM
- ELSE IF(IP.EQ.4) THEN
- GP1 = PARMDL(77)
- GP2 = GP1
- GR1 = PARMDL(77)*GPPR/GPPP
- GR2 = GR1
- B0POM1 = B0PPP
- B0POM2 = B0PPP
- B0REG1 = B0PPR
- B0REG2 = B0PPR
- B0HARD = B0POM1+B0POM2
- RMASS1 = XMPOM
- RMASS2 = XMPOM
- ELSE
- WRITE(LO,'(/1X,A,I7)') 'PHO_BORNCS:ERROR:invalid IP',IP
- CALL PHO_ABORT
- ENDIF
- GP1 = GP1*SCALE1
- GP2 = GP2*SCALE2
- GR1 = GR1*SCALE1
- GR2 = GR2*SCALE2
-C input slope parameters (GeV**-2)
- BPOM1 = B0POM1*SCALB1
- BPOM2 = B0POM2*SCALB2
- BREG1 = B0REG1*SCALB1
- BREG2 = B0REG2*SCALB2
-C effective slopes
- XMR2 = (2.D0*MIN(XM1,XM3)*MIN(XM2,XM4))**2
- SCALE = SS*XMR2/((XM1**2+XM3**2)*(XM2**2+XM4**2))+2.D0
- BPOM = BPOM1 + BPOM2 + ALPOMP*LOG(SCALE)
- BREG = BREG1 + BREG2 + ALREGP*LOG(SCALE)
- IF(IPAMDL(9).EQ.0) THEN
- BHAR = B0HARD
- BHAD = B0HARD
- ELSE IF(IPAMDL(9).EQ.1) THEN
- BHAR = B0HARD*(SCALB1+SCALB2)/2.D0
- BHAD = BHAR
- ELSE IF(IPAMDL(9).EQ.2) THEN
- BHAR = BPOM1+BPOM2
- BHAD = BHAR
- ELSE
- BHAR = BPOM
- BHAD = BPOM
- ENDIF
-C input cross section pomeron
- SIGP=GP1*GP2*EXP((ALPOM-1.D0)*LOG(SP))
- SIGR=GR1*GR2*EXP((ALREG-1.D0)*LOG(SR))
-C save value to calculate soft pt distribution
- SIGS = (SIGR+SIGP)/(SCALE1*SCALE2)
-
-C higher order graphs
- VIRT1 = PVIRTP(1)
- VIRT2 = PVIRTP(2)
-C bare/renormalized intercept for enhanced graphs
- IF(IPAMDL(8).EQ.0) THEN
- DELTAP = ALPOM-1.D0
- ELSE
- DELTAP = PARMDL(48)-1.D0
- ENDIF
- SD = ECMP**2
- BP1 = 2.D0*BPOM1
- BP2 = 2.D0*BPOM2
-C input cross section high-mass double diffraction
- CALL PHO_LOOREG(SD,GP1,BP1,GP2,BP2,
- & DELTAP,ALPOMP,GPPP,B0PPP,VIRT1,VIRT2,SIGTR,BTR)
- SIGL = DCMPLX(SIGTR,0.D0)
- BLOO = DCMPLX(BTR,0.D0)
-C
-C input cross section high mass diffraction particle 1
-C first possibility
- CALL PHO_SCALES(XM1,XM2,XM3,PMASSP(2),
- & SCG1(1),SCG2(1),SCB1(1),SCB2(1))
- CALL PHO_SCALES(XM1,PMASSP(2),XM3,XM4,
- & SCG1(2),SCG2(2),SCB1(2),SCB2(2))
- SCALB1 = (SCB1(1)+SCB1(2))/2.D0
- SCALB2 = (SCB2(1)+SCB2(2))/2.D0
- BP1 = 2.D0*BPOM1*SCALB1
- BP2 = 2.D0*BPOM2*SCALB2
-C input cross section high mass diffraction
- CALL PHO_TRIREG(SD,GP1,BP1,GP2,BP2,
- & DELTAP,ALPOMP,GPPP,B0PPP,VIRT1,SIGTR,BTR)
- SIGT1(1) = SCG1(1)*SCG2(1)*SCG2(2)*DCMPLX(SIGTR,0.D0)
- BTR1(1) = DCMPLX(BTR,0.D0)
-C second possibility: high-low mass double diffraction
- CALL PHO_SCALES(XM1,XM2,XM3,RMASS2,
- & SCG1(1),SCG2(1),SCB1(1),SCB2(1))
- CALL PHO_SCALES(XM1,RMASS2,XM3,XM4,
- & SCG1(2),SCG2(2),SCB1(2),SCB2(2))
- SCALB1 = (SCB1(1)+SCB1(2))/2.D0
- SCALB2 = (SCB2(1)+SCB2(2))/2.D0
- BP1 = 2.D0*BPOM1*SCALB1
- BP2 = 2.D0*BPOM2*SCALB2
-C input cross section high mass diffraction
- CALL PHO_TRIREG(SD,GP1,BP1,GP2,BP2,
- & DELTAP,ALPOMP,GPPP,B0PPP,VIRT1,SIGTR,BTR)
- SIGT1(2) = SCG1(1)*SCG2(1)*SCG2(2)*DCMPLX(SIGTR,0.D0)
- BTR1(2) = DCMPLX(BTR,0.D0)
-C
-C input cross section high mass diffraction particle 2
-C first possibility
- CALL PHO_SCALES(XM1,XM2,PMASSP(1),XM4,
- & SCG1(1),SCG2(1),SCB1(1),SCB2(1))
- CALL PHO_SCALES(PMASSP(1),XM2,XM3,XM4,
- & SCG1(2),SCG2(2),SCB1(2),SCB2(2))
- SCALB1 = (SCB1(1)+SCB1(2))/2.D0
- SCALB2 = (SCB2(1)+SCB2(2))/2.D0
- BP1 = 2.D0*BPOM1*SCALB1
- BP2 = 2.D0*BPOM2*SCALB2
-C input cross section high mass diffraction
- CALL PHO_TRIREG(SD,GP2,BP2,GP1,BP1,
- & DELTAP,ALPOMP,GPPP,B0PPP,VIRT2,SIGTR,BTR)
- SIGT2(1) = SCG1(1)*SCG1(2)*SCG2(1)*DCMPLX(SIGTR,0.D0)
- BTR2(1) = DCMPLX(BTR,0.D0)
-C second possibility: high-low mass double diffraction
- CALL PHO_SCALES(XM1,XM2,RMASS1,XM4,
- & SCG1(1),SCG2(1),SCB1(1),SCB2(1))
- CALL PHO_SCALES(RMASS1,XM2,XM3,XM4,
- & SCG1(2),SCG2(2),SCB1(2),SCB2(2))
- SCALB1 = (SCB1(1)+SCB1(2))/2.D0
- SCALB2 = (SCB2(1)+SCB2(2))/2.D0
- BP1 = 2.D0*BPOM1*SCALB1
- BP2 = 2.D0*BPOM2*SCALB2
-C input cross section high mass diffraction
- CALL PHO_TRIREG(SD,GP2,BP2,GP1,BP1,
- & DELTAP,ALPOMP,GPPP,B0PPP,VIRT2,SIGTR,BTR)
- SIGT2(2) = SCG1(1)*SCG1(2)*SCG2(1)*DCMPLX(SIGTR,0.D0)
- BTR2(2) = DCMPLX(BTR,0.D0)
-C
-C input cross section for loop-pomeron
-C first possibility
- CALL PHO_SCALES(XM1,XM2,PMASSP(1),XM4,
- & SCG1(1),SCG2(1),SCB1(1),SCB2(1))
- CALL PHO_SCALES(PMASSP(1),XM2,XM3,XM4,
- & SCG1(2),SCG2(2),SCB1(2),SCB2(2))
- CALL PHO_SCALES(XM1,XM2,XM3,PMASSP(2),
- & SCG1(3),SCG2(3),SCB1(3),SCB2(3))
- CALL PHO_SCALES(XM1,PMASSP(2),XM3,XM4,
- & SCG1(4),SCG2(4),SCB1(4),SCB2(4))
- SCALB1 = (SCB1(1)+SCB1(2)+SCB1(3)+SCB1(4))/4.D0
- SCALB2 = (SCB2(1)+SCB2(2)+SCB2(3)+SCB2(4))/4.D0
- BP1 = BPOM1*SCALB1
- BP2 = BPOM2*SCALB2
- CALL PHO_TRXPOM(SD,GP2,BP2,GP1,BP1,DELTAP,ALPOMP,GPPP,B0PPP,
- & SIGTX,BTX)
- SIGDP(1) = SCG1(1)*SCG1(2)*SCG2(3)*SCG2(4)*DCMPLX(SIGTX,0.D0)
- BDP(1) = DCMPLX(BTX,0.D0)
-C second possibility
- CALL PHO_SCALES(XM1,XM2,RMASS1,XM4,
- & SCG1(1),SCG2(1),SCB1(1),SCB2(1))
- CALL PHO_SCALES(RMASS1,XM2,XM3,XM4,
- & SCG1(2),SCG2(2),SCB1(2),SCB2(2))
- CALL PHO_SCALES(XM1,XM2,XM3,PMASSP(2),
- & SCG1(3),SCG2(3),SCB1(3),SCB2(3))
- CALL PHO_SCALES(XM1,PMASSP(2),XM3,XM4,
- & SCG1(4),SCG2(4),SCB1(4),SCB2(4))
- SCALB1 = (SCB1(1)+SCB1(2)+SCB1(3)+SCB1(4))/4.D0
- SCALB2 = (SCB2(1)+SCB2(2)+SCB2(3)+SCB2(4))/4.D0
- BP1 = BPOM1*SCALB1
- BP2 = BPOM2*SCALB2
- CALL PHO_TRXPOM(SD,GP2,BP2,GP1,BP1,DELTAP,ALPOMP,GPPP,B0PPP,
- & SIGTX,BTX)
- SIGDP(2) = SCG1(1)*SCG1(2)*SCG2(3)*SCG2(4)*DCMPLX(SIGTX,0.D0)
- BDP(2) = DCMPLX(BTX,0.D0)
-C third possibility
- CALL PHO_SCALES(XM1,XM2,PMASSP(1),XM4,
- & SCG1(1),SCG2(1),SCB1(1),SCB2(1))
- CALL PHO_SCALES(PMASSP(1),XM2,XM3,XM4,
- & SCG1(2),SCG2(2),SCB1(2),SCB2(2))
- CALL PHO_SCALES(XM1,XM2,XM3,RMASS2,
- & SCG1(3),SCG2(3),SCB1(3),SCB2(3))
- CALL PHO_SCALES(XM1,RMASS2,XM3,XM4,
- & SCG1(4),SCG2(4),SCB1(4),SCB2(4))
- SCALB1 = (SCB1(1)+SCB1(2)+SCB1(3)+SCB1(4))/4.D0
- SCALB2 = (SCB2(1)+SCB2(2)+SCB2(3)+SCB2(4))/4.D0
- BP1 = BPOM1*SCALB1
- BP2 = BPOM2*SCALB2
- CALL PHO_TRXPOM(SD,GP2,BP2,GP1,BP1,DELTAP,ALPOMP,GPPP,B0PPP,
- & SIGTX,BTX)
- SIGDP(3) = SCG1(1)*SCG1(2)*SCG2(3)*SCG2(4)*DCMPLX(SIGTX,0.D0)
- BDP(3) = DCMPLX(BTX,0.D0)
-C fourth possibility
- CALL PHO_SCALES(XM1,XM2,RMASS1,XM4,
- & SCG1(1),SCG2(1),SCB1(1),SCB2(1))
- CALL PHO_SCALES(RMASS1,XM2,XM3,XM4,
- & SCG1(2),SCG2(2),SCB1(2),SCB2(2))
- CALL PHO_SCALES(XM1,XM2,XM3,RMASS2,
- & SCG1(3),SCG2(3),SCB1(3),SCB2(3))
- CALL PHO_SCALES(XM1,RMASS2,XM3,XM4,
- & SCG1(4),SCG2(4),SCB1(4),SCB2(4))
- SCALB1 = (SCB1(1)+SCB1(2)+SCB1(3)+SCB1(4))/4.D0
- SCALB2 = (SCB2(1)+SCB2(2)+SCB2(3)+SCB2(4))/4.D0
- BP1 = BPOM1*SCALB1
- BP2 = BPOM2*SCALB2
- CALL PHO_TRXPOM(SD,GP2,BP2,GP1,BP1,DELTAP,ALPOMP,GPPP,B0PPP,
- & SIGTX,BTX)
- SIGDP(4) = SCG1(1)*SCG1(2)*SCG2(3)*SCG2(4)*DCMPLX(SIGTX,0.D0)
- BDP(4) = DCMPLX(BTX,0.D0)
-C
-C input cross section for YY-iterated triple-pomeron
-C .....
-C
-C write out input cross sections
- IF(IDEB(48).GE.5) THEN
- WRITE(LO,'(2(/1X,A))')
- & 'Born graph input cross sections and slopes',
- & '------------------------------------------'
- WRITE(LO,'(1X,A,3E12.3)') 'energy ',ECMP,PVIRTP
- WRITE(LO,'(1X,A,4E12.3)') 'external masses 1,2,3,4 ',
- & XM1,XM2,XM3,XM4
- WRITE(LO,'(A)') ' input cross sections (millibarn):'
- WRITE(LO,'(A,2E12.3)') ' SIGR ',SIGR
- WRITE(LO,'(A,2E12.3)') ' (soft) SIGP ',SIGP
- WRITE(LO,'(A,2E12.3)') ' (hard) SIGHR ',SIGHR
- WRITE(LO,'(A,2E12.3)') ' SIGHD ',SIGHD
- WRITE(LO,'(A,4E12.3)') ' SIGT1 ',SIGT1
- WRITE(LO,'(A,4E12.3)') ' SIGT2 ',SIGT2
- WRITE(LO,'(A,2E12.3)') ' SIGL ',SIGL
- WRITE(LO,'(A,4E12.3)') ' SIGDP(1-2) ',SIGDP(1),SIGDP(2)
- WRITE(LO,'(A,4E12.3)') ' SIGDP(3-4) ',SIGDP(3),SIGDP(4)
- WRITE(LO,'(A)') ' input slopes (GeV**-2)'
- WRITE(LO,'(A,2E12.3)') ' BREG ',BREG
- WRITE(LO,'(A,2E12.3)') ' BREG1 ',BREG1
- WRITE(LO,'(A,2E12.3)') ' BREG2 ',BREG2
- WRITE(LO,'(A,2E12.3)') ' BPOM ',BPOM
- WRITE(LO,'(A,2E12.3)') ' BPOM1 ',BPOM1
- WRITE(LO,'(A,2E12.3)') ' BPOM2 ',BPOM2
- WRITE(LO,'(A,2E12.3)') ' BHAR ',BHAR
- WRITE(LO,'(A,2E12.3)') ' BHAD ',BHAD
- WRITE(LO,'(A,E12.3)') ' B0PPP ',B0PPP
- WRITE(LO,'(A,4E12.3)') ' BTR1 ',BTR1
- WRITE(LO,'(A,4E12.3)') ' BTR2 ',BTR2
- WRITE(LO,'(A,2E12.3)') ' BLOO ',BLOO
- WRITE(LO,'(A,4E12.3)') ' BDP(1-2) ',BDP(1),BDP(2)
- WRITE(LO,'(A,4E12.3)') ' BDP(3-4) ',BDP(3),BDP(4)
- ENDIF
-C
- BPOM = BPOM*GEV2MB
- BREG = BREG*GEV2MB
- BHAR = BHAR*GEV2MB
- BHAD = BHAD*GEV2MB
- BTR1(1) = BTR1(1)*GEV2MB
- BTR1(2) = BTR1(2)*GEV2MB
- BTR2(1) = BTR2(1)*GEV2MB
- BTR2(2) = BTR2(2)*GEV2MB
- BLOO = BLOO*GEV2MB
-C
- BP4 =BPOM*4.D0
- BR4 =BREG*4.D0
- BHR4=BHAR*4.D0
- BHD4=BHAD*4.D0
- BT14(1)=BTR1(1)*4.D0
- BT14(2)=BTR1(2)*4.D0
- BT24(1)=BTR2(1)*4.D0
- BT24(2)=BTR2(2)*4.D0
- BL4 =BLOO*4.D0
-C
- ZIGP = SIGP/(PI2*BP4)
- ZIGR = SIGR/(PI2*BR4)
- ZIGHR = SIGHR/(PI2*BHR4)
- ZIGHD = SIGHD/(PI2*BHD4)
- ZIGT1(1) = SIGT1(1)/(PI2*BT14(1))
- ZIGT1(2) = SIGT1(2)/(PI2*BT14(2))
- ZIGT2(1) = SIGT2(1)/(PI2*BT24(1))
- ZIGT2(2) = SIGT2(2)/(PI2*BT24(2))
- ZIGL = SIGL/(PI2*BL4)
- DO 20 I=1,4
- BDP(I) = BDP(I)*GEV2MB
- BD4(I) = BDP(I)*4.D0
- ZIGDP(I) = SIGDP(I)/(PI2*BD4(I))
- 20 CONTINUE
-C
- IF(IDEB(48).GE.10) THEN
- WRITE(LO,'(A)') ' normalized input values:'
- WRITE(LO,'(A,2E12.3)') ' ZIGR ',ZIGR
- WRITE(LO,'(A,2E12.3)') ' BREG ',BREG
- WRITE(LO,'(A,2E12.3)') ' ZIGP ',ZIGP
- WRITE(LO,'(A,2E12.3)') ' BPOM ',BPOM
- WRITE(LO,'(A,2E12.3)') ' ZIGHR ',ZIGHR
- WRITE(LO,'(A,2E12.3)') ' BHAR ',BHAR
- WRITE(LO,'(A,2E12.3)') ' ZIGHD ',ZIGHD
- WRITE(LO,'(A,2E12.3)') ' BHAD ',BHAD
- WRITE(LO,'(A,4E12.3)') ' ZIGT1 ',ZIGT1
- WRITE(LO,'(A,4E12.3)') ' ZIGT2 ',ZIGT2
- WRITE(LO,'(A,2E12.3)') ' ZIGL ',ZIGL
- WRITE(LO,'(A,4E12.3)') ' ZIGDP(1-2) ',ZIGDP(1),ZIGDP(2)
- WRITE(LO,'(A,4E12.3)') ' ZIGDP(3-4) ',ZIGDP(3),ZIGDP(4)
- ENDIF
- END
-
-CDECK ID>, PHO_SCALES
- SUBROUTINE PHO_SCALES(XM1,XM2,XM3,XM4,SCG1,SCG2,SCB1,SCB2)
-C**********************************************************************
-C
-C calculation of scale factors
-C (mass dependent couplings and slopes)
-C
-C input: XM1..XM4 external masses
-C
-C output: SCG1,SCG2 scales of coupling constants
-C SCB1,SCB2 scales of coupling slope parameter
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( EPS = 1.D-3 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C Reggeon phenomenology parameters
- DOUBLE PRECISION ALPOM,ALPOMP,GP,B0POM,ALREG,ALREGP,GR,B0REG,
- & GPPP,GPPR,B0PPP,B0PPR,VDMFAC,VDMQ2F,B0HAR,AKFAC
- COMMON /POPREG/ ALPOM,ALPOMP,GP(2),B0POM(2),
- & ALREG,ALREGP,GR(2),B0REG(2),
- & GPPP,GPPR,B0PPP,B0PPR,
- & VDMFAC(4),VDMQ2F(4),B0HAR,AKFAC
-C parameters of 2x2 channel model
- DOUBLE PRECISION PHISUP,RMASS,VAR,AMPFAC,ELAFAC,VFAC
- COMMON /PO2CHA/ PHISUP(2),RMASS(2),VAR,AMPFAC(4),ELAFAC(4),VFAC
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-
-C scale factors for couplings
- ECMMIN = 2.D0
-* ECMTP = 6.D0
- ECMTP = 1.D0
- IF(ABS(XM1-XM3).GT.EPS) THEN
- IF(ECMP.LT.ECMTP) THEN
- SCG1 = PHISUP(1)*LOG(ECMP**2/ECMMIN)/LOG(ECMTP**2/ECMMIN)
- ELSE
- SCG1 = PHISUP(1)
- ENDIF
- ELSE
- SCG1 = 1.D0
- ENDIF
- IF(ABS(XM2-XM4).GT.EPS) THEN
- IF(ECMP.LT.ECMTP) THEN
- SCG2 = PHISUP(2)*LOG(ECMP**2/ECMMIN)/LOG(ECMTP**2/ECMMIN)
- ELSE
- SCG2 = PHISUP(2)
- ENDIF
- ELSE
- SCG2 = 1.D0
- ENDIF
-C
-C scale factors for slope parameters
- IF((ISWMDL(1).LT.2).OR.(IPAMDL(10).EQ.1)) THEN
- SCB1 = 1.D0
- SCB2 = 1.D0
- ELSE IF(ISWMDL(1).EQ.2) THEN
-C rational
- SCB1 = 2.D0*PMASSP(1)**2/(XM1**2+XM3**2)
- SCB2 = 2.D0*PMASSP(2)**2/(XM2**2+XM4**2)
- ELSE IF(ISWMDL(1).GE.3) THEN
-C symmetric gaussian
- SCB1 = VAR*(XM1-XM3)**2
- IF(SCB1.LT.25.D0) THEN
- SCB1 = EXP(-SCB1)
- ELSE
- SCB1 = 0.D0
- ENDIF
- SCB2 = VAR*(XM2-XM4)**2
- IF(SCB2.LT.25.D0) THEN
- SCB2 = EXP(-SCB2)
- ELSE
- SCB2 = 0.D0
- ENDIF
- ELSE
- WRITE(LO,'(/,1X,A,I4)') 'PHO_SCALES:ERROR:invalid ISWMDL(1)',
- & ISWMDL(1)
- CALL PHO_ABORT
- ENDIF
-C debug output
- IF(IDEB(65).GE.10) THEN
- WRITE(LO,'(1X,A,4E11.3)') 'PHO_SCALES: M1..M4 ',
- & XM1,XM2,XM3,XM4
- WRITE(LO,'(5X,A,4E11.3)') 'SCB1,SCB2,SCG1,SCG2',
- & SCB1,SCB2,SCG1,SCG2
- ENDIF
- END
-
-CDECK ID>, PHO_EIKON
- SUBROUTINE PHO_EIKON(IP,IFHARD,B)
-C*********************************************************************
-C
-C calculation of unitarized amplitudes
-C
-C input: IP particle combination
-C IFHARD -1 ignore previously calculated Born
-C cross sections
-C 0 calculate hard Born cross sections or
-C take them from interpolation table
-C (if available)
-C 1 take hard cross sections from /POSBRN/
-C B impact parameter (mb**(1/2))
-C /POSBRN/ input cross sections
-C /GLOCMS/ cm energy
-C /POPREG/ soft and hard parameters
-C
-C output: /POINT4/
-C AMPEL purely elastic amplitude
-C AMPVM quasi-elastically vectormeson prod.
-C AMLMSD(2) amplitudes of low mass sing. diffr.
-C AMHMSD(2) amplitudes of high mass sing. diffr.
-C AMLMDD amplitude of low mass double diffr.
-C AMHMDD amplitude of high mass double diffr.
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER(ITWO=2,
- & ITHREE=3,
- & IFOUR=4,
- & IFIVE=5,
- & ISIX=6,
- & FIVE=5.D0,
- & THOUS=1.D3,
- & EXPMAX=70.D0,
- & DEPS=1.D-20)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C complex Born graph amplitudes used for unitarization
- COMPLEX*16 AMPEL,AMPVM,AMPSOF,AMPHAR,AMLMSD,AMHMSD,AMLMDD,
- & AMHMDD,AMPDP
- COMMON /POINT4/ AMPEL,AMPVM(4,4),AMPSOF,AMPHAR,AMLMSD(2),
- & AMHMSD(2),AMLMDD,AMHMDD,AMPDP(4)
-C cross sections
- INTEGER IPFIL,IFAFIL,IFBFIL
- DOUBLE PRECISION SIGTOT,SIGELA,SIGVM,SIGINE,SIGNDF,SIGDIR,
- & SIGLSD,SIGHSD,SIGLDD,SIGHDD,SIGCDF,
- & SIGPOM,SIGREG,SIGHAR,SIGTR1,SIGTR2,SIGLOO,
- & SIGDPO,SIG1SO,SIG1HA,SLOEL,SLOVM,SIGCOR,
- & FSUP,FSUD,FSUH,ECMFIL,P2AFIL,P2BFIL
- COMMON /POCSEC/ SIGTOT,SIGELA,SIGVM(0:4,0:4),SIGINE,SIGNDF,SIGDIR,
- & SIGLSD(2),SIGHSD(2),SIGLDD,SIGHDD,SIGCDF(0:4),
- & SIGPOM,SIGREG,SIGHAR,SIGTR1(2),SIGTR2(2),SIGLOO,
- & SIGDPO(4),SIG1SO,SIG1HA,SLOEL,SLOVM(4,4),SIGCOR,
- & FSUP(2),FSUD(2),FSUH(2),ECMFIL,P2AFIL,P2BFIL,
- & IPFIL,IFAFIL,IFBFIL
-C Born graph cross sections and slopes
- INTEGER Max_pro_3
- PARAMETER ( Max_pro_3 = 16 )
- COMPLEX*16 SIGP,SIGR,SIGHD,SIGHR,SIGT1,SIGT2,SIGL,SIGDP,
- & SIGD1,SIGD2,DSIGH
- COMMON /POSBRN/ SIGP,SIGR,SIGHD,SIGHR,SIGT1(2),SIGT2(2),SIGL,
- & SIGDP(4),SIGD1(2),SIGD2(2),DSIGH(0:Max_pro_3)
-C scaled cross sections and slopes
- COMPLEX*16 ZIGP,ZIGR,ZIGHD,ZIGHR,ZIGT1,ZIGT2,ZIGL,ZIGDP,
- & ZIGD1,ZIGD2,
- & BPOM,BREG,BHAR,BHAD,BTR1,BTR2,BLOO,BDP,BD1,BD2
- COMMON /POZBRN/ ZIGP,ZIGR,ZIGHD,ZIGHR,ZIGT1(2),ZIGT2(2),ZIGL,
- & ZIGDP(4),ZIGD1(2),ZIGD2(2),
- & BPOM,BREG,BHAR,BHAD,BTR1(2),BTR2(2),BLOO,BDP(4),
- & BD1(2),BD2(2)
-C Born graph cross sections after applying diffraction model
- DOUBLE PRECISION SBOPOM,SBOREG,SBOHAR,SBOHAD,SBOTR1,SBOTR2,
- & SBOLPO,SBODPO
- COMMON /POINT1/ SBOPOM(0:4),SBOREG(0:4),SBOHAR(0:4),SBOHAD(0:4),
- & SBOTR1(0:4,2),SBOTR2(0:4,2),SBOLPO(0:4),
- & SBODPO(0:4,4)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C Reggeon phenomenology parameters
- DOUBLE PRECISION ALPOM,ALPOMP,GP,B0POM,ALREG,ALREGP,GR,B0REG,
- & GPPP,GPPR,B0PPP,B0PPR,VDMFAC,VDMQ2F,B0HAR,AKFAC
- COMMON /POPREG/ ALPOM,ALPOMP,GP(2),B0POM(2),
- & ALREG,ALREGP,GR(2),B0REG(2),
- & GPPP,GPPR,B0PPP,B0PPR,
- & VDMFAC(4),VDMQ2F(4),B0HAR,AKFAC
-C parameters of 2x2 channel model
- DOUBLE PRECISION PHISUP,RMASS,VAR,AMPFAC,ELAFAC,VFAC
- COMMON /PO2CHA/ PHISUP(2),RMASS(2),VAR,AMPFAC(4),ELAFAC(4),VFAC
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C unitarized amplitudes for different diffraction channels
- DOUBLE PRECISION ZXP,BXP,ZXR,BXR,ZXH,BXH,ZXD,BXD,
- & ZXT1A,BXT1A,ZXT1B,BXT1B,ZXT2A,BXT2A,ZXT2B,BXT2B,
- & ZXDPE,BXDPE,ZXDPA,BXDPA,ZXDPB,BXDPB,ZXDPD,BXDPD,
- & ZXL,BXL
- COMMON /POINT5/ ZXP(4,4),BXP(4,4),ZXR(4,4),BXR(4,4),
- & ZXH(4,4),BXH(4,4),ZXD(4,4),BXD(4,4),
- & ZXT1A(4,4),BXT1A(4,4),ZXT1B(4,4),BXT1B(4,4),
- & ZXT2A(4,4),BXT2A(4,4),ZXT2B(4,4),BXT2B(4,4),
- & ZXDPE(4,4),BXDPE(4,4),ZXDPA(4,4),BXDPA(4,4),
- & ZXDPB(4,4),BXDPB(4,4),ZXDPD(4,4),BXDPD(4,4),
- & ZXL(4,4),BXL(4,4)
-
- COMPLEX*16 CZERO,CONE,B24,AUXP,AUXR,AUXH,AUXD,AUXT1,AUXT2,
- & AUXL,AMPR,AMPO,AMPP,AMPQ
-
- DIMENSION PVOLD(2)
-
- DATA ELAST / 0.D0 /
- DATA IPOLD / -1 /
- DATA PVOLD / -1.D0, -1.D0 /
- DATA XMPOM / 0.766D0 /
- DATA XMVDM / 0.766D0 /
-
- DCMPLX(X,Y) = CMPLX(X,Y)
-
-C calculation of scaled cross sections and slopes
-
-C test for redundant calculation
- IF((ECM.NE.ELAST).OR.(IFHARD.EQ.-1).OR.(PVIRT(1).NE.PVOLD(1))
- & .OR.(PVIRT(2).NE.PVOLD(2)).OR.(IP.NE.IPOLD)) THEN
-C effective particle masses, VDM assumption
- XMASS1 = PMASS(1)
- XMASS2 = PMASS(2)
- RMASS1 = RMASS(1)
- RMASS2 = RMASS(2)
- IF(IFPAP(1).EQ.22) THEN
- XMASS1 = XMVDM
- ELSE IF(IFPAP(1).EQ.990) THEN
- XMASS1 = XMPOM
- ENDIF
- IF(IFPAP(2).EQ.22) THEN
- XMASS2 = XMVDM
- ELSE IF(IFPAP(2).EQ.990) THEN
- XMASS2 = XMPOM
- ENDIF
-C different particle combinations
- IF(IP.EQ.3) THEN
- XMASS1 = XMASS2
- RMASS1 = RMASS2
- ELSE IF(IP.EQ.4) THEN
- XMASS1 = XMPOM
- RMASS1 = XMASS1
- ENDIF
- IF(IP.GT.1) THEN
- XMASS2 = XMPOM
- RMASS2 = XMASS2
- ENDIF
-C update pomeron CM system
- PMASSP(1) = XMASS1
- PMASSP(2) = XMASS2
- ECMP = ECM
-
- CZERO = DCMPLX(0.D0,0.D0)
- CONE = DCMPLX(1.D0,0.D0)
- ELAST = ECM
- PVOLD(1) = PVIRT(1)
- PVOLD(2) = PVIRT(2)
- IPOLD = IP
-
-C purely elastic scattering
- CALL PHO_BORNCS(IP,IFHARD,XMASS1,XMASS2,XMASS1,XMASS2)
- ZXP(1,1) = ZIGP
- BXP(1,1) = BPOM
- ZXR(1,1) = ZIGR
- BXR(1,1) = BREG
- ZXH(1,1) = ZIGHR
- BXH(1,1) = BHAR
- ZXD(1,1) = ZIGHD
- BXD(1,1) = BHAD
- ZXT1A(1,1) = ZIGT1(1)
- BXT1A(1,1) = BTR1(1)
- ZXT1B(1,1) = ZIGT1(2)
- BXT1B(1,1) = BTR1(2)
- ZXT2A(1,1) = ZIGT2(1)
- BXT2A(1,1) = BTR2(1)
- ZXT2B(1,1) = ZIGT2(2)
- BXT2B(1,1) = BTR2(2)
- ZXL(1,1) = ZIGL
- BXL(1,1) = BLOO
- ZXDPE(1,1) = ZIGDP(1)
- BXDPE(1,1) = BDP(1)
- ZXDPA(1,1) = ZIGDP(2)
- BXDPA(1,1) = BDP(2)
- ZXDPB(1,1) = ZIGDP(3)
- BXDPB(1,1) = BDP(3)
- ZXDPD(1,1) = ZIGDP(4)
- BXDPD(1,1) = BDP(4)
- SBOPOM(1) = SIGP
- SBOREG(1) = SIGR
- SBOHAR(1) = SIGHR
- SBOHAD(1) = SIGHD
- SBOTR1(1,1) = SIGT1(1)
- SBOTR1(1,2) = SIGT1(2)
- SBOTR2(1,1) = SIGT2(1)
- SBOTR2(1,2) = SIGT2(2)
- SBOLPO(1) = SIGL
- SBODPO(1,1) = SIGDP(1)
- SBODPO(1,2) = SIGDP(2)
- SBODPO(1,3) = SIGDP(3)
- SBODPO(1,4) = SIGDP(4)
-
-C low mass single diffractive scattering 1
- CALL PHO_BORNCS(IP,1,XMASS1,XMASS2,RMASS1,XMASS2)
- ZXP(1,2) = ZIGP
- BXP(1,2) = BPOM
- ZXR(1,2) = ZIGR
- BXR(1,2) = BREG
- ZXH(1,2) = ZIGHR
- BXH(1,2) = BHAR
- ZXD(1,2) = ZIGHD
- BXD(1,2) = BHAD
- ZXT1A(1,2) = ZIGT1(1)
- BXT1A(1,2) = BTR1(1)
- ZXT1B(1,2) = ZIGT1(2)
- BXT1B(1,2) = BTR1(2)
- ZXT2A(1,2) = ZIGT2(1)
- BXT2A(1,2) = BTR2(1)
- ZXT2B(1,2) = ZIGT2(2)
- BXT2B(1,2) = BTR2(2)
- ZXL(1,2) = ZIGL
- BXL(1,2) = BLOO
- ZXDPE(1,2) = ZIGDP(1)
- BXDPE(1,2) = BDP(1)
- ZXDPA(1,2) = ZIGDP(2)
- BXDPA(1,2) = BDP(2)
- ZXDPB(1,2) = ZIGDP(3)
- BXDPB(1,2) = BDP(3)
- ZXDPD(1,2) = ZIGDP(4)
- BXDPD(1,2) = BDP(4)
- SBOPOM(2) = SIGP
- SBOREG(2) = SIGR
- SBOHAR(2) = SIGHR
- SBOHAD(2) = 0.D0
- SBOTR1(2,1) = SIGT1(1)
- SBOTR1(2,2) = SIGT1(2)
- SBOTR2(2,1) = SIGT2(1)
- SBOTR2(2,2) = SIGT2(2)
- SBOLPO(2) = SIGL
- SBODPO(2,1) = SIGDP(1)
- SBODPO(2,2) = SIGDP(2)
- SBODPO(2,3) = SIGDP(3)
- SBODPO(2,4) = SIGDP(4)
-
-C low mass single diffractive scattering 2
- CALL PHO_BORNCS(IP,1,XMASS1,XMASS2,XMASS1,RMASS2)
- ZXP(1,3) = ZIGP
- BXP(1,3) = BPOM
- ZXR(1,3) = ZIGR
- BXR(1,3) = BREG
- ZXH(1,3) = ZIGHR
- BXH(1,3) = BHAR
- ZXD(1,3) = ZIGHD
- BXD(1,3) = BHAD
- ZXT1A(1,3) = ZIGT1(1)
- BXT1A(1,3) = BTR1(1)
- ZXT1B(1,3) = ZIGT1(2)
- BXT1B(1,3) = BTR1(2)
- ZXT2A(1,3) = ZIGT2(1)
- BXT2A(1,3) = BTR2(1)
- ZXT2B(1,3) = ZIGT2(2)
- BXT2B(1,3) = BTR2(2)
- ZXL(1,3) = ZIGL
- BXL(1,3) = BLOO
- ZXDPE(1,3) = ZIGDP(1)
- BXDPE(1,3) = BDP(1)
- ZXDPA(1,3) = ZIGDP(2)
- BXDPA(1,3) = BDP(2)
- ZXDPB(1,3) = ZIGDP(3)
- BXDPB(1,3) = BDP(3)
- ZXDPD(1,3) = ZIGDP(4)
- BXDPD(1,3) = BDP(4)
- SBOPOM(3) = SIGP
- SBOREG(3) = SIGR
- SBOHAR(3) = SIGHR
- SBOHAD(3) = 0.D0
- SBOTR1(3,1) = SIGT1(1)
- SBOTR1(3,2) = SIGT1(2)
- SBOTR2(3,1) = SIGT2(1)
- SBOTR2(3,2) = SIGT2(2)
- SBOLPO(3) = SIGL
- SBODPO(3,1) = SIGDP(1)
- SBODPO(3,2) = SIGDP(2)
- SBODPO(3,3) = SIGDP(3)
- SBODPO(3,4) = SIGDP(4)
-
-C low mass double diffractive scattering
- CALL PHO_BORNCS(IP,1,XMASS1,XMASS2,RMASS1,RMASS2)
- ZXP(1,4) = ZIGP
- BXP(1,4) = BPOM
- ZXR(1,4) = ZIGR
- BXR(1,4) = BREG
- ZXH(1,4) = ZIGHR
- BXH(1,4) = BHAR
- ZXD(1,4) = ZIGHD
- BXD(1,4) = BHAD
- ZXT1A(1,4) = ZIGT1(1)
- BXT1A(1,4) = BTR1(1)
- ZXT1B(1,4) = ZIGT1(2)
- BXT1B(1,4) = BTR1(2)
- ZXT2A(1,4) = ZIGT2(1)
- BXT2A(1,4) = BTR2(1)
- ZXT2B(1,4) = ZIGT2(2)
- BXT2B(1,4) = BTR2(2)
- ZXL(1,4) = ZIGL
- BXL(1,4) = BLOO
- ZXDPE(1,4) = ZIGDP(1)
- BXDPE(1,4) = BDP(1)
- ZXDPA(1,4) = ZIGDP(2)
- BXDPA(1,4) = BDP(2)
- ZXDPB(1,4) = ZIGDP(3)
- BXDPB(1,4) = BDP(3)
- ZXDPD(1,4) = ZIGDP(4)
- BXDPD(1,4) = BDP(4)
- SBOPOM(4) = SIGP
- SBOREG(4) = SIGR
- SBOHAR(4) = SIGHR
- SBOHAD(4) = 0.D0
- SBOTR1(4,1) = SIGT1(1)
- SBOTR1(4,2) = SIGT1(2)
- SBOTR2(4,1) = SIGT2(1)
- SBOTR2(4,2) = SIGT2(2)
- SBOLPO(4) = SIGL
- SBODPO(4,1) = SIGDP(1)
- SBODPO(4,2) = SIGDP(2)
- SBODPO(4,3) = SIGDP(3)
- SBODPO(4,4) = SIGDP(4)
-
-C calculate Born graph cross sections
- SBOPOM(0) = 0.D0
- SBOREG(0) = 0.D0
- SBOHAR(0) = 0.D0
- SBOHAD(0) = 0.D0
- SBOTR1(0,1) = 0.D0
- SBOTR1(0,2) = 0.D0
- SBOTR2(0,1) = 0.D0
- SBOTR2(0,2) = 0.D0
- SBOLPO(0) = 0.D0
- SBODPO(0,1) = 0.D0
- SBODPO(0,2) = 0.D0
- SBODPO(0,3) = 0.D0
- SBODPO(0,4) = 0.D0
- DO 150 I=1,4
- SBOPOM(0) = SBOPOM(0) + ELAFAC(I)*SBOPOM(I)
- SBOREG(0) = SBOREG(0) + ELAFAC(I)*SBOREG(I)
- SBOHAR(0) = SBOHAR(0) + ELAFAC(I)*SBOHAR(I)
- SBOHAD(0) = SBOHAD(0) + ELAFAC(I)*SBOHAD(I)
- SBOTR1(0,1) = SBOTR1(0,1) + ELAFAC(I)*SBOTR1(I,1)
- SBOTR1(0,2) = SBOTR1(0,2) + ELAFAC(I)*SBOTR1(I,2)
- SBOTR2(0,1) = SBOTR2(0,1) + ELAFAC(I)*SBOTR2(I,1)
- SBOTR2(0,2) = SBOTR2(0,2) + ELAFAC(I)*SBOTR2(I,2)
- SBOLPO(0) = SBOLPO(0) + ELAFAC(I)*SBOLPO(I)
- SBODPO(0,1) = SBODPO(0,1) + ELAFAC(I)*SBODPO(I,1)
- SBODPO(0,2) = SBODPO(0,2) + ELAFAC(I)*SBODPO(I,2)
- SBODPO(0,3) = SBODPO(0,3) + ELAFAC(I)*SBODPO(I,3)
- SBODPO(0,4) = SBODPO(0,4) + ELAFAC(I)*SBODPO(I,4)
- 150 CONTINUE
-
- SIGPOM = SBOPOM(0)
- SIGREG = SBOREG(0)
- SIGTR1(1) = SBOTR1(0,1)
- SIGTR1(2) = SBOTR1(0,2)
- SIGTR2(1) = SBOTR2(0,1)
- SIGTR2(2) = SBOTR2(0,2)
- SIGLOO = SBOLPO(0)
- SIGDPO(1) = SBODPO(0,1)
- SIGDPO(2) = SBODPO(0,2)
- SIGDPO(3) = SBODPO(0,3)
- SIGDPO(4) = SBODPO(0,4)
- SIGHAR = SBOHAR(0)
- SIGDIR = SBOHAD(0)
- ENDIF
-
- B24=DCMPLX(B**2,0.D0)/4.D0
-
- AMPEL = CZERO
- AMPR = CZERO
- AMPO = CZERO
- AMPP = CZERO
- AMPQ = CZERO
- AMLMSD(1) = CZERO
- AMLMSD(2) = CZERO
- AMHMSD(1) = CZERO
- AMHMSD(2) = CZERO
- AMLMDD = CZERO
- AMHMDD = CZERO
-
-C different models
-
- IF(ISWMDL(1).LT.3) THEN
-C pomeron
- AUXP = ZXP(1,1)*EXP(-B24/BXP(1,1))
-C reggeon
- AUXR = ZXR(1,1)*EXP(-B24/BXR(1,1))
-C hard resolved processes
- AUXH = ZXH(1,1)*EXP(-B24/BXH(1,1))
-C hard direct processes
- AUXD = ZXD(1,1)*EXP(-B24/BXD(1,1))
-C triple-Pomeron: baryon high mass diffraction
- AUXT1 = ZXT1A(1,1)*EXP(-B24/BXT1A(1,1))
- & + ZXT1B(1,1)*EXP(-B24/BXT1B(1,1))
-C triple-Pomeron: photon/meson high mass diffraction
- AUXT2 = ZXT2A(1,1)*EXP(-B24/BXT2A(1,1))
- & + ZXT2B(1,1)*EXP(-B24/BXT2B(1,1))
-C loop-Pomeron
- AUXL = ZXL(1,1)*EXP(-B24/BXL(1,1))
- ENDIF
-
- IF(ISWMDL(1).EQ.0) THEN
- AMPEL = 0.5D0*((VDMQ2F(1)+VDMQ2F(2)+VDMQ2F(3)+VDMQ2F(4))
- & *(CONE-EXP(-AUXR-AUXP-AUXH+AUXT1+AUXT2+AUXL))
- & +(CONE-(VDMQ2F(1)-VDMQ2F(2)-VDMQ2F(3)-VDMQ2F(4)))*AUXD
- & )
- AMPR = 0.5D0*SQRT(VDMQ2F(1))*(CONE-EXP(-AUXR-AUXP-AUXH
- & +AUXT1+AUXT2+AUXL))
- AMPO = 0.5D0*SQRT(VDMQ2F(2))*(CONE-EXP(-AUXR-AUXP-AUXH
- & +AUXT1+AUXT2+AUXL))
- AMPP = 0.5D0*SQRT(VDMQ2F(3))*(CONE-EXP(-AUXR-AUXP-AUXH
- & +AUXT1+AUXT2+AUXL))
- AMPQ = 0.5D0*SQRT(VDMQ2F(4))*(CONE-EXP(-AUXR-AUXP-AUXH
- & +AUXT1+AUXT2+AUXL))
-
- ELSE IF(ISWMDL(1).EQ.1) THEN
- AMPR = 0.5D0*SQRT(VDMQ2F(1))*
- & ( CONE-EXP(-AUXR-AUXP-AUXH*VDMQ2F(1)) )
- AMPO = 0.5D0*SQRT(VDMQ2F(2))*
- & ( CONE-EXP(-3.D0*AUXR-AUXP-AUXH*VDMQ2F(2)) )
- AMPP = 0.5D0*SQRT(VDMQ2F(3))*
- & ( CONE-EXP(-AUXP-AUXH*VDMQ2F(3)) )
- AMPQ = 0.5D0*SQRT(VDMQ2F(4))*
- & ( CONE-EXP(-AUXR-AUXP-AUXH*VDMQ2F(4)) )
- AMPEL = SQRT(VDMQ2F(1))*AMPR
- & + SQRT(VDMQ2F(2))*AMPO
- & + SQRT(VDMQ2F(3))*AMPP
- & + SQRT(VDMQ2F(4))*AMPQ
- & + AUXD/2.D0
-
-C simple analytic two channel model (version A)
- ELSE IF(ISWMDL(1).EQ.3) THEN
- CALL PHO_CHAN2A(B)
-
- ELSE
- WRITE(LO,'(1X,A,I2)')
- & 'EIKON: ERROR: unsupported model ISWMDL(1) ',ISWMDL(1)
- STOP
- ENDIF
-
- END
-
-CDECK ID>, PHO_DSIGDT
- SUBROUTINE PHO_DSIGDT(EE,XTA,NFILL)
-C*********************************************************************
-C
-C calculation of unitarized amplitude
-C and differential cross section
-C
-C input: EE cm energy (GeV)
-C XTA(1,*) t values (GeV**2)
-C NFILL entries in t table
-C
-C output: XTA(2,*) DSIG/DT g p --> g h/V (mub/GeV**2)
-C XTA(3,*) DSIG/DT g p --> rho0 h/V
-C XTA(4,*) DSIG/DT g p --> omega0 h/V
-C XTA(5,*) DSIG/DT g p --> phi h/V
-C XTA(6,*) DSIG/DT g p --> pi+ pi- h/V (continuum)
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER(ITWO=2,
- & ITHREE=3,
- & THOUS=1.D3,
- & DEPS=1.D-20)
-
- DIMENSION XTA(6,NFILL)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C integration precision for hard cross sections (obsolete)
- INTEGER NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
- COMMON /POGAUP/ NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C complex Born graph amplitudes used for unitarization
- COMPLEX*16 AMPEL,AMPVM,AMPSOF,AMPHAR,AMLMSD,AMHMSD,AMLMDD,
- & AMHMDD,AMPDP
- COMMON /POINT4/ AMPEL,AMPVM(4,4),AMPSOF,AMPHAR,AMLMSD(2),
- & AMHMSD(2),AMLMDD,AMHMDD,AMPDP(4)
-
- COMPLEX*16 XT,AMP,CZERO
- DIMENSION AMP(5),XPNT(96),WGHT(96),XT(5,100)
- CHARACTER*12 FNA
-
- CDABS(AMPEL) = ABS(AMPEL)
- DCMPLX(X,Y) = CMPLX(X,Y)
-
- CZERO=DCMPLX(0.D0,0.D0)
-
- ETMP = ECM
- ECM = EE
-
- IF(NFILL.GT.100) THEN
- WRITE(LO,'(1X,A,I4)')
- & 'PHO_DSIGDT:ERROR: too many entries in table',NFILL
- STOP
- ENDIF
-C
- DO 100 K=1,NFILL
- DO 150 L=1,5
- XT(L,K)=CZERO
- 150 CONTINUE
- 100 CONTINUE
-C
-C impact parameter integration
-C BMAX=12.D0*SQRT(MAX(BPOM,BREG))
- BMAX=10.D0
- CALL PHO_GAUSET(0.D0,BMAX,NGAUSO,XPNT,WGHT)
- IAMP = 5
- IF((IFPAP(1).EQ.22).AND.(IFPAP(2).NE.22)) THEN
- I1 = 1
- I2 = 0
- ELSE IF((IFPAP(1).NE.22).AND.(IFPAP(2).EQ.22)) THEN
- I1 = 0
- I2 = 1
- ELSE IF((IFPAP(1).EQ.22).AND.(IFPAP(2).EQ.22)) THEN
- I1 = 1
- I2 = 1
- ELSE
- I1 = 0
- I2 = 0
- IAMP = 1
- ENDIF
- J1 = I1*2
- K1 = I1*3
- L1 = I1*4
- J2 = I2*2
- K2 = I2*3
- L2 = I2*4
-C
- DO 200 I=1,NGAUSO
- WG=WGHT(I)*XPNT(I)
-C calculate amplitudes
- IF(I.EQ.1) THEN
- CALL PHO_EIKON(1,-1,XPNT(I))
- ELSE
- CALL PHO_EIKON(1,1,XPNT(I))
- ENDIF
- AMP(1) = AMPEL
- AMP(2) = AMPVM(I1,I2)
- AMP(3) = AMPVM(J1,J2)
- AMP(4) = AMPVM(K1,K2)
- AMP(5) = AMPVM(L1,L2)
-C
- DO 400 J=1,NFILL
- XX=XPNT(I)*SQRT(XTA(1,J)/GEV2MB)
- FAC = PHO_BESSJ0(XX)*WG
- DO 500 K=1,IAMP
- XT(1,J)=XT(1,J)+AMP(K)*FAC
- 500 CONTINUE
- 400 CONTINUE
- 200 CONTINUE
-C
-C change units to mb/GeV**2
- FAC = 4.D0*PI/GEV2MB
- FNA = '(mb/GeV**2) '
- IF(I1+I2.EQ.1) THEN
- FAC = FAC*THOUS
- FNA = '(mub/GeV**2)'
- ELSE IF(I1+I2.EQ.2) THEN
- FAC = FAC*THOUS*THOUS
- FNA = '(nb/GeV**2) '
- ENDIF
- IF(IDEB(56).GE.5) THEN
- WRITE(LO,'(1X,A,A12,/1X,A)') 'table: -T (GeV**2) DSIG/DT ',
- & FNA,'------------------------------------------'
- ENDIF
- DO 600 J=1,NFILL
- DO 700 K=1,IAMP
- XTA(K+1,J)=CDABS(XT(K,J))**2*FAC
- 700 CONTINUE
- IF(IDEB(56).GE.5) THEN
- WRITE(LO,'(5X,6E12.3)') (XTA(I,J),I=1,IAMP+1)
- ENDIF
- 600 CONTINUE
-
- ECM = ETMP
- END
-
-CDECK ID>, PHO_XSECT
- SUBROUTINE PHO_XSECT(IP,IFHARD,EE)
-C*********************************************************************
-C
-C calculation of physical cross sections
-C
-C input: IP particle combination
-C IFHARD -1 reset Born graph cross section tables
-C 0 calculate hard cross sections or take them
-C from interpolation table (if available)
-C 1 assume that hard cross sections are already
-C calculated and stored in /POSBRN/
-C EE cms energy (GeV)
-C
-C output: /POSBRN/ input cross sections
-C /POZBRN/ scaled input cross values
-C /POCSEC/ physical cross sections and slopes
-C
-C slopes in GeV**-2, cross sections in mb
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER(ONEM=-1.D0,
- & THOUS=1.D3,
- & DEPS=1.D-20)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C integration precision for hard cross sections (obsolete)
- INTEGER NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
- COMMON /POGAUP/ NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C Born graph cross sections and slopes
- INTEGER Max_pro_3
- PARAMETER ( Max_pro_3 = 16 )
- COMPLEX*16 SIGP,SIGR,SIGHD,SIGHR,SIGT1,SIGT2,SIGL,SIGDP,
- & SIGD1,SIGD2,DSIGH
- COMMON /POSBRN/ SIGP,SIGR,SIGHD,SIGHR,SIGT1(2),SIGT2(2),SIGL,
- & SIGDP(4),SIGD1(2),SIGD2(2),DSIGH(0:Max_pro_3)
-C cross sections
- INTEGER IPFIL,IFAFIL,IFBFIL
- DOUBLE PRECISION SIGTOT,SIGELA,SIGVM,SIGINE,SIGNDF,SIGDIR,
- & SIGLSD,SIGHSD,SIGLDD,SIGHDD,SIGCDF,
- & SIGPOM,SIGREG,SIGHAR,SIGTR1,SIGTR2,SIGLOO,
- & SIGDPO,SIG1SO,SIG1HA,SLOEL,SLOVM,SIGCOR,
- & FSUP,FSUD,FSUH,ECMFIL,P2AFIL,P2BFIL
- COMMON /POCSEC/ SIGTOT,SIGELA,SIGVM(0:4,0:4),SIGINE,SIGNDF,SIGDIR,
- & SIGLSD(2),SIGHSD(2),SIGLDD,SIGHDD,SIGCDF(0:4),
- & SIGPOM,SIGREG,SIGHAR,SIGTR1(2),SIGTR2(2),SIGLOO,
- & SIGDPO(4),SIG1SO,SIG1HA,SLOEL,SLOVM(4,4),SIGCOR,
- & FSUP(2),FSUD(2),FSUH(2),ECMFIL,P2AFIL,P2BFIL,
- & IPFIL,IFAFIL,IFBFIL
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-
- CHARACTER*15 PHO_PNAME
-
-C complex Born graph amplitudes used for unitarization
- COMPLEX*16 AMPEL,AMPVM,AMPSOF,AMPHAR,AMLMSD,AMHMSD,AMLMDD,
- & AMHMDD,AMPDP
- COMMON /POINT4/ AMPEL,AMPVM(4,4),AMPSOF,AMPHAR,AMLMSD(2),
- & AMHMSD(2),AMLMDD,AMHMDD,AMPDP(4)
-
- DIMENSION XPNT(96),WGHT(96),SLVM1(4,4),SLVM2(4,4)
- CHARACTER*8 VMESA(0:4),VMESB(0:4)
- DATA VMESA / 'vmeson ','rho ','omega ','phi ',
- & 'pi+pi- ' /
- DATA VMESB / 'vmeson ','rho ','omega ','phi ',
- & 'pi+pi- ' /
-
- CDABS(AMPEL) = ABS(AMPEL)
-
- ETMP = ECM
- IF(EE.LT.0.D0) GOTO 500
- ECM = EE
-
-C impact parameter integration
-C BMAX=12.D0*SQRT(MAX(BPOM,BREG))
- BMAX=10.D0
- CALL PHO_GAUSET(0.D0,BMAX,NGAUSO,XPNT,WGHT)
- SIGTOT = 0.D0
- SIGINE = 0.D0
- SIGELA = 0.D0
- SIGNDF = 0.D0
- SIGLSD(1) = 0.D0
- SIGLSD(2) = 0.D0
- SIGLDD = 0.D0
- SIGHSD(1) = 0.D0
- SIGHSD(2) = 0.D0
- SIGHDD = 0.D0
- SIGCDF(0) = 0.D0
- SIG1SO = 0.D0
- SIG1HA = 0.D0
- SLEL1 = 0.D0
- SLEL2 = 0.D0
- DO 50 I=1,4
- SIGCDF(I) = 0.D0
- DO 55 K=1,4
- SIGVM(I,K) = 0.D0
- SLVM1(I,K) = 0.D0
- SLVM2(I,K) = 0.D0
- 55 CONTINUE
- 50 CONTINUE
-
- DO 100 I=1,NGAUSO
- B2 = XPNT(I)**2
- WG = WGHT(I)*XPNT(I)
- WGB = B2*WG
-
-C calculate impact parameter amplitude, results in /POINT4/
- IF(I.EQ.1) THEN
- CALL PHO_EIKON(IP,IFHARD,XPNT(I))
- ELSE
- CALL PHO_EIKON(IP,1,XPNT(I))
- ENDIF
-
- SIGTOT = SIGTOT + DREAL(AMPEL)*WG
- SIGELA = SIGELA + CDABS(AMPEL)**2*WG
- SLEL1 = SLEL1 + AMPEL*WGB
- SLEL2 = SLEL2 + AMPEL*WG
-
- DO 110 J=1,4
- DO 120 K=1,4
- SIGVM(J,K) = SIGVM(J,K) + CDABS(AMPVM(J,K))**2*WG
- SLVM1(J,K) = SLVM1(J,K) + AMPVM(J,K)*WGB
- SLVM2(J,K) = SLVM2(J,K) + AMPVM(J,K)*WG
- 120 CONTINUE
- SIGCDF(J) = SIGCDF(J) + DREAL(AMPDP(J))*WG
- 110 CONTINUE
-
- SIGLSD(1) = SIGLSD(1) + CDABS(AMLMSD(1))**2*WG
- SIGLSD(2) = SIGLSD(2) + CDABS(AMLMSD(2))**2*WG
- SIGLDD = SIGLDD + CDABS(AMLMDD)**2*WG
- SIG1SO = SIG1SO + DREAL(AMPSOF)*WG
- SIG1HA = SIG1HA + DREAL(AMPHAR)*WG
- SIGHSD(1) = SIGHSD(1) + DREAL(AMHMSD(1))*WG
- SIGHSD(2) = SIGHSD(2) + DREAL(AMHMSD(2))*WG
- SIGHDD = SIGHDD + DREAL(AMHMDD)*WG
-
- 100 CONTINUE
-
- SIGDIR = DREAL(SIGHD)
- FAC = 4.D0*PI2
- SIGTOT = SIGTOT*FAC
- SIGELA = SIGELA*FAC
- FACSL = 0.5D0/GEV2MB
- SLOEL = SLEL1/MAX(DEPS,SLEL2)*FACSL
-
- IF((IFPAP(1).EQ.22).OR.(IFPAP(2).EQ.22)) THEN
- DO 130 I=1,4
- DO 140 J=1,4
- SIGVM(I,J) = SIGVM(I,J)*FAC
- SLOVM(I,J) = SLVM1(I,J)/MAX(DEPS,SLVM2(I,J))*FACSL
- 140 CONTINUE
- 130 CONTINUE
- SIGVM(0,0) = 0.D0
- DO 150 I=1,4
- SIGVM(0,I) = 0.D0
- SIGVM(I,0) = 0.D0
- DO 160 J=1,4
- SIGVM(0,I) = SIGVM(0,I) + SIGVM(J,I)
- SIGVM(I,0) = SIGVM(I,0) + SIGVM(I,J)
- 160 CONTINUE
- SIGVM(0,0) = SIGVM(0,0) + SIGVM(I,0)
- 150 CONTINUE
- ENDIF
-
-C diffractive cross sections
-
- SIGLSD(1) = SIGLSD(1)*FAC*PARMDL(40)
- SIGLSD(2) = SIGLSD(2)*FAC*PARMDL(41)
- SIGLDD = SIGLDD *FAC*PARMDL(42)
- SIGHSD(1) = (SIGHSD(1)-2.D0*(SIGCDF(1)+SIGCDF(2)))*FAC*PARMDL(40)
- SIGHSD(2) = (SIGHSD(2)-2.D0*(SIGCDF(1)+SIGCDF(3)))*FAC*PARMDL(41)
- SIGHDD = (SIGHDD-2.D0*(SIGCDF(2)+SIGCDF(3)+2.D0*SIGCDF(4)))
- & *FAC*PARMDL(42)
-
-C double pomeron scattering
-
- SIGCDF(0) = 0.D0
- DO 170 I=1,4
- SIGCDF(I) = SIGCDF(I)*FAC
- SIGCDF(0) = SIGCDF(0)+SIGCDF(I)
- 170 CONTINUE
-
- SIG1SO = SIG1SO *FAC
- SIG1HA = SIG1HA *FAC
-
- SIGINE = SIGTOT - SIGELA
-
-C user-forced change of diffractive cross section
-
- IF((IP.EQ.1).AND.(ISWMDL(30).GE.1)) THEN
-
-C use optional explicit parametrization for single-diffraction
-
- SIGSD1 = SIGLSD(1)+SIGHSD(1)
- SIGSD2 = SIGLSD(2)+SIGHSD(2)
- SS = EE*EE
- XI_MIN = 1.5D0/SS
- XI_MAX = PARMDL(45)**2
- CALL PHO_CSDIFF(IFPAP(1),IFPAP(2),SS,XI_MIN,XI_MAX,
- & SIG_SD1,SIG_SD2,SIG_DD)
- SIG_SD1 = SIG_SD1*PARMDL(40)
- SIG_SD2 = SIG_SD2*PARMDL(41)
-
-**sr
-C DEL_SD1 = SIG_SD1-SIGSD1
- DEL_SD1 = PARMDL(200)*(SIG_SD1-SIGSD1)
-**
-
- FAC = SIGLSD(1)/SIGSD1
- SIGLSD(1) = SIGLSD(1)+FAC*DEL_SD1
- SIGHSD(1) = SIGHSD(1)+(1.D0-FAC)*DEL_SD1
-
-C DEL_SD2 = SIG_SD2-SIGSD2
- DEL_SD2 = PARMDL(200)*(SIG_SD2-SIGSD2)
-
- FAC = SIGLSD(2)/SIGSD2
- SIGLSD(2) = SIGLSD(2)+FAC*DEL_SD2
- SIGHSD(2) = SIGHSD(2)+(1.D0-FAC)*DEL_SD2
-
- IF(ISWMDL(30).GE.2) THEN
-
-C use explicit parametrization also for double diffraction diss.
- SIGDD = SIGLDD+SIGHDD
- SIG_DD = SIG_DD*PARMDL(42)
- DEL_DD = SIG_DD-SIGDD
- FAC = SIGLDD/SIGDD
- SIGLDD = SIGLDD+FAC*DEL_DD
- SIGHDD = SIGHDD+(1.D0-FAC)*DEL_DD
- SIGCOR = DEL_SD1 + DEL_SD2 + DEL_DD
-
- ELSE
-
-C rescale double diffraction cross sections
- SIGLDD = SIGLDD *PARMDL(42)
- SIGHDD = SIGHDD *PARMDL(42)
- SIGCOR = DEL_SD1 + DEL_SD2
- & +(SIGLDD+SIGHDD)*(PARMDL(42)-1.D0)
-
- ENDIF
-
- ELSE
-
-C rescale unitarized cross sections for diffraction dissociation
-
- SIGLSD(1) = SIGLSD(1)*PARMDL(40)
- SIGHSD(1) = SIGHSD(1)*PARMDL(40)
- SIGLSD(2) = SIGLSD(2)*PARMDL(41)
- SIGHSD(2) = SIGHSD(2)*PARMDL(41)
- SIGLDD = SIGLDD *PARMDL(42)
- SIGHDD = SIGHDD *PARMDL(42)
- SIGCOR = (SIGLSD(1)+SIGHSD(1))*(PARMDL(40)-1.D0)
- & +(SIGLSD(2)+SIGHSD(2))*(PARMDL(41)-1.D0)
- & +(SIGLDD+SIGHDD)*(PARMDL(42)-1.D0)
-
- ENDIF
-
-C non-diffractive inelastic cross section
-
- SIGNDF = SIGTOT-SIGELA-SIGVM(0,0)-SIGCDF(0)-SIGDIR
- & -SIGLSD(1)-SIGHSD(1)-SIGLSD(2)-SIGHSD(2)
- & -SIGLDD-SIGHDD
-
-C specify elastic scattering channel
-
- 500 CONTINUE
- IF(IFPAP(1).NE.22) THEN
- VMESA(1) = PHO_PNAME(IFPAB(1),0)
- ELSE
- VMESA(1) = 'rho '
- ENDIF
- IF(IFPAP(2).NE.22) THEN
- VMESB(1) = PHO_PNAME(IFPAB(2),0)
- ELSE
- VMESB(1) = 'rho '
- ENDIF
-
-C write out physical cross sections
-
- IF(IDEB(57).GE.5) THEN
- WRITE(LO,'(/1X,A,I3,/1X,A)')
- & 'PHO_XSECT: cross sections (mb) for combination',IP,
- & '----------------------------------------------'
- WRITE(LO,'(5X,A,E12.3,2E11.3)')'energy,virtualities',ECM,PVIRT
- WRITE(LO,'(5X,A,E12.3)') ' total ',SIGTOT
- WRITE(LO,'(5X,A,E12.3)') ' purely elastic ',SIGELA
- WRITE(LO,'(5X,A,E12.3)') ' inelastic ',SIGINE
- WRITE(LO,'(5X,A,E12.3)') ' s-diff.particle 1 ',
- & SIGLSD(1)+SIGHSD(1)
- IF(IDEB(57).GE.7) THEN
- WRITE(LO,'(5X,A,E12.3)') ' low-mass part ',SIGLSD(1)
- WRITE(LO,'(5X,A,E12.3)') ' high-mass part ',SIGHSD(1)
- ENDIF
- WRITE(LO,'(5X,A,E12.3)') ' s-diff.particle 2 ',
- & SIGLSD(2)+SIGHSD(2)
- IF(IDEB(57).GE.7) THEN
- WRITE(LO,'(5X,A,E12.3)') ' low-mass part ',SIGLSD(2)
- WRITE(LO,'(5X,A,E12.3)') ' high-mass part ',SIGHSD(2)
- ENDIF
- WRITE(LO,'(5X,A,E12.3)') ' double diff ',SIGLDD+SIGHDD
- IF(IDEB(57).GE.7) THEN
- WRITE(LO,'(5X,A,E12.3)') ' low-mass part ',SIGLDD
- WRITE(LO,'(5X,A,E12.3)') ' high-mass part ',SIGHDD
- ENDIF
- WRITE(LO,'(5X,A,E12.3)') ' double pomeron ',SIGCDF(0)
- IF(IDEB(57).GE.7) THEN
- WRITE(LO,'(5X,A,E12.3)') ' purely elastic ',SIGCDF(1)
- WRITE(LO,'(5X,A,E12.3)') ' excitation part.1 ',SIGCDF(2)
- WRITE(LO,'(5X,A,E12.3)') ' excitation part.2 ',SIGCDF(3)
- WRITE(LO,'(5X,A,E12.3)') ' excitation both ',SIGCDF(4)
- ENDIF
- WRITE(LO,'(5X,A,E12.3)') ' elastic slope ',SLOEL
- DO 200 I=1,4
- DO 210 J=1,4
- IF(SIGVM(I,J).GT.DEPS) THEN
- WRITE(LO,'(1X,3A)') 'q-elastic production of ',
- & VMESA(I),VMESB(J)
- WRITE(LO,'(10X,A,E12.3)') 'cross section ',SIGVM(I,J)
- IF((I.NE.0).AND.(J.NE.0))
- & WRITE(LO,'(18X,A,E12.3)') 'slope ',SLOVM(I,J)
- ENDIF
- 210 CONTINUE
- 200 CONTINUE
- IF(IDEB(57).GE.7) THEN
- WRITE(LO,'(5X,A,E12.3)') ' vmeson production ',SIGVM(0,0)
- WRITE(LO,'(5X,A,E12.3)') ' one-pomeron soft ',SIG1SO
- WRITE(LO,'(5X,A,E12.3)') ' one-pomeron hard ',SIG1HA
- WRITE(LO,'(5X,A,E12.3)') ' pomeron exchange ',SIGPOM
- WRITE(LO,'(5X,A,E12.3)') ' reggeon exchange ',SIGREG
- WRITE(LO,'(5X,A,E12.3)') ' hard resolved QCD ',DREAL(DSIGH(9))
- WRITE(LO,'(5X,A,E12.3/)')' hard direct QCD ',
- & DREAL(DSIGH(15))
- ENDIF
- ENDIF
-
- ECM = ETMP
-
- END
-
-CDECK ID>, PHO_IMPAMP
- SUBROUTINE PHO_IMPAMP(EE,BMIN,BMAX,NSTEP)
-C*********************************************************************
-C
-C calculation of physical impact parameter amplitude
-C
-C input: EE cm energy (GeV)
-C BMIN lower bound in B
-C BMAX upper bound in B
-C NSTEP number of values (linear)
-C
-C output: values written to output unit
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER(ONEM=-1.D0,
- & THOUS=1.D3,
- & DEPS=1.D-20)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C complex Born graph amplitudes used for unitarization
- COMPLEX*16 AMPEL,AMPVM,AMPSOF,AMPHAR,AMLMSD,AMHMSD,AMLMDD,
- & AMHMDD,AMPDP
- COMMON /POINT4/ AMPEL,AMPVM(4,4),AMPSOF,AMPHAR,AMLMSD(2),
- & AMHMSD(2),AMLMDD,AMHMDD,AMPDP(4)
-
- ECM=EE
- BSTEP = (BMAX-BMIN)/DBLE(NSTEP-1)
-C
- WRITE(LO,'(3(/,1X,A))')
- & 'impact parameter amplitudes:',
- & ' B AMP-EL AMP-LMSD(1,2) AMP-HMSD(1,2) AMP-LMDD AMP-HMDD',
- & '-------------------------------------------------------------'
-C
- BB = BMIN
- DO 100 I=1,NSTEP
-C calculate impact parameter amplitudes
- IF(I.EQ.1) THEN
- CALL PHO_EIKON(1,-1,BMIN)
- ELSE
- CALL PHO_EIKON(1,1,BB)
- ENDIF
- WRITE(LO,'(1X,8E12.4)') BB,DREAL(AMPEL),
- & DREAL(AMLMSD(1)),DREAL(AMLMSD(2)),
- & DREAL(AMHMSD(1)),DREAL(AMHMSD(2)),DREAL(AMLMDD),DREAL(AMHMDD)
- BB = BB+BSTEP
- 100 CONTINUE
-
- END
-
-CDECK ID>, PHO_PRBDIS
- SUBROUTINE PHO_PRBDIS(IP,ECM,IE)
-C*********************************************************************
-C
-C calculation of multi interactions probabilities
-C
-C input: IP particle combination to scatter
-C ECM CMS energy
-C IE index for weight storing
-C /PROBAB/
-C IMAX max. number of soft pomeron interactions
-C KMAX max. number of hard pomeron interactions
-C
-C output: /PROBAB/
-C PROB field of probabilities
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( EPS=1.D-10 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C Reggeon phenomenology parameters
- DOUBLE PRECISION ALPOM,ALPOMP,GP,B0POM,ALREG,ALREGP,GR,B0REG,
- & GPPP,GPPR,B0PPP,B0PPR,VDMFAC,VDMQ2F,B0HAR,AKFAC
- COMMON /POPREG/ ALPOM,ALPOMP,GP(2),B0POM(2),
- & ALREG,ALREGP,GR(2),B0REG(2),
- & GPPP,GPPR,B0PPP,B0PPR,
- & VDMFAC(4),VDMQ2F(4),B0HAR,AKFAC
-C parameters of 2x2 channel model
- DOUBLE PRECISION PHISUP,RMASS,VAR,AMPFAC,ELAFAC,VFAC
- COMMON /PO2CHA/ PHISUP(2),RMASS(2),VAR,AMPFAC(4),ELAFAC(4),VFAC
-C Born graph cross sections and slopes
- INTEGER Max_pro_3
- PARAMETER ( Max_pro_3 = 16 )
- COMPLEX*16 SIGP,SIGR,SIGHD,SIGHR,SIGT1,SIGT2,SIGL,SIGDP,
- & SIGD1,SIGD2,DSIGH
- COMMON /POSBRN/ SIGP,SIGR,SIGHD,SIGHR,SIGT1(2),SIGT2(2),SIGL,
- & SIGDP(4),SIGD1(2),SIGD2(2),DSIGH(0:Max_pro_3)
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C Born graph cross sections after applying diffraction model
- DOUBLE PRECISION SBOPOM,SBOREG,SBOHAR,SBOHAD,SBOTR1,SBOTR2,
- & SBOLPO,SBODPO
- COMMON /POINT1/ SBOPOM(0:4),SBOREG(0:4),SBOHAR(0:4),SBOHAD(0:4),
- & SBOTR1(0:4,2),SBOTR2(0:4,2),SBOLPO(0:4),
- & SBODPO(0:4,4)
-C cross sections
- INTEGER IPFIL,IFAFIL,IFBFIL
- DOUBLE PRECISION SIGTOT,SIGELA,SIGVM,SIGINE,SIGNDF,SIGDIR,
- & SIGLSD,SIGHSD,SIGLDD,SIGHDD,SIGCDF,
- & SIGPOM,SIGREG,SIGHAR,SIGTR1,SIGTR2,SIGLOO,
- & SIGDPO,SIG1SO,SIG1HA,SLOEL,SLOVM,SIGCOR,
- & FSUP,FSUD,FSUH,ECMFIL,P2AFIL,P2BFIL
- COMMON /POCSEC/ SIGTOT,SIGELA,SIGVM(0:4,0:4),SIGINE,SIGNDF,SIGDIR,
- & SIGLSD(2),SIGHSD(2),SIGLDD,SIGHDD,SIGCDF(0:4),
- & SIGPOM,SIGREG,SIGHAR,SIGTR1(2),SIGTR2(2),SIGLOO,
- & SIGDPO(4),SIG1SO,SIG1HA,SLOEL,SLOVM(4,4),SIGCOR,
- & FSUP(2),FSUD(2),FSUH(2),ECMFIL,P2AFIL,P2BFIL,
- & IPFIL,IFAFIL,IFBFIL
-C cut probability distribution
- INTEGER IEETA1,IIMAX,KKMAX
- PARAMETER( IEETA1=20, IIMAX=20, KKMAX=20 )
- INTEGER IEEMAX,IMAX,KMAX
- REAL PROB
- DOUBLE PRECISION EPTAB
- COMMON /POPROB/ PROB(4,IEETA1,0:IIMAX,0:KKMAX),EPTAB(4,IEETA1),
- & IEEMAX,IMAX,KMAX
-C energy-interpolation table
- INTEGER IEETA2
- PARAMETER ( IEETA2 = 20 )
- INTEGER ISIMAX
- DOUBLE PRECISION SIGTAB,SIGECM
- COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
-C average number of cut soft and hard ladders (obsolete)
- DOUBLE PRECISION AVERI,AVERK,AVERL,AVERM,AVERN
- COMMON /POINT2/ AVERI,AVERK,AVERL,AVERM,AVERN
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C integration precision for hard cross sections (obsolete)
- INTEGER NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
- COMMON /POGAUP/ NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C unitarized amplitudes for different diffraction channels
- DOUBLE PRECISION ZXP,BXP,ZXR,BXR,ZXH,BXH,ZXD,BXD,
- & ZXT1A,BXT1A,ZXT1B,BXT1B,ZXT2A,BXT2A,ZXT2B,BXT2B,
- & ZXDPE,BXDPE,ZXDPA,BXDPA,ZXDPB,BXDPB,ZXDPD,BXDPD,
- & ZXL,BXL
- COMMON /POINT5/ ZXP(4,4),BXP(4,4),ZXR(4,4),BXR(4,4),
- & ZXH(4,4),BXH(4,4),ZXD(4,4),BXD(4,4),
- & ZXT1A(4,4),BXT1A(4,4),ZXT1B(4,4),BXT1B(4,4),
- & ZXT2A(4,4),BXT2A(4,4),ZXT2B(4,4),BXT2B(4,4),
- & ZXDPE(4,4),BXDPE(4,4),ZXDPA(4,4),BXDPA(4,4),
- & ZXDPB(4,4),BXDPB(4,4),ZXDPD(4,4),BXDPD(4,4),
- & ZXL(4,4),BXL(4,4)
-
-C local variables
- DIMENSION AB(4,4),CHI2(4),ABSUM2(4,4),ABSTMP(4),CHITMP(4)
- PARAMETER (ICHMAX=40)
- DIMENSION CHIFAC(4,4),AMPCOF(4)
- DIMENSION PCHAIN(2,ICHMAX),XPNT(96),WGHT(96)
- DIMENSION FACLOG(0:30),PSOFT(0:30),PHARD(0:30)
-
-C combinatorical factors
- DATA CHIFAC / 1.D0, 1.D0,-1.D0,-1.D0,
- & 1.D0,-1.D0, 1.D0,-1.D0,
- & 1.D0,-1.D0,-1.D0, 1.D0,
- & 1.D0, 1.D0, 1.D0, 1.D0 /
-
- DATA FACLOG / .000000000000000D+00,
- & .000000000000000D+00, .693147180559945D+00,
- & .109861228866811D+01, .138629436111989D+01,
- & .160943791243410D+01, .179175946922805D+01,
- & .194591014905531D+01, .207944154167984D+01,
- & .219722457733622D+01, .230258509299405D+01,
- & .239789527279837D+01, .248490664978800D+01,
- & .256494935746154D+01, .263905732961526D+01,
- & .270805020110221D+01, .277258872223978D+01,
- & .283321334405622D+01, .289037175789616D+01,
- & .294443897916644D+01, .299573227355399D+01,
- & .304452243772342D+01, .309104245335832D+01,
- & .313549421592915D+01, .317805383034795D+01,
- & .321887582486820D+01, .325809653802148D+01,
- & .329583686600433D+01, .333220451017520D+01,
- & .336729582998647D+01, .340119738166216D+01 /
-
- DATA ELAST / 0.D0 /
- DATA IPLAST / 0 /
-
-C test for redundant calculation: skip cs calculation
- IF((ECM.NE.ELAST).OR.(IP.NE.IPLAST)) THEN
- ELAST = ECM
- IPLAST = IP
- CALL PHO_XSECT(IP,0,ELAST)
- ISIMAX = IE
- SIGECM(IP,IE) = ECM
- SIGTAB(IP,1,IE) = SIGTOT
- SIGTAB(IP,2,IE) = SIGELA
- J = 2
- DO 5 I=0,4
- DO 6 K=0,4
- J = J+1
- SIGTAB(IP,J,IE) = SIGVM(I,K)
- 6 CONTINUE
- 5 CONTINUE
- SIGTAB(IP,28,IE) = SIGINE
- SIGTAB(IP,29,IE) = SIGDIR
- SIGTAB(IP,30,IE) = SIGLSD(1)
- SIGTAB(IP,31,IE) = SIGLSD(2)
- SIGTAB(IP,32,IE) = SIGHSD(1)
- SIGTAB(IP,33,IE) = SIGHSD(2)
- SIGTAB(IP,34,IE) = SIGLDD
- SIGTAB(IP,35,IE) = SIGHDD
- SIGTAB(IP,36,IE) = SIGCDF(0)
- SIGTAB(IP,37,IE) = SIG1SO
- SIGTAB(IP,38,IE) = SIG1HA
- SIGTAB(IP,39,IE) = SLOEL
- J = 39
- DO 7 I=1,4
- DO 8 K=1,4
- J = J+1
- SIGTAB(IP,J,IE) = SLOVM(I,K)
- 8 CONTINUE
- 7 CONTINUE
- SIGTAB(IP,56,IE) = SIGPOM
- SIGTAB(IP,57,IE) = SIGREG
- SIGTAB(IP,58,IE) = SIGHAR
- SIGTAB(IP,59,IE) = SIGDIR
- SIGTAB(IP,60,IE) = SIGTR1(1)
- SIGTAB(IP,61,IE) = SIGTR1(2)
- SIGTAB(IP,62,IE) = SIGTR2(1)
- SIGTAB(IP,63,IE) = SIGTR2(2)
- SIGTAB(IP,64,IE) = SIGLOO
- SIGTAB(IP,65,IE) = SIGDPO(1)
- SIGTAB(IP,66,IE) = SIGDPO(2)
- SIGTAB(IP,67,IE) = SIGDPO(3)
- SIGTAB(IP,68,IE) = SIGDPO(4)
-
-C consistency check
- SIGNDF = SIGTOT-SIGELA-SIGVM(0,0)-SIGCDF(0)-SIGDIR
- & -SIGLSD(1)-SIGHSD(1)-SIGLSD(2)-SIGHSD(2)
- & -SIGLDD-SIGHDD
-
- IF(SIGNDF.LE.0.D0) THEN
- WRITE(LO,'(//1X,A,/)')
- & 'PHO_PRBDIS:ERROR: neg.cross section for unitarization!'
- WRITE(LO,'(1X,A,I3,1P,2E12.4)')
- & 'PHO_PRBDIS: IP,ECM,SIGNDF:',IP,ECM,SIGNDF
- WRITE(LO,'(4X,A,/1P,8E10.3)')
- &'(SIGTOT,SIGELA,SIGVM,SIGCDF,SIGDIR,SIGLSD(1),SIGLSD(2),SIGLDD):',
- & SIGTOT,SIGELA,SIGVM(0,0),SIGCDF(0),SIGDIR,SIGLSD(1),
- & SIGLSD(2),SIGLDD
- STOP
- ENDIF
-
- IF((IDEB(55).GE.2).AND.(IP.EQ.1)) THEN
- print LO,'------------------------------------------------'
- print LO,'IP,ECM:',IP,ECM
- print LO,'SIGTOT:',SIGTOT
- print LO,'SIGELA:',SIGELA
- print LO,'SIGVM :',SIGVM(0,0)
- print LO,'SIGCDF:',SIGCDF(0)
- print LO,'SIGDIR:',SIGDIR
- print LO,'SIGLSD:',SIGLSD
- print LO,'SIGHSD:',SIGHSD
- print LO,'SIGLDD:',SIGLDD
- print LO,'SIGHDD:',SIGHDD
- print LO,'SIGNDF:',SIGNDF
-
- print LO,'SIGPOM:',SIGPOM
- print LO,'SIGREG:',SIGREG
- print LO,'SIGHAR:',SIGHAR
- print LO,'SIGDIR:',SIGDIR
- print LO,'SIGTR1:',SIGTR1
- print LO,'SIGTR2:',SIGTR2
- print LO,'SIGLOO:',SIGLOO
- print LO,'SIGDPO:',SIGDPO
- print LO,'SIG1SO:',SIG1SO
- print LO,'SIG1HA:',SIG1HA
- ENDIF
-
- SIGTAB(IP,77,IE) = PTCUT(IP)
- SIGTAB(IP,78,IE) = SIGNDF
-
- AUXFAC = PI2/SIGNDF
- IF(ISWMDL(1).EQ.3) THEN
- DO 133 I=1,4
- AMPCOF(I) = 0.D0
- DO 135 K=1,4
- AMPCOF(I) = AMPCOF(I) + 0.25D0*ELAFAC(K)*CHIFAC(K,I)
- 135 CONTINUE
- AMPCOF(I) = AMPCOF(I)*AUXFAC
- 133 CONTINUE
- ENDIF
-C
-* BMAX=5.D0*SQRT(DBLE(BPOM))
- BMAX=10.D0
- EPTAB(IP,IE) = ECM
- CALL PHO_GAUSET(0.D0,BMAX,NGAUSO,XPNT,WGHT)
-C
- ENDIF
-C
- DO 160 K=0,KMAX
- DO 170 I=0,IMAX
- PROB(IP,IE,I,K) = 0.D0
- 170 CONTINUE
- 160 CONTINUE
- DO 120 I=1,ICHMAX
- PCHAIN(1,I) = 0.D0
- PCHAIN(2,I) = 0.D0
- 120 CONTINUE
-C
-C main cross section loop
-C**********************************************************
- DO 5000 IB=1,NGAUSO
- B24=XPNT(IB)**2/4.D0
- FAC = XPNT(IB)*WGHT(IB)
-C
- IF((ISWMDL(1).EQ.3).OR.(ISWMDL(1).EQ.4)) THEN
-C
-C amplitude construction
- DO 525 I=1,4
- AB(1,I)=ZXP(1,I)*EXP(-B24/BXP(1,I))
- & +ZXR(1,I)*EXP(-B24/BXR(1,I))
- AB(2,I)=ZXH(1,I)*EXP(-B24/BXH(1,I))
- AB(3,I)=-ZXT1A(1,I)*EXP(-B24/BXT1A(1,I))
- & -ZXT1B(1,I)*EXP(-B24/BXT1B(1,I))
- & -ZXT2A(1,I)*EXP(-B24/BXT2A(1,I))
- & -ZXT2B(1,I)*EXP(-B24/BXT2B(1,I))
- & -ZXL(1,I)*EXP(-B24/BXL(1,I))
- AB(4,I)=ZXDPE(1,I)*EXP(-B24/BXDPE(1,I))
- & +ZXDPA(1,I)*EXP(-B24/BXDPA(1,I))
- & +ZXDPB(1,I)*EXP(-B24/BXDPB(1,I))
- & +ZXDPD(1,I)*EXP(-B24/BXDPD(1,I))
- AB(1,I) = AB(1,I)+AB(3,I)+AB(4,I)
- AB(2,I) = AB(2,I)
- AB(3,I) = 0.D0
- AB(4,I) = 0.D0
-*
- 525 CONTINUE
-C
- DO 460 I=1,4
- DO 500 K=1,4
- ABSUM2(I,K) = 0.D0
- DO 550 L=1,4
- ABSUM2(I,K) = ABSUM2(I,K) + CHIFAC(L,K)*AB(I,L)
- 550 CONTINUE
- ABSUM2(I,K) = 2.D0*ABSUM2(I,K)
- 500 CONTINUE
- 460 CONTINUE
- DO 600 I=1,4
- CHI2(I) = 0.D0
- DO 650 K=1,4
- CHI2(I) = CHI2(I) + ABSUM2(K,I)
- 650 CONTINUE
- 600 CONTINUE
-C sums instead of products
- DO 660 I=1,4
- DO 670 KD=1,4
- DTMP = ABS(ABSUM2(I,KD))
- IF(DTMP.LT.1.D-30) THEN
- ABSUM2(I,KD) = -50.D0
- ELSE
- ABSUM2(I,KD) = LOG(DTMP)
- ENDIF
- 670 CONTINUE
- 660 CONTINUE
-
- IF(MAX(IMAX,KMAX).GT.30) THEN
- WRITE(LO,'(1X,2A,3I6)') 'PHO_PRBDIS: internal field ',
- & 'dimension too small (IMAX,KMAX,int):',IMAX,KMAX,30
- CALL PHO_ABORT
- ENDIF
-
- DO 700 KD=1,4
- DO 750 I=1,4
- ABSTMP(I) = ABSUM2(I,KD)
- 750 CONTINUE
-C recursive sum
- CHITMP(1) = -ABSUM2(1,KD)
- DO 800 I=0,IMAX
- CHITMP(1) = CHITMP(1)+ABSTMP(1)-FACLOG(I)
- CHITMP(2) = -ABSTMP(2)
- DO 810 K=0,KMAX
- CHITMP(2) = CHITMP(2)+ABSTMP(2)-FACLOG(K)
-C calculation of elastic part
- DTMP = -CHI2(KD)+CHITMP(1)+CHITMP(2)
- IF(DTMP.LT.-30.D0) THEN
- DTMP = 0.D0
- ELSE
- DTMP = EXP(DTMP)*FAC*AMPCOF(KD)
- ENDIF
- PROB(IP,IE,I,K) = PROB(IP,IE,I,K) + DTMP
- 810 CONTINUE
- 800 CONTINUE
- 700 CONTINUE
- PROB(IP,IE,0,0) = 0.D0
-C
-C**********************************************************
- ELSE
- WRITE(LO,'(1X,A,I3)')
- & 'PHO_PRBDIS:ERROR: invalid setting of ISWMDL(1)',ISWMDL(1)
- STOP
- ENDIF
- 5000 CONTINUE
-
-C debug output
- IF(IDEB(55).GE.15) THEN
- WRITE(LO,'(/,1X,A,I3,E11.4)')
- & 'PHO_PRBDIS: list of probabilities (uncorrected,IP,ECM)',
- & IP,ECM
- DO 905 I=0,MIN(IMAX,5)
- DO 915 K=0,MIN(KMAX,5)
- IF(ABS(PROB(IP,IE,I,K)).GT.1.D-10)
- & WRITE(LO,'(10X,2I3,5X,E12.3)') I,K,PROB(IP,IE,I,K)
- 915 CONTINUE
- 905 CONTINUE
- ENDIF
-C string probability (uncorrected)
- IF(IDEB(55).GE.5) THEN
- DO 955 I=0,IMAX
- DO 965 K=0,KMAX
- INDX = 2*I+2*K
- IF((INDX.LE.ICHMAX).AND.(INDX.GT.0)) THEN
- PCHAIN(1,INDX) = PCHAIN(1,INDX) + PROB(IP,IE,I,K)
- ENDIF
- 965 CONTINUE
- 955 CONTINUE
- WRITE(LO,'(/1X,2A,E11.4)') 'PHO_PRBDIS: ',
- & 'list of selected probabilities (uncorr,ECM)',ECM
- WRITE(LO,'(10X,A)') 'I, 0HPOM, 1HPOM, 2HPOM'
- DO 183 I=0,IIMAX
- IF(ABS(PROB(IP,IE,I,0)).GT.1.D-10)
- & WRITE(LO,'(5X,I4,3E12.4)') I,PROB(IP,IE,I,0),
- & PROB(IP,IE,I,1),PROB(IP,IE,I,2)
- 183 CONTINUE
- ENDIF
-C substract high-mass single and double diffraction
- PROB(IP,IE,1,0) = PROB(IP,IE,1,0)
- & -(SIGHSD(1)+SIGHSD(2)+SIGHDD+SIGCDF(0))/SIGNDF
- PROB(IP,IE,1,0) = MAX(0.01,PROB(IP,IE,1,0))
-C
-C probability check
- CHKSUM = 0.D0
- PRONEG = 0.D0
- AVERI = 0.D0
- AVERK = 0.D0
- AVERL = 0.D0
- AVERM = 0.D0
- AVERN = 0.D0
- SIGMI = 0.D0
- SIGMK = 0.D0
- SIGML = 0.D0
- SIGMM = 0.D0
- DO 1001 I=0,IMAX
- PSOFT(I) = 0.D0
- 1001 CONTINUE
- DO 1002 K=0,KMAX
- PHARD(K) = 0.D0
- 1002 CONTINUE
- DO 1000 K=0,KMAX
- DO 1010 I=0,IMAX
- TMP = PROB(IP,IE,I,K)
- IF(TMP.LT.0.D0) THEN
- IF((IDEB(55).GE.0).AND.(TMP.LT.-EPS)) THEN
- WRITE(LO,'(1X,A,4I4,E14.4)')
- & 'PHO_PRBDIS: neg.probability:',
- & IP,IE,I,K,PROB(IP,IE,I,K)
- ENDIF
- PRONEG = PRONEG+TMP
- TMP = 0.D0
- ENDIF
- CHKSUM = CHKSUM+TMP
- AVERI = AVERI+DBLE(I)*TMP
- AVERK = AVERK+DBLE(K)*TMP
- SIGMI = SIGMI+DBLE(I**2)*TMP
- SIGMK = SIGMK+DBLE(K**2)*TMP
- PSOFT(I) = PSOFT(I)+PROB(IP,IE,I,K)
- PHARD(K) = PHARD(K)+PROB(IP,IE,I,K)
- PROB(IP,IE,I,K) = CHKSUM
- 1010 CONTINUE
- 1000 CONTINUE
-C
- IF(IDEB(55).GE.1) WRITE(LO,'(/,1X,A,2E15.6)')
- & 'PHO_PRBDIS: first sum of probabilities',CHKSUM,PRONEG
-C cut probabilites output
- IF(IDEB(55).GE.5) THEN
- WRITE(LO,'(/1X,A)') 'list of cut probabilities (uncorr/corr)'
- DO 185 I=1,ICHMAX
- IF(ABS(PCHAIN(1,I)).GT.1.D-10)
- & WRITE(LO,'(5X,I4,2E12.3)') I,PCHAIN(1,I),PCHAIN(1,I)/CHKSUM
- 185 CONTINUE
- ENDIF
-C rescaling necessary
- IF(ABS(CHKSUM-1.D0).GT.1.D-15) THEN
- FAC = 1.D0/CHKSUM
- IF(IDEB(55).GE.1) WRITE(LO,'(/,1X,A,E15.6)')
- & 'PHO_PRBDIS: rescaling of probabilities with factor',FAC
- DO 40 K=0,KMAX
- DO 50 I=0,IMAX
- PROB(IP,IE,I,K) = PROB(IP,IE,I,K)*FAC
- 50 CONTINUE
- 40 CONTINUE
- AVERI = AVERI*FAC
- AVERK = AVERK*FAC
- AVERL = AVERL*FAC
- AVERM = AVERM*FAC
- SIGMI = SIGMI*FAC**2
- SIGMK = SIGMK*FAC**2
- SIGML = SIGML*FAC**2
- SIGMM = SIGMM*FAC**2
- ENDIF
-C
-C probability to find Reggeon/Pomeron
- PROB(IP,IE,0,0) = -SIGREG/(SIGPOM+SIGREG)
- AVERJ = -PROB(IP,IE,0,0)*AVERI
- AVERII = AVERI-AVERJ
-C
- SIGTAB(IP,74,IE) = AVERII
- SIGTAB(IP,75,IE) = AVERK
- SIGTAB(IP,76,IE) = AVERJ
-C
- SIGTAB(IP,79,IE) = PROB(IP,IE,IMAX,0)*SIGNDF
- SIGTAB(IP,80,IE) = SIGNDF-SIGTAB(IP,79,IE)
-C
- IF(IDEB(55).GE.1) THEN
-
-C average interaction probabilities
- WRITE(LO,'(/1X,A,/1X,A)')
- & 'PHO_PRBDIS: expected interaction statistics',
- & '-------------------------------------------'
- WRITE(LO,'(1X,A,E12.4,2I3)')
- & 'energy,IP,table index:',EPTAB(IP,IE),IP,IE
- WRITE(LO,'(1X,A,2I4)') 'current limitations (soft,hard):',
- & IMAX,KMAX
- WRITE(LO,'(1X,A,E12.4/,4X,A,/,1X,6E11.3)')
- & 'averaged number of cuts per event (eff. cs):',SIGNDF,
- & ' (Pom / Pom-h / Reg / enh-tri-loop / enh-dble / sum):',
- & AVERII,AVERK,AVERJ,AVERL,AVERM,
- & AVERI+AVERK+AVERL+AVERM
- WRITE(LO,'(1X,A,/,4X,A,/,1X,4E11.3)')
- & 'standard deviation ( sqrt(sigma) ):',
- & ' (Pomeron / Pomeron-h / enh-tri-loop / enh-dble):',
- & SQRT(ABS(SIGMI-AVERI**2)),SQRT(ABS(SIGMK-AVERK**2)),
- & SQRT(ABS(SIGML-AVERL**2)),SQRT(ABS(SIGMM-AVERM**2))
- WRITE(LO,'(1X,A)') 'cross section / probability soft, hard'
- DO I=0,MIN(IMAX,KMAX)
- WRITE(LO,'(I5,2E12.4,3X,2E12.4)')
- & I,PSOFT(I)*SIGNDF,PSOFT(I),PHARD(I)*SIGNDF,PHARD(I)
- ENDDO
-
-C cross check of probability distribution and inclusive cross section
- PSsum_1 = 0.D0
- PSsum_2 = 0.D0
- PHsum_1 = 0.D0
- PHsum_2 = 0.D0
- do i=1,IMAX
- PSsum_1 = PSsum_1+PSOFT(i)*FAC
- PSsum_2 = PSsum_2+PSOFT(i)*FAC*dble(i)
- enddo
- do k=1,KMAX
- PHsum_1 = PHsum_1+PHARD(k)
- PHsum_2 = PHsum_2+PHARD(k)*FAC*dble(k)
- enddo
- WRITE(LO,'(1x,a,2E12.4,3X,2E12.4)') 'sum:',
- & PSsum_2*SIGNDF,PSsum_1,PHsum_2*SIGNDF,PHsum_1
-
- ENDIF
-
- END
-
-CDECK ID>, PHO_SAMPRO
- SUBROUTINE PHO_SAMPRO(IP,IFP1,IFP2,ECM,PVIR1,PVIR2,SPROB,IPROC)
-C***********************************************************************
-C
-C routine to sample kind of process
-C
-C input: IP particle combination
-C IFP1/2 PDG number of particle 1/2
-C ECM c.m. energy (GeV)
-C PVIR1/2 virtuality of particle 1/2 (GeV**2, positive)
-C SPROB suppression factor for processes 1-7
-C due to rapidity gap survival probability
-C IPROC mode
-C -2 output of statistics
-C -1 initialization
-C 0 sampling of process
-C
-C output: IPROC kind of interaction process:
-C 1 non-diffractive resolved process
-C 2 elastic scattering
-C 3 quasi-elastic rho/omega/phi production
-C 4 central diffraction
-C 5 single diffraction according to IDIFF1
-C 6 single diffraction according to IDIFF2
-C 7 double diffraction
-C 8 single-resolved / direct processes
-C
-C***********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- INTEGER IP,IFP1,IFP2,IPROC
- DOUBLE PRECISION ECM,PVIR1,PVIR2,SPROB
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C cross sections
- INTEGER IPFIL,IFAFIL,IFBFIL
- DOUBLE PRECISION SIGTOT,SIGELA,SIGVM,SIGINE,SIGNDF,SIGDIR,
- & SIGLSD,SIGHSD,SIGLDD,SIGHDD,SIGCDF,
- & SIGPOM,SIGREG,SIGHAR,SIGTR1,SIGTR2,SIGLOO,
- & SIGDPO,SIG1SO,SIG1HA,SLOEL,SLOVM,SIGCOR,
- & FSUP,FSUD,FSUH,ECMFIL,P2AFIL,P2BFIL
- COMMON /POCSEC/ SIGTOT,SIGELA,SIGVM(0:4,0:4),SIGINE,SIGNDF,SIGDIR,
- & SIGLSD(2),SIGHSD(2),SIGLDD,SIGHDD,SIGCDF(0:4),
- & SIGPOM,SIGREG,SIGHAR,SIGTR1(2),SIGTR2(2),SIGLOO,
- & SIGDPO(4),SIG1SO,SIG1HA,SLOEL,SLOVM(4,4),SIGCOR,
- & FSUP(2),FSUD(2),FSUH(2),ECMFIL,P2AFIL,P2BFIL,
- & IPFIL,IFAFIL,IFBFIL
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-
- DOUBLE PRECISION PRO,XPROB,SIGSDI,CALLS,SIGSUM,ECMSUM
- DIMENSION PRO(8,4),XPROB(8),SIGSDI(2)
- DIMENSION CALLS(4),SIGSUM(4),ECMSUM(4)
-
- INTEGER I,K,KMAX
- DOUBLE PRECISION DT_RNDM
- DOUBLE PRECISION SIGDDI,SIGHD,SIGHR,SIGNDR,XI
-
- IF(IDEB(11).GE.15) WRITE(LO,'(/,1X,A,/5X,I3,2I6,1P4E11.3)')
- & 'PHO_SAMPRO: called with IP,IFP1/2,ECM,PVIR1/2,SPROB',
- & IP,IFP1,IFP2,ECM,PVIR1,PVIR2,SPROB
-
- IF(IPROC.GE.0) THEN
-
-C interpolate cross sections
- CALL PHO_CSINT(IP,IFP1,IFP2,-1,-1,ECM,PVIR1,PVIR2)
-
-C cross check
- IF((IP.EQ.1).and.((SPROB.gt.1.D0).or.(SPROB.lt.0.D0))) THEN
- WRITE(LO,'(/,1X,A,/5X,I12,I3,2I6,1P4E11.3)')
- & 'PHO_SAMPRO: inconsistent gap survival probability',
- & 'EVENT,IP,IFP1/2,ECM,PVIR1/2,SPROB:',
- & KEVENT,IP,IFP1,IFP2,ECM,PVIR1,PVIR2,SPROB
- ENDIF
-
-C calculate cumulative probabilities
- IF(ISWMDL(1).EQ.3) THEN
- IF(ISWMDL(2).GE.1) THEN
- SIGSDI(1) = SIGLSD(1)+SIGHSD(1)
- SIGSDI(2) = SIGLSD(2)+SIGHSD(2)
- SIGDDI = SIGLDD+SIGHDD
- SIGNDR = SIGINE-SIGVM(0,0)-SIGCDF(0)-SIGDIR
- & - SIGSDI(1)-SIGSDI(2)-SIGDDI
- XPROB(1) = SIGNDR*SPROB*DBLE(IPRON(1,IP))
- XPROB(2) = XPROB(1)+SIGELA*SPROB*DBLE(IPRON(2,IP))
- XPROB(3) = XPROB(2)+SIGVM(0,0)*SPROB*DBLE(IPRON(3,IP))
- XPROB(4) = XPROB(3)+SIGCDF(0)*SPROB*DBLE(IPRON(4,IP))
- XPROB(5) = XPROB(4)+SIGSDI(1)*SPROB*DBLE(IPRON(5,IP))
- XPROB(6) = XPROB(5)+SIGSDI(2)*SPROB*DBLE(IPRON(6,IP))
- XPROB(7) = XPROB(6)+SIGDDI*SPROB*DBLE(IPRON(7,IP))
- XPROB(8) = XPROB(7)+SIGDIR*DBLE(IPRON(8,IP))
- ELSE
- SIGHR = 0.D0
- IF(IPRON(1,IP).EQ.1) SIGHR = SIGHAR
- SIGHD = 0.D0
- IF(IPRON(8,IP).EQ.1) SIGHD = SIGDIR
- XPROB(1) = SIGHR/(SIGHR+SIGHD)
- XPROB(2) = XPROB(1)
- XPROB(3) = XPROB(1)
- XPROB(4) = XPROB(1)
- XPROB(5) = XPROB(1)
- XPROB(6) = XPROB(1)
- XPROB(7) = XPROB(1)
- XPROB(8) = XPROB(1)+SIGHD/(SIGHR+SIGHD)
- ENDIF
-
- IF(IDEB(11).GE.15) THEN
- WRITE(LO,'(1X,A,I3)')
- & 'PHO_SAMPRO: partial cross sections for IP',IP
- WRITE(LO,'(5X,I3,2X,1PE12.4)') 1,XPROB(1)
- DO 240 I=2,8
- WRITE(LO,'(5X,I3,2X,1PE12.4)') I,XPROB(I)-XPROB(I-1)
- 240 CONTINUE
- ENDIF
-
- ELSE
- WRITE(LO,'(/,1X,A,I4)') 'PHO_SAMPRO:ERROR: unsupported model',
- & ISWMDL(1)
- CALL PHO_ABORT
- ENDIF
-
- IF(XPROB(8).LT.1.D-20) THEN
- IF(IDEB(11).GE.2)
- & WRITE(LO,'(1X,2A,/10X,A,1P3E11.3)') 'PHO_SAMPRO:ERROR: ',
- & 'activated processes have vanishing cross section sum',
- & 'IP,ECM,SIG_sum:',IP,ECM,XPROB(8)
- IPROC = 0
- RETURN
- ENDIF
-
-C sample process
- XI = DT_RNDM(XI)*XPROB(8)
- DO 100 I=1,8
- IF(XI.LE.XPROB(I)) GOTO 110
- 100 CONTINUE
- 110 CONTINUE
- IPROC = MIN(I,8)
-
- CALLS(IP) = CALLS(IP)+1.D0
- PRO(IPROC,IP) = PRO(IPROC,IP)+1.D0
- ECMSUM(IP) = ECMSUM(IP)+ECM
- IF(ISWMDL(2).GE.1) THEN
- SIGSUM(IP) = SIGSUM(IP)+XPROB(8)
- ELSE
- SIGSUM(IP) = SIGSUM(IP)+SIGGEN(3)
- ENDIF
-
-C debug output
- IF(IDEB(11).GE.5) WRITE(LO,'(1X,A,I3,I12,I4)')
- & 'PHO_SAMPRO: IP,CALL,PROC-ID',
- & IP,INT(CALLS(IP)+0.1D0),IPROC
-
-C statistics initialization
- ELSE IF(IPROC.EQ.-1) THEN
- DO 260 K=1,4
- DO 250 I=1,8
- PRO(I,K) = 0.D0
- 250 CONTINUE
- CALLS(K) = 0.D0
- SIGSUM(K) = 0.D0
- ECMSUM(K) = 0.D0
- 260 CONTINUE
-
-C write out statistics
- ELSE IF(IPROC.EQ.-2) THEN
- KMAX = 4
- IF(ISWMDL(2).EQ.0) KMAX=1
- DO 270 K=1,KMAX
- IF(CALLS(K).GT.0.5D0) THEN
- SIGSUM(K) = SIGSUM(K)/CALLS(K)**2
- ECMSUM(K) = ECMSUM(K)/CALLS(K)
- IF(IDEB(11).GE.0) THEN
-C *** Commented by Chiara
-C WRITE(LO,'(/,1X,2A,I4,1PE12.3,/,1X,A)')
-C & 'PHO_SAMPRO: internal process statistics ',
-C & '(IP,<Ecm>)',K,ECMSUM(K),
-C & '---------------------------------------'
-C WRITE(LO,'(8X,A)')
-C & ' process sampled cross section'
-C IF(ISWMDL(2).GE.1) THEN
-C WRITE(LO,'(9(/5X,A,0PF12.0,5X,1PE12.3))')
-C & ' all processes',CALLS(K),CALLS(K)*SIGSUM(K),
-C & ' nondif.inelastic',PRO(1,K),PRO(1,K)*SIGSUM(K),
-C & ' elastic',PRO(2,K),PRO(2,K)*SIGSUM(K),
-C & 'vmeson production',PRO(3,K),PRO(3,K)*SIGSUM(K),
-C & ' double pomeron',PRO(4,K),PRO(4,K)*SIGSUM(K),
-C & ' single diffr.(1)',PRO(5,K),PRO(5,K)*SIGSUM(K),
-C & ' single diffr.(2)',PRO(6,K),PRO(6,K)*SIGSUM(K),
-C & ' double diffract.',PRO(7,K),PRO(7,K)*SIGSUM(K),
-C & ' direct processes',PRO(8,K),PRO(8,K)*SIGSUM(K)
-C ELSE
-C WRITE(LO,'(3(/5X,A,0PF12.0,5X,1PE12.3))')
-C & ' all processes',CALLS(K),CALLS(K)*SIGSUM(K),
-C & ' double resolved',PRO(1,K),PRO(1,K)*SIGSUM(K),
-C & ' single res + dir',PRO(8,K),PRO(8,K)*SIGSUM(K)
-C ENDIF
- ENDIF
- ENDIF
- 270 CONTINUE
- ENDIF
-
- END
-
-CDECK ID>, PHO_SAMPRB
- SUBROUTINE PHO_SAMPRB(ECMI,IP,ISAM,JSAM,KSAM)
-C********************************************************************
-C
-C routine to sample number of cut graphs of different kind
-C
-C input: IP scattering particle combination
-C ECMI CMS energy
-C IP -1 initialization
-C -2 output of statistics
-C others sampling of cuts
-C
-C output: ISAM number of soft Pomerons cut
-C JSAM number of soft Reggeons cut
-C KSAM number of hard Pomerons cut
-C
-C PHO_PRBDIS has to be called before
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C cut probability distribution
- INTEGER IEETA1,IIMAX,KKMAX
- PARAMETER( IEETA1=20, IIMAX=20, KKMAX=20 )
- INTEGER IEEMAX,IMAX,KMAX
- REAL PROB
- DOUBLE PRECISION EPTAB
- COMMON /POPROB/ PROB(4,IEETA1,0:IIMAX,0:KKMAX),EPTAB(4,IEETA1),
- & IEEMAX,IMAX,KMAX
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C cross sections
- INTEGER IPFIL,IFAFIL,IFBFIL
- DOUBLE PRECISION SIGTOT,SIGELA,SIGVM,SIGINE,SIGNDF,SIGDIR,
- & SIGLSD,SIGHSD,SIGLDD,SIGHDD,SIGCDF,
- & SIGPOM,SIGREG,SIGHAR,SIGTR1,SIGTR2,SIGLOO,
- & SIGDPO,SIG1SO,SIG1HA,SLOEL,SLOVM,SIGCOR,
- & FSUP,FSUD,FSUH,ECMFIL,P2AFIL,P2BFIL
- COMMON /POCSEC/ SIGTOT,SIGELA,SIGVM(0:4,0:4),SIGINE,SIGNDF,SIGDIR,
- & SIGLSD(2),SIGHSD(2),SIGLDD,SIGHDD,SIGCDF(0:4),
- & SIGPOM,SIGREG,SIGHAR,SIGTR1(2),SIGTR2(2),SIGLOO,
- & SIGDPO(4),SIG1SO,SIG1HA,SLOEL,SLOVM(4,4),SIGCOR,
- & FSUP(2),FSUD(2),FSUH(2),ECMFIL,P2AFIL,P2BFIL,
- & IPFIL,IFAFIL,IFBFIL
-C table of particle indices for recursive PHOJET calls
- INTEGER MAXIPX
- PARAMETER ( MAXIPX = 100 )
- INTEGER IPOPOS,IPORES,IPOIX1,IPOIX2,IPOIX3
- COMMON /PORECU/ IPOPOS(2,MAXIPX),IPORES(MAXIPX),
- & IPOIX1,IPOIX2,IPOIX3
-
- DIMENSION ECMS1(4),ECMS2(4),AVERB(0:3,4),AVERC(0:3,4)
-
-C sample number of interactions
- IF(IP.GE.0) THEN
- ITER = 0
- ECMX = ECMI
- ECMC = ECMI
- KLIM = 1
- IF((IPAMDL(13).GT.0).AND.(IPROCE.EQ.1).AND.(IPOIX3.EQ.0)) THEN
- IF(IPAMDL(16).EQ.0) ECMC = SECM
- KLIM = 0
- ENDIF
-
-C sample up to kinematic limits only
- IMAX1 = MIN(IMAX,INT(0.4D0*ECMC/PARMDL(161)))
- IF(IMAX1.LT.1) THEN
- IF(IPAMDL(2).EQ.1) THEN
-C reggeon allowed
- ISAM = 0
- JSAM = 1
- KSAM = 0
- AVERB(3,IP) = AVERB(3,IP)+1.D0
- ELSE
-C only pomeron even at very low energies
- ISAM = 1
- JSAM = 0
- KSAM = 0
- AVERB(1,IP) = AVERB(1,IP)+1.D0
- ENDIF
- AVERB(0,IP) = AVERB(0,IP)+1.D0
- GOTO 150
- ENDIF
-C find interpolation factors
- IF(ECMX.LE.EPTAB(IP,1)) THEN
- I1 = 1
- I2 = 1
- ELSE IF(ECMX.LT.EPTAB(IP,IEEMAX)) THEN
- DO 50 I=2,IEEMAX
- IF(ECMX.LE.EPTAB(IP,I)) GOTO 200
- 50 CONTINUE
- 200 CONTINUE
- I1 = I-1
- I2 = I
- ELSE
- WRITE(LO,'(/1X,A,2E12.3)')
- & 'PHO_SAMPRB:too high energy',ECMX,EPTAB(IP,IEEMAX)
- CALL PHO_PREVNT(-1)
- I1 = IEEMAX
- I2 = IEEMAX
- ENDIF
- FAC2 = 0.D0
- IF(I1.NE.I2)
- & FAC2=LOG(ECMX/EPTAB(IP,I1))/LOG(EPTAB(IP,I2)/EPTAB(IP,I1))
- FAC1=1.D0-FAC2
-C reggeon probability
- PREG = -(PROB(IP,I1,0,0)*FAC1+PROB(IP,I2,0,0)*FAC2)
-C calculate soft suppression factor
- IF(IP.EQ.1) FSUPP = PARMDL(35)**2
- & /((PVIRT(1)+PARMDL(35))*(PVIRT(2)+PARMDL(35)))
-C
- 10 CONTINUE
- ITER = ITER+1
- XI = DT_RNDM(FAC2)
- DO 260 KSAM=0,KMAX
- DO 270 ISAM=0,IMAX
- PRO = PROB(IP,I1,ISAM,KSAM)*FAC1
- & +PROB(IP,I2,ISAM,KSAM)*FAC2
- IF(PRO.GT.XI) GOTO 100
- 270 CONTINUE
- 260 CONTINUE
- ISAM = MIN(IMAX,ISAM)
- KSAM = MIN(KMAX,KSAM)
-
- 100 CONTINUE
-
- IF(ITER.GT.100) THEN
-
- ISAM = 0
- JSAM = 1
- KSAM = 0
- IF(IDEB(12).GE.3) WRITE(LO,'(1X,A,I10,E11.3,I6)')
- & 'PHO_SAMPRB: rejection (EV,ECM,ITER)',KEVENT,ECMX,ITER
-
- ELSE
-
-C reggeon contribution
- JSAM = 0
- IF(IPAMDL(2).EQ.1) THEN
- DO 90 I=1,ISAM
- IF(DT_RNDM(PRO).LT.PREG) JSAM = JSAM+1
- 90 CONTINUE
- ISAM = ISAM-JSAM
- ENDIF
-C statistics of bare cuts
- IF(ITER.EQ.1) THEN
- AVERB(0,IP) = AVERB(0,IP)+1.D0
- AVERB(1,IP) = AVERB(1,IP)+DBLE(ISAM)
- AVERB(2,IP) = AVERB(2,IP)+DBLE(KSAM)
- AVERB(3,IP) = AVERB(3,IP)+DBLE(JSAM)
- ENDIF
-C limitation given by field dimensions
- IF((2*ISAM+JSAM+3*KSAM).GT.50) GOTO 10
-
- IF(IP.EQ.1) THEN
-
-C reweight according to virtualities and PDF treatment
- IF(IPAMDL(115).GE.1) THEN
- IF(KSAM.EQ.0) THEN
- IF(FSUP(1)*FSUP(2).LT.DT_RNDM(ECMI)) GOTO 10
- ENDIF
- ENDIF
-
-C reduce number of cuts according to photon virtualities
- IF(IPAMDL(114).GE.1) THEN
- 110 CONTINUE
- I = ISAM+JSAM
- WGX = FSUPP**I
- IF(DT_RNDM(WGX).GT.WGX) THEN
- IF(ISAM+JSAM+KSAM.GT.1) THEN
- IF(JSAM.GT.0) THEN
- JSAM = JSAM-1
- GOTO 110
- ELSE IF(ISAM.GT.0) THEN
- ISAM = ISAM-1
- GOTO 110
- ENDIF
- ENDIF
- ENDIF
- ENDIF
-
- ENDIF
-
-C phase space limitation
- 120 CONTINUE
- XM = DBLE(2*ISAM+JSAM)*PARMDL(160+IP)
- & +DBLE(2*KSAM)*PTCUT(IP)
- PACC = EXP(PARMDL(9)*(PARMDL(160+IP)-XM)/ECMC)
- IF(DT_RNDM(XM).GT.PACC) THEN
- IF(ISAM+JSAM+KSAM.GT.1) THEN
- IF(JSAM.GT.0) THEN
- JSAM = JSAM-1
- GOTO 120
- ELSE IF(ISAM.GT.0) THEN
- ISAM = ISAM-1
- GOTO 120
- ELSE IF(KSAM.GT.KLIM) THEN
- KSAM = KSAM-1
- GOTO 120
- ENDIF
- ENDIF
- ENDIF
-
- ENDIF
-
- ISAM = ISAM+JSAM/2
- JSAM = MOD(JSAM,2)
-C collect statistics
- 150 CONTINUE
- ECMS1(IP) = ECMS1(IP)+ECMX
- ECMS2(IP) = ECMS2(IP)+ECMC
-
- AVERC(0,IP) = AVERC(0,IP)+1.D0
- AVERC(1,IP) = AVERC(1,IP)+DBLE(ISAM)
- AVERC(2,IP) = AVERC(2,IP)+DBLE(KSAM)
- AVERC(3,IP) = AVERC(3,IP)+DBLE(JSAM)
-C
- IF(IDEB(12).GE.10) WRITE(LO,'(1X,A,2E11.4,3I4)')
- & 'PHO_SAMPRB: ECM,I,J,K',ECM,ECMX,ISAM,JSAM,KSAM
-C
-C initialize statistics
- ELSE IF(IP.EQ.-1) THEN
- DO 60 I=1,4
- ECMS1(I) = 0.D0
- ECMS2(I) = 0.D0
- DO 65 K=0,3
- AVERB(K,I) = 0.D0
- AVERC(K,I) = 0.D0
- 65 CONTINUE
-
- 60 CONTINUE
- RETURN
-C
-C write out statistics
- ELSE IF(IP.EQ.-2) THEN
-C *** Commented by Chiara
-C WRITE(LO,'(2(/1X,A))') 'PHO_SAMPRB: interaction statistics',
-C & '----------------------------------'
- DO 70 I=1,4
- IF(AVERB(0,I).LT.2.D0) GOTO 75
-C WRITE(LO,'(1X,A,I3,1P,2E13.3)')
-C & 'statistics for IP,<Ecm_1>,<Ecm_2>',I,
-C & ECMS1(I)/MAX(AVERB(0,I),1.D0),ECMS2(I)/MAX(AVERB(0,I),1.D0)
-C WRITE(LO,'(5X,A)')
-C & 'average number of s-pom,h-pom,reg cuts (bare)'
-C WRITE(LO,'(5X,F12.0,1P3E12.4)') AVERB(0,I),
-C & (AVERB(K,I)/AVERB(0,I),K=1,3)
-C WRITE(LO,'(5X,A)')
-C & 'average (with energy/virtuality corrections)'
-C WRITE(LO,'(5X,F12.0,1P3E12.4)') AVERC(0,I),
-C & (AVERC(K,I)/AVERC(0,I),K=1,3)
-
- 75 CONTINUE
- 70 CONTINUE
- RETURN
- ENDIF
- END
-
-CDECK ID>, PHO_TRIREG
- SUBROUTINE PHO_TRIREG(S,GA,AA,GB,BB,DELTA,ALPHAP,GPPP,BPPP,VIR2A,
- & SIGTR,BTR)
-C**********************************************************************
-C
-C calculation of triple-Pomeron total cross section
-C according to Gribov's Regge theory
-C
-C input: S squared cms energy
-C GA coupling constant to diffractive line
-C AA slope related to GA (GeV**-2)
-C GB coupling constant to elastic line
-C BB slope related to GB (GeV**-2)
-C DELTA effective pomeron delta (intercept-1)
-C ALPHAP slope of pomeron trajectory (GeV**-2)
-C GPPP triple-Pomeron coupling
-C BPPP slope related to B0PPP (GeV**-2)
-C VIR2A virtuality of particle a (GeV**2)
-C note: units of all coupling constants are mb**1/2
-C
-C output: SIGTR total triple-Pomeron cross section
-C BTR effective triple-Pomeron slope
-C (differs from diffractive slope!)
-C
-C uses E_i (Exponential-Integral function)
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER (EPS =0.0001D0)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
-C integration cut-off Sigma_U ( see Nucl.Phys.B97(1975)493 )
- SIGU = 2.5
-C integration cut-off Sigma_L (min. squared mass of diff. blob)
- SIGL = 5.+VIR2A
-C debug output
- IF(IDEB(50).GE.10) WRITE(LO,'(1X,A,/1X,1P,9E10.3)')
- & 'PHO_TRIREG: S,GA,AA,GB,BB,DELTA,ALPHAP,GPPP,BPPP ',
- & S,GA,AA,GB,BB,DELTA,ALPHAP,GPPP,BPPP
-C
- IF(S.LT.5.D0) THEN
- SIGTR = 0.D0
- BTR = BPPP+BB
- RETURN
- ENDIF
-C change units of ALPHAP to mb
- ALSCA = ALPHAP*GEV2MB
-C
-C cross section
- PART1=GA*GB**2*GPPP/(16.*PI*2.*ALSCA)*S**DELTA*
- & EXP(-(BB+BPPP)/(2.*ALPHAP)*DELTA)
- PART2=PHO_EXPINT(((BB+BPPP)/(2.*ALPHAP)+LOG(S/SIGL))*DELTA)
- PART3=PHO_EXPINT(((BB+BPPP)/(2.*ALPHAP)+LOG(SIGU))*DELTA)
-C
- SIGTR=PART1*(PART2-PART3)
-C
-C slope
- PART1 = (BB+BPPP+2.*ALPHAP*LOG(S/SIGL))/
- & (BB+BPPP+2.*ALPHAP*LOG(SIGU))
- PART2 = LOG(PART1)
- PART1 = 0.5D0*ALPHAP*LOG(1.D0+S/(SIGU*SIGL))/PART2
- BTR = (AA+BB/2.D0)/2.D0+BPPP+ALPHAP*LOG(S/4.D0)
- BTR = BTR-PART1
-C
- IF(SIGTR.LT.EPS) SIGTR = 0.D0
- IF(BTR.LT.BB) BTR = BB
-C
- IF(IDEB(50).GE.7) WRITE(LO,'(1X,A,1P,3E12.3)')
- & 'PHO_TRIREG: ENERGY,SIGTR,BTR ',SQRT(S),SIGTR,BTR
- END
-
-CDECK ID>, PHO_LOOREG
- SUBROUTINE PHO_LOOREG(S,GA,AA,GB,BB,DELTA,ALPHAP,GPPP,BPPP,
- & VIR2A,VIR2B,SIGLO,BLO)
-C**********************************************************************
-C
-C calculation of loop-Pomeron total cross section
-C according to Gribov's Regge theory
-C
-C input: S squared cms energy
-C GA coupling constant to diffractive line
-C AA slope related to GA (GeV**-2)
-C GB coupling constant to elastic line
-C BB slope related to GB (GeV**-2)
-C DELTA effective pomeron delta (intercept-1)
-C ALPHAP slope of pomeron trajectory (GeV**-2)
-C GPPP triple-Pomeron coupling
-C BPPP slope related to B0PPP (GeV**-2)
-C VIR2A virtuality of particle a (GeV**2)
-C VIR2B virtuality of particle b (GeV**2)
-C note: units of all coupling constants are mb**1/2
-C
-C output: SIGLO total loop-Pomeron cross section
-C BLO effective loop-Pomeron slope
-C (differs from double diffractive slope!)
-C
-C uses E_i (Exponential-Integral function)
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER (EPS =0.0001D0)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
-C integration cut-off Sigma_U ( see Nucl.Phys.B97(1975)493 )
- SIGU = 2.5
-C integration cut-off Sigma_L (min. squared mass of diff. blob)
- SIGL = 5.+VIR2A+VIR2B
-C debug output
- IF(IDEB(51).GE.10) WRITE(LO,'(1X,A,/1X,1P,9E10.3)')
- & 'PHO_LOOREG: S,GA,AA,GB,BB,DELTA,ALPHAP,GPPP,BPPP ',
- & S,GA,AA,GB,BB,DELTA,ALPHAP,GPPP,BPPP
-C
- IF(S.LT.5.D0) THEN
- SIGLO = 0.D0
- BLO = 2.D0*BPPP
- RETURN
- ENDIF
-
-C
-C change units of ALPHAP to mb
- ALSCA = ALPHAP*GEV2MB
-C
-C cross section
- PART1=GA*GB*GPPP**2/(16.*PI*2.*ALSCA)*S**DELTA*
- & EXP(-DELTA*BPPP/ALPHAP)
- PARTA=BPPP/ALPHAP+LOG(S/SIGL**2)
- PARTB=BPPP/ALPHAP+LOG(SIGU)
- SIGLO=PART1*(PARTA*(PHO_EXPINT(PARTA*DELTA)
- & -PHO_EXPINT(PARTB*DELTA))
- & +EXP(PARTA*DELTA)/DELTA-EXP(PARTB*DELTA)/DELTA
- & )
-C
-C slope
- PART1 = LOG(ABS(PARTA/PARTB))
- & *(PARTA-LOG(1.D0+S/(SIGL**2*SIGU)))
- PART1 = 0.25*ALPHAP*LOG(1.D0+S/(SIGU*SIGL))**2/PART1
- BLO = (AA+BB)/2.+2.*BPPP+ALPHAP*LOG(S/4.D0)
- BLO = BLO-PART1
-C
- IF(SIGLO.LT.EPS) SIGLO = 0.D0
- IF(BLO.LT.2.D0*BPPP) BLO = 2.D0*BPPP
-C
- IF(IDEB(51).GE.7) WRITE(LO,'(1X,A,1P,3E12.3)')
- & 'PHO_LOOREG: ENERGY,SIGLO,BLO',SQRT(S),SIGLO,BLO
- END
-
-CDECK ID>, PHO_TRXPOM
- SUBROUTINE PHO_TRXPOM(S,GA,AA,GB,BB,DELTA,ALPHAP,
- & GPPP,BPPP,SIGDP,BDP)
-C**********************************************************************
-C
-C calculation of total cross section of two tripe-Pomeron
-C graphs in X configuration according to Gribov's Reggeon field
-C theory
-C
-C input: S squared cms energy
-C GA coupling constant to elastic line 1
-C AA slope related to GA (GeV**-2)
-C GB coupling constant to elastic line 2
-C BB slope related to GB (GeV**-2)
-C DELTA effective pomeron delta (intercept-1)
-C ALPHAP slope of pomeron trajectory (GeV**-2)
-C BPPP triple-Pomeron coupling
-C BTR slope related to B0PPP (GeV**-2)
-C note: units of all coupling constants are mb**1/2
-C
-C output: SIGDP total cross section for double-Pomeron
-C scattering
-C BDP effective double-Pomeron slope
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER (EPS =0.0001D0)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
- DIMENSION XWGH1(96),XPOS1(96)
-
-C lower integration cut-off Sigma_L
- SIGL = PARMDL(71)**2
-C upper integration cut-off Sigma_U
- C = 1.D0-1.D0/PARMDL(70)**2
- C = MAX(PARMDL(72),C)
- SIGU = (1.D0-C)**2*S
-C integration precision
- NGAUS1=16
-C
-C debug output
- IF(IDEB(52).GE.10) WRITE(LO,'(1X,A,/1X,1P,9E10.3)')
- & 'PHO_TRXPOM: S,GA,AA,GB,BB,DELTA,ALPHAP,GPPP,BPPP',
- & S,GA,AA,GB,BB,DELTA,ALPHAP,GPPP,BPPP
-C
- IF(SIGU.LE.SIGL) THEN
- SIGDP = 0.D0
- BDP = AA+BB
- RETURN
- ENDIF
-C
-C cross section
-C
- XIL = LOG(SIGL)
- XIU = LOG(SIGU)
- XI = LOG(S)
- FAC = (GPPP*GA*GB)**2/(256.D0*PI2)/ALPHAP/GEV2MB**2
- ALPHA2 = 2.D0*ALPHAP
- ALOC = LOG(1.D0/(1.D0-C))
- CALL PHO_GAUSET(XIL,XIU,NGAUS1,XPOS1,XWGH1)
- XSUM = 0.D0
- DO 100 I1=1,NGAUS1
- AMXSQ = EXP(XPOS1(I1))
- ALOSMX = LOG(S/AMXSQ)
- ALCSMX = LOG((1.D0-C)*S/AMXSQ)
- W = LOG((AA+BPPP+ALPHA2*ALCSMX)/(BB+BPPP+ALPHA2*ALOC))
- W = MAX(0.D0,W)
- WN=(AA+BB+2.D0*BPPP+ALPHA2*ALOSMX)
-C supercritical part
- WSC = AMXSQ**DELTA*(S/AMXSQ)**(2.D0*DELTA)
- XSUM = XSUM + W*XWGH1(I1)/WN*WSC
- 100 CONTINUE
- SIGDP = XSUM*FAC
-C
-C slope
- BDP = 0.5*(AA+BB+BPPP+ALPHAP*XI)
-C
- IF(IDEB(52).GE.7) WRITE(LO,'(1X,A,1P,3E12.3)')
- & 'PHO_TRXPOM: ENERGY,SIGDP,BDP',SQRT(S),SIGDP,BDP
- END
-
-CDECK ID>, PHO_CHAN2A
- SUBROUTINE PHO_CHAN2A(BB)
-C***********************************************************************
-C
-C simple two channel model to realize low mass diffraction
-C (version A, iteration of triple- and loop-Pomeron)
-C
-C input: BB impact parameter (mb**1/2)
-C
-C output: /POINT4/
-C AMPEL elastic amplitude
-C AMPVM(4,4) q-elastic VM production
-C AMLMSD(2) low mass single diffraction amplitude
-C AMHMSD(2) high mass single diffraction amplitude
-C AMLMDD low mass double diffraction amplitude
-C AMHMDD high mass double diffraction amplitude
-C AMPDP(4) central diffraction amplitude
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER (DEPS = 1.D-5,
- & EIGHT = 8.D0)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C complex Born graph amplitudes used for unitarization
- COMPLEX*16 AMPEL,AMPVM,AMPSOF,AMPHAR,AMLMSD,AMHMSD,AMLMDD,
- & AMHMDD,AMPDP
- COMMON /POINT4/ AMPEL,AMPVM(4,4),AMPSOF,AMPHAR,AMLMSD(2),
- & AMHMSD(2),AMLMDD,AMHMDD,AMPDP(4)
-C unitarized amplitudes for different diffraction channels
- DOUBLE PRECISION ZXP,BXP,ZXR,BXR,ZXH,BXH,ZXD,BXD,
- & ZXT1A,BXT1A,ZXT1B,BXT1B,ZXT2A,BXT2A,ZXT2B,BXT2B,
- & ZXDPE,BXDPE,ZXDPA,BXDPA,ZXDPB,BXDPB,ZXDPD,BXDPD,
- & ZXL,BXL
- COMMON /POINT5/ ZXP(4,4),BXP(4,4),ZXR(4,4),BXR(4,4),
- & ZXH(4,4),BXH(4,4),ZXD(4,4),BXD(4,4),
- & ZXT1A(4,4),BXT1A(4,4),ZXT1B(4,4),BXT1B(4,4),
- & ZXT2A(4,4),BXT2A(4,4),ZXT2B(4,4),BXT2B(4,4),
- & ZXDPE(4,4),BXDPE(4,4),ZXDPA(4,4),BXDPA(4,4),
- & ZXDPB(4,4),BXDPB(4,4),ZXDPD(4,4),BXDPD(4,4),
- & ZXL(4,4),BXL(4,4)
-C Reggeon phenomenology parameters
- DOUBLE PRECISION ALPOM,ALPOMP,GP,B0POM,ALREG,ALREGP,GR,B0REG,
- & GPPP,GPPR,B0PPP,B0PPR,VDMFAC,VDMQ2F,B0HAR,AKFAC
- COMMON /POPREG/ ALPOM,ALPOMP,GP(2),B0POM(2),
- & ALREG,ALREGP,GR(2),B0REG(2),
- & GPPP,GPPR,B0PPP,B0PPR,
- & VDMFAC(4),VDMQ2F(4),B0HAR,AKFAC
-C parameters of 2x2 channel model
- DOUBLE PRECISION PHISUP,RMASS,VAR,AMPFAC,ELAFAC,VFAC
- COMMON /PO2CHA/ PHISUP(2),RMASS(2),VAR,AMPFAC(4),ELAFAC(4),VFAC
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-
-C local variables
- DIMENSION AB(9,4),CHI(4),CHDS(4),CHDH(4),CHDA(4),CHDB(4),
- & CHDD(4),CHDPE(4),CHDPA(4),CHDPB(4),CHDPD(4),
- & AMPCHA(4),EX1CHI(4),EX2CHI(4),ABSUM(4),AMPELA(4,0:9)
- DIMENSION CHIFAC(4,4),EXPFAC(4,4),IELTAB(4,4)
-
-C combinatorical factors
- DATA CHIFAC / 1.D0, 1.D0,-1.D0,-1.D0,
- & 1.D0,-1.D0, 1.D0,-1.D0,
- & 1.D0,-1.D0,-1.D0, 1.D0,
- & 1.D0, 1.D0, 1.D0, 1.D0 /
- DATA EXPFAC / 1.D0, 1.D0, 1.D0, 1.D0,
- & 1.D0,-1.D0,-1.D0, 1.D0,
- & -1.D0, 1.D0,-1.D0, 1.D0,
- & -1.D0,-1.D0, 1.D0, 1.D0 /
- DATA IELTAB / 1, 2, 3, 4,
- & 2, 1, 4, 3,
- & 3, 4, 1, 2,
- & 4, 3, 2, 1 /
-
- IF(IDEB(86).GE.20) WRITE(LO,'(1X,A,E12.3)')
- & 'PHO_CHAN2A: impact parameter B',BB
-
- B24 = BB**2/4.D0
- DO 25 I=1,4
- AB(1,I) = ZXP(1,I)*EXP(-B24/BXP(1,I))
- & +ZXR(1,I)*EXP(-B24/BXR(1,I))
- AB(2,I) = ZXH(1,I)*EXP(-B24/BXH(1,I))
- AB(3,I) =-ZXT1A(1,I)*EXP(-B24/BXT1A(1,I))
- AB(4,I) =-ZXT2A(1,I)*EXP(-B24/BXT2A(1,I))
- AB(5,I) =-ZXL(1,I)*EXP(-B24/BXL(1,I))
- & -ZXT1B(1,I)*EXP(-B24/BXT1B(1,I))
- & -ZXT2B(1,I)*EXP(-B24/BXT2B(1,I))
- AB(6,I) = ZXDPE(1,I)*EXP(-B24/BXDPE(1,I))
- AB(7,I) = ZXDPA(1,I)*EXP(-B24/BXDPA(1,I))
- AB(8,I) = ZXDPB(1,I)*EXP(-B24/BXDPB(1,I))
- AB(9,I) = ZXDPD(1,I)*EXP(-B24/BXDPD(1,I))
- 25 CONTINUE
-
- DO 50 I=1,4
- ABSUM(I) = 0.D0
- DO 75 II=9,1,-1
- ABSUM(I) = ABSUM(I) + AB(II,I)
- 75 CONTINUE
- 50 CONTINUE
- IF(IDEB(86).GE.20) WRITE(LO,'(1X,A,4E12.3)')
- & 'PHO_CHAN2A: ABSUM',ABSUM
-
- DO 100 I=1,4
- CHI(I) = 0.D0
- CHDS(I) = 0.D0
- CHDH(I) = 0.D0
- CHDA(I) = 0.D0
- CHDB(I) = 0.D0
- CHDD(I) = 0.D0
- CHDPE(I) = 0.D0
- CHDPA(I) = 0.D0
- CHDPB(I) = 0.D0
- CHDPD(I) = 0.D0
- AMPELA(I,0) = 0.D0
- AMPELA(I,9) = 0.D0
- DO 200 K=1,4
- AMPELA(I,K) = 0.D0
- AMPELA(I,K+4) = 0.D0
- AMPVM(I,K) = 0.D0
- CHI(I) = CHI(I) + CHIFAC(K,I)*ABSUM(K)
- CHDS(I) = CHDS(I) + CHIFAC(K,I)*AB(1,K)
- CHDH(I) = CHDH(I) + CHIFAC(K,I)*AB(2,K)
- CHDA(I) = CHDA(I) + CHIFAC(K,I)*AB(3,K)
- CHDB(I) = CHDB(I) + CHIFAC(K,I)*AB(4,K)
- CHDD(I) = CHDD(I) + CHIFAC(K,I)*AB(5,K)
- CHDPE(I) = CHDPE(I) + CHIFAC(K,I)*AB(6,K)
- CHDPA(I) = CHDPA(I) + CHIFAC(K,I)*AB(7,K)
- CHDPB(I) = CHDPB(I) + CHIFAC(K,I)*AB(8,K)
- CHDPD(I) = CHDPD(I) + CHIFAC(K,I)*AB(9,K)
- 200 CONTINUE
- IF(CHI(I).LT.-DEPS) THEN
- IF(IDEB(86).GE.0) THEN
- WRITE(LO,'(1X,A,I3,2E12.3)')
- & 'PHO_CHAN2A: neg.eigenvalue (I,B,CHI)',I,BB,CHI(I)
- WRITE(LO,'(5X,A,5E12.3)') 'E,CHIs:',ECM,(ABSUM(K),K=1,4)
- ENDIF
- ENDIF
- IF(ABS(CHI(I)).GT.200.D0) THEN
- EX1CHI(I) = 0.D0
- EX2CHI(I) = 0.D0
- ELSE
- TMP = EXP(-CHI(I))
- EX1CHI(I) = TMP
- EX2CHI(I) = TMP*TMP
- ENDIF
- 100 CONTINUE
- IF(IDEB(86).GE.20) THEN
- WRITE(LO,'(1X,A,4E12.3)') 'PHO_CHAN2A: EX1CHI',EX1CHI
- ENDIF
-
- AMPELA(1,0) = 4.D0
- DO 300 K=1,4
- DO 400 J=1,4
- CFAC = 2.D0*EXPFAC(J,K)*EX2CHI(J)
- AMPELA(K,0) = AMPELA(K,0) - EXPFAC(J,K)*EX1CHI(J)
- AMPELA(K,1) = AMPELA(K,1) + CFAC*CHDS(J)
- AMPELA(K,2) = AMPELA(K,2) + CFAC*CHDH(J)
- AMPELA(K,3) = AMPELA(K,3) - CFAC*CHDA(J)
- AMPELA(K,4) = AMPELA(K,4) - CFAC*CHDB(J)
- AMPELA(K,5) = AMPELA(K,5) - CFAC*CHDD(J)
- AMPELA(K,6) = AMPELA(K,6) + CFAC*CHDPE(J)
- AMPELA(K,7) = AMPELA(K,7) + CFAC*CHDPA(J)
- AMPELA(K,8) = AMPELA(K,8) + CFAC*CHDPB(J)
- AMPELA(K,9) = AMPELA(K,9) + CFAC*CHDPD(J)
- 400 CONTINUE
- 300 CONTINUE
-
- IF(IDEB(86).GE.25) THEN
- DO 305 I=1,9
- WRITE(LO,'(1X,A,I3,4E10.3)') 'PHO_CHAN2A: AMPELA(1-4,I)',I,
- & (AMPELA(K,1),K=1,4)
- 305 CONTINUE
- ENDIF
-
-C VDM factors --> amplitudes
-C low mass excitations
- DO 500 I=1,4
- AMPCHA(I) = 0.D0
- DO 600 K=1,4
- AMPCHA(I) = AMPCHA(I) + AMPFAC(K)*AMPELA(IELTAB(K,I),0)
- 600 CONTINUE
- 500 CONTINUE
- AMPVME = AMPCHA(1)/EIGHT
- AMLMSD(1) = AMPCHA(2)/EIGHT
- AMLMSD(2) = AMPCHA(3)/EIGHT
- AMLMDD = AMPCHA(4)/EIGHT
-C elastic part, high mass diffraction
- AMPEL = 0.5D0*ZXD(1,1)*EXP(-B24/BXD(1,1))
- AMPSOF = 0.D0
- AMPHAR = 0.D0
- AMHMSD(1) = 0.D0
- AMHMSD(2) = 0.D0
- AMHMDD = 0.D0
- AMPDP(1) = 0.D0
- AMPDP(2) = 0.D0
- AMPDP(3) = 0.D0
- AMPDP(4) = 0.D0
- DO 450 I=1,4
- AMPEL = AMPEL + ELAFAC(I)*AMPELA(I,0)/8.D0
- AMPSOF = AMPSOF + ELAFAC(I)*AMPELA(I,1)
- AMPHAR = AMPHAR + ELAFAC(I)*AMPELA(I,2)
- AMHMSD(1) = AMHMSD(1) + ELAFAC(I)*AMPELA(I,3)
- AMHMSD(2) = AMHMSD(2) + ELAFAC(I)*AMPELA(I,4)
- AMHMDD = AMHMDD + ELAFAC(I)*AMPELA(I,5)
- AMPDP(1) = AMPDP(1) + ELAFAC(I)*AMPELA(I,6)
- AMPDP(2) = AMPDP(2) + ELAFAC(I)*AMPELA(I,7)
- AMPDP(3) = AMPDP(3) + ELAFAC(I)*AMPELA(I,8)
- AMPDP(4) = AMPDP(4) + ELAFAC(I)*AMPELA(I,9)
- 450 CONTINUE
- AMPSOF = AMPSOF/16.D0
- AMPHAR = AMPHAR/16.D0
- AMHMSD(1) = AMHMSD(1)/16.D0
- AMHMSD(2) = AMHMSD(2)/16.D0
- AMHMDD = AMHMDD/16.D0
- AMPDP(1) = AMPDP(1)/16.D0
- AMPDP(2) = AMPDP(2)/16.D0
- AMPDP(3) = AMPDP(3)/16.D0
- AMPDP(4) = AMPDP(4)/16.D0
- IF(DREAL(AMHMSD(1)).LE.0.D0) AMHMSD(1) = 0.D0
- IF(DREAL(AMHMSD(2)).LE.0.D0) AMHMSD(2) = 0.D0
- IF(DREAL(AMHMDD).LE.0.D0) AMHMDD = 0.D0
- IF(DREAL(AMPDP(1)).LE.0.D0) AMPDP(1) = 0.D0
- IF(DREAL(AMPDP(2)).LE.0.D0) AMPDP(2) = 0.D0
- IF(DREAL(AMPDP(3)).LE.0.D0) AMPDP(3) = 0.D0
- IF(DREAL(AMPDP(4)).LE.0.D0) AMPDP(4) = 0.D0
-
-C vector-meson production, weight factors
- IF((IFPAP(1).EQ.22).OR.(IFPAP(2).EQ.22)) THEN
- IF(IFPAP(1).EQ.22) THEN
- IF(IFPAP(2).EQ.22) THEN
- DO 10 I=1,4
- DO 15 J=1,4
- AMPVM(I,J) = PARMDL(9+I)*PARMDL(9+J)*AMPVME
- 15 CONTINUE
- 10 CONTINUE
- ELSE
- AMPVM(1,1) = PARMDL(10)*AMPVME
- AMPVM(2,1) = PARMDL(11)*AMPVME
- AMPVM(3,1) = PARMDL(12)*AMPVME
- AMPVM(4,1) = PARMDL(13)*AMPVME
- ENDIF
- ELSE IF(IFPAP(2).EQ.22) THEN
- AMPVM(1,1) = PARMDL(10)*AMPVME
- AMPVM(1,2) = PARMDL(11)*AMPVME
- AMPVM(1,3) = PARMDL(12)*AMPVME
- AMPVM(1,4) = PARMDL(13)*AMPVME
- ENDIF
- ENDIF
-C debug output
- IF(IDEB(86).GE.5) THEN
- WRITE(LO,'(/,1X,A)')
- & 'PHO_CHAN2A: impact parameter amplitudes'
- WRITE(LO,'(1X,A,1P,2E12.3)') ' AMPEL',AMPEL
- WRITE(LO,'(1X,A,1P,8E10.3)') 'AMPVM(1,1-4)',(AMPVM(1,K),K=1,4)
- WRITE(LO,'(1X,A,1P,8E10.3)') 'AMPVM(2,1-4)',(AMPVM(2,K),K=1,4)
- WRITE(LO,'(1X,A,1P,8E10.3)') 'AMPVM(3,1-4)',(AMPVM(3,K),K=1,4)
- WRITE(LO,'(1X,A,1P,8E10.3)') 'AMPVM(4,1-4)',(AMPVM(4,K),K=1,4)
- WRITE(LO,'(1X,A,1P,4E12.3)') ' AMPSOF/HAR',AMPSOF,AMPHAR
- WRITE(LO,'(1X,A,1P,4E12.3)') ' AMLMSD',AMLMSD
- WRITE(LO,'(1X,A,1P,4E12.3)') ' AMHMSD',AMHMSD
- WRITE(LO,'(1X,A,1P,2E12.3)') ' AMLMDD',AMLMDD
- WRITE(LO,'(1X,A,1P,2E12.3)') ' AMHMDD',AMHMDD
- WRITE(LO,'(1X,A,1P,8E10.3)') ' AMPDP(1-4)',AMPDP
- ENDIF
-
- END
-
-CDECK ID>, PHO_EVENT
- SUBROUTINE PHO_EVENT(NEV,P1,P2,FAC,IREJ)
-C********************************************************************
-C
-C main subroutine to manage simulation processes
-C
-C input: NEV -1 initialization
-C 1 generation of events
-C 2 generation of events without rejection
-C due to energy dependent cross section
-C 3 generation of events without rejection
-C using initialization energy
-C -2 output of event generation statistics
-C P1(4) momentum of particle 1 (internal TARGET)
-C P2(4) momentum of particle 2 (internal PROJECTILE)
-C FAC used for initialization:
-C contains cross section the events corresponds to
-C during generation: current cross section
-C
-C output: IREJ 0: event accepted
-C 1: event rejected
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( TINY = 1.D-10 )
-
- DIMENSION P1(4),P2(4)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C gamma-lepton or gamma-hadron vertex information
- INTEGER IGHEL,IDPSRC,IDBSRC
- DOUBLE PRECISION PINI,PFIN,PGAM,GYY,GQ2,GGECM,GAIMP,PFTHE,PFPHI,
- & RADSRC,AMSRC,GAMSRC
- COMMON /POFSRC/ PINI(5,2),PFIN(5,2),PGAM(5,2),IGHEL(2),
- & GYY(2),GQ2(2),GGECM,GAIMP(2),PFTHE(2),PFPHI(2),
- & IDPSRC(2),IDBSRC(2),RADSRC(2),AMSRC(2),GAMSRC(2)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C cross sections
- INTEGER IPFIL,IFAFIL,IFBFIL
- DOUBLE PRECISION SIGTOT,SIGELA,SIGVM,SIGINE,SIGNDF,SIGDIR,
- & SIGLSD,SIGHSD,SIGLDD,SIGHDD,SIGCDF,
- & SIGPOM,SIGREG,SIGHAR,SIGTR1,SIGTR2,SIGLOO,
- & SIGDPO,SIG1SO,SIG1HA,SLOEL,SLOVM,SIGCOR,
- & FSUP,FSUD,FSUH,ECMFIL,P2AFIL,P2BFIL
- COMMON /POCSEC/ SIGTOT,SIGELA,SIGVM(0:4,0:4),SIGINE,SIGNDF,SIGDIR,
- & SIGLSD(2),SIGHSD(2),SIGLDD,SIGHDD,SIGCDF(0:4),
- & SIGPOM,SIGREG,SIGHAR,SIGTR1(2),SIGTR2(2),SIGLOO,
- & SIGDPO(4),SIG1SO,SIG1HA,SLOEL,SLOVM(4,4),SIGCOR,
- & FSUP(2),FSUD(2),FSUH(2),ECMFIL,P2AFIL,P2BFIL,
- & IPFIL,IFAFIL,IFBFIL
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-C names of hard scattering processes
- INTEGER Max_pro_1
- PARAMETER ( Max_pro_1 = 16 )
- CHARACTER*18 PROC
- COMMON /POHPRO/ PROC(0:Max_pro_1)
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-C table of particle indices for recursive PHOJET calls
- INTEGER MAXIPX
- PARAMETER ( MAXIPX = 100 )
- INTEGER IPOPOS,IPORES,IPOIX1,IPOIX2,IPOIX3
- COMMON /PORECU/ IPOPOS(2,MAXIPX),IPORES(MAXIPX),
- & IPOIX1,IPOIX2,IPOIX3
-
- DIMENSION IPRSAM(10),IPRACC(10),IENACC(10),IDNS(4),IDNA(4)
-
- IREJ = 0
-
-C initializations
- IF(NEV.EQ.-1) THEN
- WRITE(LO,'(/3(/1X,A))')
- & '=======================================================',
- & ' ------- initialization of event generation --------',
- & '======================================================='
- CALL PHO_SETMDL(0,0,-2)
-C amplitude parameters
- CALL PHO_FITPAR(1)
-
- CALL PHO_REJSTA(-1)
-C initialize MC package
- CALL PHO_EVEINI(1,P1,P2,JM1,JM2)
- CALL PHO_MCINI
- CALL PHO_SAMPRO(1,IFPAP(1),IFPAP(2),ECM,PVIRT(1),PVIRT(2),
- & 0.D0,-1)
- CALL PHO_PARTON(-1,0,0,P1,P2,IREJ)
-
-C cross section
- FAC = SIGGEN(4)
- DO 20 I=1,10
- IPRSAM(I) = 0
- IPRACC(I) = 0
- IENACC(I) = 0
- 20 CONTINUE
- ISPS = 0
- ISPA = 0
- ISRS = 0
- ISRA = 0
- IHPS = 0
- IHPA = 0
- ISTS = 0
- ISTA = 0
- ISLS = 0
- ISLA = 0
- IDIS = 0
- IDIA = 0
- IDPS = 0
- IDPA = 0
- IDNS(1) = 0
- IDNS(2) = 0
- IDNS(3) = 0
- IDNS(4) = 0
- IDNA(1) = 0
- IDNA(2) = 0
- IDNA(3) = 0
- IDNA(4) = 0
- KACCEP = 0
- KEVENT = 0
- KEVGEN = 0
- ECMSUM = 0.D0
- ELSE IF(NEV.GT.0) THEN
-C
-C -------------- begin event generation ---------------
-C
- IPAMDL(13) = 0
- IF(NEV.EQ.3) IPAMDL(13) = 1
- KEVENT = KEVENT+1
-C enable debugging
- CALL PHO_TRACE(0,0,0)
- IF(IDEB(68).GE.2) THEN
- IF((MOD(KEVENT,50).EQ.0).OR.(IDEB(68).GE.3))
- & WRITE(LO,'(1X,A,2I12)') 'call to PHO_EVENT no',KEVENT,KACCEP
- ENDIF
- CALL PHO_EVEINI(0,P1,P2,JM1,JM2)
-C cross section calculation
- FAC = SIGGEN(3)
- IF(NEV.EQ.1) THEN
- IF(IVWGHT(1).EQ.1) THEN
- WG = EVWGHT(1)*SIGGEN(3)/SIGGEN(4)
- ELSE
- WG = SIGGEN(3)/SIGGEN(4)
- ENDIF
- IF(DT_RNDM(FAC).GT.WG) THEN
- IREJ = 1
- IF(IDEB(68).GE.6) THEN
- WRITE(LO,'(1X,2A,/5X,2I10,6X,1P3E10.3)')
- & 'PHO_EVENT: rejection due to cross section',
- & ' (CALL/ACC/EVWGHT(1)/SIG/SIGMAX)',
- & KEVENT,KACCEP,EVWGHT(1),SIGGEN(3),SIGGEN(4)
- CALL PHO_PREVNT(-1)
- ENDIF
- RETURN
- ENDIF
- ENDIF
- KEVGEN = KEVGEN+1
- SIGGEN(1) = SIGGEN(4)*DBLE(KEVGEN)/DBLE(KEVENT)
- HSWGHT(0) = MAX(1.D0,WG)
-
- ITRY1 = 0
- 50 CONTINUE
- ITRY1 = ITRY1+1
- IF(ITRY1.GT.1) CALL PHO_EVEINI(2,P1,P2,JM1,JM2)
-
-C sample process
- IPROCE = 0
- CALL PHO_SAMPRO(1,IFPAP(1),IFPAP(2),ECM,PVIRT(1),PVIRT(2),
- & 1.D0,IPROCE)
- IF(IPROCE.EQ.0) THEN
- IF(IDEB(68).GE.4) WRITE(LO,'(1X,A)') 'PHO_EVENT: ',
- & 'rejection by PHO_SAMPRO (call,Ecm)',KEVENT,ECM
- IREJ = 50
- RETURN
- ENDIF
-C sampling statistics
- IPRSAM(IPROCE) = IPRSAM(IPROCE)+1
-
- ITRY2 = 0
- 60 CONTINUE
- ITRY2 = ITRY2+1
- IF(ITRY2.GT.1) CALL PHO_EVEINI(2,P1,P2,JM1,JM2)
-C sample number of cut graphs according to IPROCE and
-C generate parton configurations+strings
- CALL PHO_PARTON(IPROCE,JM1,JM2,P1,P2,IREJ)
-C collect statistics
- ISPS = ISPS+KSPOM
- IHPS = IHPS+KHPOM
- ISRS = ISRS+KSREG
- ISTS = ISTS+KSTRG+KHTRG
- ISLS = ISLS+KSLOO+KHLOO
- IDIS = IDIS+MIN(KHDIR,1)
- IDPS = IDPS+KHDPO+KSDPO
- IF((IDIFR1+IDIFR2+IDDPOM.EQ.0).AND.(KHDIR.GT.0))
- & IDNS(KHDIR) = IDNS(KHDIR)+1
-C rejection?
- IF(IREJ.NE.0) THEN
- IF(IDEB(68).GE.4) THEN
- WRITE(LO,'(/1X,A,2I5)')
- & 'PHO_EVENT: rejection by PHO_PARTON',ITRY2,IREJ
- CALL PHO_PREVNT(-1)
- ENDIF
- IF((IREJ.EQ.50).AND.(NEV.EQ.1)) THEN
- RETURN
- ENDIF
- IFAIL(1) = IFAIL(1)+1
- IF(ITRY1.GT.5) RETURN
- IF(IREJ.GE.5) THEN
- IF(ISWMDL(2).EQ.0) RETURN
- GOTO 50
- ENDIF
- IF(ITRY2.LT.5) GOTO 60
- GOTO 50
- ENDIF
-C fragmentation of strings
-
-C FSR and string fragmentation is done separately by DPMJET routines
-C CALL PHO_STRFRA(IREJ)
-
-C rejection?
- IF(IREJ.NE.0) THEN
- IFAIL(23) = IFAIL(23)+1
- IF(IDEB(68).GE.4) THEN
- WRITE(LO,'(/1X,A,2I5)')
- & 'PHO_EVENT: rejection by PHO_STRFRA',ITRY2,IREJ
- CALL PHO_PREVNT(-1)
- ENDIF
- GOTO 50
- ENDIF
-C check of conservation of quantum numbers
- IF(IDEB(68).GE.-5) THEN
- CALL PHO_CHECK(-1,IREJ)
- IF(IREJ.NE.0) GOTO 50
- ENDIF
-C event now completely processed and accepted
-C acceptance statistics
- IPRACC(IPROCE) = IPRACC(IPROCE)+1
- ISPA = ISPA+KSPOM
- IHPA = IHPA+KHPOM
- ISRA = ISRA+KSREG
- ISTA = ISTA+(KSTRG+KHTRG)
- ISLA = ISLA+(KSLOO+KHLOO)
- IDIA = IDIA+MIN(KHDIR,1)
- IDPA = IDPA+KHDPO+KSDPO
- IF((IDIFR1+IDIFR2.EQ.0).AND.(KHDIR.GT.0))
- & IDNA(KHDIR) = IDNA(KHDIR)+1
- DO 55 I=1,IPOIX2
- IENACC(IPORES(I)) = IENACC(IPORES(I))+1
- 55 CONTINUE
- KACCEP = KACCEP+1
-
-C debug output (partial / full event listing)
- if((IDEB(68).eq.1).and.(MOD(KACCEP,50).EQ.0))
- & WRITE(LO,'(1X,A,2I12)') 'call to PHO_EVENT no',KEVENT,KACCEP
- IF(IDEB(67).GE.10) THEN
- IF(IDEB(67).LE.15) THEN
- CALL PHO_PREVNT(-1)
- ELSE IF(IDEB(67).LE.20) THEN
- CALL PHO_PREVNT(0)
- ELSE IF(IDEB(67).LE.25) THEN
- CALL PHO_PREVNT(1)
- ELSE
- CALL PHO_PREVNT(2)
- ENDIF
- ENDIF
-C
-C effective weight
- DO 65 I=1,10
- IF(IPOWGC(I).GT.0) THEN
- HSWGHT(0) = HSWGHT(0)*HSWGHT(I)
- ENDIF
- 65 CONTINUE
- IF(IVWGHT(1).EQ.1) THEN
- WG = HSWGHT(0)
- IF(WG.GT.1.01D0) THEN
- IF(EVWGHT(1).LT.1.01D0) THEN
- WRITE(LO,'(1X,A,2I12,1PE12.3)')
- & 'PHO_EVENT: cross section weight > 1',
- & KEVENT,KACCEP,WG
- WRITE(LO,'(5X,A,1P3E11.3)') 'SIGCUR,SIGMAX,EVWGHT(1):',
- & SIGGEN(3),SIGGEN(4),EVWGHT(1)
- ENDIF
- EVWGHT(1) = HSWGHT(0)
- HSWGHT(0) = 1.D0
- ELSE
- EVWGHT(1) = 1.D0
- ENDIF
- ENDIF
-
-C effective cross section
- SIGGEN(2) = SIGGEN(4)*DBLE(KACCEP)/DBLE(KEVENT)
- ECMSUM = ECMSUM+ECM
- SIGGEN(3) = SIGGEN(3)*HSWGHT(0)
- ELSE IF(NEV.EQ.-2) THEN
-
-C ---------------- end of event generation ----------------------
-
-* --- Commented by Chiara
-* WRITE(LO,'(/3(/1X,A),//1X,A,3I12,/1X,A,F12.1)')
-* & '====================================================',
-* & ' --------- summary of event generation ----------',
-* & '====================================================',
-* & 'called,generated,accepted events:',KEVENT,KEVGEN,KACCEP,
-* & 'average CMS energy:',ECMSUM/DBLE(MAX(1,KACCEP))
-
-C write out statistics
- IF(KACCEP.GT.0) THEN
-
- FAC1 = SIGGEN(4)/DBLE(KEVENT)
- FAC2 = FAC/DBLE(KACCEP)
-* WRITE(LO,'(/1X,A,/1X,A)')
-* & 'PHO_EVENT: generated and accepted events',
-* & '----------------------------------------'
-* WRITE(LO,'(3X,A)')
-* & 'process, sampled, accepted, cross section (internal/external)'
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'non.diff.',IPRSAM(1),
-* & IPRACC(1),DBLE(IPRACC(1))*FAC1,DBLE(IPRACC(1))*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'elas sca.',IPRSAM(2),
-* & IPRACC(2),DBLE(IPRACC(2))*FAC1,DBLE(IPRACC(2))*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'qela sca.',IPRSAM(3),
-* & IPRACC(3),DBLE(IPRACC(3))*FAC1,DBLE(IPRACC(3))*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'doub.pom.',IPRSAM(4),
-* & IPRACC(4),DBLE(IPRACC(4))*FAC1,DBLE(IPRACC(4))*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'diff.par1',IPRSAM(5),
-* & IPRACC(5),DBLE(IPRACC(5))*FAC1,DBLE(IPRACC(5))*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'diff.par2',IPRSAM(6),
-* & IPRACC(6),DBLE(IPRACC(6))*FAC1,DBLE(IPRACC(6))*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'doub.dif.',IPRSAM(7),
-* & IPRACC(7),DBLE(IPRACC(7))*FAC1,DBLE(IPRACC(7))*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'dir all ',IPRSAM(8),
-* & IPRACC(8),DBLE(IPRACC(8))*FAC1,DBLE(IPRACC(8))*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'dir X res',IDNS(1),IDNA(1),
-* & DBLE(IDNA(1))*FAC1,DBLE(IDNA(1))*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'res X dir',IDNS(2),IDNA(2),
-* & DBLE(IDNA(2))*FAC1,DBLE(IDNA(2))*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'dir X dir',IDNS(3),IDNA(3),
-* & DBLE(IDNA(3))*FAC1,DBLE(IDNA(3))*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'soft pom.',ISPS,ISPA,
-* & DBLE(ISPA)*FAC1,DBLE(ISPA)*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'hard pom.',IHPS,IHPA,
-* & DBLE(IHPA)*FAC1,DBLE(IHPA)*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'soft reg.',ISRS,ISRA,
-* & DBLE(ISRA)*FAC1,DBLE(ISRA)*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'enh. trg.',ISTS,ISTA,
-* & DBLE(ISTA)*FAC1,DBLE(ISTA)*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'enh. log.',ISLS,ISLA,
-* & DBLE(ISLA)*FAC1,DBLE(ISLA)*FAC2
-* WRITE(LO,'(3X,A,2I12,1P2E13.3)') 'doub.pom.',IDPS,IDPA,
-* & DBLE(IDPA)*FAC1,DBLE(IDPA)*FAC2
-C *** commented by Chiara
-C IF(ISWMDL(14).GT.0) THEN
-C WRITE(LO,'(3X,A,I3)') 'recursive pomeron splitting:',
-C & ISWMDL(14)
-C WRITE(LO,'(5X,A,I12)') '1->2pom-cut :',IENACC(8)
-C WRITE(LO,'(5X,A,I12)') '1->doub-pom :',IENACC(4)
-C WRITE(LO,'(5X,A,I12)') '1->diff-dis1:',IENACC(5)
-C WRITE(LO,'(5X,A,I12)') '1->diff-dis2:',IENACC(6)
-C WRITE(LO,'(5X,A,I12)') '1->doub-diff:',IENACC(7)
-C ENDIF
-* WRITE(LO,'(2(/1X,A,1PE12.3)/)') ' sampled cross section (mb)',
-* & SIGGEN(1),'accepted cross section (mb)',SIGGEN(2)
-
- CALL PHO_REJSTA(-2)
- CALL PHO_SAMPRO(1,IFPAP(1),IFPAP(2),ECM,PVIRT(1),PVIRT(2),
- & 0.D0,-2)
- CALL PHO_PARTON(-2,0,0,P1,P2,IREJ)
-C statistics of hard scattering processes
-* WRITE(LO,'(2(/1X,A))')
-* & 'PHO_EVENT: statistics of hard scattering processes',
-* & '--------------------------------------------------'
-* DO 43 K=1,4
-* IF(MH_tried(0,K).GT.0) THEN
-* WRITE(LO,'(/5X,A,I3)')
-* & 'process (accepted,x-section internal/external) for IP:',K
-* DO 47 M=0,Max_pro_2
-* WRITE(LO,'(1X,I3,1X,A,2X,2I12,1P2E13.3)') M,PROC(M),
-* & MH_tried(M,K),MH_acc_1(M,K),DBLE(MH_acc_1(M,K))*FAC1,
-* & DBLE(MH_acc_2(M,K))*FAC2
-* 47 CONTINUE
-* ENDIF
-* 43 CONTINUE
-
- ELSE
- WRITE(LO,'(/1X,A,I4,/)') 'no output of statistics',KEVENT
- ENDIF
-* WRITE(LO,'(/3(/1X,A)/)')
-* & '======================================================',
-* & ' ------- end of event generation summary --------',
-* & '======================================================'
- ELSE
- WRITE(LO,'(/1X,A,I7)') 'PHO_EVENT:ERROR: unsupported NEV',NEV
- ENDIF
-
- END
-
-CDECK ID>, PHO_PARTON
- SUBROUTINE PHO_PARTON(IPROC,JM1,JM2,P1,P2,IREJ)
-C********************************************************************
-C
-C calculation of complete parton configuration
-C
-C input: IPROC process ID 1 nondiffractive
-C 2 elastic
-C 3 quasi-ela. rho,omega,phi prod.
-C 4 double Pomeron
-C 5 single diff 1
-C 6 single diff 2
-C 7 double diff diss.
-C 8 single-resolved / direct photon
-C JM1,2 index of mother particles in /POEVT1/
-C
-C
-C output: complete parton configuration in /POEVT1/
-C IREJ 1 failure
-C 0 success
-C 50 rejection due to user cutoffs
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- DIMENSION P1(4),P2(4)
-
- PARAMETER ( TINY = 1.D-10 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C table of particle indices for recursive PHOJET calls
- INTEGER MAXIPX
- PARAMETER ( MAXIPX = 100 )
- INTEGER IPOPOS,IPORES,IPOIX1,IPOIX2,IPOIX3
- COMMON /PORECU/ IPOPOS(2,MAXIPX),IPORES(MAXIPX),
- & IPOIX1,IPOIX2,IPOIX3
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C cross sections
- INTEGER IPFIL,IFAFIL,IFBFIL
- DOUBLE PRECISION SIGTOT,SIGELA,SIGVM,SIGINE,SIGNDF,SIGDIR,
- & SIGLSD,SIGHSD,SIGLDD,SIGHDD,SIGCDF,
- & SIGPOM,SIGREG,SIGHAR,SIGTR1,SIGTR2,SIGLOO,
- & SIGDPO,SIG1SO,SIG1HA,SLOEL,SLOVM,SIGCOR,
- & FSUP,FSUD,FSUH,ECMFIL,P2AFIL,P2BFIL
- COMMON /POCSEC/ SIGTOT,SIGELA,SIGVM(0:4,0:4),SIGINE,SIGNDF,SIGDIR,
- & SIGLSD(2),SIGHSD(2),SIGLDD,SIGHDD,SIGCDF(0:4),
- & SIGPOM,SIGREG,SIGHAR,SIGTR1(2),SIGTR2(2),SIGLOO,
- & SIGDPO(4),SIG1SO,SIG1HA,SLOEL,SLOVM(4,4),SIGCOR,
- & FSUP(2),FSUD(2),FSUH(2),ECMFIL,P2AFIL,P2BFIL,
- & IPFIL,IFAFIL,IFBFIL
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-
- IREJ = 0
-C clear event statistics
- KSPOM = 0
- KHPOM = 0
- KSREG = 0
- KHDIR = 0
- KSTRG = 0
- KHTRG = 0
- KSLOO = 0
- KHLOO = 0
- KHARD = 0
- KSOFT = 0
- KSDPO = 0
- KHDPO = 0
-
-C-------------------------------------------------------------------
-C nondiffractive resolved processes
-
- IF(IPROC.EQ.1) THEN
-C sample number of interactions
- 555 CONTINUE
- IINT = 0
- IP = 1
-C generate only hard events
- IF(ISWMDL(2).EQ.0) THEN
- MHPOM = 1
- MSPOM = 0
- MSREG = 0
- MHDIR = 0
- HSWGHT(1) = 1.D0
- ELSE
-C minimum bias events
- IPOWGC(1) = 0
- 10 CONTINUE
- CALL PHO_SAMPRB(ECM,IP,IINT,JINT,KINT)
- IPOWGC(1) = IPOWGC(1)+1
- MINT = 0
- MHDIR = 0
- MSTRG = 0
- MSLOO = 0
-C
-C resolved soft processes: pomeron and reggeon
- MSPOM = IINT
- MSREG = JINT
-C resolved hard process: hard pomeron
- MHPOM = KINT
-C resolved absorptive corrections
- MPTRI = 0
- MPLOO = 0
-C restrictions given by user
- IF(MSPOM.LT.ISWCUT(1)) GOTO 10
- IF(MSREG.LT.ISWCUT(2)) GOTO 10
- IF(MHPOM.LT.ISWCUT(3)) GOTO 10
- HSWGHT(1) = 1.D0/DBLE(IPOWGC(1))
-C ----------------------------
- IF(ISWMDL(15).EQ.0) THEN
- MHPOM = 0
- IF(MSREG.GT.0) THEN
- MSPOM = 0
- MSREG = 1
- ELSE
- MSPOM = 1
- MSREG = 0
- ENDIF
- ELSE IF(ISWMDL(15).EQ.1) THEN
- IF(MHPOM.GT.0) THEN
- MHPOM = 1
- MSPOM = 0
- MSREG = 0
- ELSE IF(MSPOM.GT.0) THEN
- MSPOM = 1
- MSREG = 0
- ELSE
- MSREG = 1
- ENDIF
- ELSE IF(ISWMDL(15).EQ.2) THEN
- MHPOM = MIN(1,MHPOM)
- ELSE IF(ISWMDL(15).EQ.3) THEN
- MSPOM = MIN(1,MSPOM)
- ENDIF
- ENDIF
-C ----------------------------
-
-C statistics
- ISPS = ISPS+MSPOM
- IHPS = IHPS+MHPOM
- ISRS = ISRS+MSREG
- ISTS = ISTS+MSTRG
- ISLS = ISLS+MSLOO
-
- IF(IDEB(3).GE.5) WRITE(LO,'(1X,A,I10,I7,6I4)')
- & 'PHO_PARTON: EV,SP,SR,HP,HD,ET,EL',
- & KEVENT,MSPOM,MSREG,MHPOM,MHDIR,MPTRI,MPLOO
-
- ITRY2 = 0
- 50 CONTINUE
- ITRY2 = ITRY2+1
- IF(ITRY2.GT.1) CALL PHO_EVEINI(2,P1,P2,JM1,JM2)
- KSPOM = MSPOM
- KSREG = MSREG
- KHPOM = MHPOM
- KHDIR = MHDIR
- KSTRG = MPTRI
- KSLOO = MPLOO
-
- CALL PHO_STDPAR(JM1,JM2,1,MSPOM,MSREG,MHPOM,MHDIR,IREJ)
- IF(IREJ.NE.0) THEN
- IF(IREJ.EQ.50) RETURN
- IF(IDEB(3).GE.2) THEN
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_PARTON: rejection by PHO_STDPAR ',ITRY2
- CALL PHO_PREVNT(-1)
- ENDIF
- RETURN
- ENDIF
- IF(MHPOM.GT.0) THEN
- IDNODF = 3
- ELSE IF(MSPOM.GT.0) THEN
- IDNODF = 2
- ELSE
- IDNODF = 1
- ENDIF
-C check of quantum numbers of parton configurations
- IF(IDEB(3).GE.0) THEN
- CALL PHO_CHECK(1,IREJ)
- IF(IREJ.NE.0) GOTO 50
- ENDIF
-C sample strings to prepare fragmentation
- CALL PHO_STRING(1,IREJ)
- IF(IREJ.NE.0) THEN
- IF(IREJ.EQ.50) RETURN
- IFAIL(30) = IFAIL(30)+1
- IF(IDEB(3).GE.2) THEN
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_PARTON: rejection by PHO_STRING',ITRY2
- CALL PHO_PREVNT(-1)
- ENDIF
- IF(ITRY2.LT.20) GOTO 50
- IF(IDEB(3).GE.1) THEN
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_PARTON: rejection',ITRY2
- CALL PHO_PREVNT(-1)
- ENDIF
- RETURN
- ENDIF
-
-C statistics
- ISPA = ISPA+KSPOM
- IHPA = IHPA+KHPOM
- ISRA = ISRA+KSREG
- ISTA = ISTA+KSTRG
- ISLA = ISLA+KSLOO
-
-C-------------------------------------------------------------------
-C elastic scattering / quasi-elastic rho/omega/phi production
-
- ELSE IF((IPROC.EQ.2).OR.(IPROC.EQ.3)) THEN
- IF(IDEB(3).GE.5) WRITE(LO,'(1X,A,I10,I4)')
- & 'PHO_PARTON: ela./q-ela.sca:(EV,IPROC)',KEVENT,IPROC
-
-C DPMJET call with special projectile / target: transform into CMS
- IF((IPAMDL(13).GT.0).AND.(IPOIX3.EQ.0))
- & CALL PHO_DFWRAP(1,JM1,JM2)
-
- CALL PHO_QELAST(IPROC,JM1,JM2,IREJ)
-
- IF(IREJ.NE.0) THEN
-C DPMJET call with special projectile / target: clean up
- IF((IPAMDL(13).GT.0).AND.(IPOIX3.EQ.0))
- & CALL PHO_DFWRAP(-2,JM1,JM2)
- IF(IDEB(3).GE.2) THEN
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_PARTON: rejection by PHO_QELAST',IREJ
- CALL PHO_PREVNT(-1)
- ENDIF
- RETURN
- ENDIF
-
-C DPMJET call with special projectile / target: transform back
- IF((IPAMDL(13).GT.0).AND.(IPOIX3.EQ.0))
- & CALL PHO_DFWRAP(2,JM1,JM2)
-
-C prepare possible decays
- CALL PHO_STRING(1,IREJ)
- IF(IREJ.NE.0) THEN
- IF(IREJ.EQ.50) RETURN
- IFAIL(30) = IFAIL(30)+1
- RETURN
- ENDIF
-
-C---------------------------------------------------------------------
-C double Pomeron scattering
-
- ELSE IF(IPROC.EQ.4) THEN
- MSOFT = 0
- MHARD = 0
- IF(IDEB(3).GE.5) WRITE(LO,'(1X,A,I10)')
- & 'PHO_PARTON: EV,double-pomeron scattering',KEVENT
- IDPS = IDPS+1
- ITRY2 = 0
- 60 CONTINUE
- ITRY2 = ITRY2+1
- IF(ITRY2.GT.1) CALL PHO_EVEINI(2,P1,P2,JM1,JM2)
-C
- CALL PHO_CDIFF(JM1,JM2,MSOFT,MHARD,1,IREJ)
- IF(IREJ.NE.0) THEN
- IF(IDEB(3).GE.2) THEN
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_PARTON: rejection by PHO_CDIFF',IREJ
- CALL PHO_PREVNT(-1)
- ENDIF
- RETURN
- ENDIF
-C check of quantum numbers of parton configurations
- IF(IDEB(3).GE.0) THEN
- CALL PHO_CHECK(1,IREJ)
- IF(IREJ.NE.0) GOTO 60
- ENDIF
-C sample strings to prepare fragmentation
- CALL PHO_STRING(1,IREJ)
- IF(IREJ.NE.0) THEN
- IF(IREJ.EQ.50) RETURN
- IFAIL(30) = IFAIL(30)+1
- IF(IDEB(3).GE.2) THEN
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_PARTON: rejection by PHO_STRING',ITRY2
- CALL PHO_PREVNT(-1)
- ENDIF
- IF(ITRY2.LT.10) GOTO 60
- WRITE(LO,'(/1X,A,I5)') 'PHO_PARTON: rejection',ITRY2
- CALL PHO_PREVNT(-1)
- RETURN
- ENDIF
- IDPA = IDPA+1
-
-C-----------------------------------------------------------------------
-C single / double diffraction dissociation
-
- ELSE IF((IPROC.GE.5).AND.(IPROC.LE.7)) THEN
- MSOFT = 0
- MHARD = 0
- IF(IDEB(3).GE.5) WRITE(LO,'(1X,A,I10,2I4)')
- & 'PHO_PARTON: EV,diffraction',KEVENT,IPAR1,IPAR2
- IF(IPROC.EQ.5) ID1S = ID1S+1
- IF(IPROC.EQ.6) ID2S = ID2S+1
- IF(IPROC.EQ.7) ID3S = ID3S+1
- ITRY2 = 0
- 70 CONTINUE
- ITRY2 = ITRY2+1
- IF(ITRY2.GT.1) CALL PHO_EVEINI(2,P1,P2,JM1,JM2)
- IPAR1 = 1
- IPAR2 = 1
- IF(IPROC.EQ.5) IPAR2 = 0
- IF(IPROC.EQ.6) IPAR1 = 0
-C calculate rapidity gap survival probability
- SPROB = 1.D0
- IF(ECM.GT.10.D0) THEN
- IF((IPAR1.GE.1).AND.(IPAR2.EQ.0)) THEN
- IF(SIGTR1(1).LT.1.D-10) THEN
- SPROB = 1.D0
- ELSE
- SPROB = SIGHSD(1)/(SIGTR1(1)-2.D0*(SIGDPO(1)+SIGDPO(2)))
- ENDIF
- ELSE IF((IPAR1.EQ.0).AND.(IPAR2.GE.1)) THEN
- IF(SIGTR2(1).LT.1.D-10) THEN
- SPROB = 1.D0
- ELSE
- SPROB = SIGHSD(2)/(SIGTR2(1)-2.D0*(SIGDPO(1)+SIGDPO(3)))
- ENDIF
- ELSE IF((IPAR1.GE.1).AND.(IPAR2.GE.1)) THEN
- IF(SIGLOO.LT.1.D-10) THEN
- SPROB = 1.D0
- ELSE
- SPROB = SIGHDD/SIGLOO
- ENDIF
- ENDIF
- ENDIF
-
-**sr
-* temporary patch, r.e. 8.6.99
- SPROB = 1.D0
-**
-
-C DPMJET call with special projectile / target: transform into CMS
- IF((IPAMDL(13).GT.0).AND.(IPOIX3.EQ.0))
- & CALL PHO_DFWRAP(1,JM1,JM2)
-
- CALL PHO_DIFDIS(IPAR1,IPAR2,JM1,JM2,SPROB,0,MSOFT,MHARD,IREJ)
-
- IF(IREJ.NE.0) THEN
-C DPMJET call with special projectile / target: clean up
- IF((IPAMDL(13).GT.0).AND.(IPOIX3.EQ.0))
- & CALL PHO_DFWRAP(-2,JM1,JM2)
- IF(IDEB(3).GE.2) THEN
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_PARTON: rejection by PHO_DIFDIS',IREJ
- CALL PHO_PREVNT(-1)
- ENDIF
- RETURN
- ENDIF
-
-C DPMJET call with special projectile / target: transform back
- IF((IPAMDL(13).GT.0).AND.(IPOIX3.EQ.0))
- & CALL PHO_DFWRAP(2,JM1,JM2)
-
-C check of quantum numbers of parton configurations
- IF(IDEB(3).GE.0) THEN
- CALL PHO_CHECK(1,IREJ)
- IF(IREJ.NE.0) GOTO 70
- ENDIF
-C sample strings to prepare fragmentation
- CALL PHO_STRING(1,IREJ)
- IF(IREJ.NE.0) THEN
- IF(IREJ.EQ.50) RETURN
- IFAIL(30) = IFAIL(30)+1
- IF(IDEB(3).GE.2) THEN
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_PARTON: rejection by PHO_STRING',ITRY2
- CALL PHO_PREVNT(-1)
- ENDIF
- IF(ITRY2.LT.10) GOTO 70
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_PARTON: rejection',ITRY2
- CALL PHO_PREVNT(-1)
- RETURN
- ENDIF
- IF(IPROC.EQ.5) ID1A = ID1A+1
- IF(IPROC.EQ.6) ID2A = ID2A+1
- IF(IPROC.EQ.7) ID3A = ID3A+1
-
-C-----------------------------------------------------------------------
-C single / double direct processes
-
- ELSE IF(IPROC.EQ.8) THEN
- MSREG = 0
- MSPOM = 0
- MHPOM = 0
- MHDIR = 1
- IF(IDEB(3).GE.5) THEN
- WRITE(LO,'(1X,A,I10)') 'PHO_PARTON: EV,direct proc',KEVENT
- ENDIF
- IDIS = IDIS+MHDIR
- ITRY2 = 0
- 80 CONTINUE
- ITRY2 = ITRY2+1
- IF(ITRY2.GT.1) CALL PHO_EVEINI(2,P1,P2,JM1,JM2)
- KSPOM = MSPOM
- KSREG = MSREG
- KHPOM = MHPOM
- KHDIR = 4
-
- CALL PHO_STDPAR(JM1,JM2,1,MSPOM,MSREG,MHPOM,MHDIR,IREJ)
- IF(IREJ.NE.0) THEN
- IF(IREJ.EQ.50) RETURN
- IF(IDEB(3).GE.2) THEN
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_PARTON: rejection by PHO_STDPAR',ITRY2
- CALL PHO_PREVNT(-1)
- ENDIF
- RETURN
- ENDIF
- IDNODF = 4
-C check of quantum numbers of parton configurations
- IF(IDEB(3).GE.0) THEN
- CALL PHO_CHECK(1,IREJ)
- IF(IREJ.NE.0) GOTO 80
- ENDIF
-C sample strings to prepare fragmentation
- CALL PHO_STRING(1,IREJ)
- IF(IREJ.NE.0) THEN
- IF(IREJ.EQ.50) RETURN
- IFAIL(30) = IFAIL(30)+1
- IF(IDEB(3).GE.2) THEN
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_PARTON: rejection by PHO_STRING',ITRY2
- CALL PHO_PREVNT(-1)
- ENDIF
- IF(ITRY2.LT.10) GOTO 80
- WRITE(LO,'(/1X,A,I5)') 'PHO_PARTON: rejection',ITRY2
- CALL PHO_PREVNT(-1)
- RETURN
- ENDIF
- IF(IPROC.EQ.5) ID1A = ID1A+1
- IF(IPROC.EQ.6) ID2A = ID2A+1
- IF(IPROC.EQ.7) ID3A = ID3A+1
- IDIA = IDIA+MHDIR
-
-C-----------------------------------------------------------------------
-C initialize control statistics
-
- ELSE IF(IPROC.EQ.-1) THEN
- CALL PHO_SAMPRB(ECM,-1,0,0,0)
- CALL PHO_STDPAR(-1,0,0,0,0,0,0,IREJ)
- CALL PHO_SEAFLA(-1,0,0,DUM)
- IF((IFPAP(1).EQ.22).OR.(IFPAP(2).EQ.22))
- & CALL PHO_QELAST(-1,1,2,0)
- ISPS = 0
- ISPA = 0
- ISRS = 0
- ISRA = 0
- IHPS = 0
- IHPA = 0
- ISTS = 0
- ISTA = 0
- ISLS = 0
- ISLA = 0
- ID1S = 0
- ID1A = 0
- ID2S = 0
- ID2A = 0
- ID3S = 0
- ID3A = 0
- IDPS = 0
- IDPA = 0
- IDIS = 0
- IDIA = 0
- CALL PHO_STRING(-1,IREJ)
- CALL PHO_DIFDIS(0,0,0,0,0.D0,-1,0,0,IREJ)
- RETURN
-
-C-----------------------------------------------------------------------
-C produce statistics summary
-
- ELSE IF(IPROC.EQ.-2) THEN
- IF(ISWMDL(2).NE.0) CALL PHO_SAMPRB(ECM,-2,0,0,0)
-C IF(IDEB(3).GE.0) THEN
-C *** Commented by Chiara
-C WRITE(LO,'(/1X,A,/1X,A)')
-C & 'PHO_PARTON: internal statistics on parton configurations',
-C & '--------------------------------------------------------'
-C WRITE(LO,'(5X,A)') 'process sampled accepted'
-C WRITE(LO,'(5X,A,2I12)') 'soft pom.',ISPS,ISPA
-C WRITE(LO,'(5X,A,2I12)') 'hard pom.',IHPS,IHPA
-C WRITE(LO,'(5X,A,2I12)') 'soft reg.',ISRS,ISRA
-C WRITE(LO,'(5X,A,2I12)') 'enh. tri.',ISTS,ISTA
-C WRITE(LO,'(5X,A,2I12)') 'enh. loo.',ISLS,ISLA
-C WRITE(LO,'(5X,A,2I12)') 'diff.pa1.',ID1S,ID1A
-C WRITE(LO,'(5X,A,2I12)') 'diff.pa2.',ID2S,ID2A
-C WRITE(LO,'(5X,A,2I12)') 'doub.dif.',ID3S,ID3A
-C WRITE(LO,'(5X,A,2I12)') 'doub.pom.',IDPS,IDPA
-C WRITE(LO,'(5X,A,2I12/)') 'dir.phot.',IDIS,IDIA
-C ENDIF
- CALL PHO_STDPAR(-2,0,0,0,0,0,0,IREJ)
- IF((IFPAP(1).EQ.22).OR.(IFPAP(2).EQ.22))
- & CALL PHO_QELAST(-2,1,2,0)
- CALL PHO_STRING(-2,IREJ)
- CALL PHO_DIFDIS(0,0,0,0,0.D0,-2,0,0,IREJ)
- CALL PHO_SEAFLA(-2,0,0,DUM)
- RETURN
- ELSE
- WRITE(LO,'(1X,A,I2)')
- & 'PARTON:ERROR: unknown process ID ',IPROC
- STOP
- ENDIF
-
- END
-
-CDECK ID>, PHO_MCINI
- SUBROUTINE PHO_MCINI
-C********************************************************************
-C
-C initialization of MC event generation
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( PIMASS = 0.13D0,
- & TINY = 1.D-10 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C cross sections
- INTEGER IPFIL,IFAFIL,IFBFIL
- DOUBLE PRECISION SIGTOT,SIGELA,SIGVM,SIGINE,SIGNDF,SIGDIR,
- & SIGLSD,SIGHSD,SIGLDD,SIGHDD,SIGCDF,
- & SIGPOM,SIGREG,SIGHAR,SIGTR1,SIGTR2,SIGLOO,
- & SIGDPO,SIG1SO,SIG1HA,SLOEL,SLOVM,SIGCOR,
- & FSUP,FSUD,FSUH,ECMFIL,P2AFIL,P2BFIL
- COMMON /POCSEC/ SIGTOT,SIGELA,SIGVM(0:4,0:4),SIGINE,SIGNDF,SIGDIR,
- & SIGLSD(2),SIGHSD(2),SIGLDD,SIGHDD,SIGCDF(0:4),
- & SIGPOM,SIGREG,SIGHAR,SIGTR1(2),SIGTR2(2),SIGLOO,
- & SIGDPO(4),SIG1SO,SIG1HA,SLOEL,SLOVM(4,4),SIGCOR,
- & FSUP(2),FSUD(2),FSUH(2),ECMFIL,P2AFIL,P2BFIL,
- & IPFIL,IFAFIL,IFBFIL
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-C interpolation tables for hard cross section and MC selection weights
- INTEGER Max_tab_E,Max_tab_Q2,Max_pro_tab
- PARAMETER ( Max_tab_E = 20, Max_tab_Q2 = 10, Max_pro_tab = 16 )
- INTEGER IH_Q2a_up,IH_Q2b_up,IH_Ecm_up
- DOUBLE PRECISION Hfac_tab,HWgx_tab,HSig_tab,Hdpt_tab,
- & HQ2a_tab,HQ2b_tab,HEcm_tab
- COMMON /POHTAB/
- & Hfac_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & HWgx_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & HSig_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & Hdpt_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & HQ2a_tab(1:Max_tab_Q2,0:4),HQ2b_tab(1:Max_tab_Q2,0:4),
- & HEcm_tab(1:Max_tab_E,0:4),
- & IH_Q2a_up(0:4),IH_Q2b_up(0:4),IH_Ecm_up(0:4)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-C cut probability distribution
- INTEGER IEETA1,IIMAX,KKMAX
- PARAMETER( IEETA1=20, IIMAX=20, KKMAX=20 )
- INTEGER IEEMAX,IMAX,KMAX
- REAL PROB
- DOUBLE PRECISION EPTAB
- COMMON /POPROB/ PROB(4,IEETA1,0:IIMAX,0:KKMAX),EPTAB(4,IEETA1),
- & IEEMAX,IMAX,KMAX
-C energy-interpolation table
- INTEGER IEETA2
- PARAMETER ( IEETA2 = 20 )
- INTEGER ISIMAX
- DOUBLE PRECISION SIGTAB,SIGECM
- COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
-
- CHARACTER*15 PHO_PNAME
- DIMENSION ECMF(4)
-
- DATA XMPOM / 0.766D0 /
-
-C initialize fragmentation
- CALL PHO_FRAINI(ISWMDL(6))
-
-C reset interpolation tables
- DO 50 I=1,4
- DO 60 J=1,10
- DO 70 K=1,70
- SIGTAB(I,K,J) = 0.D0
- 70 CONTINUE
- SIGECM(I,J) = 0.D0
- 60 CONTINUE
- 50 CONTINUE
-
-C max. number of allowed colors (large N expansion)
- IC1 = 0
- IC2 = 10000
- CALL PHO_SELCOL(IC1,IC2,0,0,0,0,-1)
-
-C lower energy limit of initialization
- ETABLO = PARMDL(19)
- IF(ECM.LE.5.D0) ETABLO = MIN(2.5D0,ETABLO)
-
-C *** Commented by Chiara
-C WRITE(LO,'(/,1X,A,2F12.1)')
-C & 'PHO_MCINI: selected energy range (SQRT(S))',ETABLO,ECM
-C WRITE(LO,'(5X,A,A,F7.3,E15.4)')
-C & 'particle 1 (name,mass,virtuality): ',PHO_PNAME(IFPAP(1),1),
-C & PMASS(1),PVIRT(1)
-C WRITE(LO,'(5X,A,A,F7.3,E15.4)')
-C & 'particle 2 (name,mass,virtuality): ',PHO_PNAME(IFPAP(2),1),
-C & PMASS(2),PVIRT(2)
-
-C cuts on probabilities of multiple interactions
- IMAX = MIN(IPAMDL(32),IIMAX)
- KMAX = MIN(IPAMDL(33),KKMAX)
- AH = 2.D0*PTCUT(1)/ECM
- IMAX = MAX(5,MIN(IMAX,INT(ECM/2.0D0)))
- KMAX = MIN(KMAX,1+INT(0.9*1.D0/AH))
-
-C hard interpolation table
- ECMF(1) = ECM
- ECMF(2) = 0.9D0*ECMF(1)
- ECMF(3) = ECMF(2)
- ECMF(4) = ECMF(2)
- do k=1,4
- IH_Ecm_up(k) = MIN(IPAMDL(30),Max_tab_E)
- IF(ECMF(k).LT.100.D0) IH_Ecm_up(k) = MIN(IH_Ecm_up(k),15)
- IF(ECMF(k).LT.50.D0) IH_Ecm_up(k) = MIN(IH_Ecm_up(k),10)
- IF(ECMF(k).LT.10.D0) IH_Ecm_up(k) = MIN(IH_Ecm_up(k),5)
- enddo
-
-C initialization of hard scattering for all channels and cutoffs
- IF(HSWCUT(5).GT.PARMDL(36)) CALL PHO_HARMCI(-1,ECMF(1))
- I0 = 4
- IF(ISWMDL(2).EQ.0) I0 = 1
- DO 110 I=I0,1,-1
- CALL PHO_HARMCI(I,ECMF(I))
- 110 CONTINUE
-
-C dimension of interpolation table of cut probabilities
- IEEMAX = MIN(IPAMDL(31),IEETA1)
- IF(ECM.LT.100.D0) IEEMAX = MIN(IEEMAX,15)
- IF(ECM.LT.50.D0) IEEMAX = MIN(IEEMAX,10)
- IF(ECM.LT.10.D0) IEEMAX = MIN(IEEMAX,5)
- ISIMAX = IEEMAX
-
-C calculate probability distribution
- I0 = 4
- IFT1 = IFPAP(1)
- IFT2 = IFPAP(2)
- XMT1 = PMASS(1)
- XMT2 = PMASS(2)
- XVT1 = PVIRT(1)
- XVT2 = PVIRT(2)
- IF(ISWMDL(2).EQ.0) I0 = 1
- DO 150 IP=I0,1,-1
- ECMPRO = ECMF(IP)*1.001D0
- IF(IP.EQ.4) THEN
- IFPAP(1) = 990
- IFPAP(2) = 990
- PMASS(1) = XMPOM
- PMASS(2) = XMPOM
- PVIRT(1) = 0.D0
- PVIRT(2) = 0.D0
- ELSE IF(IP.EQ.3) THEN
- IFPAP(1) = IFT2
- IFPAP(2) = 990
- PMASS(1) = XMT2
- PMASS(2) = XMPOM
- PVIRT(1) = XVT2
- PVIRT(2) = 0.D0
- ELSE IF(IP.EQ.2) THEN
- IFPAP(1) = IFT1
- IFPAP(2) = 990
- PMASS(1) = XMT1
- PMASS(2) = XMPOM
- PVIRT(1) = XVT1
- PVIRT(2) = 0.D0
- ELSE
- IFPAP(1) = IFT1
- IFPAP(2) = IFT2
- PMASS(1) = XMT1
- PMASS(2) = XMT2
- PVIRT(1) = XVT1
- PVIRT(2) = XVT2
- ENDIF
- IF(IEEMAX.GT.1) THEN
- IF(IP.EQ.1) THEN
- ELMIN = LOG(ETABLO)
- ELSE
- ELMIN = LOG(2.5D0)
- ENDIF
- EDELTA = (LOG(ECMPRO)-ELMIN)/DBLE(MAX(1,IEEMAX-1))
- DO 100 I=1,IEEMAX
- ECMPRO = EXP(ELMIN+DBLE(I-1)*EDELTA)
- CALL PHO_PRBDIS(IP,ECMPRO,I)
- 100 CONTINUE
- ELSE
- CALL PHO_PRBDIS(IP,ECMPRO,1)
- ENDIF
-
-C debug output of cross section tables
- IF(((IDEB(62).GE.0).AND.(IP.EQ.1)).OR.(IDEB(62).GE.3)) THEN
- IF((PVIRT(1)+PVIRT(2).GT.0.01D0).AND.(IDEB(62).EQ.0)) GOTO 201
-* --- Commented by Chiara
-* WRITE(LO,'(/1X,A,I3/1X,A,/1X,A)')
-* &'Table of total cross sections (mb) for particle combination',IP,
-* &' Ecm SIGtot SIGela SIGine SIGqel SIGsd1 SIGsd2 SIGdd',
-* &'-------------------------------------------------------------'
-* DO 200 I=1,IEEMAX
-* WRITE(LO,'(1X,1P,8E9.2)') SIGECM(IP,I),SIGTAB(IP,1,I),
-* & SIGTAB(IP,2,I),SIGTAB(IP,28,I),SIGTAB(IP,3,I),
-* & SIGTAB(IP,30,I)+SIGTAB(IP,32,I),
-* & SIGTAB(IP,31,I)+SIGTAB(IP,33,I),
-* & SIGTAB(IP,34,I)+SIGTAB(IP,35,I)
-* 200 CONTINUE
- 201 CONTINUE
- IF(IDEB(62).GE.2) THEN
- WRITE(LO,'(/1X,A,I3/1X,A,/1X,A)')
- &'Table of partial x-sections (mb) for particle combination',IP,
- &' Ecm SIGSD1L SIGSD1H SIGSD2L SIGSD2H SIGDDL SIGDDH SIGCDF',
- &'--------------------------------------------------------------'
- DO 205 I=1,IEEMAX
- WRITE(LO,'(1X,1P,8E9.2)') SIGECM(IP,I),SIGTAB(IP,30,I),
- & SIGTAB(IP,32,I),SIGTAB(IP,31,I),SIGTAB(IP,33,I),
- & SIGTAB(IP,34,I),SIGTAB(IP,35,I),SIGTAB(IP,36,I)
- 205 CONTINUE
- ENDIF
- IF(IDEB(62).GE.2) THEN
- WRITE(LO,'(/1X,A,I3/1X,A,/1X,A)')
- &'Table of born graph x-sections (mb) for particle combination',IP,
- &' Ecm SIGSVDM SIGHRES SIGHDIR SIGTR1 SIGTR2 SIGLOO SIGDPO',
- &'-------------------------------------------------------------'
- DO 210 I=1,IEEMAX
- WRITE(LO,'(1X,1P,8E9.2)') SIGECM(IP,I),
- & SIGTAB(IP,56,I)+SIGTAB(IP,57,I),SIGTAB(IP,58,I),
- & SIGTAB(IP,59,I),SIGTAB(IP,60,I)+SIGTAB(IP,61,I),
- & SIGTAB(IP,62,I)+SIGTAB(IP,63,I),SIGTAB(IP,64,I),
- & SIGTAB(IP,65,I)+SIGTAB(IP,66,I)+SIGTAB(IP,67,I)
- & +SIGTAB(IP,68,I)
- 210 CONTINUE
- WRITE(LO,'(/1X,A,I3/1X,A,/1X,A)')
- &'Table of unitarized x-sections (mb) for particle combination',IP,
- &' Ecm SIGSVDM SIGHVDM SIGTR1 SIGTR2 SIGLOO SIGDPO SLOPE',
- &'-------------------------------------------------------------'
- DO 215 I=1,IEEMAX
- WRITE(LO,'(1X,1P,8E9.2)') SIGECM(IP,I),SIGTAB(IP,79,I),
- & SIGTAB(IP,80,I),SIGTAB(IP,32,I),SIGTAB(IP,33,I),
- & SIGTAB(IP,35,I),SIGTAB(IP,36,I),SIGTAB(IP,39,I)
- 215 CONTINUE
- ENDIF
- IF(IDEB(62).GE.1) THEN
- WRITE(LO,'(/1X,A,/1X,A,2I4,/1X,A,/1X,A)')
- &'Table of expected average number of cuts in non-diff events:',
- &' for max. number of cuts soft/hard:',IMAX,KMAX,
- &' Ecm PTCUT SIGNDF POM-S POM-H REG-S',
- &'---------------------------------------------'
- DO 220 I=1,IEEMAX
- WRITE(LO,'(1X,1P,6E10.3)') SIGECM(IP,I),SIGTAB(IP,77,I),
- & SIGTAB(IP,78,I),SIGTAB(IP,74,I),SIGTAB(IP,75,I),
- & SIGTAB(IP,76,I)
- 220 CONTINUE
- IF(IP.EQ.1) THEN
- WRITE(LO,'(/1X,A,/1X,A,/1X,A)')
- & 'Table of rapidity gap survival probability (high-mass diff.):',
- & ' Ecm Spro-sd1 Spro-sd2 Spro-dd Spro-cd',
- & '---------------------------------------------------'
- DO 230 I=1,IEEMAX
- IF(SIGECM(IP,I).GT.10.D0) THEN
- SPRSD1 = SIGTAB(IP,32,I)/(SIGTAB(IP,60,I)
- & -2.D0*(SIGTAB(IP,65,I)+SIGTAB(IP,66,I)))
- SPRSD2 = SIGTAB(IP,33,I)/(SIGTAB(IP,62,I)
- & -2.D0*(SIGTAB(IP,65,I)+SIGTAB(IP,67,I)))
- SPRDD = SIGTAB(IP,35,I)/(SIGTAB(IP,64,I)+SIGTAB(IP,61,I)
- & +SIGTAB(IP,63,I)-2.D0*(SIGTAB(IP,66,I)
- & +SIGTAB(IP,67,I)+2.D0*SIGTAB(IP,68,I)))
- SPRCDF = SIGTAB(IP,36,I)/(SIGTAB(IP,65,I)+SIGTAB(IP,66,I)
- & +SIGTAB(IP,67,I)+SIGTAB(IP,68,I))
- WRITE(LO,'(1X,1P,5E10.3)') SIGECM(IP,I),
- & SPRSD1,SPRSD2,SPRDD,SPRCDF
- ENDIF
- 230 CONTINUE
- ENDIF
- ENDIF
- ENDIF
- 150 CONTINUE
-
-C simulate only hard scatterings
- IF(ISWMDL(2).EQ.0) THEN
- WRITE(LO,'(2(/1X,A))')
- & 'WARNING: generation of hard scatterings only!',
- & '============================================='
- DO 151 I=2,7
- IPRON(I,1) = 0
- 151 CONTINUE
- DO 152 K=2,4
- DO 153 I=1,15
- IPRON(I,K) = 0
- 153 CONTINUE
- 152 CONTINUE
- SIGGEN(4) = 0.D0
- DO 160 I=1,IEEMAX
- SIGMAX = 0.D0
- IF(IPRON(1,1).EQ.1) SIGMAX = SIGTAB(1,58,I)
- IF(IPRON(8,1).EQ.1) SIGMAX = SIGMAX+SIGTAB(1,59,I)
- IF(SIGMAX.GT.SIGGEN(4)) THEN
- ISIGM = I
- SIGGEN(4) = SIGMAX
- ENDIF
- 160 CONTINUE
- ELSE
-* --- Commented by Chiara
-* WRITE(LO,'(2(/1X,A))')
-* & 'activated processes, cross section',
-* & '----------------------------------'
-* WRITE(LO,'(5X,A,I3,2X,3I3)')
-* & ' nondiffr. resolved processes',(IPRON(1,K),K=1,4)
-* WRITE(LO,'(5X,A,I3,2X,3I3)')
-* & ' elastic scattering',(IPRON(2,K),K=1,4)
-* WRITE(LO,'(5X,A,I3,2X,3I3)')
-* & 'qelast. vectormeson production',(IPRON(3,K),K=1,4)
-* WRITE(LO,'(5X,A,I3,2X,3I3)')
-* & ' double pomeron processes',(IPRON(4,K),K=1,4)
-* WRITE(LO,'(5X,A,I3,2X,3I3)')
-* & ' single diffract. particle (1)',(IPRON(5,K),K=1,4)
-* WRITE(LO,'(5X,A,I3,2X,3I3)')
-* & ' single diffract. particle (2)',(IPRON(6,K),K=1,4)
-* WRITE(LO,'(5X,A,I3,2X,3I3)')
-* & ' double diffract. processes',(IPRON(7,K),K=1,4)
-* WRITE(LO,'(5X,A,I3,2X,3I3)')
-* & ' direct photon processes',(IPRON(8,K),K=1,4)
-
-C calculate effective cross section
- SIGGEN(4) = 0.D0
- DO 165 I=1,IEEMAX
- CALL PHO_CSINT(1,IFPAP(1),IFPAP(2),-1,-1,SIGECM(1,I),
- & PVIRT(1),PVIRT(2))
- SIGMAX = 0.D0
- if(iswmdl(2).ge.1) then
- IF(IPRON(1,1).EQ.1) SIGMAX = SIGTOT-SIGELA-SIGVM(0,0)
- & -SIGCDF(0)-SIGLSD(1)-SIGHSD(1)-SIGLSD(2)-SIGHSD(2)
- & -SIGLDD-SIGHDD-SIGDIR
- IF(IPRON(2,1).EQ.1) SIGMAX = SIGMAX+SIGELA
- IF(IPRON(3,1).EQ.1) SIGMAX = SIGMAX+SIGVM(0,0)
- IF(IPRON(4,1).EQ.1) SIGMAX = SIGMAX+SIGCDF(0)
- IF(IPRON(5,1).EQ.1) SIGMAX = SIGMAX+SIGLSD(1)+SIGHSD(1)
- IF(IPRON(6,1).EQ.1) SIGMAX = SIGMAX+SIGLSD(2)+SIGHSD(2)
- IF(IPRON(7,1).EQ.1) SIGMAX = SIGMAX+SIGLDD+SIGHDD
- IF(IPRON(8,1).EQ.1) SIGMAX = SIGMAX+SIGDIR
- else
- IF(IPRON(1,1).EQ.1) SIGMAX = SIGHAR
- IF(IPRON(8,1).EQ.1) SIGMAX = SIGMAX+SIGDIR
- endif
- IF(SIGMAX.GT.SIGGEN(4)) THEN
- ISIGM = I
- SIGGEN(4) = SIGMAX
- ENDIF
- 165 CONTINUE
- ENDIF
-
-C debug output
- IF(SIGGEN(4).LT.1.D-20) THEN
- WRITE(LO,'(//1X,A)')
- & 'PHO_MCINI:ERROR: selected processes have vanishing x-section'
- STOP
- ENDIF
- WRITE(LO,'(3X,A,1P3E11.4)') 'maximum search (Elow/Eup/Epeak)',
- & SIGECM(1,1),SIGECM(1,IEEMAX),SIGECM(1,ISIGM)
- WRITE(LO,'(11X,A,1PE12.4,/)') 'max. cross section (mb)',SIGGEN(4)
-
- END
-
-CDECK ID>, PHO_REJSTA
- SUBROUTINE PHO_REJSTA(IMODE)
-C********************************************************************
-C
-C MC rejection counting
-C
-C input IMODE -1 initialization
-C -2 output of statistics
-C
-C********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-
- INTEGER IMODE
-
- INTEGER I
-
-C initialization
- IF(IMODE.EQ.-1) THEN
- DO 100 I=1,NMXJ
- IFAIL(I) = 0
- 100 CONTINUE
-C
- REJTIT(1) = 'PARTON ALL'
- REJTIT(2) = 'STDPAR ALL'
- REJTIT(3) = 'STDPAR DPO'
- REJTIT(4) = 'POMSCA ALL'
- REJTIT(5) = 'POMSCA INT'
- REJTIT(6) = 'POMSCA KIN'
- REJTIT(7) = 'DIFDIS ALL'
- REJTIT(8) = 'POSPOM ALL'
- REJTIT(9) = 'HRES.DIF.1'
- REJTIT(10) = 'HDIR.DIF.1'
- REJTIT(11) = 'HRES.DIF.2'
- REJTIT(12) = 'HDIR.DIF.2'
- REJTIT(13) = 'DIFDIS INT'
- REJTIT(14) = 'HADRON SP2'
- REJTIT(15) = 'HADRON SP3'
- REJTIT(16) = 'HARDIR ALL'
- REJTIT(17) = 'HARDIR INT'
- REJTIT(18) = 'HARDIR KIN'
- REJTIT(19) = 'MCHECK BAR'
- REJTIT(20) = 'MCHECK MES'
- REJTIT(21) = 'DIF.DISS.1'
- REJTIT(22) = 'DIF.DISS.2'
- REJTIT(23) = 'STRFRA ALL'
- REJTIT(24) = 'MSHELL CHA'
- REJTIT(25) = 'PARTPT SOF'
- REJTIT(26) = 'PARTPT HAR'
- REJTIT(27) = 'INTRINS KT'
- REJTIT(28) = 'HACHEK DIR'
- REJTIT(29) = 'HACHEK RES'
- REJTIT(30) = 'STRING ALL'
- REJTIT(31) = 'POMSCA INT'
- REJTIT(32) = 'DIFF SLOPE'
- REJTIT(33) = 'GLU2QU ALL'
- REJTIT(34) = 'MASCOR ALL'
- REJTIT(35) = 'PARCOR ALL'
- REJTIT(36) = 'MSHELL PAR'
- REJTIT(37) = 'MSHELL ALL'
- REJTIT(38) = 'POMCOR ALL'
- REJTIT(39) = 'DB-POM KIN'
- REJTIT(40) = 'DB-POM ALL'
- REJTIT(41) = 'SOFTXX ALL'
- REJTIT(42) = 'SOFTXX PSP'
-
-C write output
-* --- Commented by Chiara
-* ELSE IF(IMODE.EQ.-2) THEN
-* WRITE(LO,'(/,1X,A,/,1X,A)') 'PHO_REJSTA: rejection statistics',
-* & '--------------------------------'
-* DO 300 I=1,NMXJ
-* IF(IFAIL(I).GT.0)
-* & WRITE(LO,'(1X,I3,1X,A,5X,I15)') I,REJTIT(I),IFAIL(I)
-* 300 CONTINUE
-* ELSE
-* WRITE(LO,'(1X,A,I3)') 'PHO_REJSTA: invalid mode ',IMODE
- ENDIF
-
- END
-
-CDECK ID>, PHO_POSPOM
- SUBROUTINE PHO_POSPOM(IP,IND1,IND2,IGEN,IPOM,KCUT,ISWAP,IREJ)
-C***********************************************************************
-C
-C registration of one cut pomeron (soft/semihard)
-C
-C input: IP particle combination the pomeron belongs to
-C IND1,2 position of X values in /POSOFT/
-C 1 corresponds to a valence-pomeron
-C IGEN production process of mother particles
-C IPOM pomeron number
-C KCUT total number of cut pomerons and reggeons
-C
-C output: ISWAP exchange of x values
-C IND1,2 increased by the number of partons belonging
-C to the generated pomeron cut
-C IREJ success/failure
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-8 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C energy-interpolation table
- INTEGER IEETA2
- PARAMETER ( IEETA2 = 20 )
- INTEGER ISIMAX
- DOUBLE PRECISION SIGTAB,SIGECM
- COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
-C light-cone x fractions and c.m. momenta of soft cut string ends
- INTEGER MAXSOF
- PARAMETER ( MAXSOF = 50 )
- INTEGER IJSI2,IJSI1
- DOUBLE PRECISION XS1,XS2,PSOFT1,PSOFT2
- COMMON /POSOFT/ XS1(MAXSOF),XS2(MAXSOF),
- & PSOFT1(4,MAXSOF),PSOFT2(4,MAXSOF),
- & IJSI1(MAXSOF),IJSI2(MAXSOF)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C table of particle indices for recursive PHOJET calls
- INTEGER MAXIPX
- PARAMETER ( MAXIPX = 100 )
- INTEGER IPOPOS,IPORES,IPOIX1,IPOIX2,IPOIX3
- COMMON /PORECU/ IPOPOS(2,MAXIPX),IPORES(MAXIPX),
- & IPOIX1,IPOIX2,IPOIX3
-
- DIMENSION P1(4),P2(4),WGXHSD(2),WGX(6)
-
- IREJ = 0
- ISWAP = 0
- JM1 = NPOSP(1)
- JM2 = NPOSP(2)
- INDX1 = IND1
- INDX2 = IND2
- EA1 = XS1(IND1)*ECMP/2.D0
- EA2 = XS1(IND1+1)*ECMP/2.D0
- EB1 = XS2(IND2)*ECMP/2.D0
- EB2 = XS2(IND2+1)*ECMP/2.D0
- CMASS1 = MIN(EA1,EA2)
- CMASS2 = MIN(EB1,EB2)
-
-C debug output
- IF(IDEB(9).GE.20) THEN
- WRITE(LO,'(1X,2A,5I4)') 'PHO_POSPOM: ',
- & 'IP,IND1,IND2,KCUT,IPOIX1',IP,IND1,IND2,KCUT,IPOIX1
- WRITE(LO,'(1X,A,2I4,1P2E12.4)') 'MOTHER1/2,MASS1/2',JM1,JM2,
- & CMASS1,CMASS2
- ENDIF
-
-C flavours
- IF(IND1.EQ.1) THEN
- CALL PHO_VALFLA(JM1,IFLA1,IFLA2,EA1,EA2)
- ELSE
- CALL PHO_SEAFLA(JM1,IFLA1,IFLA2,CMASS1)
- ENDIF
- IF(IND2.EQ.1) THEN
- CALL PHO_VALFLA(JM2,IFLB1,IFLB2,EB1,EB2)
- ELSE
- CALL PHO_SEAFLA(JM2,IFLB1,IFLB2,CMASS2)
- ENDIF
- DO 75 I=1,4
- P1(I) = PSOFT1(I,IND1)+PSOFT1(I,IND1+1)
- P2(I) = PSOFT2(I,IND2)+PSOFT2(I,IND2+1)
- 75 CONTINUE
-
-C pomeron resolved?
- IF((ISWMDL(14).GT.0).AND.(IPOIX1.GT.0)) THEN
-C find energy for cross section calculation
- IF(IPAMDL(16).EQ.2) THEN
- ESUB = ECMP
- ELSE IF(IPAMDL(16).EQ.3) THEN
- IF(IPROCE.EQ.1) THEN
- ESUB = ECM
- ELSE
- ESUB = ECMP
- ENDIF
- ELSE
- ESUB = SQRT((P1(4)+P2(4))**2-(P1(1)+P2(1))**2
- & -(P1(2)+P2(2))**2-(P1(3)+P2(3))**2)
- ENDIF
-C load cross sections from interpolation table
- IF(ESUB.LE.SIGECM(IP,1)) THEN
- I1 = 1
- I2 = 2
- ELSE IF(ESUB.LT.SIGECM(IP,ISIMAX)) THEN
- DO 50 I=2,ISIMAX
- IF(ESUB.LE.SIGECM(IP,I)) GOTO 200
- 50 CONTINUE
- 200 CONTINUE
- I1 = I-1
- I2 = I
- ELSE
- WRITE(LO,'(/1X,A,2E12.3)')
- & 'PHO_POSPOM: energy too high',ESUB,SIGECM(IP,ISIMAX)
- CALL PHO_PREVNT(-1)
- I1 = ISIMAX-1
- I2 = ISIMAX
- ENDIF
- FAC2=0.D0
- IF(I1.NE.I2) FAC2=LOG(ESUB/SIGECM(IP,I1))
- & /LOG(SIGECM(IP,I2)/SIGECM(IP,I1))
- FAC1=1.D0-FAC2
-C calculate weights
-* WGXHSD(1) = FAC2*SIGTAB(IP,32,I2)+FAC1*SIGTAB(IP,32,I1)
-* WGXHSD(2) = FAC2*SIGTAB(IP,33,I2)+FAC1*SIGTAB(IP,33,I1)
-* WGXHDD = FAC2*SIGTAB(IP,35,I2)+FAC1*SIGTAB(IP,35,I1)
-* WGXCDF = FAC2*SIGTAB(IP,36,I2)+FAC1*SIGTAB(IP,36,I1)
-* WGXPOM = FAC2*SIGTAB(IP,37,I2)+FAC1*SIGTAB(IP,37,I1)
-* WGX(1) = WGXPOM-3.D0*(WGXHSD(1)+WGXHSD(2)+WGXHDD)+15.D0*WGXCDF
-
- WGXPOM = FAC2*(SIGTAB(IP,56,I2)+SIGTAB(IP,57,I2))
- & +FAC1*(SIGTAB(IP,56,I1)+SIGTAB(IP,57,I1))
- WGXHSD(1) = FAC2*SIGTAB(IP,60,I2)+FAC1*SIGTAB(IP,60,I1)
- WGXHSD(2) = FAC2*SIGTAB(IP,62,I2)+FAC1*SIGTAB(IP,62,I1)
- WGXHDD = FAC2*(SIGTAB(IP,61,I2)+SIGTAB(IP,63,I2)
- & +SIGTAB(IP,64,I2))
- & +FAC1*(SIGTAB(IP,61,I1)+SIGTAB(IP,63,I1)
- & +SIGTAB(IP,64,I1))
- WGXCDF = FAC2*(SIGTAB(IP,65,I2)+SIGTAB(IP,66,I2)
- & +SIGTAB(IP,67,I2)+SIGTAB(IP,68,I2))
- & +FAC1*(SIGTAB(IP,65,I1)+SIGTAB(IP,66,I1)
- & +SIGTAB(IP,67,I1)+SIGTAB(IP,68,I1))
-
-C one-pomeron cut
- WGX(1) = WGXPOM-3.D0*(WGXHSD(1)+WGXHSD(2)+WGXHDD)+15.D0*WGXCDF
-C central diff. cut
- WGX(2) = WGXCDF
-C diff. diss. of particle 1
- WGX(3) = WGXHSD(1)
-C diff. diss. of particle 2
- WGX(4) = WGXHSD(2)
-C double diff. dissociation
- WGX(5) = WGXHDD
-C two-pomeron cut
- WGX(6) = 2.D0*(WGXHSD(1)+WGXHSD(2)+WGXHDD)
-
-* IF((WGX(1).LT.0.D0).AND.((IP.EQ.1).OR.(IDEB(9).GE.1))) THEN
-* WRITE(LO,'(1X,A,/1X,A,I3,1P,2E11.3)') ' PHO_POSPOM: ',
-* & ' unitarity bound reached for ',IP,ESUB,WGX(1)
-* WRITE(LO,'(5X,A)') 'WGXHSD(1),WGXHSD(2),WGXHDD,WGXCDF,WGXPOM:'
-* WRITE(LO,'(5X,1P5E11.3)') WGXHSD,WGXHDD,WGXCDF,WGXPOM
-* WRITE(LO,'(5X,A,/,5X,1P,6E11.3)') 'weight factors WG(1-6)',WGX
-* ENDIF
-
- SUM = WGX(1)+WGX(2)+WGX(3)+WGX(4)+WGX(5)+WGX(6)
-
-C selection loop
- 205 CONTINUE
- XI = DT_RNDM(SUM)*SUM
- I = 0
- SUM = 0.D0
- 210 CONTINUE
- I = I+1
- SUM = SUM+WGX(I)
- IF((XI.GT.SUM).AND.(I.LT.6)) GOTO 210
-C phase space correction
- IF(I.NE.1) THEN
- ISAM = 4
- IF(I.EQ.6) ISAM = 8
- PACC = EXP(-PARMDL(8)*DBLE(ISAM*PARMDL(160+IP))/ESUB)
-* IF(DT_RNDM(SUM).GT.PACC) I=1
- IF(DT_RNDM(SUM).GT.PACC) GOTO 205
- ENDIF
-
-C do not generate diffraction for events with only one cut pomeron
- IF((KCUT.EQ.1).AND.(I.LT.6)) I = 1
-
-C do not generate recursive calls for remants with
-C diquark-anti-diquark flavour contents
- if((abs(IFLA1).gt.1000).and.(IFLA1+IFLA2.eq.0)) I = 1
- if((abs(IFLB1).gt.1000).and.(IFLB1+IFLB2.eq.0)) I = 1
-
-C debug output
- IF(IDEB(9).GE.20) WRITE(LO,'(1X,A,/1X,I2,1P7E11.3)')
- & 'PHO_POSPOM: IPRO,ESUB,WGX(1-6)',I,ESUB,WGX
-
- IF(I.GT.1) THEN
-C second scattering needed
- CALL PHO_HACODE(IFLA1,IFLA2,IDHA1,IDUM)
- CALL PHO_HACODE(IFLB1,IFLB2,IDHA2,IDUM)
- IDPD1 = IPHO_ID2PDG(IDHA1)
- IDPD2 = IPHO_ID2PDG(IDHA2)
-
- if(INDX1.eq.1) then
- if((IPHIST(2,JM1).GE.0).and.(IDHEP(JM1).NE.990))
- & IGEN_had = IGEN
- else
- IGEN_had = -IGEN
- endif
- CALL PHO_REGPAR(1,IDPD1,IDHA1,JM1,JM2,P1(1),P1(2),P1(3),P1(4),
- & IPOM,IGEN_had,0,0,IPOS1,1)
-
- if(INDX2.eq.1) then
- if((IPHIST(2,JM2).GE.0).and.(IDHEP(JM2).NE.990))
- & IGEN_had = IGEN
- else
- IGEN_had = -IGEN
- endif
- CALL PHO_REGPAR(1,IDPD2,IDHA2,JM2,JM1,P2(1),P2(2),P2(3),P2(4),
- & IPOM,IGEN_had,0,0,IPOS1,1)
-
- IND1 = IND1+2
- IND2 = IND2+2
-C update index
- IPOIX2 = IPOIX2+1
-
- IF(IPOIX2.GT.MAXIPX) THEN
- WRITE(LO,'(1X,2A,2I5)') 'PHO_POSPOM: no space left in ',
- & '/PORECU/ (IPOIX2,MAXIPX):',IPOIX2,MAXIPX
- IREJ = 1
- RETURN
- ENDIF
-
- IPORES(IPOIX2) = I+2
- IPOPOS(1,IPOIX2) = IPOS1-1
- IPOPOS(2,IPOIX2) = IPOS1
- RETURN
- ENDIF
- ENDIF
-
- 100 CONTINUE
- IF(ISWMDL(12).EQ.0) THEN
-C sample colors
- CALL PHO_SELCOL(0,0,ICA1,ICA2,ICB1,ICB2,1)
- CALL PHO_SELCOL(0,0,ICC1,ICC2,ICD1,ICD2,1)
-
-C purely gluonic pomeron or sea strings formed by gluons
-
- IF( ((IDHEP(JM1).EQ.990).AND.(IPAMDL(20).GT.0))
- & .OR.((IPAMDL(19).EQ.1).AND.(IND1.NE.1))) THEN
- IFLA1 = 21
- IFLA2 = 21
- ENDIF
- IF( ((IDHEP(JM2).EQ.990).AND.(IPAMDL(20).GT.0))
- & .OR.((IPAMDL(19).EQ.1).AND.(IND2.NE.1))) THEN
- IFLB1 = 21
- IFLB2 = 21
- ENDIF
-
-C color connection
- IF(IFLA1.NE.21) THEN
- IF(((ABS(IFLA1).GT.6).AND.(IFLA1.GT.0))
- & .OR.((ABS(IFLA1).LE.6).AND.(IFLA1.LT.0)))
- & CALL PHO_SWAPI(ICA1,ICD1)
- ENDIF
- IF(IFLB1.NE.21) THEN
- IF(((ABS(IFLB1).GT.6).AND.(IFLB1.LT.0))
- & .OR.((ABS(IFLB1).LE.6).AND.(IFLB1.GT.0)))
- & CALL PHO_SWAPI(ICB1,ICC1)
- ENDIF
- ISWAP = 0
- IF(ICA1*ICB1.GT.0) THEN
- IF((IND1.NE.1).AND.(IND2.NE.1)) THEN
- IF(DT_RNDM(CMASS1).GT.0.5D0) THEN
- CALL PHO_SWAPI(IFLA1,IFLA2)
- CALL PHO_SWAPI(ICA1,ICD1)
- ELSE
- CALL PHO_SWAPI(IFLB1,IFLB2)
- CALL PHO_SWAPI(ICB1,ICC1)
- ENDIF
- ELSE IF(IND1.NE.1) THEN
- CALL PHO_SWAPI(IFLA1,IFLA2)
- CALL PHO_SWAPI(ICA1,ICD1)
- ELSE IF(IND2.NE.1) THEN
- CALL PHO_SWAPI(IFLB1,IFLB2)
- CALL PHO_SWAPI(ICB1,ICC1)
- ELSE IF((IFLA1.EQ.-IFLA2).AND.(IFLB1.EQ.-IFLB2)) THEN
- IF(DT_RNDM(CMASS1).GT.0.5D0) THEN
- CALL PHO_SWAPI(IFLA1,IFLA2)
- CALL PHO_SWAPI(ICA1,ICD1)
- ELSE
- CALL PHO_SWAPI(IFLB1,IFLB2)
- CALL PHO_SWAPI(ICB1,ICC1)
- ENDIF
- ELSE IF(IFLA1.EQ.-IFLA2) THEN
- CALL PHO_SWAPI(IFLA1,IFLA2)
- CALL PHO_SWAPI(ICA1,ICD1)
- ELSE IF(IFLB1.EQ.-IFLB2) THEN
- CALL PHO_SWAPI(IFLB1,IFLB2)
- CALL PHO_SWAPI(ICB1,ICC1)
- ELSE
- ISWAP = 1
- IF(IDEB(9).GE.5) THEN
- WRITE(LO,'(1X,A,I12)')
- & 'PHO_POSPOM: string end swap (KEVENT)',KEVENT
- WRITE(LO,'(5X,A,4I7)')
- & 'flavors:',IFLA1,IFLA2,IFLB1,IFLB2
- WRITE(LO,'(5X,A,4I7)') 'colors :',ICA1,ICD1,ICB1,ICC1
- ENDIF
- ENDIF
- ENDIF
-
-C registration
-
-C purely gluonic pomeron or sea strings formed by gluons
- IF(IFLA1.EQ.21) THEN
- CALL PHO_REGPAR(-1,21,0,JM1,JM2,P1(1),P1(2),P1(3),P1(4),
- & IPOM,IGEN,ICA1,ICD1,IPOS1,1)
- IND1 = IND1+2
-
-C strings formed by quarks
- ELSE
-C valence quark labels
- IF((INDX1.EQ.1).and.(IPHIST(2,JM1).GE.0)
- & .and.(IDHEP(JM1).NE.990)) THEN
- ICA2 = 1
- ICD2 = 1
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,IFLA1,0,JM1,JM2,PSOFT1(1,IND1),
- & PSOFT1(2,IND1),PSOFT1(3,IND1),PSOFT1(4,IND1),IPOM,IGEN,ICA1,
- & ICA2,IPOS1,1)
- IND1 = IND1+1
- CALL PHO_REGPAR(-1,IFLA2,0,JM1,JM2,PSOFT1(1,IND1),
- & PSOFT1(2,IND1),PSOFT1(3,IND1),PSOFT1(4,IND1),IPOM,IGEN,ICD1,
- & ICD2,IPOS,1)
- IND1 = IND1+1
-
- ENDIF
-
-C purely gluonic pomeron or sea strings formed by gluons
- IF(IFLB1.EQ.21) THEN
- CALL PHO_REGPAR(-1,IFLB1,0,JM2,JM1,P2(1),P2(2),P2(3),P2(4),
- & IPOM,IGEN,ICB1,ICC1,IPOS2,1)
- IND2 = IND2+2
-
-C strings formed by quarks
- ELSE
-C valence quark labels
- IF((INDX2.EQ.1).and.(IPHIST(2,JM2).GE.0)
- & .and.(IDHEP(JM2).NE.990)) THEN
- ICB2 = 1
- ICC2 = 1
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,IFLB1,0,JM2,JM1,PSOFT2(1,IND2),
- & PSOFT2(2,IND2),PSOFT2(3,IND2),PSOFT2(4,IND2),IPOM,IGEN,ICB1,
- & ICB2,IPOS,1)
- IND2 = IND2+1
- CALL PHO_REGPAR(-1,IFLB2,0,JM2,JM1,PSOFT2(1,IND2),
- & PSOFT2(2,IND2),PSOFT2(3,IND2),PSOFT2(4,IND2),IPOM,IGEN,ICC1,
- & ICC2,IPOS2,1)
- IND2 = IND2+1
-
- ENDIF
-
-C soft pt assignment
- IF(ISWMDL(18).EQ.0) THEN
- CALL PHO_PARTPT(0,IPOS1,IPOS2,PTCUT(IP),IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(25) = IFAIL(25)+1
- RETURN
- ENDIF
- ENDIF
- ELSE
-* CALL PHO_BFKL(P1,P2,IPART,IREJ)
-* IF(IREJ.NE.0) RETURN
- ENDIF
-
- END
-
-CDECK ID>, PHO_HADSP2
- SUBROUTINE PHO_HADSP2(IFLB,XS1,XMAX,XSOFT1,IREJ)
-C***********************************************************************
-C
-C split hadron momentum XMAX into two partons using
-C lower cut-off: AS
-C
-C input: IFLB compressed particle code of particle to split
-C XS1 sum of x values already selected
-C XMAX maximal x possible
-C
-C output: XS1 new sum of x values (without first one)
-C XSOFT1 field of selected x values
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-8 )
-
- DIMENSION XSOFT1(50)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-
-C model exponents
- DATA PVMES1 /-0.5D0/
- DATA PVMES2 /-0.5D0/
- DATA PVBAR1 / 1.5D0/
- DATA PVBAR2 /-0.5D0/
-C
- IREJ = 0
- ITMAX = 100
-C
-C mesonic particle
- IF(ipho_bar3(IFLB,0).EQ.0) THEN
- XPOT1 = PVMES1+1.D0
- XPOT2 = PVMES2+1.D0
-C baryonic particle
- ELSE
- XPOT1 = PVBAR1+1.D0
- XPOT2 = PVBAR2+1.D0
- ENDIF
- ITER = 0
- XREST= 1.D0-XS1
-C selection loop
- 100 CONTINUE
- ITER = ITER+1
- IF(ITER.GE.ITMAX) THEN
- IF(IDEB(39).GE.3) THEN
- WRITE(LO,'(1X,A,I8)')
- & 'PHO_HADSP2: REJECTION (ITER)',ITER
- WRITE(LO,'(5X,A,3E12.3)') 'XS1,XMAX,AS:',XS1,XMAX,AS
- ENDIF
- IFAIL(14) = IFAIL(14)+1
- IREJ = 1
- RETURN
- ENDIF
- ZZ = XREST*PHO_RNDBET(XPOT2,XPOT1)
- IF((ZZ.GT.XMAX).OR.(ZZ.LT.AS)) GOTO 100
- XSS1 = XS1 + ZZ
- IF((1.D0-XSS1).LT.AS) GOTO 100
-C
- XS1 = XSS1
- XSOFT1(1) = 1.D0-XSS1
- XSOFT1(2) = ZZ
-C debug output
- IF(IDEB(39).GE.10) THEN
- WRITE(LO,'(1X,A,2I8)') 'PHO_HADSP2: ITMAX,ITER',ITMAX,ITER
- WRITE(LO,'(5X,A,3E10.3,5X,2E11.4)') 'XS1,XMAX,AS X1,X2:',
- & XS1,XMAX,AS,XSOFT1(1),XSOFT1(2)
- ENDIF
- END
-
-CDECK ID>, PHO_HADSP3
- SUBROUTINE PHO_HADSP3(IFLB,XS1,XMAX,XSOFT1,IREJ)
-C***********************************************************************
-C
-C split hadron momentum XMAX into diquark & quark pair
-C using lower cut-off: AS
-C
-C input: IFLB compressed particle code of particle to split
-C XS1 sum of x values already selected
-C XMAX maximal x possible
-C
-C output: XS1 new sum of x values
-C XSOFT1 field of selected x values
-C
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
- PARAMETER ( DEPS = 1.D-8 )
-
- DIMENSION XSOFT1(50),XSOFT2(50)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-
- DIMENSION XPOT1(3),XPOT2(3),XMIN(2,3)
-
-C model exponents
- DATA PVMES1 /-0.5D0/
- DATA PVMES2 /-0.5D0/
- DATA PSMES /-0.99D0/
- DATA PVBAR1 / 1.5D0/
- DATA PVBAR2 /-0.5D0/
- DATA PSBAR /-0.99D0/
-C
- IREJ = 0
-C
-C determine exponents
-C particle 1
-C
- XMMIN = 0.3D0/ECMP
- XBMIN = 1.6D0/ECMP
-C mesonic particle
- IF(ipho_bar3(IFLB,0).EQ.0) THEN
- XPOT1(1) = PVMES1
- XMIN(1,1) = XMMIN
- XPOT1(2) = PVMES2
- XMIN(1,2) = XMMIN
- XPOT1(3) = PSMES
- XMIN(1,3) = XMMIN
-C baryonic particle
- ELSE
- XPOT1(1) = PVBAR1
- XMIN(1,1) = XBMIN
- XPOT1(2) = PVBAR2
- XMIN(1,2) = XMMIN
- XPOT1(3) = PSBAR
- XMIN(1,3) = XMMIN
- ENDIF
-C particle 2
-C mesonic particle
- XPOT2(1) = PVMES1
- XMIN(2,1) = XMMIN
- XPOT2(2) = PVMES2
- XMIN(2,2) = XMMIN
- XPOT2(3) = PSMES
- XMIN(2,3) = XMMIN
-C
- XDUM1 = 0.01D0
- XDUM2 = 0.99D0
- CALL PHO_SELSXS(3,3,XPOT1,XPOT2,XMIN,XS1,XDUM1,XMAX,XDUM2,
- & XSOFT1,XSOFT2,IREJ)
-C rejection?
- IF(IREJ.NE.0) THEN
- IF(IDEB(74).GE.3) WRITE(LO,'(1X,A,I6,2E12.4)')
- & 'PHO_HADSP3: rejection (IFLB,XS1,XMAX)',IFLB,XS1,XMAX
- IFAIL(15) = IFAIL(15)+1
- IREJ = 1
- RETURN
- ENDIF
-C debug output
- IF(IDEB(74).GE.10) THEN
- WRITE(LO,'(1X,A,I6,2E12.4)')
- & 'PHO_HADSP3: IFLB,XS1,XMAX',IFLB,XS1,XMAX
- DO 100 I=1,3
- WRITE(LO,'(10X,I4,2E12.4)') I,XSOFT1(I),XSOFT2(I)
- 100 CONTINUE
- ENDIF
-
- END
-
-CDECK ID>, PHO_SOFTXX
- SUBROUTINE PHO_SOFTXX(JM1,JM2,MSPAR1,MSPAR2,IVAL1,IVAL2,MSM1,MSM2,
- & XSUM1,XSUM2,XMAX1,XMAX2,XS1,XS2,IREJ)
-C***********************************************************************
-C
-C select soft x values
-C
-C input: JM1,JM2 mother particle index in POEVT1
-C (0 flavour not known before)
-C MSPAR1,2 number of x values to select
-C IVAL1,2 number valence quarks involved in hard
-C scattering (0,1,2)
-C MSM1,2 minimum number of soft x to get sampled
-C XSUM1,2 sum of all x values samples up this call
-C XMAX1,2 max. x value
-C
-C output XSUM1,2 new sum of x-values sampled
-C XS1,2 field containing sampled x values
-C
-C x values of valence partons are first given
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-
- DIMENSION XS1(*),XS2(*)
-
- INTEGER MAXPOT
- PARAMETER ( MAXPOT = 50 )
- DIMENSION XPOT1(MAXPOT),XPOT2(MAXPOT),XMIN(2,MAXPOT)
-
- IREJ = 0
-
- MSMAX = MAX(MSPAR1,MSPAR2)
- MSMIN = MAX(MSM1,MSM2)
-
- IF(MSMAX.GT.MAXPOT) THEN
- WRITE(LO,'(1X,2A,2I4)') 'PHO_SOFTXX: no space left in ',
- & 'local fields XPOT1/2 (MSMAX,MAXPOT):',MSMAX,MAXPOT
- IREJ = 1
- RETURN
- ENDIF
-
-C determine exponents
- IBAR1 = ipho_bar3(JM1,2)
- IBAR2 = ipho_bar3(JM2,2)
- ISWAP = 0
- IF((IBAR1*IBAR2).LT.0) ISWAP = 1
-C meson-baryon scattering (asymmetric sea)
- IF((ABS(IBAR1)+ABS(IBAR2)).EQ.1) THEN
- PSBAR = PARMDL(53)
- PSMES = PARMDL(57)
- ELSE
- PSBAR = PARMDL(52)
- PSMES = PARMDL(56)
- ENDIF
-
-C lower limits for x sampling
- XMMINA = 2.D0*PARMDL(157)/ECMP
- XBMINA = 2.D0*PARMDL(158)/ECMP
- XSMINA = 2.D0*PARMDL(159)/ECMP
- XMIN1 = MAX(XSOMIN,AS/XMAX2)
- XMIN2 = MAX(XSOMIN,AS/XMAX1)
- XMAXP1 = MIN(1.D0-XMIN1*MSMAX,XMAX1)
- XMAXP2 = MIN(1.D0-XMIN2*MSMAX,XMAX2)
- XMIN1 = MAX(AS/XMAX2,XMIN1)
- XMIN2 = MAX(AS/XMAX1,XMIN2)
-
-C particle 1
- XMMIN1 = MAX(XMIN1,XMMINA)
- XBMIN1 = MAX(XMIN1,XBMINA)
- XSMIN1 = MAX(XMIN1,XSMINA)
-C mesonic particle
- IF(IBAR1.EQ.0) THEN
- IF(IHFLS(1).EQ.0) THEN
- XPOT1(1) = PARMDL(62)
- XMIN(1,1) = XSMIN1
- XPOT1(2) = PARMDL(63)
- XMIN(1,2) = XSMIN1
- ELSE
- XPOT1(1) = PARMDL(54)
- XMIN(1,1) = XMMIN1
- XPOT1(2) = PARMDL(55)
- XMIN(1,2) = XMMIN1
- ENDIF
- DO 100 I=3-IVAL1,MSMAX
- XPOT1(I) = PSMES
- XMIN(1,I) = XSMIN1
- 100 CONTINUE
-C baryonic particle
- ELSE
- IF(IHFLS(1).EQ.0) THEN
- XPOT1(1) = PARMDL(62)
- XMIN(1,1) = XSMIN1
- XPOT1(2) = PARMDL(63)
- XMIN(1,2) = XSMIN1
- ELSE
- XPOT1(1) = PARMDL(50)
- XMIN(1,1) = XBMIN1
- XPOT1(2) = PARMDL(51)
- XMIN(1,2) = XMMIN1
- ENDIF
- DO 200 I=3-IVAL1,MSMAX
- XPOT1(I) = PSBAR
- XMIN(1,I) = XSMIN1
- 200 CONTINUE
- ENDIF
-
-C particle 2
- XMMIN2 = MAX(XMIN2,XMMINA)
- XBMIN2 = MAX(XMIN2,XBMINA)
- XSMIN2 = MAX(XMIN2,XSMINA)
-C mesonic particle
- IF(IBAR2.EQ.0) THEN
- IF(IHFLS(2).EQ.0) THEN
- XPOT2(1) = PARMDL(62)
- XMIN(2,1) = XSMIN2
- XPOT2(2) = PARMDL(63)
- XMIN(2,2) = XSMIN2
- ELSE
- XPOT2(1) = PARMDL(54)
- XMIN(2,1) = XMMIN2
- XPOT2(2) = PARMDL(55)
- XMIN(2,2) = XMMIN2
- ENDIF
- DO 300 I=3-IVAL2,MSMAX
- XPOT2(I) = PSMES
- XMIN(2,I) = XSMIN2
- 300 CONTINUE
-C baryonic particle
- ELSE
- IF(IHFLS(2).EQ.0) THEN
- XPOT2(1) = PARMDL(62)
- XMIN(2,1) = XSMIN2
- XPOT2(2) = PARMDL(63)
- XMIN(2,2) = XSMIN2
- ELSE
- XPOT2(1) = PARMDL(50)
- XMIN(2,1) = XBMIN2
- XPOT2(2) = PARMDL(51)
- XMIN(2,2) = XMMIN2
- ENDIF
- DO 400 I=3-IVAL2,MSMAX
- XPOT2(I) = PSBAR
- XMIN(2,I) = XSMIN2
- 400 CONTINUE
- ENDIF
-
- XSS1 = XSUM1
- XSS2 = XSUM2
- MSOFT = MSMAX
-
-C check limits (important for valences)
- IF((XMIN(1,1).GE.XMAXP1).OR.(XMIN(1,2).GE.XMAXP1)) GOTO 1000
- IF((XMIN(2,1).GE.XMAXP2).OR.(XMIN(2,2).GE.XMAXP2)) GOTO 1000
-
- XMINS1 = XSS1
- IF(IHFLS(1).NE.0) XMINS1 = XMINS1+(PARMDL(166)/ECMP)**2
- XMINS2 = XSS2
- IF(IHFLS(2).NE.0) XMINS2 = XMINS2+(PARMDL(166)/ECMP)**2
- DO 10 I=1,MSOFT
- XMINS1 = XMINS1+XMIN(1,I)
- XMINS2 = XMINS2+XMIN(2,I)
- 10 CONTINUE
- IF((XMINS1.GE.1.D0).OR.(XMINS2.GE.1.D0)) GOTO 1000
-
-C try to sample x values
- IF(IPAMDL(14).EQ.0) THEN
- IF(MSOFT.EQ.2) THEN
- CALL PHO_SELSX2(XPOT1,XPOT2,XMIN,XSS1,XSS2,XMAXP1,XMAXP2,
- & XS1,XS2,IREJ)
- ELSE IF(MSOFT.LT.5) THEN
- CALL PHO_SELSXR(MSOFT,MSMIN,XPOT1,XPOT2,XMIN,XSS1,XSS2,
- & XMAXP1,XMAXP2,XS1,XS2,IREJ)
- ELSE
- CALL PHO_SELSXS(MSOFT,MSMIN,XPOT1,XPOT2,XMIN,XSS1,XSS2,
- & XMAXP1,XMAXP2,XS1,XS2,IREJ)
- ENDIF
- ELSE IF(IPAMDL(14).EQ.1) THEN
- IF(MSOFT.EQ.2) THEN
- CALL PHO_SELSX2(XPOT1,XPOT2,XMIN,XSS1,XSS2,XMAXP1,XMAXP2,
- & XS1,XS2,IREJ)
- ELSE
- CALL PHO_SELSXS(MSOFT,MSMIN,XPOT1,XPOT2,XMIN,XSS1,XSS2,
- & XMAXP1,XMAXP2,XS1,XS2,IREJ)
- ENDIF
- ELSE IF(IPAMDL(14).EQ.2) THEN
- CALL PHO_SELSXS(MSOFT,MSMIN,XPOT1,XPOT2,XMIN,XSS1,XSS2,
- & XMAXP1,XMAXP2,XS1,XS2,IREJ)
- ELSE IF(IPAMDL(14).EQ.3) THEN
- IF(MSOFT.EQ.2) THEN
- CALL PHO_SELSX2(XPOT1,XPOT2,XMIN,XSS1,XSS2,XMAXP1,XMAXP2,
- & XS1,XS2,IREJ)
- ELSE IF(IVAL1+IVAL2.EQ.0) THEN
- CALL PHO_SELSXI(MSOFT,MSMIN,XPOT1,XPOT2,XMIN,XSS1,XSS2,
- & XMAXP1,XMAXP2,XS1,XS2,IREJ)
- ELSE
- CALL PHO_SELSXS(MSOFT,MSMIN,XPOT1,XPOT2,XMIN,XSS1,XSS2,
- & XMAXP1,XMAXP2,XS1,XS2,IREJ)
- ENDIF
- ELSE
- WRITE(LO,'(/,1X,A,I3)')
- & 'PHO_SOFTXX:ERROR: unsupported IPAMDL(14)',IPAMDL(14)
- STOP
- ENDIF
- IF(IREJ.NE.0) THEN
- IFAIL(41) = IFAIL(41)+1
- IF(IDEB(60).GE.2) THEN
- WRITE(LO,'(1X,A,I12,4I3)')
- & 'PHO_SOFTXX: rejection: EVE,MSP1/2,MSM1/2',
- & KEVENT,MSPAR1,MSPAR2,MSM1,MSM2
- WRITE(LO,'(1X,A,1P4E11.3)') 'XSUM1/2,XMAX1/2',
- & XSUM1,XSUM2,XMAX1,XMAX2
- ENDIF
- RETURN
- ENDIF
- IF(MSOFT.NE.MSMAX) THEN
- MSDIFF = MSMAX-MSOFT
- MSPAR1 = MSPAR1-MSDIFF
- MSPAR2 = MSPAR2-MSDIFF
- ENDIF
-
-C correct for different MSPAR numbers
- IF(MSOFT.NE.MSPAR1) THEN
- IF(MSPAR1.GT.1) THEN
- XDEL = 0.D0
- DO 500 I=MSPAR1+1,MSOFT
- XDEL = XDEL+XS1(I)
- 500 CONTINUE
- XFAC = (1.D0-XSUM1)/(1.D0-XDEL-XSUM1)
- DO 550 I=2,MSPAR1
- XS1(I) = XS1(I)*XFAC
- 550 CONTINUE
- XSS1 = (XSS1-XDEL-XSUM1)*XFAC+XSUM1
- ELSE
- XSS1 = XSUM1
- ENDIF
- ENDIF
- IF(MSOFT.NE.MSPAR2) THEN
- IF(MSPAR2.GT.1) THEN
- XDEL = 0.D0
- DO 600 I=MSPAR2+1,MSOFT
- XDEL = XDEL+XS2(I)
- 600 CONTINUE
- XFAC = (1.D0-XSUM2)/(1.D0-XDEL-XSUM2)
- DO 650 I=2,MSPAR2
- XS2(I) = XS2(I)*XFAC
- 650 CONTINUE
- XSS2 = (XSS2-XDEL-XSUM2)*XFAC+XSUM2
- ELSE
- XSS2 = XSUM2
- ENDIF
- ENDIF
-
-C first x entry
- XS1(1) = 1.D0 - XSS1
- XS2(1) = 1.D0 - XSS2
- XSUM1 = XSS1
- XSUM2 = XSS2
-
-C debug output
- IF(IDEB(60).GE.10) THEN
- WRITE(LO,'(1X,A,I8,2I4,2E12.4)')
- & 'PHO_SOFTXX: EVE,MSPAR1/2,XSUM1/2:',
- & KEVENT,MSPAR1,MSPAR2,XSUM1,XSUM2
- WRITE(LO,'(1X,A)') 'PHO_SOFTXX: I XS1/2 XPOT1/2 XMIN1/2'
- DO 30 I=1,MSOFT
- WRITE(LO,'(5X,I3,6E12.4)') I,XS1(I),XS2(I),XPOT1(I),XPOT2(I),
- & XMIN(1,I),XMIN(2,I)
- 30 CONTINUE
- ENDIF
-
- RETURN
-
-C not enough phase space
- 1000 CONTINUE
-
- IFAIL(42) = IFAIL(42)+1
- IREJ = 1
-
-C warning message
- IF(IDEB(60).GE.1) THEN
- WRITE (6,'(1X,A,1P,2E11.3,/1X,A,/5X,6E11.3)')
- & 'PHO_SOFTXX: Xmin>Xmax or sum(Xmin)>1 (ECM,AS)',
- & ECMP,AS,'PHO_SOFTXX: Xmin1/2,Xmaxp1/2,sum(Xmin1/2)',
- & XMIN1,XMIN2,XMAXP1,XMAXP2,XMINS1,XMINS2
- WRITE(LO,'(1X,A,1P,3E11.3)')
- & 'PHO_SOFTXX: Xmmina,Xbmina,Xsmina:',XMMINA,XBMINA,XSMINA
- WRITE(LO,'(1X,A,1P,3E11.3)')
- & 'PHO_SOFTXX: Xmmin1,Xbmin1,Xsmin1:',XMMIN1,XBMIN1,XSMIN1
- WRITE(LO,'(1X,A,1P,3E11.3)')
- & 'PHO_SOFTXX: Xmmin2,Xbmin2,Xsmin2:',XMMIN2,XBMIN2,XSMIN2
- WRITE(LO,'(1X,A)')
- & 'PHO_SOFTXX: Table of lower x limits (I,Xmin(1,I),Xmin(2,I))'
- DO 27 I=1,MSOFT
- WRITE(LO,'(5X,I3,1P,2E11.3)') I,XMIN(1,I),XMIN(2,I)
- 27 CONTINUE
- WRITE(LO,'(1X,A,I10,2I4,2E11.3)')
- & 'PHO_SOFTXX: KEVENT,MSPAR1/2,XSUM1/2:',
- & KEVENT,MSPAR1,MSPAR2,XSUM1,XSUM2
- WRITE(LO,'(1X,A)') 'PHO_SOFTXX: I XPOT1/2 XMIN1/2'
- DO 25 I=1,MSOFT
- WRITE(LO,'(5X,I3,4E12.4)') I,XPOT1(I),XPOT2(I),
- & XMIN(1,I),XMIN(2,I)
- 25 CONTINUE
- ENDIF
-
- END
-
-CDECK ID>, PHO_SELSXR
- SUBROUTINE PHO_SELSXR(MSOFT,MSMIN,XPOT1,XPOT2,XMIN,XS1,XS2,
- & XMAX1,XMAX2,XSOFT1,XSOFT2,IREJ)
-C***********************************************************************
-C
-C select x values of soft string ends (rejection method)
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- DIMENSION XPOT1(*),XPOT2(*),XMIN(2,*),XSOFT1(*),XSOFT2(*)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-
- DIMENSION XLDIF(2,50),XLMIN(2,50),REVP(2,50),POT(2,50)
-
- IF(IDEB(13).GE.10) THEN
- WRITE(LO,'(1X,A)') 'PHO_SELSXR:'
- WRITE(LO,'(5X,A,I4,5E11.3)') 'MSOFT,XS1,XS2,XMAX1,2',
- & MSOFT,XS1,XS2,XMAX1,XMAX2
- DO 40 I=1,MSOFT
- WRITE(LO,'(5X,A,I4,2E12.3)') 'EXPONENTS',I,XPOT1(I),XPOT2(I)
- 40 CONTINUE
- ENDIF
-C
- IREJ = 0
-C
- XMINK = MAX(PSOMIN/ECM*2.D0,XSOMIN)
- XMIN1 = MAX(AS/XMAX1,XMINK)
- XMIN2 = MAX(AS/XMAX2,XMINK)
-C
- IF(MSOFT.EQ.1) THEN
- XSOFT1(2) = 0.D0
- XSOFT2(2) = 0.D0
- RETURN
- ENDIF
- XWMAX = MAX(XMAX1**XPOT1(1),XMIN1**XPOT1(1))
- & *MAX(XMAX2**XPOT2(1),XMIN2**XPOT2(1))
-C
- 10 CONTINUE
-C
- DO 50 I=2,MSOFT
- POT(1,I) = XPOT1(I)+1.D0
- POT(2,I) = XPOT2(I)+1.D0
- REVP(1,I) = 1.D0/POT(1,I)
- REVP(2,I) = 1.D0/POT(2,I)
- XLMIN(1,I) = XMIN(1,I)**POT(1,I)
- XLMAX = XMAX1**POT(1,I)
- XLDIF(1,I) = XLMAX-XLMIN(1,I)
- XLMIN(2,I) = XMIN(2,I)**POT(2,I)
- XLMAX = XMAX2**POT(2,I)
- XLDIF(2,I) = XLMAX-XLMIN(2,I)
- 50 CONTINUE
-C
- ITRY0 = 0
- 5 CONTINUE
- ITRY0 = ITRY0 + 1
- IF(ITRY0.GE.IPAMDL(181)) THEN
- IF(MSOFT-MSMIN.GE.2) THEN
- MSOFT = MSMIN
- GOTO 10
- ENDIF
- GOTO 1000
- ENDIF
- XREST1 = 1.D0-XS1
- XREST2 = 1.D0-XS2
- DO 100 I=2,MSOFT
- ITRY1 = 0
-
- 20 CONTINUE
- Z1 = XLDIF(1,I)*DT_RNDM(XS1)+XLMIN(1,I)
- Z2 = XLDIF(2,I)*DT_RNDM(XS2)+XLMIN(2,I)
- XSOFT1(I) = Z1**REVP(1,I)
- XSOFT2(I) = Z2**REVP(2,I)
- ITRY1 = ITRY1+1
- IF(ITRY1.GE.50) GOTO 1000
- IF( (XSOFT1(I)*XSOFT2(I)).LT.AS ) GOTO 20
-
- XREST1 = XREST1-XSOFT1(I)
- IF(XREST1.LT.XMIN1) GOTO 5
- IF(XREST1.LT.XMIN(1,1)) GOTO 5
- XREST2 = XREST2-XSOFT2(I)
- IF(XREST2.LT.XMIN2) GOTO 5
- IF(XREST2.LT.XMIN(2,1)) GOTO 5
- IF(XREST1*XREST2.LT.AS) GOTO 5
-
- 100 CONTINUE
- XSOFT1(1) = XREST1
- XSOFT2(1) = XREST2
- IREJ=0
-* XX = 1.D0
-* DO 200 I=2,MSOFT
-* XX = XX*XSOFT1(I)**XPOT1(I)*XSOFT2(I)**XPOT2(I)
-*200 CONTINUE
- XX = XSOFT1(1)**XPOT1(1)*XSOFT2(1)**XPOT2(1)
- IF((XX-DT_RNDM(XX)*XWMAX).LT.0.D0) GOTO 5
-
- XS1 = 1.D0-XREST1
- XS2 = 1.D0-XREST2
- RETURN
-
- 1000 CONTINUE
- IREJ = 1
- IF(IDEB(13).GE.2) THEN
- WRITE(LO,'(1X,A,2I4)')
- & 'PHO_SELSXR: REJECTION(ITRY0/1)',ITRY0,ITRY1
- WRITE(LO,'(5X,A,3E12.3)') 'XMAX1,2,AS:',XMAX1,XMAX2,AS
- ENDIF
-
- END
-
-CDECK ID>, PHO_SELSX2
- SUBROUTINE PHO_SELSX2(XPOT1,XPOT2,XMIN,XSUM1,XSUM2,XMAX1,XMAX2,
- & XS1,XS2,IREJ)
-C***********************************************************************
-C
-C select x values of soft string ends using PHO_RNDBET
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- DIMENSION XPOT1(*),XPOT2(*),XMIN(2,*),XS1(*),XS2(*)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-
- IREJ = 0
-
- IF(IDEB(32).GE.10) THEN
- WRITE(LO,'(1X,A)') 'PHO_SELSX2:'
- WRITE(LO,'(5X,A,5E11.3)') 'AS,XSUM1,2,XMAX1,2',
- & AS,XSUM1,XSUM2,XMAX1,XMAX2
- DO 30 I=1,2
- WRITE(LO,'(5X,A,I4,2E12.3)') 'EXPONENTS',I,XPOT1(I),XPOT2(I)
- 30 CONTINUE
- ENDIF
-
- FAC1 = 1.D0-XSUM1
- FAC2 = 1.D0-XSUM2
- FAC = FAC1*FAC2
- GAM1 = XPOT1(1)+1.D0
- GAM2 = XPOT2(1)+1.D0
- BET1 = XPOT1(2)+1.D0
- BET2 = XPOT2(2)+1.D0
-
- ITRY0 = 0
- DO 100 I=1,IPAMDL(182)
-
- ITRY1 = 0
- 10 CONTINUE
- X1 = PHO_RNDBET(GAM1,BET1)
- ITRY1 = ITRY1+1
- IF(ITRY1.GE.50) GOTO 1000
- IF((X1.LE.XMIN(1,1)).OR.((1.D0-X1).LE.XMIN(1,2))) GOTO 10
-
- ITRY2 = 0
- 11 CONTINUE
- X2 = PHO_RNDBET(GAM2,BET2)
- ITRY2 = ITRY2+1
- IF(ITRY2.GE.50) GOTO 1000
- IF((X2.LE.XMIN(2,1)).OR.((1.D0-X2).LE.XMIN(2,2))) GOTO 11
-
- X3 = 1.D0 - X1
- X4 = 1.D0 - X2
- IF(X1*X2*FAC.GT.AS) THEN
- IF(X3*X4*FAC.GT.AS) THEN
- XS1(1) = X1*FAC1
- XS1(2) = X3*FAC1
- XS2(1) = X2*FAC2
- XS2(2) = X4*FAC2
- IF(XS1(1).GT.XMIN(1,1)) THEN
- IF(XS2(1).GT.XMIN(2,1)) THEN
- IF(XS1(2).GT.XMIN(1,2)) THEN
- IF(XS2(2).GT.XMIN(2,2)) THEN
- XSUM1 = XSUM1+XS1(2)
- XSUM2 = XSUM2+XS2(2)
- GOTO 300
- ENDIF
- ENDIF
- ENDIF
- ENDIF
- ENDIF
- ENDIF
- ITRY0 = ITRY0+1
-
- 100 CONTINUE
-
- 1000 CONTINUE
- IREJ = 1
- IF(IDEB(32).GE.2) THEN
- WRITE(LO,'(1X,A,3I4)')
- & 'PHO_SELSX2: REJECTION(ITRY0/1/2)',ITRY0,ITRY1,ITRY2
- WRITE(LO,'(5X,A,3E12.3)') 'XMAX1,2,AS:',XMAX1,XMAX2,AS
- ENDIF
- RETURN
- 300 CONTINUE
-
- END
-
-CDECK ID>, PHO_SELSXS
- SUBROUTINE PHO_SELSXS(MSOFT,MSMIN,XPOT1,XPOT2,XMIN,XS1,XS2,
- & XMAX1,XMAX2,XSOFT1,XSOFT2,IREJ)
-C***********************************************************************
-C
-C select x values of soft string ends (rescaling method)
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- DIMENSION XPOT1(*),XPOT2(*),XMIN(2,*),XSOFT1(*),XSOFT2(*)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-
- DIMENSION XLDIF(2,50),XLMIN(2,50),REVP(2,50),POT(2,50)
-
- IREJ = 0
-
- 10 CONTINUE
-
- IF(MSOFT.EQ.1) THEN
- XSOFT1(1) = 1.D0-XS1
- XSOFT1(2) = 0.D0
- XSOFT2(1) = 1.D0-XS2
- XSOFT2(2) = 0.D0
- RETURN
- ENDIF
-
- DO 50 I=1,MSOFT
- POT(1,I) = XPOT1(I)+1.D0
- POT(2,I) = XPOT2(I)+1.D0
- REVP(1,I) = 1.D0/POT(1,I)
- REVP(2,I) = 1.D0/POT(2,I)
- XLMIN(1,I) = XMIN(1,I)**POT(1,I)
- XLMAX = XMAX1**POT(1,I)
- XLDIF(1,I) = XLMAX-XLMIN(1,I)
- XLMIN(2,I) = XMIN(2,I)**POT(2,I)
- XLMAX = XMAX2**POT(2,I)
- XLDIF(2,I) = XLMAX-XLMIN(2,I)
- 50 CONTINUE
-
- ITRY0 = 0
- 5 CONTINUE
- ITRY0 = ITRY0 + 1
- IF(ITRY0.GE.IPAMDL(180)) THEN
- IF(MSOFT-MSMIN.GE.2) THEN
- MSOFT= MSMIN
- GOTO 10
- ENDIF
- GOTO 1000
- ENDIF
- XSUM1 = 0.D0
- XSUM2 = 0.D0
- DO 100 I=1,MSOFT
- ITRY1 = 0
- 20 CONTINUE
- Z1 = XLDIF(1,I)*DT_RNDM(XS1)+XLMIN(1,I)
- Z2 = XLDIF(2,I)*DT_RNDM(XS2)+XLMIN(2,I)
- XSOFT1(I) = Z1**REVP(1,I)
- XSOFT2(I) = Z2**REVP(2,I)
- ITRY1 = ITRY1+1
- IF(ITRY1.GE.50) GOTO 1000
- IF( (XSOFT1(I)*XSOFT2(I)).LT.AS ) GOTO 20
- XSUM1 = XSUM1+XSOFT1(I)
- XSUM2 = XSUM2+XSOFT2(I)
- 100 CONTINUE
- FAC1 = (1.D0-XS1)/XSUM1
- FAC2 = (1.D0-XS2)/XSUM2
- DO 200 I=1,MSOFT
- XSOFT1(I) = XSOFT1(I)*FAC1
- XSOFT2(I) = XSOFT2(I)*FAC2
- IF(XSOFT1(I).LT.XMIN(1,I)) GOTO 5
- IF(XSOFT2(I).LT.XMIN(2,I)) GOTO 5
- IF(XSOFT1(I)*XSOFT2(I).LT.AS) GOTO 5
- 200 CONTINUE
-
- XS1 = 1.D0-XSOFT1(1)
- XS2 = 1.D0-XSOFT2(1)
- RETURN
-
- 1000 CONTINUE
- IREJ = 1
- IF(IDEB(14).GE.2) THEN
- WRITE(LO,'(1X,2A,3I4)') 'PHO_SELSXS: ',
- & 'rejection (MSOFT,ITRY0/1)',MSOFT,ITRY0,ITRY1
- DO 300 I=1,MSOFT
- WRITE(LO,'(5X,I4,1P4E11.3)') I,XMIN(1,I),XMIN(2,I),XMAX1,XMAX2
- 300 CONTINUE
- ENDIF
-
- END
-
-CDECK ID>, PHO_SELSXI
- SUBROUTINE PHO_SELSXI(MSOFT,MSMIN,XPOT1,XPOT2,XMIN,XS1,XS2,
- & XMAX1,XMAX2,XSOFT1,XSOFT2,IREJ)
-C***********************************************************************
-C
-C select x values of soft string ends (sea independent from valence)
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- DIMENSION XPOT1(*),XPOT2(*),XMIN(2,*),XSOFT1(*),XSOFT2(*)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-
- DIMENSION XLDIF(2,50),XLMIN(2,50),REVP(2,50),POT(2,50)
-
- IREJ = 0
-
- 10 CONTINUE
-
- DO 50 I=1,MSOFT
- POT(1,I) = XPOT1(I)+1.D0
- POT(2,I) = XPOT2(I)+1.D0
- REVP(1,I) = 1.D0/POT(1,I)
- REVP(2,I) = 1.D0/POT(2,I)
- XLMIN(1,I) = XMIN(1,I)**POT(1,I)
- XLMAX = XMAX1**POT(1,I)
- XLDIF(1,I) = XLMAX-XLMIN(1,I)
- XLMIN(2,I) = XMIN(2,I)**POT(2,I)
- XLMAX = XMAX2**POT(2,I)
- XLDIF(2,I) = XLMAX-XLMIN(2,I)
- 50 CONTINUE
-
-C selection of sea
- ITRY0 = 0
- 5 CONTINUE
-
- ITRY0 = ITRY0 + 1
- IF(ITRY0.GE.IPAMDL(183)) THEN
- IF(MSOFT-MSMIN.GE.2) THEN
- MSOFT = MSMIN
- GOTO 10
- ENDIF
- GOTO 1000
- ENDIF
- XSUM1 = XS1
- XSUM2 = XS2
- DO 100 I=3,MSOFT
- ITRY1 = 0
- 20 CONTINUE
- Z1 = XLDIF(1,I)*DT_RNDM(XS1)+XLMIN(1,I)
- Z2 = XLDIF(2,I)*DT_RNDM(XS2)+XLMIN(2,I)
- XSOFT1(I) = Z1**REVP(1,I)
- XSOFT2(I) = Z2**REVP(2,I)
- ITRY1 = ITRY1+1
- IF(ITRY1.GE.50) GOTO 1000
- IF( (XSOFT1(I)*XSOFT2(I)).LT.AS ) GOTO 20
- XSUM1 = XSUM1+XSOFT1(I)
- XSUM2 = XSUM2+XSOFT2(I)
- 100 CONTINUE
-
- IF(XSUM1.GT.1.D0-XMIN(1,1)-XMIN(1,2)) GOTO 5
- IF(XSUM2.GT.1.D0-XMIN(2,1)-XMIN(2,2)) GOTO 5
-
-C selection of valence
- CALL PHO_SELSX2(XPOT1,XPOT2,XMIN,XSUM1,XSUM2,XMAX1,XMAX2,
- & XSOFT1,XSOFT2,IREJ)
- IF(IREJ.NE.0) THEN
- IF(MSOFT-MSMIN.GE.2) THEN
- MSOFT = MSMIN
- GOTO 10
- ENDIF
- IF(IDEB(31).GE.2) WRITE(LO,'(1X,A,1P,4E11.4)')
- & 'PHO_SELSXI: rejection by PHO_SELSX2 (XSUM1/2,XMAX1/2)',
- & XSUM1,XSUM2,XMAX1,XMAX2
- RETURN
- ENDIF
-
- XS1 = 1.D0-XSOFT1(1)
- XS2 = 1.D0-XSOFT2(1)
- RETURN
-
- 1000 CONTINUE
- IREJ = 1
- IF(IDEB(14).GE.2) THEN
- WRITE(LO,'(1X,2A,3I4)') 'PHO_SELSXI: ',
- & 'rejection (MSOFT,ITRY0/1)',MSOFT,ITRY0,ITRY1
- DO 300 I=1,MSOFT
- WRITE(LO,'(5X,I4,1P4E11.3)') I,XMIN(1,I),XMIN(2,I),XMAX1,XMAX2
- 300 CONTINUE
- ENDIF
-
- END
-
-CDECK ID>, PHO_SELCOL
- SUBROUTINE PHO_SELCOL(ICO1,ICO2,ICOA1,ICOA2,ICOB1,ICOB2,IMODE)
-C********************************************************************
-C
-C color combinatorics
-C
-C input: ICO1,2 colors of incoming particle
-C IMODE -2 output of initialization status
-C -1 initialization
-C ICINP(1) selection mode
-C 0 QCD
-C 1 large N_c expansion
-C ICINP(2) max. allowed color
-C 0 clear internal color counter
-C 1 hadron into two colored objects
-C 2 quark into quark gluon
-C 3 gluon into gluon gluon
-C 4 gluon into quark antiquark
-C
-C output: ICOA1,2 colors of first outgoing particle
-C ICOB1,2 colors of second outgoing particle
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-
- DATA METHOD /0/, II /0/
-
- ICI1 = ICO1
- ICI2 = ICO2
- IF(METHOD.EQ.0) THEN
-
- IF(IMODE.EQ.1) THEN
- II = II+1
- IF(II.GT.MAXCOL)
- & II = MIN(DT_RNDM(DUM)*MAXCOL+1.00001,DBLE(MAXCOL))
- ICOA1 = II
- ICOA2 = 0
- ICOB1 = -II
- ICOB2 = 0
- ELSE IF(IMODE.EQ.2) THEN
- II = II+1
- IF(II.GT.MAXCOL)
- & II = MIN(DT_RNDM(DUM)*MAXCOL+1.00001,DBLE(MAXCOL))
- ICOA2 = 0
- IF(ICI1.GT.0) THEN
- ICOA1 = II
- ICOB1 = ICI1
- ICOB2 = -II
- ELSE
- ICOA1 = -II
- ICOB1 = II
- ICOB2 = ICI1
- ENDIF
- ELSE IF(IMODE.EQ.3) THEN
- II = II+1
- IF(II.GT.MAXCOL)
- & II = MIN(DT_RNDM(DUM)*MAXCOL+1.00001,DBLE(MAXCOL))
- IF(DT_RNDM(DUM).GT.0.5D0) THEN
- ICOA1 = ICI1
- ICOA2 = -II
- ICOB1 = II
- ICOB2 = ICI2
- ELSE
- ICOB1 = ICI1
- ICOB2 = -II
- ICOA1 = II
- ICOA2 = ICI2
- ENDIF
- ELSE IF(IMODE.EQ.4) THEN
- ICOA1 = ICI1
- ICOA2 = 0
- ICOB1 = ICI2
- ICOB2 = 0
- ELSE IF(IMODE.EQ.0) THEN
- II = 0
- ELSE IF(IMODE.EQ.-1) THEN
- METHOD = ICI1
- MAXCOL = ICI2
- ELSE IF(IMODE.EQ.-2) THEN
- WRITE(LO,'(1X,A,2I5)') 'PHO_SELCOL: METHOD,MAXCOL',
- & METHOD,MAXCOL
- ELSE
- WRITE(LO,'(1X,A,I5)')
- & 'PHO_SELCOL:ERROR: unsupported mode',IMODE
- CALL PHO_ABORT
- ENDIF
-
- ELSE
- WRITE(LO,'(1X,A,I5)')
- & 'PHO_SELCOL:ERROR:unsupported method selected',METHOD
- CALL PHO_ABORT
- ENDIF
-
- II = ABS(II)
- IF(IDEB(75).GE.10) THEN
- WRITE(LO,'(1X,A,I5,I12,I5)') 'PHO_SELCOL: IMODE,MAXCOL,II',
- & IMODE,MAXCOL,II
- WRITE(LO,'(10X,A,2I5)') 'input colors',ICI1,ICI2
- WRITE(LO,'(10X,A,4I5)') 'output colors',ICOA1,ICOA2,ICOB1,ICOB2
- ENDIF
-
- END
-
-CDECK ID>, ipho_diqu
- INTEGER FUNCTION ipho_diqu(iq1,iq2)
-C***********************************************************************
-C
-C selection of diquark number (PDG convention)
-C
-C***********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- integer iq1,iq2
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-
-C external functions
- double precision DT_RNDM
-
-C local variables
- integer i0,i1,i2
- double precision dum
-
- i1 = abs(iq1)
- i2 = abs(iq2)
-
- if(i1.eq.i2) then
- i0 = i1*1100+3
- else
- i0 = max(i1,i2)*1000+min(i1,i2)*100
- if(DT_RNDM(dum).gt.PARMDL(135)) then
- i0 = i0+1
- else
- i0 = i0+3
- endif
- endif
-
- ipho_diqu = sign(i0,iq1)
-
- END
-
-CDECK ID>, PHO_PARREM
- SUBROUTINE PHO_PARREM(INDX,IOUT,IREM,IREJ)
-C**********************************************************************
-C
-C selection of particle remnant flavour(s) (quark or diquark)
-C
-C input: INDX index of particle in /POEVT1/
-C IOUT parton which was taken out
-C
-C output: IREM remnant according to valence flavours
-C IREJ 0 flavour combination possible
-C 1 flavour combination impossible
-C
-C all particle ID are given according to PDG conventions
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- integer INDX,IOUT,IREM,IREJ
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-
-C external functions
- integer ipho_diqu
-
-C local variables
- integer ID,IS,ID1,ID2,i,k,K1,K2,IQUA,IDQ
- dimension IQUA(3),IDQ(2)
-
- ID1 = IDHEP(INDX)
- ID2 = IMPART(INDX)
- IREJ = 0
-
- IF(ID2.EQ.0) THEN
- WRITE(LO,'(1X,A,I6)') 'PHO_PARREM: no CPC ID available for',INDX
- CALL PHO_ABORT
- ENDIF
-
-C particle with flavour mixing
- if(ID1.eq.22) then
-C photon
- IREM = -IOUT
- GOTO 100
- else if((ID1.eq.111).or.(ID1.eq.113).or.(ID1.eq.223)) then
-C pi0, rho0, and omega
- IF(ABS(IOUT).LE.2) THEN
- IREM = -IOUT
- GOTO 100
- ELSE
- GOTO 150
- ENDIF
- else if((abs(ID1).eq.311).or.(ID1.eq.310).or.(ID1.eq.130)) then
-C neutral kaons (K0,K0-bar)
- if(abs(IOUT).eq.1) then
- IREM = sign(3,-IOUT)
- goto 100
- else if(abs(IOUT).eq.3) then
- IREM = sign(1,-IOUT)
- goto 100
- else
- goto 150
- endif
- else if((ID1.eq.990).or.(ID1.eq.110)) then
-C pomeron and reggeon
- IREM = -IOUT
- GOTO 100
- endif
-
-C ordinary hadron
- ID = abs(ID2)
- IS = sign(1,ID2)
- IQUA(1) = iq_list(1,ID)*IS
- IQUA(2) = iq_list(2,ID)*IS
- IQUA(3) = iq_list(3,ID)*IS
-
-C compare to flavour content
- IF(ABS(IOUT).LT.1000) THEN
-C single quark requested
- IF(IQUA(1).EQ.IOUT) THEN
- K1 = 2
- K2 = 3
- ELSE IF(IQUA(2).EQ.IOUT) THEN
- K1 = 1
- K2 = 3
- ELSE IF(IQUA(3).EQ.IOUT) THEN
- K1 = 1
- K2 = 2
- ELSE
- GOTO 150
- ENDIF
- IF(IQUA(3).EQ.0) THEN
- IREM = IQUA(K1)
- ELSE
- IREM = ipho_diqu(IQUA(K1),IQUA(K2))
- ENDIF
- ELSE IF(IQUA(3).NE.0) THEN
-C diquark requested from baryon
- IDQ(1) = IOUT/1000
- IDQ(2) = (IOUT-IDQ(1)*1000)/100
- do i=1,2
- do k=1,3
- if(IDQ(i).eq.IQUA(k)) then
- IQUA(k) = 0
- goto 110
- endif
- enddo
- goto 150
- 110 continue
- enddo
- IREM = IQUA(1)+IQUA(2)+IQUA(3)
- ENDIF
-
- 100 CONTINUE
-C debug output
- IF(IDEB(72).GE.10) WRITE(LO,'(1X,A,5I6)')
- & 'PHO_PARREM: INDX,ID-PDG,ID-BAM,IOUT,IREM',
- & INDX,ID1,ID2,IOUT,IREM
- RETURN
-
-C rejection
- 150 CONTINUE
- IREJ = 1
- IF(IDEB(72).GE.2) WRITE(LO,'(1X,A,5I7)')
- & 'PHO_PARREM: rejection IDPDG,Q1-3,IOUT',IDHEP(INDX),IQUA,IOUT
-
- END
-
-CDECK ID>, PHO_VALFLA
- SUBROUTINE PHO_VALFLA(IPAR,IFL1,IFL2,E1,E2)
-C***********************************************************************
-C
-C selection of valence flavour decomposition of particle IPAR
-C
-C input: IPAR particle index in /POEVT1/
-C -1 initialization
-C -2 output of statistics
-C XMASS mass of particle
-C (important for pomeron:
-C mass dependent flavour sampling)
-C
-C output: IFL1,IFL2
-C baryon: IFL1 diquark flavour
-C (valence flavours according to PDG conventions)
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( EPS = 0.1D0,
- & DEPS = 1.D-15)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-
- data ITMX / 5 /
-
- IF(IPAR.GT.0) THEN
- K = IPAR
-C select particle code
- ID1 = IDHEP(K)
- ID = abs(IMPART(K))
- IBAR = IPHO_BAR3(K,2)
- ITER = 0
-
- 10 CONTINUE
-
- ifl1 = 0
- ifl2 = 0
- ITER = ITER+1
- if(ITER.GT.ITMX) then
- WRITE(LO,'(1x,2a,i10,1p,2e11.3)') 'PHO_VALFLA: ',
- & 'no valences found for (IPAR,E1,E2)',IPAR,E1,E2
- return
- endif
-
-C not baryon
- IF(IBAR.EQ.0) THEN
-
-C photon
- IF(ID1.EQ.22) THEN
-C charge dependent flavour sampling
- 15 CONTINUE
- K = INT(DT_RNDM(E1)*6.D0)+1
- IF(K.LE.4) THEN
- IFL1 = 2
- IFL2 = -2
- ELSE IF(K.EQ.5) THEN
- IFL1 = 1
- IFL2 = -1
- ELSE
- IFL1 = 3
- IFL2 = -3
- ENDIF
-C optional strangeness suppression
- IF((IFL1.EQ.3).AND.(DT_RNDM(E2).GT.PARMDL(160))) GOTO 15
- IF(DT_RNDM(DUM).LT.0.5D0) THEN
- K = IFL1
- IFL1 = IFL2
- IFL2 = K
- ENDIF
-
-C pomeron, reggeon
- ELSE IF((ID1.EQ.990).or.(ID1.eq.110)) THEN
- IF(ISWMDL(19).EQ.0) THEN
-C SU(3) symmetric valences
- K = INT(DT_RNDM(E1)*3.D0)+1
- IF(DT_RNDM(DUM).LT.0.5D0) THEN
- IFL1 = K
- ELSE
- IFL1 = -K
- ENDIF
- IFL2 = -IFL1
- ELSE IF(ISWMDL(19).EQ.1) THEN
-C mass dependent flavour sampling
- EMIN = MIN(E1,E2)
- CALL PHO_SEAFLA(IPAR,IFL1,IFL2,EMIN)
- ELSE
- WRITE(LO,'(/1X,2A,I5)') 'PHO_VALFLA: ',
- & 'invalid flavour selection mode ISWMDL(19)',ISWMDL(19)
- CALL PHO_ABORT
- ENDIF
-
-C meson with flavour mixing
- ELSE if((ID1.eq.111).or.(ID1.eq.113).or.(ID1.eq.223)) then
- K = INT(2.D0*DT_RNDM(E1))+1
- IFL1 = K
- IFL2 = -K
-C meson (standard)
- ELSE
- K = INT(2.D0*DT_RNDM(E1))+1
- IFL1 = iq_list(K,ID)
- K = MOD(K,2) + 1
- IFL2 = iq_list(K,ID)
- if(IFL1.EQ.0) then
- EMIN = MIN(E1,E2)
- CALL PHO_SEAFLA(IPAR,IFL1,IFL2,EMIN)
- endif
- ENDIF
-
-C baryon
- ELSE
- K = INT(2.999999D0*DT_RNDM(E2))+1
- K1 = MOD(K,3)+1
- K2 = MOD(K1,3)+1
- IFL1 = ipho_diqu(iq_list(K1,ID),iq_list(K2,ID))
- IFL2 = iq_list(K,ID)
- ENDIF
-
-C change sign for antiparticles
- if(ID1.lt.0) then
- IFL1 = -IFL1
- IFL2 = -IFL2
- endif
-
-************************************************************************
-C check kinematic constraints
-* IF((PHO_PMASS(IFL1,3).GT.E1)
-* & .OR.(PHO_PMASS(IFL2,3).GT.E2)) GOTO 10
-************************************************************************
-
-C debug output
- IF(IDEB(46).GE.10) WRITE(LO,'(1X,A,I5,2E12.4,2I7)')
- & 'PHO_VALFLA: IPAR,MASS1/2,FL1/2',IPAR,E1,E2,IFL1,IFL2
-
- ELSE IF(IPAR.EQ.-1) THEN
-C initialization
-
- ELSE IF(IPAR.EQ.-2) THEN
-C output of final statistics
-
- ELSE
- WRITE(LO,'(1X,A,I10)')
- & 'PHO_VALFLA:ERROR: invalid input particle (IPAR)',IPAR
- CALL PHO_ABORT
- ENDIF
-
- END
-
-CDECK ID>, PHO_REGFLA
- SUBROUTINE PHO_REGFLA(JM1,JM2,IFLR1,IFLR2,IREJ)
-C**********************************************************************
-C
-C selection of reggeon flavours
-C
-C input: JM1,JM2 position index of mother hadrons
-C
-C output: IFLR1,IFLR2 valence flavours according to
-C PDG conventions and JM1,JM2
-C IREJ 0 reggeon possible
-C 1 reggeon impossible
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( EPS = 0.1D0,
- & DEPS = 1.D-15)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
- IF(JM1.GT.0) THEN
- IREJ = 0
- ITER = 0
-C available energy
- E1 = SQRT((PHEP(4,JM1)+PHEP(4,JM2))**2
- & -(PHEP(1,JM1)+PHEP(1,JM2))**2
- & -(PHEP(2,JM1)+PHEP(2,JM2))**2
- & -(PHEP(3,JM1)+PHEP(3,JM2))**2)/2.D0
- 50 CONTINUE
- ITER = ITER+1
- IF(ITER.GT.50) THEN
- IREJ = 1
-C debug output
- IF(IDEB(41).GE.2) WRITE(LO,'(/1X,A,2I7,1P,E12.4)')
- & 'PHO_REGFLA: rejection, no reggeon found for',
- & IDHEP(JM1),IDHEP(JM2),E1
- RETURN
- ENDIF
-
- CALL PHO_VALFLA(JM1,IFLA1,IFLA2,E1,E1)
- CALL PHO_VALFLA(JM2,IFLB1,IFLB2,E1,E1)
- IF(IFLA1.EQ.-IFLB1) THEN
- IFLR1 = IFLA2
- IFLR2 = IFLB2
- ELSE IF(IFLA1.EQ.-IFLB2) THEN
- IFLR1 = IFLA2
- IFLR2 = IFLB1
- ELSE IF(IFLA2.EQ.-IFLB1) THEN
- IFLR1 = IFLA1
- IFLR2 = IFLB2
- ELSE IF(IFLA2.EQ.-IFLB2) THEN
- IFLR1 = IFLA1
- IFLR2 = IFLB1
- ELSE
-C debug output
- IF(IDEB(41).GE.25) WRITE(LO,'(/1X,A,3I4)')
- & 'PHO_REGFLA: int.rejection JM1,JM2,ITRY',JM1,JM2,ITER
- GOTO 50
- ENDIF
-C debug output
- IF(IDEB(41).GE.10) WRITE(LO,'(1X,A,/5X,2I4,2I6,2I5,1PE10.3)')
- & 'PHO_REGFLA: JM1/2,PDG-ID1/2,IFLR1/2,MASS',
- & JM1,JM2,IDHEP(JM1),IDHEP(JM2),IFLR1,IFLR2,E1
- ELSE IF(JM1.EQ.-1) THEN
-C initialization
- ELSE IF(JM1.EQ.-2) THEN
-C output of statistics
- ELSE
- WRITE(LO,'(1X,A,I10)')
- & 'PHO_REGFLA: invalid mother particle (JM1)',JM1
- CALL PHO_ABORT
- ENDIF
-
- END
-
-CDECK ID>, PHO_SEAFLA
- SUBROUTINE PHO_SEAFLA(IPAR,IFL1,IFL2,CHMASS)
-C**********************************************************************
-C
-C selection of sea flavour content of particle IPAR
-C
-C input: IPAR particle index in /POEVT1/
-C CHMASS available invariant string mass
-C positive mass --> use BAMJET method
-C negative mass --> SU(3) symmetric sea according
-C to values given in PARMDL(1-6)
-C IPAR -1 initialization
-C -2 output of statistics
-C
-C output: sea flavours according to PDG conventions
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( EPS = 0.1D0,
- & DEPS = 1.D-15)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C some hadron information, will be deleted in future versions
- INTEGER NFS
- DOUBLE PRECISION QMASS,BET,PCOUDI,PNORM,VALPRG
- COMMON /POHDRN/ QMASS(6),BET,PCOUDI,PNORM,VALPRG(2),NFS
-
- IF(IPAR.GT.0) THEN
- IF((ISWMDL(20).EQ.1).OR.(CHMASS.LT.0.D0)) THEN
-C constant weights for sea
- 15 CONTINUE
- SUM = 0.D0
- DO 40 K=1,NFSEA
- SUM = SUM + PARMDL(K)
- 40 CONTINUE
- XI = DT_RNDM(SUM)*SUM
- SUM = 0.D0
- DO 50 K=1,NFSEA
- SUM = SUM + PARMDL(K)
- IF(XI.LE.SUM) GOTO 55
- 50 CONTINUE
- 55 CONTINUE
- IF(K.GT.NFSEA) GOTO 15
- ELSE
-C mass dependent flavour sampling
- 10 CONTINUE
- CALL PHO_FLAUX(CHMASS,K)
- IF(K.GT.NFSEA) GOTO 10
- ENDIF
- IF(DT_RNDM(CHMASS).GT.0.5D0) K = -K
- IFL1 = K
- IFL2 = -K
- IF(IDEB(46).GE.10) THEN
- WRITE(LO,'(1X,A,3I5,E12.4)') 'PHO_SEAFLA:IPAR,IFL1,IFL2,MASS',
- & IPAR,IFL1,IFL2,CHMASS
- ENDIF
- ELSE IF(IPAR.EQ.-1) THEN
-C initialization
- NFSEA = NFS
- ELSE IF(IPAR.EQ.-2) THEN
-C output of statistics
- ELSE
- WRITE(LO,'(1X,A,I10)') 'PHO_SEAFLA:ERROR:INVALID IPAR',IPAR
- CALL PHO_ABORT
- ENDIF
-
- END
-
-CDECK ID>, PHO_FLAUX
- SUBROUTINE PHO_FLAUX(EQUARK,K)
-C***********************************************************************
-C
-C auxiliary subroutine to select flavours
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-14 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C some hadron information, will be deleted in future versions
- INTEGER NFS
- DOUBLE PRECISION QMASS,BET,PCOUDI,PNORM,VALPRG
- COMMON /POHDRN/ QMASS(6),BET,PCOUDI,PNORM,VALPRG(2),NFS
-
- DIMENSION WGHT(9)
-
-C calculate weights for given energy
- IF(EQUARK.LT.QMASS(1)) THEN
- IF(IDEB(16).GE.5)
- & WRITE(LO,'(1X,A,E12.3)') 'PHO_FLAUX: VERY SMALL MASS',
- & EQUARK
- WGHT(1) = 0.5D0
- WGHT(2) = 0.5D0
- WGHT(3) = 0.D0
- WGHT(4) = 0.D0
- SUM = 1.D0
- ELSE
- SUM = 0.D0
- DO 305 K=1,NFS
- IF(EQUARK.GT.QMASS(K)) THEN
- WGHT(K) = PHO_BETAF(EQUARK,QMASS(K),BET)
- ELSE
- WGHT(K) = 0.D0
- ENDIF
- SUM = SUM + WGHT(K)
- 305 CONTINUE
- ENDIF
-C sample flavours
- XI = SUM*(DT_RNDM(SUM)-DEPS)
- K = 0
- SUM = 0.D0
- 400 CONTINUE
- K = K+1
- SUM = SUM + WGHT(K)
- IF(XI.GT.SUM) GOTO 400
-C debug output
- IF(IDEB(16).GE.20) THEN
- WRITE(LO,'(1X,A,I5)') 'PHO_FLAUX: selected flavour',K
- ENDIF
- END
-
-CDECK ID>, PHO_BETAF
- DOUBLE PRECISION FUNCTION PHO_BETAF(X1,X2,BET)
-C********************************************************************
-C
-C weights of different quark flavours
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- AX=0.D0
- BETX1=BET*X1
- IF(BETX1.LT.70.D0) AX=-1.D0/BET**2*(BETX1+1.D0)*EXP(-BETX1)
- AY=1.D0/BET**2*(BET*X2+1.D0)*EXP(-BET*X2)
-
- PHO_BETAF=AX+AY
-
- END
-
-CDECK ID>, PHO_MCHECK
- SUBROUTINE PHO_MCHECK(J1,IREJ)
-C********************************************************************
-C
-C check parton momenta for fragmentation
-C
-C input: J1 first string number
-C /POEVT1/
-C /POSTRG/
-C
-C output: /POEVT1/
-C /POSTRG/
-C IREJ 0 successful
-C 1 failure
-C
-C in case of very small string mass:
-C NNCH mass label of string
-C 0 string
-C -1 octett baryon / pseudo scalar meson
-C 1 decuplett baryon / vector meson
-C IBHAD hadron number according to CPC,
-C string will be treated as resonance
-C (sometimes far off mass shell)
-C
-C constant WIDTH ( 0.01GeV ) determines range of acceptance
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( WIDTH = 0.01D0,
- & DEPS = 1.D-15 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C color string configurations including collapsed strings and hadrons
- INTEGER MSTR
- PARAMETER (MSTR=500)
- INTEGER NPOS,NCODE,IPAR1,IPAR2,IPAR3,IPAR4,NNCH,IBHAD
- COMMON /POSTRG/ NPOS(4,MSTR),NCODE(MSTR),
- & IPAR1(MSTR),IPAR2(MSTR),IPAR3(MSTR),IPAR4(MSTR),
- & NNCH(MSTR),IBHAD(MSTR),ISTR
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-
- IREJ = 0
-C quark antiquark jet
- STRM = PHEP(5,NPOS(1,J1))
- IF(NCODE(J1).EQ.3) THEN
- CALL PHO_MEMASS(IPAR1(J1),IPAR2(J1),
- & AMPS,AMPS2,AMVE,AMVE2,IPS,IVE)
- IF(IDEB(18).GE.5)
- & WRITE(LO,'(1X,A,/3X,I3,5E12.3)')
- & 'PHO_MCHECK:1.STRING NO, CHMASS,AMPS,AMPS2,AMVE,AMVE2 ',
- & J1,STRM,AMPS,AMPS2,AMVE,AMVE2
- IF(STRM.LT.AMPS) THEN
- IREJ = 1
- IFAIL(20) = IFAIL(20) + 1
- RETURN
- ELSE IF(STRM.LT.AMPS2) THEN
- IF(STRM.LT.(AMVE-WIDTH)) THEN
- NNCH(J1) = -1
- IBHAD(J1) = IPS
- ELSE
- NNCH(J1) = 1
- IBHAD(J1) = IVE
- ENDIF
- ELSE
- NNCH(J1) = 0
- IBHAD(J1) = 0
- ENDIF
-C quark diquark or v.s. jet
- ELSE IF((NCODE(J1).EQ.4).OR.(NCODE(J1).EQ.6)) THEN
- CALL PHO_BAMASS(IPAR1(J1),IPAR2(J1),IPAR3(J1),
- & AM8,AM82,AM10,AM102,I8,I10)
- IF(IDEB(18).GE.5)
- & WRITE(LO,'(1X,A,/5X,I3,5E12.3)')
- & 'PHO_MCHECK:1.STRING NO, CHMASS,AM8,AM82,AM10,AM102 ',
- & J1,STRM,AM8,AM82,AM10,AM102
- IF(STRM.LT.AM8) THEN
- IREJ = 1
- IFAIL(19) = IFAIL(19) + 1
- RETURN
- ELSE IF(STRM.LT.AM82) THEN
- IF(STRM.LT.(AM10-WIDTH)) THEN
- NNCH(J1) = -1
- IBHAD(J1) = I8
- ELSE
- NNCH(J1) = 1
- IBHAD(J1) = I10
- ENDIF
- ELSE
- NNCH(J1) = 0
- IBHAD(J1) = 0
- ENDIF
-C diquark a-diquark string
- ELSE IF(NCODE(J1).EQ.5) THEN
- CALL PHO_DQMASS(IPAR1(J1),IPAR2(J1),IPAR3(J1),IPAR4(J1),
- & AM82,AM102)
- IF(IDEB(18).GE.5)
- & WRITE(LO,'(1X,A,/5X,I3,3E12.3)')
- & 'PHO_MCHECK:1.STRING NO, CHMASS,AM82,AM102 ',
- & J1,STRM,AM82,AM102
- IF(STRM.LT.AM82) THEN
- IREJ = 1
- IFAIL(19) = IFAIL(19) + 1
- RETURN
- ELSE
- NNCH(J1) = 0
- IBHAD(J1) = 0
- ENDIF
- ELSE IF(NCODE(J1).LT.0) THEN
- RETURN
- ELSE
- WRITE(LO,'(/,1X,2A,2I8)') 'PHO_MCHECK: ',
- & 'inconsistent flavours for string (NO,NCODE)',J1,NCODE(J1)
- CALL PHO_ABORT
- ENDIF
- END
-
-CDECK ID>, PHO_POMCOR
- SUBROUTINE PHO_POMCOR(IREJ)
-C********************************************************************
-C
-C join quarks to gluons in case of too small masses
-C
-C input: /POEVT1/
-C /POSTRG/
-C IREJ -1 initialization
-C -2 output of statistics
-C
-C output: /POEVT1/
-C /POSTRG/
-C IREJ 0 successful
-C 1 failure
-C
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( EPS = 1.D-10 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C color string configurations including collapsed strings and hadrons
- INTEGER MSTR
- PARAMETER (MSTR=500)
- INTEGER NPOS,NCODE,IPAR1,IPAR2,IPAR3,IPAR4,NNCH,IBHAD
- COMMON /POSTRG/ NPOS(4,MSTR),NCODE(MSTR),
- & IPAR1(MSTR),IPAR2(MSTR),IPAR3(MSTR),IPAR4(MSTR),
- & NNCH(MSTR),IBHAD(MSTR),ISTR
-
- DIMENSION PJ(4)
-
- IF(IREJ.EQ.-1) THEN
- ICTOT = 0
- ICCOR = 0
- RETURN
- ELSE IF(IREJ.EQ.-2) THEN
-C *** Commented by Chiara
-C WRITE(LO,'(/1X,A,2I8)')
-C & 'PHO_POMCOR: total/joined strings',ICTOT,ICCOR
- RETURN
- ENDIF
-C
- IREJ = 0
-C
- NITER = 100
- ITER = 0
- ICTOT = ICTOT+ISTR
- IF(ISWMDL(25).LE.0) RETURN
-C debug string entries
- IF(IDEB(83).GE.25) CALL PHO_PRSTRG
-C
- 50 CONTINUE
- ITER = ITER+1
- IF(ITER.GE.NITER) THEN
- IREJ = 1
- IF(IDEB(83).GE.2) THEN
- WRITE(LO,'(1X,A,2I5)') 'PHO_POMCOR: rejection',ITER,NITER
- IF(IDEB(83).GE.10) CALL PHO_PREVNT(0)
- ENDIF
- RETURN
- ENDIF
-C
-C check mass limits
- ISTRO = ISTR
- DO 100 I=1,ISTRO
- IF(NCODE(I).LT.0) GOTO 99
- J1 = NPOS(1,I)
- NRPOM = IPHIST(2,J1)
- IF(NRPOM.GE.100) GOTO 99
- CMASS0 = PHEP(5,J1)
-C get masses
- IF(NCODE(I).EQ.3) THEN
- CALL PHO_MEMASS(IPAR1(I),IPAR2(I),AM1,AM2,AM3,AM4,IP1,IP2)
- ELSE IF((NCODE(I).EQ.4).OR.(NCODE(I).EQ.6)) THEN
- CALL PHO_BAMASS(IPAR1(I),IPAR2(I),IPAR3(I),
- & AM1,AM2,AM3,AM4,IP1,IP2)
- ELSE IF(NCODE(I).EQ.5) THEN
- CALL PHO_DQMASS(IPAR1(I),IPAR2(I),IPAR3(I),IPAR4(I),
- & AM1,AM2)
- AM3 = 0.D0
- AM4 = 0.D0
- IP1 = 0
- IP2 = 0
- ELSE IF(NCODE(I).EQ.7) THEN
- GOTO 99
- ELSE IF(NCODE(I).LT.0) THEN
- GOTO 99
- ELSE
- WRITE(LO,'(/,1X,A,2I5)') 'ERROR:PHO_POMCOR:STRING NO,NCODE ',
- & J1,NCODE(I)
- CALL PHO_ABORT
- ENDIF
- IF(IDEB(83).GE.5)
- & WRITE(LO,'(1X,A,/3X,2I4,5E11.3,2I5)')
- & 'PHO_POMCOR: STRING,POM,CHMASS,AM1,AM2,AM3,AM4,IP1,IP2',
- & I,NRPOM,CMASS0,AM1,AM2,AM3,AM4,IP1,IP2
-C select masses to correct
- IF(CMASS0.LT.MAX(AM2,AM4)) THEN
- DO 200 K=1,ISTRO
- IF((K.NE.I).AND.(NCODE(K).GE.0)) THEN
- J2 = NPOS(1,K)
-C join quarks to gluon
- IF(NRPOM.EQ.IPHIST(2,J2)) THEN
-C flavour check
- IFL1 = 0
- IFL2 = 0
- PROB1 = 0.D0
- PROB2 = 0.D0
- KK1 = NPOS(2,I)
- KK2 = NPOS(2,K)
- IF(IDHEP(KK1)+IDHEP(KK2).EQ.0) THEN
- CMASS = (PHEP(4,KK1)+PHEP(4,KK2))**2
- & -(PHEP(1,KK1)+PHEP(1,KK2))**2
- & -(PHEP(2,KK1)+PHEP(2,KK2))**2
- & -(PHEP(2,KK1)+PHEP(2,KK2))**2
- IFL1 = ABS(IDHEP(KK1))
- IF(IFL1.GT.2) THEN
- PROB1 = 0.1D0/MAX(CMASS,EPS)
- ELSE
- PROB1 = 0.9D0/MAX(CMASS,EPS)
- ENDIF
- ENDIF
- KK1 = ABS(NPOS(3,I))
- KK2 = ABS(NPOS(3,K))
- IF(IDHEP(KK1)+IDHEP(KK2).EQ.0) THEN
- CMASS = (PHEP(4,KK1)+PHEP(4,KK2))**2
- & -(PHEP(1,KK1)+PHEP(1,KK2))**2
- & -(PHEP(2,KK1)+PHEP(2,KK2))**2
- & -(PHEP(2,KK1)+PHEP(2,KK2))**2
- IFL2 = ABS(IDHEP(KK1))
- IF(IFL2.GT.2) THEN
- PROB2 = 0.1D0/MAX(CMASS,EPS)
- ELSE
- PROB2 = 0.9D0/MAX(CMASS,EPS)
- ENDIF
- ENDIF
- IF(IFL1+IFL2.EQ.0) GOTO 99
-C fusion possible
- ICCOR = ICCOR+1
- IF((DT_RNDM(CMASS)*(PROB1+PROB2)).LT.PROB1) THEN
- JJ = 2
- JE = 3
- ELSE
- JJ = 3
- JE = 2
- ENDIF
- KK1 = ABS(NPOS(JJ,I))
- KK2 = ABS(NPOS(JJ,K))
- I1 = ABS(NPOS(JE,I))
- I2 = KK1
- IS = SIGN(1,I2-I1)
- I2 = I2 - IS
- K1 = KK2
- K2 = ABS(NPOS(JE,K))
- KS = SIGN(1,K2-K1)
- K1 = K1 + KS
- IP1 = NHEP+1
-C copy mother partons of string I
- DO 300 II=I1,I2,IS
- CALL PHO_REGPAR(-1,IDHEP(II),0,J1,J2,PHEP(1,II),
- & PHEP(2,II),PHEP(3,II),PHEP(4,II),I,IPHIST(2,II),
- & ICOLOR(1,II),ICOLOR(2,II),IPOS,1)
- 300 CONTINUE
-C register gluon
- DO 350 II=1,4
- PJ(II) = PHEP(II,KK1)+PHEP(II,KK2)
- 350 CONTINUE
- CALL PHO_REGPAR(-1,21,0,J1,J2,PJ(1),PJ(2),PJ(3),PJ(4),
- & I,IPHIST(2,KK2),ICOLOR(1,KK1),ICOLOR(1,KK2),IPOS,1)
-C copy mother partons of string K
- DO 400 II=K1,K2,KS
- CALL PHO_REGPAR(-1,IDHEP(II),0,J1,J2,PHEP(1,II),
- & PHEP(2,II),PHEP(3,II),PHEP(4,II),I,IPHIST(2,II),
- & ICOLOR(1,II),ICOLOR(2,II),IPOS,1)
- 400 CONTINUE
-C create new string entry
- DO 450 II=1,4
- PJ(II) = PHEP(II,J1)+PHEP(II,J2)
- 450 CONTINUE
- IP2 = IPOS
- CALL PHO_REGPAR(-1,90,0,IP1,-IP2,PJ(1),PJ(2),PJ(3),
- & PJ(4),I,IPHIST(2,J1),ICOLOR(1,J1)+ICOLOR(1,J2),
- & ICOLOR(2,J1)+ICOLOR(2,J2),IPOS,1)
-C delete string K in /POSTRG/
- NCODE(K) = -999
-C update string I in /POSTRG/
- NPOS(1,I) = IPOS
- NPOS(2,I) = IP1
- NPOS(3,I) = -IP2
-C calculate new CPC string codes
- CALL PHO_ID2STR(IDHEP(IP1),IDHEP(IP2),NCODE(I),IPAR1(I),
- & IPAR2(I),IPAR3(I),IPAR4(I))
- GOTO 99
- ENDIF
- ENDIF
- 200 CONTINUE
- ENDIF
- 99 CONTINUE
- 100 CONTINUE
- IF(IDEB(83).GE.20) THEN
- WRITE(LO,'(1X,A)') 'PHO_POMCOR: after string recombination'
- IF(IDEB(83).GE.22) THEN
- CALL PHO_PRSTRG
- CALL PHO_PREVNT(0)
- ENDIF
- ENDIF
-
- END
-
-CDECK ID>, PHO_MASCOR
- SUBROUTINE PHO_MASCOR(IREJ)
-C********************************************************************
-C
-C check and adjust parton momenta for fragmentation
-C
-C input: /POEVT1/
-C /POSTRG/
-C IREJ -1 initialization
-C -2 output of statistics
-C
-C output: /POEVT1/
-C /POSTRG/
-C IREJ 0 successful
-C 1 failure
-C
-C in case of very small string mass:
-C - direct manipulation of /POEVT1/ and /POEVT2/
-C - string will be deleted from /POSTRG/ (label -99)
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( EPS = 1.D-10,
- & EMIN = 0.3D0,
- & DEPS = 1.D-15)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C color string configurations including collapsed strings and hadrons
- INTEGER MSTR
- PARAMETER (MSTR=500)
- INTEGER NPOS,NCODE,IPAR1,IPAR2,IPAR3,IPAR4,NNCH,IBHAD
- COMMON /POSTRG/ NPOS(4,MSTR),NCODE(MSTR),
- & IPAR1(MSTR),IPAR2(MSTR),IPAR3(MSTR),IPAR4(MSTR),
- & NNCH(MSTR),IBHAD(MSTR),ISTR
-
- DIMENSION PC1(4),PC2(4),P1(4),PTR(4),GAM(3),GAMB(3)
-
- IF(IREJ.EQ.-1) THEN
- ICTOT = 0
- ICCOR = 0
- RETURN
- ELSE IF(IREJ.EQ.-2) THEN
-C *** Commented by Chiara
-C WRITE(LO,'(/1X,A,2I8/)')
-C & 'PHO_MASCOR: total/converted strings',ICTOT,ICCOR
- RETURN
- ENDIF
-
- IREJ = 0
- NITER = 100
- ITER = 0
- ICTOT = ICTOT+ISTR
- IF(ISWMDL(7).EQ.-1) RETURN
-C debug /POSTRG/
- IF(IDEB(42).GE.25) CALL PHO_PRSTRG
-
- ITOUCH = 0
- 50 CONTINUE
- ITER = ITER+1
- IF(ITER.GE.NITER) THEN
- IREJ = 1
- IF(IDEB(42).GE.2) THEN
- WRITE(LO,'(1X,A,2I5)') 'PHO_MASCOR: rejection',ITER,NITER
- IF(IDEB(42).GE.10) CALL PHO_PREVNT(0)
- ENDIF
- RETURN
- ENDIF
-
-C check mass limits
- IF(DT_RNDM(CMASS0).LT.0.5D0) THEN
- IM1 = 1
- IM2 = ISTR
- IST = 1
- ELSE
- IM1 = ISTR
- IM2 = 1
- IST = -1
- ENDIF
- DO 100 I=IM1,IM2,IST
- J1 = NPOS(1,I)
- CMASS0 = PHEP(5,J1)
-C get masses
- IF(NCODE(I).EQ.3) THEN
- CALL PHO_MEMASS(IPAR1(I),IPAR2(I),AM1,AM2,AM3,AM4,IP1,IP2)
- ELSE IF((NCODE(I).EQ.4).OR.(NCODE(I).EQ.6)) THEN
- CALL PHO_BAMASS(IPAR1(I),IPAR2(I),IPAR3(I),
- & AM1,AM2,AM3,AM4,IP1,IP2)
- ELSE IF(NCODE(I).EQ.5) THEN
- CALL PHO_DQMASS(IPAR1(I),IPAR2(I),IPAR3(I),IPAR4(I),
- & AM1,AM2)
- AM3 = 0.D0
- AM4 = 0.D0
- IP1 = 0
- IP2 = 0
- ELSE IF(NCODE(I).EQ.7) THEN
- AM1 = 0.15D0
- AM2 = 0.3D0
- AM3 = 0.765D0
- AM4 = 1.5D0
-*??????????????????????????????????
- IP1 = 23
- IP2 = 33
-*??????????????????????????????????
- ELSE IF(NCODE(I).LT.0) THEN
- GOTO 90
- ELSE
- WRITE(LO,'(/,1X,A,2I5)') 'PHO_MASCOR:ERROR: string no,NCODE ',
- & J1,NCODE(I)
- CALL PHO_ABORT
- ENDIF
- IF(IDEB(42).GE.20) WRITE(LO,'(1X,A,/3X,I3,5E11.3,2I5)')
- & 'PHO_MASCOR: string no CHMASS,AM1,AM2,AM3,AM4,IP1,IP2:',
- & I,CMASS0,AM1,AM2,AM3,AM4,IP1,IP2
-C select masses to correct
- IBHAD(I) = 0
- NNCH(I) = 0
-C correction needed?
-C no resonances for diquark-antidiquark and gluon-gluon strings
- IF(NCODE(I).EQ.5) THEN
- IF(CMASS0.LT.1.3D0*AM1) THEN
- IF(ISWMDL(7).LE.2) THEN
- IBHAD(I) = 90
- NNCH(I) = -1
- CHMASS = AM1*1.3D0
- ELSE
- IREJ = 1
- RETURN
- ENDIF
- ENDIF
- ELSE
- INEED = 0
-C resonances possible
- IF(ISWMDL(7).EQ.0) THEN
- IF(CMASS0.LT.AM1*0.99D0) THEN
- IBHAD(I) = IP1
- NNCH(I) = -1
- CHMASS = AM1
- INEED = 1
- ELSE IF(CMASS0.LT.MIN(AM2,AM4)*1.2D0) THEN
- DELM1 = 1.D0/((CMASS0-AM1)**2+EPS)
- DELM2 = 1.D0/((CMASS0-AM3)**2+EPS)
- IF(DT_RNDM(DELM1).LT.DELM1/(DELM1+DELM2)) THEN
- IBHAD(I) = IP1
- NNCH(I) = -1
- CHMASS = AM1
- ELSE
- IBHAD(I) = IP2
- NNCH(I) = 1
- CHMASS = AM3
- ENDIF
- ENDIF
- ELSE IF((ISWMDL(7).EQ.1).OR.(ISWMDL(7).EQ.2)) THEN
- IF(CMASS0.LT.AM1*0.99) THEN
- IBHAD(I) = IP1
- NNCH(I) = -1
- CHMASS = AM1
- INEED = 1
- ENDIF
- ELSE IF(ISWMDL(7).EQ.3) THEN
- IF(CMASS0.LT.AM1) THEN
- IREJ = 1
- RETURN
- ENDIF
- ELSE
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_MASCOR:ERROR:UNSUPPORTED ISWMDL(7)',ISWMDL(7)
- CALL PHO_ABORT
- ENDIF
- ENDIF
-C
-C correction necessary?
- IF(IBHAD(I).NE.0) THEN
-C find largest invar. mass
- IPOS = 0
- CMASS1 = -1.D0
- DO 200 J2=NHEP,3,-1
-
- IF(ABS(ISTHEP(J2)).EQ.1) THEN
- IF((IPHIST(1,J2).LE.0).OR.(IPHIST(1,J2).GT.ISTR)) THEN
- WRITE(LO,'(1X,2A,I7,I12)') 'PHO_MASCOR: ',
- & 'inconsistent IPHIST(1,J2) entry (J2,KEV):',J2,KEVENT
- CALL PHO_PREVNT(0)
- ELSE IF(NCODE(IPHIST(1,J2)).GT.0) THEN
- CMASS2= (PHEP(4,J1)+PHEP(4,J2))**2
- & -(PHEP(1,J1)+PHEP(1,J2))**2
- & -(PHEP(2,J1)+PHEP(2,J2))**2
- & -(PHEP(3,J1)+PHEP(3,J2))**2
- IF(CMASS2.GT.CMASS1) THEN
- IPOS=J2
- CMASS1=CMASS2
- ENDIF
- ENDIF
- ENDIF
-
- 200 CONTINUE
- J2 = IPOS
- IF((J1.EQ.J2).OR.(CMASS1.LE.EMIN)) THEN
- IF(INEED.EQ.1) THEN
- IREJ = 1
- RETURN
- ELSE
- IBHAD(I) = 0
- NNCH(I) = 0
- GOTO 90
- ENDIF
- ENDIF
- ISTA = ISTHEP(J1)
- ISTB = ISTHEP(J2)
- CMASS1 = SQRT(CMASS1)
- CMASS2 = PHEP(5,J2)
- IF(CMASS1.LT.(CMASS2+CHMASS)) CMASS2 = CMASS1-1.1D0*CHMASS
- IREJ = 1
- IF(CMASS2.GT.0.D0) CALL PHO_MSHELL(PHEP(1,J1),PHEP(1,J2),
- & CHMASS,CMASS2,PC1,PC2,IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(24) = IFAIL(24)+1
- IF(IDEB(42).GE.2) THEN
- WRITE(LO,'(1X,A,2I4)')
- & 'PHO_MASCOR: rejection by PHO_MSHELL (J1,J2):',J1,J2
- IF(IDEB(42).GE.10) CALL PHO_PREVNT(0)
- ENDIF
- IREJ = 1
- RETURN
- ENDIF
-C momentum transfer
- DO 210 II=1,4
- PTR(II) = PHEP(II,J2)-PC2(II)
- 210 CONTINUE
- IF(IDEB(42).GE.10) WRITE(LO,'(1X,A,/5X,2I3,4E12.3)')
- & 'PHO_MASCOR: J1,J2,transfer',J1,J2,PTR
-C copy parents of strings
-C register partons belonging to first string
- IF(IDHEP(J1).EQ.90) THEN
- K1 = JMOHEP(1,J1)
- K2 = MAX(JMOHEP(1,J1),-JMOHEP(2,J1))
- ESUM = 0.D0
- DO 500 II=K1,K2
- ESUM = ESUM+PHEP(4,II)
- 500 CONTINUE
- IF(JMOHEP(2,J1).GT.0) ESUM = ESUM+PHEP(4,JMOHEP(2,J1))
- DO 600 II=K1,K2
- FAC = PHEP(4,II)/ESUM
- DO 650 K=1,4
- P1(K) = PHEP(K,II)+FAC*PTR(K)
- 650 CONTINUE
- CALL PHO_REGPAR(-1,IDHEP(II),0,J1,J2,P1(1),P1(2),P1(3),
- & P1(4),IPHIST(1,II),IPHIST(2,II),ICOLOR(1,II),
- & ICOLOR(2,II),IPOS,1)
- 600 CONTINUE
- K1A = IPOS+K1-K2
- IF(JMOHEP(2,J1).GT.0) THEN
- II = JMOHEP(2,J1)
- FAC = PHEP(4,II)/ESUM
- DO 675 K=1,4
- P1(K) = PHEP(K,II)+FAC*PTR(K)
- 675 CONTINUE
- CALL PHO_REGPAR(-1,IDHEP(II),0,J1,J2,P1(1),P1(2),P1(3),
- & P1(4),IPHIST(1,II),IPHIST(2,II),ICOLOR(1,II),
- & ICOLOR(2,II),IPOS,1)
- ENDIF
- K2A = -IPOS
- ELSE
- K1A = J1
- K2A = J2
- ENDIF
-C register partons belonging to second string
- IF(IDHEP(J2).EQ.90) THEN
- CALL PHO_GETLTR(PHEP(1,J2),PC2,GAM,GAMB,DELE,IREJL)
- K1 = JMOHEP(1,J2)
- K2 = MAX(JMOHEP(1,J2),-JMOHEP(2,J2))
- ESUM = 0.D0
- DO 300 II=K1,K2
- ESUM = ESUM+PHEP(4,II)
- 300 CONTINUE
- IF(JMOHEP(2,J2).GT.0) ESUM = ESUM+PHEP(4,JMOHEP(2,J2))
- DO 400 II=K1,K2
- FAC = PHEP(4,II)/ESUM
- IF(IREJL.EQ.0) THEN
- CALL PHO_MKSLTR(PHEP(1,II),P1,GAM,GAMB)
- P1(4) = P1(4)+FAC*DELE
- ELSE
- DO 450 K=1,4
- P1(K) = PHEP(K,II)-FAC*PTR(K)
- 450 CONTINUE
- ENDIF
- CALL PHO_REGPAR(-1,IDHEP(II),0,J1,J2,P1(1),P1(2),P1(3),
- & P1(4),IPHIST(1,II),IPHIST(2,II),ICOLOR(1,II),
- & ICOLOR(2,II),IPOS,1)
- 400 CONTINUE
- K1B = IPOS+K1-K2
- IF(JMOHEP(2,J2).GT.0) THEN
- II = JMOHEP(2,J2)
- FAC = PHEP(4,II)/ESUM
- IF(IREJL.EQ.0) THEN
- CALL PHO_MKSLTR(PHEP(1,II),P1,GAM,GAMB)
- P1(4) = P1(4)+FAC*DELE
- ELSE
- DO 475 K=1,4
- P1(K) = PHEP(K,II)-FAC*PTR(K)
- 475 CONTINUE
- ENDIF
- CALL PHO_REGPAR(-1,IDHEP(II),0,J1,J2,P1(1),P1(2),P1(3),
- & P1(4),IPHIST(1,II),IPHIST(2,II),ICOLOR(1,II),
- & ICOLOR(2,II),IPOS,1)
- ENDIF
- K2B = -IPOS
- ELSE
- K1B = J1
- K2B = J2
- ENDIF
-C register first string/collapsed to hadron
- IF((ISWMDL(7).EQ.0).OR.(ISWMDL(7).EQ.1)) THEN
- IF(NCODE(I).NE.5) THEN
- CALL PHO_REGPAR(1,0,IBHAD(I),K1A,K2A,PC1(1),PC1(2),PC1(3),
- & PC1(4),IPHIST(1,J1),IPHIST(2,J1),0,0,IPOS,1)
-C label string as collapsed to hadron/resonance
- NCODE(I) = -99
- IDHEP(J1) = 92
- ELSE
- CALL PHO_REGPAR(-1,90,0,K1A,K2A,PC1(1),PC1(2),PC1(3),
- & PC1(4),IPHIST(1,J1),IPHIST(2,J1),0,0,IPOS,1)
- IDHEP(J1) = 91
- ENDIF
- NPOS(1,I) = IPOS
- NPOS(2,I) = K1A
- NPOS(3,I) = K2A
- ELSE
- CALL PHO_REGPAR(ISTA,IDHEP(J1),IMPART(J1),K1A,K2A,PC1(1),
- & PC1(2),PC1(3),PC1(4),IPHIST(1,J1),IPHIST(2,J1),
- & ICOLOR(1,J1),ICOLOR(2,J1),IPOS,1)
- IF(IDHEP(J1).EQ.90) THEN
- NPOS(1,IPHIST(1,J1)) = IPOS
- NPOS(2,IPHIST(1,J1)) = K1A
- NPOS(3,IPHIST(1,J1)) = K2A
-C label string as collapsed to resonance-string
- IDHEP(J1) = 91
- ELSE IF((IPHIST(1,J1).GE.1).AND.(IPHIST(1,J1).LE.ISTR)) THEN
- IF(NPOS(1,IPHIST(1,J1)).EQ.J1) NPOS(1,IPHIST(1,J1))=IPOS
- ENDIF
- ENDIF
-C register second string/hadron/parton
- CALL PHO_REGPAR(ISTB,IDHEP(J2),IMPART(J2),K1B,K2B,PC2(1),
- & PC2(2),PC2(3),PC2(4),IPHIST(1,J2),IPHIST(2,J2),ICOLOR(1,J2),
- & ICOLOR(2,J2),IPOS,1)
- IF(IDHEP(J2).EQ.90) THEN
- NPOS(1,IPHIST(1,J2))=IPOS
- NPOS(2,IPHIST(1,J2))=K1B
- NPOS(3,IPHIST(1,J2))=K2B
-C label string touched by momentum transfer
- IDHEP(J2) = 91
- ELSE IF((IPHIST(1,J2).GE.1).AND.(IPHIST(1,J2).LE.ISTR)) THEN
- IF(NPOS(1,IPHIST(1,J2)).EQ.J2) NPOS(1,IPHIST(1,J2))=IPOS
- ENDIF
- ICCOR = ICCOR+1
- ITOUCH = ITOUCH+1
-C consistency checks
- IF(IDEB(42).GE.5) THEN
- CALL PHO_CHECK(-1,IDEV)
- IF(IDEB(42).GE.25) CALL PHO_PREVNT(0)
- ENDIF
-C jump to next iteration
- GOTO 50
- ENDIF
- 90 CONTINUE
- 100 CONTINUE
-C debug output
- IF(IDEB(42).GE.15) THEN
- IF((ITOUCH.GT.0).OR.(IDEB(42).GE.25)) THEN
- WRITE(LO,'(1X,A,I5)') 'PHO_MASCOR: iterations:',ITER
- CALL PHO_PREVNT(1)
- ENDIF
- ENDIF
- END
-
-CDECK ID>, PHO_PARCOR
- SUBROUTINE PHO_PARCOR(MODE,IREJ)
-C********************************************************************
-C
-C conversion of string partons (using JETSET masses)
-C
-C input: MODE >0 position index of corresponding string
-C -1 initialization
-C -2 output of statistics
-C
-C output: /POSTRG/
-C IREJ 1 combination of strings impossible
-C 0 successful combination
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DELM = 0.005D0,
- & DEPS = 1.D-15,
- & EPS = 1.D-5)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C color string configurations including collapsed strings and hadrons
- INTEGER MSTR
- PARAMETER (MSTR=500)
- INTEGER NPOS,NCODE,IPAR1,IPAR2,IPAR3,IPAR4,NNCH,IBHAD
- COMMON /POSTRG/ NPOS(4,MSTR),NCODE(MSTR),
- & IPAR1(MSTR),IPAR2(MSTR),IPAR3(MSTR),IPAR4(MSTR),
- & NNCH(MSTR),IBHAD(MSTR),ISTR
-
- DIMENSION PP1(4),PP2(4),PB1(4),PB2(4),GAM(3),GAMB(3),
- & PL(4,100),XMP(100),XML(100)
-
- DOUBLE PRECISION PYMASS
-
- IREJ = 0
- IMODE = MODE
-C
- IF(IMODE.GT.0) THEN
- ICH = 0
- I1 = JMOHEP(1,IMODE)
- I2 = ABS(JMOHEP(2,IMODE))
-C copy to local field
- L = 0
- DO 100 I=I1,I2
- L = L+1
- DO 200 K=1,4
- PL(K,L) = PHEP(K,I)
- 200 CONTINUE
- XMP(L) = PHEP(5,I)
-
- XML(L) = PYMASS(IDHEP(I))
-
- 100 CONTINUE
- IPAR = L
- XMC = PHEP(5,IMODE)
- IF(IDEB(82).GE.20) THEN
- WRITE(LO,'(1X,A,I7,2I4)')
- & 'PHO_PARCOR: ini.momenta,masses(C/L),EV,ICH,L',
- & KEVENT,IMODE,L
- DO 150 I=1,L
- WRITE(LO,'(1X,4E12.4,2X,2E12.4)') (PL(K,I),K=1,4),
- & XMP(I),XML(I)
- 150 CONTINUE
- ENDIF
-C
-C two parton configurations
-C -----------------------------------------
- IF(IPAR.EQ.2) THEN
- XM1 = XML(1)
- XM2 = XML(2)
- IF((XM1+XM2).GE.XMC) THEN
- IF(IDEB(82).GE.6) WRITE(LO,'(1X,A,/,5X,I3,3E12.4)')
- & 'PHO_PARCOR: REJECTION I,XM1,XM2,XMC',
- & IMODE,XM1,XM2,XMC
- GOTO 990
- ENDIF
-C conversion possible
- CALL PHO_MSHELL(PL(1,1),PL(1,2),XM1,XM2,PP1,PP2,IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(36) = IFAIL(36)+1
- IF(IDEB(82).GE.6) WRITE(LO,'(1X,A,I8,I4,E12.4)')
- & 'PHO_PARCOR: rejection by PHO_MSHELL EV,STRING,MASS',
- & KEVENT,IMODE,XMC
- GOTO 990
- ENDIF
- ICH = 1
- DO 115 K=1,4
- PL(K,1) = PP1(K)
- PL(K,2) = PP2(K)
- XMP(1) = XM1
- XMP(2) = XM2
- 115 CONTINUE
-C
-C multi parton configurations
-C ---------------------------------
- ELSE
-C
-C random selection of string side to start with
- IF(DT_RNDM(XMC).LT.0.5D0) THEN
- K1 = 1
- K2 = IPAR
- KS = 1
- ELSE
- K1 = IPAR
- K2 = 1
- KS = -1
- ENDIF
- ITER = 0
-C
- 300 CONTINUE
- IF(ITER.LT.4) THEN
- KK = K1
- K1 = K2
- K2 = KK
- KS = -KS
- ELSE
- GOTO 990
- ENDIF
- ITER = ITER+1
-C select method
- IF(ITER.GT.2) GOTO 230
-
-C conversion according to color flow method
- IFAI = 0
- DO 210 II=K1,K2-KS,KS
- DO 215 IK=II+KS,K2,KS
- XM1 = XML(II)
- XM2 = XML(IK)
-* IF(IDEB(82).GE.10) WRITE(LO,'(1X,A,2I3,4E12.4)')
-* & 'PHO_PARCOR:I,K,XM(1-4)',II,IK,XM1,XMP(II),XM2,XMP(IK)
- IF((ABS(XM1-XMP(II)).GT.DELM)
- & .OR.(ABS(XM2-XMP(IK)).GT.DELM)) THEN
- CALL PHO_MSHELL(PL(1,II),PL(1,IK),XM1,XM2,PP1,PP2,IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(36) = IFAIL(36)+1
- IF(IDEB(82).GE.6) WRITE(LO,'(1X,2A,I8,3I4)')
- & 'PHO_PARCOR: ',
- & 'int.rej. by PHO_MSHELL EV,IC,I1,I2',
- & KEVENT,IMODE,II,IK
- IREJ = 0
- ELSE
- ICH = ICH+1
- DO 220 KK=1,4
- PL(KK,II) = PP1(KK)
- PL(KK,IK) = PP2(KK)
- 220 CONTINUE
- XMP(II) = XM1
- XMP(IK) = XM2
- GOTO 219
- ENDIF
- ELSE
- GOTO 219
- ENDIF
- 215 CONTINUE
- IFAI = II
- 219 CONTINUE
- 210 CONTINUE
- IF(IFAI.NE.0) GOTO 300
- GOTO 950
-C
- 230 CONTINUE
-C
-C conversion according to remainder method
- DO 350 I=K1,K2,KS
- XM1 = XML(I)
- IF(ABS(XM1-XMP(I)).GT.DELM) THEN
- ICH = ICH+1
- IFAI = I
-C conversion necessary
- DO 400 K=1,4
- PB1(K) = PL(K,I)
- PB2(K) = PHEP(K,IMODE)-PB1(K)
- 400 CONTINUE
- XM2 = PB2(4)**2-PB2(1)**2-PB2(2)**2-PB2(3)**2
- IF(XM2.LT.0.D0) THEN
- IF(IDEB(82).GE.10) WRITE(LO,'(1X,2A,/,5X,3I3,4E12.4)')
- & 'PHO_PARCOR: ',
- & 'int.rej. I,IPA,ICH,XML,XMP,XM2**2,MCHAIN',
- & I,IPAR,IMODE,XM1,XMP(I),XM2,XMC
- GOTO 300
- ENDIF
- XM2 = SQRT(XM2)
- IF((XM1+XM2).GE.XMC) THEN
- IF(IDEB(82).GE.10) WRITE(LO,'(1X,2A,/,5X,3I3,4E12.4)')
- & 'PHO_PARCOR: ',
- & 'int.rej. I,IPA,ICH,XML,XMP,XM2,XMC',
- & I,IPAR,IMODE,XM1,XMP(I),XM2,XMC
- GOTO 300
- ENDIF
-C conversion possible
- CALL PHO_MSHELL(PB1,PB2,XM1,XM2,PP1,PP2,IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(36) = IFAIL(36)+1
- IF(IDEB(82).GE.6) WRITE(LO,'(1X,A,I8,3I4)')
- & 'PHO_PARCOR: PHO_MSHELL rej. ITER,STRING,PARTON',
- & ITER,IMODE,I
- GOTO 300
- ENDIF
-C calculate Lorentz transformation
- CALL PHO_GETLTR(PB2,PP2,GAM,GAMB,DELE,IREJ)
- IF(IREJ.NE.0) THEN
- IF(IDEB(82).GE.6) WRITE(LO,'(1X,A,I8,3I4)')
- & 'PHO_PARCOR: PHO_GETLTR rej. ITER,STRING,PARTON',
- & ITER,IMODE,I
- GOTO 300
- ENDIF
- IFAI = 0
-C transform remaining partons
- DO 450 L=K1,K2,KS
- IF(L.NE.I) THEN
- CALL PHO_MKSLTR(PL(1,L),PP2,GAM,GAMB)
- DO 500 K=1,4
- PL(K,L) = PP2(K)
- 500 CONTINUE
- ELSE
- DO 550 K=1,4
- PL(K,L) = PP1(K)
- 550 CONTINUE
- ENDIF
- 450 CONTINUE
- XMP(I) = XM1
- ENDIF
- 350 CONTINUE
- ENDIF
-
-C register transformed partons
- 950 CONTINUE
- IREJ = 0
- IF(ICH.NE.0) THEN
- IP1 = NHEP+1
- L = 0
- DO 700 I=I1,I2
- L= L+1
- CALL PHO_REGPAR(-1,IDHEP(I),0,IMODE,0,PL(1,L),PL(2,L),
- & PL(3,L),PL(4,L),IPHIST(1,I),IPHIST(2,I),ICOLOR(1,I),
- & ICOLOR(2,I),IPOS,1)
- 700 CONTINUE
- IP2 = IPOS
-C register string
- CALL PHO_REGPAR(-1,90,0,IP1,-IP2,PHEP(1,IMODE),
- & PHEP(2,IMODE),PHEP(3,IMODE),PHEP(4,IMODE),IPHIST(1,IMODE),
- & IPHIST(2,IMODE),ICOLOR(1,IMODE),ICOLOR(2,IMODE),IPOS,1)
-C update /POSTRG/
- I = IPHIST(1,IMODE)
- NPOS(1,I) = IPOS
- NPOS(2,I) = IP1
- NPOS(3,I) = -IP2
- ENDIF
-C debug output
- IF(IDEB(82).GE.20) THEN
- WRITE(LO,'(1X,A,I7,2I4)')
- & 'PHO_PARCOR: fin.momenta,masses(C/L),(EV,ICH,L)',
- & KEVENT,IMODE,L
- DO 850 I=1,L
- WRITE(LO,'(1X,4E12.4,2X,2E12.4)') (PL(K,I),K=1,4),
- & XMP(I),XML(I)
- 850 CONTINUE
- WRITE(LO,'(1X,A,2I5)')
- & 'PHO_PARCOR: conversion done (old/new ICH)',IMODE,IPOS
- ENDIF
- RETURN
-C rejection
- 990 CONTINUE
- IREJ = 1
- IF(IDEB(82).GE.3) THEN
- WRITE(LO,'(/1X,A,/,5X,3I5,E12.4)')
- & 'PHO_PARCOR: rejection I,IPAR,ICHAIN,MCHAIN',
- & IFAI,IPAR,IMODE,XMC
- IF(IDEB(82).GE.5) THEN
- WRITE(LO,'(1X,A,I7,2I4)')
- & 'PHO_PARCOR: momenta,masses(C/L),(EV,ICH,L)',
- & KEVENT,IMODE,IPAR
- DO 155 I=1,IPAR
- WRITE(LO,'(1X,4E12.4,2X,2E12.4)') (PL(K,I),K=1,4),
- & XMP(I),XML(I)
- 155 CONTINUE
- ENDIF
- ENDIF
- RETURN
-
- ELSE IF(IMODE.EQ.-1) THEN
-C initialization
- RETURN
-
- ELSE IF(IMODE.EQ.-2) THEN
-C final output
- RETURN
- ENDIF
- END
-
-CDECK ID>, PHO_STRING
- SUBROUTINE PHO_STRING(IMODE,IREJ)
-C********************************************************************
-C
-C calculation of string combinatorics, Lorentz boosts and
-C particle codes
-C
-C - splitting of gluons
-C - strings will be built up from pairs of partons
-C according to their color labels
-C with IDHEP(..) = -1
-C - there can be other particles between to string partons
-C (these will be unchanged by string construction)
-C - string mass fine correction
-C
-C input: IMODE 1 complete string processing
-C -1 initialization
-C -2 output of statistics
-C
-C output: /POSTRG/
-C IREJ 1 combination of strings impossible
-C 0 successful combination
-C 50 rejection due to user cutoffs
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-15,
- & EPS = 1.D-5 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C color string configurations including collapsed strings and hadrons
- INTEGER MSTR
- PARAMETER (MSTR=500)
- INTEGER NPOS,NCODE,IPAR1,IPAR2,IPAR3,IPAR4,NNCH,IBHAD
- COMMON /POSTRG/ NPOS(4,MSTR),NCODE(MSTR),
- & IPAR1(MSTR),IPAR2(MSTR),IPAR3(MSTR),IPAR4(MSTR),
- & NNCH(MSTR),IBHAD(MSTR),ISTR
-C table of particle indices for recursive PHOJET calls
- INTEGER MAXIPX
- PARAMETER ( MAXIPX = 100 )
- INTEGER IPOPOS,IPORES,IPOIX1,IPOIX2,IPOIX3
- COMMON /PORECU/ IPOPOS(2,MAXIPX),IPORES(MAXIPX),
- & IPOIX1,IPOIX2,IPOIX3
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
- IREJ = 0
- IF(IMODE.EQ.-1) THEN
- CALL PHO_POMCOR(-1)
- CALL PHO_MASCOR(-1)
- CALL PHO_PARCOR(-1,IREJ)
-
- RETURN
- ELSE IF(IMODE.EQ.-2) THEN
- CALL PHO_POMCOR(-2)
- CALL PHO_MASCOR(-2)
- CALL PHO_PARCOR(-2,IREJ)
-
- RETURN
- ENDIF
-
-C generate enhanced graphs
- IF(IPOIX2.GT.0) THEN
- 200 CONTINUE
- I1 = MAX(1,IPOIX1)
- I2 = IPOIX2
- IF(ISWMDL(14).EQ.1) IPOIX1 = 0
- KSPOMS = KSPOM-1
- KSREGS = KSREG
- KHPOMS = KHPOM
- KHDIRS = KHDIR
- IDDFS1 = IDIFR1
- IDDFS2 = IDIFR2
- IDDPOS = IDDPOM
- DO 110 I=I1,I2
- IPOIX3 = I
- KSPOM = 0
- KSREG = 0
- KHPOM = 0
- KHDIR = 0
- IF(IPORES(I).EQ.8) THEN
- KSPOM = 2
- LSPOM = 2
- LHPOM = 0
- LSREG = 0
- LHDIR = 0
- IGEN = abs(IPHIST(2,IPOPOS(1,I)))
- CALL PHO_STDPAR(IPOPOS(1,I),IPOPOS(2,I),IGEN,
- & LSPOM,LSREG,LHPOM,LHDIR,IREJ)
- IF(IREJ.NE.0) THEN
- IF(IDEB(4).GE.2) THEN
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_STRING: sec.rejection by PHO_STDPAR',IREJ
- CALL PHO_PREVNT(-1)
- ENDIF
- RETURN
- ENDIF
- KSPOM = KSPOMS+LSPOM
- KSREG = KSREGS+LSREG
- KHPOM = KHPOMS+LHPOM
- KHDIR = KHDIRS+LHDIR
- ELSE IF(IPORES(I).EQ.4) THEN
- ITEMP = ISWMDL(17)
- ISWMDL(17) = 0
- CALL PHO_CDIFF(IPOPOS(1,I),IPOPOS(2,I),MSOFT,MHARD,1,IREJ)
- ISWMDL(17) = ITEMP
- IF(IREJ.NE.0) THEN
- IF(IDEB(4).GE.2) THEN
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_STRING: sec.rejection by PHO_CDIFF',IREJ
- CALL PHO_PREVNT(-1)
- ENDIF
- RETURN
- ENDIF
- KSDPO = KSDPO+1
- KSPOM = KSPOMS+KSPOM
- KSREG = KSREGS+KSREG
- KHPOM = KHPOMS+KHPOM
- KHDIR = KHDIRS+KHDIR
- ELSE
- IDIF1 = 1
- IDIF2 = 1
- IF(IPORES(I).EQ.5) THEN
- IDIF2 = 0
- KSTRG = KSTRG+1
- ELSE IF(IPORES(I).EQ.6) THEN
- IDIF1 = 0
- KSTRG = KSTRG+1
- ELSE
- KSLOO = KSLOO+1
- ENDIF
- ITEMP = ISWMDL(16)
- ISWMDL(16) = 0
- SPROB = 1.D0
- CALL PHO_DIFDIS(IDIF1,IDIF2,IPOPOS(1,I),IPOPOS(2,I),SPROB,
- & 0,MSOFT,MHARD,IREJ)
- ISWMDL(16) = ITEMP
- IF(IREJ.NE.0) THEN
- IF(IDEB(4).GE.2) THEN
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_STRING: sec.rejection by PHO_DIFDIS',IREJ
- CALL PHO_PREVNT(-1)
- ENDIF
- RETURN
- ENDIF
- KSPOM = KSPOMS+KSPOM
- KSREG = KSREGS+KSREG
- KHPOM = KHPOMS+KHPOM
- KHDIR = KHDIRS+KHDIR
- ENDIF
- IDIFR1 = IDDFS1
- IDIFR2 = IDDFS2
- IDDPOM = IDDPOS
- 110 CONTINUE
- IF(IPOIX2.GT.I2) THEN
- IPOIX1 = I2+1
- GOTO 200
- ENDIF
- ENDIF
-
-C optional: split gluons to q-qbar pairs
- IF(ISWMDL(9).GT.0) THEN
- NHEPO = NHEP
- DO 30 I=3,NHEPO
- IF((ISTHEP(I).EQ.-1).AND.(IDHEP(I).EQ.21)) THEN
- ICG1=ICOLOR(1,I)
- ICG2=ICOLOR(2,I)
- IQ1 = 0
- IQ2 = 0
- DO 40 K=3,NHEPO
- IF(ICOLOR(1,K).EQ.-ICG1) THEN
- IQ1 = K
- IF(IQ1*IQ2.NE.0) GOTO 45
- ELSE IF(ICOLOR(1,K).EQ.-ICG2) THEN
- IQ2 = K
- IF(IQ1*IQ2.NE.0) GOTO 45
- ENDIF
- 40 CONTINUE
- WRITE(LO,'(/1X,2A,3I6)') 'PHO_STRING:ERROR:(1) ',
- & 'no matching color found (IG,ICG1,ICG2)',I,ICG1,ICG2
- CALL PHO_ABORT
- 45 CONTINUE
- CALL PHO_GLU2QU(I,IQ1,IQ2,IREJ)
- IF(IREJ.NE.0) THEN
- IF(IDEB(19).GE.5) THEN
- WRITE(LO,'(/,1X,A)')
- & 'PHO_STRING: no gluon splitting possible'
- CALL PHO_PREVNT(0)
- ENDIF
- RETURN
- ENDIF
- ENDIF
- 30 CONTINUE
- ENDIF
-
-C construct strings and write entries sorted by strings
-
- ISTR = ISTR+1
- NHEPO = NHEP
- DO 50 I=3,NHEPO
-
- IF(ISTR.GT.MSTR) THEN
- WRITE(LO,'(1X,2A,2I4)') 'PHO_STRING: ',
- & 'event has too many strings (ISTR,MSTR):',ISTR,MSTR
- CALL PHO_PREVNT(0)
- IREJ = 1
- RETURN
- ENDIF
-
- IF(ISTHEP(I).EQ.1) THEN
-C hadrons / resonances / clusters
- NPOS(1,ISTR) = I
- NPOS(2,ISTR) = 0
- NPOS(3,ISTR) = 0
- NPOS(4,ISTR) = abs(IPHIST(2,I))
- NCODE(ISTR) = -99
- IPHIST(1,I) = ISTR
- ISTR = ISTR+1
- ELSE IF((ISTHEP(I).EQ.-1).AND.(IDHEP(I).NE.21)) THEN
-C quark /diquark terminated strings
- ICOL1 = -ICOLOR(1,I)
- P1 = PHEP(1,I)
- P2 = PHEP(2,I)
- P3 = PHEP(3,I)
- P4 = PHEP(4,I)
- ICH1 = IPHO_CHR3(I,2)
- IBA1 = IPHO_BAR3(I,2)
- CALL PHO_REGPAR(-1,IDHEP(I),IMPART(I),I,0,
- & P1,P2,P3,P4,IPHIST(1,I),IPHIST(2,I),
- & ICOLOR(1,I),ICOLOR(2,I),IPOS,1)
- JM1 = IPOS
-
- NRPOM = 0
- 65 CONTINUE
- DO 55 K=3,NHEPO
- IF(ISTHEP(K).EQ.-1)THEN
- IF(IDHEP(K).EQ.21) THEN
- IF(ICOLOR(1,K).EQ.ICOL1) THEN
- ICOL1 = -ICOLOR(2,K)
- GOTO 60
- ELSE IF(ICOLOR(2,K).EQ.ICOL1) THEN
- ICOL1 = -ICOLOR(1,K)
- GOTO 60
- ENDIF
- ELSE IF(ICOLOR(1,K).EQ.ICOL1) THEN
- ICOL1 = 0
- GOTO 60
- ENDIF
- ENDIF
- 55 CONTINUE
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_STRING:ERROR:(2) no matching color found for',-ICOL1
- CALL PHO_ABORT
- 60 CONTINUE
- P1 = P1+PHEP(1,K)
- P2 = P2+PHEP(2,K)
- P3 = P3+PHEP(3,K)
- P4 = P4+PHEP(4,K)
- NRPOM = MAX(NRPOM,IPHIST(1,K))
- ICH1 = ICH1+IPHO_CHR3(K,2)
- IBA1 = IBA1+IPHO_BAR3(K,2)
- CALL PHO_REGPAR(-1,IDHEP(K),IMPART(K),K,0,
- & PHEP(1,K),PHEP(2,K),PHEP(3,K),PHEP(4,K),
- & IPHIST(1,K),IPHIST(2,K),ICOLOR(1,K),ICOLOR(2,K),IPOS,1)
-C further parton involved?
- IF(ICOL1.NE.0) GOTO 65
- JM2 = IPOS
-C register string
- IGEN = IPHIST(2,K)
- CALL PHO_REGPAR(-1,90,0,JM1,-JM2,P1,P2,P3,P4,
- & ISTR,IGEN,ICH1,IBA1,IPOS,1)
-C store additional string information
- NPOS(1,ISTR) = IPOS
- NPOS(2,ISTR) = JM1
- NPOS(3,ISTR) = -JM2
- NPOS(4,ISTR) = abs(IPHIST(2,K))
-C calculate CPC string codes
- CALL PHO_ID2STR(IDHEP(JM1),IDHEP(JM2),NCODE(ISTR),
- & IPAR1(ISTR),IPAR2(ISTR),IPAR3(ISTR),IPAR4(ISTR))
- ISTR = ISTR+1
- ENDIF
- 50 CONTINUE
-
- DO 150 I=3,NHEPO
-
- IF(ISTR.GT.MSTR) THEN
- WRITE(LO,'(1X,2A,2I4)') 'PHO_STRING: ',
- & 'event has too many strings (ISTR,MSTR):',ISTR,MSTR
- CALL PHO_PREVNT(0)
- IREJ = 1
- RETURN
- ENDIF
-
- IF(ISTHEP(I).EQ.-1) THEN
-C gluon loop-strings
- ICOL1 = -ICOLOR(1,I)
- P1 = PHEP(1,I)
- P2 = PHEP(2,I)
- P3 = PHEP(3,I)
- P4 = PHEP(4,I)
- IBA1 = 0
- ICH1 = 0
- CALL PHO_REGPAR(-1,IDHEP(I),IMPART(I),I,0,
- & P1,P2,P3,P4,IPHIST(1,I),IPHIST(2,I),
- & ICOLOR(1,I),ICOLOR(2,I),IPOS,1)
- JM1 = IPOS
-C
- NRPOM = 0
- 165 CONTINUE
- IF(ICOLOR(2,I).EQ.ICOL1) GOTO 170
- DO 155 K=I,NHEPO
- IF(ISTHEP(K).EQ.-1)THEN
- IF(ICOLOR(1,K).EQ.ICOL1) THEN
- ICOL1 = -ICOLOR(2,K)
- GOTO 160
- ELSE IF(ICOLOR(2,K).EQ.ICOL1) THEN
- ICOL1 = -ICOLOR(1,K)
- GOTO 160
- ENDIF
- ENDIF
- 155 CONTINUE
- WRITE(LO,'(/1X,A,I5)')
- & 'PHO_STRING:ERROR:(3) no matching color found for',-ICOL1
- CALL PHO_ABORT
- 160 CONTINUE
- P1 = P1+PHEP(1,K)
- P2 = P2+PHEP(2,K)
- P3 = P3+PHEP(3,K)
- P4 = P4+PHEP(4,K)
- NRPOM = MAX(NRPOM,IPHIST(1,K))
- CALL PHO_REGPAR(-1,IDHEP(K),IMPART(K),K,0,
- & PHEP(1,K),PHEP(2,K),PHEP(3,K),PHEP(4,K),
- & IPHIST(1,K),IPHIST(2,K),ICOLOR(1,K),ICOLOR(2,K),IPOS,1)
-C further parton involved?
- IF(ICOL1.NE.0) GOTO 165
- 170 CONTINUE
- JM2 = IPOS
-C register string
- IGEN = IPHIST(2,K)
- CALL PHO_REGPAR(-1,90,0,JM1,-JM2,P1,P2,P3,P4,
- & ISTR,IGEN,ICH1,IBA1,IPOS,1)
-C store additional string information
- NPOS(1,ISTR) = IPOS
- NPOS(2,ISTR) = JM1
- NPOS(3,ISTR) = -JM2
- NPOS(4,ISTR) = abs(IPHIST(2,K))
-C calculate CPC string codes
- CALL PHO_ID2STR(IDHEP(JM1),IDHEP(JM2),NCODE(ISTR),
- & IPAR1(ISTR),IPAR2(ISTR),IPAR3(ISTR),IPAR4(ISTR))
- ISTR = ISTR+1
- ENDIF
- 150 CONTINUE
-
- ISTR = ISTR-1
-
- IF(IDEB(19).GE.17) THEN
- WRITE(LO,'(1X,A)') 'PHO_STRING: after string construction'
- CALL PHO_PREVNT(0)
- ENDIF
-
-C pomeron corrections
- CALL PHO_POMCOR(IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(38) = IFAIL(38)+1
- IF(IDEB(19).GE.3) THEN
- WRITE(LO,'(1X,A,I6)')
- & 'PHO_STRING: rejection by PHO_POMCOR (IREJ)',IREJ
- CALL PHO_PREVNT(-1)
- ENDIF
- RETURN
- ENDIF
-
-C string mass corrections
- CALL PHO_MASCOR(IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(34) = IFAIL(34)+1
- IF(IDEB(19).GE.3) THEN
- WRITE(LO,'(1X,A,I6)')
- & 'PHO_STRING: rejection by PHO_MASCOR (IREJ)',IREJ
- CALL PHO_PREVNT(-1)
- ENDIF
- RETURN
- ENDIF
-
-C parton mass corrections
- DO 100 I=1,ISTR
- IF(NCODE(I).GE.0) THEN
- CALL PHO_PARCOR(NPOS(1,I),IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(35) = IFAIL(35)+1
- IF(IDEB(19).GE.3) THEN
- WRITE(LO,'(1X,A,I6)')
- & 'PHO_STRING: rejection by PHO_PARCOR (IREJ)',IREJ
- CALL PHO_PREVNT(-1)
- ENDIF
- RETURN
- ENDIF
- ENDIF
- 100 CONTINUE
-
-C statistics of hard processes
- DO 550 I=3,NHEP
- IF(ISTHEP(I).EQ.25) THEN
- K = IMPART(I)
- II = IDHEP(I)
- MH_acc_2(K,II) = MH_acc_2(K,II)+1
- ENDIF
- 550 CONTINUE
-
-C debug: write out strings
- IF(IDEB(19).GE.5) THEN
- IF(IDEB(19).GE.10)
- & CALL PHO_CHECK(1,IDEV)
- IF(IDEB(19).GE.15) THEN
- CALL PHO_PREVNT(0)
- ELSE
- CALL PHO_PRSTRG
- ENDIF
- ENDIF
-
- END
-
-CDECK ID>, PHO_STRFRA
- SUBROUTINE PHO_STRFRA(IREJ)
-C********************************************************************
-C
-C do all fragmentation of strings
-C
-C output: IREJ 0 successful
-C 1 rejection
-C 50 rejection due to user cutoffs
-C
-C********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C color string configurations including collapsed strings and hadrons
- INTEGER MSTR
- PARAMETER (MSTR=500)
- INTEGER NPOS,NCODE,IPAR1,IPAR2,IPAR3,IPAR4,NNCH,IBHAD
- COMMON /POSTRG/ NPOS(4,MSTR),NCODE(MSTR),
- & IPAR1(MSTR),IPAR2(MSTR),IPAR3(MSTR),IPAR4(MSTR),
- & NNCH(MSTR),IBHAD(MSTR),ISTR
-
- INTEGER IREJ
-
- DOUBLE PRECISION PX,PY,PZ,HE,XMB,PT1,PT2,DUM
-
- INTEGER I,II,IJ,IFOUND,IP,IP_old,IPMOTH,IPOS,IBAM,IJOIN,
- & IGEN,IS,ISH,ISTR,J,K1,K2,NHEP1,NLINES
-
- integer indx(500),indx_max
-
- DOUBLE PRECISION DT_RNDM
- INTEGER ipho_pdg2id
- EXTERNAL DT_RNDM,ipho_pdg2id
-
- DOUBLE PRECISION PYP,RQLUN
- INTEGER PYK
-
- INTEGER MSTU,MSTJ
- DOUBLE PRECISION PARU,PARJ
- COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-
- INTEGER N,NPAD,K
- DOUBLE PRECISION P,V
- COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-
- DIMENSION IJOIN(100)
-
- IREJ = 0
- IF(ABS(ISWMDL(6)).GT.3) THEN
- WRITE(LO,'(/1X,2A,I3)') 'PHO_STRFRA:ERROR: ',
- & 'invalid value of ISWMDL(6)',ISWMDL(6)
- CALL PHO_ABORT
- ENDIF
-
-C popcorn suppression
- IF(PARMDL(134).GT.0.D0) THEN
- IF(DT_RNDM(DUM).LT.PARMDL(134)) THEN
- MSTJ(12) = 2
- ELSE
- MSTJ(12) = 1
- ENDIF
- ENDIF
-
-C copy partons to fragmentation code JETSET
- IP = 0
- IP_old = 1
-
- DO 300 J=1,ISTR
-
-C select partons with common production process
- IGEN = NPOS(4,J)
- if(IGEN.lt.0) goto 299
-
- indx_max = 0
- DO 400 I=J,ISTR
- if((IGEN.eq.NPOS(4,I)).or.(IPAMDL(17).eq.0)) then
-
-C write final particles/resonances to JETSET
- IF(NCODE(I).EQ.-99) THEN
- II = NPOS(1,I)
- IP = IP+1
- P(IP,1) = PHEP(1,II)
- P(IP,2) = PHEP(2,II)
- P(IP,3) = PHEP(3,II)
- P(IP,4) = PHEP(4,II)
- P(IP,5) = PHEP(5,II)
- K(IP,1) = 1
- K(IP,2) = IDHEP(II)
- K(IP,3) = 0
- K(IP,4) = 0
- K(IP,5) = 0
- IPHIST(2,II) = IP
-
- if(indx_max.eq.500) then
- WRITE(LO,'(1x,2a,i8,I12)') 'PHO_STRFRA: ',
- & 'no space left in index vector (indx,Kevent)',
- & indx_max,KEVENT
- IREJ = 1
- return
- endif
-
- indx_max = indx_max+1
- indx(indx_max) = II
-C write partons to JETSET
- ELSE IF(NCODE(I).GE.0) THEN
- K1 = JMOHEP(1,NPOS(1,I))
- K2 = MAX(JMOHEP(1,NPOS(1,I)),-JMOHEP(2,NPOS(1,I)))
- IJ = 0
- DO II=K1,K2
- IP = IP+1
- P(IP,1) = PHEP(1,II)
- P(IP,2) = PHEP(2,II)
- P(IP,3) = PHEP(3,II)
- P(IP,4) = PHEP(4,II)
- P(IP,5) = PHEP(5,II)
- K(IP,1) = 1
- K(IP,2) = IDHEP(II)
- K(IP,3) = 0
- K(IP,4) = 0
- K(IP,5) = 0
- IPHIST(2,II) = IP
- IJ = IJ+1
- IJOIN(IJ) = IP
- indx_max = indx_max+1
- indx(indx_max) = II
-
- ENDDO
- II = JMOHEP(2,NPOS(1,I))
- IF((II.GT.0).AND.(II.NE.K1)) THEN
- IP = IP+1
- P(IP,1) = PHEP(1,II)
- P(IP,2) = PHEP(2,II)
- P(IP,3) = PHEP(3,II)
- P(IP,4) = PHEP(4,II)
- P(IP,5) = PHEP(5,II)
- K(IP,1) = 1
- K(IP,2) = IDHEP(II)
- K(IP,3) = 0
- K(IP,4) = 0
- K(IP,5) = 0
- IPHIST(2,II) = IP
- IJ = IJ+1
- IJOIN(IJ) = IP
- indx_max = indx_max+1
- indx(indx_max) = II
-
- ENDIF
- N = IP
-C connect partons to strings
-
- CALL PYJOIN(IJ,IJOIN)
-
- ENDIF
-
- NPOS(4,I) = -NPOS(4,I)
- endif
- 400 continue
-
-C set Lund counter
- N = IP
- if(IP.eq.0) goto 299
-
-C hard final state evolution
- IF((ISWMDL(8).EQ.1).OR.(ISWMDL(8).EQ.3)) THEN
- ISH = 0
- do 125 k1=1,indx_max
- I = indx(k1)
- IF(IPHIST(1,I).LE.-100) THEN
- ISH = ISH+1
- IJOIN(ISH) = I
- ENDIF
- 125 continue
- IF(ISH.GE.2) THEN
- DO 130 K1=1,ISH
- IF(IJOIN(K1).EQ.0) GOTO 130
- I = IJOIN(K1)
- IF((IPAMDL(102).EQ.1)
- & .AND.(IPHIST(1,I).NE.-100)) GOTO 130
- DO 135 K2=K1+1,ISH
- IF(IJOIN(K2).EQ.0) GOTO 135
- II = IJOIN(K2)
- IF(IPHIST(1,I).EQ.IPHIST(1,II)) THEN
- PT1 = SQRT(PHEP(1,II)**2+PHEP(2,II)**2)
- PT2 = SQRT(PHEP(1,I)**2+PHEP(2,I)**2)
- RQLUN = MIN(PT1,PT2)
-
- IF(IDEB(22).GE.10) WRITE(LO,'(1X,A,2I5,E12.4)')
- & 'PHO_STRFRA: PYSHOW called',I,II,RQLUN
- CALL PYSHOW(IPHIST(2,I),IPHIST(2,II),RQLUN)
-
- IJOIN(K1) = 0
- IJOIN(K2) = 0
- GOTO 130
- ENDIF
- 135 CONTINUE
- 130 CONTINUE
- ENDIF
- ENDIF
-
-C fragment parton / hadron configuration (hadronization & decay)
-
- IF(ISWMDL(6).NE.0) THEN
- II = MSTU(21)
- MSTU(21) = 1
-
- CALL PYEXEC
-
- MSTU(21) = II
-C Lund warning?
- if(MSTU(28).ne.0) then
- IF(IDEB(22).GE.10) THEN
- WRITE(LO,'(1X,A,I12,I3)')
- & 'PHO_STRFRA:(1) Lund code warning (EV/code)',
- & KEVENT,MSTU(28)
- CALL PHO_PREVNT(2)
- ENDIF
- endif
-C event accepted?
- IF(MSTU(24).NE.0) THEN
- IF(IDEB(22).GE.2) THEN
- WRITE(LO,'(1X,A,I12,I3)')
- & 'PHO_STRFRA:(1) rejection by Lund code (EV/code)',
- & KEVENT,MSTU(24)
- CALL PHO_PREVNT(2)
- ENDIF
- IREJ = 1
- RETURN
- ENDIF
- ENDIF
-
- IP = N
-C change particle status in JETSET to avoid internal adjustments
- do k1=IP_old,IP
- K(k1,1) = K(k1,1)+1000
- enddo
- IP_old = IP+1
-
- 299 continue
- 300 CONTINUE
-
-C restore original JETSET particle status codes
- do i=1,N
- K(i,1) = K(i,1)-1000
- enddo
-
-* IF(IDEB(22).GE.25) THEN
-* WRITE(LO,'(//1X,2A)') 'PHO_STRFRA: ',
-* & 'particle/string system before fragmentation'
-* CALL PHO_PREVNT(2)
-* ENDIF
-
-C copy hadrons back to POEVT1 / POEVT2
-
- IF(IP.GT.0) THEN
- NHEP1 = NHEP+1
-
- NLINES = PYK(0,1)
-
-C copy hadrons back with full history information
- IF(IPAMDL(178).EQ.1) THEN
- DO 155 II=1,ISTR
- IF(NCODE(II).GE.0) THEN
- K1 = IPHIST(2,NPOS(2,II))
- K2 = IPHIST(2,-NPOS(3,II))
- ELSE IF(NCODE(II).EQ.-99) THEN
- K1 = IPHIST(2,NPOS(1,II))
- K2 = K1
- ELSE
- GOTO 149
- ENDIF
- IFOUND = 0
- DO 160 J=1,NLINES
-
- IF(PYK(J,7).EQ.1) THEN
- IPMOTH = PYK(J,15)
-
- IF((IPMOTH.GE.K1).AND.(IPMOTH.LE.K2)) THEN
-
- IBAM = ipho_pdg2id(PYK(J,8))
-
- IF((IBAM.EQ.0).AND.(ISWMDL(6).NE.0)) THEN
- IF(IDEB(22).GE.2) THEN
- WRITE(LO,'(/1X,2A)') 'PHO_STRFRA: ',
- & 'LUND interface (1) rejection'
- CALL PHO_PREVNT(2)
- ENDIF
- IREJ = 1
- RETURN
- ENDIF
- IFOUND = IFOUND+1
-
- PX = PYP(J,1)
- PY = PYP(J,2)
- PZ = PYP(J,3)
- HE = PYP(J,4)
- XMB = PYP(J,5)**2
-
-C register parton/hadron
- IS = 1
- IF(IBAM.EQ.0) THEN
- IF(ISWMDL(6).EQ.0) THEN
- IS = -1
- ELSE
- IF(IDEB(22).GE.2) THEN
- WRITE(LO,'(/1X,2A)') 'PHO_STRFRA: ',
- & 'LUND interface (2) rejection'
- CALL PHO_PREVNT(2)
- ENDIF
- IREJ = 1
- RETURN
- ENDIF
- ENDIF
-
- CALL PHO_REGPAR(IS,PYK(J,8),IBAM,NPOS(1,II),0,
- & PX,PY,PZ,HE,J,0,0,0,IPOS,1)
-
- ISTHEP(IPOS) = 1
- ENDIF
- ENDIF
- 160 CONTINUE
- IF(IFOUND.EQ.0) THEN
- IF(IDEB(2).GE.2) THEN
- WRITE(LO,'(2A,I12,I3)') 'PHO_STRFRA: ',
- & 'no particles found for string (EVE,ISTR):',KEVENT,II
- ENDIF
- ISTHEP(NPOS(1,II)) = 2
- ENDIF
- 149 CONTINUE
- 155 CONTINUE
- ELSE
-C copy hadrons back without history information
- JDAHEP(1,1) = NHEP1
- JDAHEP(1,2) = NHEP1
- DO 170 J=1,NLINES
-
- IF(PYK(J,7).EQ.1) THEN
- IBAM = ipho_pdg2id(PYK(J,8))
-
- IF((IBAM.EQ.99999).AND.(ISWMDL(6).NE.0)) THEN
- IF(IDEB(22).GE.2) THEN
- WRITE(LO,'(/1X,A)')
- & 'PHO_STRFRA: LUND interface (3) rejection'
- CALL PHO_PREVNT(2)
- ENDIF
- IREJ = 1
- RETURN
- ENDIF
-
- PX = PYP(J,1)
- PY = PYP(J,2)
- PZ = PYP(J,3)
- HE = PYP(J,4)
- XMB = PYP(J,5)**2
-
-C register parton/hadron
- IS = 1
- IF(IBAM.EQ.0) THEN
- IF(ISWMDL(6).EQ.0) THEN
- IS = -1
- ELSE
- IF(IDEB(22).GE.2) THEN
- WRITE(LO,'(/1X,A)')
- & 'PHO_STRFRA: LUND interface (4) rejection'
- CALL PHO_PREVNT(2)
- ENDIF
- IREJ = 1
- RETURN
- ENDIF
- ENDIF
-
- CALL PHO_REGPAR(IS,PYK(J,8),IBAM,1,2,PX,PY,PZ,
- & HE,J,0,0,0,IPOS,1)
-
- ISTHEP(IPOS) = 1
- ENDIF
- 170 CONTINUE
- DO 180 II=1,ISTR
- IF((NCODE(II).GE.0).OR.(NCODE(II).EQ.-99))
- & ISTHEP(NPOS(1,II)) = 2
- 180 CONTINUE
- ENDIF
- ENDIF
-
-C debug event status
- IF(IDEB(22).GE.15) THEN
- WRITE(LO,'(//1X,A)')
- & 'PHO_STRFRA: particle system after fragmentation'
- CALL PHO_PREVNT(2)
- ENDIF
-
- END
-
-CDECK ID>, PHO_EVEINI
- SUBROUTINE PHO_EVEINI(IMODE,P1,P2,IP1,IP2)
-C********************************************************************
-C
-C prepare /POEVT1/ for new event
-C
-C first subroutine called for each event
-C
-C input: P1(4) particle 1
-C P2(4) particle 2
-C IMODE 0 general initialization
-C 1 initialization of particles and kinematics
-C 2 initialization after internal rejection
-C
-C output: IP1,IP2 index of interacting particles
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- DIMENSION P1(4),P2(4)
-
- PARAMETER ( EPS = 1.D-5,
- & DEPS = 1.D-15 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C gamma-lepton or gamma-hadron vertex information
- INTEGER IGHEL,IDPSRC,IDBSRC
- DOUBLE PRECISION PINI,PFIN,PGAM,GYY,GQ2,GGECM,GAIMP,PFTHE,PFPHI,
- & RADSRC,AMSRC,GAMSRC
- COMMON /POFSRC/ PINI(5,2),PFIN(5,2),PGAM(5,2),IGHEL(2),
- & GYY(2),GQ2(2),GGECM,GAIMP(2),PFTHE(2),PFPHI(2),
- & IDPSRC(2),IDBSRC(2),RADSRC(2),AMSRC(2),GAMSRC(2)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C energy-interpolation table
- INTEGER IEETA2
- PARAMETER ( IEETA2 = 20 )
- INTEGER ISIMAX
- DOUBLE PRECISION SIGTAB,SIGECM
- COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
-C cross sections
- INTEGER IPFIL,IFAFIL,IFBFIL
- DOUBLE PRECISION SIGTOT,SIGELA,SIGVM,SIGINE,SIGNDF,SIGDIR,
- & SIGLSD,SIGHSD,SIGLDD,SIGHDD,SIGCDF,
- & SIGPOM,SIGREG,SIGHAR,SIGTR1,SIGTR2,SIGLOO,
- & SIGDPO,SIG1SO,SIG1HA,SLOEL,SLOVM,SIGCOR,
- & FSUP,FSUD,FSUH,ECMFIL,P2AFIL,P2BFIL
- COMMON /POCSEC/ SIGTOT,SIGELA,SIGVM(0:4,0:4),SIGINE,SIGNDF,SIGDIR,
- & SIGLSD(2),SIGHSD(2),SIGLDD,SIGHDD,SIGCDF(0:4),
- & SIGPOM,SIGREG,SIGHAR,SIGTR1(2),SIGTR2(2),SIGLOO,
- & SIGDPO(4),SIG1SO,SIG1HA,SLOEL,SLOVM(4,4),SIGCOR,
- & FSUP(2),FSUD(2),FSUH(2),ECMFIL,P2AFIL,P2BFIL,
- & IPFIL,IFAFIL,IFBFIL
-C color string configurations including collapsed strings and hadrons
- INTEGER MSTR
- PARAMETER (MSTR=500)
- INTEGER NPOS,NCODE,IPAR1,IPAR2,IPAR3,IPAR4,NNCH,IBHAD
- COMMON /POSTRG/ NPOS(4,MSTR),NCODE(MSTR),
- & IPAR1(MSTR),IPAR2(MSTR),IPAR3(MSTR),IPAR4(MSTR),
- & NNCH(MSTR),IBHAD(MSTR),ISTR
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C table of particle indices for recursive PHOJET calls
- INTEGER MAXIPX
- PARAMETER ( MAXIPX = 100 )
- INTEGER IPOPOS,IPORES,IPOIX1,IPOIX2,IPOIX3
- COMMON /PORECU/ IPOPOS(2,MAXIPX),IPORES(MAXIPX),
- & IPOIX1,IPOIX2,IPOIX3
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-
- DIMENSION IM(2)
-
-C reset debug variables
- KSPOM = 0
- KHPOM = 0
- KSREG = 0
- KHDIR = 0
- KSTRG = 0
- KHTRG = 0
- KSLOO = 0
- KHLOO = 0
- KSDPO = 0
- KSOFT = 0
- KHARD = 0
-C
- IDNODF = 0
- IDIFR1 = 0
- IDIFR2 = 0
- IDDPOM = 0
- ISTR = 0
- IPOIX1 = 0
- IF(ISWMDL(14).GT.0) IPOIX1 = 1
- IPOIX2 = 0
- IPOIX3 = 0
-C reset /POEVT1/ and /POEVT2/
- CALL PHO_REGPAR(0,0,0,0,0,0.D0,0.D0,0.D0,0.D0,
- & 0,0,0,0,IPOS,0)
- CALL PHO_SELCOL(0,0,0,0,0,0,0)
- DO 15 I=0,10
- IPOWGC(I) = 0
- 15 CONTINUE
-
-C initialization of particle kinematics
-
-C lepton-photon/hadron-photon vertex and initial particles
- IM(1) = 0
- IM(2) = 0
- IF((IPAMDL(11).GT.0).AND.(IDPSRC(1).NE.0)) THEN
- CALL PHO_REGPAR(1,IDPSRC(1),IDBSRC(1),0,0,PINI(1,1),PINI(2,1),
- & PINI(3,1),PINI(4,1),0,0,0,0,IM(1),1)
- ELSE
- CALL PHO_REGPAR(1,IFPAP(1),IFPAB(1),IM(1),0,P1(1),P1(2),P1(3),
- & P1(4),0,0,0,0,IP1,1)
- ENDIF
- IF((IPAMDL(12).GT.0).AND.(IDPSRC(2).NE.0)) THEN
- CALL PHO_REGPAR(1,IDPSRC(2),IDBSRC(2),0,0,PINI(1,2),PINI(2,2),
- & PINI(3,2),PINI(4,2),0,0,0,0,IM(2),1)
- ELSE
- CALL PHO_REGPAR(1,IFPAP(2),IFPAB(2),IM(2),0,P2(1),P2(2),P2(3),
- & P2(4),0,0,0,0,IP2,1)
- ENDIF
- IF((IPAMDL(11).GT.0).AND.(IDPSRC(1).NE.0)) THEN
- CALL PHO_REGPAR(1,IDPSRC(1),IDBSRC(1),IM(1),0,PFIN(1,1),
- & PFIN(2,1),PFIN(3,1),PFIN(4,1),0,10,0,0,IPOS,1)
- CALL PHO_REGPAR(1,IFPAP(1),IFPAB(1),IM(1),0,P1(1),P1(2),P1(3),
- & P1(4),0,0,0,0,IP1,1)
- ENDIF
- IF((IPAMDL(12).GT.0).AND.(IDPSRC(2).NE.0)) THEN
- CALL PHO_REGPAR(1,IDPSRC(2),IDBSRC(2),IM(2),0,PFIN(1,2),
- & PFIN(2,2),PFIN(3,2),PFIN(4,2),0,10,0,0,IPOS,1)
- CALL PHO_REGPAR(1,IFPAP(2),IFPAB(2),IM(2),0,P2(1),P2(2),P2(3),
- & P2(4),0,0,0,0,IP2,1)
- ENDIF
- NEVHEP = KACCEP
-
- IF(IMODE.LE.1) THEN
-C CMS energy
- ECM = SQRT((P1(4)+P2(4))**2-(P1(1)+P2(1))**2-(P1(2)+P2(2))**2
- & -(P1(3)+P2(3))**2)
-* CALL PHO_PECMS(1,PMASS(1),PMASS(2),ECM,PCM,EE)
- PMASS(1) = PHEP(5,IP1)
- PVIRT(1) = 0.D0
- IF(IFPAP(1).EQ.22) PVIRT(1) = PMASS(1)**2
- PMASS(2) = PHEP(5,IP2)
- PVIRT(2) = 0.D0
- IF(IFPAP(2).EQ.22) PVIRT(2) = PMASS(2)**2
- ENDIF
-
-C cross section calculations
-
- IF(IMODE.NE.1) THEN
- IP = 1
- CALL PHO_CSINT(IP,IFPAP(1),IFPAP(2),IGHEL(1),IGHEL(2),
- & ECM,PVIRT(1),PVIRT(2))
- ENDIF
-
- IF(IMODE.LE.0) THEN
-C effective cross section
- SIGGEN(3) = 0.D0
- IF(ISWMDL(2).ge.1) THEN
- IF(IPRON(1,1).EQ.1) SIGGEN(3) = SIGTOT-SIGELA-SIGVM(0,0)
- & -SIGCDF(0)-SIGLSD(1)-SIGHSD(1)-SIGLSD(2)-SIGHSD(2)-SIGLDD
- & -SIGHDD-SIGDIR
- IF(IPRON(2,1).EQ.1) SIGGEN(3) = SIGGEN(3)+SIGELA
- IF(IPRON(3,1).EQ.1) SIGGEN(3) = SIGGEN(3)+SIGVM(0,0)
- IF(IPRON(4,1).EQ.1) SIGGEN(3) = SIGGEN(3)+SIGCDF(0)
- IF(IPRON(5,1).EQ.1) SIGGEN(3) = SIGGEN(3)+SIGLSD(1)+SIGHSD(1)
- IF(IPRON(6,1).EQ.1) SIGGEN(3) = SIGGEN(3)+SIGLSD(2)+SIGHSD(2)
- IF(IPRON(7,1).EQ.1) SIGGEN(3) = SIGGEN(3)+SIGLDD+SIGHDD
- IF(IPRON(8,1).EQ.1) SIGGEN(3) = SIGGEN(3)+SIGDIR
-C simulate only hard scatterings
- ELSE
- IF(IPRON(1,1).EQ.1) SIGGEN(3) = SIGHAR
- IF(IPRON(8,1).EQ.1) SIGGEN(3) = SIGGEN(3)+SIGDIR
- ENDIF
-
- ENDIF
-
-C reset of mother/daughter relations only (IMODE = 2)
-
-C debug output
- IF(IDEB(63).GE.15) THEN
- WRITE(LO,'(/1X,2A,I12,I3)') 'PHO_EVEINI: ',
- & '/POEVT1/ initialized (event/mode)',KEVENT,IMODE
- IF(IMODE.LE.0) THEN
- WRITE(LO,'(1X,2A,/,5X,1P,6E12.4)') 'PHO_EVEINI: ',
- & 'current suppression factors total-1/2 hard-1/2 diff-1/2:',
- & FSUP,FSUH,FSUD
- ONEM = -1.D0
- ITMP = IDEB(57)
- IDEB(57) = MAX(5,ITMP)
- CALL PHO_XSECT(1,0,ONEM)
- IDEB(57) = ITMP
- ENDIF
- CALL PHO_PREVNT(0)
- ENDIF
-
- END
-
-CDECK ID>, PHO_CSINT
- SUBROUTINE PHO_CSINT(IP,IFPA,IFPB,IHLA,IHLB,ECM,PVIR2A,PVIR2B)
-C********************************************************************
-C
-C calculate cross sections by interpolation
-C
-C input: IP particle combination
-C IFPA/B particle PDG number
-C IHLA/B particle helicity (photons only)
-C ECM c.m. energy (GeV)
-C PVIR2A virtuality of particle A (GeV**2, positive)
-C PVIR2B virtuality of particle B (GeV**2, positive)
-C
-C output: cross sections stored in /POCSEC/
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( EPS = 1.D-5,
- & DEPS = 1.D-15 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C energy-interpolation table
- INTEGER IEETA2
- PARAMETER ( IEETA2 = 20 )
- INTEGER ISIMAX
- DOUBLE PRECISION SIGTAB,SIGECM
- COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
-C cross sections
- INTEGER IPFIL,IFAFIL,IFBFIL
- DOUBLE PRECISION SIGTOT,SIGELA,SIGVM,SIGINE,SIGNDF,SIGDIR,
- & SIGLSD,SIGHSD,SIGLDD,SIGHDD,SIGCDF,
- & SIGPOM,SIGREG,SIGHAR,SIGTR1,SIGTR2,SIGLOO,
- & SIGDPO,SIG1SO,SIG1HA,SLOEL,SLOVM,SIGCOR,
- & FSUP,FSUD,FSUH,ECMFIL,P2AFIL,P2BFIL
- COMMON /POCSEC/ SIGTOT,SIGELA,SIGVM(0:4,0:4),SIGINE,SIGNDF,SIGDIR,
- & SIGLSD(2),SIGHSD(2),SIGLDD,SIGHDD,SIGCDF(0:4),
- & SIGPOM,SIGREG,SIGHAR,SIGTR1(2),SIGTR2(2),SIGLOO,
- & SIGDPO(4),SIG1SO,SIG1HA,SLOEL,SLOVM(4,4),SIGCOR,
- & FSUP(2),FSUD(2),FSUH(2),ECMFIL,P2AFIL,P2BFIL,
- & IPFIL,IFAFIL,IFBFIL
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-
- DIMENSION PVIRT(2),SIGSRH(2),FSUT(2),FSUL(2),IFPAP(2),IHEL(2)
-
- dimension PD(-6:6),FH_T(2),FH_L(2)
-
-C debug
- IF(IDEB(15).GE.10) WRITE(LO,'(1X,A,/10X,I3,2I6,1P3E12.4)')
- & 'PHO_CSINT: called with IP, IFP1, IFP2, ECM, PVIR1, PVIR2',
- & IP,IFPA,IFPB,ECM,PVIR2A,PVIR2B
-
-C check currently stored cross sections
- IF((IP.EQ.IPFIL).AND.(ECM.EQ.ECMFIL)
- & .AND.(PVIR2A.EQ.P2AFIL).AND.(PVIR2B.EQ.P2BFIL)
- & .AND.(IFPA.EQ.IFAFIL).AND.(IFPB.EQ.IFBFIL)) THEN
-C nothing to calculate
- IF(IDEB(15).GE.20)
- & WRITE(LO,'(1X,A)') 'PHO_CSINT: nothing done'
- RETURN
- ELSE
-
-C copy to local fields
- IFPAP(1) = IFPA
- IFPAP(2) = IFPB
- IHEL(1) = IHLA
- IHEL(2) = IHLB
- PVIRT(1) = PVIR2A
- PVIRT(2) = PVIR2B
-
-C load cross sections from interpolation table
- IF(ECM.LE.SIGECM(IP,1)) THEN
- I1 = 1
- I2 = 2
- ELSE IF(ECM.LE.SIGECM(IP,ISIMAX)) THEN
- DO 50 I=2,ISIMAX
- IF(ECM.LE.SIGECM(IP,I)) GOTO 200
- 50 CONTINUE
- 200 CONTINUE
- I1 = I-1
- I2 = I
- ELSE
- WRITE(LO,'(/1X,A,2E12.3)')
- & 'PHO_CSINT: too high energy',ECM,SIGECM(IP,ISIMAX)
- CALL PHO_PREVNT(-1)
- I1 = ISIMAX-1
- I2 = ISIMAX
- ENDIF
- FAC2=0.D0
- IF(I1.NE.I2) FAC2=LOG(ECM/SIGECM(IP,I1))
- & /LOG(SIGECM(IP,I2)/SIGECM(IP,I1))
- FAC1=1.D0-FAC2
-
-C cross section dependence on photon virtualities
- DO 140 K=1,2
- FSUP(K) = 1.D0
- FSUD(K) = 1.D0
- FSUH(K) = 1.D0
- IF(IFPAP(K).EQ.22) THEN
- IF(ISWMDL(10).GE.1) THEN
- FSUP(K) = 0.D0
- FSUT(K) = 0.D0
- FSUL(K) = 0.D0
- FSUH(K) = 0.D0
-C GVDM factors for transverse/longitudinal photons
- DO 150 I=1,3
- FSUT(K) = FSUT(K)+PARMDL(26+I)
- & /(1.D0+PVIRT(K)/PARMDL(30+I))**2
- FSUL(K) = FSUL(K)
- & +PARMDL(26+I)*PVIRT(K)/(4.D0*PARMDL(30+I))
- & /(1.D0+PVIRT(K)/PARMDL(30+I))**2
- 150 CONTINUE
- FSUT(K) = FSUT(K)+PARMDL(30)/(1.D0+PVIRT(K)/PARMDL(34))
-C transverse part
- IF((ABS(IHEL(K)).EQ.1).OR.(ISWMDL(10).EQ.1)) THEN
- FSUP(K) = FSUT(K)
- FSUH(K) = FSUT(K)/(FSUT(K)+FSUL(K))
-C diffraction of trans. photons corresponds mainly to leading twist
- FSUD(K) = 1.D0
- ENDIF
-C longitudinal (scalar) part
- IF((IHEL(K).LE.0).OR.(ISWMDL(10).EQ.1)) THEN
- FSUP(K) = FSUP(K)+FSUL(K)
- FSUH(K) = FSUH(K)+FSUL(K)/(FSUT(K)+FSUL(K))
-C diffraction of long. photons corresponds mainly to higher twist
- FSUD(K) = 0.5D0*LOG(((ECM*PARMDL(45))**2+PVIRT(K))
- & /((0.765D0+PARMDL(46))**2+PVIRT(K)))
- & /LOG(ECM*PARMDL(45)/(0.765D0+PARMDL(46)))
- ENDIF
-C debug output
- if(ideb(15).ge.10) then
- WRITE(LO,'(1x,2a,2i3,/,5x,1p5e12.4)') 'PHO_CSINT: ',
- & 'side,helicity,F_tran,F_long,F_eff,F_hard,F_diff',
- & K,IHEL(K),FSUT(K),FSUL(K),FSUP(K),FSUH(K),FSUD(K)
- endif
- ENDIF
- ENDIF
- 140 CONTINUE
-
- FACP = FSUP(1)*FSUP(2)
- FACH = FSUH(1)*FSUH(2)
- FACD = FSUD(1)*FSUD(2)
-
-C matching of model cross section to F2(x,Q2,P2) in limit of Q2 >> P2
-
- if((IFPAP(1).eq.22).and.(IFPAP(2).eq.22)
- & .and.(IPAMDL(117).gt.0)) then
-C check kinematic limit
- Q2_max = max(PVIRT(1),PVIRT(2))
- Q2_min = min(PVIRT(1),PVIRT(2))
- if((Q2_max.gt.1.D0).and.(Q2_min.lt.1.D0)) then
-
-C calculate F2 from current parton density
- if(PVIRT(1).gt.PVIRT(2)) then
- K = 2
- else
- K = 1
- endif
- Q2 = Q2_max
- P2 = Q2_min
- X = Q2/(ECM**2+Q2+P2)
- call pho_actpdf(IFPAP(K),K)
- call pho_pdf(K,X,Q2,P2,PD)
-C light quark contribution
- F2_light = 0.D0
- do j=1,3
- F2_light = F2_light+Q_ch2(j)*(PD(j)+PD(-j))
- enddo
-C heavy quark contribution
- call pho_qpmpdf(4,X,Q2,0.D0,P2,xpdf_c)
- F2_c = 2.D0*4.D0/9.D0*xpdf_c
- F2 = (F2_light+F2_c)
-
-C calculate model prediction
- SIGTOT = FAC2*SIGTAB(IP,1,I2)+FAC1*SIGTAB(IP,1,I1)
- SIGINE = FAC2*SIGTAB(IP,28,I2)+FAC1*SIGTAB(IP,28,I1)
- CALL PHO_HARINT(IP,ECM,0.D0,0.D0,0,Max_pro_2,3,4,1)
-
- if(ISWMDL(10).ge.2) then
-
-C calculate all helicity combinations
- if(IPAMDL(115).eq.0) then
- SIGDIH = HSig(14)
- SIGSRH(1) = HSig(10)+HSig(11)
- SIGSRH(2) = HSig(12)+HSig(13)
- SIGtmp = SIGTOT-SIGDIH-SIGSRH(1)-SIGSRH(2)
-C photon helicity factors
- FH_T(1) = FSUT(1)/(FSUT(1)+FSUL(1))
- FH_L(1) = 1.D0-FH_T(1)
- FH_T(2) = FSUT(2)/(FSUT(2)+FSUL(2))
- FH_L(2) = 1.D0-FH_T(2)
- SIG_TT = SIGtmp*FSUT(1)*FSUT(2)
- & + SIGDIH*FH_T(1)*FH_T(2)
- & + SIGSRH(1)*FH_T(1)*FSUT(2)
- & + SIGSRH(2)*FSUT(1)*FH_T(2)
- SIG_TL = SIGtmp*FSUT(1)*FSUL(2)
- & + SIGDIH*FH_T(1)*FH_L(2)
- & + SIGSRH(1)*FH_T(1)*FSUL(2)
- & + SIGSRH(2)*FSUT(1)*FH_L(2)
- SIG_LT = SIGtmp*FSUL(1)*FSUT(2)
- & + SIGDIH*FH_L(1)*FH_T(2)
- & + SIGSRH(1)*FH_L(1)*FSUT(2)
- & + SIGSRH(2)*FSUL(1)*FH_T(2)
- SIG_LL = SIGtmp*FSUL(1)*FSUL(2)
- & + SIGDIH*FH_L(1)*FH_L(2)
- & + SIGSRH(1)*FH_L(1)*FSUL(2)
- & + SIGSRH(2)*FSUL(1)*FH_L(2)
- else
-C use explicit PDF virtuality dependence (pre-tabulated)
- SIGDIH = HSig(14)
- SIGSRH(1) = HSig(10)+HSig(11)
- SIGSRH(2) = HSig(12)+HSig(13)
- SIGtmp = SIGTOT-SIGDIH-SIGSRH(1)-SIGSRH(2)
- print LO,' PHO_CSINT: invalid option for F2 matching'
- stop
-* CALL PHO_HARINT(IP,ECM,PVIRT(1),PVIRT(2),0,
-* & Max_pro_2,3,4,1)
-* SIG_TT = SIGtmp*FSUT(1)*FSUT(2)
-* & + HSig(10)+HSig(12)+HSig(14)+HSig(16)+HSig(18)
-* SIG_TL = SIGtmp*FSUT(1)*FSUL(2)
-* & + HSig(10)+HSig(12)+HSig(14)+HSig(16)+HSig(19)
-* SIG_LT = SIGtmp*FSUL(1)*FSUT(2)
-* & + HSig(11)+HSig(13)+HSig(15)+HSig(17)+HSig(20)
-* SIG_LL = SIGtmp*FSUL(1)*FSUL(2)
-* & + HSig(11)+HSig(13)+HSig(15)+HSig(17)+HSig(21)
- endif
- Xnu = Ecm*Ecm+Q2+P2
- F2_fac = Q2*Xnu/sqrt(Xnu*Xnu-Q2*P2)/(4.D0*Pi*Pi)
- & *137.D0/GeV2mb
- if(K.eq.2) then
- F2m = F2_fac*(SIG_TT+SIG_LT-0.5D0*SIG_TL-0.5D0*SIG_LL)
- F2s = F2_fac*SIGtmp*(FSUT(1)*FSUT(2)+FSUL(1)*FSUT(2)
- & -0.5D0*FSUT(1)*FSUL(2)-0.5D0*FSUL(1)*FSUL(2))
- else
- F2m = F2_fac*(SIG_TT+SIG_TL-0.5D0*SIG_LT-0.5D0*SIG_LL)
- F2s = F2_fac*SIGtmp*(FSUT(1)*FSUT(2)+FSUT(1)*FSUL(2)
- & -0.5D0*FSUL(1)*FSUT(2)-0.5D0*FSUL(1)*FSUL(2))
- endif
-
- else
-
-C assume sig_eff = sigtot
- SIGDIH = HSig(14)
- SIGSRH(1) = HSig(10)+HSig(11)
- SIGSRH(2) = HSig(12)+HSig(13)
- SIGtmp = SIGTOT-SIGSRH(1)-SIGSRH(2)-SIGDIH
- SIGeff = SIGtmp*FSUP(1)*FSUP(2)
- & +SIGSRH(1)*FSUP(2)+SIGSRH(2)*FSUP(1)+SIGDIH
- Xnu = Ecm*Ecm+Q2+P2
- F2_fac = Q2*Xnu/sqrt(Xnu*Xnu-Q2*P2)/(4.D0*Pi*Pi)
- & *137.D0/GeV2mb
- F2m = F2_fac*SIGeff
- F2s = F2_fac*SIGtmp*FSUP(1)*FSUP(2)
- endif
-* print LO,' PHO_CSINT: Q2_1,Q2_2,W ',PVIRT(1),PVIRT(2),Ecm
-* print LO,' PHO_CSINT: F2_mod,F2_pdf,mod/pdf ',F2m,F2,F2m/F2
-
-C global factor to re-scale suppression of soft contributions
- Fcorr = (F2-F2m+F2s)/F2s
-* print LO,' PHO_CSINT: re-scaling factor: ',Fcorr,FACP*Fcorr
- FACP = FACP*Fcorr
-
- endif
- endif
-
- SIGTOT = (FAC2*SIGTAB(IP,1,I2)+FAC1*SIGTAB(IP,1,I1))*FACP
- SIGINE = (FAC2*SIGTAB(IP,28,I2)+FAC1*SIGTAB(IP,28,I1))*FACP
- SIGELA = (FAC2*SIGTAB(IP,2,I2)+FAC1*SIGTAB(IP,2,I1))*FACP
- J = 2
- DO 5 I=0,4
- DO 6 K=0,4
- J = J+1
- SIGVM(I,K) = (FAC2*SIGTAB(IP,J,I2)+FAC1*SIGTAB(IP,J,I1))
- & *FACP**2
- 6 CONTINUE
- 5 CONTINUE
-
- SIGDIR = FAC2*SIGTAB(IP,29,I2)+FAC1*SIGTAB(IP,29,I1)
- SIGHAR = FAC2*SIGTAB(IP,58,I2)+FAC1*SIGTAB(IP,58,I1)
-C suppression of multi-pomeron graphs (diffraction)
- SIGLSD(1) = (FAC2*SIGTAB(IP,30,I2)+FAC1*SIGTAB(IP,30,I1))
- & *FACP*FSUP(2)*FSUD(1)
- SIGLSD(2) = (FAC2*SIGTAB(IP,31,I2)+FAC1*SIGTAB(IP,31,I1))
- & *FACP*FSUP(1)*FSUD(2)
- SIGHSD(1) = (FAC2*SIGTAB(IP,32,I2)+FAC1*SIGTAB(IP,32,I1))
- & *FACP*FSUP(2)*FSUD(1)
- SIGHSD(2) = (FAC2*SIGTAB(IP,33,I2)+FAC1*SIGTAB(IP,33,I1))
- & *FACP*FSUP(1)*FSUD(2)
- SIGLDD = (FAC2*SIGTAB(IP,34,I2)+FAC1*SIGTAB(IP,34,I1))
- & *FACP**2*FACD
- SIGHDD = (FAC2*SIGTAB(IP,35,I2)+FAC1*SIGTAB(IP,35,I1))*FACP
- SIGCDF(0) = (FAC2*SIGTAB(IP,36,I2)+FAC1*SIGTAB(IP,36,I1))
- & *FACP**2
- SIGTR1(1) = (FAC2*SIGTAB(IP,60,I2)+FAC1*SIGTAB(IP,60,I1))
- & *FACP*FSUP(2)*FSUD(1)
- SIGTR1(2) = (FAC2*SIGTAB(IP,61,I2)+FAC1*SIGTAB(IP,61,I1))
- & *FACP*FSUP(2)*FSUD(1)
- SIGTR2(1) = (FAC2*SIGTAB(IP,62,I2)+FAC1*SIGTAB(IP,62,I1))
- & *FACP*FSUP(1)*FSUD(2)
- SIGTR2(2) = (FAC2*SIGTAB(IP,63,I2)+FAC1*SIGTAB(IP,63,I1))
- & *FACP*FSUP(1)*FSUD(2)
- SIGLOO = (FAC2*SIGTAB(IP,64,I2)+FAC1*SIGTAB(IP,64,I1))*FACP
- SIGDPO(1) = (FAC2*SIGTAB(IP,65,I2)+FAC1*SIGTAB(IP,65,I1))
- & *FACP**2
- SIGDPO(2) = (FAC2*SIGTAB(IP,66,I2)+FAC1*SIGTAB(IP,66,I1))
- & *FACP**2
- SIGDPO(3) = (FAC2*SIGTAB(IP,67,I2)+FAC1*SIGTAB(IP,67,I1))
- & *FACP**2
- SIGDPO(4) = (FAC2*SIGTAB(IP,68,I2)+FAC1*SIGTAB(IP,68,I1))
- & *FACP**2
-
-C corrections due to photon virtuality dependence of PDFs
- if(iswmdl(2).eq.1) then
- CALL PHO_HARINT(IP,ECM,0.D0,0.D0,0,Max_pro_2,3,4,1)
-C minimum bias event generation
- IF(IPAMDL(115).GE.1) THEN
-C all the virtuality dependence is given by PDF parametrization
- SIGHIN = FAC2*SIGTAB(IP,80,I2)+FAC1*SIGTAB(IP,80,I1)
- IF(IPAMDL(116).GE.2) THEN
-C direct interaction according to full QPM calculation
- SIGDIH = HSig(14)
- SIGSRH(1) = HSig(10)+HSig(11)
- SIGSRH(2) = HSig(12)+HSig(13)
- ELSE
-C direct interaction suppressed according to helicity factor
- SIGDIH = HSig(14)*FACH
- SIGSRH(1) = (HSig(10)+HSig(11))*FSUH(1)
- SIGSRH(2) = (HSig(12)+HSig(13))*FSUH(2)
- ENDIF
- print LO,' PHO_CSINT: option not supported yet'
- stop
- ELSE
-C rescale relevant hard processes
- SIGDIH = HSig(14)
- SIGSRH(1) = HSig(10)+HSig(11)
- SIGSRH(2) = HSig(12)+HSig(13)
- SIGtmp = SIGINE-(SIGDIH+SIGSRH(1)+SIGSRH(2))*FACP
- SIGDIR = HSig(14)*FACH+SIGSRH(1)*FSUH(1)*FSUP(2)
- & +SIGSRH(2)*FSUP(1)*FSUH(2)
- SIGINE = SIGtmp+SIGDIR
- SIGTOT = SIGINE+SIGELA
- ENDIF
- else
-C only hard interactions
- CALL PHO_HARINT(IP,ECM,0.D0,0.D0,0,Max_pro_2,3,4,1)
- SIGSRH(1) = (HSig(10)+HSig(11))*FSUH(1)
- SIGSRH(2) = (HSig(12)+HSig(13))*FSUH(2)
- SIGDIR = HSig(14)+SIGSRH(1)+SIGSRH(2)
- SIGHAR = HSig(9)*FACH
- endif
-
- SIG1SO = (FAC2*SIGTAB(IP,37,I2)+FAC1*SIGTAB(IP,37,I1))*FACP
- SIG1HA = (FAC2*SIGTAB(IP,38,I2)+FAC1*SIGTAB(IP,38,I1))*FACH
- SLOEL = FAC2*SIGTAB(IP,39,I2)+FAC1*SIGTAB(IP,39,I1)
- J = 39
- DO 9 I=1,4
- DO 10 K=1,4
- J = J+1
- SLOVM(I,K) = FAC2*SIGTAB(IP,J,I2)+FAC1*SIGTAB(IP,J,I1)
- 10 CONTINUE
- 9 CONTINUE
- SIGPOM = (FAC2*SIGTAB(IP,56,I2)+FAC1*SIGTAB(IP,56,I1))*FACP
- SIGREG = (FAC2*SIGTAB(IP,57,I2)+FAC1*SIGTAB(IP,57,I1))*FACP
-
- IPFIL = IP
- IFAFIL = IFPA
- IFBFIL = IFPB
- ECMFIL = ECM
- P2AFIL = PVIR2A
- P2BFIL = PVIR2B
-
- IF(IDEB(15).GE.20)
- & WRITE(LO,'(1X,A)') 'PHO_CSINT: cross sections calculated'
-
- ENDIF
-
- END
-
-CDECK ID>, PHO_PRIMKT
- SUBROUTINE PHO_PRIMKT(IMODE,IF,IL,PTCUT,IREJ)
-C***********************************************************************
-C
-C give primordial kt to partons entering hard scatterings and
-C remants connected to hard parton-parton interactions by color flow
-C
-C input: IMODE -2 output of statistics
-C -1 initialization
-C 1 sampling of primordial kt
-C IF first entry in /POEVT1/ to check
-C IL last entry in /POEVT1/ to check
-C PTCUT current value of PTCUT to distinguish
-C between soft and hard
-C
-C output: IREJ 0 success
-C 1 failure
-C
-C***********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- DOUBLE PRECISION DEPS
- PARAMETER ( DEPS = 1.D-15 )
-
- INTEGER IMODE,IF,IL,IREJ
- DOUBLE PRECISION PTCUT
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C hard scattering data
- INTEGER MSCAHD
- PARAMETER ( MSCAHD = 50 )
- INTEGER LSCAHD,LSC1HD,LSIDX,
- & NINHD,N0INHD,NIVAL,N0IVAL,NOUTHD,NBRAHD,NPROHD
- DOUBLE PRECISION PPH,PTHD,ETAHD,Q2SCA,PDFVA,XHD,VHD,X0HD
- COMMON /POHSLT/ LSCAHD,LSC1HD,LSIDX(MSCAHD),
- & PPH(8*MSCAHD,2),PTHD(MSCAHD),ETAHD(MSCAHD,2),
- & Q2SCA(MSCAHD,2),PDFVA(MSCAHD,2),
- & XHD(MSCAHD,2),VHD(MSCAHD),X0HD(MSCAHD,2),
- & NINHD(MSCAHD,2),N0INHD(MSCAHD,2),
- & NIVAL(MSCAHD,2),N0IVAL(MSCAHD,2),
- & NOUTHD(MSCAHD,2),NBRAHD(MSCAHD,2),NPROHD(MSCAHD)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
- DOUBLE PRECISION PTS,XP,XP2,POLD,PNEW,GA,PP
- DIMENSION PTS(0:2,5),XP(5),
- & XP2(5,2),POLD(2,2),PNEW(4,2),GA(4),PP(4)
-
- INTEGER IROTT,IBALT,IBAL,IV,IV2,IRMAX
-
- PARAMETER (IRMAX=200)
- DIMENSION IROTT(IRMAX),IBALT(5,2),IBAL(2),IV(5),IV2(5,2)
-
- DOUBLE PRECISION SI,EI,SF,EF,PTOT,EE,XX,YY,ZZ,ANORF,FAC,DEL,PT2,
- & DEL2,GAE,GAZ,SID,COD,SIF,COF,ESUM
- INTEGER IROT,I,J,K,NHD,ISTART,INEXT,ICOM
-
-C debug output
- IF(IDEB(10).GE.10) WRITE(LO,'(1X,A,3I4,1P,E11.3)')
- & 'PHO_PRIMKT: called with IMODE,IF,IL,PTCUT',
- & IMODE,IF,IL,PTCUT
-
-C give primordial kt to partons engaged in a hard scattering
-
- IF(IMODE.EQ.1) THEN
-
- ISTART = IF
-
- 100 CONTINUE
-
- NHD = 0
- IBAL(1) = 0
- IBAL(2) = 0
- IROT = 0
- ICOM = 0
- DO 110 I=ISTART,IL
- IF(ISTHEP(I).EQ.25) THEN
-C hard scattering number
- NHD = IPHIST(1,I+1)
- ICOM = I
- K = LSIDX(NHD/100)
-C calculate momenta of incoming partons
- POLD(1,1) = XHD(K,1)*ECMP/2.D0
- POLD(2,1) = POLD(1,1)
- POLD(1,2) = -XHD(K,2)*ECMP/2.D0
- POLD(2,2) = -POLD(1,2)
- ISTART = I+3
- GOTO 150
- ENDIF
- 110 CONTINUE
- RETURN
-
- 150 CONTINUE
-
-C search for partons involved in hard interaction
- INEXT = 0
- IROT = 0
- DO 500 I=ISTART,IL
- IF(ABS(ISTHEP(I)).EQ.1) THEN
-C hard scatterd partons (including ISR)
- IF((IPHIST(1,I).EQ.-NHD)
- & .OR.(IPHIST(1,I).EQ.NHD+1)
- & .OR.(IPHIST(1,I).EQ.NHD+2)) THEN
- IROT = IROT+1
-
- IF(IROT.GT.IRMAX) THEN
- WRITE(LO,'(1X,/,2A,2I5)') 'PHO_PRIMKT: ',
- & 'no memory left in IROTT, event rejected (max/IROT)',
- & IRMAX,IROT
- CALL PHO_PREVNT(0)
- IREJ = 1
- RETURN
- ENDIF
-
- IROTT(IROT) = I
-C hard remnant
- ELSE IF(IPHIST(1,I).EQ.NHD) THEN
- IF(PHEP(3,I).GT.0.D0) THEN
- J = 1
- ELSE
- J = 2
- ENDIF
- IBAL(J) = IBAL(J)+1
- IBALT(IBAL(J),J) = I
- XP2(IBAL(J),J) = PHEP(3,I)/ECMP
- IF(ISWMDL(24).EQ.0) THEN
- IV2(IBAL(J),J) = 0
- IF(IDHEP(I).NE.21) IV2(IBAL(J),J) = ICOLOR(2,I)
- ELSE IF(ISWMDL(24).EQ.1) THEN
- IV2(IBAL(J),J) = -1
- ELSE
- IV2(IBAL(J),J) = 1
- ENDIF
- ENDIF
-C possibly further hard scattering
- ELSE IF(ISTHEP(I).EQ.25) THEN
- INEXT = 1
- ISTART = I
- GOTO 550
- ENDIF
- 500 CONTINUE
- 550 CONTINUE
-
-C debug output
- if(IDEB(10).ge.15) then
- WRITE(LO,'(1X,2A,I4)') 'PHO_PRIMKT: ',
- & 'hard scattering number: ',NHD/100
- WRITE(LO,'(1X,2A,I5)') 'PHO_PRIMKT: ',
- & 'number of entries to rotate: ',IROT
- DO I=1,IROT
- WRITE(LO,'(1X,2A,2I5)') 'PHO_PRIMKT: ',
- & 'entries to rotate: ',I,IROTT(I)
- ENDDO
- WRITE(LO,'(1X,2A,2I5)') 'PHO_PRIMKT: ',
- & 'number of entries to balance: ',IBAL
- DO J=1,2
- DO I=1,IBAL(J)
- WRITE(LO,'(1X,2A,I2,2I5)')
- & 'PHO_PRIMKT: entries to balance (side,no,line)',
- & J,I,IBALT(I,J)
- ENDDO
- ENDDO
- endif
-
-C incoming partons (comment lines), skip direct interacting particles
- DO 120 K=1,2
- IF((IDHEP(ICOM+K).NE.22).AND.(IDHEP(ICOM+K).NE.990)) THEN
- IF(PHEP(3,ICOM+K).GT.0.D0) THEN
- J = 1
- ELSE
- J = 2
- ENDIF
- IBAL(J) = IBAL(J)+1
- IBALT(IBAL(J),J) = -ICOM-K
- XP2(IBAL(J),J) = POLD(1,J)/ECMP
- IV2(IBAL(J),J) = -1
- ENDIF
- 120 CONTINUE
-
-C check consistency
- IF((IBAL(1).GT.4).OR.(IBAL(2).GT.4)) THEN
- WRITE(LO,'(1X,2A,I10)') 'PHO_PRIMKT: ',
- & 'inconsistent hard scattering remnant for event: ',KEVENT
- WRITE(LO,'(1X,A,3I4,1P,E11.3)')
- & 'PHO_PRIMKT called with IMODE,IF,IL,PTCUT',
- & IMODE,IF,IL,PTCUT
- WRITE(LO,'(1X,A,I4)') 'hard scattering number: ',NHD/100
- DO 390 I=1,IROT
- WRITE(LO,'(1X,A,2I5)') 'entries to rotate',I,IROTT(I)
- 390 CONTINUE
- DO 392 J=1,2
- DO 395 I=1,IBAL(J)
- WRITE(LO,'(1X,A,I2,2I5)')
- & 'entries to balance (side,no,line)',J,I,IBALT(I,J)
- 395 CONTINUE
- 392 CONTINUE
- IF(IBAL(1)+IBAL(2).GT.0) CALL PHO_PREVNT(0)
- ENDIF
-
-C calculate primordial kt
-
-C something to do?
- IF((IBAL(1).GT.1).OR.(IBAL(2).GT.1)) THEN
-
-C add transverse momentum (overwrite /POEVT1/ entries)
- DO 200 J=1,2
- IF(IBAL(J).GT.1) THEN
-C sample from truncated distribution
- K = IBAL(J)
- DO 180 I=1,K
- IV(I) = IV2(I,J)
- XP(I) = XP2(I,J)
- 180 CONTINUE
- 190 CONTINUE
- CALL PHO_SOFTPT(K,PTCUT,PTCUT,XP,IV,PTS)
- IF(PTS(0,K).GE.PARMDL(100)) GOTO 190
-C transform incoming partons of hard scattering
- DEL = ABS(POLD(1,J))+POLD(2,J)
- PT2 = PTS(0,K)**2
- DEL2 = DEL*DEL
- PNEW(1,J) = PTS(1,K)
- PNEW(2,J) = PTS(2,K)
- PNEW(3,J) = (-1)**J*(PT2 - DEL2)/(2.D0*DEL)
- PNEW(4,J) = (DEL2 + PT2)/(2.D0*DEL)
-C spectator partons
- ESUM = 0.D0
- DO 220 I=1,IBAL(J)-1
- K = IBALT(I,J)
- PHEP(1,K) = PHEP(1,K)+PTS(1,I)
- PHEP(2,K) = PHEP(2,K)+PTS(2,I)
- ESUM = ESUM+PHEP(4,K)
- 220 CONTINUE
-C long. momentum transfer
- PP(3) = PNEW(3,J) - POLD(1,J)
- PP(4) = PNEW(4,J) - POLD(2,J)
- DO 230 I=1,IBAL(J)-1
- K = IBALT(I,J)
- FAC = PHEP(4,K)/ESUM
- PHEP(3,K) = PHEP(3,K) - FAC*PP(3)
- PHEP(4,K) = PHEP(4,K) - FAC*PP(4)
- 230 CONTINUE
-
-C debug output
- IF(IDEB(10).GE.15) THEN
- WRITE(LO,'(1X,2A,I3,1P,4E11.3)') 'PHO_PRIMKT: ',
- & 'old incoming:',J,0.D0,0.D0,(POLD(I,J),I=1,2)
- WRITE(LO,'(1X,2A,I3,1P,4E11.3)') 'PHO_PRIMKT: ',
- & 'new incoming:',J,(PNEW(I,J),I=1,4)
- ENDIF
-
- ELSE
- PNEW(1,J) = 0.D0
- PNEW(2,J) = 0.D0
- PNEW(3,J) = POLD(1,J)
- PNEW(4,J) = POLD(2,J)
- ENDIF
- 200 CONTINUE
-
-C transformation of hard scattering final states (including ISR)
-
-C old parton c.m. energy
- SI = (POLD(2,1)+POLD(2,2))**2-(POLD(1,1)+POLD(1,2))**2
- EI = SQRT(SI)
-C new parton c.m. energy
- SF = (PNEW(4,1)+PNEW(4,2))**2-(PNEW(1,1)+PNEW(1,2))**2
- & -(PNEW(2,1)+PNEW(2,2))**2-(PNEW(3,1)+PNEW(3,2))**2
- EF = SQRT(SF)
- FAC = EF/EI
-C debug output
- IF(IDEB(10).GE.25) WRITE(LO,'(1X,A,1P,E12.4)')
- & 'PHO_PRIMKT: scaling factor (E-final/E-initial): ',FAC
-
-C calculate Lorentz transformation
- GAZ = -(POLD(1,1)+POLD(1,2))/EI
- GAE = (POLD(2,1)+POLD(2,2))/EI
- DO 240 I=1,4
- GA(I) = (PNEW(I,1)+PNEW(I,2))/EF
- 240 CONTINUE
- CALL PHO_ALTRA(GA(4),-GA(1),-GA(2),-GA(3),PNEW(1,1),PNEW(2,1),
- & PNEW(3,1),PNEW(4,1),PTOT,PP(1),PP(2),PP(3),PP(4))
- PTOT = MAX(DEPS,PTOT)
- COD= PP(3)/PTOT
- SID= SQRT(PP(1)**2+PP(2)**2)/PTOT
- COF= 1.D0
- SIF= 0.D0
- IF(PTOT*SID.GT.1.D-5) THEN
- COF=PP(1)/(SID*PTOT)
- SIF=PP(2)/(SID*PTOT)
- ANORF=SQRT(COF*COF+SIF*SIF)
- COF=COF/ANORF
- SIF=SIF/ANORF
- ENDIF
-
-C debug output
-C check consistency initial/final configuration before rotation
- IF(IDEB(10).GE.25) THEN
- WRITE(LO,'(1X,A,1P,4E11.3)') 'PHO_PRIMKT: ini. momentum (1):',
- & 0.D0,0.D0,(POLD(I,1)+POLD(I,2),I=1,2)
- DO I=1,4
- PP(I) = 0.D0
- ENDDO
- DO I=1,IROT
- K = IROTT(I)
- DO J=1,4
- PP(J) = PP(J)+PHEP(J,K)
- ENDDO
- ENDDO
- WRITE(LO,'(1X,A,1P,4E11.3)')
- & 'PHO_PRIMKT: fin. momentum (1):',PP
- ENDIF
-
-C apply rotation/boost to scattered particles
- DO 400 I=1,IROT
- K = IROTT(I)
- DO 350 J=1,4
- PP(J) = FAC*PHEP(J,K)
- 350 CONTINUE
- CALL PHO_ALTRA(GAE,0.D0,0.D0,GAZ,PP(1),PP(2),PP(3),
- & PP(4),PTOT,PHEP(1,K),PHEP(2,K),PHEP(3,K),PHEP(4,K))
- CALL PHO_TRANS(PHEP(1,K),PHEP(2,K),PHEP(3,K),
- & COD,SID,COF,SIF,XX,YY,ZZ)
- EE = PHEP(4,K)
- CALL PHO_ALTRA(GA(4),GA(1),GA(2),GA(3),XX,YY,ZZ,EE,PTOT,
- & PHEP(1,K),PHEP(2,K),PHEP(3,K),PHEP(4,K))
- 400 CONTINUE
-
-C debug output
-C check consistency initial/final configuration after rotation
- IF(IDEB(10).GE.25) THEN
- DO I=1,4
- PP(I) = PNEW(I,1)+PNEW(I,2)
- ENDDO
- WRITE(LO,'(1X,A,1P,4E11.3)')
- & 'PHO_PRIMKT: ini. momentum (2):',PP
- DO I=1,4
- PP(I) = 0.D0
- ENDDO
- DO I=1,IROT
- K = IROTT(I)
- DO J=1,4
- PP(J) = PP(J)+PHEP(J,K)
- ENDDO
- ENDDO
- WRITE(LO,'(1X,A,1P,4E11.3)')
- & 'PHO_PRIMKT: fin. momentum (2):',PP
- ENDIF
-
- ENDIF
-
- IF(INEXT.EQ.1) GOTO 100
-
-C initialization
-
- ELSE IF(IMODE.EQ.-1) THEN
-
-C output of statistics etc.
-
- ELSE IF(IMODE.EQ.-2) THEN
-
-C something wrong
-
- ELSE
- WRITE(LO,'(/1X,A,I4)')
- & 'PHO_PRIMKT:ERROR: invalid value of IMODE:',IMODE
- CALL PHO_ABORT
- ENDIF
-
- END
-
-CDECK ID>, PHO_PARTPT
- SUBROUTINE PHO_PARTPT(IMODE,IF,IL,PTCUT,IREJ)
-C********************************************************************
-C
-C assign to soft partons
-C
-C input: IMODE -2 output of statistics
-C -1 initialization
-C 0 sampling of pt for soft partons belonging to
-C soft Pomerons
-C 1 sampling of pt for soft partons belonging to
-C hard Pomerons
-C IF first entry in /POEVT1/ to check
-C IL last entry in /POEVT1/ to check
-C PTCUT current value of PTCUT to distinguish
-C between soft and hard
-C
-C output: IREJ 0 success
-C 1 failure
-C
-C (soft pt is sampled by call to PHO_SOFTPT)
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-15 )
-
- INTEGER IMODE,IF,IL,IREJ
- DOUBLE PRECISION PTCUT
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
- DOUBLE PRECISION PTS,PB,XP,XPB,PC
- DIMENSION PTS(0:2,50),PB(0:2,2),XP(50),XPB(2),PC(4)
-
- INTEGER MODIFY,IV,IVB
- DIMENSION MODIFY(50),IV(50),IVB(2)
-
-C debug output
- IF(IDEB(6).GE.10) WRITE(LO,'(1X,A,3I4,1P,E11.3)')
- & 'PHO_PARTPT: called with IMODE,IF,IL,PTCUT',
- & IMODE,IF,IL,PTCUT
-
- IF(IMODE.LT.0) GOTO 1000
-
- IREJ = 0
- IF((ISWMDL(3).EQ.10).AND.(ISWMDL(4).EQ.10)) RETURN
-
-C count entries to modify
- IENTRY = 0
- PTCUT2 = PTCUT**2
- EMIN = 1.D20
- IPEAK = 1
- ISTART = IF
-
-C soft Pomerons
-
- IF(IMODE.EQ.0) THEN
- DO 300 I=ISTART,IL
- IF((ISTHEP(I).EQ.-1).AND.(ABS(IPHIST(1,I)).LT.100)) THEN
- IENTRY = IENTRY+1
- MODIFY(IENTRY) = I
- XP(IENTRY) = SIGN(PHEP(4,I)/ECMP,PHEP(3,I))
- IV(IENTRY) = 0
- IF(IDHEP(I).NE.21) IV(IENTRY) = ICOLOR(2,I)
- IF(PHEP(4,I).LT.EMIN) THEN
- EMIN = PHEP(4,I)
- IPEAK = IENTRY
- ENDIF
- ENDIF
- 300 CONTINUE
-
-C hard Pomeron associated remnants (IPHIST(1,)=100,200,...)
-
- ELSE IF(IMODE.EQ.1) THEN
-
- DO 350 I=ISTART,IL
- IF((ISTHEP(I).EQ.-1).AND.(IPHIST(1,I).GE.100)) THEN
- IF(MOD(IPHIST(1,I),100).EQ.0) THEN
- IENTRY = IENTRY+1
- MODIFY(IENTRY) = I
- XP(IENTRY) = SIGN(PHEP(4,I)/ECMP,PHEP(3,I))
- IF(ISWMDL(24).EQ.0) THEN
- IV(IENTRY) = 0
- IF(IDHEP(I).NE.21) IV(IENTRY) = ICOLOR(2,I)
- ELSE IF(ISWMDL(24).EQ.1) THEN
- IV(IENTRY) = -1
- ELSE
- IV(IENTRY) = 1
- ENDIF
- IF(PHEP(4,I).LT.EMIN) THEN
- EMIN = PHEP(4,I)
- IPEAK = IENTRY
- ENDIF
- ENDIF
- ENDIF
- 350 CONTINUE
-
-C something wrong
-
- ELSE
- WRITE(LO,'(/1X,A,I5)') 'PHO_PARTPT:ERROR: invalid mode',IMODE
- CALL PHO_ABORT
- ENDIF
-
-C debug output
- IF(IDEB(6).GE.5) THEN
- WRITE(LO,'(1X,2A,3I4)') 'PHO_PARTPT: ',
- & 'number of partons, IPEAK,MODE',IENTRY,IPEAK,IMODE
- IF(IDEB(6).GE.20) CALL PHO_PREVNT(0)
- ENDIF
-
-C nothing to do
- IF(IENTRY.LE.1) RETURN
-
-C sample pt of soft partons
-
- IF(ISWMDL(5).LE.1) THEN
- ITER = 0
- IPEAK = DT_RNDM(DUM)*IENTRY+1
- CALL PHO_SWAPI(MODIFY(IPEAK),MODIFY(1))
- CALL PHO_SWAPD(XP(IPEAK),XP(1))
- CALL PHO_SWAPI(IV(IPEAK),IV(1))
- 400 CONTINUE
-C energy limited sampling
- PSUMX = 0.D0
- PSUMY = 0.D0
- ITER = ITER+1
- IF(ITER.GE.1000) THEN
- IF(IDEB(6).GE.3) THEN
- WRITE(LO,'(1X,A,3I5)')
- & 'PHO_PARTPT: rejection for MODE,ENTRY,ITER',
- & IMODE,IENTRY,ITER
- WRITE(LO,'(8X,A,I5)') 'I II IV XP EP',
- & IPEAK
- DO 405 I=1,IENTRY
- II = MODIFY(I)
- WRITE(LO,'(5X,3I5,1P,2E13.4)')
- & I,II,IV(I),XP(I),PHEP(4,II)
- 405 CONTINUE
- IF(IDEB(6).GE.5) CALL PHO_PREVNT(0)
- ENDIF
- IREJ = 1
- RETURN
- ENDIF
- DO 410 I=2,IENTRY
- II = MODIFY(I)
- PTMX = MIN(PHEP(4,II),PTCUT)
- XPB(1) = XP(I)
- IVB(1) = IV(I)
- IF(ISWMDL(5).EQ.0) THEN
- CALL PHO_SOFTPT(1,PTCUT,PTMX,XPB,IVB,PB)
- ELSE
- CALL PHO_SOFTPT(1,PTMX,PTMX,XPB,IVB,PB)
- ENDIF
- PTS(0,I) = PB(0,1)
- PTS(1,I) = PB(1,1)
- PTS(2,I) = PB(2,1)
- PSUMX = PSUMX+PB(1,1)
- PSUMY = PSUMY+PB(2,1)
- 410 CONTINUE
- PTREM = SQRT(PSUMX**2+PSUMY**2)
- IF(PTREM.GT.MIN(PHEP(4,MODIFY(1)),PTCUT)) GOTO 400
- PTS(1,1) = -PSUMX
- PTS(2,1) = -PSUMY
- ELSE IF((ISWMDL(5).EQ.2)
- & .OR.((IMODE.EQ.1).AND.(ISWMDL(5).EQ.3))) THEN
-C unlimited sampling
- IPEAK = DT_RNDM(PSUMX)*IENTRY+1
- CALL PHO_SWAPI(MODIFY(IPEAK),MODIFY(1))
- CALL PHO_SWAPD(XP(IPEAK),XP(1))
- CALL PHO_SWAPI(IV(IPEAK),IV(1))
- CALL PHO_SOFTPT(IENTRY,PTCUT,PTCUT,XP,IV,PTS)
- ELSE IF(ISWMDL(5).EQ.3) THEN
-C each string has balanced pt
- DO 500 K=1,IENTRY
- IF(IV(K).LE.-90) GOTO 499
- I1 = MODIFY(K)
- IC1 = -ICOLOR(1,I1)
- DO 510 L=K+1,IENTRY
- IF(ICOLOR(1,MODIFY(L)).EQ.IC1) GOTO 511
- 510 CONTINUE
- WRITE(LO,'(//1X,A,I5)')
- & 'PHO_PARTPT:ERROR: no color found for (line,color)',I1,-IC1
- CALL PHO_ABORT
- 511 CONTINUE
- I2 = MODIFY(L)
- AMSQR = (PHEP(4,I1)+PHEP(4,I2))**2-(PHEP(1,I1)+PHEP(1,I2))**2
- & -(PHEP(2,I1)+PHEP(2,I2))**2-(PHEP(3,I1)+PHEP(3,I2))**2
- AM = SQRT(AMSQR)
- PTMX = AM/2.D0
- IVB(1) = MAX(IV(K),IV(L))
- XPB(1) = XP(K)
- CALL PHO_SOFTPT(1,PTCUT,PTMX,XPB,IVB,PB)
- PTS(1,K) = PB(1,1)
- PTS(2,K) = PB(2,1)
- PTS(1,L) = -PB(1,1)
- PTS(2,L) = -PB(2,1)
- GAM = (PHEP(4,I1)+PHEP(4,I2))/AM
- GAMBEZ = (PHEP(3,I1)+PHEP(3,I2))/AM
- PC(1) = PB(1,1)
- PC(2) = PB(2,1)
- PLONG = SQRT(PTMX**2-PB(0,1)**2+1.D-12)
- PC(3) = SIGN(PLONG,PHEP(3,I1))
- PC(4) = PTMX
- CALL PHO_ALTRA(GAM,0.D0,0.D0,GAMBEZ,PC(1),PC(2),PC(3),PC(4),
- & PTOT,PHEP(1,I1),PHEP(2,I1),PHEP(3,I1),PHEP(4,I1))
- PC(1) = -PC(1)
- PC(2) = -PC(2)
- PC(3) = -PC(3)
- CALL PHO_ALTRA(GAM,0.D0,0.D0,GAMBEZ,PC(1),PC(2),PC(3),PC(4),
- & PTOT,PHEP(1,I2),PHEP(2,I2),PHEP(3,I2),PHEP(4,I2))
- IV(K) = IV(K)-100
- IV(L) = IV(L)-100
- 499 CONTINUE
- 500 CONTINUE
- ELSE
- WRITE(LO,'(/1X,A,I4)')
- & 'PHO_PARTPT:ERROR: invalid value of ISWMDL(5):',ISWMDL(5)
- CALL PHO_ABORT
- ENDIF
-
-C change partons in /POEVT1/
- DO 900 II=1,IENTRY
- IF(IV(II).GT.-90) THEN
- I = MODIFY(II)
- PHEP(1,I) = PHEP(1,I)+PTS(1,II)
- PHEP(2,I) = PHEP(2,I)+PTS(2,II)
- AMSQR = PHEP(4,I)**2
- & -PHEP(1,I)**2-PHEP(2,I)**2-PHEP(3,I)**2
- PHEP(5,I) = SIGN(SQRT(ABS(AMSQR)),AMSQR)
- ENDIF
- 900 CONTINUE
-
-C debug output
- IF(IDEB(6).GE.15) THEN
- WRITE(LO,'(1X,A,/,8X,A,I5)') 'PHO_PARTPT: table of momenta',
- & 'I II IV XP EP PTS PTX PTY',IPEAK
- DO 505 I=1,IENTRY
- II = MODIFY(I)
- WRITE(LO,'(2X,3I5,1P,5E12.4)')
- & I,II,IV(I),XP(I),PHEP(4,II),PTS(0,I),PTS(1,I),PTS(2,I)
- 505 CONTINUE
- CALL PHO_PREVNT(0)
- ENDIF
- RETURN
-
-C initialization / output of statistics
- 1000 CONTINUE
- CALL PHO_SOFTPT(IMODE,PTM,PTM,XP,IV,PTS)
-
- END
-
-CDECK ID>, PHO_SOFTPT
- SUBROUTINE PHO_SOFTPT(ISOFT,PTCUT,PTMAX,XV,IV,PTSOF)
-C***********************************************************************
-C
-C select pt of soft string ends
-C
-C input: ISOFT number of soft partons
-C -1 initialization
-C >=0 sampling of p_t
-C -2 output of statistics
-C PTCUT cutoff for soft strings
-C PTMAX maximal allowed PT
-C XV field of x values
-C IV 0 sea quark
-C 1 valence quark
-C
-C output: /POINT3/ containing parameters AAS,BETAS
-C PTSOF filed with soft pt values
-C
-C note: ISWMDL(3/4) = 0 dNs/dP_t = P_t ASS * exp(-BETA*P_t**2)
-C ISWMDL(3/4) = 1 dNs/dP_t = P_t ASS * exp(-BETA*P_t)
-C ISWMDL(3/4) = 2 photon wave function
-C ISWMDL(3/4) = 10 no soft P_t assignment
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-15)
-
- DIMENSION PTSOF(0:2,*),XV(*)
- DIMENSION IV(*)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-C data needed for soft-pt calculation
- DOUBLE PRECISION SIGS,DSIGHP,SIGH,FS,FH,BETAS,AAS,PTCON
- COMMON /POINT3/ SIGS,DSIGHP,SIGH,FS,FH,BETAS(3),AAS,PTCON
-
- DIMENSION BETAB(100)
-
-C selection of pt
- IF(ISOFT.GE.0) THEN
- CALLS = CALLS + 1.D0
-C sample according to model ISWMDL(3-6)
- IF(ISOFT.GT.1) THEN
- 210 CONTINUE
- PTXS = 0.D0
- PTYS = 0.D0
- DO 300 I=2,ISOFT
- IMODE = ISWMDL(3)
-C valence partons
- IF(IV(I).EQ.1) THEN
- BETA = BETAS(1)
-C photon/pomeron valence part
- IF(IPAMDL(5).EQ.1) THEN
- IF(XV(I).GE.0.D0) THEN
- IF((IDPDG1.EQ.22).OR.(IDPDG1.EQ.990)) THEN
- IMODE = ISWMDL(4)
- BETA = BETAS(3)
- ENDIF
- ELSE
- IF((IDPDG2.EQ.22).OR.(IDPDG2.EQ.990)) THEN
- IMODE = ISWMDL(4)
- BETA = BETAS(3)
- ENDIF
- ENDIF
- ELSE IF(IPAMDL(5).EQ.2) THEN
- BETA = PARMDL(20)
- ELSE IF(IPAMDL(5).EQ.3) THEN
- BETA = BETAS(3)
- ENDIF
-C sea partons
- ELSE IF(IV(I).EQ.0) THEN
- BETA = BETAS(3)
-C hard scattering remnant
- ELSE
- IF(IPAMDL(6).EQ.0) THEN
- BETA = BETAS(1)
- ELSE IF(IPAMDL(6).EQ.1) THEN
- BETA = BETAS(3)
- ELSE
- BETA = PARMDL(20)
- ENDIF
- ENDIF
- BETA = MAX(BETA,0.01D0)
- CALL PHO_SELPT(XV(I),0.D0,PTCUT,PTS,BETA,IMODE)
- PTS = MIN(PTMAX,PTS)
- CALL PHO_SFECFE(SIG,COG)
- PTSOF(0,I) = PTS
- PTSOF(1,I) = COG*PTS
- PTSOF(2,I) = SIG*PTS
- PTXS = PTXS+PTSOF(1,I)
- PTYS = PTYS+PTSOF(2,I)
- BETAB(I) = BETA
- 300 CONTINUE
-C balancing of momenta
- PTS = SQRT(PTXS**2+PTYS**2)
- IF(PTS.GE.PTMAX) GOTO 210
- PTSOF(0,1) = PTS
- PTSOF(1,1) = -PTXS
- PTSOF(2,1) = -PTYS
- BETAB(1) = 0.D0
-C
-*400 CONTINUE
-C
-C single parton only
- ELSE
- IMODE = ISWMDL(3)
-C valence partons
- IF(IV(1).EQ.1) THEN
- BETA = BETAS(1)
-C photon/Pomeron valence part
- IF(IPAMDL(5).EQ.1) THEN
- IF(XV(1).GE.0.D0) THEN
- IF((IDPDG1.EQ.22).OR.(IDPDG1.EQ.990)) THEN
- IMODE = ISWMDL(4)
- BETA = BETAS(3)
- ENDIF
- ELSE
- IF((IDPDG2.EQ.22).OR.(IDPDG2.EQ.990)) THEN
- IMODE = ISWMDL(4)
- BETA = BETAS(3)
- ENDIF
- ENDIF
- ELSE IF(IPAMDL(5).EQ.2) THEN
- BETA = PARMDL(20)
- ELSE IF(IPAMDL(5).EQ.3) THEN
- BETA = BETAS(3)
- ENDIF
-C sea partons
- ELSE IF(IV(1).EQ.0) THEN
- BETA = BETAS(3)
-C hard scattering remnant
- ELSE
- IF(IPAMDL(6).EQ.1) THEN
- BETA = BETAS(3)
- ELSE
- BETA = PARMDL(20)
- ENDIF
- ENDIF
- BETA = MAX(BETA,0.01D0)
- CALL PHO_SELPT(XV(1),0.D0,PTCUT,PTS,BETA,IMODE)
- PTS = MIN(PTMAX,PTS)
- CALL PHO_SFECFE(SIG,COG)
- PTSOF(0,1) = PTS
- PTSOF(1,1) = COG*PTS
- PTSOF(2,1) = SIG*PTS
- BETAB(1) = BETA
- ENDIF
-
-C debug output
- IF(IDEB(29).GE.10) THEN
- WRITE(LO,'(1X,A,I4)') 'PHO_SOFTPT: ISOFT',ISOFT
- WRITE(LO,'(6X,A)') 'TABLE OF I, IV, XV, PT, PT-X, PT-Y, BETA'
- DO 105 I=1,ISOFT
- WRITE(LO,'(10X,2I3,1P,5E12.3)') I,IV(I),XV(I),PTSOF(0,I),
- & PTSOF(1,I),PTSOF(2,I),BETAB(I)
- 105 CONTINUE
- ENDIF
-
-C initialization of statistics and parameters
-
- ELSE IF(ISOFT.EQ.-1) THEN
- PTSMIN = 0.D0
- PTSMAX = PTCUT
-
- IMODE = -100+ISWMDL(3)
- CALL PHO_SELPT(ECMP,PTSMIN,PTSMAX,PTS,BETAS(3),IMODE)
-
-C output of statistics
-
- ELSE IF(ISOFT.EQ.-2) THEN
-
- ELSE
- WRITE(LO,'(1X,2A,I2)') 'PHO_SOFTPT:ERROR: ',
- & 'unsupported ISOFT ',ISOFT
- STOP
- ENDIF
- END
-
-CDECK ID>, PHO_SELPT
- SUBROUTINE PHO_SELPT(EE,PTLOW,PTHIGH,PTS,BETA,IMODE)
-C***********************************************************************
-C
-C select pt from different distributions
-C
-C input: EE energy (for initialization only)
-C otherwise x value of corresponding parton
-C PTLOW lower pt limit
-C PTHIGH upper pt limit
-C (PTHIGH > 20 will cause DEXP underflows)
-C
-C IMODE = 0 dNs/dP_t = P_t * ASS * exp(-BETA*P_t**2)
-C IMODE = 1 dNs/dP_t = P_t * ASS * exp(-BETA*P_t)
-C IMODE = 2 dNs/dP_t according photon wave function
-C IMODE = 10 no sampling
-C
-C IMODE = -100+IMODE initialization according to
-C given limitations
-C
-C output: PTS sampled pt value
-C initialization:
-C BETA soft pt slope in central region
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( PI2 = 6.28318530718D0,
- & AMIN = 1.D-2,
- & EPS = 1.D-7,
- & DEPS = 1.D-30)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C average number of cut soft and hard ladders (obsolete)
- DOUBLE PRECISION AVERI,AVERK,AVERL,AVERM,AVERN
- COMMON /POINT2/ AVERI,AVERK,AVERL,AVERM,AVERN
-C data needed for soft-pt calculation
- DOUBLE PRECISION SIGS,DSIGHP,SIGH,FS,FH,BETAS,AAS,PTCON
- COMMON /POINT3/ SIGS,DSIGHP,SIGH,FS,FH,BETAS(3),AAS,PTCON
-
- DOUBLE PRECISION PHO_CONN0,PHO_CONN1
- EXTERNAL PHO_CONN0,PHO_CONN1
-
-C initialization
-
- IF(IMODE.LT.0) GOTO 100
-
- PX = PTHIGH
- PTS = 0.D0
-
-C initial checks
-
- IF(PX.LT.AMIN) RETURN
-
- IF((PX-PTLOW).LT.0.01) THEN
- IF(IDEB(5).GE.3) WRITE(LO,'(1X,A,2E12.3,I3)')
- & 'PHO_SELPT: PTLOW,PTHIGH,IMODE ',PTLOW,PTHIGH,IMODE
- RETURN
- ENDIF
-
-C sampling of pt values according to IMODE
-
- IF(IMODE.EQ.0) THEN
-
- FAC1 = EXP(-BETA*PX**2)
- FAC2 = (1.D0-FAC1)
- 25 CONTINUE
- XI1 = DT_RNDM(PX)*FAC2 + FAC1
- PTS = SQRT(-1.D0/BETA*LOG(XI1))
- IF((PTS.GT.PTHIGH).OR.(PTS.LT.PTLOW)) GOTO 25
-
- ELSE IF(IMODE.EQ.1) THEN
-
- XIMIN = EXP(-BETA*PTHIGH)
- XIDEL = 1.D0-XIMIN
- 50 CONTINUE
- PTS = -LOG((XIDEL*DT_RNDM(XIDEL)+XIMIN)
- & *(XIDEL*DT_RNDM(XIMIN)+XIMIN)+DEPS)/BETA
- IF(PTS.LT.XMT) GOTO 50
- PTS = SQRT(PTS**2-XMT2)
- IF((PTS.GT.PTHIGH).OR.(PTS.LT.PTLOW)) GOTO 50
-
- ELSE IF(IMODE.EQ.2) THEN
-
- IF(EE.GE.0.D0) THEN
- P2 = PVIRTP(1)
- ELSE
- P2 = PVIRTP(2)
- ENDIF
- XV = ABS(EE)
- AA = (1.D0-XV)*XV*P2+PARMDL(25)
- 75 CONTINUE
- PTS = SQRT(AA/(DT_RNDM(PX)+EPS)-AA)
- IF((PTS.GT.PTHIGH).OR.(PTS.LT.PTLOW)) GOTO 75
-
-C something wrong
-
- ELSE IF(IMODE.NE.10) THEN
- WRITE(LO,'(/1X,A,I4)') 'PHO_SELPT:ERROR: invalid IMODE',IMODE
- CALL PHO_ABORT
- ENDIF
-
-C debug output
- IF(IDEB(5).GE.20) THEN
- WRITE(LO,'(1X,A,I3,4E10.3)')
- & 'PHO_SELPT: MODE,BET,PTMI,PTMA,PT',
- & IMODE,BETA,PTLOW,PTHIGH,PTS
- ENDIF
- RETURN
-
-C initialization
- 100 CONTINUE
- PTSMIN = PTLOW
- PTSMAX = PTHIGH
- PTCON = PTHIGH
-C calculation of parameters
- INIT = IMODE+100
- AAS = 0.D0
-
-C initialization for model 0 (gaussian pt distribution)
-
- IF(INIT.EQ.0) THEN
- BETAS(1) = PARMDL(23)+0.15D0*LOG(EE)*(PARMDL(24)-PARMDL(23))
- BETUP = BETAS(1)
- BETLO = -2.D0
- XTOL = PHO_CONN0(BETLO)*PHO_CONN0(BETUP)
- IF(XTOL.LT.0.D0) THEN
- XTOL = 1.D-4
- METHOD = 1
- MAXF = 500
- BETA = 0.D0
- BETA = PHO_DZEROX(BETLO,BETUP,XTOL,MAXF,PHO_CONN0,METHOD)
-* IF(BETA.LT.-1.D+10) THEN
-* WRITE(LO,'(1X,2A,1P,2E11.3)') 'PHO_SELPT: no Beta found ',
-* & '(model 0: Ecm,PTcut)',EE,PTCON
-* WRITE(LO,'(1X,A,1P,3E10.3)')
-* & 'PHO_SELPT: SIGS,SIGH,DSIGHP',SIGS,SIGH,DSIGHP
-* CALL PHO_PREVNT(-1)
-* BETA = 0.01
-* ELSE
- AAS = DSIGHP/PTCON*EXP(-BETA*PTCON**2)
-* ENDIF
- ELSE
- AAS = 0.D0
- BETA = BETAS(1)
- ENDIF
-
-C initialization for model 1 (exponential pt distribution)
-
- ELSE IF(INIT.EQ.1) THEN
- XMT = PARMDL(43)
- XMT2 = XMT*XMT
- BETAS(1) = PARMDL(21)+0.15D0*LOG(EE)*(PARMDL(22)-PARMDL(21))
- BETUP = BETAS(1)
- BETLO = -3.D0
- XTOL = PHO_CONN1(BETLO)*PHO_CONN1(BETUP)
- IF(XTOL.LT.0.D0) THEN
- XTOL = 1.D-4
- METHOD = 1
- MAXF = 500
- BETA = 0.D0
- BETA = PHO_DZEROX(BETLO,BETUP,XTOL,MAXF,PHO_CONN1,METHOD)
-* IF(BETA.LT.-1.D+10) THEN
-* WRITE(LO,'(1X,2A,1P,2E11.3)') 'PHO_SELPT: no Beta found ',
-* & '(model 1: Ecm,PTcut)',EE,PTCON
-* WRITE(LO,'(1X,A,1P,3E10.3)')
-* & 'PHO_SELPT: SIGS,SIGH,DSIGHP',SIGS,SIGH,DSIGHP
-* CALL PHO_PREVNT(-1)
-* BETA = 0.01
-* ELSE
- AAS = DSIGHP/PTCON*EXP(-BETA*PTCON)
-* ENDIF
- ELSE
- AAS = 0.D0
- BETA = BETAS(1)
- ENDIF
- ELSE IF(INIT.EQ.10) THEN
- IF(IDEB(5).GT.10)
- & WRITE(LO,'(/1X,A)') 'PHO_SELPT: no soft pt sampling'
- RETURN
- ELSE
- WRITE(LO,'(1X,A,I4)') 'PHO_SELPT:ERROR: invalid distribution',
- & INIT
- CALL PHO_ABORT
- ENDIF
- BETA = MIN(BETA,BETAS(1))
-
-C hard cross section is too big: neg. beta parameter
- IF(BETA.LE.0.D0) THEN
- WRITE(LO,'(1X,A,1P,2E12.3)')
- & 'PHO_SELPT: parameter BETA negative (BETA,AAS)',BETA,AAS
- WRITE(LO,'(1X,A,1P,4E11.3)') 'SIGS,DSIGHP,SIGH,PTCON:',
- & SIGS,DSIGHP,SIGH,PTCON
- CALL PHO_PREVNT(-1)
- ENDIF
-
-C output of initialization parameters
- IF(IDEB(5).GE.10) THEN
- WRITE(LO,'(1X,A,I3)') 'PHO_SELPT: initialization for model',
- & INIT
- WRITE(LO,'(5X,A,1P,2E13.3)')
- & 'BETA,AAS ',BETA,AAS
- WRITE(LO,'(5X,A,1P,3E13.3)')
- & 'ECM,PTMIN,PTMAX ',EE,PTSMIN,PTSMAX
- WRITE(LO,'(5X,A,1P,3E13.3)')
- & 'SIGS,DSIGHP,SIGH',SIGS,DSIGHP,SIGH
- ENDIF
-
- END
-
-CDECK ID>, PHO_CONN0
- DOUBLE PRECISION FUNCTION PHO_CONN0(BETA)
-C***********************************************************************
-C
-C auxiliary function to determine parameters of soft
-C pt distribution dNs/dP_t = P_t * AAS * EXP(-BETA*P_t**2)
-C
-C internal factors: FS number of soft partons in soft Pomeron
-C FH number of soft partons in hard Pomeron
-C
-C***********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C average number of cut soft and hard ladders (obsolete)
- DOUBLE PRECISION AVERI,AVERK,AVERL,AVERM,AVERN
- COMMON /POINT2/ AVERI,AVERK,AVERL,AVERM,AVERN
-C data needed for soft-pt calculation
- DOUBLE PRECISION SIGS,DSIGHP,SIGH,FS,FH,BETAS,AAS,PTCON
- COMMON /POINT3/ SIGS,DSIGHP,SIGH,FS,FH,BETAS(3),AAS,PTCON
-
- DOUBLE PRECISION BETA,XX,FF
-
- XX = BETA*PTCON**2
- IF(ABS(XX).LT.1.D-3) THEN
- FF = FS*SIGS+FH*SIGH
- & - DSIGHP*(PTCON/2.D0+PTCON**3*BETA/4.D0)
- ELSE
- FF = FS*SIGS+FH*SIGH
- & - DSIGHP/(2.D0*PTCON*BETA)*(EXP(XX)-1.D0)
- ENDIF
- PHO_CONN0 = FF
-
-* WRITE(LO,'(1X,A,3E12.3)') 'PHO_CONN0:BETA,AAS,FF',BETA,AAS,FF
-* WRITE(LO,'(1X,A,3E12.3)') 'PHO_CONN0:SIGS,SIGH,DSIGH',SIGS,SIGH,DSIGHP
-
- END
-
-CDECK ID>, PHO_CONN1
- DOUBLE PRECISION FUNCTION PHO_CONN1(BETA)
-C***********************************************************************
-C
-C auxiliary function to determine parameters of soft
-C pt distribution dNs/dP_t = P_t * AAS * EXP(-BETA*P_t)
-C
-C internal factors: FS number of soft partons in soft Pomeron
-C FH number of soft partons in hard Pomeron
-C
-C***********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C average number of cut soft and hard ladders (obsolete)
- DOUBLE PRECISION AVERI,AVERK,AVERL,AVERM,AVERN
- COMMON /POINT2/ AVERI,AVERK,AVERL,AVERM,AVERN
-C data needed for soft-pt calculation
- DOUBLE PRECISION SIGS,DSIGHP,SIGH,FS,FH,BETAS,AAS,PTCON
- COMMON /POINT3/ SIGS,DSIGHP,SIGH,FS,FH,BETAS(3),AAS,PTCON
-
- DOUBLE PRECISION BETA,XX,FF
-
- XX = BETA*PTCON
- IF(ABS(XX).LT.1.D-3) THEN
- FF = FS*SIGS+FH*SIGH
- & - DSIGHP*(PTCON/2.D0+PTCON**2*BETA/6.D0)
- ELSE
- FF = FS*SIGS+FH*SIGH
- & - DSIGHP/(PTCON*BETA**2)*(EXP(XX)-1.D0-BETA*PTCON)
- ENDIF
- PHO_CONN1 = FF
-
-* WRITE(LO,'(1X,A,3E12.3)') 'PHO_CONN1:BETA,AAS,FF',BETA,AAS,FF
-* WRITE(LO,'(1X,A,3E12.3)') 'PHO_CONN1:SIGS,SIGH,DSIGH',SIGS,SIGH,DSIGHP
-
- END
-
-CDECK ID>, PHO_MSHELL
- SUBROUTINE PHO_MSHELL(PA1,PA2,XM1,XM2,P1,P2,IREJ)
-C********************************************************************
-C
-C rescaling of momenta of two partons to put both
-C on mass shell
-C
-C input: PA1,PA2 input momentum vectors
-C XM1,2 desired masses of particles afterwards
-C P1,P2 changed momentum vectors
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-20 )
-
- DIMENSION PA1(*),PA2(*),P1(*),P2(*)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-
- IREJ = 0
- IDEV = 0
-C debug output
- IF(IDEB(40).GE.10) THEN
- WRITE(LO,'(1X,A)') 'PHO_MSHELL: input momenta:'
- WRITE(LO,'(5X,4E12.5)') (PA1(K),K=1,4)
- WRITE(LO,'(5X,4E12.5)') (PA2(K),K=1,4)
- WRITE(LO,'(5X,A,2E12.3)') 'new masses:',XM1,XM2
- ENDIF
-
-C Lorentz transformation into system CMS
- PX = PA1(1)+PA2(1)
- PY = PA1(2)+PA2(2)
- PZ = PA1(3)+PA2(3)
- EE = PA1(4)+PA2(4)
- XMS = EE**2-PX**2-PY**2-PZ**2
- IF(XMS.LT.(XM1+XM2)**2) THEN
- IREJ = 1
- IFAIL(37) = IFAIL(37)+1
-
- if((xm1.gt.1.D4).or.(xm2.gt.1.D4)) irej = irej/idev
-
- IF(IDEB(40).GE.3) THEN
- WRITE(LO,'(/1X,A,I12)')
- & 'PHO_MSHELL:reject: too small string mass (KEVENT)',KEVENT
- WRITE(LO,'(5X,A,3E12.4)') 'two-part.mass, part.masses:',
- & SIGN(SQRT(ABS(XMS)),XMS),XM1,XM2
- WRITE(LO,'(5X,A,4E11.4)') 'PX,PY,PZ,EE:',PX,PY,PZ,EE
- IDEV = 5
- IF(IDEB(40).GE.3) GOTO 55
- ENDIF
- RETURN
- ENDIF
- XMS = SQRT(XMS)
- BGX = PX/XMS
- BGY = PY/XMS
- BGZ = PZ/XMS
- GAM = EE/XMS
- CALL PHO_ALTRA(GAM,-BGX,-BGY,-BGZ,PA1(1),PA1(2),PA1(3),
- & PA1(4),PTOT1,P1(1),P1(2),P1(3),P1(4))
-C rotation angles
- PTOT1 = MAX(DEPS,PTOT1)
- COD = P1(3)/PTOT1
- SID = SQRT(P1(1)**2+P1(2)**2)/PTOT1
- COF = 1.D0
- SIF = 0.D0
- IF(PTOT1*SID.GT.1.D-5) THEN
- COF = P1(1)/(SID*PTOT1)
- SIF = P1(2)/(SID*PTOT1)
- ANORF = SQRT(COF*COF+SIF*SIF)
- COF = COF/ANORF
- SIF = SIF/ANORF
- ENDIF
-
-C new CM momentum and energies (for masses XM1,XM2)
- XM12 = XM1**2
- XM22 = XM2**2
- SS = XMS**2
- PCMP = PHO_XLAM(SS,XM12,XM22)/(2.D0*XMS)
- EE1 = SQRT(XM12+PCMP**2)
- EE2 = XMS-EE1
-C back rotation
- CALL PHO_TRANS(0.D0,0.D0,PCMP,COD,SID,COF,SIF,XX,YY,ZZ)
- CALL PHO_ALTRA(GAM,BGX,BGY,BGZ,XX,YY,ZZ,EE1,
- & PTOT1,P1(1),P1(2),P1(3),P1(4))
- CALL PHO_ALTRA(GAM,BGX,BGY,BGZ,-XX,-YY,-ZZ,EE2,
- & PTOT2,P2(1),P2(2),P2(3),P2(4))
-
-C check consistency
- DEL = XMS*0.0001
- IF(ABS(PX-P1(1)-P2(1)).GT.DEL) THEN
- IDEV = 1
- ELSE IF(ABS(PY-P1(2)-P2(2)).GT.DEL) THEN
- IDEV = 2
- ELSE IF(ABS(PZ-P1(3)-P2(3)).GT.DEL) THEN
- IDEV = 3
- ELSE IF(ABS(EE-P1(4)-P2(4)).GT.DEL) THEN
- IDEV = 4
- ENDIF
- 55 CONTINUE
-C debug output
- IF(IDEV.NE.0) THEN
- WRITE(LO,'(1X,A,I3)')
- & 'PHO_MSHELL: inconsistent transformation (IDEV)',IDEV
- WRITE(LO,'(1X,A)') 'PHO_MSHELL: input momenta:'
- WRITE(LO,'(5X,4E12.5)') (PA1(K),K=1,4)
- WRITE(LO,'(5X,4E12.5)') (PA2(K),K=1,4)
- WRITE(LO,'(5X,A,3E12.3)') 'ava.mass,masses:',XMS,XM1,XM2
- WRITE(LO,'(1X,A)') 'PHO_MSHELL: output momenta:'
- WRITE(LO,'(5X,4E12.5)') (P1(K),K=1,4)
- WRITE(LO,'(5X,4E12.5)') (P2(K),K=1,4)
- ELSE IF(IDEB(40).GE.10) THEN
- WRITE(LO,'(1X,A)') 'PHO_MSHELL: output momenta:'
- WRITE(LO,'(5X,4E12.5)') (P1(K),K=1,4)
- WRITE(LO,'(5X,4E12.5)') (P2(K),K=1,4)
- ENDIF
- END
-
-CDECK ID>, PHO_GLU2QU
- SUBROUTINE PHO_GLU2QU(IG,IQ1,IQ2,IREJ)
-C********************************************************************
-C
-C split gluon with index I in POEVT1
-C (massless gluon assumed)
-C
-C input: /POEVT1/
-C IG gluon index
-C IQ1 first quark index
-C IQ2 second quark index
-C
-C output: new quarks in /POEVT1/
-C IREJ 1 splitting impossible
-C 0 splitting successful
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-15,
- & EPS = 1.D-5 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-
- DIMENSION P1(4),P2(4)
- DATA CUTM /0.02D0/
-
- IREJ = 0
-
-C calculate string masses max possible
- IF(ISWMDL(9).EQ.1) THEN
- CMASS1=2.D0*(PHEP(4,IG)*PHEP(4,IQ1)-PHEP(1,IG)*PHEP(1,IQ1)
- & -PHEP(2,IG)*PHEP(2,IQ1)-PHEP(3,IG)*PHEP(3,IQ1))
- IF(CMASS1.LT.CUTM) THEN
- IF(IDEB(73).GE.5) THEN
- WRITE(LO,'(1X,A,3I4,4E10.3)')
- & 'PHO_GLU2QU:REJECTION:IG,IQ1,IQ2,CMASS1',IG,IQ1,IQ2,CMASS1
- ENDIF
- IFAIL(33) = IFAIL(33) + 1
- IREJ = 1
- RETURN
- ENDIF
- CMASS2=2.D0*(PHEP(4,IG)*PHEP(4,IQ2)-PHEP(1,IG)*PHEP(1,IQ2)
- & -PHEP(2,IG)*PHEP(2,IQ2)-PHEP(3,IG)*PHEP(3,IQ2))
- IF(CMASS2.LT.CUTM) THEN
- IF(IDEB(73).GE.5) THEN
- WRITE(LO,'(1X,A,3I4,4E10.3)')
- & 'PHO_GLU2QU:REJECTION:IG,IQ1,IQ2,CMASS2',IG,IQ1,IQ2,CMASS2
- ENDIF
- IFAIL(33) = IFAIL(33) + 1
- IREJ = 1
- RETURN
- ENDIF
-C
-C calculate minimal z
- ZMIN1 = (CUTM-SIGN(PHEP(5,IQ1)**2,PHEP(5,IQ1)))/CMASS1+EPS
- ZMIN2 = (CUTM-SIGN(PHEP(5,IQ2)**2,PHEP(5,IQ2)))/CMASS2+EPS
- ZMIN = MIN(ZMIN1,ZMIN2)
- IF(MAX(ZMIN1,ZMIN2).GE.0.45D0) THEN
- IF(IDEB(73).GE.5) THEN
- WRITE(LO,'(1X,A,3I3,4E10.3)')
- & 'PHO_GLU2QU:REJECTION:IG,IQ1,IQ2,ZMIN1,ZMIN2,P1*PG,P2*PG',
- & IG,IQ1,IQ2,ZMIN1,ZMIN2,CMASS1,CMASS2
- ENDIF
- IFAIL(33) = IFAIL(33) + 1
- IREJ = 1
- RETURN
- ENDIF
- ELSE
- ZMIN = MIN(0.1D0,0.5D0/PHEP(4,IG))
- ENDIF
-C
- ZFRAC = PHO_GLUSPL(ZMIN)
- IF((ZFRAC.LT.ZMIN1).OR.((1.D0-ZFRAC).LT.ZMIN2)) THEN
- ZFRAC = 1.D0-ZFRAC
- ENDIF
- DO 200 I=1,4
- P1(I) = PHEP(I,IG)*ZFRAC
- P2(I) = PHEP(I,IG)*(1.D0-ZFRAC)
- 200 CONTINUE
-C quark flavours
- CMASS1 = SQRT(ZFRAC*CMASS1+SIGN(PHEP(5,IQ1)**2,PHEP(5,IQ1)))
- CMASS2 = SQRT((1.D0-ZFRAC)*CMASS2
- & +SIGN(PHEP(5,IQ2)**2,PHEP(5,IQ2)))
- CALL PHO_SEAFLA(IG,K,I,MIN(CMASS1,CMASS2))
-
- IF(ABS(IDHEP(IQ1)).GT.6) THEN
- K = SIGN(ABS(K),IDHEP(IQ1))
- ELSE
- K = -SIGN(ABS(K),IDHEP(IQ1))
- ENDIF
-C colors
- IF(K.GT.0) THEN
- IC1 = MAX(ICOLOR(1,IG),ICOLOR(2,IG))
- IC2 = MIN(ICOLOR(1,IG),ICOLOR(2,IG))
- ELSE
- IC1 = MIN(ICOLOR(1,IG),ICOLOR(2,IG))
- IC2 = MAX(ICOLOR(1,IG),ICOLOR(2,IG))
- ENDIF
-C register new partons
- CALL PHO_REGPAR(-1,K,0,IG,0,P1(1),P1(2),P1(3),P1(4),
- & IPHIST(1,IG),0,IC1,0,IPOS,1)
- CALL PHO_REGPAR(-1,-K,0,IG,0,P2(1),P2(2),P2(3),P2(4),
- & IPHIST(1,IG),0,IC2,0,IPOS,1)
-C debug output
- IF(IDEB(73).GE.20) THEN
- WRITE(LO,'(1X,A,/1X,A,3I3,5E10.3)')
- & 'PHO_GLU2QU:',' IG,IQ1,IQ2,ZMIN1,2,Z,P1*PG,P2*PG',
- & IG,IQ1,IQ2,ZMIN1,ZMIN2,ZFRAC,CMASS1,CMASS2
- WRITE(LO,'(1X,A,4I5)') ' flavours, colors ',
- & K,-K,IC1,IC2
- ENDIF
- END
-
-CDECK ID>, PHO_GLUSPL
- DOUBLE PRECISION FUNCTION PHO_GLUSPL(ZMIN)
-C*********************************************************************
-C
-C calculate quark - antiquark light cone momentum fractions
-C according to Altarelli-Parisi g->q aq splitting function
-C (symmetric z interval assumed)
-C
-C input: ZMIN minimal Z value allowed,
-C 1-ZMIN maximal Z value allowed
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( ALEXP= 0.3333333333D0,
- & DEPS = 1.D-10 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-
- IF(ZMIN.GE.0.5D0) THEN
- IF(IDEB(69).GT.2) THEN
- WRITE(LO,'(1X,A,E12.4)') 'PHO_GLUSPL: ZMIN>=0.5',ZMIN
- ENDIF
- ZZ=0.D0
- GOTO 1000
- ELSE IF(ZMIN.LE.0.D0) THEN
- IF(IDEB(69).GT.2) THEN
- WRITE(LO,'(1X,A,E12.4)') 'PHO_GLUSPL: ZMIN<=0',ZMIN
- ENDIF
- ZMINL = DEPS
- ELSE
- ZMINL = ZMIN
- ENDIF
-
- ZMAX = 1.D0-ZMINL
- XI = DT_RNDM(ZMAX)
- ZZ = ((1.D0-XI)*ZMINL**3+XI*ZMAX**3)**ALEXP
- IF(DT_RNDM(ZZ).LT.0.5D0) ZZ = 1.D0-ZZ
-
- 1000 CONTINUE
- IF(IDEB(69).GE.10) THEN
- WRITE(LO,'(1X,A,2E12.4)') 'PHO_GLUSPL: ZMIN,Z ',ZMIN,ZZ
- ENDIF
- PHO_GLUSPL = ZZ
- END
-
-CDECK ID>, PHO_STDPAR
- SUBROUTINE PHO_STDPAR(IJM1,IJM2,IGEN,MSPOM,MSREG,MHPOM,MHDIR,IREJ)
-C***********************************************************************
-C
-C select the initial parton x-fractions and flavors and
-C the final parton momenta and flavours
-C for standard Pomeron/Reggeon cuts
-C
-C input: IJM1 index of mother particle 1 in /POEVT1/
-C IJM2 index of mother particle 2 in /POEVT1/
-C IGEN production process of mother particles
-C MSPOM soft cut Pomerons
-C MHPOM hard or semihard cut Pomerons
-C MSREG soft cut Reggeons
-C MHDIR direct hard processes
-C
-C IJM1 -1 initialization of statistics
-C -2 output of statistics
-C
-C output: partons are directly written to /POEVT1/,/POEVT2/
-C
-C structure of /POSOFT/
-C XS1(I),XS2(I): x-values of initial partons
-C IJSI1(I),IJSI2(I): flavor of initial parton
-C 0 gluon
-C 1,2,3,4 quarks
-C negative antiquarks
-C IJSF1(I),IJSF2(I): flavor of final state partons
-C PSOFT1(I,J),PSOFT2(I,J): final part. momentum and energy
-C J=1 PX
-C =2 PY
-C =3 PZ
-C =4 ENERGY
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER (RHOMAS = 0.766D0,
- & DEPS = 1.D-10,
- & TINY = 1.D-10)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C currently activated parton density parametrizations
- CHARACTER*8 PDFNAM
- INTEGER IPARID,IPAVA,ITYPE,IGRP,ISET,IEXT,NPAOLD
- DOUBLE PRECISION PDFLAM,PDFQ2M
- COMMON /POPPDF/ PDFLAM(2),PDFQ2M(2),PDFNAM(2),IPARID(2),
- & IPAVA(2),ITYPE(2),IGRP(2),ISET(2),IEXT(2),NPAOLD
-C hard scattering parameters used for most recent hard interaction
- INTEGER NFbeta,NF
- DOUBLE PRECISION ALQCD2,BQCD
- COMMON /POHAPA/ ALQCD2(3,4),BQCD(4),NFbeta,NF
-C particles created by initial state evolution
- INTEGER MXISR1,MXISR2
- PARAMETER ( MXISR1 = 150, MXISR2 = 50 )
- INTEGER IFLISR,IPOISR,IMXISR
- DOUBLE PRECISION PHISR
- COMMON /POPISR/ IFLISR(2,MXISR1),PHISR(2,4,MXISR1),
- & IPOISR(2,2,MXISR2),IMXISR(2)
-C light-cone x fractions and c.m. momenta of soft cut string ends
- INTEGER MAXSOF
- PARAMETER ( MAXSOF = 50 )
- INTEGER IJSI2,IJSI1
- DOUBLE PRECISION XS1,XS2,PSOFT1,PSOFT2
- COMMON /POSOFT/ XS1(MAXSOF),XS2(MAXSOF),
- & PSOFT1(4,MAXSOF),PSOFT2(4,MAXSOF),
- & IJSI1(MAXSOF),IJSI2(MAXSOF)
-C table of particle indices for recursive PHOJET calls
- INTEGER MAXIPX
- PARAMETER ( MAXIPX = 100 )
- INTEGER IPOPOS,IPORES,IPOIX1,IPOIX2,IPOIX3
- COMMON /PORECU/ IPOPOS(2,MAXIPX),IPORES(MAXIPX),
- & IPOIX1,IPOIX2,IPOIX3
-C hard scattering data
- INTEGER MSCAHD
- PARAMETER ( MSCAHD = 50 )
- INTEGER LSCAHD,LSC1HD,LSIDX,
- & NINHD,N0INHD,NIVAL,N0IVAL,NOUTHD,NBRAHD,NPROHD
- DOUBLE PRECISION PPH,PTHD,ETAHD,Q2SCA,PDFVA,XHD,VHD,X0HD
- COMMON /POHSLT/ LSCAHD,LSC1HD,LSIDX(MSCAHD),
- & PPH(8*MSCAHD,2),PTHD(MSCAHD),ETAHD(MSCAHD,2),
- & Q2SCA(MSCAHD,2),PDFVA(MSCAHD,2),
- & XHD(MSCAHD,2),VHD(MSCAHD),X0HD(MSCAHD,2),
- & NINHD(MSCAHD,2),N0INHD(MSCAHD,2),
- & NIVAL(MSCAHD,2),N0IVAL(MSCAHD,2),
- & NOUTHD(MSCAHD,2),NBRAHD(MSCAHD,2),NPROHD(MSCAHD)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C internal cross check information on hard scattering limits
- DOUBLE PRECISION ETAMI,ETAMA,XXMI,XXMA
- COMMON /POHLIM/ ETAMI(2,15),ETAMA(2,15),XXMI(2,15),XXMA(2,15)
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-
- double precision pho_alphas
-
- DIMENSION PC(4),IFLA(2),ICI(2,2)
-
- IF(IJM1.EQ.-1) THEN
- DO 116 I=1,15
- ETAMI(1,I) = 1.D10
- ETAMA(1,I) = -1.D10
- ETAMI(2,I) = 1.D10
- ETAMA(2,I) = -1.D10
- XXMI(1,I) = 1.D0
- XXMA(1,I) = 0.D0
- XXMI(2,I) = 1.D0
- XXMA(2,I) = 0.D0
- 116 CONTINUE
- CALL PHO_HARSCA(IJM1,1)
- CALL PHO_HARCOL(IJM1,0.D0,0,0,0,0,0,0,0,0,0,0,0,0)
-
- RETURN
-
- ELSE IF(IJM1.EQ.-2) THEN
-
-C output internal statistics
- IF(IDEB(23).GE.1) THEN
- WRITE(LO,'(/1X,A)')
- & 'kinematic limits particle c (ETAMIN,ETAMAX,XMIN,XMAX)'
- DO 117 I=1,15
- WRITE(LO,'(5X,I3,4E13.5)')
- & I,ETAMI(1,I),ETAMA(1,I),XXMI(1,I),XXMA(1,I)
- 117 CONTINUE
- WRITE(LO,'(1X,A)')
- & 'kinematic limits particle d (ETAMIN,ETAMAX,XMIN,XMAX)'
- DO 118 I=1,15
- WRITE(LO,'(5X,I3,4E13.5)')
- & I,ETAMI(2,I),ETAMA(2,I),XXMI(2,I),XXMA(2,I)
- 118 CONTINUE
- ENDIF
- CALL PHO_HARSCA(IJM1,1)
- CALL PHO_HARCOL(IJM1,0.D0,0,0,0,0,0,0,0,0,0,0,0,0)
-
- RETURN
- ENDIF
-
- IREJ = 0
-C debug output
- IF(IDEB(23).GT.5) WRITE(LO,221) IJM1,IJM2,MSPOM,MHPOM,MSREG,MHDIR
- 221 FORMAT (' PHO_STDPAR: JM1/2,MSPOM,MHPOM,MSREG,MHDIR ',6I5)
-
-C get mother data (exchange if first particle is a pomeron)
- IF((IDHEP(IJM1).EQ.990).AND.(IFPAP(1).NE.990)) THEN
- JM1 = IJM2
- JM2 = IJM1
- ELSE
- JM1 = IJM1
- JM2 = IJM2
- ENDIF
-
- NPOSP(1) = JM1
- NPOSP(2) = JM2
- IDPDG1 = IDHEP(JM1)
- IDBAM1 = IMPART(JM1)
- IDPDG2 = IDHEP(JM2)
- IDBAM2 = IMPART(JM2)
-
-C store current status of /POEVT1/
- KHPOMS = KHPOM
- KSPOMS = KSPOM
- KSREGS = KSREG
- KHDIRS = KHDIR
- NHEPS = NHEP
- IPOIS1 = IPOIX1
- IPOIS2 = IPOIX2
-
-C get nominal masses (photons: VDM assumption)
- DELMAS = 0.D0
- IF(IDHEP(JM1).EQ.22) THEN
- PMASSP(1) = RHOMAS+DELMAS
- PVIRTP(1) = PHEP(5,JM1)**2
- ELSE
- PMASSP(1) = PHO_PMASS(IDBAM1,0)+DELMAS
- PVIRTP(1) = 0.D0
- ENDIF
- IF(IDHEP(JM2).EQ.22) THEN
- PMASSP(2) = RHOMAS+DELMAS
- PVIRTP(2) = PHEP(5,JM2)**2
- ELSE
- PMASSP(2) = PHO_PMASS(IDBAM2,0)+DELMAS
- PVIRTP(2) = 0.D0
- ENDIF
-
-C calculate c.m. energy and check kinematics
- PC(1) = PHEP(1,JM1)+PHEP(1,JM2)
- PC(2) = PHEP(2,JM1)+PHEP(2,JM2)
- PC(3) = PHEP(3,JM1)+PHEP(3,JM2)
- PC(4) = PHEP(4,JM1)+PHEP(4,JM2)
- SS = (PC(4)+PC(3))*(PC(4)-PC(3))-PC(1)**2-PC(2)**2
-
- IF(SS.LE.(PMASSP(1)+PMASSP(2)+DEPS)**2) THEN
- WRITE(LO,'(/,1X,2A)') 'PHO_STDPAR: ',
- & 'energy smaller than two-particle threshold (event rejected)'
- CALL PHO_PREVNT(1)
- IREJ = 5
- GOTO 150
- ENDIF
- ECMP = SQRT(SS)
-
- IF(IDEB(23).GE.5) THEN
- WRITE(LO,'(1X,2A,2I7,E12.4)') 'PHO_STDPAR: ',
- & 'particles, available energy:',IDHEP(JM1),IDHEP(JM2),ECMP
- IF(IDEB(23).GE.25) CALL PHO_PREVNT(0)
- ENDIF
-
-C Lorentz transformation into c.m. system
- DO 10 I=1,4
- GAMBEP(I) = PC(I)/ECMP
- 10 CONTINUE
- CALL PHO_ALTRA(GAMBEP(4),-GAMBEP(1),-GAMBEP(2),-GAMBEP(3),
- & PHEP(1,JM1),PHEP(2,JM1),PHEP(3,JM1),
- & PHEP(4,JM1),PTOT1,PC(1),PC(2),PC(3),PC(4))
-C rotation angle: particle 1 moves along +z
- CODP = PC(3)/PTOT1
- SIDP = SQRT(PC(1)**2+PC(2)**2)/PTOT1
- COFP = 1.D0
- SIFP = 0.D0
- IF(PTOT1*SIDP.GT.1.D-5) THEN
- COFP = PC(1)/(SIDP*PTOT1)
- SIFP = PC(2)/(SIDP*PTOT1)
- ANORF = SQRT(COFP*COFP+SIFP*SIFP)
- COFP = COFP/ANORF
- SIFP = SIFP/ANORF
- ENDIF
-C get CM momentum
- XM12 = PMASSP(1)**2
- XM22 = PMASSP(2)**2
- PCMP = PHO_XLAM(SS,XM12,XM22)/(2.D0*ECMP)
-
-C find particle combination
- II = 0
- IF(IDPDG2.EQ.IFPAP(2)) THEN
- IF(IDPDG1.EQ.IFPAP(1)) II = 1
- ELSE IF(IDPDG2.EQ.990) THEN
- IF(IDPDG1.EQ.IFPAP(1)) THEN
- II = 2
- ELSE IF(IDPDG1.EQ.IFPAP(2)) THEN
- II = 3
- ELSE IF(IDPDG1.EQ.990) THEN
- II = 4
- ENDIF
- ENDIF
- IF(II.EQ.0) THEN
- IF(ISWMDL(14).GT.0) THEN
- II = 1
- ELSE
- WRITE(LO,'(/1X,2A,2I8)') 'PHO_STDPAR:ERROR: ',
- & 'invalid particle combination:',IDPDG1,IDPDG2
- CALL PHO_ABORT
- ENDIF
- ENDIF
-
-C select parton distribution functions from tables
- IF((MHPOM+MHDIR).GT.0) THEN
- CALL PHO_ACTPDF(IDPDG1,1)
- CALL PHO_ACTPDF(IDPDG2,2)
-C initialize alpha_s calculation
- DUMMY = PHO_ALPHAS(0.D0,-4)
- ENDIF
-
-C interpolate hard cross sections and rejection weights
- CALL PHO_HARINT(II,ECMP,PVIRTP(1),PVIRTP(2),
- & -1,Max_pro_2,1,4,MSPOM+MHPOM+MHDIR)
-
- NTRY = 10
-
-C position of first particle added to /POEVT2/
- NLOR1 = NHEP+1
-
-C ---------------- direct processes -----------------
-
- IF(MHDIR.EQ.1) THEN
- CALL PHO_HARDIR(II,IVAL1,IVAL2,MSPAR1,MSPAR2,MHPAR1,MHPAR2,IREJ)
- IF(IREJ.EQ.50) RETURN
- IF(IREJ.NE.0) GOTO 150
-C write comments to /POEVT1/
- CALL PHO_REGPAR(25,II,NPROHD(1),IDPDG1,IDPDG2,X0HD(1,1),
- & X0HD(1,2),PTHD(1),VHD(1),N0INHD(1,1),N0INHD(1,2),
- & IPHO_CNV1(NOUTHD(1,1)),IPHO_CNV1(NOUTHD(1,2)),IPOS,1)
- CALL PHO_REGPAR(20,IPHO_CNV1(N0INHD(1,1)),IPDF1,JM1,JM2,
- & PPH(1,1),PPH(2,1),PPH(3,1),Q2SCA(1,1),100,NBRAHD(1,1),
- & ICA1,ICA2,IPOS,1)
- CALL PHO_REGPAR(20,IPHO_CNV1(N0INHD(1,2)),IPDF2,JM2,JM1,
- & PPH(1,2),PPH(2,2),PPH(3,2),Q2SCA(1,2),100,NBRAHD(1,2),
- & ICA1,ICA2,IPOS,1)
- CALL PHO_REGPAR(21,NOUTHD(1,1),IPDF1,JM1,JM2,PPH(5,1),
- & PPH(6,1),PPH(7,1),PPH(8,1),100,NBRAHD(1,1),ICA1,ICA2,
- & IPOS1,1)
- CALL PHO_REGPAR(21,NOUTHD(1,2),IPDF2,JM2,JM1,PPH(5,2),
- & PPH(6,2),PPH(7,2),PPH(8,2),100,NBRAHD(1,2),ICA1,ICA2,
- & IPOS2,1)
-
-C soft spectator partons
- ICA1 = 0
- ICA2 = 0
- ICB1 = 0
- ICB2 = 0
- IPDF1 = 0
- IPDF2 = 0
-
-C single resolved: QCD compton scattering
-C ------------------------------
- IF(NPROHD(1).EQ.10) THEN
-C register hadron remnant
- CALL PHO_HARREM(JM2,JM1,IGEN,-1,IVAL2,1,ICB1,ICB2,IUSED,IREJ)
- IPDF2 = 1000*IGRP(2)+ISET(2)
- ELSE IF(NPROHD(1).EQ.12) THEN
-C register hadron remnant
- CALL PHO_HARREM(JM1,JM2,IGEN,1,IVAL1,1,ICA1,ICA2,IUSED,IREJ)
- IPDF1 = 1000*IGRP(1)+ISET(1)
-
-C single resolved: photon gluon fusion
-C ---------------------------
- ELSE IF(NPROHD(1).EQ.11) THEN
-C register hadron remnant
- CALL PHO_HARREM(JM2,JM1,IGEN,-1,IVAL2,1,ICB1,ICB2,IUSED,IREJ)
- IPDF2 = 1000*IGRP(2)+ISET(2)
- ELSE IF(NPROHD(1).EQ.13) THEN
-C register hadron remnant
- CALL PHO_HARREM(JM1,JM2,IGEN,1,IVAL1,1,ICA1,ICA2,IUSED,IREJ)
- IPDF1 = 1000*IGRP(1)+ISET(1)
-
-C direct process (no remnant)
-C ----------------------------
- ELSE IF(NPROHD(1).EQ.14) THEN
-
- ENDIF
-
-C write final high-pt partons to POEVT1
- IF((ISWMDL(8).GE.2).AND.(NPROHD(1).NE.14)) THEN
- ICI(1,1) = ICA1
- ICI(1,2) = ICA2
- ICI(2,1) = ICB1
- ICI(2,2) = ICB2
- I = 1
- IFLA(1) = NINHD(I,1)
- IFLA(2) = NINHD(I,2)
-C initial state radiation
- DO 130 K=1,2
- DO 135 IPA=IPOISR(K,2,I),IPOISR(K,1,I)+1,-1
- KK = 1
- 137 CONTINUE
- IFLB = IFLISR(K,IPA)
- IF(ABS(IFLB).LE.6) THEN
-C partons
- IF(ICI(K,1)*ICI(K,2).NE.0) THEN
- IF(IFLB.EQ.0) THEN
- CALL PHO_SELCOL(ICI(K,1),ICI(K,2),IC1,IC2,
- & ICI(K,1),ICI(K,2),3)
- ELSE IF(IFLB.GT.0) THEN
- CALL PHO_SELCOL(ICI(K,1),ICI(K,2),IC1,IC2,
- & ICI(K,1),ICI(K,2),4)
- ELSE
- CALL PHO_SELCOL(ICI(K,1),ICI(K,2),ICI(K,1),ICI(K,2),
- & IC1,IC2,4)
- ENDIF
- ELSE
- IF((ICI(K,1)+ICI(K,2))*IFLB.LT.0) THEN
- IF(IPA-KK.GT.IPOISR(K,1,I)) THEN
- CALL PHO_SWAPI(IFLISR(K,IPA),IFLISR(K,IPA-KK))
- KK = KK+1
- GOTO 137
- ENDIF
- ENDIF
- IF(IFLB.EQ.0) THEN
- CALL PHO_SELCOL(ICI(K,1),ICI(K,2),ICI(K,1),ICI(K,2),
- & IC1,IC2,2)
- ELSE
- CALL PHO_SELCOL(ICI(K,1),ICI(K,2),IC1,IC2,
- & ICI(K,1),ICI(K,2),2)
- ENDIF
- ENDIF
- IIFL = IPHO_CNV1(IFLB)
-
- IFLA(K) = IFLA(K)-IFLB
- IST = -1
- ELSE
-C other particle
- IIFL = IFLB
- IC1 = 0
- IC2 = 0
- IST = 1
- ENDIF
- CALL PHO_REGPAR(IST,IIFL,0,JM1,JM2,PHISR(K,1,IPA),
- & PHISR(K,2,IPA),PHISR(K,3,IPA),PHISR(K,4,IPA),I*100+K,
- & IGEN,IC1,IC2,IPOS,1)
- 135 CONTINUE
- 130 CONTINUE
- ICOLOR(1,IPOS1-2) = ICI(1,1)
- ICOLOR(2,IPOS1-2) = ICI(1,2)
- ICOLOR(1,IPOS1-1) = ICI(2,1)
- ICOLOR(2,IPOS1-1) = ICI(2,2)
- CALL PHO_HARCOL(NPROHD(I),VHD(I),IFLA(1),ICI(1,1),ICI(1,2),
- & IFLA(2),ICI(2,1),ICI(2,2),NOUTHD(I,1),ICI(1,1),ICI(1,2),
- & NOUTHD(I,2),ICI(2,1),ICI(2,2))
- ICOLOR(1,IPOS1) = ICI(1,1)
- ICOLOR(2,IPOS1) = ICI(1,2)
- ICOLOR(1,IPOS2) = ICI(2,1)
- ICOLOR(2,IPOS2) = ICI(2,2)
- DO 140 K=1,2
- IPA = IPOISR(K,1,I)
- CALL PHO_REGPAR(-1,IPHO_CNV1(IFLISR(K,IPA)),0,JM1,JM2,
- & PHISR(K,1,IPA),PHISR(K,2,IPA),PHISR(K,3,IPA),
- & PHISR(K,4,IPA),-I*100,IGEN,ICI(K,1),ICI(K,2),IPOS,1)
- 140 CONTINUE
- ELSE
- ICOLOR(1,IPOS1-2) = ICA1
- ICOLOR(2,IPOS1-2) = ICA2
- ICOLOR(1,IPOS1-1) = ICB1
- ICOLOR(2,IPOS1-1) = ICB2
- CALL PHO_HARCOL(NPROHD(1),VHD(1),NINHD(1,1),ICA1,ICA2,
- & NINHD(1,2),ICB1,ICB2,NOUTHD(1,1),ICA1,ICA2,
- & NOUTHD(1,2),ICB1,ICB2)
- ICOLOR(1,IPOS1) = ICA1
- ICOLOR(2,IPOS1) = ICA2
- ICOLOR(1,IPOS2) = ICB1
- ICOLOR(2,IPOS2) = ICB2
- I = -1
- IF(ABS(NOUTHD(1,1)).GT.12) I = 1
- CALL PHO_REGPAR(I,IPHO_CNV1(NOUTHD(1,1)),0,JM1,JM2,PPH(5,1),
- & PPH(6,1),PPH(7,1),PPH(8,1),-100,IGEN,ICA1,ICA2,IPOS,1)
- CALL PHO_REGPAR(I,IPHO_CNV1(NOUTHD(1,2)),0,JM1,JM2,PPH(5,2),
- & PPH(6,2),PPH(7,2),PPH(8,2),-100,IGEN,ICB1,ICB2,IPOS,1)
- ENDIF
-
-C assign soft pt to spectators
- IF(ISWMDL(18).EQ.0) THEN
- IPOS2 = IPOS2-1
- CALL PHO_PARTPT(0,NLOR1,IPOS2,PTCUT(II),IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(26) = IFAIL(26) + 1
- GOTO 150
- ENDIF
-
- ENDIF
-
-C ----------------- resolved processes -------------------
-
-C single Reggeon exchange
-C ----------------------------
- ELSE IF((MSREG.EQ.1).AND.(MHPOM+MSPOM.EQ.0)) THEN
-C flavours
- CALL PHO_REGFLA(JM1,JM2,IFL1,IFL2,IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(24) = IFAIL(24)+1
- GOTO 150
- ENDIF
-
-C colors
- CALL PHO_SELCOL(0,0,ICA1,ICA2,ICB1,ICB2,1)
- IF(((ABS(IFL1).GT.6).AND.(IFL1.GT.0))
- & .OR.((ABS(IFL1).LE.6).AND.(IFL1.LT.0))) THEN
- CALL PHO_SWAPI(ICA1,ICB1)
- ENDIF
- ECMH = ECMP/2.D0
-
-C registration
-
-C DPMJET call with special projectile / target
- IF((IPAMDL(13).GT.0).AND.(IPOIX3.EQ.0).AND.(IPROCE.EQ.1)) THEN
- CALL PHO_REGPAR(-1,IFL1,0,JM1,JM2,0.D0,0.D0,ECMH*XPSUB,
- & ECMH*XPSUB,-1,IGEN,ICA1,0,IPOS1,1)
- CALL PHO_REGPAR(-1,IFL2,0,JM1,JM2,0.D0,0.D0,-ECMH*XTSUB,
- & ECMH*XTSUB,-1,IGEN,ICB1,0,IPOS2,1)
-C default treatment
- ELSE
- CALL PHO_REGPAR(-1,IFL1,0,JM1,JM2,0.D0,0.D0,ECMH,ECMH,
- & -1,IGEN,ICA1,0,IPOS1,1)
- CALL PHO_REGPAR(-1,IFL2,0,JM1,JM2,0.D0,0.D0,-ECMH,ECMH,
- & -1,IGEN,ICB1,0,IPOS2,1)
- ENDIF
-
-C soft pt assignment
- IF(ISWMDL(18).EQ.0) THEN
- CALL PHO_PARTPT(0,IPOS1,IPOS2,PTCUT(II),IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(25) = IFAIL(25) + 1
- GOTO 150
- ENDIF
- ENDIF
-C
-C multi Reggeon / Pomeron exchange
-C----------------------------------------
- ELSE
-C parton configuration
-
- CALL PHO_POMSCA(II,MSPOM,MHPOM,MSREG,IVAL1,IVAL2,MSPAR1,MSPAR2,
- & MHPAR1,MHPAR2,IREJ)
-
- IF(IREJ.EQ.50) RETURN
- IF(IREJ.NE.0) GOTO 150
-
-C register particles
- IF(IDEB(23).GE.15) WRITE(LO,'(1X,A,/15X,7I5)')
- & 'PHO_STDPAR: MSPOM,MHPOM,MSREG,MSPAR1/2,IVAL1/2',
- & MSPOM,MHPOM,MSREG,MSPAR1,MSPAR2,IVAL1,IVAL2
-
-C register soft partons
- IF(IVAL1.NE.0) THEN
- IF(IVAL1.LT.0) THEN
- IND1 = 3
- IVAL1=-IVAL1
- ELSE
- IND1 = 2
- ENDIF
- ELSE IF(MSPOM.EQ.0) THEN
- IND1 = 4
- ELSE
- IND1 = 1
- ENDIF
- IF(IVAL2.NE.0) THEN
- IF(IVAL2.LT.0) THEN
- IND2 = 3
- IVAL2=-IVAL2
- ELSE
- IND2 = 2
- ENDIF
- ELSE IF(MSPOM.EQ.0) THEN
- IND2 = 4
- ELSE
- IND2 = 1
- ENDIF
-
- IF(IDEB(23).GE.20) WRITE(LO,'(1X,A,2I3,2X,2I3)')
- & 'PHO_STDPAR: IND1/2,IVAL1/2',IND1,IND2,IVAL1,IVAL2
-
-C soft Pomeron final states
-C -----------------------------------
- K = MSPOM+MHPOM+MSREG
- DO 50 I=1,MSPOM
-
- CALL PHO_POSPOM(II,IND1,IND2,IGEN,I,K,ISWAP,IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(8) = IFAIL(8) + 1
- GOTO 150
- ENDIF
-C
- 50 CONTINUE
-
-C soft Reggeon final states
-C -----------------------------------------
- DO 75 I=1,MSREG
-C flavours
- CMASS1 = MIN(PSOFT1(4,IND1),PSOFT2(4,IND2))
- IF(DT_RNDM(CMASS1).LT.0.5D0) THEN
- CALL PHO_SEAFLA(JM1,IFLA1,IFLB1,CMASS1)
- ELSE
- CALL PHO_SEAFLA(JM2,IFLA1,IFLB1,CMASS1)
- ENDIF
-
-C colors
- CALL PHO_SELCOL(0,0,ICA1,ICA2,ICB1,ICB2,1)
- IF(((ABS(IFLA1).GT.6).AND.(IFLA1.GT.0))
- & .OR.((ABS(IFLA1).LE.6).AND.(IFLA1.LT.0)))
- & CALL PHO_SWAPI(ICA1,ICB1)
-C registration
- CALL PHO_REGPAR(-1,IFLA1,0,JM1,JM2,PSOFT1(1,IND1),
- & PSOFT1(2,IND1),PSOFT1(3,IND1),PSOFT1(4,IND1),
- & I,IGEN,ICA1,ICA2,IPOS1,1)
- IND1 = IND1+1
- CALL PHO_REGPAR(-1,IFLB1,0,JM2,JM1,PSOFT2(1,IND2),
- & PSOFT2(2,IND2),PSOFT2(3,IND2),PSOFT2(4,IND2),
- & I,IGEN,ICB1,ICB2,IPOS2,1)
- IND2 = IND2+1
-
- IF(IDEB(23).GE.20) WRITE(LO,'(1X,A,/15X,6I4)')
- & 'PHO_STDPAR: reg.cut: IND1,IND2,IFLA,IFLB,IPOS1,IPOS2',
- & IND1-1,IND2-1,IFLA1,IFLB1,IPOS1,IPOS2
-
-C soft pt assignment
- IF(ISWMDL(18).EQ.0) THEN
- CALL PHO_PARTPT(0,IPOS1,IPOS2,PTCUT(II),IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(25) = IFAIL(25) + 1
- GOTO 150
- ENDIF
- ENDIF
-
- 75 CONTINUE
-
-C hard Pomeron final states
-C ------------------------------------
- IND1 = MSPAR1
- IND2 = MSPAR2
-
- DO 100 L=1,MHPOM
- I = LSIDX(L)
-
- IFLI1 = IPHO_CNV1(N0INHD(I,1))
- IFLI2 = IPHO_CNV1(N0INHD(I,2))
- IFLO1 = IPHO_CNV1(NOUTHD(I,1))
- IFLO2 = IPHO_CNV1(NOUTHD(I,2))
-
-C write comments to /POEVT1/
- CALL PHO_REGPAR(25,II,NPROHD(I),IDPDG1,IDPDG2,X0HD(I,1),
- & X0HD(I,2),PTHD(I),VHD(I),N0INHD(I,1),N0INHD(I,2),
- & IFLO1,IFLO2,IPOS,1)
- I1 = 8*I-7
- IPDF = 1000*IGRP(1)+ISET(1)
- CALL PHO_REGPAR(20,IFLI1,IPDF,JM1,JM2,PPH(I1,1),
- & PPH(I1+1,1),PPH(I1+2,1),Q2SCA(I,1),L*100,NBRAHD(I,1),
- & ICA1,ICA2,IPOS,1)
- IPDF = 1000*IGRP(2)+ISET(2)
- CALL PHO_REGPAR(20,IFLI2,IPDF,JM2,JM1,PPH(I1,2),
- & PPH(I1+1,2),PPH(I1+2,2),Q2SCA(I,2),L*100,NBRAHD(I,2),
- & ICB1,ICB2,IPOS,1)
- I1 = 8*I-3
- IPDF = 1000*IGRP(1)+ISET(1)
- CALL PHO_REGPAR(21,IFLO1,IPDF,JM1,JM2,PPH(I1,1),
- & PPH(I1+1,1),PPH(I1+2,1),PPH(I,1),L*100,NBRAHD(I,1),
- & ICA1,ICA2,IPOS1,1)
- IPDF = 1000*IGRP(2)+ISET(2)
- CALL PHO_REGPAR(21,IFLO2,IPDF,JM2,JM1,PPH(I1,2),
- & PPH(I1+1,2),PPH(I1+2,2),PPH(I,2),L*100,NBRAHD(I,2),
- & ICB1,ICB2,IPOS2,1)
-
-C spectator partons belonging to hard interaction
- IF(IVAL1.EQ.I) THEN
- IVQ = 1
- IND = 1
- ELSE IF((MSPOM.EQ.0).AND.(L.EQ.1).AND.(IVAL1.EQ.0)) THEN
- IVQ = 0
- IND = 1
- ELSE
- IVQ = -1
- IND = IND1
- ENDIF
- CALL PHO_HARREM(JM1,JM2,IGEN,L,IVQ,IND,ICA1,ICA2,IUSED,IREJ)
- IF(IVQ.LT.0) IND1 = IND1-IUSED
- IF(IVAL2.EQ.I) THEN
- IVQ = 1
- IND = 1
- ELSE IF((MSPOM.EQ.0).AND.(L.EQ.1).AND.(IVAL2.EQ.0)) THEN
- IVQ = 0
- IND = 1
- ELSE
- IVQ = -1
- IND = IND2
- ENDIF
- CALL PHO_HARREM(JM2,JM1,IGEN,-L,IVQ,IND,ICB1,ICB2,IUSED,IREJ)
- IF(IVQ.LT.0) IND2 = IND2-IUSED
-C
-C register hard scattered partons
- IF((ISWMDL(8).GE.2)
- & .AND.((IPAMDL(101).NE.1).OR.(L.EQ.1))) THEN
- ICI(1,1) = ICA1
- ICI(1,2) = ICA2
- ICI(2,1) = ICB1
- ICI(2,2) = ICB2
- IFLA(1) = NINHD(I,1)
- IFLA(2) = NINHD(I,2)
-C initial state radiation
- DO 230 K=1,2
- DO 235 IPA=IPOISR(K,2,I),IPOISR(K,1,I)+1,-1
- KK = 1
- 237 CONTINUE
- IFLB = IFLISR(K,IPA)
- IF(ABS(IFLB).LE.6) THEN
-C partons
- IF(ICI(K,1)*ICI(K,2).NE.0) THEN
- IF(IFLB.EQ.0) THEN
- CALL PHO_SELCOL(ICI(K,1),ICI(K,2),IC1,IC2,
- & ICI(K,1),ICI(K,2),3)
- ELSE IF(IFLB.GT.0) THEN
- CALL PHO_SELCOL(ICI(K,1),ICI(K,2),IC1,IC2,
- & ICI(K,1),ICI(K,2),4)
- ELSE
- CALL PHO_SELCOL(ICI(K,1),ICI(K,2),ICI(K,1),
- & ICI(K,2),IC1,IC2,4)
- ENDIF
- ELSE
- IF((ICI(K,1)+ICI(K,2))*IFLB.LT.0) THEN
- IF(IPA-KK.GT.IPOISR(K,1,I)) THEN
- CALL PHO_SWAPI(IFLISR(K,IPA),IFLISR(K,IPA-KK))
- KK = KK+1
- GOTO 237
- ENDIF
- ENDIF
- IF(IFLB.EQ.0) THEN
- CALL PHO_SELCOL(ICI(K,1),ICI(K,2),ICI(K,1),
- & ICI(K,2),IC1,IC2,2)
- ELSE
- CALL PHO_SELCOL(ICI(K,1),ICI(K,2),IC1,IC2,
- & ICI(K,1),ICI(K,2),2)
- ENDIF
- ENDIF
- IIFL = IPHO_CNV1(IFLB)
-
- IFLA(K) = IFLA(K)-IFLB
- IST = -1
- ELSE
-C other particles
- IIFL = IFLB
- IC1 = 0
- IC2 = 0
- IST = 1
- ENDIF
- CALL PHO_REGPAR(IST,IIFL,0,JM1,JM2,PHISR(K,1,IPA),
- & PHISR(K,2,IPA),PHISR(K,3,IPA),PHISR(K,4,IPA),
- & L*100+K,IGEN,IC1,IC2,IPOS,1)
- 235 CONTINUE
- 230 CONTINUE
- ICOLOR(1,IPOS1-2) = ICI(1,1)
- ICOLOR(2,IPOS1-2) = ICI(1,2)
- ICOLOR(1,IPOS1-1) = ICI(2,1)
- ICOLOR(2,IPOS1-1) = ICI(2,2)
- CALL PHO_HARCOL(NPROHD(I),VHD(I),IFLA(1),ICI(1,1),ICI(1,2),
- & IFLA(2),ICI(2,1),ICI(2,2),NOUTHD(I,1),ICI(1,1),ICI(1,2),
- & NOUTHD(I,2),ICI(2,1),ICI(2,2))
- ICOLOR(1,IPOS1) = ICI(1,1)
- ICOLOR(2,IPOS1) = ICI(1,2)
- ICOLOR(1,IPOS2) = ICI(2,1)
- ICOLOR(2,IPOS2) = ICI(2,2)
- DO 240 K=1,2
- IPA = IPOISR(K,1,I)
- CALL PHO_REGPAR(-1,IPHO_CNV1(IFLISR(K,IPA)),0,JM1,JM2,
- & PHISR(K,1,IPA),PHISR(K,2,IPA),PHISR(K,3,IPA),
- & PHISR(K,4,IPA),-L*100,IGEN,ICI(K,1),ICI(K,2),IPOS,1)
- 240 CONTINUE
- ELSE
- ICOLOR(1,IPOS1-2) = ICA1
- ICOLOR(2,IPOS1-2) = ICA2
- ICOLOR(1,IPOS1-1) = ICB1
- ICOLOR(2,IPOS1-1) = ICB2
- CALL PHO_HARCOL(NPROHD(I),VHD(I),NINHD(I,1),ICA1,ICA2,
- & NINHD(I,2),ICB1,ICB2,NOUTHD(I,1),ICA1,ICA2,
- & NOUTHD(I,2),ICB1,ICB2)
- ICOLOR(1,IPOS1) = ICA1
- ICOLOR(2,IPOS1) = ICA2
- ICOLOR(1,IPOS2) = ICB1
- ICOLOR(2,IPOS2) = ICB2
- I1 = 8*I-3
- CALL PHO_REGPAR(-1,IPHO_CNV1(NOUTHD(I,1)),0,JM1,JM2,
- & PPH(I1,1),PPH(I1+1,1),PPH(I1+2,1),PPH(I1+3,1),-L*100,IGEN,
- & ICA1,ICA2,IPOS,1)
- CALL PHO_REGPAR(-1,IPHO_CNV1(NOUTHD(I,2)),0,JM1,JM2,
- & PPH(I1,2),PPH(I1+1,2),PPH(I1+2,2),PPH(I1+3,2),-L*100,IGEN,
- & ICB1,ICB2,IPOS,1)
- ENDIF
- 100 CONTINUE
-C end of resolved parton registration
- ENDIF
-
- IF(MHDIR+MHPOM.GT.0) THEN
-
- IF(ISWMDL(29).GE.1) THEN
-C primordial kt of hard scattering
- CALL PHO_PRIMKT(1,NLOR1,NHEP,PTCUT(II),IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(27) = IFAIL(27)+1
- GOTO 150
- ENDIF
- ELSE IF(ISWMDL(24).GE.0) THEN
-C give "soft" pt only to soft (spectator) partons in hard processes
- CALL PHO_PARTPT(1,NLOR1,NHEP,PTCUT(II),IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(26) = IFAIL(26)+1
- GOTO 150
- ENDIF
- ENDIF
-
- ENDIF
-
-C give "soft" pt to partons in soft Pomerons
- IF((MHDIR.EQ.0).AND.(ISWMDL(18).EQ.1)) THEN
- CALL PHO_PARTPT(0,NLOR1,NHEP,PTCUT(II),IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(25) = IFAIL(25) + 1
- GOTO 150
- ENDIF
- ENDIF
-
-C boost back to lab frame
- CALL PHO_LTRHEP(NLOR1,NHEP,CODP,SIDP,COFP,SIFP,GAMBEP(4),
- & GAMBEP(1),GAMBEP(2),GAMBEP(3))
- RETURN
-
-C rejection treatment
- 150 CONTINUE
- IFAIL(2) = IFAIL(2)+1
-C reset counters
- KSPOM = KSPOMS
- KHPOM = KHPOMS
- KHDIR = KHDIRS
- KSREG = KSREGS
-C reset mother-daugther relations
- JDAHEP(1,JM1) = 0
- JDAHEP(2,JM1) = 0
- JDAHEP(1,JM2) = 0
- JDAHEP(2,JM2) = 0
- ISTHEP(JM1) = 1
- ISTHEP(JM2) = 1
- IPOIX1 = IPOIS1
- IPOIX2 = IPOIS2
- NHEP = NHEPS
-C debug
- IF(IDEB(23).GT.2) WRITE(LO,'(/1X,A,4I6)')
- & 'PHO_STDPAR: rejection (MSPOM,MHPOM,MSREG,MHDIR)',
- & MSPOM,MHPOM,MSREG,MHDIR
- RETURN
-
- END
-
-CDECK ID>, PHO_HARCOL
- SUBROUTINE PHO_HARCOL(MSPR,V,IP1,ICA1,ICA2,IP2,ICB1,ICB2,
- & IP3,ICC1,ICC2,IP4,ICD1,ICD2)
-C*********************************************************************
-C
-C calculate color flow for hard resolved process
-C
-C input: IP1..4 flavour of partons (PDG convention)
-C V parton subprocess Mandelstam variable V = t/s
-C (lightcone momenta assumed)
-C ICA,ICB color labels
-C MSPR process number
-C -1 initialization of statistics
-C -2 output of statistics
-C
-C output: ICC,ICD color label of final partons
-C
-C (it is possible to use the same variables for in and output)
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C names of hard scattering processes
- INTEGER Max_pro_1
- PARAMETER ( Max_pro_1 = 16 )
- CHARACTER*18 PROC
- COMMON /POHPRO/ PROC(0:Max_pro_1)
-
- DIMENSION PC(3),ICONF(8,5),IRECN(8,2)
-
-C initialization
- IF(MSPR.EQ.-1) THEN
- DO 200 I=1,8
- DO 210 K=1,5
- ICONF(I,K) = 0
- 210 CONTINUE
- IRECN(I,1) = 0
- IRECN(I,2) = 0
- 200 CONTINUE
- RETURN
-C output of statistics
- ELSE IF(MSPR.EQ.-2) THEN
- IF(IDEB(26).LT.1) RETURN
- WRITE(LO,'(/1X,A,/1X,A)')
- & 'PHO_HARCOL: sampled color configurations',
- & '----------------------------------------'
- WRITE(LO,'(6X,A,15X,A)')
- & 'diagram color configurations (1-4)','sum'
- DO 300 I=1,8
- DO 310 K=1,4
- ICONF(I,5) = ICONF(I,5) + ICONF(I,K)
- 310 CONTINUE
- WRITE(LO,'(2X,A,4I11,I12)') PROC(I),(ICONF(I,K),K=1,5)
- 300 CONTINUE
- IF(ISWMDL(11).GE.2) THEN
- WRITE(LO,'(/6X,A)')
- & 'diagram with / without color re-connection'
- DO 320 I=1,8
- WRITE(LO,'(2X,A,2I11)') PROC(I),IRECN(I,1),IRECN(I,2)
- 320 CONTINUE
- ENDIF
- RETURN
- ENDIF
-C
-C gluons: first color positive, quarks second color zero
- IF(IP1.EQ.0) THEN
- IF(ICA1.LT.0) THEN
- I = ICA2
- ICA2 = ICA1
- ICA1 = I
- ENDIF
- ELSE
- ICA2 = 0
- ENDIF
- IF(IP2.EQ.0) THEN
- IF(ICB1.LT.0) THEN
- I = ICB2
- ICB2 = ICB1
- ICB1 = I
- ENDIF
- ELSE
- ICB2 = 0
- ENDIF
- IC2 = 0
- IC4 = 0
-C debug output
- IF(IDEB(26).GE.15)
- & WRITE(LO,'(1X,A,I4,/,5X,A,3I5,2X,3I5)')
- & 'PHO_HARCOL: process',MSPR,
- & 'initial partons and colors',IP1,ICA1,ICA2,IP2,ICB1,ICB2
-C
- IRC = 0
- IF(IPAMDL(21).EQ.1) THEN
-C
-C soft color re-connection option
-C
- IF(MSPR.EQ.1) THEN
-C hard g g final state, only g g --> g g
- IF((ICA1.NE.-ICA2).AND.(ICB1.NE.-ICB2)) THEN
- IF(DT_RNDM(V).LT.PARMDL(140)) THEN
- IC1 = ICA1
- IC2 = ICA2
- IC3 = ICB1
- IC4 = ICB2
- IRECN(MSPR,1) = IRECN(MSPR,1)+1
- IRC = 1
- GOTO 100
- ENDIF
- ENDIF
- ELSE IF(MSPR.EQ.3) THEN
-C hard q g final state
- IF((ICA1.NE.-ICA2).AND.(ICB1.NE.-ICB2)) THEN
- IF(DT_RNDM(V).LT.PARMDL(141)) THEN
- IC1 = ICA1
- IC2 = ICA2
- IC3 = ICB1
- IC4 = ICB2
- IRECN(MSPR,1) = IRECN(MSPR,1)+1
- IRC = 1
- GOTO 100
- ENDIF
- ENDIF
- ELSE IF((MSPR.EQ.5).OR.(MSPR.EQ.7).OR.(MSPR.EQ.8)) THEN
-C hard q q final state
- IF(ICA1.NE.-ICB1) THEN
- IF(DT_RNDM(V).LT.PARMDL(142)) THEN
- IC1 = ICA1
- IC2 = ICA2
- IC3 = ICB1
- IC4 = ICB2
- IRECN(MSPR,1) = IRECN(MSPR,1)+1
- IRC = 1
- GOTO 100
- ENDIF
- ENDIF
- ENDIF
- IRECN(MSPR,2) = IRECN(MSPR,2)+1
- ENDIF
-C
- IF((ISWMDL(11).EQ.1).AND.(MSPR.LT.10)) THEN
-C
-C large Nc limit of all graphs
-C
- IF(MSPR.EQ.1) THEN
-C g g --> g g
- IF(DT_RNDM(V).GT.0.5D0) THEN
- IC1 = ICB1
- IC2 = ICA2
- IC3 = ICA1
- IC4 = ICB2
- ICONF(MSPR,1) = ICONF(MSPR,1)+1
- ELSE
- IC1 = ICA1
- IC2 = ICB2
- IC3 = ICB1
- IC4 = ICA2
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ENDIF
- ELSE IF(MSPR.EQ.2) THEN
-C q qb --> g g
- CALL PHO_SELCOL(0,0,I1,K1,I2,K2,1)
- IF(ICA1.LT.0) THEN
- IC1 = I1
- IC2 = ICA1
- IC3 = ICB1
- IC4 = I2
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ELSE
- IC1 = ICA1
- IC2 = I2
- IC3 = I1
- IC4 = ICB1
- ICONF(MSPR,1) = ICONF(MSPR,1)+1
- ENDIF
- ELSE IF(MSPR.EQ.3) THEN
-C q g --> q g
- IF(DT_RNDM(V).LT.0.5D0) THEN
- IF(IP1+IP2.GT.0) THEN
- IC1 = ICB1
- IC2 = ICA2
- IC3 = ICA1
- IC4 = ICB2
- ELSE IF(IP1.LT.0) THEN
- IC1 = ICB2
- IC3 = ICB1
- IC4 = ICA1
- ELSE
- IC1 = ICA1
- IC2 = ICB1
- IC3 = ICA2
- ENDIF
- ICONF(MSPR,1) = ICONF(MSPR,1)+1
- ELSE
- IF(IP1.GT.0) THEN
- CALL PHO_HARCOR(-ICA1,ICB2)
- IC1 = ICA1
- IC3 = ICB1
- IC4 = -ICA1
- ELSE IF(IP2.GT.0) THEN
- CALL PHO_HARCOR(-ICB1,ICA2)
- IC1 = ICA1
- IC2 = -ICB1
- IC3 = ICB1
- ELSE IF(IP1.LT.0) THEN
- CALL PHO_HARCOR(-ICA1,ICB1)
- IC1 = ICA1
- IC3 = -ICA1
- IC4 = ICB2
- ELSE IF(IP2.LT.0) THEN
- CALL PHO_HARCOR(-ICB1,ICA1)
- IC1 = -ICB1
- IC2 = ICA2
- IC3 = ICB1
- ENDIF
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ENDIF
- ELSE IF(MSPR.EQ.4) THEN
-C g g --> q qb
- IC1 = ICA1
- IC3 = ICB2
- CALL PHO_HARCOR(-ICB1,ICA2)
- IF(ICB2.EQ.-ICB1) IC3 = ICA2
- IF(IP3*IC1.LT.0) THEN
- I = IC1
- IC1 = IC3
- IC3 = I
- ENDIF
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ELSE IF(MSPR.EQ.5) THEN
-C q qb --> q qb
- IF(DT_RNDM(V).LT.0.5D0) THEN
- IF(ICA1*IP3.LT.0) THEN
- IC1 = ICB1
- IC3 = ICA1
- ELSE
- IC1 = ICA1
- IC3 = ICB1
- ENDIF
- ICONF(MSPR,1) = ICONF(MSPR,1)+1
- ELSE
- IF(ICA1*IP3.LT.0) THEN
- IC1 = -ICA1
- IC3 = ICA1
- ELSE
- IC1 = ICA1
- IC3 = -ICA1
- ENDIF
- CALL PHO_HARCOR(-ICA1,ICB1)
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ENDIF
- ELSE IF(MSPR.EQ.6) THEN
-C q qb --> qp qbp
- IF(ICA1*IP3.LT.0) THEN
- IC1 = ICB1
- IC3 = ICA1
- ICONF(MSPR,1) = ICONF(MSPR,1)+1
- ELSE
- IC1 = ICA1
- IC3 = ICB1
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ENDIF
- ELSE IF(MSPR.EQ.7) THEN
-C q q --> q q
- IF(DT_RNDM(V).LT.0.5D0) THEN
- IC1 = ICA1
- IC3 = ICB1
- ICONF(MSPR,1) = ICONF(MSPR,1)+1
- ELSE
- IC1 = ICB1
- IC3 = ICA1
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ENDIF
- ELSE IF(MSPR.EQ.8) THEN
-C q qp --> q qp
- IF(IP1*IP2.GT.0) THEN
- IF(IP3.EQ.IP1) THEN
- IC1 = ICB1
- IC3 = ICA1
- ELSE
- IC1 = ICA1
- IC3 = ICB1
- ENDIF
- ICONF(MSPR,1) = ICONF(MSPR,1)+1
- ELSE
- IF(ICA1*IP3.LT.0) THEN
- IC1 = -ICA1
- IC3 = ICA1
- ELSE
- IC1 = ICA1
- IC3 = -ICA1
- ENDIF
- CALL PHO_HARCOR(-ICA1,ICB1)
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ENDIF
- ELSE
-C unknown process
- WRITE(LO,'(/1X,A,I3)')
- & 'PHO_HARCOL:ERROR:invalid process number (MSPR)',MSPR
- CALL PHO_ABORT
- ENDIF
-C
- ELSE
-C
-C color flow according to QCD leading order matrix element
-C
- U = -(1.D0+V)
- IF(MSPR.EQ.1) THEN
-C g g --> g g
- PC(1) = 1/V**2 +2.D0/V +3.D0 +2.D0*V +V**2
- PC(2) = 1/U**2 +2.D0/U +3.D0 +2.D0*U +U**2
- PC(3) = (V/U)**2+2.D0*(V/U)+3.D0 +2.D0*(U/V)+(U/V)**2
- XI = (PC(1)+PC(2)+PC(3))*DT_RNDM(U)
- PCS = 0.D0
- DO 110 I=1,3
- PCS = PCS+PC(I)
- IF(XI.LT.PCS) GOTO 120
- 110 CONTINUE
- 120 CONTINUE
- IF(I.EQ.1) THEN
- CALL PHO_SELCOL(0,0,I1,K1,I2,K2,1)
- IF(DT_RNDM(V).GT.0.5D0) THEN
- IC1 = I1
- IC2 = ICA2
- IC3 = ICB1
- IC4 = I2
- CALL PHO_HARCOR(-ICB2,ICA1)
- IF(ICB1.EQ.-ICB2) IC3 = ICA1
- ELSE
- IC1 = ICA1
- IC2 = I2
- IC3 = I1
- IC4 = ICB2
- CALL PHO_HARCOR(-ICB1,ICA2)
- IF(ICB2.EQ.-ICB1) IC4 = ICA2
- ENDIF
- ELSE IF(I.EQ.2) THEN
- CALL PHO_SELCOL(0,0,I1,K1,I2,K2,1)
- IF(DT_RNDM(U).GT.0.5D0) THEN
- IC1 = ICB1
- IC2 = I2
- IC3 = I1
- IC4 = ICA2
- CALL PHO_HARCOR(-ICB2,ICA1)
- IF(ICB1.EQ.-ICB2) IC1 = ICA1
- ELSE
- IC1 = I1
- IC2 = ICB2
- IC3 = ICA1
- IC4 = I2
- CALL PHO_HARCOR(-ICB1,ICA2)
- IF(ICB2.EQ.-ICB1) IC2 = ICA2
- ENDIF
- ELSE
- IF(DT_RNDM(V).GT.0.5D0) THEN
- IC1 = ICB1
- IC2 = ICA2
- IC3 = ICA1
- IC4 = ICB2
- ELSE
- IC1 = ICA1
- IC2 = ICB2
- IC3 = ICB1
- IC4 = ICA2
- ENDIF
- ENDIF
- ICONF(MSPR,I) = ICONF(MSPR,I)+1
- ELSE IF(MSPR.EQ.2) THEN
-C q qb --> g g
- PC(1) = U/V-2.D0*U**2
- PC(2) = V/U-2.D0*V**2
- CALL PHO_SELCOL(0,0,I1,K1,I2,K2,1)
- XI = (PC(1)+PC(2))*DT_RNDM(U)
- IF(XI.LT.PC(1)) THEN
- IF(ICA1.GT.0) THEN
- IC1 = ICA1
- IC2 = I2
- IC3 = I1
- IC4 = ICB1
- ICONF(MSPR,1) = ICONF(MSPR,1)+1
- ELSE
- IC1 = I1
- IC2 = ICA1
- IC3 = ICB1
- IC4 = I2
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ENDIF
- ELSE
- IF(ICA1.GT.0) THEN
- IC1 = I1
- IC2 = ICB1
- IC3 = ICA1
- IC4 = I2
- ICONF(MSPR,3) = ICONF(MSPR,3)+1
- ELSE
- IC1 = ICB1
- IC2 = I2
- IC3 = I1
- IC4 = ICA1
- ICONF(MSPR,4) = ICONF(MSPR,4)+1
- ENDIF
- ENDIF
- ELSE IF(MSPR.EQ.3) THEN
-C q g --> q g
- PC(1) = 2.D0*(U/V)**2-U
- PC(2) = 2.D0/V**2-1.D0/U
- XI = (PC(1)+PC(2))*DT_RNDM(V)
- IF(XI.LT.PC(1)) THEN
- CALL PHO_SELCOL(0,0,I1,K1,I2,K2,1)
- IF(IP1.GT.0) THEN
- IC1 = I1
- IC3 = ICB1
- IC4 = I2
- CALL PHO_HARCOR(-ICA1,ICB2)
- ICONF(MSPR,1) = ICONF(MSPR,1)+1
- ELSE IF(IP1.LT.0) THEN
- IC1 = I2
- IC3 = I1
- IC4 = ICB2
- CALL PHO_HARCOR(-ICA1,ICB1)
- ICONF(MSPR,1) = ICONF(MSPR,1)+1
- ELSE IF(IP2.GT.0) THEN
- IC1 = ICA1
- IC2 = I2
- IC3 = I1
- CALL PHO_HARCOR(-ICB1,ICA2)
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ELSE
- IC1 = I1
- IC2 = ICA2
- IC3 = I2
- CALL PHO_HARCOR(-ICB1,ICA1)
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ENDIF
- ELSE
- IF(IP1.GT.0) THEN
- IC1 = ICB1
- IC3 = ICA1
- IC4 = ICB2
- ICONF(MSPR,3) = ICONF(MSPR,3)+1
- ELSE IF(IP1.LT.0) THEN
- IC1 = ICB2
- IC3 = ICB1
- IC4 = ICA1
- ICONF(MSPR,3) = ICONF(MSPR,3)+1
- ELSE IF(IP2.GT.0) THEN
- IC1 = ICB1
- IC2 = ICA2
- IC3 = ICA1
- ICONF(MSPR,4) = ICONF(MSPR,4)+1
- ELSE
- IC1 = ICA1
- IC2 = ICB1
- IC3 = ICA2
- ICONF(MSPR,4) = ICONF(MSPR,4)+1
- ENDIF
- ENDIF
- ELSE IF(MSPR.EQ.4) THEN
-C g g --> q qb
- PC(1) = U/V-2.D0*U**2
- PC(2) = V/U-2.D0*V**2
- XI = (PC(1)+PC(2))*DT_RNDM(U)
- IF(XI.LT.PC(1)) THEN
- IF(IP3.GT.0) THEN
- IC1 = ICA1
- IC3 = ICB2
- CALL PHO_HARCOR(-ICB1,ICA2)
- IF(ICB2.EQ.-ICB1) IC3 = ICA2
- ICONF(MSPR,1) = ICONF(MSPR,1)+1
- ELSE
- IC1 = ICA2
- IC3 = ICB1
- CALL PHO_HARCOR(-ICB2,ICA1)
- IF(ICB1.EQ.-ICB2) IC3 = ICA1
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ENDIF
- ELSE
- IF(IP3.GT.0) THEN
- IC1 = ICB1
- IC3 = ICA2
- CALL PHO_HARCOR(-ICB2,ICA1)
- IF(ICB1.EQ.-ICB2) IC1 = ICA1
- ICONF(MSPR,3) = ICONF(MSPR,3)+1
- ELSE
- IC1 = ICB2
- IC3 = ICA1
- CALL PHO_HARCOR(-ICB1,ICA2)
- IF(ICB2.EQ.-ICB1) IC1 = ICA2
- ICONF(MSPR,4) = ICONF(MSPR,4)+1
- ENDIF
- ENDIF
- ELSE IF(MSPR.EQ.5) THEN
-C q qb --> q qb
- PC(1) = (1.D0+U**2)/V**2
- PC(2) = (V**2+U**2)
- XI = (PC(1)+PC(2))*DT_RNDM(V)
- IF(XI.LT.PC(1)) THEN
- CALL PHO_HARCOR(-ICB1,ICA1)
- CALL PHO_SELCOL(0,0,I1,K1,I2,K2,1)
- IF(IP3.GT.0) THEN
- IC1 = I1
- IC3 = I2
- ICONF(MSPR,1) = ICONF(MSPR,1)+1
- ELSE
- IC1 = I2
- IC3 = I1
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ENDIF
- ELSE
- IF(IP3.GT.0) THEN
- IC1 = MAX(ICA1,ICB1)
- IC3 = MIN(ICA1,ICB1)
- ICONF(MSPR,3) = ICONF(MSPR,3)+1
- ELSE
- IC1 = MIN(ICA1,ICB1)
- IC3 = MAX(ICA1,ICB1)
- ICONF(MSPR,4) = ICONF(MSPR,4)+1
- ENDIF
- ENDIF
- ELSE IF(MSPR.EQ.6) THEN
-C q qb --> qp qpb
- IF(IP3.GT.0) THEN
- IC1 = MAX(ICA1,ICB1)
- IC3 = MIN(ICA1,ICB1)
- ICONF(MSPR,1) = ICONF(MSPR,1)+1
- ELSE
- IC1 = MIN(ICA1,ICB1)
- IC3 = MAX(ICA1,ICB1)
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ENDIF
- ELSE IF(MSPR.EQ.7) THEN
-C q q --> q q
- PC(1) = (1.D0+U**2)/V**2
- PC(2) = (1.D0+V**2)/U**2
- XI = (PC(1)+PC(2))*DT_RNDM(U)
- IF(XI.LT.PC(1)) THEN
- IC1 = ICB1
- IC3 = ICA1
- ICONF(MSPR,1) = ICONF(MSPR,1)+1
- ELSE
- IC1 = ICA1
- IC3 = ICB1
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ENDIF
- ELSE IF(MSPR.EQ.8) THEN
-C q qp --> q qp
- IF(IP1*IP2.LT.0) THEN
- CALL PHO_HARCOR(-ICB1,ICA1)
- CALL PHO_SELCOL(0,0,I1,K1,I2,K2,1)
- IF(IP1.GT.0) THEN
- IC1 = I1
- IC3 = I2
- ICONF(MSPR,1) = ICONF(MSPR,1)+1
- ELSE
- IC1 = I2
- IC3 = I1
- ICONF(MSPR,2) = ICONF(MSPR,2)+1
- ENDIF
- ELSE
- IC1 = ICB1
- IC3 = ICA1
- ICONF(MSPR,3) = ICONF(MSPR,3)+1
- ENDIF
-
- ELSE IF(MSPR.EQ.10) THEN
-C gam q --> q g
- CALL PHO_SELCOL(ICB1,ICB2,IC1,IC2,IC3,IC4,2)
- IF(IP3.EQ.0) THEN
- CALL PHO_SWAPI(IC1,IC3)
- CALL PHO_SWAPI(IC2,IC4)
- ENDIF
- ELSE IF(MSPR.EQ.11) THEN
-C gam g --> q q
- IC1 = ICB1
- IC3 = ICB2
- IF(IP3.LT.0) CALL PHO_SWAPI(IC1,IC3)
- ELSE IF(MSPR.EQ.12) THEN
-C q gam --> q g
- CALL PHO_SELCOL(ICA1,ICA2,IC1,IC2,IC3,IC4,2)
- IF(IP3.EQ.0) THEN
- CALL PHO_SWAPI(IC1,IC3)
- CALL PHO_SWAPI(IC2,IC4)
- ENDIF
- ELSE IF(MSPR.EQ.13) THEN
-C g gam --> q q
- IC1 = ICA1
- IC3 = ICA2
- IF(IP3.LT.0) CALL PHO_SWAPI(IC1,IC3)
- ELSE IF(MSPR.EQ.14) THEN
- IF(ABS(IP3).GT.12) THEN
- IC1 = 0
- IC3 = 0
- ELSE
- CALL PHO_SELCOL(ICA1,ICA2,IC1,IC2,IC3,IC4,1)
- IF(IP3.LT.0) CALL PHO_SWAPI(IC1,IC3)
- ENDIF
- ELSE
-C unknown process
- WRITE(LO,'(/1X,A,I3)')
- & 'PHO_HARCOL:ERROR:invalid process number',MSPR
- CALL PHO_ABORT
- ENDIF
- ENDIF
-C
- 100 CONTINUE
-C debug output
- IF(IDEB(26).GE.10) WRITE(LO,'(5X,A,3I5,2X,3I5)')
- & 'final partons and colors',IP3,IC1,IC2,IP4,IC3,IC4
-C color connection?
-* IF(((IC1.NE.-IC3).AND.(IC1.NE.-IC4)).AND.
-* & (((IC2.NE.0).AND.(IC2.NE.-IC3).AND.(IC2.NE.-IC4))
-* & .OR.(IC2.EQ.0))) THEN
-C color exchange?
-* IF(((IP1.EQ.IP3).AND.(ICA1.EQ.IC1).AND.(ICA2.EQ.IC2))
-* & .OR.((IP1.EQ.IP4).AND.(ICA1.EQ.IC3).AND.(ICA2.EQ.IC4))) THEN
-* IF(IRC.NE.1) THEN
-* WRITE(LO,'(1X,A,I10,I3)')
-* & 'PHO_HARCOL:unexp. re-connection (event/MSPR):',KEVENT,MSPR
-* WRITE(LO,'(5X,A,3I5,2X,3I5)')
-* & 'initial partons and colors',IP1,ICA1,ICA2,IP2,ICB1,ICB2
-* WRITE(LO,'(5X,A,3I5,2X,3I5)')
-* & 'final partons and colors ',IP3,IC1,IC2,IP4,IC3,IC4
-* ENDIF
-* IRC = 0
-* ENDIF
-* ENDIF
-* IF(IRC.EQ.1) THEN
-* WRITE(LO,'(1X,A,I10,I3)')
-* & 'PHO_HARCOL:re-conn. failed (event/MSPR):',KEVENT,MSPR
-* WRITE(LO,'(5X,A,3I5,2X,3I5)')
-* & 'initial partons and colors',IP1,ICA1,ICA2,IP2,ICB1,ICB2
-* WRITE(LO,'(5X,A,3I5,2X,3I5)')
-* & 'final partons and colors ',IP3,IC1,IC2,IP4,IC3,IC4
-* ENDIF
-C
- ICC1 = IC1
- ICC2 = IC2
- ICD1 = IC3
- ICD2 = IC4
-
- END
-
-CDECK ID>, PHO_HARCOR
- SUBROUTINE PHO_HARCOR(ICOLD,ICNEW)
-C***********************************************************************
-C
-C substituite color in /POEVT2/
-C
-C input: ICOLD old color
-C ICNEW new color
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
- DO 100 I=NHEP,3,-1
- IF(ISTHEP(I).EQ.-1) THEN
- IF(ICOLOR(1,I).EQ.ICOLD) THEN
- ICOLOR(1,I) = ICNEW
- RETURN
- ELSE IF(IDHEP(I).EQ.21) THEN
- IF(ICOLOR(2,I).EQ.ICOLD) THEN
- ICOLOR(2,I) = ICNEW
- RETURN
- ENDIF
- ENDIF
-* ELSE IF(ISTHEP(I).EQ.20) THEN
-* IF(ICOLOR(1,I).EQ.-ICOLD) THEN
-* print LO,' PHO_HARCOR(3): line, old, new:',I,ICOLD,ICNEW
-* ICOLOR(1,I) = -ICNEW
-* RETURN
-* ELSE IF(IDHEP(I).EQ.21) THEN
-* IF(ICOLOR(2,I).EQ.-ICOLD) THEN
-* print LO,' PHO_HARCOR(4): line, old, new:',I,ICOLD,ICNEW
-* ICOLOR(2,I) = -ICNEW
-* RETURN
-* ENDIF
-* ENDIF
- ENDIF
- 100 CONTINUE
- END
-
-CDECK ID>, PHO_HARREM
- SUBROUTINE PHO_HARREM(JM1,JM2,IGEN,IHPOS,IVAL,INDXS,IC1,IC2,
- & IUSED,IREJ)
-C***********************************************************************
-C
-C sample color structure for initial quark/gluon of hard scattering
-C and write hadron remnant to /POEVT1/
-C
-C input: JM1,2 index of mother particle in POEVT1
-C IGEN mother particle production process
-C IHPOS hard pomeron number
-C INDXH index of hard parton
-C positive for labels 1
-C negative for labels 2
-C IVAL 1 hard valence parton
-C 0 hard sea parton connected by color flow with
-C valence quarks
-C -1 hard sea parton independent off valence
-C quarks
-C INDXS index of soft partons needed
-C
-C output: IC1,IC2 color label of initial parton
-C IUSED number of soft X values used
-C IREJ rejection flag
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( TINY = 1.D-10 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C light-cone x fractions and c.m. momenta of soft cut string ends
- INTEGER MAXSOF
- PARAMETER ( MAXSOF = 50 )
- INTEGER IJSI2,IJSI1
- DOUBLE PRECISION XS1,XS2,PSOFT1,PSOFT2
- COMMON /POSOFT/ XS1(MAXSOF),XS2(MAXSOF),
- & PSOFT1(4,MAXSOF),PSOFT2(4,MAXSOF),
- & IJSI1(MAXSOF),IJSI2(MAXSOF)
-C hard scattering data
- INTEGER MSCAHD
- PARAMETER ( MSCAHD = 50 )
- INTEGER LSCAHD,LSC1HD,LSIDX,
- & NINHD,N0INHD,NIVAL,N0IVAL,NOUTHD,NBRAHD,NPROHD
- DOUBLE PRECISION PPH,PTHD,ETAHD,Q2SCA,PDFVA,XHD,VHD,X0HD
- COMMON /POHSLT/ LSCAHD,LSC1HD,LSIDX(MSCAHD),
- & PPH(8*MSCAHD,2),PTHD(MSCAHD),ETAHD(MSCAHD,2),
- & Q2SCA(MSCAHD,2),PDFVA(MSCAHD,2),
- & XHD(MSCAHD,2),VHD(MSCAHD),X0HD(MSCAHD,2),
- & NINHD(MSCAHD,2),N0INHD(MSCAHD,2),
- & NIVAL(MSCAHD,2),N0IVAL(MSCAHD,2),
- & NOUTHD(MSCAHD,2),NBRAHD(MSCAHD,2),NPROHD(MSCAHD)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-
- IREJ = 0
-
- INDXH = SIGN(LSIDX(ABS(IHPOS)),IHPOS)
-
- IF(INDXH.GT.0) THEN
- IJH = IPHO_CNV1(NINHD(INDXH,1))
- ELSE
- IJH = IPHO_CNV1(NINHD(-INDXH,2))
- ENDIF
-C direct process (photon or pomeron)
- IUSED = 0
- IC1 = 0
- IC2 = 0
- IF((IJH.EQ.22).OR.(IJH.EQ.990)) RETURN
-
- IHP = 100*ABS(IHPOS)
- IVSW = 1
-***************************************
-* IF((IDHEP(JM1).EQ.22).OR.(IDHEP(JM1).EQ.990)) IVSW = 0
-***************************************
-
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,2I3,1X,5I4)')
- & 'PHO_HARREM: JM1,JM2,IHPOS,INDXH,IFLH,IVAL,INDXS:',
- & JM1,JM2,IHPOS,INDXH,IJH,IVAL,INDXS
-
-C quark
-C****************************************************************
-
- IF(IJH.NE.21) THEN
-
-C valence quark engaged in hard scattering
- IF(IVAL.EQ.1) THEN
- CALL PHO_PARREM(JM1,IJH,IREM,IREJ)
- IF(IREJ.NE.0) THEN
- WRITE(LO,'(/1X,2A,2I6)') 'PHO_HARREM: ',
- & 'invalid valence flavour requested JM,IFLA',JM1,IJH
- return
- ENDIF
- CALL PHO_SELCOL(0,0,ICA1,ICA2,ICB1,ICB2,1)
- IF(((ABS(IREM).GT.6).AND.(IREM.GT.0))
- & .OR.((ABS(IREM).LE.6).AND.(IREM.LT.0))) THEN
- I = ICA1
- ICA1 = ICB1
- ICB1 = I
- ENDIF
-C remnant of hadron
- IF(INDXH.GT.0) THEN
- P1 = PSOFT1(1,INDXS)
- P2 = PSOFT1(2,INDXS)
- P3 = PSOFT1(3,INDXS)
- P4 = PSOFT1(4,INDXS)
- IJSI1(INDXS) = IREM
- ELSE
- P1 = PSOFT2(1,INDXS)
- P2 = PSOFT2(2,INDXS)
- P3 = PSOFT2(3,INDXS)
- P4 = PSOFT2(4,INDXS)
- IJSI2(INDXS) = IREM
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,IREM,0,JM1,JM2,P1,P2,P3,P4,
- & IHP,IGEN,ICA1,IVSW,IPOS,1)
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARREM: val.spectator:(IFL,IPOS,INDXS)',
- & IREM,IPOS,SIGN(INDXS,INDXH)
-
- IUSED = 1
-
-C sea quark engaged in hard scattering, valence quarks treated
- ELSE IF(IVAL.EQ.0) THEN
- IF(INDXH.GT.0) THEN
- E1 = PSOFT1(4,INDXS)
- E2 = PSOFT1(4,INDXS+1)
- ELSE
- E1 = PSOFT2(4,INDXS)
- E2 = PSOFT2(4,INDXS+1)
- ENDIF
- CALL PHO_VALFLA(JM1,IVFL1,IVFL2,E1,E2)
- CALL PHO_SELCOL(0,0,ICA1,ICA2,ICB1,ICB2,1)
- IF(DT_RNDM(P1).LT.0.5D0) THEN
- CALL PHO_SELCOL(ICB1,ICB2,ICB1,ICB2,ICC1,ICC2,2)
- ELSE
- CALL PHO_SELCOL(ICA1,ICA2,ICA1,ICA2,ICC1,ICC2,2)
- ENDIF
- IF(((ABS(IVFL1).GT.6).AND.(IVFL1.GT.0))
- & .OR.((ABS(IVFL1).LE.6).AND.(IVFL1.LT.0))) THEN
- I = ICA1
- ICA1 = ICB1
- ICB1 = I
- ENDIF
- IF(INDXH.GT.0) THEN
- P1 = PSOFT1(1,INDXS)
- P2 = PSOFT1(2,INDXS)
- P3 = PSOFT1(3,INDXS)
- P4 = PSOFT1(4,INDXS)
- IJSI1(INDXS) = IVFL1
- ELSE
- P1 = PSOFT2(1,INDXS)
- P2 = PSOFT2(2,INDXS)
- P3 = PSOFT2(3,INDXS)
- P4 = PSOFT2(4,INDXS)
- IJSI2(INDXS) = IVFL1
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,IVFL1,0,JM1,JM2,P1,P2,P3,P4,
- & IHP,IGEN,ICA1,IVSW,IPOS,1)
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARREM: val.spectator:(IFL,IPOS,INDXS)',
- & IVFL1,IPOS,SIGN(INDXS,INDXH)
-
-C
- IF(INDXH.GT.0) THEN
- P1 = PSOFT1(1,INDXS+1)
- P2 = PSOFT1(2,INDXS+1)
- P3 = PSOFT1(3,INDXS+1)
- P4 = PSOFT1(4,INDXS+1)
- IJSI1(INDXS+1) = IVFL2
- ELSE
- P1 = PSOFT2(1,INDXS+1)
- P2 = PSOFT2(2,INDXS+1)
- P3 = PSOFT2(3,INDXS+1)
- P4 = PSOFT2(4,INDXS+1)
- IJSI2(INDXS+1) = IVFL2
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,IVFL2,0,JM1,JM2,P1,P2,P3,P4,
- & IHP,IGEN,ICB1,IVSW,IPOS,1)
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARREM: val.spectator:(IFL,IPOS,INDXS)',
- & IVFL2,IPOS,SIGN(INDXS+1,INDXH)
-
-C
- IF(IJH.LT.0) THEN
- ICB1 = ICC2
- ICA1 = ICC1
- ELSE
- ICB1 = ICC1
- ICA1 = ICC2
- ENDIF
- IF(INDXH.GT.0) THEN
- P1 = PSOFT1(1,INDXS+2)
- P2 = PSOFT1(2,INDXS+2)
- P3 = PSOFT1(3,INDXS+2)
- P4 = PSOFT1(4,INDXS+2)
- IJSI1(INDXS+2) = -IJH
- ELSE
- P1 = PSOFT2(1,INDXS+2)
- P2 = PSOFT2(2,INDXS+2)
- P3 = PSOFT2(3,INDXS+2)
- P4 = PSOFT2(4,INDXS+2)
- IJSI2(INDXS+2) = -IJH
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,-IJH,0,JM1,JM2,P1,P2,P3,P4,
- & IHP,IGEN,ICA1,0,IPOS,1)
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARREM: sea spectator:(IFL,IPOS,INDXS)',
- & -IJH,IPOS,SIGN(INDXS+2,INDXH)
- IUSED = 3
-C
-C sea quark engaged in hard scattering, valences treated separately
- ELSE IF(IVAL.EQ.-1) THEN
- CALL PHO_SELCOL(0,0,ICA1,ICA2,ICB1,ICB2,1)
- IF(IJH.GT.0) THEN
- ICC1 = ICB1
- ICB1 = ICA1
- ICA1 = ICC1
- ENDIF
- IF(INDXH.GT.0) THEN
- P1 = PSOFT1(1,INDXS)
- P2 = PSOFT1(2,INDXS)
- P3 = PSOFT1(3,INDXS)
- P4 = PSOFT1(4,INDXS)
- IJSI1(INDXS) = -IJH
- ELSE
- P1 = PSOFT2(1,INDXS)
- P2 = PSOFT2(2,INDXS)
- P3 = PSOFT2(3,INDXS)
- P4 = PSOFT2(4,INDXS)
- IJSI2(INDXS) = -IJH
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,-IJH,0,JM1,JM2,P1,P2,P3,P4,
- & IHP,IGEN,ICA1,0,IPOS,1)
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARREM: sea spectator:(IFL,IPOS,INDXS)',
- & -IJH,IPOS,SIGN(INDXS,INDXH)
-
- IUSED = 1
- ELSE
- WRITE(LO,'(1X,A,2I5)')
- & 'PHO_HARREM:ERROR:unsupported combination of IVAL,IJH',
- & IVAL,IJH
- CALL PHO_ABORT
- ENDIF
-C
- IC1 = ICB1
- IC2 = 0
-C
-C gluon
-C****************************************************************
-C
-C gluon from valence quarks
- ELSE
- IF(IVAL.EQ.1) THEN
-C purely gluonic pomeron remnant
- IF((IDHEP(JM1).EQ.990).AND.(IPAMDL(20).GT.0)) THEN
- IF(INDXH.GT.0) THEN
- P1 = PSOFT1(1,INDXS) + PSOFT1(1,INDXS+1)
- P2 = PSOFT1(2,INDXS) + PSOFT1(2,INDXS+1)
- P3 = PSOFT1(3,INDXS) + PSOFT1(3,INDXS+1)
- P4 = PSOFT1(4,INDXS) + PSOFT1(4,INDXS+1)
- IJSI1(INDXS) = 0
- ELSE
- P1 = PSOFT2(1,INDXS) + PSOFT2(1,INDXS+1)
- P2 = PSOFT2(2,INDXS) + PSOFT2(2,INDXS+1)
- P3 = PSOFT2(3,INDXS) + PSOFT2(3,INDXS+1)
- P4 = PSOFT2(4,INDXS) + PSOFT2(4,INDXS+1)
- IJSI2(INDXS) = 0
- ENDIF
- IFL1 = 21
- CALL PHO_SELCOL(0,0,ICA1,ICA2,ICB1,ICB2,1)
- IF(DT_RNDM(P2).LT.0.5D0) THEN
- CALL PHO_SELCOL(ICA1,ICA2,ICA1,ICA2,ICC1,ICC2,2)
- ELSE
- CALL PHO_SELCOL(ICB1,ICB2,ICB1,ICB2,ICC1,ICC2,2)
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,IFL1,0,JM1,JM2,P1,P2,P3,P4,
- & IHP,IGEN,ICA1,ICB1,IPOS,1)
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARREM: val.gluon:(IFL,IPOS,INDXS)',
- & IFL1,IPOS,SIGN(INDXS,INDXH)
-
- IUSED = 2
-C valence quark remnant
- ELSE
- IF(INDXH.GT.0) THEN
- E1 = PSOFT1(4,INDXS)
- E2 = PSOFT1(4,INDXS+1)
- ELSE
- E1 = PSOFT2(4,INDXS)
- E2 = PSOFT2(4,INDXS+1)
- ENDIF
- CALL PHO_VALFLA(JM1,IFL1,IFL2,E1,E2)
- CALL PHO_SELCOL(0,0,ICA1,ICA2,ICB1,ICB2,1)
- IF(((ABS(IFL1).LE.6).AND.(IFL1.LT.0))
- & .OR.((ABS(IFL1).GT.6).AND.(IFL1.GT.0))) THEN
- I = ICA1
- ICA1 = ICB1
- ICB1 = I
- ENDIF
- IF(DT_RNDM(P2).LT.0.5D0) THEN
- CALL PHO_SELCOL(ICA1,ICA2,ICA1,ICA2,ICC1,ICC2,2)
- ELSE
- CALL PHO_SELCOL(ICB1,ICB2,ICB1,ICB2,ICC1,ICC2,2)
- ENDIF
-C remnant of hadron
- IF(INDXH.GT.0) THEN
- P1 = PSOFT1(1,INDXS)
- P2 = PSOFT1(2,INDXS)
- P3 = PSOFT1(3,INDXS)
- P4 = PSOFT1(4,INDXS)
- IJSI1(INDXS) = IFL1
- ELSE
- P1 = PSOFT2(1,INDXS)
- P2 = PSOFT2(2,INDXS)
- P3 = PSOFT2(3,INDXS)
- P4 = PSOFT2(4,INDXS)
- IJSI2(INDXS) = IFL1
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,IFL1,0,JM1,JM2,P1,P2,P3,P4,
- & IHP,IGEN,ICA1,IVSW,IPOS,1)
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARREM: val.spectator:(IFL,IPOS,INDXS)',
- & IFL1,IPOS,SIGN(INDXS,INDXH)
-
-C
- IF(INDXH.GT.0) THEN
- P1 = PSOFT1(1,INDXS+1)
- P2 = PSOFT1(2,INDXS+1)
- P3 = PSOFT1(3,INDXS+1)
- P4 = PSOFT1(4,INDXS+1)
- IJSI1(INDXS+1) = IFL2
- ELSE
- P1 = PSOFT2(1,INDXS+1)
- P2 = PSOFT2(2,INDXS+1)
- P3 = PSOFT2(3,INDXS+1)
- P4 = PSOFT2(4,INDXS+1)
- IJSI2(INDXS+1) = IFL2
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,IFL2,0,JM1,JM2,P1,P2,P3,P4,
- & IHP,IGEN,ICB1,IVSW,IPOS,1)
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARREM: val.spectator:(IFL,IPOS,INDXS)',
- & IFL2,IPOS,SIGN(INDXS+1,INDXH)
-
- IUSED = 2
- ENDIF
-C
-C gluon from sea quarks connected with valence quarks
- ELSE IF(IVAL.EQ.0) THEN
- IF(INDXH.GT.0) THEN
- E1 = PSOFT1(4,INDXS)
- E2 = PSOFT1(4,INDXS+1)
- ELSE
- E1 = PSOFT2(4,INDXS)
- E2 = PSOFT2(4,INDXS+1)
- ENDIF
- CALL PHO_VALFLA(JM1,IFL1,IFL2,E1,E2)
- CALL PHO_SELCOL(0,0,ICA1,ICA2,ICB1,ICB2,1)
- IF(((ABS(IFL1).LE.6).AND.(IFL1.LT.0))
- & .OR.((ABS(IFL1).GT.6).AND.(IFL1.GT.0))) THEN
- I = ICA1
- ICA1 = ICB1
- ICB1 = I
- ENDIF
- IF(DT_RNDM(P3).LT.0.5D0) THEN
- CALL PHO_SELCOL(ICA1,ICA2,ICA1,ICA2,ICC1,ICC2,2)
- ELSE
- CALL PHO_SELCOL(ICB1,ICB2,ICB1,ICB2,ICC1,ICC2,2)
- ENDIF
-C remnant of hadron
- IF(INDXH.GT.0) THEN
- P1 = PSOFT1(1,INDXS)
- P2 = PSOFT1(2,INDXS)
- P3 = PSOFT1(3,INDXS)
- P4 = PSOFT1(4,INDXS)
- IJSI1(INDXS) = IFL1
- ELSE
- P1 = PSOFT2(1,INDXS)
- P2 = PSOFT2(2,INDXS)
- P3 = PSOFT2(3,INDXS)
- P4 = PSOFT2(4,INDXS)
- IJSI2(INDXS) = IFL1
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,IFL1,0,JM1,JM2,P1,P2,P3,P4,
- & IHP,IGEN,ICA1,IVSW,IPOS,1)
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARREM: val.spectator:(IFL,IPOS,INDXS)',
- & IFL1,IPOS,SIGN(INDXS,INDXH)
-
-C
- IF(INDXH.GT.0) THEN
- P1 = PSOFT1(1,INDXS+1)
- P2 = PSOFT1(2,INDXS+1)
- P3 = PSOFT1(3,INDXS+1)
- P4 = PSOFT1(4,INDXS+1)
- IJSI1(INDXS+1) = IFL2
- ELSE
- P1 = PSOFT2(1,INDXS+1)
- P2 = PSOFT2(2,INDXS+1)
- P3 = PSOFT2(3,INDXS+1)
- P4 = PSOFT2(4,INDXS+1)
- IJSI2(INDXS+1) = IFL2
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,IFL2,0,JM1,JM2,P1,P2,P3,P4,
- & IHP,IGEN,ICB1,IVSW,IPOS,1)
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARREM: val.spectator:(IFL,IPOS,INDXS)',
- & IFL2,IPOS,SIGN(INDXS+1,INDXH)
-
- IF(IPAMDL(18).EQ.0) THEN
-C sea quark pair
- CALL PHO_SEAFLA(JM1,IFL1,IFL2,PARMDL(161))
- IF(ICC1.GT.0) THEN
- IFL1 = ABS(IFL1)
- IFL2 = -IFL1
- ELSE
- IFL1 = -ABS(IFL1)
- IFL2 = -IFL1
- ENDIF
- IF(DT_RNDM(P4).LT.0.5D0) THEN
- ICB1 = ICC2
- CALL PHO_SELCOL(ICC1,0,ICA1,ICA2,ICC1,ICC2,2)
- ELSE
- ICA1 = ICC1
- CALL PHO_SELCOL(ICC2,0,ICB1,ICB2,ICC1,ICC2,2)
- ENDIF
- IF(INDXH.GT.0) THEN
- P1 = PSOFT1(1,INDXS+2)
- P2 = PSOFT1(2,INDXS+2)
- P3 = PSOFT1(3,INDXS+2)
- P4 = PSOFT1(4,INDXS+2)
- IJSI1(INDXS+2) = IFL1
- ELSE
- P1 = PSOFT2(1,INDXS+2)
- P2 = PSOFT2(2,INDXS+2)
- P3 = PSOFT2(3,INDXS+2)
- P4 = PSOFT2(4,INDXS+2)
- IJSI2(INDXS+2) = IFL1
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,IFL1,0,JM1,JM2,P1,P2,P3,P4,
- & IHP,IGEN,ICA1,0,IPOS,1)
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARREM: sea spectator:(IFL,IPOS,INDXS)',
- & IFL1,IPOS,SIGN(INDXS+2,INDXH)
-
-C
- IF(INDXH.GT.0) THEN
- P1 = PSOFT1(1,INDXS+3)
- P2 = PSOFT1(2,INDXS+3)
- P3 = PSOFT1(3,INDXS+3)
- P4 = PSOFT1(4,INDXS+3)
- IJSI1(INDXS+3) = IFL2
- ELSE
- P1 = PSOFT2(1,INDXS+3)
- P2 = PSOFT2(2,INDXS+3)
- P3 = PSOFT2(3,INDXS+3)
- P4 = PSOFT2(4,INDXS+3)
- IJSI2(INDXS+3) = IFL2
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,IFL2,0,JM1,JM2,P1,P2,P3,P4,
- & IHP,IGEN,ICB1,0,IPOS,1)
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARREM: sea spectator:(IFL,IPOS,INDXS)',
- & IFL2,IPOS,SIGN(INDXS+3,INDXH)
-
- IUSED = 4
- ELSE
- IUSED = 2
- ENDIF
-C
-C gluon from independent sea quarks
- ELSE IF(IVAL.EQ.-1) THEN
- IF(IPAMDL(18).EQ.0) THEN
- CALL PHO_SELCOL(0,0,ICA1,ICA2,ICB1,ICB2,1)
- CALL PHO_SEAFLA(JM1,IFL1,IFL2,PARMDL(161))
- IF(((ABS(IFL1).LE.6).AND.(IFL1.LT.0))
- & .OR.((ABS(IFL1).GT.6).AND.(IFL1.GT.0))) THEN
- I = ICA1
- ICA1 = ICB1
- ICB1 = I
- ENDIF
- IF(DT_RNDM(P1).LT.0.5D0) THEN
- CALL PHO_SELCOL(ICA1,ICA2,ICA1,ICA2,ICC1,ICC2,2)
- ELSE
- CALL PHO_SELCOL(ICB1,ICB2,ICB1,ICB2,ICC1,ICC2,2)
- ENDIF
-C remainder of hadron
- IF(INDXH.GT.0) THEN
- P1 = PSOFT1(1,INDXS)
- P2 = PSOFT1(2,INDXS)
- P3 = PSOFT1(3,INDXS)
- P4 = PSOFT1(4,INDXS)
- IJSI1(INDXS) = IFL1
- ELSE
- P1 = PSOFT2(1,INDXS)
- P2 = PSOFT2(2,INDXS)
- P3 = PSOFT2(3,INDXS)
- P4 = PSOFT2(4,INDXS)
- IJSI2(INDXS) = IFL1
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,IFL1,0,JM1,JM2,P1,P2,P3,P4,
- & IHP,IGEN,ICA1,ICA2,IPOS,1)
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARREM: sea spectator:(IFL,IPOS,INDXS)',
- & IFL1,IPOS,SIGN(INDXS,INDXH)
-
-C remnant of sea
- IF(INDXH.GT.0) THEN
- P1 = PSOFT1(1,INDXS-1)
- P2 = PSOFT1(2,INDXS-1)
- P3 = PSOFT1(3,INDXS-1)
- P4 = PSOFT1(4,INDXS-1)
- IJSI1(INDXS-1) = IFL2
- ELSE
- P1 = PSOFT2(1,INDXS-1)
- P2 = PSOFT2(2,INDXS-1)
- P3 = PSOFT2(3,INDXS-1)
- P4 = PSOFT2(4,INDXS-1)
- IJSI2(INDXS-1) = IFL2
- ENDIF
-C registration
- CALL PHO_REGPAR(-1,IFL2,0,JM1,JM2,P1,P2,P3,P4,
- & IHP,IGEN,ICB1,ICB2,IPOS,1)
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARREM: sea spectator:(IFL,IPOS,INDXS)',
- & IFL2,IPOS,SIGN(INDXS-1,INDXH)
-
- IUSED = 2
- ELSE
- CALL PHO_SELCOL(0,0,ICC1,ICA2,ICC2,ICB2,1)
- IF(IDEB(28).GE.20) WRITE(LO,'(1X,A,I5)')
- & 'PHO_HARREM: no spectator added:(INDXS)',
- & SIGN(INDXS,INDXH)
- IUSED = 0
- ENDIF
-C
- ELSE
- WRITE(LO,'(1X,A,2I5)')
- & 'PHO_HARREM:ERROR: unsupported combination of IVAL,IJH',
- & IVAL,IJH
- CALL PHO_ABORT
- ENDIF
- IC1 = ICC1
- IC2 = ICC2
- ENDIF
- END
-
-CDECK ID>, PHO_HARDIR
- SUBROUTINE PHO_HARDIR(II,IVAL1,IVAL2,MSPAR1,MSPAR2,MHPAR1,MHPAR2,
- & IREJ)
-C**********************************************************************
-C
-C parton orientated formulation of direct scattering processes
-C
-C input:
-C
-C output: II particle combination (1..4)
-C IVAL1,2 0 no valence quarks engaged
-C 1 valence quarks engaged
-C MSPAR1,2 number of realized soft partons
-C MHPAR1,2 number of realized hard partons
-C IREJ 1 failure
-C 0 success
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C hard scattering parameters used for most recent hard interaction
- INTEGER NFbeta,NF
- DOUBLE PRECISION ALQCD2,BQCD
- COMMON /POHAPA/ ALQCD2(3,4),BQCD(4),NFbeta,NF
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-C light-cone x fractions and c.m. momenta of soft cut string ends
- INTEGER MAXSOF
- PARAMETER ( MAXSOF = 50 )
- INTEGER IJSI2,IJSI1
- DOUBLE PRECISION XS1,XS2,PSOFT1,PSOFT2
- COMMON /POSOFT/ XS1(MAXSOF),XS2(MAXSOF),
- & PSOFT1(4,MAXSOF),PSOFT2(4,MAXSOF),
- & IJSI1(MAXSOF),IJSI2(MAXSOF)
-C hard scattering data
- INTEGER MSCAHD
- PARAMETER ( MSCAHD = 50 )
- INTEGER LSCAHD,LSC1HD,LSIDX,
- & NINHD,N0INHD,NIVAL,N0IVAL,NOUTHD,NBRAHD,NPROHD
- DOUBLE PRECISION PPH,PTHD,ETAHD,Q2SCA,PDFVA,XHD,VHD,X0HD
- COMMON /POHSLT/ LSCAHD,LSC1HD,LSIDX(MSCAHD),
- & PPH(8*MSCAHD,2),PTHD(MSCAHD),ETAHD(MSCAHD,2),
- & Q2SCA(MSCAHD,2),PDFVA(MSCAHD,2),
- & XHD(MSCAHD,2),VHD(MSCAHD),X0HD(MSCAHD,2),
- & NINHD(MSCAHD,2),N0INHD(MSCAHD,2),
- & NIVAL(MSCAHD,2),N0IVAL(MSCAHD,2),
- & NOUTHD(MSCAHD,2),NBRAHD(MSCAHD,2),NPROHD(MSCAHD)
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-
- DIMENSION P1(4),P2(4),PD1(-6:6)
-
- PARAMETER ( TINY = 1.D-10 )
-
- ITRY = 0
- NTRY = 10
- LSC1HD = 0
- LSIDX(1) = 1
-
-C check phase space
- IF(ECMP.LT.(2.D0*PTWANT+0.1D0)) THEN
- IFAIL(18) = IFAIL(18)+1
- IREJ = 50
- RETURN
- ENDIF
-
- AS = (PARMDL(160+II)/ECMP)**2
- AH = (2.D0*PTWANT/ECMP)**2
-
- ALNS = LOG(AS)
- ALNH = LOG(AH)
-
- XMAX = MAX(TINY,1.D0-AS)
- Z1MAX = LOG(XMAX)
- Z1DIF = Z1MAX-ALNH
-C
-C main loop to select hard and soft parton kinematics
-C -----------------------------------------------------
- 120 CONTINUE
- IREJ = 0
- ITRY = ITRY+1
- LSC1HD = LSC1HD+1
- IF(ITRY.GT.1) THEN
- IFAIL(17) = IFAIL(17)+1
- IF(ITRY.GE.NTRY) THEN
- IREJ = 1
- GOTO 450
- ENDIF
- ENDIF
- LINE = 0
- LSCAHD = 0
- XSS1 = 0.D0
- XSS2 = 0.D0
- MSPAR1 = 0
- MSPAR2 = 0
-
-C select hard V,X
- CALL PHO_HARSCA(1,II)
- XSS1 = XSS1+X1
- XSS2 = XSS2+X2
-C debug output
- IF(IDEB(25).GE.20) THEN
- WRITE(LO,'(1X,A,2E12.4,2I5)')
- & 'PHO_HARDIR: AS,XMAX,process ID,ITRY',
- & AS,XMAX,MSPR,ITRY
- WRITE(LO,'(1X,A,4E12.4)') 'HARD X1,2 SUM X1,2',
- & X1,X2,XSS1,XSS2
- ENDIF
-
- IF(MSPR.LE.11) THEN
- IF((XSS2.GT.XMAX).OR.((1.D0-XSS2).LT.AS)) GOTO 120
- ELSE IF(MSPR.LE.13) THEN
- IF((XSS1.GT.XMAX).OR.((1.D0-XSS1).LT.AS)) GOTO 120
- ENDIF
-
-C fill /POHSLT/
- LSCAHD = 1
- LSIDX(1) = 1
- XHD(1,1) = X1
- XHD(1,2) = X2
- X0HD(1,1) = X1
- X0HD(1,2) = X2
- VHD(1) = V
- ETAHD(1,1) = ETAC
- ETAHD(1,2) = ETAD
- PTHD(1) = PT
- Q2SCA(1,1) = QQPD
- Q2SCA(1,2) = QQPD
- NPROHD(1) = MSPR
- NBRAHD(1,1)= IDPDG1
- NBRAHD(1,2)= IDPDG2
- DO 45 I=1,4
- PPH(I,1) = PHI1(I)
- PPH(I,2) = PHI2(I)
- PPH(4+I,1) = PHO1(I)
- PPH(4+I,2) = PHO2(I)
- 45 CONTINUE
-C valence quarks
- IVAL1 = IV1
- IVAL2 = IV2
- PDFVA(1,1) = 0.D0
- PDFVA(1,2) = 0.D0
-C parton flavours
- IF(MSPR.LE.11) THEN
- NINHD(1,1) = IDPDG1
- NINHD(1,2) = IB
- PDFVA(1,2) = PDF2(IB)
- KHDIR = 1
- ELSE IF(MSPR.LE.13) THEN
- NINHD(1,1) = IA
- PDFVA(1,1) = PDF1(IA)
- NINHD(1,2) = IDPDG2
- KHDIR = 2
- ELSE
- NINHD(1,1) = IDPDG1
- NINHD(1,2) = IDPDG2
- KHDIR = 3
- ENDIF
- N0INHD(1,1) = NINHD(1,1)
- N0INHD(1,2) = NINHD(1,2)
- N0IVAL(1,1) = IVAL1
- N0IVAL(1,2) = IVAL2
- NOUTHD(1,1) = IC
- NOUTHD(1,2) = ID
-
-C reweight according to photon virtuality
- IF(MSPR.NE.14) THEN
- IF(IPAMDL(115).GE.1) THEN
- WGX = 1.D0
- IF(((MSPR.EQ.10).OR.(MSPR.EQ.11)).AND.(IDPDG2.EQ.22)) THEN
- QQPD = Q2SCA(1,2)
- IF(IPAMDL(115).EQ.1) THEN
- IF(QQPD.LT.(PVIRTP(2)+PARMDL(144))) THEN
- WGX = 0.D0
- ELSE
- WGX = LOG(QQPD/(PVIRTP(2)+PARMDL(144)))
- & /LOG(QQPD/PARMDL(144))
- ENDIF
- IF(NINHD(1,2).EQ.0) WGX = WGX*WGX
- ELSE IF(IPAMDL(115).EQ.2) THEN
- CALL PHO_PDF(2,X2,QQPD,PVIRTP(2),PD1)
- WGX = PD1(IB)/PDFVA(1,2)
- ENDIF
- ELSE IF(((MSPR.EQ.12).OR.(MSPR.EQ.13))
- & .AND.(IDPDG1.EQ.22)) THEN
- QQPD = Q2SCA(1,1)
- IF(IPAMDL(115).EQ.1) THEN
- IF(QQPD.LT.(PVIRTP(1)+PARMDL(144))) THEN
- WGX = 0.D0
- ELSE
- WGX = LOG(QQPD/(PVIRTP(1)+PARMDL(144)))
- & /LOG(QQPD/PARMDL(144))
- ENDIF
- IF(NINHD(1,1).EQ.0) WGX = WGX*WGX
- ELSE IF(IPAMDL(115).EQ.2) THEN
- CALL PHO_PDF(1,X1,QQPD,PVIRTP(1),PD1)
- WGX = PD1(IA)/PDFVA(1,1)
- ENDIF
- ENDIF
-
- IF(IDEB(25).GE.25)
- & WRITE(LO,'(1X,2A,/5X,I10,I3,1P6E10.3)') 'PHO_HARDIR: ',
- & 're-weight with (EVE, MSPR, X1/2, Q2, PV1/2, W1/W2)',
- & KEVENT,MSPR,X1,X2,QQPD,PVIRTP,WGX
-
- IF(WGX.LT.DT_RNDM(WGX)) THEN
- IREJ = 50
- RETURN
- ENDIF
-
- IF(WGX.GT.1.01D0)
- & WRITE(LO,'(1X,2A,/5X,I10,I3,1P6E10.3)') 'PHO_HARDIR: ',
- & 're-weight >1 (EVE, MSPR, X1/2, Q2, PV1/2, W1/W2)',
- & KEVENT,MSPR,X1,X2,QQPD,PVIRTP,WGX
-
- ENDIF
- ENDIF
-
-C generate ISR
- IF((MSPR.NE.14).AND.(ISWMDL(8).GE.2)) THEN
- IF(IPAMDL(109).EQ.1) THEN
- Q2H = PARMDL(93)*PT**2
- ELSE
- Q2H = -PARMDL(93)*VHD(1)*XHD(1,1)*XHD(1,2)*ECMP*ECMP
- ENDIF
- XHMAX1 = 1.D0 - XSS1 - AS + XHD(1,1)
- XHMAX2 = 1.D0 - XSS2 - AS + XHD(1,2)
- DO 42 J=1,4
- P1(J) = PPH(4+J,1)
- P2(J) = PPH(4+J,2)
- 42 CONTINUE
- CALL PHO_HARISR(-1,P1,P2,NOUTHD(1,1),NOUTHD(1,2),N0INHD(1,1),
- & N0INHD(1,2),N0IVAL(1,1),N0IVAL(1,2),Q2H,X0HD(1,1),X0HD(1,2),
- & XHMAX1,XHMAX2,IFL1,IFL2,IVAL1,IVAL2,XISR1,XISR2,IREJ)
- XSS1 = XSS1+XISR1-XHD(1,1)
- XSS2 = XSS2+XISR2-XHD(1,2)
- NINHD(1,1) = IFL1
- NINHD(1,2) = IFL2
- XHD(1,1) = XISR1
- XHD(1,2) = XISR2
- ELSE
- IFL1 = NINHD(1,1)
- IFL2 = NINHD(1,2)
- ENDIF
- NIVAL(1,1) = IVAL1
- NIVAL(1,2) = IVAL2
-
-C add photon/hadron remnant
-
-C incoming gluon
- IF(IFL2.EQ.0) THEN
- XMAXX = 1.D0 - XSS2 - AS
- XMAXH = MIN(XMAXX,PARMDL(44))
- CALL PHO_HADSP2(IDBAM2,XSS2,XMAXH,XS2,IREJ)
- IVAL2 = 1
- MSPAR1 = 0
- MSPAR2 = 2
- MHPAR1 = 1
- MHPAR2 = 1
- ELSE IF(IFL1.EQ.0) THEN
- XMAXX = 1.D0 - XSS1 - AS
- XMAXH = MIN(XMAXX,PARMDL(44))
- CALL PHO_HADSP2(IDBAM1,XSS1,XMAXH,XS1,IREJ)
- IVAL1 = 1
- MSPAR1 = 2
- MSPAR2 = 0
- MHPAR1 = 1
- MHPAR2 = 1
-
-C incoming quark
- ELSE IF(ABS(IFL2).LE.12) THEN
- IF(IVAL2.EQ.1) THEN
- XS2(1) = 1.D0 - XSS2
- MSPAR1 = 0
- MSPAR2 = 1
- MHPAR1 = 1
- MHPAR2 = 1
- ELSE
- XMAXX = 1.D0 - XSS2 - AS
- XMAXH = MIN(XMAXX,PARMDL(44))
- CALL PHO_HADSP3(IDBAM2,XSS2,XMAXH,XS2,IREJ)
- MSPAR1 = 0
- MSPAR2 = 3
- MHPAR1 = 1
- MHPAR2 = 1
- ENDIF
- ELSE IF(ABS(IFL1).LE.12) THEN
- IF(IVAL1.EQ.1) THEN
- XS1(1) = 1.D0 - XSS1
- MSPAR1 = 1
- MSPAR2 = 0
- MHPAR1 = 1
- MHPAR2 = 1
- ELSE
- XMAXX = 1.D0 - XSS1 - AS
- XMAXH = MIN(XMAXX,PARMDL(44))
- CALL PHO_HADSP3(IDBAM1,XSS1,XMAXH,XS1,IREJ)
- MSPAR1 = 3
- MSPAR2 = 0
- MHPAR1 = 1
- MHPAR2 = 1
- ENDIF
-
-C double direct process
- ELSE IF(MSPR.EQ.14) THEN
- MSPAR1 = 0
- MSPAR2 = 0
- MHPAR1 = 1
- MHPAR2 = 1
-
-C unknown process
- ELSE
- WRITE(LO,'(/1X,A,I3/)')
- & 'PHO_HARDIR:ERROR: unsupported hard process (MSPR)',MSPR
- CALL PHO_ABORT
- ENDIF
-
- IF(IREJ.NE.0) THEN
- IF(IDEB(25).GE.3) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARDIR: int. rejection (MSPR,ITRY,NTRY)',MSPR,ITRY,NTRY
- GOTO 120
- ENDIF
-
-C soft particle momenta
- IF(MSPAR1.GT.0) THEN
- DO 50 I=1,MSPAR1
- PSOFT1(1,I) = 0.D0
- PSOFT1(2,I) = 0.D0
- PSOFT1(3,I) = XS1(I)*ECMP/2.D0
- PSOFT1(4,I) = XS1(I)*ECMP/2.D0
- 50 CONTINUE
- ENDIF
- IF(MSPAR2.GT.0) THEN
- DO 55 I=1,MSPAR2
- PSOFT2(1,I) = 0.D0
- PSOFT2(2,I) = 0.D0
- PSOFT2(3,I) = -XS2(I)*ECMP/2.D0
- PSOFT2(4,I) = XS2(I)*ECMP/2.D0
- 55 CONTINUE
- ENDIF
-C process counting
- MH_acc_1(MSPR,II) = MH_acc_1(MSPR,II)+1
- KSOFT = MAX(MSPAR1,MSPAR2)
- KHARD = MAX(MHPAR1,MHPAR2)
-C debug output
- IF(IDEB(25).GE.10) THEN
- WRITE(LO,'(/1X,A,2I3,3I5)')
- & 'PHO_HARDIR: accepted IVAL1,IVAL2,MSPR,ITRY,NTRY',
- & IVAL1,IVAL2,MSPR,ITRY,NTRY
- IF(MSPAR1.GT.0) THEN
- WRITE(LO,'(5X,A,I4)') 'soft x particle 1:',MSPAR1
- DO 105 I=1,MSPAR1
- WRITE(LO,'(10X,I3,E12.3)') I,XS1(I)
- 105 CONTINUE
- ENDIF
- IF(MSPAR2.GT.0) THEN
- WRITE(LO,'(5X,A,I4)') 'soft x particle 2:',MSPAR2
- DO 106 I=1,MSPAR2
- WRITE(LO,'(10X,I3,E12.3)') I,XS2(I)
- 106 CONTINUE
- ENDIF
- WRITE(LO,'(5X,A,I4)') 'ini.hard X/flavor particle 1:',MHPAR1
- WRITE(LO,'(10X,I3,E12.3,I8)') 1,XHD(1,1),NINHD(1,1)
- WRITE(LO,'(5X,A,I4)') 'fin.hard momenta particle 1:',MHPAR1
- WRITE(LO,'(10X,I3,4E12.3,I8)') 1,(PPH(K,1),K=5,8),NOUTHD(1,1)
- WRITE(LO,'(5X,A,I4)') 'ini.hard X/flavour particle 2:',MHPAR2
- WRITE(LO,'(10X,I3,E12.3,I8)') 1,XHD(1,2),NINHD(1,2)
- WRITE(LO,'(5X,A,I4)') 'fin.hard momenta particle 2:',MHPAR2
- WRITE(LO,'(10X,I3,4E12.3,I8)') 1,(PPH(K,2),K=5,8),NOUTHD(1,2)
- ENDIF
- RETURN
-
- 450 CONTINUE
- IFAIL(16) = IFAIL(16)+1
- IF(IDEB(25).GE.2) THEN
- WRITE(LO,'(1X,A,3I5)')
- & 'PHO_HARDIR: rejection (ITRY,NTRY,IREJ)',ITRY,NTRY,IREJ
- WRITE(LO,'(5X,A,E12.4)') 'available energy:',ECMP
- IF(IDEB(25).GE.5) THEN
- CALL PHO_PREVNT(0)
- ELSE
- CALL PHO_PREVNT(-1)
- ENDIF
- ENDIF
-
- END
-
-CDECK ID>, PHO_POMSCA
- SUBROUTINE PHO_POMSCA(II,MSPOM,MHPOM,MSREG,IVAL1,IVAL2,
- & MSPAR1,MSPAR2,MHPAR1,MHPAR2,IREJ)
-C**********************************************************************
-C
-C parton orientated formulation of soft and hard inelastic events
-C
-C
-C input: II particle combiantion (1..4)
-C MSPOM number of soft pomerons
-C MHPOM number of semihard pomerons
-C MSREG number of soft reggeons
-C
-C output: IVAL1,2 0 no valence quark engaged
-C otherwise: position of valence quark engaged
-C neg.number: gluon connected to valence quark
-C by color flow
-C MSPAR1,2 number of realized soft partons
-C MHPAR1,2 number of realized hard partons
-C IREJ 1 failure
-C 0 success
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER (TINY = 1.D-30 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-C hard scattering parameters used for most recent hard interaction
- INTEGER NFbeta,NF
- DOUBLE PRECISION ALQCD2,BQCD
- COMMON /POHAPA/ ALQCD2(3,4),BQCD(4),NFbeta,NF
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C some hadron information, will be deleted in future versions
- INTEGER NFS
- DOUBLE PRECISION QMASS,BET,PCOUDI,PNORM,VALPRG
- COMMON /POHDRN/ QMASS(6),BET,PCOUDI,PNORM,VALPRG(2),NFS
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-C light-cone x fractions and c.m. momenta of soft cut string ends
- INTEGER MAXSOF
- PARAMETER ( MAXSOF = 50 )
- INTEGER IJSI2,IJSI1
- DOUBLE PRECISION XS1,XS2,PSOFT1,PSOFT2
- COMMON /POSOFT/ XS1(MAXSOF),XS2(MAXSOF),
- & PSOFT1(4,MAXSOF),PSOFT2(4,MAXSOF),
- & IJSI1(MAXSOF),IJSI2(MAXSOF)
-C hard scattering data
- INTEGER MSCAHD
- PARAMETER ( MSCAHD = 50 )
- INTEGER LSCAHD,LSC1HD,LSIDX,
- & NINHD,N0INHD,NIVAL,N0IVAL,NOUTHD,NBRAHD,NPROHD
- DOUBLE PRECISION PPH,PTHD,ETAHD,Q2SCA,PDFVA,XHD,VHD,X0HD
- COMMON /POHSLT/ LSCAHD,LSC1HD,LSIDX(MSCAHD),
- & PPH(8*MSCAHD,2),PTHD(MSCAHD),ETAHD(MSCAHD,2),
- & Q2SCA(MSCAHD,2),PDFVA(MSCAHD,2),
- & XHD(MSCAHD,2),VHD(MSCAHD),X0HD(MSCAHD,2),
- & NINHD(MSCAHD,2),N0INHD(MSCAHD,2),
- & NIVAL(MSCAHD,2),N0IVAL(MSCAHD,2),
- & NOUTHD(MSCAHD,2),NBRAHD(MSCAHD,2),NPROHD(MSCAHD)
-C table of particle indices for recursive PHOJET calls
- INTEGER MAXIPX
- PARAMETER ( MAXIPX = 100 )
- INTEGER IPOPOS,IPORES,IPOIX1,IPOIX2,IPOIX3
- COMMON /PORECU/ IPOPOS(2,MAXIPX),IPORES(MAXIPX),
- & IPOIX1,IPOIX2,IPOIX3
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-
- DIMENSION P1(4),P2(4),PD1(-6:6)
-
- IF(IDEB(24).GT.20) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_POMSCA: MSPOM,MHPOM,MSREG',MSPOM,MHPOM,MSREG
-
- ITRY = 0
- NTRY = 10
- IREJ = 0
- INMAX = 10
- MHARD = MHPOM
-
-C phase space limitation (single hard valence-valence quark scattering)
- IF(MHPOM.GT.0) THEN
- Emin = 2.D0*PTWANT + 0.2D0
- IF(ECMP.LT.Emin) THEN
- IF(IDEB(24).GE.1) WRITE(LO,'(1X,A,1P,3E10.3)') 'PHO_POMSCA: ',
- & 'kin. rejection (1) (Ecm,Ptcut,Emin)',ECMP,PTWANT,Emin
- IREJ = 50
- IFAIL(6) = IFAIL(6) + 1
- RETURN
- ENDIF
- ENDIF
-
- SAS = PARMDL(160+II)/ECMP
- SAH = 2.D0*PTWANT/ECMP
- AS = SAS**2
- AH = SAH**2
-
-C save energy for leading particle effect
- XMAXP1 = 1.D0
- if(IHFLS(1).ne.0) XMAXP1 = 1.D0-PARMDL(165)*XPSUB
- XMAXP2 = 1.D0
- if(IHFLS(2).ne.0) XMAXP2 = 1.D0-PARMDL(165)*XTSUB
-
-C
-C main loop to select hard and soft parton kinematics
-C -----------------------------------------------------
- IFAIL(31) = IFAIL(31)+MHARD
- 20 CONTINUE
- IREJ = 0
- IHARD = 0
- LSC1HD = 0
- ITRY = ITRY+1
- IF(ITRY.GT.1) IFAIL(5) = IFAIL(5)+1
- IF(ITRY.GE.NTRY) THEN
- IREJ = 1
- GOTO 450
- ENDIF
- LINE = 0
- LSCAHD = 0
- IF((IPAMDL(13).GT.0).AND.(IPOIX3.EQ.0).AND.(IPROCE.EQ.1)) THEN
- XSS1 = MAX(0.D0,1.D0-XPSUB)
- XSS2 = MAX(0.D0,1.D0-XTSUB)
- ELSE
- XSS1 = 0.D0
- XSS2 = 0.D0
- ENDIF
- 22 continue
-
-C partons needed to construct soft/hard interactions
- MSPAR1 = 2*MSPOM+MSREG+MHPOM
- MSPAR2 = MSPAR1
- MHPAR1 = MHPOM
- MHPAR2 = MHPOM
-
-C number of strings
- MSCHA = 2*MSPOM+MSREG
- MHCHA = 2*MHPOM
-
- KSOFT = MSCHA
- KHARD = MHCHA
-
-C check actual phase space limit
- XX = SAS*DBLE(MSCHA)+SAH*DBLE(MHCHA)/2.D0
- IF(XX.GE.1.D0) THEN
- IF(IDEB(24).GE.3) WRITE(LO,'(1X,2A,/1X,4I3,1P4E12.4)')
- & 'PHO_POMSCA: internal kin. rejection ',
- & '(MSpom,MHpom,MSchain,MHchain,Ecm,AS,AH,XX):',
- & MSPOM,MHPOM,MSCHA,MHCHA,ECMP,AS,AH,XX
- if(MSPOM+MSREG+MHPOM.gt.1) then
- if(MSREG.gt.0) then
- MSREG = MSREG-1
- else if(MSPOM.gt.0) THEN
- MSPOM = MSPOM-1
- else if(MHPOM.gt.1) then
- MHPOM = MHPOM-1
- endif
- goto 22
- endif
- IF(IDEB(24).GE.1) WRITE(LO,'(1X,A,1P2E10.3)')
- & 'PHO_POMSCA: kin. rejection (2) (Ecm,Ptcut)',ECMP,PTWANT
- IREJ = 50
- IFAIL(6) = IFAIL(6) + 1
- RETURN
- ENDIF
-
- XMAXX1 = MAX(TINY,1.D0-MIN(MSPAR1,1)*AS-MIN(MHPAR1,1)*AH)
- XMAXX2 = MAX(TINY,1.D0-MIN(MSPAR2,1)*AS-MIN(MHPAR2,1)*AH)
-
-C very low energy phase space restriction
- if(MHARD.gt.0) then
- if((XMAXX1*XMAXX2.le.AH)) then
- IF(IDEB(24).GE.1) WRITE(LO,'(1X,A,1P2E10.3)')
- & 'PHO_POMSCA: kin. rejection (3) (Ecm,Ptcut)',ECMP,PTWANT
- IREJ = 50
- IFAIL(6) = IFAIL(6) + 1
- RETURN
- endif
- endif
-
- AS = MAX(AS,PSOMIN/PCMP)
- ALNS = LOG(AS)
- ALNH = LOG(AH)
- Z1MAX = LOG(XMAXX1)
- Z2MAX = LOG(XMAXX2)
- Z1DIF = Z1MAX+Z2MAX-ALNH
- Z2DIF = Z1DIF
- PTMAX = 0.D0
-C
-C select hard parton momenta
-C ------------------- begin of inner loop -------------------
- IF(IPOIX3.EQ.0) IPOWGC(4+II) = 0
-
- IF(MHARD.GT.MSCAHD) THEN
- WRITE(LO,'(1X,2A,2I3)') 'PHO_POMSCA: ',
- & 'no space left in /POHSLT/ (MHARD,MSCAHD):',MHARD,MSCAHD
- IREJ = 1
- RETURN
- ENDIF
-
- DO 11 NN=1,MHARD
-C
-C generate one resolved hard scattering
-C
-C high-pt option
- IF((NN.EQ.1).AND.(II.EQ.1).AND.(HSWCUT(4+II).GT.PTWANT)) THEN
- CALL PHO_HARINT(-1,ECMP,PVIRTP(1),PVIRTP(2),
- & -1,Max_pro_2,1,4,MSPOM+MHPOM)
- XSCUT = HSig(9)
- AHS = AH
- ALNHS = ALNH
- Z1DIFS = Z1DIF
- Z2DIFS = Z2DIF
- AH = (2.D0*PTWANT/ECMP)**2
- ALNH = LOG(AH)
- Z1DIF = Z1MAX+Z2MAX-ALNH
- Z2DIF = Z1DIF
- IF((Z1DIF.LE.0.01D0).OR.(Z2DIF.LE.0.01D0)) THEN
- IF(IDEB(24).GE.1) WRITE(LO,'(1X,2A,/1X,1P4E12.3)')
- & 'PHO_POMSCA: kin.rejection, high-pt option ',
- & '(Z1/2max,ALNH,Z1dif):',Z1MAX,Z2MAX,ALNH,Z1DIF
- IREJ = 5
- RETURN
- ENDIF
- CALL PHO_HARSCA(2,II)
- CALL PHO_HARINT(1,ECMP,PVIRTP(1),PVIRTP(2),
- & -1,Max_pro_2,1,4,MSPOM+MHPOM)
- AH = AHS
- ALNH = ALNHS
- Z1DIF = Z1DIFS
- Z2DIF = Z2DIFS
- IPOWGC(4+II) = IPOWGC(4+II)+1
- HSWGHT(4+II) = XSCUT/HSig(9)*DBLE(MHARD)
-C minimum bias option
- ELSE
- CALL PHO_HARSCA(2,II)
- ENDIF
-
-C fill /POHSLT/
- LSIDX(NN) = NN
- LSCAHD = NN
- XHD(NN,1) = X1
- XHD(NN,2) = X2
- X0HD(NN,1) = X1
- X0HD(NN,2) = X2
- VHD(NN) = V
- ETAHD(NN,1) = ETAC
- ETAHD(NN,2) = ETAD
- PTHD(NN) = PT
- NPROHD(NN) = MSPR
- Q2SCA(NN,1) = QQPD
- Q2SCA(NN,2) = QQPD
- PDFVA(NN,1) = PDF1(IA)
- PDFVA(NN,2) = PDF2(IB)
- NINHD(NN,1) = IA
- NINHD(NN,2) = IB
- N0INHD(NN,1) = IA
- N0INHD(NN,2) = IB
- NIVAL(NN,1) = IV1
- NIVAL(NN,2) = IV2
- N0IVAL(NN,1) = IV1
- N0IVAL(NN,2) = IV2
- NOUTHD(NN,1) = IC
- NOUTHD(NN,2) = ID
- NBRAHD(NN,1) = IDPDG1
- NBRAHD(NN,2) = IDPDG2
- I3 = 8*(NN-1)
- I4 = 8*(NN-1)+4
- DO 50 I=1,4
- PPH(I3+I,1) = PHI1(I)
- PPH(I3+I,2) = PHI2(I)
- PPH(I4+I,1) = PHO1(I)
- PPH(I4+I,2) = PHO2(I)
- 50 CONTINUE
-
- 11 CONTINUE
-
-C sort according to pt-hat
- DO 12 NN=1,MHARD
- PTMX = PTHD(LSIDX(NN))
- IPTM = NN
- DO 13 I=NN+1,MHARD
- IF(PTHD(LSIDX(I)).GT.PTMX) THEN
- IPTM = I
- PTMX = PTHD(LSIDX(I))
- ENDIF
- 13 CONTINUE
- IF(IPTM.NE.NN) CALL PHO_SWAPI(LSIDX(NN),LSIDX(IPTM))
- 12 CONTINUE
- IPTM = LSIDX(1)
-
-C copy partons, generate ISR
- DO 15 L=1,MHARD
- NN = LSIDX(L)
- XSSS1 = XSS1+XHD(NN,1)
- XSSS2 = XSS2+XHD(NN,2)
-C debug output
- IF(IDEB(24).GE.10) WRITE(LO,'(1X,A,3I4,1P,3E11.3)')
- & 'PHO_POMSCA: NR,LSIDX,MSPR,X1,X2,PT',
- & L,NN,NPROHD(NN),XHD(NN,1),XHD(NN,2),PTHD(NN)
-C check phase space
- IF( (XSSS1.GT.XMAXX1)
- & .OR.(XSSS2.GT.XMAXX2)
- & .OR.((1.D0-XSSS1)*(1.D0-XSSS2).LT.AS) ) THEN
- IF(IHARD.EQ.0) THEN
- IF(ISWMDL(2).NE.1) GOTO 20
- MHPOM = 0
- MSPOM = 1
- MSREG = 0
- ENDIF
- GOTO 199
- ENDIF
-
-C reweight according to photon virtuality
- IF(IPAMDL(115).GE.1) THEN
- QQPD = Q2SCA(NN,1)
- WGX = 1.D0
- IF(IDPDG1.EQ.22) THEN
- IF(IPAMDL(115).EQ.1) THEN
- IF(QQPD.LT.PVIRTP(1)+PARMDL(144)) THEN
- WG1 = 0.D0
- ELSE
- WG1 = LOG(QQPD/(PVIRTP(1)+PARMDL(144)))
- & /LOG(QQPD/PARMDL(144))
- ENDIF
- IF(NINHD(NN,1).EQ.0) WG1 = WG1*WG1
- ELSE IF(IPAMDL(115).EQ.2) THEN
- CALL PHO_PDF(1,X0HD(NN,1),QQPD,PVIRTP(1),PD1)
- WG1 = PD1(NINHD(NN,1))/PDFVA(NN,1)
- ENDIF
- WGX = WG1
- ENDIF
- QQPD = Q2SCA(NN,2)
- IF(IDPDG2.EQ.22) THEN
- IF(IPAMDL(115).EQ.1) THEN
- IF(QQPD.LT.PVIRTP(2)+PARMDL(144)) THEN
- WG1 = 0.D0
- ELSE
- WG1 = LOG(QQPD/(PVIRTP(2)+PARMDL(144)))
- & /LOG(QQPD/PARMDL(144))
- ENDIF
- IF(NINHD(NN,2).EQ.0) WG1 = WG1*WG1
- ELSE IF(IPAMDL(115).EQ.2) THEN
- CALL PHO_PDF(2,X0HD(NN,2),QQPD,PVIRTP(2),PD1)
- WG1 = PD1(NINHD(NN,2))/PDFVA(NN,2)
- ENDIF
- WGX = WGX*WG1
- ENDIF
-
- IF(IDEB(24).GE.25)
- & WRITE(LO,'(1X,2A,/5X,I10,I3,1P6E10.3)') 'PHO_POMSCA: ',
- & ' re-weight with (EVE, MSPR, X1/2, Q2, PV1/2, W1/W2)',
- & KEVENT,MSPR,X0HD(NN,1),X0HD(NN,2),QQPD,PVIRTP,WGX
-
- IF(WGX.LT.DT_RNDM(WGX)) THEN
- IF(L.EQ.1) THEN
- IREJ = 50
- RETURN
- ELSE
- GOTO 199
- ENDIF
- ENDIF
-
- IF(WGX.GT.1.D0) WRITE(LO,'(1X,2A,/5X,I10,I3,1P6E10.3)')
- & 'PHO_POMSCA: ',
- & 'weight >1 (EVE, MSPR, X1/2, Q2, PV1/2, W1/W2)',
- & KEVENT,MSPR,X0HD(NN,1),X0HD(NN,2),QQPD,PVIRTP,WGX
-
- ENDIF
-
-C generate ISR
- IF((ISWMDL(8).GE.2)
- & .AND.((IPAMDL(101).NE.1).OR.(L.EQ.1))) THEN
- IF(IPAMDL(109).EQ.1) THEN
- Q2H = PARMDL(93)*PTHD(NN)**2
- ELSE
- Q2H = -PARMDL(93)*VHD(NN)
- & *XHD(NN,1)*XHD(NN,2)*ECMP*ECMP
- ENDIF
- XHMAX1 = 1.D0 - XSSS1 - MSCHA*AS + XHD(NN,1)
- XHMAX2 = 1.D0 - XSSS2 - MSCHA*AS + XHD(NN,2)
- I3 = 8*NN-4
- DO 42 J=1,4
- P1(J) = PPH(I3+J,1)
- P2(J) = PPH(I3+J,2)
- 42 CONTINUE
- IF(IDEB(24).GE.10)
- & WRITE(LO,'(1X,A,/5X,2I3,1P,3E12.4)')
- & 'PHO_POMSCA: generate ISR for (L,NN,X1,X2,Q2H)',
- & L,NN,XHD(NN,1),XHD(NN,2),Q2H
- J = NN
- IF(L.EQ.1) J = -NN
- CALL PHO_HARISR(J,P1,P2,NOUTHD(NN,1),NOUTHD(NN,2),
- & N0INHD(NN,1),N0INHD(NN,2),N0IVAL(NN,1),N0IVAL(NN,2),Q2H,
- & X0HD(NN,1),X0HD(NN,2),XHMAX1,XHMAX2,IFL1,IFL2,
- & NIVAL(NN,1),NIVAL(NN,2),XISR1,XISR2,IREJ)
- XSSS1 = XSSS1+XISR1-XHD(NN,1)
- XSSS2 = XSSS2+XISR2-XHD(NN,2)
- NINHD(NN,1) = IFL1
- NINHD(NN,2) = IFL2
- XHD(NN,1) = XISR1
- XHD(NN,2) = XISR2
- ENDIF
-
-C check phase space
- IF( (XSSS1.GT.XMAXX1)
- & .OR.(XSSS2.GT.XMAXX2)
- & .OR.((1.D0-XSSS1)*(1.D0-XSSS2).LT.AS) ) THEN
- IF(IHARD.EQ.0) THEN
- IF(ISWMDL(2).NE.1) GOTO 20
- MHPOM = 0
- MSPOM = 1
- MSREG = 0
- ENDIF
- GOTO 199
- ENDIF
-
-C leave energy for leading particle effect
- IF((IHARD.GT.0).AND.
- & ((XSSS1.GT.XMAXP1).OR.(XSSS2.GT.XMAXP2))) then
- GOTO 199
- endif
-
-C hard scattering accepted
- IHARD = IHARD+1
- XSS1 = XSSS1
- XSS2 = XSSS2
- IFAIL(31) = IFAIL(31)-1
-
- 15 CONTINUE
-
-C ------------------- end of inner (hard) loop -------------------
- 199 CONTINUE
-
- MHPOM = IHARD
- MHPAR1 = IHARD
- MHPAR2 = IHARD
-
-C count valences involved in hard scattering
- IVAL1 = 0
- IVAL2 = 0
- DO 17 L=1,IHARD
- NN = LSIDX(L)
- IF((NIVAL(NN,1).NE.0).AND.(IVAL1.EQ.0)) IVAL1 = NN
- IF((NIVAL(NN,2).NE.0).AND.(IVAL2.EQ.0)) IVAL2 = NN
- 17 CONTINUE
-
- IQUA1 = 0
- IQUA2 = 0
- IVGLU1 = 0
- IVGLU2 = 0
- DO 18 L=1,IHARD
- NN = LSIDX(L)
-
-C photon, pomeron valences
- IF((IVAL1.EQ.0).AND.(NINHD(NN,1).NE.0)) THEN
- IF((IDPDG1.EQ.22).OR.(IDPDG1.EQ.990)) THEN
- NIVAL(NN,1) = 1
- IVAL1 = NN
- ENDIF
- ENDIF
- IF((IVAL2.EQ.0).AND.(NINHD(NN,2).NE.0)) THEN
- IF((IDPDG2.EQ.22).OR.(IDPDG2.EQ.990)) THEN
- NIVAL(NN,2) = 1
- IVAL2 = NN
- ENDIF
- ENDIF
-
-C total number of quarks
- IF(NINHD(NN,1).NE.0) THEN
- IQUA1 = IQUA1+1
- ELSE IF(IVGLU1.EQ.0) THEN
- IVGLU1 = NN
- ENDIF
- IF(NINHD(NN,2).NE.0) THEN
- IQUA2 = IQUA2+1
- ELSE IF(IVGLU2.EQ.0) THEN
- IVGLU2 = NN
- ENDIF
- 18 CONTINUE
-
-C gluons emitted by valence quarks
- VALPRO = 1.D0
- IF(II.EQ.1) VALPRO = VALPRG(1)
- IVQ1 = 1
- IVG1 = 0
- IVAL1 = MAX(IVAL1,0)
- IF(IVAL1.EQ.0) THEN
- IVQ1 = 0
- IF((IVGLU1.NE.0).AND.(DT_RNDM(XSS1).LT.VALPRO)) THEN
- IVAL1 = -IVGLU1
- IVG1 = 1
- ENDIF
- ENDIF
- VALPRO = 1.D0
- IF(II.EQ.1) VALPRO = VALPRG(2)
- IVQ2 = 1
- IVG2 = 0
- IVAL2 = MAX(IVAL2,0)
- IF(IVAL2.EQ.0) THEN
- IVQ2 = 0
- IF((IVGLU2.NE.0).AND.(DT_RNDM(XSS2).LT.VALPRO)) THEN
- IVAL2 = -IVGLU2
- IVG2 = 1
- ENDIF
- ENDIF
- MSPOM = MAX(0,MSPOM-IQUA1-IQUA2)
-C debug output
- IF(IDEB(24).GE.5) WRITE(LO,'(1X,A,6I4)')
- & 'PHO_POMSCA: IVAL1/2,IQUA1/2,IVGLU1/2',
- & IVAL1,IVAL2,IQUA1,IQUA2,IVGLU1,IVGLU2
-
-C select soft X values
- 25 CONTINUE
-C number of soft/remnant quarks
- IF(MSPOM.EQ.0) THEN
- IF(IPAMDL(18).EQ.0) THEN
- MSPAR1 = 2+2*MHPOM+MSREG-IQUA1-2*IVQ1-2*IVG1
- MSPAR2 = 2+2*MHPOM+MSREG-IQUA2-2*IVQ2-2*IVG2
- ELSE
- MSPAR1 = 2+MSREG+IQUA1-2*IVQ1
- MSPAR2 = 2+MSREG+IQUA2-2*IVQ2
- ENDIF
- ELSE
- IF(IPAMDL(18).EQ.0) THEN
- MSPAR1 = 2*MSPOM+MSREG+2*MHPOM-IQUA1
- MSPAR2 = 2*MSPOM+MSREG+2*MHPOM-IQUA2
- ELSE
- MSPAR1 = 2*MSPOM+MSREG+IQUA1+2*IVG1
- MSPAR2 = 2*MSPOM+MSREG+IQUA2+2*IVG2
- ENDIF
- ENDIF
-C debug output
- IF(IDEB(24).GE.15) WRITE(LO,'(1X,A,9I3)')
- & 'PHO_POMSCA: MSP,MSR,MHP,IVQ1/2,IVG1/2,MSPAR1/2',
- & MSPOM,MSREG,MHPOM,IVQ1,IVQ2,IVG1,IVG2,MSPAR1,MSPAR2
-
- XMAX1 = 1.D0 - MAX(MSPAR1-1,0)*AS - XSS1
- XMAX2 = 1.D0 - MAX(MSPAR2-1,0)*AS - XSS2
- I1 = IVQ1
- I2 = IVQ2
- IF(IVAL1.LE.0) I1 = 0
- IF(IVAL2.LE.0) I2 = 0
- IF((IVQ1+IVG1)*(IVQ2+IVG2).NE.0) THEN
- MSDIFF = 2*MSPOM
- ELSE
- MSDIFF = 2*MAX(0,MSPOM-1)
- ENDIF
- MSG1 = MSPAR1
- MSG2 = MSPAR2
- MSM1 = MSPAR1-MSDIFF
- MSM2 = MSPAR2-MSDIFF
- XMAXH1 = MIN(XMAX1,PARMDL(44))
- XMAXH2 = MIN(XMAX2,PARMDL(44))
- CALL PHO_SOFTXX(NPOSP(1),NPOSP(2),MSG1,MSG2,I1,I2,MSM1,MSM2,
- & XSS1,XSS2,XMAXH1,XMAXH2,XS1,XS2,IREJ)
-
-C correct for proper simulation of high pt tail
- IF(IREJ.NE.0) THEN
- IF(IDEB(48).GE.2) WRITE(LO,'(1X,A,4I4)')
- & 'PHO_STDPAR: rejection (PHO_SOFTXX): MSPOM,MHPOM,I1,I2',
- & MSPOM,MHPOM,I1,I2
- IF(MSPOM*MHPOM.GT.0) THEN
- MSPOM = MSPOM-1
- GOTO 25
- ELSE IF(MSPOM.GT.1) THEN
- MSPOM = MSPOM-1
- GOTO 25
- ELSE IF(MHPOM.GT.1) THEN
- IHARD = IHARD-1
- IF((IPAMDL(13).GT.0).AND.(IPOIX3.EQ.0)
- & .AND.(IPROCE.EQ.1)) THEN
- XSS1 = MAX(0.D0,1.D0-XPSUB)
- XSS2 = MAX(0.D0,1.D0-XTSUB)
- ELSE
- XSS1 = 0.D0
- XSS2 = 0.D0
- ENDIF
- DO 103 K=1,IHARD
- I = LSIDX(K)
- XSS1 = XSS1+ XHD(I,1)
- XSS2 = XSS2+ XHD(I,2)
- 103 CONTINUE
- GOTO 199
- ENDIF
- IREJ = 4
- GOTO 450
- ENDIF
-C accepted
- MSPOM = MSPOM-(MSPAR1-MSG1)/2
- MSPAR1 = MSG1
- MSPAR2 = MSG2
-C ------------ kinematics sampled ---------------
-C debug output
- IF(IDEB(24).GE.10) THEN
- WRITE(LO,'(1X,A,I3)')
- & 'PHO_POMSCA: soft x values, ITRY',ITRY
- DO 104 I=2,MAX(MSPAR1,MSPAR2)
- WRITE(LO,'(10X,I3,2E12.3)') I,XS1(I),XS2(I)
- 104 CONTINUE
- ENDIF
- IF((1.D0-XSS1)*(1.D0-XSS2).LT.AS) GOTO 20
-
-C end of loop
- XS1(1) = 1.D0 - XSS1
- XS2(1) = 1.D0 - XSS2
-
-C process counting
- DO 30 N=1,LSCAHD
- MH_acc_1(NPROHD(N),II) = MH_acc_1(NPROHD(N),II)+1
- 30 CONTINUE
-
-C soft particle momenta
-
- IF(MAX(MSPAR1,MSPAR2).GT.MAXSOF) THEN
- WRITE(LO,'(1X,2A,3I4)') 'PHO_POMSCA: no space left in ',
- & '/POSOFT/ (MSPAR1/2,MAXSOF):',MSPAR1,MSPAR2,MAXSOF
- IREJ = 1
- RETURN
- ENDIF
-
- DO 55 I=1,MSPAR1
- PSOFT1(1,I) = 0.D0
- PSOFT1(2,I) = 0.D0
- PSOFT1(3,I) = XS1(I)*ECMP/2.D0
- PSOFT1(4,I) = XS1(I)*ECMP/2.D0
- 55 CONTINUE
- DO 60 I=1,MSPAR2
- PSOFT2(1,I) = 0.D0
- PSOFT2(2,I) = 0.D0
- PSOFT2(3,I) = -XS2(I)*ECMP/2.D0
- PSOFT2(4,I) = XS2(I)*ECMP/2.D0
- 60 CONTINUE
-
- KSOFT = MAX(MSPAR1,MSPAR2)
- KHARD = MAX(MHPAR1,MHPAR2)
- KSPOM = MSPOM
- KSREG = MSREG
- KHPOM = MHPOM
-
-C debug output
- IF(IDEB(24).GE.10) THEN
- WRITE(LO,'(/1X,A,2I3,2I5)')
- & 'PHO_POMSCA: accepted IVAL1,IVAL2,ITRY,NTRY',
- & IVAL1,IVAL2,ITRY,NTRY
- IF(MSPAR1+MSPAR2.GT.0) THEN
- WRITE(LO,'(5X,A)') 'soft x particle1 particle2:'
- XTMP1 = 0.D0
- XTMP2 = 0.D0
- DO 105 I=1,MAX(MSPAR1,MSPAR2)
- IF(I.LE.MIN(MSPAR1,MSPAR2)) THEN
- WRITE(LO,'(10X,I3,2E13.4)') I,XS1(I),XS2(I)
- XTMP1 = XTMP1+XS1(I)
- XTMP2 = XTMP2+XS2(I)
- ELSE IF(I.LE.MSPAR1) THEN
- WRITE(LO,'(10X,I3,2E13.4)') I,XS1(I),0.D0
- XTMP1 = XTMP1+XS1(I)
- ELSE IF(I.LE.MSPAR2) THEN
- WRITE(LO,'(10X,I3,2E13.4)') I,0.D0,XS2(I)
- XTMP2 = XTMP2+XS2(I)
- ENDIF
- 105 CONTINUE
- WRITE(LO,'(5X,A,2E13.4)') 'sum X1/2 (soft):',XTMP1,XTMP2
- ENDIF
- IF(MHPAR1.GT.0) THEN
- WRITE(LO,'(5X,A)')
- & 'NR IDX MSPR hard X / hard X ISR / flavor particle 1,2:'
- DO 107 K=1,MHPAR1
- I = LSIDX(K)
- WRITE(LO,'(5X,3I3,4E12.3,2I3)')
- & K,I,NPROHD(I),X0HD(I,1),X0HD(I,2),XHD(I,1),XHD(I,2),
- & NINHD(I,1),NINHD(I,2)
- XTMP1 = XTMP1+XHD(I,1)
- XTMP2 = XTMP2+XHD(I,2)
- 107 CONTINUE
- WRITE(LO,'(1X,A,2E13.4)') 'sum X1/2 (soft+hard):',XTMP1,XTMP2
- WRITE(LO,'(5X,A)') 'hard momenta particle1:'
- DO 108 K=1,MHPAR1
- I = LSIDX(K)
- I3 = 8*I-4
- WRITE(LO,'(5X,2I3,1P,4E12.3,I5)') K,I,(PPH(I3+L,1),L=1,4),
- & NOUTHD(I,1)
- 108 CONTINUE
- WRITE(LO,'(5X,A)') 'hard momenta particle2:'
- DO 110 K=1,MHPAR2
- I = LSIDX(K)
- I3 = 8*I-4
- WRITE(LO,'(5X,2I3,1P,4E12.3,I5)') K,I,(PPH(I3+L,2),L=1,4),
- & NOUTHD(I,2)
- 110 CONTINUE
- ENDIF
- ENDIF
- RETURN
-
-C event rejected, print debug information
- 450 CONTINUE
- IFAIL(4) = IFAIL(4)+1
- IF(IDEB(24).GE.2) THEN
- WRITE(LO,'(1X,2A,/,10X,7I5)') 'PHO_POMSCA: ',
- & 'rejection (MSPOM,MHPOM,IHARD,MHARD,ITRY,NTRY,IREJ)',
- & MSPOM,MHPOM,IHARD,MHARD,ITRY,NTRY,IREJ
- WRITE(LO,'(5X,A,I4,1P,2E12.4)') 'IP,Ecm,PTcut:',II,ECMP,PTWANT
- IF(IDEB(24).GE.5) THEN
- CALL PHO_PREVNT(0)
- ELSE
- CALL PHO_PREVNT(-1)
- ENDIF
- ENDIF
-
- END
-
-CDECK ID>, PHO_HARX12
- SUBROUTINE PHO_HARX12
-C**********************************************************************
-C
-C selection of x1 and x2 according to 1/x1*1/x2
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( TINY= 1.D-30, TINY6=1.D-06)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-
-10 CONTINUE
- Z1 = Z1MAX-DT_RNDM(X1)*Z1DIF
- Z2 = Z2MAX-DT_RNDM(X2)*Z2DIF
- IF ( (Z1+Z2).LT.ALNH ) GOTO 10
- X1 = EXP(Z1)
- X2 = EXP(Z2)
- AXX = AH/(X1*X2)
- W = SQRT(MAX(TINY,1.D0-AXX))
- W1 = AXX/(1.D0+W)
-
- END
-
-CDECK ID>, PHO_HARDX1
- SUBROUTINE PHO_HARDX1
-C**********************************************************************
-C
-C selection of x1 according to 1/x1
-C ( x2 = 1 )
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( TINY= 1.D-30, TINY6=1.D-06)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-
- Z1 = Z1MAX-DT_RNDM(X1)*Z1DIF
- X2 = 1.D0
- X1 = EXP(Z1)
- AXX = AH/X1
- W = SQRT(MAX(TINY,1.D0-AXX))
- W1 = AXX/(1.D0+W)
-
- END
-
-CDECK ID>, PHO_HARKIN
- SUBROUTINE PHO_HARKIN(IREJ)
-C***********************************************************************
-C
-C selection of kinematic variables
-C (resolved and direct processes)
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( TINY= 1.D-30, TINYP=1.D-14 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-C internal cross check information on hard scattering limits
- DOUBLE PRECISION ETAMI,ETAMA,XXMI,XXMA
- COMMON /POHLIM/ ETAMI(2,15),ETAMA(2,15),XXMI(2,15),XXMA(2,15)
-
- PARAMETER ( Max_pro_2 = 16 )
- DIMENSION RM(-1:Max_pro_2)
- DATA RM / 3.31D0, 0.0D0,
- & 7.60D0, 0.65D0, 4.00D0, 0.65D0, 0.89D0,
- & 0.45D0, 0.89D0, 0.89D0, 0.0D0, 4.776D0,
- & 0.615D0,4.776D0,0.615D0,1.0D0, 0.0D0,
- & 1.0D0 /
-
- IREJ = 0
- M = MSPR
-
-C------------- resolved processes -----------
- IF ( M.EQ.1 ) THEN
-10 CALL PHO_HARX12
- V =-0.5D0*W1/(W1+DT_RNDM(X1)*W)
- U =-1.D0-V
- R = (1.D0+W)*2.25D0*(V*V*(3.D0-U*V-V/(U*U))-U)
- IF(R*W.GT.RM(M)) WRITE(LO,'(1X,A,I3)')
- & 'PHO_HARKIN:weight error',M
- IF ( R*W.LT.RM(1)*DT_RNDM(X2) ) GOTO 10
- IF ( DT_RNDM(V).LE.0.5D0 ) V = U
- ELSEIF ( M.EQ.2 .OR. M.EQ.4 ) THEN
-20 CALL PHO_HARX12
- WL = LOG(W1)
- V =-EXP(-0.6931472D0+DT_RNDM(X1)*WL)
- U =-1.D0-V
- R = (U*U+V*V)*((16.D0/27.D0)/U-(4.D0/3.D0)*V)*(WL/W)*AXX
- IF(R*W.GT.RM(M)) WRITE(LO,'(1X,A,I3)')
- & 'PHO_HARKIN:weight error',M
- IF ( R*W.LT.RM(M)*DT_RNDM(X2) ) GOTO 20
- IF ( DT_RNDM(V).LE.0.5D0 ) V = U
- ELSEIF ( M.EQ.3 ) THEN
-30 CALL PHO_HARX12
- V =-0.5D0*W1/(W1+DT_RNDM(X1)*W)
- U =-1.D0-V
- R = (1.D0+W)*(1.D0+U*U)*(1.D0-(4.D0/9.D0)*V*V/U)
- IF(R*W.GT.RM(M)) WRITE(LO,'(1X,A,I3)')
- & 'PHO_HARKIN:weight error',M
- IF ( R*W.LT.RM(3)*DT_RNDM(X2) ) GOTO 30
- ELSEIF ( M.EQ.5 ) THEN
-50 CALL PHO_HARX12
- V =-0.5D0*AXX/(W1+2.D0*DT_RNDM(X1)*W)
- U =-1.D0-V
- R = (4.D0/9.D0)*(1.D0+U*U+V*V*(U*U+V*V))-(8.D0/27.D0)*U*U*V
- IF(R*W.GT.RM(M)) WRITE(LO,'(1X,A,I3)')
- & 'PHO_HARKIN:weight error',M
- IF ( R*W.LT.RM(5)*DT_RNDM(X2) ) GOTO 50
- ELSEIF ( M.EQ.6 ) THEN
-60 CALL PHO_HARX12
- V =-0.5D0*(1.D0+W)+DT_RNDM(X1)*W
- U =-1.D0-V
- R = (4.D0/9.D0)*(U*U+V*V)*AXX
- IF(R*W.GT.RM(M)) WRITE(LO,'(1X,A,I3)')
- & 'PHO_HARKIN:weight error',M
- IF ( R*W.LT.RM(6)*DT_RNDM(V) ) GOTO 60
- ELSEIF ( M.EQ.7 ) THEN
-70 CALL PHO_HARX12
- V =-0.5D0*W1/(W1+DT_RNDM(X1)*W)
- U =-1.D0-V
- R = (1.D0+W)*((2.D0/9.D0)*(1.D0+U*U+(1.D0+V*V)*V*V/(U*U))
- & -(4.D0/27.D0)*V/U)
- IF(R*W.GT.RM(M)) WRITE(LO,'(1X,A,I3)')
- & 'PHO_HARKIN:weight error',M
- IF ( R*W.LT.RM(7)*DT_RNDM(X2) ) GOTO 70
- IF ( DT_RNDM(V).LE.0.5D0 ) V = U
- ELSEIF ( M.EQ.8 ) THEN
-80 CALL PHO_HARX12
- V =-0.5D0*AXX/(W1+2.D0*DT_RNDM(X1)*W)
- U =-1.D0-V
- R = (4.D0/9.D0)*(1.D0+U*U)
- IF(R*W.GT.RM(M)) WRITE(LO,'(1X,A,I3)')
- & 'PHO_HARKIN:weight error',M
- IF ( R*W.LT.RM(8)*DT_RNDM(X2) ) GOTO 80
- ELSEIF ( M.EQ.-1 ) THEN
-90 CALL PHO_HARX12
- WL = LOG(W1)
- V =-EXP(-0.6931472D0+DT_RNDM(X1)*WL)
- U =-1.D0-V
- R = (1.D0+V*V)*(V/(U*U)-(4.D0/9.D0))*(WL/W)*AXX
- IF(R*W.GT.RM(M)) WRITE(LO,'(1X,A,I3)')
- & 'PHO_HARKIN:weight error',M
- IF ( R*W.LT.RM(-1)*DT_RNDM(X2) ) GOTO 90
-C------------- direct / single-resolved processes -----------
- ELSEIF ( M.EQ.10 ) THEN
-100 CALL PHO_HARDX1
- WL = LOG(AXX/(1.D0+W)**2)
- U =-(1.D0+W)/2.D0*EXP(DT_RNDM(X1)*WL)
- R = -(8.D0/3.D0)*(U*U+1.D0)*WL*AXX
- IF(R.GT.RM(M)) WRITE(LO,'(1X,A,I3)')
- & 'PHO_HARKIN:weight error',M
- IF ( R.LT.RM(10)*DT_RNDM(U) ) GOTO 100
- V =-1.D0-U
- X2 = X1
- X1 = 1.D0
- ELSEIF ( M.EQ.11) THEN
-110 CALL PHO_HARDX1
- WL = LOG(W1)
- U =-EXP(-0.6931472D0+DT_RNDM(X1)*WL)
- V =-1.D0-U
- R = (U*U+V*V)/V*WL*AXX
- IF(R.GT.RM(M)) WRITE(LO,'(1X,A,I3)')
- & 'PHO_HARKIN:weight error',M
- IF ( R.LT.RM(11)*DT_RNDM(X2) ) GOTO 110
- IF ( DT_RNDM(V).LE.0.5D0 ) V = U
- X2 = X1
- X1 = 1.D0
- ELSEIF ( M.EQ.12 ) THEN
-120 CALL PHO_HARDX1
- WL = LOG(AXX/(1.D0+W)**2)
- V =-(1.D0+W)/2.D0*EXP(DT_RNDM(X1)*WL)
- R = -(8.D0/3.D0)*(V*V+1.D0)*WL*AXX
- IF(R.GT.RM(M)) WRITE(LO,'(1X,A,I3)')
- & 'PHO_HARKIN:weight error',M
- IF ( R.LT.RM(12)*DT_RNDM(V) ) GOTO 120
- ELSEIF ( M.EQ.13) THEN
-130 CALL PHO_HARDX1
- WL = LOG(W1)
- V =-EXP(-0.6931472D0+DT_RNDM(X1)*WL)
- U =-1.D0-V
- R = (U*U+V*V)/U*WL*AXX
- IF(R.GT.RM(M)) WRITE(LO,'(1X,A,I3)')
- & 'PHO_HARKIN:weight error',M
- IF ( R.LT.RM(13)*DT_RNDM(X2) ) GOTO 130
- IF ( DT_RNDM(V).LE.0.5D0 ) V = U
-C------------- (double) direct process -----------
- ELSEIF ((M.EQ.14).OR.(M.EQ.16)) THEN
- X1 = 1.D0
- X2 = 1.D0
- AXX= AH
- W = SQRT(MAX(TINY,1.D0-AXX))
- W1 = AXX/(1.D0+W)
- WL = LOG(W1)
- 140 V =-EXP(-0.6931472D0+DT_RNDM(X1)*WL)
- U =-1.D0-V
- R = -(U*U+V*V)/U
- IF(R.GT.RM(M)) WRITE(LO,'(1X,A,I3)')
- & 'PHO_HARKIN:weight error',M
- IF ( R.LT.RM(14)*DT_RNDM(X2) ) GOTO 140
- IF ( DT_RNDM(V).LE.0.5D0 ) V = U
-C---------------------------------------------
- ELSE
- WRITE(LO,'(/1X,A,I3)')
- & 'PHO_HARKIN:ERROR:unsupported process (MSPR)',MSPR
- CALL PHO_ABORT
- ENDIF
-
- V = MAX(MIN(V,-TINYP ),-1.D0+TINYP)
- U = -1.D0-V
- U = MAX(MIN(U,-TINYP ),-1.D0+TINYP)
- PT = SQRT(U*V*X1*X2)*ECMP
- ETAC = 0.5D0*LOG((U*X1)/(V*X2))
- ETAD = 0.5D0*LOG((V*X1)/(U*X2))
-
-***************************************************************
- MM = M
- IF(M.EQ.-1) MM = 3
- ETAMI(1,MM) = MIN(ETAMI(1,MM),ETAC)
- ETAMA(1,MM) = MAX(ETAMA(1,MM),ETAC)
- ETAMI(2,MM) = MIN(ETAMI(2,MM),ETAD)
- ETAMA(2,MM) = MAX(ETAMA(2,MM),ETAD)
- XXMI(1,MM) = MIN(XXMI(1,MM),X1)
- XXMA(1,MM) = MAX(XXMA(1,MM),X1)
- XXMI(2,MM) = MIN(XXMI(2,MM),X2)
- XXMA(2,MM) = MAX(XXMA(2,MM),X2)
-***************************************************************
-
- IF(IDEB(81).GE.25) WRITE(LO,'(1X,A,/5X,6E12.3)')
- & 'PHO_HARKIN: V,PT,ETAC,ETAD,X1,X2',V,PT,ETAC,ETAD,X1,X2
-
- END
-
-CDECK ID>, PHO_HARWGH
- SUBROUTINE PHO_HARWGH(PDS,PDA,PDB,FDISTR)
-C***********************************************************************
-C
-C calculate product of PDFs and coupling constants
-C according to selected MSPR (process type)
-C
-C input: /POCKIN/
-C
-C output: PDS resulting from PDFs alone
-C FDISTR complete weight function
-C PDA,PDB fields containing the PDFs
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( TINY= 1.D-30, TINY6=1.D-06)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C currently activated parton density parametrizations
- CHARACTER*8 PDFNAM
- INTEGER IPARID,IPAVA,ITYPE,IGRP,ISET,IEXT,NPAOLD
- DOUBLE PRECISION PDFLAM,PDFQ2M
- COMMON /POPPDF/ PDFLAM(2),PDFQ2M(2),PDFNAM(2),IPARID(2),
- & IPAVA(2),ITYPE(2),IGRP(2),ISET(2),IEXT(2),NPAOLD
-C hard scattering parameters used for most recent hard interaction
- INTEGER NFbeta,NF
- DOUBLE PRECISION ALQCD2,BQCD
- COMMON /POHAPA/ ALQCD2(3,4),BQCD(4),NFbeta,NF
-C some hadron information, will be deleted in future versions
- INTEGER NFS
- DOUBLE PRECISION QMASS,BET,PCOUDI,PNORM,VALPRG
- COMMON /POHDRN/ QMASS(6),BET,PCOUDI,PNORM,VALPRG(2),NFS
-C scale parameters for parton model calculations
- INTEGER NQQAL,NQQALI,NQQALF,NQQPD
- DOUBLE PRECISION AQQAL,AQQALI,AQQALF,AQQPD
- COMMON /POHSCL/ AQQAL,AQQALI,AQQALF,AQQPD,
- & NQQAL,NQQALI,NQQALF,NQQPD
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
- DOUBLE PRECISION PHO_ALPHAS,pho_alphae
- DIMENSION PDA(-6:6),PDB(-6:6)
-
- FDISTR = 0.D0
-C set hard scale QQ for alpha and partondistr.
- IF ( NQQAL.EQ.1 ) THEN
- QQAL = AQQAL*PT*PT
- ELSEIF ( NQQAL.EQ.2 ) THEN
- QQAL = AQQAL*X1*X2*ECMP*ECMP*U*V/(1.D0+V*V+U*U)
- ELSEIF ( NQQAL.EQ.3 ) THEN
- QQAL = AQQAL*X1*X2*ECMP*ECMP
- ELSEIF ( NQQAL.EQ.4 ) THEN
- QQAL = AQQAL*X1*X2*ECMP*ECMP*(U*V)**(1.D0/3.D0)
- ENDIF
- IF ( NQQPD.EQ.1 ) THEN
- QQPD = AQQPD*PT*PT
- ELSEIF ( NQQPD.EQ.2 ) THEN
- QQPD = AQQPD*X1*X2*ECMP*ECMP*U*V/(1.D0+V*V+U*U)
- ELSEIF ( NQQPD.EQ.3 ) THEN
- QQPD = AQQPD*X1*X2*ECMP*ECMP
- ELSEIF ( NQQPD.EQ.4 ) THEN
- QQPD = AQQPD*X1*X2*ECMP*ECMP*(U*V)**(1.D0/3.D0)
- ENDIF
-C coupling constants, PDFs
- IF(MSPR.LT.9) THEN
- ALPHA1 = PHO_ALPHAS(QQAL,3)
- ALPHA2 = ALPHA1
- CALL PHO_PDF(1,X1,QQPD,0.D0,PDA)
- CALL PHO_PDF(2,X2,QQPD,0.D0,PDB)
- IF ( MSPR.EQ.1 .OR. MSPR.EQ.4 ) THEN
- PDS = PDA(0)*PDB(0)
- ELSE
- S2 = 0.D0
- S3 = 0.D0
- S4 = 0.D0
- S5 = 0.D0
- DO 10 I=1,NF
- S2 = S2+PDA(I)*PDB(-I)+PDA(-I)*PDB( I)
- S3 = S3+PDA(I)*PDB( I)+PDA(-I)*PDB(-I)
- S4 = S4+PDA(I)+PDA(-I)
- S5 = S5+PDB(I)+PDB(-I)
- 10 CONTINUE
- IF ((MSPR.EQ.2).OR.(MSPR.EQ.5).OR.(MSPR.EQ.6)) THEN
- PDS = S2
- ELSE IF((MSPR.EQ.3).OR.(MSPR.EQ.-1)) THEN
- PDS = PDA(0)*S5+PDB(0)*S4
- ELSE IF(MSPR.EQ.7) THEN
- PDS = S3
- ELSE IF(MSPR.EQ.8) THEN
- PDS = S4*S5-(S2+S3)
- ENDIF
- ENDIF
- ELSE IF(MSPR.LT.12) THEN
- ALPHA2 = PHO_ALPHAS(QQAL,2)
- IF(IDPDG1.EQ.22) THEN
- ALPHA1 = pho_alphae(QQAL)
- ELSE IF(IDPDG1.EQ.990) THEN
- ALPHA1 = PARMDL(74)
- ENDIF
- CALL PHO_PDF(2,X2,QQPD,0.D0,PDB)
- S4 = 0.D0
- S6 = 0.D0
- DO 15 I=1,NF
- S4 = S4+PDB(I)+PDB(-I)
-C charge counting
-* IF(MOD(I,2).EQ.0) THEN
-* S6 = S6+(PDB(I)+PDB(-I))*4.D0/9.D0
-* ELSE
-* S6 = S6+(PDB(I)+PDB(-I))*1.D0/9.D0
-* ENDIF
- S6 = S6+(PDB(I)+PDB(-I))*Q_ch2(I)
- 15 CONTINUE
- IF(MSPR.EQ.10) THEN
- IF(IDPDG1.EQ.990) THEN
- PDS = S4
- ELSE
- PDS = S6
- ENDIF
- ELSE
- PDS = PDB(0)
- ENDIF
- ELSE IF(MSPR.LT.14) THEN
- ALPHA1 = PHO_ALPHAS(QQAL,1)
- IF(IDPDG2.EQ.22) THEN
- ALPHA2 = pho_alphae(QQAL)
- ELSE IF(IDPDG2.EQ.990) THEN
- ALPHA2 = PARMDL(74)
- ENDIF
- CALL PHO_PDF(1,X1,QQPD,0.D0,PDA)
- S4 = 0.D0
- S6 = 0.D0
- DO 20 I=1,NF
- S4 = S4+PDA(I)+PDA(-I)
-C charge counting
-* IF(MOD(I,2).EQ.0) THEN
-* S6 = S6+(PDA(I)+PDA(-I))*4.D0/9.D0
-* ELSE
-* S6 = S6+(PDA(I)+PDA(-I))*1.D0/9.D0
-* ENDIF
- S6 = S6+(PDA(I)+PDA(-I))*Q_ch2(I)
- 20 CONTINUE
- IF(MSPR.EQ.12) THEN
- IF(IDPDG2.EQ.990) THEN
- PDS = S4
- ELSE
- PDS = S6
- ENDIF
- ELSE
- PDS = PDA(0)
- ENDIF
- ELSE IF(MSPR.EQ.14) THEN
- SSR = X1*X2*ECMP*ECMP
- IF(IDPDG1.EQ.22) THEN
- ALPHA1 = pho_alphae(SSR)
- ELSE IF(IDPDG1.EQ.990) THEN
- ALPHA1 = PARMDL(74)
- ENDIF
- IF(IDPDG2.EQ.22) THEN
- ALPHA2 = pho_alphae(SSR)
- ELSE IF(IDPDG2.EQ.990) THEN
- ALPHA2 = PARMDL(74)
- ENDIF
- PDS = 1.D0
- ELSE
- WRITE(LO,'(/1X,A,I4)')
- & 'PHO_HARWGH:ERROR: invalid hard process number (MSPR)',MSPR
- CALL PHO_ABORT
- ENDIF
-
-C complete weight
- FDISTR = HFac(MSPR)*ALPHA1*ALPHA2*PDS
-
-C debug output
- IF(IDEB(15).GE.20) WRITE(LO,'(1X,A,/5X,I3,2I6,4E10.3)')
- & 'PHO_HARWGH: MSPR,ID1,ID2,AL1,AL2,PDS,FDIS',
- & MSPR,IDPDG1,IDPDG2,ALPHA1,ALPHA2,PDS,FDISTR
-
- END
-
-CDECK ID>, PHO_HARSCA
- SUBROUTINE PHO_HARSCA(IMODE,IP)
-C***********************************************************************
-C
-C PHO_HARSCA determines the type of hard subprocess, the partons
-C taking part in this subprocess and the kinematic variables
-C
-C input: IMODE 1 direct processes
-C 2 resolved processes
-C -1 initialization
-C -2 output of statistics
-C IP 1-4 particle combination (hadron/photon)
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER( EPS = 1.D-10,
- & DEPS = 1.D-30 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C hard scattering parameters used for most recent hard interaction
- INTEGER NFbeta,NF
- DOUBLE PRECISION ALQCD2,BQCD
- COMMON /POHAPA/ ALQCD2(3,4),BQCD(4),NFbeta,NF
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C names of hard scattering processes
- INTEGER Max_pro_1
- PARAMETER ( Max_pro_1 = 16 )
- CHARACTER*18 PROC
- COMMON /POHPRO/ PROC(0:Max_pro_1)
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-C hard scattering data
- INTEGER MSCAHD
- PARAMETER ( MSCAHD = 50 )
- INTEGER LSCAHD,LSC1HD,LSIDX,
- & NINHD,N0INHD,NIVAL,N0IVAL,NOUTHD,NBRAHD,NPROHD
- DOUBLE PRECISION PPH,PTHD,ETAHD,Q2SCA,PDFVA,XHD,VHD,X0HD
- COMMON /POHSLT/ LSCAHD,LSC1HD,LSIDX(MSCAHD),
- & PPH(8*MSCAHD,2),PTHD(MSCAHD),ETAHD(MSCAHD,2),
- & Q2SCA(MSCAHD,2),PDFVA(MSCAHD,2),
- & XHD(MSCAHD,2),VHD(MSCAHD),X0HD(MSCAHD,2),
- & NINHD(MSCAHD,2),N0INHD(MSCAHD,2),
- & NIVAL(MSCAHD,2),N0IVAL(MSCAHD,2),
- & NOUTHD(MSCAHD,2),NBRAHD(MSCAHD,2),NPROHD(MSCAHD)
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-C cross sections
- INTEGER IPFIL,IFAFIL,IFBFIL
- DOUBLE PRECISION SIGTOT,SIGELA,SIGVM,SIGINE,SIGNDF,SIGDIR,
- & SIGLSD,SIGHSD,SIGLDD,SIGHDD,SIGCDF,
- & SIGPOM,SIGREG,SIGHAR,SIGTR1,SIGTR2,SIGLOO,
- & SIGDPO,SIG1SO,SIG1HA,SLOEL,SLOVM,SIGCOR,
- & FSUP,FSUD,FSUH,ECMFIL,P2AFIL,P2BFIL
- COMMON /POCSEC/ SIGTOT,SIGELA,SIGVM(0:4,0:4),SIGINE,SIGNDF,SIGDIR,
- & SIGLSD(2),SIGHSD(2),SIGLDD,SIGHDD,SIGCDF(0:4),
- & SIGPOM,SIGREG,SIGHAR,SIGTR1(2),SIGTR2(2),SIGLOO,
- & SIGDPO(4),SIG1SO,SIG1HA,SLOEL,SLOVM(4,4),SIGCOR,
- & FSUP(2),FSUD(2),FSUH(2),ECMFIL,P2AFIL,P2BFIL,
- & IPFIL,IFAFIL,IFBFIL
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
- 111 CONTINUE
-
-C resolved processes
- IF(IMODE.EQ.2) THEN
-
- MH_pro_on(0,IP) = 0
- HWgx(9) = 0.D0
- DO 15 M=-1,8
- IF(MH_pro_on(M,IP).EQ.1) HWgx(9) = HWgx(9)+HWgx(M)
- 15 CONTINUE
- IF(HWgx(9).LT.DEPS) THEN
- WRITE(LO,'(/1X,2A,I4,1P,E12.4)') 'PHO_HARSCA:ERROR: ',
- & 'no resolved process possible for IP',IP,HWgx(9)
- CALL PHO_ABORT
- ENDIF
-C
-C ----------------------------------------------I
-C begin of iteration loop (resolved processes) I
-C I
- IREJSC = 0
- 10 CONTINUE
- IREJSC = IREJSC+1
- IF(IREJSC.GT.1000) THEN
- WRITE(LO,'(/1X,A,I10)')
- & 'PHO_HARSCA:ERROR: too many rejections (resolved)',IREJSC
- CALL PHO_ABORT
- ENDIF
-
-C find subprocess
- B = DT_RNDM(X1)*HWgx(9)
- MSPR =-2
- SUM = 0.D0
- 20 MSPR = MSPR+1
- IF ( MH_pro_on(MSPR,IP).EQ.1 ) SUM = SUM+HWgx(MSPR)
- IF ( SUM.LT.B .AND. MSPR.LT.8 ) GOTO 20
-
- IF(IDEB(78).GE.20) WRITE(LO,'(1x,a,i3,i6)')
- & 'PHO_HARSCA: resolved process (MSPR,IREJSC)',MSPR,IREJSC
-
-C find kin. variables X1,X2 and V
- CALL PHO_HARKIN(IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(29) = IFAIL(29)+1
- GOTO 10
- ENDIF
-C calculate remaining distribution
- CALL PHO_HARWGH(PDS,PDF1,PDF2,F)
-C actualize counter for cross-section calculation
- if(F.LE.1.D-15) then
- F = 0.D0
- goto 10
- endif
-* XSECT(5,MSPR) = XSECT(5,MSPR)+F
-* XSECT(6,MSPR) = XSECT(6,MSPR)+F*F
- MH_tried(MSPR,IP) = MH_tried(MSPR,IP)+1
-C check F against FMAX
- WEIGHT = F/(HWgx(MSPR)+DEPS)
- IF ( WEIGHT.LT.DT_RNDM(X2) ) GOTO 10
-C-------------------------------------------------------------------
- IF(WEIGHT.GT.1.D0) THEN
- WRITE(LO,1234) MSPR,IP,IDPDG1,IDPDG2,F,HWgx(MSPR),WEIGHT
- 1234 FORMAT(/,' PHO_HARSCA: (resolved) W>1 (MSPR,IP,ID1,2)',
- & 2I3,2I7,/' F,HWgx(MSPR),W',3E12.4)
- WRITE(LO,'(1X,A,5E11.3)') 'ECM,PTWANT,AS,AH,PT',
- & ECMP,PTWANT,AS,AH,PT
- WRITE(LO,'(1X,A,5E11.3)') 'ETAC,ETAD,X1,X2,V',
- & ETAC,ETAD,X1,X2,V
- CALL PHO_PREVNT(-1)
- ENDIF
-C-------------------------------------------------------------------
-C I
-C end of iteration loop (resolved processes) I
-C --------------------------------------------I
-C
-C*********************************************************************
-C
-C direct processes
-
- ELSE IF(IMODE.EQ.1) THEN
-
-C single-resolved processes kinematically forbidden
- if(Z1DIF.lt.0.D0) then
- HWgx(10) = 0.D0
- HWgx(11) = 0.D0
- HWgx(12) = 0.D0
- HWgx(13) = 0.D0
- endif
-
- HWgx(15) = 0.D0
- if((IPAMDL(115).eq.0).and.(IP.eq.1)) then
- DO M= 10,14
- IF(MH_pro_on(M,IP).EQ.1) then
- if((M.eq.10).or.(M.eq.11)) then
- fac = FSUH(1)*FSUP(2)
- else if((M.eq.12).or.(M.eq.13)) then
- fac = FSUP(1)*FSUH(2)
- else
- fac = FSUH(1)*FSUH(2)
- endif
- HWgx(15) = HWgx(15)+HWgx(M)*fac
- endif
- ENDDO
- else
- DO M= 10,14
- IF(MH_pro_on(M,IP).EQ.1) HWgx(15)=HWgx(15)+HWgx(M)
- ENDDO
- endif
- IF(HWgx(15).LT.DEPS) THEN
- WRITE(LO,'(/1X,2A,I4)') 'PHO_HARSCA:ERROR: ',
- & 'no direct/single-resolved process possible (IP)',IP
- CALL PHO_ABORT
- ENDIF
-C
-C ----------------------------------------------I
-C begin of iteration loop (direct processes) I
-C I
- IREJSC = 0
- 100 CONTINUE
- IREJSC = IREJSC+1
- IF(IREJSC.GT.1000) THEN
- WRITE(LO,'(/1X,A,I10)')
- & 'PHO_HARSCA:ERROR: too many rejections (direct)',IREJSC
- CALL PHO_ABORT
- ENDIF
-
-C find subprocess
- B = DT_RNDM(X1)*HWgx(15)
- MSPR = 9
- SUM = 0.D0
- if((IPAMDL(115).eq.0).and.(IP.eq.1)) then
- 150 continue
- MSPR = MSPR+1
- IF(MH_pro_on(MSPR,IP).EQ.1) then
- if((MSPR.eq.10).or.(MSPR.eq.11)) then
- fac = FSUH(1)*FSUP(2)
- else if((MSPR.eq.12).or.(MSPR.eq.13)) then
- fac = FSUP(1)*FSUH(2)
- else
- fac = FSUH(1)*FSUH(2)
- endif
- SUM = SUM+HWgx(MSPR)*fac
- endif
- IF ( SUM.LT.B .AND. MSPR.LT.14 ) GOTO 150
- else
- 200 continue
- MSPR = MSPR+1
- IF(MH_pro_on(MSPR,IP).EQ.1) SUM = SUM+HWgx(MSPR)
- IF ( SUM.LT.B .AND. MSPR.LT.14 ) GOTO 200
- endif
-
- IF(IDEB(78).GE.20) WRITE(LO,'(1x,a,i3,i6)')
- & 'PHO_HARSCA: direct process (MSPR,IREJSC)',MSPR,IREJSC
-
-C find kin. variables X1,X2 and V
- CALL PHO_HARKIN(IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(28) = IFAIL(28)+1
- GOTO 100
- ENDIF
-
-C calculate remaining distribution
- CALL PHO_HARWGH(PDS,PDF1,PDF2,F)
-
-C counter for cross-section calculation
- if(F.LE.1.D-15) then
- F=0.D0
- goto 100
- endif
-* XSECT(5,MSPR) = XSECT(5,MSPR)+F
-* XSECT(6,MSPR) = XSECT(6,MSPR)+F*F
- MH_tried(MSPR,IP) = MH_tried(MSPR,IP)+1
-C check F against FMAX
- WEIGHT = F/(HWgx(MSPR)+DEPS)
- IF(WEIGHT.LT.DT_RNDM(X2)) GOTO 100
-C-------------------------------------------------------------------
- IF(WEIGHT.GT.1.D0) THEN
- WRITE(LO,1235) MSPR,IP,IDPDG1,IDPDG2,F,HWgx(MSPR),WEIGHT
- 1235 FORMAT(/,' PHO_HARSCA: (direct) W>1 (MSPR,IP,ID1,2)',
- & 2I3,2I7,/,' F,HWgx(MSPR),W',3E12.4)
- WRITE(LO,'(1X,A,5E11.3)') 'ECM,PTWANT,AS,AH,PT',
- & ECMP,PTWANT,AS,AH,PT
- WRITE(LO,'(1X,A,5E11.3)') 'ETAC,ETAD,X1,X2,V',
- & ETAC,ETAD,X1,X2,V
- CALL PHO_PREVNT(-1)
- ENDIF
-C-------------------------------------------------------------------
-C I
-C end of iteration loop (direct processes) I
-C --------------------------------------------I
-
- ELSE IF(IMODE.EQ.-1) THEN
-
-C initialize cross section calculations
-
- DO 40 M=-1,Max_pro_2
-* DO 30 I=5,6
-* XSECT(I,M) = 0.D0
-*30 CONTINUE
-C reset counters
- DO 35 J=1,4
- MH_tried(M,J) = 0
- MH_acc_1(M,J) = 0
- MH_acc_2(M,J) = 0
- 35 CONTINUE
- 40 CONTINUE
- IF(IDEB(78).GE.0) THEN
-C *** Commented by Chiara
-C WRITE(LO,'(/1X,A,/1X,A)')
-C & 'PHO_HARSCA: activated hard processes',
-C & '------------------------------------'
-C WRITE(LO,'(5X,A)') 'PROCESS, IP= 1 ... 4 (on/off)'
- DO 42 M=1,Max_pro_2
-C WRITE(LO,'(1X,I3,5X,A,4I3)') M,PROC(M),
-C & (MH_pro_on(M,J),J=1,4)
- 42 CONTINUE
- ENDIF
- RETURN
-
- ELSE IF(IMODE.EQ.-2) THEN
-
-C calculation of process statistics
-
- do K=1,4
-
- MH_tried(0,K) = 0
- MH_acc_1(0,K) = 0
- MH_acc_2(0,K) = 0
- MH_tried(9,K) = 0
- MH_acc_1(9,K) = 0
- MH_acc_2(9,K) = 0
- MH_tried(15,K) = 0
- MH_acc_1(15,K) = 0
- MH_acc_2(15,K) = 0
-
- MH_tried(3,K) = MH_tried(3,K)+MH_tried(-1,K)
- MH_acc_1(3,K) = MH_acc_1(3,K)+MH_acc_1(-1,K)
- MH_acc_2(3,K) = MH_acc_2(3,K)+MH_acc_2(-1,K)
-
- do M=1,8
- MH_tried(9,K) = MH_tried(9,K)+MH_tried(M,K)
- MH_acc_1(9,K) = MH_acc_1(9,K)+MH_acc_1(M,K)
- MH_acc_2(9,K) = MH_acc_2(9,K)+MH_acc_2(M,K)
- enddo
- do M=10,14
- MH_tried(15,K) = MH_tried(15,K)+MH_tried(M,K)
- MH_acc_1(15,K) = MH_acc_1(15,K)+MH_acc_1(M,K)
- MH_acc_2(15,K) = MH_acc_2(15,K)+MH_acc_2(M,K)
- enddo
- MH_tried(0,K) = MH_tried(9,K)+MH_tried(15,K)
- MH_acc_1(0,K) = MH_acc_1(9,K)+MH_acc_1(15,K)
- MH_acc_2(0,K) = MH_acc_2(9,K)+MH_acc_2(15,K)
- enddo
-
- IF(IDEB(78).GE.1) THEN
- WRITE(LO,'(/1X,A,/1X,A)')
- & 'PHO_HARSCA: internal rejection statistics',
- & '-----------------------------------------'
- do K=1,4
- IF(MH_tried(0,K).GT.0) THEN
- WRITE(LO,'(5X,A,I3)')
- & 'process (sampled/accepted) for IP:',K
- do M=0,Max_pro_2
- WRITE(LO,'(1X,I3,1X,A,2X,3I12,F10.4)') M,PROC(M),
- & MH_tried(M,K),MH_acc_1(M,K),MH_acc_2(K,K),
- & dble(MH_acc_1(M,K))/dble(max(1,MH_tried(M,K)))
- enddo
- ENDIF
- enddo
- ENDIF
- RETURN
-
- ELSE
- WRITE(LO,'(/1X,2A,I10)') 'PHO_HARSCA:ERROR: ',
- & 'unsupported mode',IMODE
- CALL PHO_ABORT
- ENDIF
-
-C the event is accepted now
-C actualize counter for accepted events
- MH_acc_1(MSPR,IP) = MH_acc_1(MSPR,IP)+1
- IF(MSPR.EQ.-1) MSPR = 3
-C
-C find flavor of initial partons
-C
- SUM = 0.D0
- SCHECK = DT_RNDM(SUM)*PDS-EPS
- IF ( MSPR.EQ.1 .OR. MSPR.EQ.4 ) THEN
- IA = 0
- IB = 0
- ELSEIF ( MSPR.EQ.2 .OR. MSPR.EQ.5 .OR. MSPR.EQ.6 ) THEN
- DO 610 IA=-NF,NF
- IF ( IA.EQ.0 ) GOTO 610
- SUM = SUM+PDF1(IA)*PDF2(-IA)
- IF ( SUM.GE.SCHECK ) GOTO 620
- 610 CONTINUE
- 620 IB =-IA
- ELSEIF ( MSPR.EQ.3 ) THEN
- IB = 0
- DO 630 IA=-NF,NF
- IF ( IA.EQ.0 ) GOTO 630
- SUM = SUM+PDF1(0)*PDF2(IA)
- IF ( SUM.GE.SCHECK ) GOTO 640
- SUM = SUM+PDF1(IA)*PDF2(0)
- IF ( SUM.GE.SCHECK ) GOTO 650
- 630 CONTINUE
- 640 IB = IA
- IA = 0
- 650 CONTINUE
- ELSEIF ( MSPR.EQ.7 ) THEN
- DO 660 IA=-NF,NF
- IF ( IA.EQ.0 ) GOTO 660
- SUM = SUM+PDF1(IA)*PDF2(IA)
- IF ( SUM.GE.SCHECK ) GOTO 670
- 660 CONTINUE
- 670 IB = IA
- ELSEIF ( MSPR.EQ.8 ) THEN
- DO 690 IA=-NF,NF
- IF ( IA.EQ.0 ) GOTO 690
- DO 680 IB=-NF,NF
- IF ( ABS(IB).EQ.ABS(IA) .OR. IB.EQ.0 ) GOTO 680
- SUM = SUM+PDF1(IA)*PDF2(IB)
- IF ( SUM.GE.SCHECK ) GOTO 700
- 680 CONTINUE
- 690 CONTINUE
- 700 CONTINUE
- ELSEIF ( MSPR.EQ.10 ) THEN
- IA = 0
- DO 710 IB=-NF,NF
- IF ( IB.NE.0 ) THEN
- IF(IDPDG1.EQ.22) THEN
-* IF(MOD(ABS(IB),2).EQ.0) THEN
-* SUM = SUM+PDF2(IB)*4.D0/9.D0
-* ELSE
-* SUM = SUM+PDF2(IB)*1.D0/9.D0
-* ENDIF
- SUM = SUM+PDF2(IB)*Q_ch2(IB)
- ELSE
- SUM = SUM+PDF2(IB)
- ENDIF
- IF ( SUM.GE.SCHECK ) GOTO 720
- ENDIF
- 710 CONTINUE
- 720 CONTINUE
- ELSEIF ( MSPR.EQ.12 ) THEN
- IB = 0
- DO 810 IA=-NF,NF
- IF ( IA.NE.0 ) THEN
- IF(IDPDG2.EQ.22) THEN
-* IF(MOD(ABS(IA),2).EQ.0) THEN
-* SUM = SUM+PDF1(IA)*4.D0/9.D0
-* ELSE
-* SUM = SUM+PDF1(IA)*1.D0/9.D0
-* ENDIF
- SUM = SUM+PDF1(IA)*Q_ch2(IA)
- ELSE
- SUM = SUM+PDF1(IA)
- ENDIF
- IF ( SUM.GE.SCHECK ) GOTO 820
- ENDIF
- 810 CONTINUE
- 820 CONTINUE
- ELSEIF ((MSPR.EQ.11).OR.(MSPR.EQ.13).OR.(MSPR.EQ.14)) THEN
- IA = 0
- IB = 0
- ENDIF
-C final check
- IF((ABS(IA).GT.NF).OR.(ABS(IB).GT.NF)) THEN
- print LO,'PHO_HARSCA: rejection, final check IA,IB',IA,IB
- print LO,'EVENT,MSPR,IA,IB,NF: ',KEVENT,MSPR,IA,IB,NF
- GOTO 111
- ENDIF
-C
-C find flavour of final partons
-C
- IC = IA
- ID = IB
- IF ( MSPR.EQ.2 ) THEN
- IC = 0
- ID = 0
- ELSEIF ( MSPR.EQ.4 ) THEN
- IC = INT(FLOAT(NF+NF)*DT_RNDM(SUM))+1
- IF ( IC.GT.NF ) IC = NF-IC
- ID =-IC
- ELSEIF ( MSPR.EQ.6 ) THEN
- IC = INT(FLOAT(NF+NF-2)*DT_RNDM(SUM))+1
- IF ( IC.GT.NF-1 ) IC = NF-1-IC
- IF ( ABS(IC).EQ.ABS(IA) ) IC = SIGN(NF,IC)
- ID =-IC
- ELSEIF ( MSPR.EQ.11) THEN
- SUM = 0.D0
- DO 730 IC=-NF,NF
- IF ( IC.NE.0 ) THEN
- IF(IDPDG1.EQ.22) THEN
-* IF(MOD(ABS(IC),2).EQ.0) THEN
-* SUM = SUM + 4.D0
-* ELSE
-* SUM = SUM + 1.D0
-* ENDIF
- SUM = SUM + Q_ch2(IC)
- ELSE
- SUM = SUM + 1.D0
- ENDIF
- ENDIF
- 730 CONTINUE
- SCHECK = DT_RNDM(SUM)*SUM-EPS
- SUM = 0.D0
- DO 740 IC=-NF,NF
- IF ( IC.NE.0 ) THEN
- IF(IDPDG1.EQ.22) THEN
-* IF(MOD(ABS(IC),2).EQ.0) THEN
-* SUM = SUM + 4.D0
-* ELSE
-* SUM = SUM + 1.D0
-* ENDIF
- SUM = SUM + Q_ch2(IC)
- ELSE
- SUM = SUM + 1.D0
- ENDIF
- IF ( SUM.GE.SCHECK ) GOTO 750
- ENDIF
- 740 CONTINUE
- 750 CONTINUE
- ID = -IC
- ELSEIF ( MSPR.EQ.12) THEN
- IC = 0
- ID = IA
- ELSEIF ( MSPR.EQ.13) THEN
- SUM = 0.D0
- DO 830 IC=-NF,NF
- IF ( IC.NE.0 ) THEN
- IF(IDPDG2.EQ.22) THEN
-* IF(MOD(ABS(IC),2).EQ.0) THEN
-* SUM = SUM + 4.D0
-* ELSE
-* SUM = SUM + 1.D0
-* ENDIF
- SUM = SUM + Q_ch2(IC)
- ELSE
- SUM = SUM + 1.D0
- ENDIF
- ENDIF
- 830 CONTINUE
- SCHECK = DT_RNDM(SUM)*SUM-EPS
- SUM = 0.D0
- DO 840 IC=-NF,NF
- IF ( IC.NE.0 ) THEN
- IF(IDPDG2.EQ.22) THEN
-* IF(MOD(ABS(IC),2).EQ.0) THEN
-* SUM = SUM + 4.D0
-* ELSE
-* SUM = SUM + 1.D0
-* ENDIF
- SUM = SUM + Q_ch2(IC)
- ELSE
- SUM = SUM + 1.D0
- ENDIF
- IF ( SUM.GE.SCHECK ) GOTO 850
- ENDIF
- 840 CONTINUE
- 850 CONTINUE
- ID = -IC
- ELSEIF ( MSPR.EQ.14) THEN
- SUM = 0.D0
- DO 930 IC=1,NF
- FAC1 = 1.D0
- FAC2 = 1.D0
- IF(MOD(ABS(IC),2).EQ.0) THEN
- IF(IDPDG1.EQ.22) FAC1 = 4.D0
- IF(IDPDG2.EQ.22) FAC2 = 4.D0
- ENDIF
- SUM = SUM + FAC1*FAC2
- 930 CONTINUE
- IF(IPAMDL(64).NE.0) THEN
- IF((IDPDG1.EQ.22).AND.(IDPDG2.EQ.22)) SUM = SUM + 81.D0
- ENDIF
- SCHECK = DT_RNDM(SUM)*SUM-EPS
- SUM = 0.D0
- DO 940 IC=1,NF
- FAC1 = 1.D0
- FAC2 = 1.D0
- IF(MOD(ABS(IC),2).EQ.0) THEN
- IF(IDPDG1.EQ.22) FAC1 = 4.D0
- IF(IDPDG2.EQ.22) FAC2 = 4.D0
- ENDIF
- SUM = SUM + FAC1*FAC2
- IF ( SUM.GE.SCHECK ) GOTO 950
- 940 CONTINUE
- IC = 15
- 950 CONTINUE
- ID = -IC
- IF(DT_RNDM(FAC1).GT.0.5D0) CALL PHO_SWAPI(IC,ID)
- ENDIF
- if(IC.eq.0) then
- XM3 = 0.D0
- else
- XM3 = PHO_PMASS(IC,3)
- endif
- if(ID.eq.0) then
- XM4 = 0.D0
- else
- XM4 = PHO_PMASS(ID,3)
- endif
- IF(ABS(IC).EQ.15) GOTO 955
-
-C valence quarks involved?
- IV1 = 0
- IF(IA.NE.0) THEN
- IF(IDPDG1.EQ.22) THEN
- CALL PHO_QPMPDF(IA,X1,QQPD,0.D0,PVIRTP(1),FXP)
- IF(DT_RNDM(XM3)*PDF1(IA).GT.PDF1(IA)-FXP) IV1 = 1
- ELSE
- IF(DT_RNDM(XM3)*PDF1(IA).GT.PDF1(-IA)) IV1 = 1
- ENDIF
- ENDIF
- IV2 = 0
- IF(IB.NE.0) THEN
- IF(IDPDG2.EQ.22) THEN
- CALL PHO_QPMPDF(IB,X2,QQPD,0.D0,PVIRTP(2),FXP)
- IF(DT_RNDM(XM4)*PDF2(IB).GT.PDF2(IB)-FXP) IV2 = 1
- ELSE
- IF(DT_RNDM(XM4)*PDF2(IB).GT.PDF2(-IB)) IV2 = 1
- ENDIF
- ENDIF
-C
-C fill event record
-C
- 955 CONTINUE
- CALL PHO_SFECFE(SINPHI,COSPHI)
- ECM2 = ECMP/2.D0
-C incoming partons
- PHI1(1) = 0.D0
- PHI1(2) = 0.D0
- PHI1(3) = ECM2*X1
- PHI1(4) = PHI1(3)
- PHI1(5) = 0.D0
- PHI2(1) = 0.D0
- PHI2(2) = 0.D0
- PHI2(3) = -ECM2*X2
- PHI2(4) = -PHI2(3)
- PHI2(5) = 0.D0
-C outgoing partons
- PHO1(1) = PT*COSPHI
- PHO1(2) = PT*SINPHI
- PHO1(3) = -ECM2*(U*X1-V*X2)
- PHO1(4) = -ECM2*(U*X1+V*X2)
- PHO1(5) = XM3
- PHO2(1) = -PHO1(1)
- PHO2(2) = -PHO1(2)
- PHO2(3) = -ECM2*(V*X1-U*X2)
- PHO2(4) = -ECM2*(V*X1+U*X2)
- PHO2(5) = XM4
-
-C convert to mass shell
- CALL PHO_MSHELL(PHO1,PHO2,XM3,XM4,PHO1,PHO2,IREJ)
- IF(IREJ.NE.0) THEN
- IF(IDEB(78).GE.5) WRITE(LO,'(1X,A,1P,3E11.3)')
- & 'PHO_HARSCA: rejection by PHO_MSHELL (PT,M1,M2)',
- & PT,XM3,XM4
- GOTO 111
- ENDIF
- PTfin = SQRT(PHO1(1)**2+PHO1(2)**2)
-
-C debug output
- IF(IDEB(78).GE.20) THEN
- SHAT = X1*X2*ECMP*ECMP
- WRITE(LO,'(1X,A,5I4)') 'PHO_HARSCA: MSPR,IA,IB,IC,ID',
- & MSPR,IA,IB,IC,ID
- WRITE(LO,'(5X,A,1P,4E11.3)') 'X1/2,MU2,Q2 ',X1,X2,QQPD,QQAL
- WRITE(LO,'(5X,A,1P,4E11.3)') 'U,V,PT,SHAT ',U,V,PT,SHAT
- WRITE(LO,'(5X,A,1P,5E11.3)') 'PHI1 ',PHI1
- WRITE(LO,'(5X,A,1P,5E11.3)') 'PHI2 ',PHI2
- WRITE(LO,'(5X,A,1P,5E11.3)') 'PHO1 ',PHO1
- WRITE(LO,'(5X,A,1P,5E11.3)') 'PHO2 ',PHO2
- ENDIF
-
- END
-
-CDECK ID>, PHO_HARFAC
- SUBROUTINE PHO_HARFAC(PTCUT,ECMI)
-C*********************************************************************
-C
-C initialization: find scaling factors and maxima of remaining
-C weights
-C
-C input: PTCUT transverse momentum cutoff
-C ECMI cms energy
-C
-C output: Hfac(-1:Max_pro_2) field for sampling hard processes
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( MXABWT = 96 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C hard scattering parameters used for most recent hard interaction
- INTEGER NFbeta,NF
- DOUBLE PRECISION ALQCD2,BQCD
- COMMON /POHAPA/ ALQCD2(3,4),BQCD(4),NFbeta,NF
-C integration precision for hard cross sections (obsolete)
- INTEGER NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
- COMMON /POGAUP/ NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-
- DIMENSION ABSZ(MXABWT),WEIG(MXABWT)
- DIMENSION S(-1:Max_pro_2),S1(-1:Max_pro_2),S2(-1:Max_pro_2),
- & F124(-1:Max_pro_2)
- DATA F124 / 1.D0,0.D0,
- & 4.D0,2.D0,2.D0,2.D0,4.D0,1.D0,4.D0,4.D0,0.D0,1.D0,
- & 2.D0,1.D0,2.D0,1.D0,0.D0,1.D0 /
-
- SS = ECMI*ECMI
- AH = (2.D0*PTCUT/ECMI)**2
- ALN = LOG(AH)
- HLN = LOG(0.5D0)
- NPOINT = NGAUIN
- CALL PHO_GAUSET(0.D0,1.D0,NPOINT,ABSZ,WEIG)
- DO 10 M=-1,Max_pro_2
- S1(M) = 0.D0
-10 CONTINUE
-
-C resolved processes
- DO 80 I1=1,NPOINT
- Z1 = ABSZ(I1)
- X1 = EXP(ALN*Z1)
- DO 20 M=-1,9
- S2(M) = 0.D0
-20 CONTINUE
-
- DO 60 I2=1,NPOINT
- Z2 = (1.D0-Z1)*ABSZ(I2)
- X2 = EXP(ALN*Z2)
- FAXX = AH/(X1*X2)
- W = SQRT(1.D0-FAXX)
- W1 = FAXX/(1.+W)
- WLOG = LOG(W1)
- FWW = FAXX*WLOG/W
- DO 30 M=-1,9
- S(M) = 0.D0
-30 CONTINUE
-
- DO 40 I=1,NPOINT
- Z = ABSZ(I)
- VA =-0.5D0*W1/(W1+Z*W)
- UA =-1.D0-VA
- VB =-0.5D0*FAXX/(W1+2.D0*W*Z)
- UB =-1.D0-VB
- VC =-EXP(HLN+Z*WLOG)
- UC =-1.D0-VC
- VE =-0.5D0*(1.D0+W)+Z*W
- UE =-1.D0-VE
- S(1) = S(1)+(1.+W)*2.25*(VA*VA*(3.-UA*VA-VA/(UA*UA))-UA)*
- & WEIG(I)
- S(2) = S(2)+(VC*VC+UC*UC)*((16./27.)/UC-(4./3.)*VC)*FWW*
- & WEIG(I)
- S(3) = S(3)+(1.+W)*(1.+UA*UA)*(1.-(4./9.)*VA*VA/UA)*WEIG(I)
- S(5) = S(5)+((4./9.)*(1.+UB*UB+(UB*UB+VB*VB)*VB*VB)-
- & (8./27.)*UA*UA*VA)*WEIG(I)
- S(6) = S(6)+(4./9.)*(UE*UE+VE*VE)*FAXX*WEIG(I)
- S(7) = S(7)+(1.+W)*((2./9.)*(1.+UA*UA+(1.+VA*VA)*VA*VA/
- & (UA*UA))-(4./27.)*VA/UA)*WEIG(I)
- S(8) = S(8)+(4./9.)*(1.+UB*UB)*WEIG(I)
- S(-1) = S(-1)+(1.+VC*VC)*(VC/(UC*UC)-(4./9.))*FWW*WEIG(I)
-40 CONTINUE
- S(4) = S(2)*(9./32.)
- DO 50 M=-1,8
- S2(M) = S2(M)+S(M)*WEIG(I2)*W
-50 CONTINUE
-60 CONTINUE
- DO 70 M=-1,8
- S1(M) = S1(M)+S2(M)*(1.D0-Z1)*WEIG(I1)
-70 CONTINUE
-80 CONTINUE
- S1(4) = S1(4)*NF
- S1(6) = S1(6)*MAX(0,NF-1)
-C
-C direct processes
- IF((IDPDG1.EQ.22).OR.(IDPDG1.EQ.990)
- & .OR.(IDPDG2.EQ.22).OR.(IDPDG2.EQ.990)) THEN
- DO 180 I1=1,NPOINT
- Z2 = ABSZ(I1)
- X2 = EXP(ALN*Z2)
- FAXX = AH/X2
- W = SQRT(1.D0-FAXX)
- W1 = FAXX/(1.D0+W)
- WLOG = LOG(W1)
- WL = LOG(FAXX/(1.D0+W)**2)
- FWW1 = FAXX*WL/ALN
- FWW2 = FAXX*WLOG/ALN
- DO 130 M=10,12
- S(M) = 0.D0
- 130 CONTINUE
-C
- DO 140 I=1,NPOINT
- Z = ABSZ(I)
- UA =-(1.D0+W)/2.D0*EXP(Z*WL)
- VA =-1.D0-UA
- VB =-EXP(HLN+Z*WLOG)
- UB =-1.D0-VB
- S(10) = S(10)+(8.D0/3.D0)*(1.D0+UA*UA)*WEIG(I)*FWW1
- S(11) = S(11)-(VB*VB+UB*UB)/UB*WEIG(I)*FWW2
- 140 CONTINUE
- DO 170 M=10,11
- S1(M) = S1(M)+S(M)*WEIG(I1)
- 170 CONTINUE
- 180 CONTINUE
- S1(12) = S1(10)
- S1(13) = S1(11)
-C quark charges fractions
- IF(IDPDG1.EQ.22) THEN
- CHRNF = 0.D0
- DO 100 I=1,NF
- CHRNF = CHRNF + Q_ch2(I)
- 100 CONTINUE
- S1(11) = S1(11)*CHRNF
- ELSE IF(IDPDG1.EQ.990) THEN
- S1(11) = S1(11)*NF
- ELSE
- S1(11) = 0.D0
- ENDIF
- IF(IDPDG2.EQ.22) THEN
- CHRNF = 0.D0
- DO 200 I=1,NF
- CHRNF = CHRNF + Q_ch2(I)
- 200 CONTINUE
- S1(13) = S1(13)*CHRNF
- ELSE IF(IDPDG2.EQ.990) THEN
- S1(13) = S1(13)*NF
- ELSE
- S1(13) = 0.D0
- ENDIF
- ENDIF
-C
-C global factors
- FFF = PI*GEV2MB*ALN*ALN/(AH*SS)
- DO 90 M=-1,Max_pro_2
- Hfac(M) = MAX(FFF*F124(M)*S1(M),0.D0)
-90 CONTINUE
-C
-C double direct process
- IF(((IDPDG1.EQ.22).OR.(IDPDG1.EQ.990))
- & .AND.((IDPDG2.EQ.22).OR.(IDPDG2.EQ.990))) THEN
- FAC = 0.D0
- DO 300 I=1,NF
- IF(IDPDG1.EQ.22) THEN
- F1 = Q_ch2(I)
- ELSE
- F1 = 1.D0
- ENDIF
- IF(IDPDG2.EQ.22) THEN
- F2 = Q_ch2(I)
- ELSE
- F2 = 1.D0
- ENDIF
- FAC = FAC+F1*F2*3.D0
- 300 CONTINUE
- ZZ = SQRT(1.D0-4.D0*PTCUT*PTCUT/SS)
- Hfac(14) = 4.D0*PI/SS*(LOG((1.D0+ZZ)/(1.D0-ZZ))-ZZ)
- & *GEV2MB*FAC
- ENDIF
- END
-
-CDECK ID>, PHO_HARWGX
- SUBROUTINE PHO_HARWGX(PTCUT,ECM)
-C**********************************************************************
-C
-C find maximum of remaining weight for MC sampling
-C
-C input: PTCUT transverse momentum cutoff
-C ECM cms energy
-C
-C output: HWgx(-1:Max_pro_2) field for sampling hard processes
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( NKM = 10 )
- PARAMETER ( TINY = 1.D-20 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-
- DIMENSION Z(3),D(3),FF(0:NKM),PDA(-6:6),PDB(-6:6),XM1(NKM),
- & XM2(NKM),PTM(NKM),ZMX(3,NKM),DMX(3,NKM),IMX(NKM),IPO(NKM)
- DIMENSION IFTAB(-1:Max_pro_2)
- DATA IFTAB / 4,0,1,2,4,1,2,2,3,5,0,6,7,8,9,10,0,10 /
-
-C initial settings
- AH = (2.D0*PTCUT/ECM)**2
- ALNH = LOG(AH)
- FF(0) = 0.D0
- DO 22 I=1,NKM
- FF(I) = 0.D0
- XM1(I) = 0.D0
- XM2(I) = 0.D0
- PTM(I) = 0.D0
- ZMX(1,I) = 0.D0
- ZMX(2,I) = 0.D0
- ZMX(3,I) = 0.D0
- DMX(1,I) = 0.D0
- DMX(2,I) = 0.D0
- DMX(3,I) = 0.D0
- IMX(I) = 0
- IPO(I) = 0
- 22 CONTINUE
-
- NKML = 10
- DO 40 NKON=1,NKML
-
- DO 50 IST=1,3
-C start configuration
- IF(IST.EQ.1) THEN
- Z(1) = MIN(0.999D0,LOG(0.5D0)/LOG(AH))
- Z(2) = 0.5
- Z(3) = 0.1
- D(1) =-0.5
- D(2) = 0.5
- D(3) = 0.5
- ELSE IF(IST.EQ.2) THEN
- Z(1) = 0.999D0
- Z(2) = 0.5
- Z(3) = 0.0
- D(1) =-0.5
- D(2) = 0.5
- D(3) = 0.5
- ELSE IF(IST.EQ.3) THEN
- Z(1) = MIN(0.999D0,LOG(0.5D0)/LOG(AH))
- Z(2) = 0.1
- Z(3) = 0.1
- D(1) =-0.5
- D(2) = 0.5
- D(3) = 0.5
- ELSE IF(IST.EQ.4) THEN
- Z(1) = MIN(0.999D0,LOG(0.5D0)/LOG(AH))
- Z(2) = 0.9
- Z(3) = 0.1
- D(1) =-0.5
- D(2) = 0.5
- D(3) = 0.5
- ENDIF
- IT = 0
- CALL PHO_HARWGI(ECM,PTCUT,NKON,Z,F2)
-C process possible?
- IF(F2.LE.0.D0) GOTO 35
-
- 10 CONTINUE
- IT = IT+1
- FOLD = F2
- DO 30 I=1,3
- D(I) = D(I)/5.D0
- Z(I) = Z(I)+D(I)
- CALL PHO_HARWGI(ECM,PTCUT,NKON,Z,F3)
- IF ( F2.GT.F3 ) Z(I) = Z(I)-D(I)
- IF ( F2.GT.F3 ) D(I) =-D(I)
- 20 CONTINUE
- F1 = MIN(F2,F3)
- F2 = MAX(F2,F3)
- Z(I) = Z(I)+D(I)
- CALL PHO_HARWGI(ECM,PTCUT,NKON,Z,F3)
- IF ( F3.GT.F2 ) GOTO 20
- ZZ = Z(I)-D(I)
- Z(I) = ZZ+0.5*D(I)*(F3-F1)/MAX(TINY,F2+F2-F1-F3)
- IF ( ABS(ZZ-Z(I)).GT.D(I)*0.1D0 )
- & CALL PHO_HARWGI(ECM,PTCUT,NKON,Z,F1)
- IF ( F1.LE.F2 ) Z(I) = ZZ
- F2 = MAX(F1,F2)
- 30 CONTINUE
- IF((ABS(FOLD-F2)/MAX(TINY,F2).GT.0.002D0).OR.(IT.LT.3)) GOTO 10
-
- IF(F2.GT.FF(NKON)) THEN
- FF(NKON) = MAX(F2,0.D0)
- XM1(NKON) = X1
- XM2(NKON) = X2
- PTM(NKON) = PT
- ZMX(1,NKON) = Z(1)
- ZMX(2,NKON) = Z(2)
- ZMX(3,NKON) = Z(3)
- DMX(1,NKON) = D(1)
- DMX(2,NKON) = D(2)
- DMX(3,NKON) = D(3)
- IMX(NKON) = IT
- IPO(NKON) = IST
- ENDIF
-C
- 50 CONTINUE
- 35 CONTINUE
- 40 CONTINUE
-
-C debug output
- IF(IDEB(38).GE.5) THEN
- WRITE(LO,'(/1X,A)')
- & 'PHO_HARWGX: maximum of weight (I,IT,IS,FF,Z(1-3),D(1-3))'
- DO 60 I=1,NKM
- IF(IMX(I).NE.0) WRITE(LO,'(1X,I2,I3,I2,7E10.3)') I,IMX(I),
- & IPO(I),FF(I),ZMX(1,I),ZMX(2,I),ZMX(3,I),DMX(1,I),
- & DMX(2,I),DMX(3,I)
- 60 CONTINUE
- ENDIF
-
- DO 70 I=-1,Max_pro_2
- HWgx(I) = MAX(FF(IFTAB(I))*Hfac(I),0.D0)
- 70 CONTINUE
-
-C debug output
- IF(IDEB(38).GE.5) THEN
- WRITE(LO,'(/1X,A)') 'PHO_HARWGX: total weights'
- WRITE(LO,'(5X,A)') 'I X1 X2 PT HWgx(I) FDIS'
- DO 80 I=-1,Max_pro_2
- IF((IFTAB(I).NE.0).AND.(HWgx(I).GT.0.D0)) THEN
- MSPR = I
- X1 = MIN(XM1(IFTAB(I)),0.9999999999D0)
- X2 = MIN(XM2(IFTAB(I)),0.9999999999D0)
- PT = PTM(IFTAB(I))
- CALL PHO_HARWGH(PDS,PDA,PDB,FDIS)
- WRITE(LO,'(1X,I3,5E12.3)') I,X1,X2,PT,HWgx(I),FDIS
- ENDIF
- 80 CONTINUE
- ENDIF
-
- END
-
-CDECK ID>, PHO_HARWGI
- SUBROUTINE PHO_HARWGI(ECMX,PTCUT,NKON,Z,FDIS)
-C**********************************************************************
-C
-C auxiliary subroutine to find maximum of remaining weight
-C
-C input: ECMX current CMS energy
-C PTCUT current pt cutoff
-C NKON process label 1..5 resolved
-C 6..7 direct particle 1
-C 8..9 direct particle 2
-C 10 double direct
-C Z(3) transformed variable
-C
-C output: remaining weight
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- DIMENSION Z(3)
-
- PARAMETER ( NKM = 10 )
- PARAMETER ( TINY = 1.D-30,
- & TINY6 = 1.D-06 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C currently activated parton density parametrizations
- CHARACTER*8 PDFNAM
- INTEGER IPARID,IPAVA,ITYPE,IGRP,ISET,IEXT,NPAOLD
- DOUBLE PRECISION PDFLAM,PDFQ2M
- COMMON /POPPDF/ PDFLAM(2),PDFQ2M(2),PDFNAM(2),IPARID(2),
- & IPAVA(2),ITYPE(2),IGRP(2),ISET(2),IEXT(2),NPAOLD
-C hard scattering parameters used for most recent hard interaction
- INTEGER NFbeta,NF
- DOUBLE PRECISION ALQCD2,BQCD
- COMMON /POHAPA/ ALQCD2(3,4),BQCD(4),NFbeta,NF
-C some hadron information, will be deleted in future versions
- INTEGER NFS
- DOUBLE PRECISION QMASS,BET,PCOUDI,PNORM,VALPRG
- COMMON /POHDRN/ QMASS(6),BET,PCOUDI,PNORM,VALPRG(2),NFS
-C scale parameters for parton model calculations
- INTEGER NQQAL,NQQALI,NQQALF,NQQPD
- DOUBLE PRECISION AQQAL,AQQALI,AQQALF,AQQPD
- COMMON /POHSCL/ AQQAL,AQQALI,AQQALF,AQQPD,
- & NQQAL,NQQALI,NQQALF,NQQPD
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-
- DOUBLE PRECISION PHO_ALPHAS,pho_alphae
- DIMENSION F(NKM),PDA(-6:6),PDB(-6:6)
-
- FDIS = 0.D0
-
- IF(IDEB(64).GE.25) WRITE(LO,'(1X,A,/5X,5E12.3,I5)')
- & 'PHO_HARWGI: ECM,PT,Z,NK',ECMX,PTCUT,Z,NKON
-C check input values
- IF ( Z(1).LT.0.D0 .OR. Z(1).GT.1.D0 ) RETURN
- IF ( Z(2).LT.0.D0 .OR. Z(2).GT.1.D0 ) RETURN
- IF ( Z(3).LT.0.D0 .OR. Z(3).GT.1.D0 ) RETURN
-C transformations
- Y1 = EXP(ALNH*Z(1))
- IF(NKON.LE.5) THEN
-C resolved kinematic
- Y2 =-(1.D0-Y1)+2.D0*(1.D0-Y1)*Z(2)
- X1 = 0.5D0*(Y2+SQRT(Y2*Y2+4.D0*Y1))
- X2 = X1-Y2
- X1 = MIN(X1,0.999999999999D0)
- X2 = MIN(X2,0.999999999999D0)
- ELSE IF(NKON.LE.7) THEN
-C direct kinematic 1
- X1 = 1.D0
- X2 = MIN(Y1,0.999999999999D0)
- ELSE IF(NKON.LE.9) THEN
-C direct kinematic 2
- X1 = MIN(Y1,0.999999999999D0)
- X2 = 1.D0
- ELSE
-C double direct kinematic
- X1 = 1.D0
- X2 = 1.D0
- ENDIF
- W = SQRT(MAX(TINY,1.D0-AH/Y1))
- V =-0.5D0+W*(Z(3)-0.5D0)
- U =-(1.D0+V)
- PT = MAX(SQRT(U*V*Y1*ECMX*ECMX),PTCUT)
-
-C set hard scale QQ for alpha and partondistr.
- IF ( NQQAL.EQ.1 ) THEN
- QQAL = AQQAL*PT*PT
- ELSEIF ( NQQAL.EQ.2 ) THEN
- QQAL = AQQAL*Y1*ECMX*ECMX*U*V/(1.+V*V+U*U)
- ELSEIF ( NQQAL.EQ.3 ) THEN
- QQAL = AQQAL*Y1*ECMX*ECMX
- ELSEIF ( NQQAL.EQ.4 ) THEN
- QQAL = AQQAL*Y1*ECMX*ECMX*(U*V)**(1./3.)
- ENDIF
- IF ( NQQPD.EQ.1 ) THEN
- QQPD = AQQPD*PT*PT
- ELSEIF ( NQQPD.EQ.2 ) THEN
- QQPD = AQQPD*Y1*ECMX*ECMX*U*V/(1.+V*V+U*U)
- ELSEIF ( NQQPD.EQ.3 ) THEN
- QQPD = AQQPD*Y1*ECMX*ECMX
- ELSEIF ( NQQPD.EQ.4 ) THEN
- QQPD = AQQPD*Y1*ECMX*ECMX*(U*V)**(1./3.)
- ENDIF
-C
- IF(NKON.LE.5) THEN
- DO 10 N=1,5
- F(N) = 0.D0
- 10 CONTINUE
-C resolved processes
- ALPHA1 = PHO_ALPHAS(QQAL,3)
- ALPHA2 = ALPHA1
- CALL PHO_PDF(1,X1,QQPD,0.D0,PDA)
- CALL PHO_PDF(2,X2,QQPD,0.D0,PDB)
-C calculate full distribution FDIS
- DO 20 I=1,NF
- F(2) = F(2)+PDA(I)*PDB(-I)+PDA(-I)*PDB( I)
- F(3) = F(3)+PDA(I)*PDB( I)+PDA(-I)*PDB(-I)
- F(4) = F(4)+PDA(I)+PDA(-I)
- F(5) = F(5)+PDB(I)+PDB(-I)
-20 CONTINUE
- F(1) = PDA(0)*PDB(0)
- T = PDA(0)*F(5)+PDB(0)*F(4)
- F(5) = F(4)*F(5)-(F(2)+F(3))
- F(4) = T
- ELSE IF(NKON.LE.7) THEN
-C direct processes particle 1
- IF(IDPDG1.EQ.22) THEN
- ALPHA1 = pho_alphae(QQAL)
- CH1 = 4.D0/9.D0
- CH2 = 3.D0/9.D0
- ELSE IF(IDPDG1.EQ.990) THEN
- ALPHA1 = PARMDL(74)
- CH1 = 1.D0
- CH2 = 0.D0
- ELSE
- FDIS = -1.D0
- RETURN
- ENDIF
- ALPHA2 = PHO_ALPHAS(QQAL,2)
- CALL PHO_PDF(2,X2,QQPD,0.D0,PDB)
- F(6) = 0.D0
- DO 30 I=1,NF
- F(6) = F(6)+(PDB(I)+PDB(-I))*(CH1-CH2*MOD(I,2))
- 30 CONTINUE
- F(7) = PDB(0)
- ELSE IF(NKON.LE.9) THEN
-C direct processes particle 2
- ALPHA1 = PHO_ALPHAS(QQAL,1)
- IF(IDPDG2.EQ.22) THEN
- ALPHA2 = pho_alphae(QQAL)
- CH1 = 4.D0/9.D0
- CH2 = 3.D0/9.D0
- ELSE IF(IDPDG2.EQ.990) THEN
- ALPHA2 = PARMDL(74)
- CH1 = 1.D0
- CH2 = 0.D0
- ELSE
- FDIS = -1.D0
- RETURN
- ENDIF
- CALL PHO_PDF(1,X1,QQPD,0.D0,PDA)
- F(8) = 0.D0
- DO 40 I=1,NF
- F(8) = F(8)+(PDA(I)+PDA(-I))*(CH1-CH2*MOD(I,2))
- 40 CONTINUE
- F(9) = PDA(0)
- ELSE
-C double direct process
- SSR = ECMX*ECMX
- IF(IDPDG1.EQ.22) THEN
- ALPHA1 = pho_alphae(SSR)
- ELSE IF(IDPDG1.EQ.990) THEN
- ALPHA1 = PARMDL(74)
- ELSE
- FDIS = -1.D0
- RETURN
- ENDIF
- IF(IDPDG2.EQ.22) THEN
- ALPHA2 = pho_alphae(SSR)
- ELSE IF(IDPDG2.EQ.990) THEN
- ALPHA2 = PARMDL(74)
- ELSE
- FDIS = -1.D0
- RETURN
- ENDIF
- F(10) = 1.D0
- ENDIF
-
- FDIS = MAX(0.D0,F(NKON)*ALPHA1*ALPHA2)
-
-C debug output
- IF(IDEB(64).GE.20) WRITE(LO,'(1X,A,/2X,I3,2I6,7E11.3)')
- & 'PHO_HARWGI: NKON,ID1,ID2,AL1,AL2,X1,X2,PT,F(NKON),FDIS',
- & NKON,IDPDG1,IDPDG2,ALPHA1,ALPHA2,X1,X2,PT,F(NKON),FDIS
-
- END
-
-CDECK ID>, PHO_HARINI
- SUBROUTINE PHO_HARINI(IP,IDP1,IDP2,PV1,PV2,NOUT,MODE)
-C**********************************************************************
-C
-C initialize calculation of hard cross section
-C
-C must not be called during MC generation
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-10 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C currently activated parton density parametrizations
- CHARACTER*8 PDFNAM
- INTEGER IPARID,IPAVA,ITYPE,IGRP,ISET,IEXT,NPAOLD
- DOUBLE PRECISION PDFLAM,PDFQ2M
- COMMON /POPPDF/ PDFLAM(2),PDFQ2M(2),PDFNAM(2),IPARID(2),
- & IPAVA(2),ITYPE(2),IGRP(2),ISET(2),IEXT(2),NPAOLD
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C scale parameters for parton model calculations
- INTEGER NQQAL,NQQALI,NQQALF,NQQPD
- DOUBLE PRECISION AQQAL,AQQALI,AQQALF,AQQPD
- COMMON /POHSCL/ AQQAL,AQQALI,AQQALF,AQQPD,
- & NQQAL,NQQALI,NQQALF,NQQPD
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C hard scattering parameters used for most recent hard interaction
- INTEGER NFbeta,NF
- DOUBLE PRECISION ALQCD2,BQCD
- COMMON /POHAPA/ ALQCD2(3,4),BQCD(4),NFbeta,NF
-
- double precision pho_alphas
-
- CHARACTER*20 RFLAG
-
-C set local Pomeron c.m. system data
- IDPDG1 = IDP1
- IDPDG2 = IDP2
- PVIRTP(1) = PV1
- PVIRTP(2) = PV2
-C initialize PDFs
- CALL PHO_ACTPDF(IDPDG1,1)
- CALL PHO_ACTPDF(IDPDG2,2)
-C initialize alpha_s calculation
- DUMMY = PHO_ALPHAS(0.D0,-4)
-C initialize scales with defaults
- IF((IDPDG1.EQ.22).OR.(IDPDG1.EQ.990)) THEN
- IF((IDPDG2.EQ.22).OR.(IDPDG2.EQ.990)) THEN
- AQQAL = PARMDL(83)
- AQQALI = PARMDL(86)
- AQQALF = PARMDL(89)
- AQQPD = PARMDL(92)
- NQQAL = IPAMDL(83)
- NQQALI = IPAMDL(86)
- NQQALF = IPAMDL(89)
- NQQPD = IPAMDL(92)
- ELSE
- AQQAL = PARMDL(82)
- AQQALI = PARMDL(85)
- AQQALF = PARMDL(88)
- AQQPD = PARMDL(91)
- NQQAL = IPAMDL(82)
- NQQALI = IPAMDL(85)
- NQQALF = IPAMDL(88)
- NQQPD = IPAMDL(91)
- ENDIF
- ELSE IF((IDPDG2.EQ.22).OR.(IDPDG2.EQ.990)) THEN
- AQQAL = PARMDL(82)
- AQQALI = PARMDL(85)
- AQQALF = PARMDL(88)
- AQQPD = PARMDL(91)
- NQQAL = IPAMDL(82)
- NQQALI = IPAMDL(85)
- NQQALF = IPAMDL(88)
- NQQPD = IPAMDL(91)
- ELSE
- AQQAL = PARMDL(81)
- AQQALI = PARMDL(84)
- AQQALF = PARMDL(87)
- AQQPD = PARMDL(90)
- NQQAL = IPAMDL(81)
- NQQALI = IPAMDL(84)
- NQQALF = IPAMDL(87)
- NQQPD = IPAMDL(90)
- ENDIF
- IF(PARMDL(109+IP).LT.DEPS) PARMDL(109+IP) = AQQAL
- IF(PARMDL(113+IP).LT.DEPS) PARMDL(113+IP) = AQQALI
- IF(PARMDL(117+IP).LT.DEPS) PARMDL(117+IP) = AQQALF
- IF(PARMDL(121+IP).LT.DEPS) PARMDL(121+IP) = AQQPD
- IF(IPAMDL(64+IP).LT.0) IPAMDL(64+IP) = NQQAL
- IF(IPAMDL(68+IP).LT.0) IPAMDL(68+IP) = NQQALI
- IF(IPAMDL(72+IP).LT.0) IPAMDL(72+IP) = NQQALF
- IF(IPAMDL(76+IP).LT.0) IPAMDL(76+IP) = NQQPD
- AQQAL = PARMDL(109+IP)
- AQQALI = PARMDL(113+IP)
- AQQALF = PARMDL(117+IP)
- AQQPD = PARMDL(121+IP)
- NQQAL = IPAMDL(64+IP)
- NQQALI = IPAMDL(68+IP)
- NQQALF = IPAMDL(72+IP)
- NQQPD = IPAMDL(76+IP)
- PTCUT(1) = PARMDL(36)
- PTCUT(2) = PARMDL(37)
- PTCUT(3) = PARMDL(38)
- PTCUT(4) = PARMDL(39)
- PTANO(1) = PARMDL(130)
- PTANO(2) = PARMDL(131)
- PTANO(3) = PARMDL(132)
- PTANO(4) = PARMDL(133)
- RFLAG = '(energy-independent)'
- IF(IPAMDL(7).GT.0) RFLAG = '(energy-dependent)'
-
-C write out all settings
-C *** Commented by Chiara
-C IF((IDEB(66).GE.15).OR.(MODE.GT.0)) THEN
-C WRITE(NOUT,1050) IP,IDPDG1,IDPDG2,PTCUT(IP),RFLAG,
-C & PDFNAM(1),IGRP(1),ISET(1),IEXT(1),
-C & PDFNAM(2),IGRP(2),ISET(2),IEXT(2),
-C & PDFLAM,NF,NQQAL,AQQAL,NQQPD,AQQPD
-C1050 FORMAT(/,
-C & ' PHO_HARINI: hard scattering parameters for IP:',I3/,
-C & 5X,'particle 1 / particle 2:',2I8,/,
-C & 5X,'min. PT :',F7.1,2X,A,/,
-C & 5X,'PDF side 1:',2X,A8,' IGRP/ISET/IEXT ',3I4,/,
-C & 5X,'PDF side 2:',2X,A8,' IGRP/ISET/IEXT ',3I4,/,
-C & 5X,'LAMBDA1,2 (4 active flavours):',2F8.3,/,
-C & 5X,'max. number of active flavours NF :',I3,/,
-C & 5X,'NQQAL/AQQAL/NQQPD/AQQPD:',I5,F8.3,I5,F8.3)
-C ENDIF
-
- END
-
-CDECK ID>, PHO_HARINT
- SUBROUTINE PHO_HARINT(IPP,ECM,P2V1,P2V2,I1,I2,K1,K2,MSPOM)
-C**********************************************************************
-C
-C interpolate cross sections and weights for hard scattering
-C
-C input: IPP particle combination (neg. for add. user cuts)
-C ECM CMS energy (GeV)
-C P2V1/2 particle virtualities (pos., GeV**2)
-C I1 first subprocess to calculate
-C I2 last subprocess to calculate
-C <-1 only scales and cutoffs calculated
-C K1 first variable to calculate
-C K2 last variable to calculate
-C MSPOM cross sections to use for pt distribution
-C 0 reggeon
-C >0 pomeron
-C
-C for K1 < 3 the soft pt distribution is also calculated
-C
-C output: interpolated values in HWgx, HSig, Hdpt
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-15,
- & DEPS2 = 2.D-15 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C Reggeon phenomenology parameters
- DOUBLE PRECISION ALPOM,ALPOMP,GP,B0POM,ALREG,ALREGP,GR,B0REG,
- & GPPP,GPPR,B0PPP,B0PPR,VDMFAC,VDMQ2F,B0HAR,AKFAC
- COMMON /POPREG/ ALPOM,ALPOMP,GP(2),B0POM(2),
- & ALREG,ALREGP,GR(2),B0REG(2),
- & GPPP,GPPR,B0PPP,B0PPR,
- & VDMFAC(4),VDMQ2F(4),B0HAR,AKFAC
-C parameters of 2x2 channel model
- DOUBLE PRECISION PHISUP,RMASS,VAR,AMPFAC,ELAFAC,VFAC
- COMMON /PO2CHA/ PHISUP(2),RMASS(2),VAR,AMPFAC(4),ELAFAC(4),VFAC
-C data needed for soft-pt calculation
- DOUBLE PRECISION SIGS,DSIGHP,SIGH,FS,FH,BETAS,AAS,PTCON
- COMMON /POINT3/ SIGS,DSIGHP,SIGH,FS,FH,BETAS(3),AAS,PTCON
-C scale parameters for parton model calculations
- INTEGER NQQAL,NQQALI,NQQALF,NQQPD
- DOUBLE PRECISION AQQAL,AQQALI,AQQALF,AQQPD
- COMMON /POHSCL/ AQQAL,AQQALI,AQQALF,AQQPD,
- & NQQAL,NQQALI,NQQALF,NQQPD
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-C parameters for DGLAP backward evolution in ISR
- INTEGER NFSISR
- DOUBLE PRECISION Q2MISR,PMISR,ZMISR,AL2ISR
- COMMON /PODGL1/ Q2MISR(2),PMISR(2),ZMISR(2),AL2ISR(2),NFSISR
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-C interpolation tables for hard cross section and MC selection weights
- INTEGER Max_tab_E,Max_tab_Q2,Max_pro_tab
- PARAMETER ( Max_tab_E = 20, Max_tab_Q2 = 10, Max_pro_tab = 16 )
- INTEGER IH_Q2a_up,IH_Q2b_up,IH_Ecm_up
- DOUBLE PRECISION Hfac_tab,HWgx_tab,HSig_tab,Hdpt_tab,
- & HQ2a_tab,HQ2b_tab,HEcm_tab
- COMMON /POHTAB/
- & Hfac_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & HWgx_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & HSig_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & Hdpt_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & HQ2a_tab(1:Max_tab_Q2,0:4),HQ2b_tab(1:Max_tab_Q2,0:4),
- & HEcm_tab(1:Max_tab_E,0:4),
- & IH_Q2a_up(0:4),IH_Q2b_up(0:4),IH_Ecm_up(0:4)
-C data on most recent hard scattering
- INTEGER IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
- DOUBLE PRECISION PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,QQPD,QQAL,
- & PDF1,PDF2,WEIGHT,PHI1,PHI2,PHO1,PHO2
- COMMON /POCKIN/ PTWANT,AS,AH,ALNS,ALNH,Z1MAX,Z1DIF,Z2MAX,Z2DIF,
- & PT,PTfin,ETAC,ETAD,X1,X2,V,U,W,W1,AXX,
- & QQPD,QQAL,PDF1(-6:6),PDF2(-6:6),WEIGHT,
- & PHI1(5),PHI2(5),PHO1(5),PHO2(5),
- & IA,IB,IC,ID,IV1,IV2,MSPR,IREJSC
-C energy-interpolation table
- INTEGER IEETA2
- PARAMETER ( IEETA2 = 20 )
- INTEGER ISIMAX
- DOUBLE PRECISION SIGTAB,SIGECM
- COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
-
- DOUBLE PRECISION XP,PTS
- DIMENSION XP(2),PTS(0:2,2)
-
- INTEGER IV
- DIMENSION IV(2)
-
- IF(IDEB(58).GE.25) WRITE(LO,'(1X,2A,/,5X,I2,3E12.3,5I4)')
- & 'PHO_HARINT: called with ',
- & 'IPP,ECM,P2V1,P2V2,I1,I2,K1,K2,MSPOM',
- & IPP,ECM,P2V1,P2V2,I1,I2,K1,K2,MSPOM
-
- IP = ABS(IPP)
- IF(IPP.GT.0) THEN
-C default minimum bias cutoff
- PTCUT(IP) = pho_ptcut(ECM,IP)
- ELSE
-C user defined additional cutoff
- PTCUT(IP) = HSWCUT(4+IP)
- ENDIF
- PTWANT = PTCUT(IP)
-
-C ISR cutoffs
- Q2CUT = MIN(PTWANT**2,PARMDL(125+IP))
- Q2MISR(1) = MAX(P2V1,Q2CUT)
- Q2MISR(2) = MAX(P2V2,Q2CUT)
-C cutoff for direct photon contribution to photon PDF
- PTANO(IP) = MIN(PTCUT(IP),PARMDL(129+IP))
- PTA1 = PTANO(IP)
-C scales for hard scattering
- AQQAL = PARMDL(109+IP)
- AQQALI = PARMDL(113+IP)
- AQQALF = PARMDL(117+IP)
- AQQPD = PARMDL(121+IP)
- NQQAL = IPAMDL(64+IP)
- NQQALI = IPAMDL(68+IP)
- NQQALF = IPAMDL(72+IP)
- NQQPD = IPAMDL(76+IP)
- IF(IDEB(58).GE.15) WRITE(LO,'(1X,A,4I3,4E10.3)')
- & 'PHO_HARINT: scales:',
- & NQQAL,NQQALI,NQQALF,NQQPD,AQQAL,AQQALI,AQQALF,AQQPD
-
- IF(I2.LT.-1) RETURN
-
- IL = IP
- IF(IPP.LT.0) IL = 0
-
-C double-log interpolation
- IF(ECM.LT.2.1D0*PTCUT(IP)) THEN
- DO 50 M=I1,I2
- Hfac(M) = 0.D0
- HWgx(M) = 0.D0
- HSig(M) = 0.D0
- Hdpt(M) = 0.D0
- 50 CONTINUE
- ELSE
- I=1
- 310 CONTINUE
- I = I+1
- IF((ECM.GT.HEcm_tab(I,IL)).AND.(I.LT.IH_Ecm_up(IL))) GOTO 310
-
- Ia = 1
- Ib = 1
- fac = LOG(ECM/HEcm_tab(I-1,IL))
- & /LOG(HEcm_tab(I,IL)/HEcm_tab(I-1,IL))
- do M=I1,I2
-C factor due to phase space integration
- XX = LOG(Hfac_tab(M,I-1,Ia,Ib,IL)+DEPS) + fac
- & *LOG((Hfac_tab(M,I,Ia,Ib,IL)+DEPS)
- & /(Hfac_tab(M,I-1,Ia,Ib,IL)+DEPS))
- XX = EXP(XX)
- IF(XX.LT.DEPS2) XX = 0.D0
- Hfac(M) = XX
-C max. weight
- XX = LOG(HWgx_tab(M,I-1,Ia,Ib,IL)+DEPS) + fac
- & *LOG((HWgx_tab(M,I,Ia,Ib,IL)+DEPS)
- & /(HWgx_tab(M,I-1,Ia,Ib,IL)+DEPS))
- XX = EXP(XX)
- IF(XX.LT.DEPS2) XX = 0.D0
- HWgx(M) = XX*1.2D0
-C hard cross section
- XX = LOG(HSig_tab(M,I-1,Ia,Ib,IL)+DEPS) + fac
- & *LOG((HSig_tab(M,I,Ia,Ib,IL)+DEPS)
- & /(HSig_tab(M,I-1,Ia,Ib,IL)+DEPS))
- XX = EXP(XX)
- IF(XX.LT.DEPS2) XX = 0.D0
- HSig(M) = XX
-C differential hard cross section
- XX = LOG(Hdpt_tab(M,I-1,Ia,Ib,IL)+DEPS) + fac
- & *LOG((Hdpt_tab(M,I,Ia,Ib,IL)+DEPS)
- & /(Hdpt_tab(M,I-1,Ia,Ib,IL)+DEPS))
- XX = EXP(XX)
- IF(XX.LT.DEPS2) XX = 0.D0
- Hdpt(M) = XX
- enddo
- ENDIF
-
- IF((K1.LT.3).AND.(K2.GE.3)) THEN
-C cross check
- IF((I1.GT.9).OR.(I2.LT.9)) THEN
- WRITE(LO,'(1X,2A,2I4)') 'PHO_HARINT: ',
- & 'hard cross section not calculated ',I1,I2
- ENDIF
- SIGH = HSig(9)
- DSIGHP = Hdpt(9)
-C load soft cross sections from interpolation table
- IF(ECM.LE.SIGECM(IP,1)) THEN
- L1 = 1
- L2 = 1
- ELSE IF(ECM.LT.SIGECM(IP,ISIMAX)) THEN
- DO 55 I=2,ISIMAX
- IF(ECM.LE.SIGECM(IP,I)) GOTO 205
- 55 CONTINUE
- 205 CONTINUE
- L1 = I-1
- L2 = I
- ELSE
- WRITE(LO,'(/1X,A,I3,1P,2E11.3)')
- & 'PHO_HARINT: energy too high (IP,Ecm,Emax)',
- & IP,ECM,SIGECM(IP,ISIMAX)
- CALL PHO_PREVNT(-1)
- L1 = ISIMAX-1
- L2 = ISIMAX
- ENDIF
- FAC2=0.D0
- IF(L1.NE.L2) FAC2=LOG(ECM/SIGECM(IP,L1))
- & /LOG(SIGECM(IP,L2)/SIGECM(IP,L1))
- FAC1=1.D0-FAC2
- SIGS = FAC2*(SIGTAB(IP,56,L2)+SIGTAB(IP,57,L2))+
- & FAC1*(SIGTAB(IP,56,L1)+SIGTAB(IP,57,L1))
-
- FS = FPS(IP)
- FH = FPH(IP)
- CALL PHO_SOFTPT(-1,PTWANT,PTWANT,XP,IV,PTS)
- ENDIF
-
- 300 CONTINUE
-
-C debug output
- IF(IDEB(58).GE.15) THEN
- WRITE(LO,'(1X,A,I10,3I2,2E10.3)')
- & 'PHO_HARINT: weights EV,IP,K1/2,ECM,PTC',
- & KEVENT,IP,K1,K2,ECM,PTCUT(IP)
- DO 162 M=I1,I2
- WRITE(LO,'(5X,2I3,1p,4E12.3)')
- & M,MH_pro_on(M,IP),Hfac(M),HWgx(M),HSig(M),Hdpt(M)
- 162 CONTINUE
- ENDIF
-
- END
-
- DOUBLE PRECISION FUNCTION PHO_PTCUT(ECM,IP)
-C***********************************************************************
-C
-C calculate energy-dependent transverse momentum cutoff
-C
-C***********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- double precision ECM
- integer IP
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-
- pho_ptcut = PARMDL(35+IP)
-
- IF(IPAMDL(7).EQ.1) THEN
-C Bopp et al. type (DPMJET)
- pho_ptcut = PARMDL(35+IP)
- & + max(0.D0,0.12D0*(LOG10(ECM/50.D0))**3)
- ELSE IF(IPAMDL(7).EQ.2) THEN
-C Gribov-Levin-Ryskin type
- pho_ptcut = PARMDL(35+IP)
- & + 0.065D0*exp(0.9D0*sqrt(2.D0*log(Ecm)))
- ENDIF
-
- END
-
-CDECK ID>, PHO_HARMCI
- SUBROUTINE PHO_HARMCI(IP,EMAXF)
-C**********************************************************************
-C
-C initialize MC sampling and calculate hard cross section
-C
-C input: IP particle combination (neg. number for user cut)
-C EMAXF maximum CMS energy for
-C interpolation table in reference to PTCUT(1..4)
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER (DEPS = 1.D-10,
- & PLARGE = 1.D20 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C scale parameters for parton model calculations
- INTEGER NQQAL,NQQALI,NQQALF,NQQPD
- DOUBLE PRECISION AQQAL,AQQALI,AQQALF,AQQPD
- COMMON /POHSCL/ AQQAL,AQQALI,AQQALF,AQQPD,
- & NQQAL,NQQALI,NQQALF,NQQPD
-C names of hard scattering processes
- INTEGER Max_pro_1
- PARAMETER ( Max_pro_1 = 16 )
- CHARACTER*18 PROC
- COMMON /POHPRO/ PROC(0:Max_pro_1)
-C hard cross sections and MC selection weights
- INTEGER Max_pro_2
- PARAMETER ( Max_pro_2 = 16 )
- INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
- & MH_acc_1,MH_acc_2
- DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
- COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
- & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
- & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
- & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
- & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
-C interpolation tables for hard cross section and MC selection weights
- INTEGER Max_tab_E,Max_tab_Q2,Max_pro_tab
- PARAMETER ( Max_tab_E = 20, Max_tab_Q2 = 10, Max_pro_tab = 16 )
- INTEGER IH_Q2a_up,IH_Q2b_up,IH_Ecm_up
- DOUBLE PRECISION Hfac_tab,HWgx_tab,HSig_tab,Hdpt_tab,
- & HQ2a_tab,HQ2b_tab,HEcm_tab
- COMMON /POHTAB/
- & Hfac_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & HWgx_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & HSig_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & Hdpt_tab(-1:Max_pro_tab,Max_tab_E,Max_tab_Q2,Max_tab_Q2,0:4),
- & HQ2a_tab(1:Max_tab_Q2,0:4),HQ2b_tab(1:Max_tab_Q2,0:4),
- & HEcm_tab(1:Max_tab_E,0:4),
- & IH_Q2a_up(0:4),IH_Q2b_up(0:4),IH_Ecm_up(0:4)
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-
- COMPLEX*16 DSIG
- DIMENSION DSIG(0:Max_pro_2),DSPT(0:Max_pro_2)
-
-C initialization for all pt cutoffs
- I = ABS(IP)
- IL = I
- IF(IP.LT.0) THEN
- IL = 0
- PTC = HSWCUT(4+I)
- else
- PTC = pho_ptcut(parmdl(19),I)
- ENDIF
-
-C skip unassigned PTCUT
- IF(PTC.LT.0.5D0) GOTO 1000
-
- IH_Q2a_up(I) = 1
- IH_Q2b_up(I) = 1
- do ib=1,Max_tab_Q2
- do ia=1,Max_tab_Q2
- do ie=1,Max_tab_E
- do m=-1,Max_pro_2
- Hfac_tab(M,Ie,Ia,Ib,I) = 0.D0
- HWgx_tab(M,Ie,Ia,Ib,I) = 0.D0
- HSig_tab(M,Ie,Ia,Ib,I) = 0.D0
- Hdpt_tab(M,Ie,Ia,Ib,I) = 0.D0
- enddo
- enddo
- enddo
- enddo
-
- ELLOW = LOG(2.05*PTC)
- DELTA = (LOG(EMAXF)-ELLOW)/DBLE(IH_Ecm_up(I)-1)
-C energy too low
- IF(DELTA.LE.0.D0) GOTO 1000
-
-C switch between external particles and Pomeron
- IF(I.EQ.4) THEN
- IDP1 = 990
- PV1 = 0.D0
- IDP2 = 990
- PV2 = 0.D0
- ELSE IF(I.EQ.3) THEN
- IDP1 = IFPAP(2)
- PV1 = PVIRT(2)
- IDP2 = 990
- PV2 = 0.D0
- ELSE IF(I.EQ.2) THEN
- IDP1 = IFPAP(1)
- PV1 = PVIRT(1)
- IDP2 = 990
- PV2 = 0.D0
- ELSE
- IDP1 = IFPAP(1)
- PV1 = PVIRT(1)
- IDP2 = IFPAP(2)
- PV2 = PVIRT(2)
- ENDIF
-
-C initialize PT scales
- IF((IDPDG1.EQ.22).OR.(IDPDG1.EQ.990)) THEN
- IF((IDPDG2.EQ.22).OR.(IDPDG2.EQ.990)) THEN
- FPS(I) = PARMDL(105)
- FPH(I) = PARMDL(106)
- ELSE
- FPS(I) = PARMDL(103)
- FPH(I) = PARMDL(104)
- ENDIF
- ELSE IF((IDPDG2.EQ.22).OR.(IDPDG2.EQ.990)) THEN
- FPS(I) = PARMDL(103)
- FPH(I) = PARMDL(104)
- ELSE
- FPS(I) = PARMDL(101)
- FPH(I) = PARMDL(102)
- ENDIF
-
-C initialize hard scattering
- IF(IP.GT.0) THEN
- CALL PHO_HARINI(I,IDP1,IDP2,PV1,PV2,6,IDEB(8)+1)
- ELSE
- CALL PHO_HARINI(I,IDP1,IDP2,PV1,PV2,6,IDEB(8))
- ENDIF
-
-C energy/virtuality grid
- do Ie=1,IH_Ecm_up(IL)
- HEcm_tab(Ie,IL) = EXP(ELLOW+DELTA*(IE-1))
- enddo
- do Ia=1,IH_Q2a_up(IL)
- HQ2a_tab(Ia,IL) = 0.D0
- enddo
- do Ib=1,IH_Q2b_up(IL)
- HQ2b_tab(Ib,IL) = 0.D0
- enddo
-
-C initialization for several energies and particle virtualities
- do Ie=1,IH_Ecm_up(IL)
- do Ia=1,IH_Q2a_up(IL)
- do Ib=1,IH_Q2b_up(IL)
-
- EE = HEcm_tab(IE,IL)
- Q2a = HQ2a_tab(Ia,IL)
- Q2b = HQ2b_tab(Ib,IL)
- CALL PHO_HARINT(IP,EE,0.D0,0.D0,0,-2,0,0,1)
- IF(IDEB(8).GE.5) WRITE(LO,'(1X,A,2E10.3,2I7)')
- & 'PHO_HARMCI: initialization PT,ECM,ID1,ID2:',
- & PTCUT(I),EE,IDPDG1,IDPDG2
- Hfac_tab(0,Ie,Ia,Ib,IL) = PTCUT(I)
- CALL PHO_HARFAC(PTCUT(I),EE)
- CALL PHO_HARWGX(PTCUT(I),EE)
- CALL PHO_HARXTO(EE,PTCUT(I),PTCUT(I),DSIG,DSPT)
- IF(IDEB(8).GE.10) THEN
- WRITE(LO,'(1X,A,/,1X,A)')
- & 'hard cross sections SIGH(mb),DSIG/DPT(mb/GeV**2)',
- & '------------------------------------------------'
- DO M=0,Max_pro_2
- WRITE(LO,'(10X,A,1P2E14.4)')
- & PROC(M),DREAL(DSIG(M)),DSPT(M)
- ENDDO
- ENDIF
-
-C store in interpolation tables
- Hfac_tab(-1,IE,Ia,Ib,IL) = Hfac(-1)
- HWgx_tab(-1,IE,Ia,Ib,IL) = HWgx(-1)
- do M=0,Max_pro_2
- Hfac_tab(M,IE,Ia,Ib,IL) = Hfac(M)
- HWgx_tab(M,IE,Ia,Ib,IL) = HWgx(M)
- HSig_tab(M,IE,Ia,Ib,IL) = DREAL(DSIG(M))*MH_pro_on(M,I)
- Hdpt_tab(M,IE,Ia,Ib,IL) = DSPT(M)*MH_pro_on(M,I)
- enddo
-
-C summed quantities
- HSig_tab(9,IE,Ia,Ib,IL) = 0.D0
- Hdpt_tab(9,IE,Ia,Ib,IL) = 0.D0
- do M=1,8
- IF(MH_pro_on(M,I).GT.0) THEN
- HSig_tab(9,IE,Ia,Ib,IL) =
- & HSig_tab(9,IE,Ia,Ib,IL) + HSig_tab(M,IE,Ia,Ib,IL)
- Hdpt_tab(9,IE,Ia,Ib,IL) =
- & Hdpt_tab(9,IE,Ia,Ib,IL) + Hdpt_tab(M,IE,Ia,Ib,IL)
- ENDIF
- enddo
- HSig_tab(15,IE,Ia,Ib,IL) = 0.D0
- Hdpt_tab(15,IE,Ia,Ib,IL) = 0.D0
- do M=10,14
- IF(MH_pro_on(M,I).GT.0) THEN
- HSig_tab(15,IE,Ia,Ib,IL) =
- & HSig_tab(15,IE,Ia,Ib,IL) + HSig_tab(M,IE,Ia,Ib,IL)
- Hdpt_tab(15,IE,Ia,Ib,IL) =
- & Hdpt_tab(15,IE,Ia,Ib,IL) + Hdpt_tab(M,IE,Ia,Ib,IL)
- ENDIF
- enddo
- HSig_tab(0,IE,Ia,Ib,IL) =
- & HSig_tab(9,IE,Ia,Ib,IL) + HSig_tab(15,IE,Ia,Ib,IL)
- Hdpt_tab(0,IE,Ia,Ib,IL) =
- & Hdpt_tab(9,IE,Ia,Ib,IL) + Hdpt_tab(15,IE,Ia,Ib,IL)
-
- enddo
- enddo
- enddo
-
-C debug output of weights
- 1000 CONTINUE
- IF(IDEB(8).GE.5) THEN
- WRITE(LO,'(/1X,A,5X,2I7,I3,F7.2,/1X,A)')
- & 'PHO_HARMCI: weights, maxima (ID1/2,IP,PTC)',
- & IDPDG1,IDPDG2,IP,PTCUT(I),
- & '------------------------------------------'
- DO M=-1,Max_pro_2
- IF((M.EQ.0).OR.(M.EQ.9).OR.(M.EQ.15)) GOTO 512
- WRITE(LO,'(2X,A,I3,2I7)')
- & 'PHO_HARMCI: ECM Hfac, HWgx, HSig, Hdpt for MSTR,ID1,ID2',
- & M,IDPDG1,IDPDG2
- do k=1,IH_Ecm_up(IL)
- do ia=1,IH_Q2a_up(IL)
- do ib=1,IH_Q2b_up(IL)
- WRITE(LO,'(3X,1p,7E10.3)') HEcm_tab(k,IL),
- & HQ2a_tab(ia,IL),HQ2b_tab(ib,IL),
- & Hfac_tab(M,k,ia,ib,IL),HWgx_tab(M,k,ia,ib,IL),
- & HSig_tab(M,k,ia,ib,IL),Hdpt_tab(M,k,ia,ib,IL)
- enddo
- enddo
- enddo
- 512 CONTINUE
- ENDDO
- ENDIF
-
- END
-
-CDECK ID>, PHO_HARXR3
- SUBROUTINE PHO_HARXR3(ECMH,PT,ETAC,ETAD,DSIGMC)
-C**********************************************************************
-C
-C differential cross section DSIG/(DETAC*DETAD*DPT)
-C
-C input: ECMH CMS energy
-C PT parton PT
-C ETAC pseudorapidity of parton C
-C ETAD pseudorapidity of parton D
-C
-C output: DSIGMC(0:15) QCD-PM cross sections dsigma/dpt/detac/detad
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( TINY= 1.D-30, ONEP1=1.1, TINY6=1.D-06, EPS=1.D-20)
-
- PARAMETER ( Max_pro_2 = 16 )
- COMPLEX*16 DSIGMC
- DIMENSION DSIGMC(0:Max_pro_2)
- DIMENSION DSIGM(0:Max_pro_2)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C Reggeon phenomenology parameters
- DOUBLE PRECISION ALPOM,ALPOMP,GP,B0POM,ALREG,ALREGP,GR,B0REG,
- & GPPP,GPPR,B0PPP,B0PPR,VDMFAC,VDMQ2F,B0HAR,AKFAC
- COMMON /POPREG/ ALPOM,ALPOMP,GP(2),B0POM(2),
- & ALREG,ALREGP,GR(2),B0REG(2),
- & GPPP,GPPR,B0PPP,B0PPR,
- & VDMFAC(4),VDMQ2F(4),B0HAR,AKFAC
-C currently activated parton density parametrizations
- CHARACTER*8 PDFNAM
- INTEGER IPARID,IPAVA,ITYPE,IGRP,ISET,IEXT,NPAOLD
- DOUBLE PRECISION PDFLAM,PDFQ2M
- COMMON /POPPDF/ PDFLAM(2),PDFQ2M(2),PDFNAM(2),IPARID(2),
- & IPAVA(2),ITYPE(2),IGRP(2),ISET(2),IEXT(2),NPAOLD
-C hard scattering parameters used for most recent hard interaction
- INTEGER NFbeta,NF
- DOUBLE PRECISION ALQCD2,BQCD
- COMMON /POHAPA/ ALQCD2(3,4),BQCD(4),NFbeta,NF
-C scale parameters for parton model calculations
- INTEGER NQQAL,NQQALI,NQQALF,NQQPD
- DOUBLE PRECISION AQQAL,AQQALI,AQQALF,AQQPD
- COMMON /POHSCL/ AQQAL,AQQALI,AQQALF,AQQPD,
- & NQQAL,NQQALI,NQQALF,NQQPD
-
- DOUBLE PRECISION PHO_ALPHAS
- DIMENSION PDA(-6:6),PDB(-6:6)
-
- DO 10 I=1,9
- DSIGMC(I) = CMPLX(0.D0,0.D0)
- DSIGM(I) = 0.D0
-10 CONTINUE
-
- EC = EXP(ETAC)
- ED = EXP(ETAD)
-C kinematic conversions
- XA = PT*(EC+ED)/ECMH
- XB = XA/(EC*ED)
- IF((XA.GE.1.D0).OR.(XB.GE.1.D0)) THEN
- WRITE(LO,'(/1X,A,2E12.4)') 'PHO_HARXR3:ERROR:X1 OR X2 > 1',XA,XB
- RETURN
- ENDIF
- SP = XA*XB*ECMH*ECMH
- UP =-ECMH*PT*EC*XB
- UP = UP/SP
- TP =-(1.D0+UP)
- UU = UP*UP
- TT = TP*TP
-C set hard scale QQ for alpha and partondistr.
- IF ( NQQAL.EQ.1 ) THEN
- QQAL = AQQAL*PT*PT
- ELSEIF ( NQQAL.EQ.2 ) THEN
- QQAL = AQQAL*SP*UP*TP/(1.D0+TT+UU)
- ELSEIF ( NQQAL.EQ.3 ) THEN
- QQAL = AQQAL*SP
- ELSEIF ( NQQAL.EQ.4 ) THEN
- QQAL = AQQAL*SP*(UP*TP)**(1.D0/3.D0)
- ENDIF
- IF ( NQQPD.EQ.1 ) THEN
- QQPD = AQQPD*PT*PT
- ELSEIF ( NQQPD.EQ.2 ) THEN
- QQPD = AQQPD*SP*UP*TP/(1.D0+TT+UU)
- ELSEIF ( NQQPD.EQ.3 ) THEN
- QQPD = AQQPD*SP
- ELSEIF ( NQQPD.EQ.4 ) THEN
- QQPD = AQQPD*SP*(UP*TP)**(1.D0/3.D0)
- ENDIF
-
- ALPHA = PHO_ALPHAS(QQAL,3)
- FACTOR = PI2*GEV2MB*PT*(ALPHA/SP)**2*AKFAC
-C parton distributions (times x)
- CALL PHO_PDF(1,XA,QQPD,0.D0,PDA)
- CALL PHO_PDF(2,XB,QQPD,0.D0,PDB)
- S1 = PDA(0)*PDB(0)
- S2 = 0.D0
- S3 = 0.D0
- S4 = 0.D0
- S5 = 0.D0
- DO 20 I=1,NF
- S2 = S2+PDA(I)*PDB(-I)+PDA(-I)*PDB( I)
- S3 = S3+PDA(I)*PDB( I)+PDA(-I)*PDB(-I)
- S4 = S4+PDA(I)+PDA(-I)
- S5 = S5+PDB(I)+PDB(-I)
-20 CONTINUE
-C partial cross sections (including color and symmetry factors)
-C resolved photon matrix elements (light quarks)
- DSIGM(1) = 2.25D0*(3.-((UP*TP)+UP/TT+TP/UU))
- DSIGM(6) = (4.D0/9.D0)*(UU+TT)
- DSIGM(8) = (4.D0/9.D0)*(1.D0+UU)/TT
- DSIGM(2) = (16.D0/27.D0)*(UU+TT)/(UP*TP)-3.D0*DSIGM(6)
- DSIGM(3) = ((1.D0+UU)/TT)-(4.D0/9.D0)*(1.D0+UU)/UP
- DSIGM(4) = (9.D0/32.D0)*DSIGM(2)
- DSIGM(5) = DSIGM(6)+DSIGM(8)-(8.D0/27.D0)*UU/TP
- DSIGM(7) = 0.5D0*(DSIGM(8)+(4.D0/9.D0)*(1.D0+TT)/UU-
- & (8.D0/27.D0)/(UP*TP))
-C
- DSIGM(1) = FACTOR*DSIGM(1)*S1
- DSIGM(2) = FACTOR*DSIGM(2)*S2
- DSIGM(3) = FACTOR*DSIGM(3)*(PDA(0)*S5+PDB(0)*S4)
- DSIGM(4) = FACTOR*DSIGM(4)*S1*NF
- DSIGM(5) = FACTOR*DSIGM(5)*S2
- DSIGM(6) = FACTOR*DSIGM(6)*S2*MAX(0,(NF-1))
- DSIGM(7) = FACTOR*DSIGM(7)*S3
- DSIGM(8) = FACTOR*DSIGM(8)*(S4*S5-(S2+S3))
-C complex part
- X=ABS(TP-UP)
- FAC2 = -LOG((X+2.D0)/(X+1.D-30))/PI
-C
- DO 50 I=1,8
- IF(DSIGM(I).LT.EPS) DSIGM(I) = 0.D0
- DSIGMC(I) = CMPLX(DSIGM(I),DSIGM(I)*FAC2)
- DSIGMC(9) = DSIGMC(9)+DSIGMC(I)
- 50 CONTINUE
- END
-
-CDECK ID>, PHO_HARXR2
- SUBROUTINE PHO_HARXR2(ECMH,PT,ETAC,DSIGMC)
-C**********************************************************************
-C
-C differential cross section DSIG/(DETAC*DPT)
-C
-C input: ECMH CMS energy
-C PT parton PT
-C ETAC pseudorapidity of parton C
-C
-C output: DSIGMC(0:15) QCD-PM cross sections dsigma/dpt/detac
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( TINY= 1.D-20 )
-
- PARAMETER ( Max_pro_2 = 16 )
- COMPLEX*16 DSIGMC
- DIMENSION DSIGMC(0:Max_pro_2)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C integration precision for hard cross sections (obsolete)
- INTEGER NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
- COMMON /POGAUP/ NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
-
- COMPLEX*16 DSIG1
- DIMENSION DSIG1(0:Max_pro_2)
- DIMENSION ABSZ(32),WEIG(32)
-
- DO 10 M=1,9
- DSIGMC(M) = CMPLX(0.D0,0.D0)
- DSIG1(M) = 0.D0
-10 CONTINUE
-C
- EC = EXP(ETAC)
- ARG = ECMH/PT
- IF ( ARG.LE.EC .OR. ARG.LE.1.D0/EC ) RETURN
- EDU = LOG(ARG-EC)
- EDL =-LOG(ARG-1.D0/EC)
- NPOINT = NGAUET
- CALL PHO_GAUSET(EDL,EDU,NPOINT,ABSZ,WEIG)
- DO 30 I=1,NPOINT
- CALL PHO_HARXR3(ECMH,PT,ETAC,ABSZ(I),DSIG1)
- DO 20 M=1,9
- PCTRL= DREAL(DSIG1(M))/TINY
- IF( PCTRL.GE.1.D0 ) THEN
- DSIGMC(M) = DSIGMC(M)+WEIG(I)*DSIG1(M)
- ENDIF
-20 CONTINUE
-30 CONTINUE
- END
-
-CDECK ID>, PHO_HARXD2
- SUBROUTINE PHO_HARXD2(ECMH,PT,ETAC,DSIGMC)
-C**********************************************************************
-C
-C differential cross section DSIG/(DETAC*DPT) for direct processes
-C
-C input: ECMH CMS energy of scattering system
-C PT parton PT
-C ETAC pseudorapidity of parton C
-C
-C output: DSIGMC(0:15) QCD-PM cross sections dsigma/dpt/detac
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( Max_pro_2 = 16 )
- COMPLEX*16 DSIGMC
- DIMENSION DSIGMC(0:Max_pro_2)
- PARAMETER ( TINY= 1.D-30, ONEP1=1.1, TINY6=1.D-06, EPS=1.D-25)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C Reggeon phenomenology parameters
- DOUBLE PRECISION ALPOM,ALPOMP,GP,B0POM,ALREG,ALREGP,GR,B0REG,
- & GPPP,GPPR,B0PPP,B0PPR,VDMFAC,VDMQ2F,B0HAR,AKFAC
- COMMON /POPREG/ ALPOM,ALPOMP,GP(2),B0POM(2),
- & ALREG,ALREGP,GR(2),B0REG(2),
- & GPPP,GPPR,B0PPP,B0PPR,
- & VDMFAC(4),VDMQ2F(4),B0HAR,AKFAC
-C currently activated parton density parametrizations
- CHARACTER*8 PDFNAM
- INTEGER IPARID,IPAVA,ITYPE,IGRP,ISET,IEXT,NPAOLD
- DOUBLE PRECISION PDFLAM,PDFQ2M
- COMMON /POPPDF/ PDFLAM(2),PDFQ2M(2),PDFNAM(2),IPARID(2),
- & IPAVA(2),ITYPE(2),IGRP(2),ISET(2),IEXT(2),NPAOLD
-C hard scattering parameters used for most recent hard interaction
- INTEGER NFbeta,NF
- DOUBLE PRECISION ALQCD2,BQCD
- COMMON /POHAPA/ ALQCD2(3,4),BQCD(4),NFbeta,NF
-C some hadron information, will be deleted in future versions
- INTEGER NFS
- DOUBLE PRECISION QMASS,BET,PCOUDI,PNORM,VALPRG
- COMMON /POHDRN/ QMASS(6),BET,PCOUDI,PNORM,VALPRG(2),NFS
-C scale parameters for parton model calculations
- INTEGER NQQAL,NQQALI,NQQALF,NQQPD
- DOUBLE PRECISION AQQAL,AQQALI,AQQALF,AQQPD
- COMMON /POHSCL/ AQQAL,AQQALI,AQQALF,AQQPD,
- & NQQAL,NQQALI,NQQALF,NQQPD
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
- DOUBLE PRECISION PHO_ALPHAS,pho_alphae
- DIMENSION PDA(-6:6),PDB(-6:6),DSIGM(0:Max_pro_2)
-
-* ONE32=1.D0/9.D0
-* TWO32=4.D0/9.D0
- DO 10 I=10,13
- DSIGMC(I) = CMPLX(0.D0,0.D0)
- DSIGM(I) = 0.D0
- 10 CONTINUE
- DSIGMC(15) = CMPLX(0.D0,0.D0)
- DSIGM(15) = 0.D0
-
-C direct particle 1
- IF((IDPDG1.EQ.22).OR.(IDPDG1.EQ.990)) THEN
- EC = EXP(ETAC)
- ED = ECMH/PT-EC
-C kinematic conversions
- XA = 1.D0
- XB = 1.D0/(EC*ED)
- IF ( XB.GE.1.D0 ) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_HARXD2:ERROR: XB>1 (XA,XB)',XA,XB
- RETURN
- ENDIF
- SP = XA*XB*ECMH*ECMH
- UP =-ECMH*PT*EC*XB
- UP = UP/SP
- TP =-(1.D0+UP)
- UU = UP*UP
- TT = TP*TP
-C set hard scale QQ for alpha and partondistr.
- IF ( NQQAL.EQ.1 ) THEN
- QQAL = AQQAL*PT*PT
- ELSEIF ( NQQAL.EQ.2 ) THEN
- QQAL = AQQAL*SP*UP*TP/(1.D0+TT+UU)
- ELSEIF ( NQQAL.EQ.3 ) THEN
- QQAL = AQQAL*SP
- ELSEIF ( NQQAL.EQ.4 ) THEN
- QQAL = AQQAL*SP*(UP*TP)**(1.D0/3.D0)
- ENDIF
- IF ( NQQPD.EQ.1 ) THEN
- QQPD = AQQPD*PT*PT
- ELSEIF ( NQQPD.EQ.2 ) THEN
- QQPD = AQQPD*SP*UP*TP/(1.D0+TT+UU)
- ELSEIF ( NQQPD.EQ.3 ) THEN
- QQPD = AQQPD*SP
- ELSEIF ( NQQPD.EQ.4 ) THEN
- QQPD = AQQPD*SP*(UP*TP)**(1.D0/3.D0)
- ENDIF
-
- ALPHA2 = PHO_ALPHAS(QQAL,2)
- IF(IDPDG1.EQ.22) THEN
- ALPHA1 = pho_alphae(QQAL)
- ELSE IF(IDPDG1.EQ.990) THEN
- ALPHA1 = PARMDL(74)
- ENDIF
- FACTOR = -PI2*GEV2MB*UP/PT*ALPHA1*ALPHA2/SP*AKFAC
-C parton distribution (times x)
- CALL PHO_PDF(2,XB,QQPD,0.D0,PDB)
- S1 = PDB(0)
-C charge counting
- S2 = 0.D0
- S3 = 0.D0
- IF(IDPDG1.EQ.22) THEN
- DO 20 I=1,NF
-* IF(MOD(I,2).EQ.0) THEN
-* S2 = S2 + (PDB(I)+PDB(-I))*TWO32
-* S3 = S3 + TWO32
-* ELSE
-* S2 = S2 + (PDB(I)+PDB(-I))*ONE32
-* S3 = S3 + ONE32
-* ENDIF
- S2 = S2 + (PDB(I)+PDB(-I))*Q_ch2(I)
- S3 = S3 + Q_ch2(I)
- 20 CONTINUE
- ELSE IF(IDPDG1.EQ.990) THEN
- DO 25 I=1,NF
- S2 = S2 + PDB(I)+PDB(-I)
- 25 CONTINUE
- S3 = NF
- ENDIF
-C partial cross sections (including color and symmetry factors)
-C direct photon matrix elements
- DSIGM(10) = -8.D0/3.D0*(UU+1.D0)/UP
- DSIGM(11) = (UU+TT)/(UP*TP)
-C
- DSIGM(10) = FACTOR*DSIGM(10)*S2
- DSIGM(11) = FACTOR*DSIGM(11)*S1*S3
-C complex part
- X=ABS(TP-UP)
- FAC2 = -LOG((X+2.D0)/(X+1.D-30))/PI
-C
- DO 50 I=10,11
- IF(DSIGM(I).LT.0.D0) THEN
- WRITE(LO,'(1X,A,I3,1P,2E12.4)')
- & 'PHO_HARXD2: neg. cross section',I,DSIGM(I),ECMH
- DSIGM(I) = 0.D0
- ENDIF
- DSIGMC(I) = CMPLX(DSIGM(I),DSIGM(I)*FAC2)
- DSIGMC(15) = DSIGMC(15)+DSIGMC(I)
- 50 CONTINUE
- ENDIF
-C
-C direct particle 2
- IF((IDPDG2.EQ.22).OR.(IDPDG2.EQ.990)) THEN
- EC = EXP(ETAC)
- ED = 1.D0/(ECMH/PT-1.D0/EC)
-C kinematic conversions
- XA = PT*(EC+ED)/ECMH
- XB = 1.D0
- IF ( XA.GE.1.D0 ) THEN
- WRITE(LO,'(/1X,A,2E12.4)')
- & 'PHO_HARXD2:ERROR:XA>1 (XA,XB)',XA,XB
- RETURN
- ENDIF
- SP = XA*XB*ECMH*ECMH
- UP =-ECMH*PT*EC*XB
- UP = UP/SP
- TP =-(1.D0+UP)
- UU = UP*UP
- TT = TP*TP
-C set hard scale QQ for alpha and partondistr.
- IF ( NQQAL.EQ.1 ) THEN
- QQAL = AQQAL*PT*PT
- ELSEIF ( NQQAL.EQ.2 ) THEN
- QQAL = AQQAL*SP*UP*TP/(1.D0+TT+UU)
- ELSEIF ( NQQAL.EQ.3 ) THEN
- QQAL = AQQAL*SP
- ELSEIF ( NQQAL.EQ.4 ) THEN
- QQAL = AQQAL*SP*(UP*TP)**(1.D0/3.D0)
- ENDIF
- IF ( NQQPD.EQ.1 ) THEN
- QQPD = AQQPD*PT*PT
- ELSEIF ( NQQPD.EQ.2 ) THEN
- QQPD = AQQPD*SP*UP*TP/(1.D0+TT+UU)
- ELSEIF ( NQQPD.EQ.3 ) THEN
- QQPD = AQQPD*SP
- ELSEIF ( NQQPD.EQ.4 ) THEN
- QQPD = AQQPD*SP*(UP*TP)**(1.D0/3.D0)
- ENDIF
-
- ALPHA1 = PHO_ALPHAS(QQAL,1)
- IF(IDPDG2.EQ.22) THEN
- ALPHA2 = pho_alphae(QQAL)
- ELSE IF(IDPDG2.EQ.990) THEN
- ALPHA2 = PARMDL(74)
- ENDIF
- FACTOR = -PI2*GEV2MB*TP/PT*ALPHA1*ALPHA2/SP*AKFAC
-C parton distribution (times x)
- CALL PHO_PDF(1,XA,QQPD,0.D0,PDA)
- S1 = PDA(0)
-C charge counting
- S2 = 0.D0
- S3 = 0.D0
- IF(IDPDG2.EQ.22) THEN
- DO 70 I=1,NF
-* IF(MOD(I,2).EQ.0) THEN
-* S2 = S2 + (PDA(I)+PDA(-I))*TWO32
-* S3 = S3 + TWO32
-* ELSE
-* S2 = S2 + (PDA(I)+PDA(-I))*ONE32
-* S3 = S3 + ONE32
-* ENDIF
- S2 = S2 + (PDA(I)+PDA(-I))*Q_ch2(I)
- S3 = S3 + Q_ch2(I)
- 70 CONTINUE
- ELSE IF(IDPDG2.EQ.990) THEN
- DO 75 I=1,NF
- S2 = S2 + PDA(I)+PDA(-I)
- 75 CONTINUE
- S3 = NF
- ENDIF
-C partial cross sections (including color and symmetry factors)
-C direct photon matrix elements
- DSIGM(12) = -8.D0/3.D0*(TT+1.D0)/TP
- DSIGM(13) = (UU+TT)/(UP*TP)
-C
- DSIGM(12) = FACTOR*DSIGM(12)*S2
- DSIGM(13) = FACTOR*DSIGM(13)*S3*S1
-C complex part
- X=ABS(TP-UP)
- FAC2 = -LOG((X+2.D0)/(X+1.D-30))/PI
-C
- DO 80 I=12,13
- IF(DSIGM(I).LT.0.D0) THEN
- WRITE(LO,'(1X,A,I3,1P,2E12.4)')
- & 'PHO_HARXD2: neg. cross section:',I,DSIGM(I),ECMH
- DSIGM(I) = 0.D0
- ENDIF
- DSIGMC(I) = CMPLX(DSIGM(I),DSIGM(I)*FAC2)
- DSIGMC(15) = DSIGMC(15)+DSIGMC(I)
- 80 CONTINUE
- ENDIF
- END
-
-CDECK ID>, PHO_HARXPT
- SUBROUTINE PHO_HARXPT(ECMH,PT,IPRO,DSIGMC)
-C**********************************************************************
-C
-C differential cross section DSIG/DPT
-C
-C input: ECMH CMS energy of scattering system
-C PT parton PT
-C IPRO 1 resolved processes
-C 2 direct processes
-C 3 resolved and direct processes
-C
-C output: DSIGMC(0:12) QCD-PM cross sections dsigma/dpt
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( Max_pro_2 = 16 )
- COMPLEX*16 DSIGMC
- DIMENSION DSIGMC(0:Max_pro_2)
- PARAMETER ( TINY= 1.D-10, ONEP1=1.1, EPS=1.D-25)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C Reggeon phenomenology parameters
- DOUBLE PRECISION ALPOM,ALPOMP,GP,B0POM,ALREG,ALREGP,GR,B0REG,
- & GPPP,GPPR,B0PPP,B0PPR,VDMFAC,VDMQ2F,B0HAR,AKFAC
- COMMON /POPREG/ ALPOM,ALPOMP,GP(2),B0POM(2),
- & ALREG,ALREGP,GR(2),B0REG(2),
- & GPPP,GPPR,B0PPP,B0PPR,
- & VDMFAC(4),VDMQ2F(4),B0HAR,AKFAC
-C integration precision for hard cross sections (obsolete)
- INTEGER NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
- COMMON /POGAUP/ NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
-C hard scattering parameters used for most recent hard interaction
- INTEGER NFbeta,NF
- DOUBLE PRECISION ALQCD2,BQCD
- COMMON /POHAPA/ ALQCD2(3,4),BQCD(4),NFbeta,NF
-C some hadron information, will be deleted in future versions
- INTEGER NFS
- DOUBLE PRECISION QMASS,BET,PCOUDI,PNORM,VALPRG
- COMMON /POHDRN/ QMASS(6),BET,PCOUDI,PNORM,VALPRG(2),NFS
-
- double precision pho_alphae
-
- COMPLEX*16 DSIG1
- DIMENSION DSIG1(0:Max_pro_2)
- DIMENSION ABSZ(32),WEIG(32)
-
- DO 10 M=0,Max_pro_2
- DSIGMC(M) = CMPLX(0.D0,0.D0)
- DSIG1(M) = CMPLX(0.D0,0.D0)
- 10 CONTINUE
-
-C resolved and direct processes
- AMT = 2.D0*PT/ECMH
- IF ( AMT.GE.1.D0 ) RETURN
- ECU = LOG((SQRT(1.D0-AMT*AMT)+1.D0)/AMT)
- ECL = -ECU
- NPOINT = NGAUET
- CALL PHO_GAUSET(ECL,ECU,NPOINT,ABSZ,WEIG)
- DO 30 I=1,NPOINT
- DSIG1(9) = CMPLX(0.D0,0.D0)
- DSIG1(15) = CMPLX(0.D0,0.D0)
- IF(IPRO.EQ.1) THEN
- CALL PHO_HARXR2(ECMH,PT,ABSZ(I),DSIG1)
- ELSE IF(IPRO.EQ.2) THEN
- CALL PHO_HARXD2(ECMH,PT,ABSZ(I),DSIG1)
- ELSE
- CALL PHO_HARXR2(ECMH,PT,ABSZ(I),DSIG1)
- CALL PHO_HARXD2(ECMH,PT,ABSZ(I),DSIG1)
- ENDIF
- DO 20 M=1,Max_pro_2
- DSIGMC(M) = DSIGMC(M)+WEIG(I)*DSIG1(M)
- 20 CONTINUE
- 30 CONTINUE
-
-C direct processes
- IF(((IDPDG1.EQ.22).OR.(IDPDG1.EQ.990))
- & .AND.((IDPDG2.EQ.22).OR.(IDPDG2.EQ.990))) THEN
- FAC = 0.D0
- SS = ECMH*ECMH
- ALPHAE = pho_alphae(SS)
- DO 300 I=1,NF
- IF(IDPDG1.EQ.22) THEN
-* F1 = (4.D0-3.D0*MOD(I,2))/9.D0*ALPHAE
- F1 = Q_ch2(I)*ALPHAE
- ELSE
- F1 = PARMDL(74)
- ENDIF
- IF(IDPDG2.EQ.22) THEN
-* F2 = (4.D0-3.D0*MOD(I,2))/9.D0*ALPHAE
- F2 = Q_ch2(I)*ALPHAE
- ELSE
- F2 = PARMDL(74)
- ENDIF
- FAC = FAC+F1*F2*3.D0
- 300 CONTINUE
-C direct cross sections
- ZZ = SQRT(1.D0-4.D0*PT*PT/SS+TINY)
- T1 = -SS/2.D0*(1.D0+ZZ)
- T2 = -SS/2.D0*(1.D0-ZZ)
- XM = -2.D0*PT/ZZ*((SS+T1)/T1+T1/(SS+T1)+(SS+T2)/T2+T2/(SS+T2))
-C hadronic part
- DSIGMC(14) = GEV2MB*2.D0*PI*FAC/(SS*SS)*XM*AKFAC
-
-C leptonic part (e, mu, tau)
- DSIGMC(16) = 0.D0
- IF((IDPDG1.EQ.22).AND.(IDPDG2.EQ.22)) THEN
- DSIGMC(16) = DSIGMC(14)/FAC*3.D0*ALPHAE**2
-C simulation of tau together with quarks
- IF(IPAMDL(64).NE.0) DSIGMC(14) = DSIGMC(14)+DSIGMC(16)/3.D0
- ENDIF
- ENDIF
-
- DSIGMC(15) = DSIGMC(15)+DSIGMC(14)
- DSIGMC(0) = DSIGMC(9)+DSIGMC(15)
-
- END
-
-CDECK ID>, PHO_HARXTO
- SUBROUTINE PHO_HARXTO(ECMH,PTCUTR,PTCUTD,DSIGMC,DSDPTC)
-C**********************************************************************
-C
-C total hard cross section (perturbative QCD, Parton Model)
-C
-C input: ECMH CMS energy of scattering system
-C PTCUTR PT cutoff for resolved processes
-C PTCUTD PT cutoff for direct processes (photon, Pomeron)
-C
-C output: DSIGMC(0:MARPR2) cross sections for given cutoff
-C DSDPTC(0:MARPR2) differential cross sections at cutoff
-C
-C note: COMPLEX*16 DSIGMC
-C DOUBLE PRECISION DSDPTC
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( Max_pro_2 = 16 )
- COMPLEX*16 DSIGMC
- DIMENSION DSIGMC(0:Max_pro_2),DSDPTC(0:Max_pro_2)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C Reggeon phenomenology parameters
- DOUBLE PRECISION ALPOM,ALPOMP,GP,B0POM,ALREG,ALREGP,GR,B0REG,
- & GPPP,GPPR,B0PPP,B0PPR,VDMFAC,VDMQ2F,B0HAR,AKFAC
- COMMON /POPREG/ ALPOM,ALPOMP,GP(2),B0POM(2),
- & ALREG,ALREGP,GR(2),B0REG(2),
- & GPPP,GPPR,B0PPP,B0PPR,
- & VDMFAC(4),VDMQ2F(4),B0HAR,AKFAC
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C integration precision for hard cross sections (obsolete)
- INTEGER NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
- COMMON /POGAUP/ NGAUP1,NGAUP2,NGAUET,NGAUIN,NGAUSO
-C some hadron information, will be deleted in future versions
- INTEGER NFS
- DOUBLE PRECISION QMASS,BET,PCOUDI,PNORM,VALPRG
- COMMON /POHDRN/ QMASS(6),BET,PCOUDI,PNORM,VALPRG(2),NFS
-C hard scattering parameters used for most recent hard interaction
- INTEGER NFbeta,NF
- DOUBLE PRECISION ALQCD2,BQCD
- COMMON /POHAPA/ ALQCD2(3,4),BQCD(4),NFbeta,NF
-
- double precision pho_alphae
-
- COMPLEX*16 DSIG1
- DIMENSION DSIG1(0:Max_pro_2)
- DIMENSION ABSZ(32),WEIG(32)
-
- DATA FAC / 3.0D0 /
-
- DO 10 M=0,Max_pro_2
- DSIGMC(M)= CMPLX(0.D0,0.D0)
- 10 CONTINUE
- EEC=ECMH/2.001D0
-C
- IF ( PTCUTR.GE.EEC ) GOTO 100
-C
-C integration for resolved processes
- PTMIN = PTCUTR
- PTMAX = MIN(FAC*PTMIN,EEC)
- NPOINT = NGAUP1
- CALL PHO_HARXPT(ECMH,PTMIN,1,DSIG1)
- DO 60 M=1,9
- DSDPTC(M) = DREAL(DSIG1(M))
- 60 CONTINUE
- DSIGH = DREAL(DSIG1(9))
- PTMXX = 0.95D0*PTMAX
- CALL PHO_HARXPT(ECMH,PTMXX,1,DSIG1)
- DSIGL = DREAL(DSIG1(9))
- EX = LOG(DSIGH/(DSIGL+1.D-30))/LOG(FAC)
- EX1 = 1.0D0-EX
- DO 50 K=1,2
- IF ( PTMIN.GE.PTMAX ) GOTO 40
- RL = PTMIN**EX1
- RU = PTMAX**EX1
- CALL PHO_GAUSET(RL,RU,NPOINT,ABSZ,WEIG)
- DO 30 I=1,NPOINT
- R = ABSZ(I)
- PT = R**(1.0D0/EX1)
- CALL PHO_HARXPT(ECMH,PT,1,DSIG1)
- F = WEIG(I)*PT/(R*EX1)
- DO 20 M=1,9
- DSIGMC(M) = DSIGMC(M)+F*DSIG1(M)
- 20 CONTINUE
- 30 CONTINUE
- 40 PTMIN = PTMAX
- PTMAX = EEC
- NPOINT = NGAUP2
- 50 CONTINUE
- 100 CONTINUE
- DSIGMC(0) = DSIGMC(9)
- DSDPTC(0) = DSDPTC(9)
-C
-C integration for direct processes
- IF((PTCUTD.GE.EEC).OR.(PTCUTD.LT.0.5D0)) RETURN
-C
- IF((IDPDG1.EQ.22).OR.(IDPDG1.EQ.990)
- & .OR.(IDPDG2.EQ.22).OR.(IDPDG2.EQ.990)) THEN
- PTMIN = PTCUTD
- PTMAX = MIN(FAC*PTMIN,EEC)
- NPOINT = NGAUP1
- CALL PHO_HARXPT(ECMH,PTMIN,2,DSIG1)
- IF(DREAL(DSIG1(15)).LT.1.D-15) GOTO 170
- DO 160 M=10,16
- DSDPTC(M) = DREAL(DSIG1(M))
- 160 CONTINUE
- DSIGH = DREAL(DSIG1(15)-DSIG1(14))
- PTMXX = 0.95D0*PTMAX
- CALL PHO_HARXPT(ECMH,PTMXX,2,DSIG1)
- DSIGL = DREAL(DSIG1(15)-DSIG1(14))
- EX = LOG(DSIGH/(DSIGL+1.D-30))/LOG(FAC)
- EX1 = 1.0D0-EX
- DO 150 K=1,2
- IF ( PTMIN.GE.PTMAX ) GOTO 140
- RL = PTMIN**EX1
- RU = PTMAX**EX1
- CALL PHO_GAUSET(RL,RU,NPOINT,ABSZ,WEIG)
- DO 130 I=1,NPOINT
- R = ABSZ(I)
- PT = R**(1.0D0/EX1)
- CALL PHO_HARXPT(ECMH,PT,2,DSIG1)
- F = WEIG(I)*PT/(R*EX1)
- DO 120 M=10,15
- DSIGMC(M) = DSIGMC(M)+F*DSIG1(M)
- 120 CONTINUE
- 130 CONTINUE
- 140 PTMIN = PTMAX
- PTMAX = EEC
- NPOINT = NGAUP2
- 150 CONTINUE
- ENDIF
-C
- 170 CONTINUE
-C
-C double direct process
- IF(((IDPDG1.EQ.22).OR.(IDPDG1.EQ.990))
- & .AND.((IDPDG2.EQ.22).OR.(IDPDG2.EQ.990))) THEN
- FACC = 0.D0
- SS = ECMH*ECMH
- ALPHAE = pho_alphae(SS)
- DO 300 I=1,NF
- IF(IDPDG1.EQ.22) THEN
-* F1 = (4.D0-3.D0*MOD(I,2))/9.D0*ALPHAE
- F1 = Q_ch2(I)*ALPHAE
- ELSE
- F1 = PARMDL(74)
- ENDIF
- IF(IDPDG2.EQ.22) THEN
-* F2 = (4.D0-3.D0*MOD(I,2))/9.D0*ALPHAE
- F2 = Q_ch2(I)*ALPHAE
- ELSE
- F2 = PARMDL(74)
- ENDIF
- FACC = FACC + F1*F2*3.D0
- 300 CONTINUE
-
- ZZ = SQRT(1.D0-4.D0*PTCUTD*PTCUTD/SS)
- R = 4.D0*PI/SS*(LOG((1.D0+ZZ)/(1.D0-ZZ))-ZZ)*GEV2MB
-C hadronic cross section
- DSIGMC(14) = R*FACC*AKFAC
-C leptonic cross section
- IF((IDPDG1.EQ.22).AND.(IDPDG2.EQ.22)) THEN
- DSIGMC(16) = R*3.D0*ALPHAE**2*AKFAC
-C simulation of tau together with quarks
- IF(IPAMDL(64).NE.0) DSIGMC(14) = DSIGMC(14)+DSIGMC(16)/3.D0
- DSIGMC(16) = DSIGMC(16)*2.D0/3.D0
- ELSE
- DSIGMC(16) = CMPLX(0.D0,0.D0)
- ENDIF
-C sum of direct part
- DSIGMC(15) = CMPLX(0.D0,0.D0)
- DO 400 I=10,14
- DSIGMC(15) = DSIGMC(15) + DSIGMC(I)
- 400 CONTINUE
- ENDIF
-C total sum (hadronic)
- DSIGMC(0) = DSIGMC(9) + DSIGMC(15)
- DSDPTC(0) = DSDPTC(9) + DSDPTC(15)
-
- END
-
-CDECK ID>, PHO_HARISR
- SUBROUTINE PHO_HARISR(IHPOM,P1,P2,IPF1,IPF2,IPA1,IPA2,IV1,IV2,Q2H,
- & XH1,XH2,XHMAX1,XHMAX2,IPB1,IPB2,IVO1,IVO2,XISR1,XISR2,IREJ)
-C********************************************************************
-C
-C initial state radiation according to DGLAP evolution equations
-C (backward evolution, no spin effects)
-C
-C input: IHPOM index of hard Pomeron
-C negative: delete all previous entries
-C P1,P2 4 momenta of hard scattered final partons
-C (in CMS of hard scattering)
-C IPF1,2 flavours of final partons
-C IPA1,2 flavours of initial partons
-C IV1,2 valence quark labels (0/1)
-C Q2H momentum transfer (squared, positive)
-C XH1,XH2 x values of initial partons
-C XHMAX1,2 max. x values allowed
-C
-C output: all emitted partons in /POPISR/, final state
-C partons are the first two entries
-C shower evolution traced in /PODGL1/
-C IPB1,2 flavours of new initial partons
-C XISR1,2 x values of new initial partons
-C IVO1,2 valence quark labels (0/1)
-C
-C attention: quark numbering according to PDG convention,
-C but 0 for gluons
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER (RHOMAS = 0.766D0,
- & DEPS = 1.D-10,
- & TINY = 1.D-10)
-
- DIMENSION P1(4),P2(4)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C data of c.m. system of Pomeron / Reggeon exchange
- INTEGER NPOSP,IDPDG1,IDBAM1,IDPDG2,IDBAM2
- DOUBLE PRECISION ECMP,PCMP,PMASSP,PVIRTP,GAMBEP,
- & SIDP,CODP,SIFP,COFP
- COMMON /POPCMS/ ECMP,PCMP,PMASSP(2),PVIRTP(2),GAMBEP(4),
- & SIDP,CODP,SIFP,COFP,NPOSP(2),
- & IDPDG1,IDBAM1,IDPDG2,IDBAM2
-C some hadron information, will be deleted in future versions
- INTEGER NFS
- DOUBLE PRECISION QMASS,BET,PCOUDI,PNORM,VALPRG
- COMMON /POHDRN/ QMASS(6),BET,PCOUDI,PNORM,VALPRG(2),NFS
-C currently activated parton density parametrizations
- CHARACTER*8 PDFNAM
- INTEGER IPARID,IPAVA,ITYPE,IGRP,ISET,IEXT,NPAOLD
- DOUBLE PRECISION PDFLAM,PDFQ2M
- COMMON /POPPDF/ PDFLAM(2),PDFQ2M(2),PDFNAM(2),IPARID(2),
- & IPAVA(2),ITYPE(2),IGRP(2),ISET(2),IEXT(2),NPAOLD
-C scale parameters for parton model calculations
- INTEGER NQQAL,NQQALI,NQQALF,NQQPD
- DOUBLE PRECISION AQQAL,AQQALI,AQQALF,AQQPD
- COMMON /POHSCL/ AQQAL,AQQALI,AQQALF,AQQPD,
- & NQQAL,NQQALI,NQQALF,NQQPD
-C parameters for DGLAP backward evolution in ISR
- INTEGER NFSISR
- DOUBLE PRECISION Q2MISR,PMISR,ZMISR,AL2ISR
- COMMON /PODGL1/ Q2MISR(2),PMISR(2),ZMISR(2),AL2ISR(2),NFSISR
-C initial state parton radiation (internal part)
- INTEGER MXISR3,MXISR4
- PARAMETER ( MXISR3 = 50, MXISR4 = 100 )
- INTEGER IFL1,IFL2,IBRA,IFANO,ISH,NACC
- DOUBLE PRECISION Q2SH,PT2SH,XPSH,ZPSH,THSH,SHAT
- COMMON /POINT6/ Q2SH(2,MXISR3),PT2SH(2,MXISR3),XPSH(2,MXISR3),
- & ZPSH(2,MXISR3),THSH(2,MXISR3),SHAT(MXISR3),
- & IFL1(2,MXISR3),IFL2(2,MXISR3),
- & IBRA(2,MXISR4),IFANO(2),ISH(2),NACC
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C particles created by initial state evolution
- INTEGER MXISR1,MXISR2
- PARAMETER ( MXISR1 = 150, MXISR2 = 50 )
- INTEGER IFLISR,IPOISR,IMXISR
- DOUBLE PRECISION PHISR
- COMMON /POPISR/ IFLISR(2,MXISR1),PHISR(2,4,MXISR1),
- & IPOISR(2,2,MXISR2),IMXISR(2)
-
- DOUBLE PRECISION PYP,EER,THER,QMAXR
- INTEGER PYK
-
- DIMENSION XHMA(2),NEXT(2),PD1(-6:6),PD2(-6:6),WGGAP(-6:6),
- & WGPDF(-6:6),XHMI(2),GB(4),PM(4),PN(4),PC(2,4),Q2(2),
- & IVAL(2),IPAL(2),IL(2),IFSUM(2),IDMO(2)
-
- IREJ = 0
- NTRY = 1000
- NITER = 0
-C debug output
- IF(IDEB(79).GE.10) THEN
- WRITE(LO,'(1X,A,/1X,I10,3I3,5E11.3,2(/5X,4E12.3))')
- & 'PHO_HARISR: KEV,IHPOM,IP1,IP2,Q2H,XH1,XH2,XHM1,XHM2:',
- & KEVENT,IHPOM,IPA1,IPA2,Q2H,XH1,XH2,XHMAX1,XHMAX2,P1,P2
- ENDIF
- IF(IHPOM.EQ.0) RETURN
-C
- 10 CONTINUE
- NACC = 0
- IDMO(1) = IDPDG1
- IDMO(2) = IDPDG2
-C
-C copy final state partons to local fields
- IHIDX = ABS(IHPOM)
-
- IF(IHIDX.GT.MXISR2) THEN
- WRITE(LO,'(1X,2A,2I4)') 'PHO_HARISR: no space left in ',
- & '/POPISR/ for hard scattering labels (IHIDX,MXISR2):',
- & IHIDX,MXISR2
- IREJ = 1
- ENDIF
-
- DO 50 K=1,2
- IF(IHPOM.LT.0) IMXISR(K) = 0
- IPOISR(K,1,IHIDX) = IMXISR(K)+1
- IPAL(K) = IPOISR(K,1,IHIDX)
- 50 CONTINUE
- DO 55 I=1,4
- PHISR(1,I,IPAL(1)) = P1(I)
- PHISR(2,I,IPAL(2)) = P2(I)
- 55 CONTINUE
- IFLISR(1,IPAL(1)) = IPF1
- IFLISR(2,IPAL(2)) = IPF2
-C
-C check limitations, initialize /PODGL1/
- IF((Q2H.GT.Q2MISR(1)).AND.(XH1.LT.XHMAX1)) THEN
- NEXT(1) = 1
- Q2SH(1,1) = Q2H
- ELSE
- NEXT(1) = 0
- Q2SH(1,1) = 0.D0
- ENDIF
- IF((Q2H.GT.Q2MISR(2)).AND.(XH2.LT.XHMAX2)) THEN
- NEXT(2) = 1
- Q2SH(2,1) = Q2H
- ELSE
- NEXT(2) = 0
- Q2SH(2,1) = 0.D0
- ENDIF
-C
- ISH(1) = 1
- ISH(2) = 1
- XPSH(1,1) = XH1
- XPSH(2,1) = XH2
-C
- IFL1(1,1) = IPA1
- IVAL(1) = IV1
- IF((IPA1.EQ.22).OR.(IPA1.EQ.990)) NEXT(1) = 0
- IFL1(2,1) = IPA2
- IVAL(2) = IV2
- IF((IPA2.EQ.22).OR.(IPA2.EQ.990)) NEXT(2) = 0
-C
- IF(IDEB(79).GE.17) WRITE(LO,'(1X,A,/5X,2I2,3E12.3)')
- & 'PHO_HARISR:INITIAL TESTS (NEXT1,2 Q2H Q21,2)',NEXT,Q2H,Q2MISR
- IF(NEXT(1)+NEXT(2).EQ.0) GOTO 800
-C
-C initialize parton shower loop
- B0QCD = (33.D0-2.D0*NFSISR)/6.D0
- AL2ISR(1) = PDFLAM(1)
- AL2ISR(2) = PDFLAM(2)
- XHMA(1) = XHMAX1
- XHMA(2) = XHMAX2
- XHMI(1) = PMISR(1)/PCMP
- XHMI(2) = PMISR(2)/PCMP
- ZPSH(1,1) = 1.D0
- ZPSH(2,1) = 1.D0
- SHAT1 = XH1*XH2*ECMP**2
- IF(IPAMDL(109).EQ.1) THEN
- PT2SH(1,1) = Q2H
- ELSE
- PT2SH(1,1) = Q2H*(1.D0-Q2H/SHAT1)
- ENDIF
- PT2SH(2,1) = PT2SH(1,1)
- IF(PT2SH(1,1).LT.Q2MISR(1)) NEXT(1) = 0
- IF(PT2SH(2,1).LT.Q2MISR(2)) NEXT(2) = 0
- THSH(1,1) = 2.D0*SQRT(Q2H/SHAT1)
- THSH(2,1) = THSH(1,1)
- IFANO(1) = 0
- IFANO(2) = 0
- ZZ = 1.D0
- IF(IREJ.NE.0) GOTO 800
-C
-C main generation loop
-C -------------------------------------------------
- 100 CONTINUE
-C choose parton side to become solved
- IF((NEXT(1)+NEXT(2)).EQ.2) THEN
- IF(Q2SH(1,ISH(1)).GT.Q2SH(2,ISH(2))) THEN
- IP = 1
- ELSE IF(Q2SH(2,ISH(2)).GT.Q2SH(1,ISH(1))) THEN
- IP = 2
- ELSE
- IP = MAX(INT(DT_RNDM(SHAT1)*2.D0+0.999999D0),1)
- ENDIF
- ELSE IF(NEXT(1).EQ.1) THEN
- IP = 1
- ELSE IF(NEXT(2).EQ.1) THEN
- IP = 2
- ELSE
- GOTO 800
- ENDIF
- INDX = ISH(IP)
-C INDX now parton position of parton to become solved
-C IP now side to be treated
- XP = XPSH(IP,INDX)
- Q2P = Q2SH(IP,INDX)
- PT2 = PT2SH(IP,INDX)
- IFLB = IFL1(IP,INDX)
-C check available x
- XMIP = XHMI(IP)
-C cutoff by x limitation: no further development
- IF((XHMA(IP)-XP).LT.XMIP*2.D0) THEN
- NEXT(IP) = 0
- Q2SH(IP,INDX) = 0.D0
- IF(IDEB(79).GE.17) THEN
- WRITE(LO,'(1X,A,/5X,3E12.4,2I3)')
- & 'PHO_HARISR: evolution x-stop (XP,XMIP,XHMA,IP,INDX)',
- & XP,XMIP,XHMA(IP),IP,INDX
- ENDIF
- GOTO 100
- ENDIF
-C initial value of evolution variable t
- TT = LOG(AQQALI*Q2P/AL2ISR(IP))
- DO 110 I=-NFSISR,NFSISR
- WGGAP(I) = 0.D0
- WGPDF(I) = 0.D0
- 110 CONTINUE
-C DGLAP weights
- ZMIN = XP/XHMA(IP)
- ZMAX = XP/(XP+XMIP)
- CF = 4./3.
-C q --> q g, g --> g g
- IF(IFLB.EQ.0) THEN
- WGGAP(0) = CF*((ZMAX**2-ZMIN**2)/2.D0-2.D0*(ZMAX-ZMIN)
- & +2.D0*LOG(ZMAX/ZMIN))
- DO 120 I=1,NFSISR
- WGGAP(I) = WGGAP(0)
- WGGAP(-I) = WGGAP(0)
- 120 CONTINUE
- WGGAP(0) = 6.D0*((ZMIN**3-ZMAX**3)/3.D0+(ZMAX**2-ZMIN**2)/2.D0
- & -2.D0*(ZMAX-ZMIN)+LOG(ZMAX/ZMIN*(1.D0-ZMIN)/(1.D0-ZMAX)))
-C q --> g q, g --> q qb
- ELSE IF(ABS(IFLB).LE.6) THEN
- WGGAP(IFLB) = CF*((ZMIN**2-ZMAX**2)/2.D0-ZMAX+ZMIN
- & -2.D0*LOG((1.D0-ZMAX)/(1.D0-ZMIN)))
- IF(IVAL(IP).EQ.0) WGGAP(0) = 0.5D0*(2./3.*(ZMAX**3-ZMIN**3)
- & -ZMAX**2+ZMIN**2+ZMAX-ZMIN)
- ELSE
- WRITE(LO,'(/1X,A,I7)')
- & 'PHO_HARISR:ERROR: unsupported particle ID',IFLB
- CALL PHO_ABORT
- ENDIF
-C anomalous/resolved evolution
- IPDFC = 0
- IF(IPAMDL(110).GE.1) THEN
- IF((IDMO(IP).EQ.22).AND.(IFLB.NE.0)
- & .AND.(IFLB.NE.21)) THEN
- WGDIR = 0.D0
- IF(NQQALI.EQ.1) THEN
- SCALE2 = PT2*AQQPD
- ELSE
- SCALE2 = Q2P*AQQPD
- ENDIF
- CALL PHO_PDF(IP,XP,SCALE2,0.D0,PD1)
- IPDFC = 1
- CALL PHO_QPMPDF(IFLB,XP,SCALE2,PTA1,PVIRTP(IP),WGDIR)
- XI = DT_RNDM(XP)*PD1(IFLB)
- IF(WGDIR.GT.XI) THEN
-C debug output
- IF(IDEB(79).GE.17) WRITE(LO,'(1X,2A,/5X,4E12.5,I2,I3)')
- & 'PHO_HARISR: ',
- & 'direct splitting (WGDIR,WGPDF,X,SCALE2,IP,IFLB)',
- & WGDIR,PD1(IFLB),XP,SCALE2,IP,IFLB
- Q2SH(IP,INDX) = 0.D0
- NEXT(IP) = 0
- IFANO(IP) = INDX
- GOTO 100
- ENDIF
- ENDIF
- ENDIF
-C
-C rejection loop for z,t sampling
-C ------------------------------------
- 200 CONTINUE
- NITER = NITER+1
- IF(NITER.GE.NTRY) THEN
- WRITE(LO,'(1X,A,2I6)')
- & 'PHO_HARISR: too many rejections',NITER,NTRY
- CALL PHO_PREVNT(-1)
-C clean up event
- IREJ = 1
- GOTO 10
- ENDIF
-C PDF weights
- IF(IPDFC.EQ.0) THEN
- IF(NQQALI.EQ.1) THEN
- SCALE2 = PT2*AQQPD
- ELSE
- SCALE2 = Q2P*AQQPD
- ENDIF
- CALL PHO_PDF(IP,XP,SCALE2,0.D0,PD1)
- ENDIF
- IPDFC = 0
-C
- WGTOT = 0.D0
- DO 210 I=-NFSISR,NFSISR
- WGPDF(I) = PD1(I)/(PD1(IFLB)+1.D-12)*5.D0
- WGTOT = WGTOT+WGPDF(I)*WGGAP(I)
- 210 CONTINUE
-C
- 215 CONTINUE
-C sample new t value
- TT = TT*EXP(MAX(-10.D0,LOG(DT_RNDM(SHAT1))*B0QCD/WGTOT))
- Q2NEW = AL2ISR(IP)*EXP(TT)/AQQALI
-C debug output
- IF(IDEB(79).GE.20) WRITE(LO,'(1X,A,E12.5)')
- & 'PHO_HARISR: pre-selected Q2:',Q2NEW
-C compare to limits
- IF(Q2NEW.LT.Q2MISR(IP)) THEN
- Q2SH(IP,INDX) = 0.D0
- NEXT(IP) = 0
- IF(IDEB(79).GE.17) WRITE(LO,'(1X,A,2E10.3,2I3)')
- & 'PHO_HARISR: evolution Q2-stop (Q2,Q2MIN,IP,INDX):',
- & Q2NEW,Q2MISR(IP),IP,INDX
- GOTO 100
- ENDIF
- Q2SH(IP,INDX) = Q2NEW
- TT = LOG(AQQALI*Q2NEW/AL2ISR(IP))
-C selection of flavours
- XI = WGTOT*DT_RNDM(TT)
- IFLA = -NFSISR-1
- 220 CONTINUE
- IFLA = IFLA+1
- XI = XI-WGPDF(IFLA)*WGGAP(IFLA)
- IF((XI.GT.0.D0).AND.(IFLA.LT.NFSISR)) GOTO 220
-C debug output
- IF(IDEB(79).GE.20) WRITE(LO,'(1X,A,2I3)')
- & 'PHO_HARISR: pre-selected IFLA (IFLA,IFLB):',IFLA,IFLB
-C selection of z
- CALL PHO_HARZSP(IFLA,IFLB,NFSISR,ZMIN,ZMAX,ZZ)
-C debug output
- IF(IDEB(79).GE.20) WRITE(LO,'(1X,A,E12.3)')
- & 'PHO_HARISR: pre-selected ZZ',ZZ
-C angular ordering
- THETA = 4.D0*ZZ**2*Q2NEW/((ECMP*XP)**2*(1.D0-ZZ))
- IF(THETA.GT.THSH(IP,INDX)) THEN
- IF(IDEB(79).GE.20) WRITE(LO,'(1X,A,2E12.3)')
- & 'PHO_HARISR: reject by angle (NEW/OLD)',
- & THETA,THSH(IP,INDX)
- GOTO 215
- ENDIF
-C rejection weight given by new PDFs
- XNEW = XP/ZZ
- PT2NEW = Q2NEW*(1.D0-ZZ)
- IF(NQQALI.EQ.1) THEN
- SCALE2 = PT2NEW*AQQPD
- ELSE
- SCALE2 = Q2NEW*AQQPD
- ENDIF
- IF(SCALE2.LT.Q2MISR(IP)) THEN
- Q2SH(IP,INDX) = 0.D0
- NEXT(IP) = 0
- IF(IDEB(79).GE.17) WRITE(LO,'(1X,A,2E10.3,2I3)')
- & 'PHO_HARISR: evol.Q2-stop (SCALE2,Q2MIN,IP,INDX):',
- & Q2NEW,Q2MISR(IP),IP,INDX
- GOTO 100
- ENDIF
- CALL PHO_PDF(IP,XNEW,SCALE2,0.D0,PD2)
- IF(PD2(IFLA).LT.1.D-10) GOTO 200
- CALL PHO_PDF(IP,XP,SCALE2,0.D0,PD1)
- PD1(IFLB) = MAX(PD1(IFLB),1.D-10)
- WGF = PD2(IFLA)/PD1(IFLB)/(WGPDF(IFLA)+1.D-12)
- IF(NQQALI.EQ.1) WGF = WGF*LOG(Q2NEW*AQQALI/AL2ISR(IP))
- & /LOG(PT2NEW*AQQALI/AL2ISR(IP))
- IF((WGF.GT.1.D0).AND.(IDEB(79).GE.2)) THEN
- WRITE(LO,'(1X,A,E12.3)')
- & 'PHO_HARISR: final weight:',WGF
- WRITE(LO,'(6X,A,I7,2I3,3E11.3)')
- & 'EV,IFLA,IFLB,Q2,PT2,Z:',KEVENT,IFLA,IFLB,Q2NEW,PT2NEW,ZZ
- ENDIF
- IF(WGF.LT.DT_RNDM(XNEW)) GOTO 200
-
- IF(IDEB(79).GE.15) THEN
- WRITE(LO,'(1X,A,/3X,3I3,3E11.3)')
- & 'PHO_HARISR: accepted IP,IFLA,IFLB,PT2,Q2,Z:',
- & IP,IFLA,IFLB,PT2NEW,Q2NEW,ZZ
- ENDIF
-
- IF(INDX.GE.MXISR3) THEN
- WRITE(LO,'(1X,2A,2I4)') 'PHO_HARISR: no space left in ',
- & '/POINT6/ for parton radiation (INDX,MXISR3):',INDX,MXISR3
- IREJ = 1
- RETURN
- ENDIF
-
-C branching accepted, registration
- Q2SH(IP,INDX) = Q2NEW
- PT2SH(IP,INDX) = PT2NEW
- ZPSH(IP,INDX) = ZZ
- IFL2(IP,INDX) = IFLA-IFLB
- Q2SH(IP,INDX+1) = Q2NEW
- PT2SH(IP,INDX+1) = PT2SH(IP,INDX)
- XPSH(IP,INDX+1) = XNEW
- THSH(IP,INDX+1) = THETA
- IFL1(IP,INDX+1) = IFLA
- ISH(IP) = ISH(IP)+1
-
- NACC = NACC+1
-
- IF(NACC.GT.MXISR4) THEN
- WRITE(LO,'(1X,2A,2I4)') 'PHO_HARISR: no space left in ',
- & '/POINT6/ for parton radiation (NACC,MXISR4):',NACC,MXISR4
- IREJ = 1
- RETURN
- ENDIF
-
- SHAT(NACC) = SHAT1
- IBRA(1,NACC) = IP
- IBRA(2,NACC) = INDX
- SHAT1 = SHAT1/ZZ
-
-C generation of next branching
- IF(NEXT(1)+NEXT(2).NE.0) GOTO 100
-
- 800 CONTINUE
-
-C new initial flavours, x values
- IPB1 = IFL1(1,ISH(1))
- IPB2 = IFL1(2,ISH(2))
- XISR1 = XPSH(1,ISH(1))
- XISR2 = XPSH(2,ISH(2))
- IVO1 = IVAL(1)
- IVO2 = IVAL(2)
-C valence flavours
- IF(IPB1.NE.0) THEN
- IF(ISH(1).GT.1) THEN
- CALL PHO_PDF(1,XISR1,Q2MISR(1),0.D0,PD1)
- IF(IDPDG1.EQ.22) THEN
- CALL PHO_QPMPDF(IPB1,XISR1,Q2MISR(1),0.D0,PVIRTP(1),FXP)
- IF(DT_RNDM(XISR1)*PD1(IPB1).GT.PD1(IPB1)-FXP) IVAL(1) = 1
- ELSE
- CALL PHO_PDF(1,XISR1,Q2MISR(1),0.D0,PD1)
- IF(DT_RNDM(XISR1)*PD1(IPB1).GT.PD1(-IPB1)) IVAL(1) = 1
- ENDIF
- ENDIF
- ENDIF
- IF(IPB2.NE.0) THEN
- IF(ISH(2).GT.1) THEN
- CALL PHO_PDF(2,XISR2,Q2MISR(2),0.D0,PD1)
- IF(IDPDG2.EQ.22) THEN
- CALL PHO_QPMPDF(IPB2,XISR2,Q2MISR(2),0.D0,PVIRTP(2),FXP)
- IF(DT_RNDM(XISR2)*PD1(IPB2).GT.PD1(IPB2)-FXP) IVAL(2) = 1
- ELSE
- IF(DT_RNDM(XISR2)*PD1(IPB2).GT.PD1(-IPB2)) IVAL(2) = 1
- ENDIF
- ENDIF
- ENDIF
-
-C parton kinematics
- IF(NACC.GT.0) THEN
-C final partons in CMS
- PM(3) = (XH1-XH2)*ECMP/2.D0
- PM(4) = (XH1+XH2)*ECMP/2.D0
- SH = XH1*XH2*ECMP**2
- SSH = SQRT(SH)
- GB(3) = PM(3)/SSH
- GB(4) = PM(4)/SSH
- CALL PHO_ALTRA(GB(4),0.D0,0.D0,-GB(3),P1(1),P1(2),P1(3),
- & P1(4),PTOT1,PHISR(1,1,IPAL(1)),PHISR(1,2,IPAL(1)),
- & PHISR(1,3,IPAL(1)),PHISR(1,4,IPAL(1)))
- CALL PHO_ALTRA(GB(4),0.D0,0.D0,-GB(3),P2(1),P2(2),P2(3),
- & P2(4),PTOT1,PHISR(2,1,IPAL(2)),PHISR(2,2,IPAL(2)),
- & PHISR(2,3,IPAL(2)),PHISR(2,4,IPAL(2)))
- IL(1) = 1
- IL(2) = 1
- DO 900 I=1,NACC
- IPA = IBRA(1,I)
- IPB = 3-IPA
- IL(IPA) = IBRA(2,I)
-C new initial partons in CMS
- SH = SHAT(I)
- SSH = SQRT(SH)
- SHZ = SH/ZPSH(IPA,IL(IPA))
- SSHZ = SQRT(SHZ)
- Q2(1) = Q2SH(1,IL(1))
- Q2(2) = Q2SH(2,IL(2))
- PC(1,1) = 0.D0
- PC(1,2) = 0.D0
- PC(1,3) = SQRT((SH+Q2(1)+Q2(2))**2-4.D0*Q2(1)*Q2(2))
- & /(2.D0*SSH)
- PC(1,4) = (SH-Q2(1)+Q2(2))/(2.D0*SSH)
- PC(2,1) = 0.D0
- PC(2,2) = 0.D0
- PC(2,3) = -PC(1,3)
- PC(2,4) = SSH-PC(1,4)
- XMS4 = PHO_PMASS(IFL2(IPA,IL(IPA)),1)**2
- EE3 = (SHZ-Q2(IPA)+Q2(IPB)-XMS4)/(2.D0*SSH)
- S1 = SH+Q2(IPA)+Q2(IPB)
- S3 = SHZ+Q2(IPB)+Q2SH(IPA,IL(IPA)+1)
- R1 = SQRT(S1**2-4.D0*Q2(IPA)*Q2(IPB))
- R3 = SQRT(S3**2-4.D0*Q2(IPB)*Q2SH(IPA,IL(IPA)+1))
- IF(Q2(IPB).LT.0.1D0) THEN
- XMS4M = (Q2(IPA)/ZPSH(IPA,IL(IPA))-Q2SH(IPA,IL(IPA)+1))
- & *(SH/(SH+Q2(IPA))-SH/(SHZ+Q2SH(IPA,IL(IPA)+1)))
- ELSE
- XMS4M = (S1*S3-R1*R3)/(2.D0*Q2(IPB))
- & -Q2(IPA)-Q2SH(IPA,IL(IPA)+1)
- ENDIF
- NGEN = 1
-C max. virtuality for time-like showers
- QMAX = MIN(XMS4M,PARMDL(95)*Q2(IPA))
- IF((IPAMDL(111).GE.1).AND.(QMAX.GT.PARMDL(94))) THEN
-C generate time-like parton shower
- KF = IFL2(IPA,IL(IPA))
- IF(KF.EQ.0) KF = 21
- EER = MIN(EE3-PC(IPA,4),ECMP)
- THER = 0.
-
- CALL PY1ENT(1,KF,EER,THER,THER)
- QMAXR = SQRT(QMAX)
- CALL PYSHOW(1,0,QMAXR)
-C debug output
- IF(IDEB(79).GE.25) THEN
- WRITE(LO,'(1X,2A,/,5X,1P,4E12.4)') 'PHO_HARISR: ',
- & 'PYSHOW called for EE,QMAX,XMS4M,Q2(IPA)',
- & EER,QMAX,XMS4M,Q2(IPA)
- CALL PYLIST(1)
- ENDIF
- NGEN = PYK(0,1)
-
- IF(NGEN.GT.1) THEN
- PJX = 0.D0
- PJY = 0.D0
- PJZ = 0.D0
- PJE = 0.D0
- KK = IPAL(IPA)
- DO 820 K=3,NGEN
-
- IF(PYK(K,1).LE.4) THEN
- KK = KK+1
-
- IF(KK.GT.MXISR1) THEN
- WRITE(LO,'(1X,2A,2I5)') 'PHO_HARISR: no space ',
- & 'left in /POPISR/ (KK,MXISR1):',KK,MXISR1
- IREJ = 1
- RETURN
- ENDIF
-
- PHISR(IPA,1,KK) = PYP(K,1)
- PJX = PJX+PHISR(IPA,1,KK)
- PHISR(IPA,2,KK) = PYP(K,2)
- PJY = PJY+PHISR(IPA,2,KK)
- PHISR(IPA,3,KK) = PYP(K,3)
- PJZ = PJZ+PHISR(IPA,3,KK)
- PHISR(IPA,4,KK) = PYP(K,4)
- PJE = PJE+PHISR(IPA,4,KK)
- IFLISR(IPA,KK) = PYK(K,2)
-
- IF(IFLISR(IPA,KK).EQ.21) IFLISR(IPA,KK) = 0
- IF(IFLISR(IPA,KK).EQ.5) IFLISR(IPA,KK) = 3
- IF(IFLISR(IPA,KK).EQ.-5) IFLISR(IPA,KK) = -3
- ENDIF
- 820 CONTINUE
- NGEN = KK-IPAL(IPA)
- XMS4 = (PJE+PJZ)*(PJE-PJZ)-PJX**2-PJY**2
- PP4 = SQRT(PJE**2-XMS4)
- EE3 = (SHZ-Q2(IPA)+Q2(IPB)-XMS4)/(2.D0*SSH)
-C debug output
- IF(IDEB(79).GE.20) WRITE(LO,'(1X,2A,/,5X,1P,6E12.4)')
- & 'PHO_HARISR: ',
- & 'time-like shower: PJE,PJX,PJY,PJZ,PP4,XMS4',
- & PJE,PJX,PJY,PJZ,PP4,XMS4
- ENDIF
- ENDIF
- PZ3 = (2.D0*PC(IPA,4)*EE3+Q2(IPA)+Q2SH(IPA,IL(IPA)+1)+XMS4)
- & /(2.D0*PC(IPA,3))
- PT3 = (EE3+PZ3)*(EE3-PZ3)+Q2SH(IPA,IL(IPA)+1)
- IF(PT3.LT.0.D0) THEN
- IF(IDEB(79).GE.5) WRITE(LO,'(1X,A,E12.3)')
- & 'PHO_HARISR: rejection due to PT3',PT3
- GOTO 10
- ENDIF
- PT3 = SQRT(PT3)
- CALL PHO_SFECFE(SFE,CFE)
- PX3 = CFE*PT3
- PY3 = SFE*PT3
-C
- IF(NGEN.GT.1) THEN
-C time-like shower generated
- EE4 = EE3-PC(IPA,4)
- PZ4 = PZ3-PC(IPA,3)
- PP4 = SQRT(PT3**2+PZ4**2)
-C Lorentz boost
- GAM = (EE4*PJE-PP4*PJZ)/XMS4
- BEG = (PJE*PP4-EE4*PJZ)/XMS4
-C rotation angles
- CODD = PZ4/PP4
- SIDD = SQRT(PX3**2+PY3**2)/PP4
- COFD = 1.D0
- SIFD = 0.D0
- IF(PP4*SIDD.GT.1.D-5) THEN
- COFD = PX3/(SIDD*PP4)
- SIFD = PY3/(SIDD*PP4)
- ANORF = SQRT(COFD*COFD+SIFD*SIFD)
- COFD = COFD/ANORF
- SIFD = SIFD/ANORF
- ENDIF
-C copy partons back
- KK = IPAL(IPA)
- DO 830 K=1,NGEN
- KK = KK+1
- PX = PHISR(IPA,1,KK)
- PY = PHISR(IPA,2,KK)
- PZ = PHISR(IPA,3,KK)
- COH= PHISR(IPA,4,KK)
- EE = GAM*COH+BEG*PZ
- PZ = GAM*PZ +BEG*COH
- PHISR(IPA,4,KK) = EE
- CALL PHO_TRANS(PX,PY,PZ,CODD,SIDD,COFD,SIFD,
- & PHISR(IPA,1,KK),PHISR(IPA,2,KK),PHISR(IPA,3,KK))
- 830 CONTINUE
- IPAL(IPA) = KK
- ELSE
-C no time-like shower generated
- IPAL(IPA) = IPAL(IPA)+1
- PHISR(IPA,1,IPAL(IPA)) = PX3
- PHISR(IPA,2,IPAL(IPA)) = PY3
- PHISR(IPA,3,IPAL(IPA)) = PZ3-PC(IPA,3)
- PHISR(IPA,4,IPAL(IPA)) = EE3-PC(IPA,4)
- IFLISR(IPA,IPAL(IPA)) = IFL2(IPA,IL(IPA))
- ENDIF
- PC(IPA,1) = PX3
- PC(IPA,2) = PY3
- PC(IPA,3) = PZ3
- PC(IPA,4) = EE3
-C boost / rotate into new CMS
- DO 842 K=1,4
- GB(K) = (PC(1,K)+PC(2,K))/SSHZ
- 842 CONTINUE
- CALL PHO_ALTRA(GB(4),-GB(1),-GB(2),-GB(3),PC(1,1),PC(1,2),
- & PC(1,3),PC(1,4),PTOT1,PM(1),PM(2),PM(3),PM(4))
- COG= PM(3)/PTOT1
- SIG= SQRT(PM(1)**2+PM(2)**2)/PTOT1
- COH=1.D0
- SIH=0.D0
- IF(PTOT1*SIG.GT.1.D-5) THEN
- COH=PM(1)/(SIG*PTOT1)
- SIH=PM(2)/(SIG*PTOT1)
- ANORF=SQRT(COH*COH+SIH*SIH)
- COH=COH/ANORF
- SIH=SIH/ANORF
- ENDIF
- DO 845 K=1,2
- DO 844 L=IPOISR(K,1,IHIDX),IPAL(K)
- CALL PHO_ALTRA(GB(4),-GB(1),-GB(2),-GB(3),
- & PHISR(K,1,L),PHISR(K,2,L),PHISR(K,3,L),PHISR(K,4,L),
- & PTOT1,PM(1),PM(2),PM(3),PM(4))
- CALL PHO_TRANI(PM(1),PM(2),PM(3),COG,SIG,COH,SIH,PN(1),
- & PN(2),PN(3))
- CALL PHO_TRANS(PN(1),PN(2),PN(3),1.D0,0.D0,COH,SIH,
- & PHISR(K,1,L),PHISR(K,2,L),PHISR(K,3,L))
- PHISR(K,4,L) = PM(4)
- 844 CONTINUE
- 845 CONTINUE
- 900 CONTINUE
-C boost back to global CMS
- PM(3) = (XISR1-XISR2)/2.D0
- PM(4) = (XISR1+XISR2)/2.D0
- SSH = SQRT(XISR1*XISR2)
- GB(3) = PM(3)/SSH
- GB(4) = PM(4)/SSH
- DO 945 K=1,2
- DO 944 L=IPOISR(K,1,IHIDX),IPAL(K)
- CALL PHO_ALTRA(GB(4),0.D0,0.D0,GB(3),PHISR(K,1,L),
- & PHISR(K,2,L),PHISR(K,3,L),PHISR(K,4,L),PTOT1,PM(1),
- & PM(2),PM(3),PM(4))
- PHISR(K,1,L) = PM(1)
- PHISR(K,2,L) = PM(2)
- PHISR(K,3,L) = PM(3)
- PHISR(K,4,L) = PM(4)
- 944 CONTINUE
- 945 CONTINUE
- ENDIF
- IPOISR(1,2,IHIDX) = IPAL(1)
- IPOISR(2,2,IHIDX) = IPAL(2)
- IMXISR(1) = IPAL(1)
- IMXISR(2) = IPAL(2)
-C
-C debug output
- IF(IDEB(79).GE.10) THEN
- WRITE(LO,'(1X,A,2I10/,6X,A,2E12.3,2I5)') 'NUMBER OF EMISSIONS',
- & ISH(1)-1,ISH(2)-1,'NEW X1,X2,IFL1,ILF2',XISR1,XISR2,IPB1,IPB2
- IF(NACC.GT.0) THEN
- WRITE(LO,'(1X,A,2I5,/6X,A)')
- & 'PHO_HARISR: ISR configuration (NITER,NACC)',NITER,NACC,
- & ' SIDE NO. IFLB IFLC Q2SH PT2SH XH ZZ'
- DO 600 II=1,NACC
- K = IBRA(1,II)
- I = IBRA(2,II)
- WRITE(LO,'(5X,4I5,4E11.3)')
- & K,I,IFL1(K,I),IFL2(K,I),Q2SH(K,I),PT2SH(K,I),XPSH(K,I),
- & ZPSH(K,I)
- 600 CONTINUE
- ENDIF
-C check of final configuration
- PX3 = 0.D0
- PY3 = 0.D0
- PZ3 = 0.D0
- EE3 = 0.D0
- IFSUM(1) = 0
- IFSUM(2) = 0
- WRITE(LO,'(1X,A)') 'PHO_HARISR: outgoing partons'
- DO 745 K=1,2
- DO 744 L=IPOISR(K,1,IHIDX),IPOISR(K,2,IHIDX)
- WRITE(LO,'(6X,2I4,I6,4E11.3)') K,L,IFLISR(K,L),
- & PHISR(K,1,L),PHISR(K,2,L),PHISR(K,3,L),PHISR(K,4,L)
- IFSUM(K) = IFSUM(K)+ IFLISR(K,L)
- PX3 = PX3 + PHISR(K,1,L)
- PY3 = PY3 + PHISR(K,2,L)
- PZ3 = PZ3 + PHISR(K,3,L)
- EE3 = EE3 + PHISR(K,4,L)
- 744 CONTINUE
- 745 CONTINUE
- IFSUM(1) = IFSUM(1)-IPB1
- IFSUM(2) = IFSUM(2)-IPB2
- PZ3 = PZ3 -(XISR1-XISR2)*ECMP/2.D0
- EE3 = EE3 -(XISR1+XISR2)*ECMP/2.D0
- WRITE(LO,'(1X,A,2I4,4E11.3)') 'CHECK:IFL1,2 PCM(1-4)',
- & IFSUM,PX3,PY3,PZ3,EE3
- ENDIF
- END
-
-CDECK ID>, PHO_HARZSP
- SUBROUTINE PHO_HARZSP(IFLA,IFLB,NFSH,ZMIN,ZMAX,ZZ)
-C*********************************************************************
-C
-C sampling of z values from DGLAP kernels
-C
-C input: IFLA,IFLB parton flavours
-C NFSH flavours involved in hard processes
-C ZMIN minimal ZZ allowed
-C ZMAX maximal ZZ allowed
-C
-C output: ZZ z value
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-10 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-
- IF(ZMAX.LE.ZMIN) THEN
- WRITE(LO,'(1X,A,2E12.3)')
- & 'PHO_HARZSP: ZMAX<ZMIN (ZMAX,ZMIN)',ZMAX,ZMIN
- CALL PHO_PREVNT(-1)
- ZZ = 0.D0
- RETURN
- ENDIF
-C
- IF(IFLB.EQ.0) THEN
- IF(IFLA.EQ.0) THEN
-C g --> g g
- C1 = ZMAX/ZMIN*(1.D0-ZMIN)/(1.D0-ZMAX)
- C2 = (1.D0-ZMIN)/ZMIN
- 100 CONTINUE
- ZZ = 1.D0/(1.D0+C2/C1**DT_RNDM(ZMIN))
- IF(((1.D0-ZZ*(1.D0-ZZ))**2).LT.DT_RNDM(ZMAX)) GOTO 100
- ELSE IF(ABS(IFLA).LE.NFSH) THEN
-C q --> q g
- C1 = ZMAX/ZMIN
- 200 CONTINUE
- ZZ = ZMIN*C1**DT_RNDM(ZMIN)
- IF((0.5D0*(1.D0+(1.D0-ZZ)**2)).LT.DT_RNDM(ZMAX)) GOTO 200
- ELSE
- GOTO 900
- ENDIF
- ELSE IF(ABS(IFLB).LE.NFSH) THEN
- IF(IFLA.EQ.0) THEN
-C g --> q qb
- C1 = ZMAX-ZMIN
- 300 CONTINUE
- ZZ = ZMIN+C1*DT_RNDM(ZMIN)
- IF((2.D0*ZZ*(ZZ-1.D0)+1.D0).LT.DT_RNDM(ZMAX)) GOTO 300
- ELSE IF(ABS(IFLA).LE.NFSH) THEN
-C q --> g q
- C1 = (1.D0-ZMAX)/(1.D0-ZMIN)
- C2 = 1.D0-ZMIN
- 400 CONTINUE
- ZZ = 1.D0-C2*C1**DT_RNDM(ZMIN)
- IF(0.5D0*(1.D0+ZZ**2).LT.DT_RNDM(ZMAX)) GOTO 400
- ELSE
- GOTO 900
- ENDIF
- ELSE
- GOTO 900
- ENDIF
-C debug output
- IF(IDEB(80).GE.20) WRITE(LO,'(1X,A,2I3,3E11.3)')
- & 'PHO_HARZSP: IFLA,IFLB,ZZ,ZMIN,ZMAX',
- & IFLA,IFLB,ZZ,ZMIN,ZMAX
- RETURN
-
- 900 CONTINUE
- WRITE(LO,'(/1X,A,2I7)') 'PHO_HARZSP:ERROR: invalid flavours A,B',
- & IFLA,IFLB
- CALL PHO_ABORT
-
- END
-
-CDECK ID>, PHO_ALPHAE
- DOUBLE PRECISION FUNCTION PHO_ALPHAE(Q2)
-C**********************************************************************
-C
-C calculation of ALPHA_em
-C
-C input: Q2 scale in GeV**2
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- DOUBLE PRECISION Q2
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-
- DOUBLE PRECISION PYALEM
-
- pho_alphae = 1.D0/137.D0
-
- if(ipamdl(120).eq.1) then
-
- pho_alphae = PYALEM(Q2)
-
- endif
-
- END
-
-CDECK ID>, PHO_ALPHAS
- DOUBLE PRECISION FUNCTION PHO_ALPHAS(Q2,IMODE)
-C**********************************************************************
-C
-C calculation of ALPHA_S
-C
-C input: IMODE = 1 lambda_QCD**2 for PDF 1 evolution
-C 2 lambda_QCD**2 for PDF 2 evolution
-C 3 lambda_QCD**2 for hard scattering
-C Q2 scale in GeV**2
-C
-C initialization needed:
-C IMODE = 0 lambda values taken from PDF table
-C -1 given Q2 is 4-flavour lambda 1
-C -2 given Q2 is 4-flavour lambda 2
-C -3 given Q2 is 4-flavour lambda 3
-C
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- DOUBLE PRECISION Q2
- INTEGER IMODE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C hard scattering parameters used for most recent hard interaction
- INTEGER NFbeta,NF
- DOUBLE PRECISION ALQCD2,BQCD
- COMMON /POHAPA/ ALQCD2(3,4),BQCD(4),NFbeta,NF
-C currently activated parton density parametrizations
- CHARACTER*8 PDFNAM
- INTEGER IPARID,IPAVA,ITYPE,IGRP,ISET,IEXT,NPAOLD
- DOUBLE PRECISION PDFLAM,PDFQ2M
- COMMON /POPPDF/ PDFLAM(2),PDFQ2M(2),PDFNAM(2),IPARID(2),
- & IPAVA(2),ITYPE(2),IGRP(2),ISET(2),IEXT(2),NPAOLD
-
- INTEGER I
-
- PHO_ALPHAS = 0.D0
-
- IF(IMODE.GT.0) THEN
-
- IF(Q2.LT.PARMDL(148)) THEN
- NFbeta = 1
- ELSE IF(Q2.LT.PARMDL(149)) THEN
- NFbeta = 2
- ELSE IF(Q2.LT.PARMDL(150)) THEN
- NFbeta = 3
- ELSE
- NFbeta = 4
- ENDIF
-
- PHO_ALPHAS = BQCD(NFbeta)/LOG(Q2/ALQCD2(IMODE,NFbeta))
- NFbeta = NFbeta+2
-
- ELSE IF(IMODE.EQ.0) THEN
-
- DO I=1,3
- if(I.EQ.3) then
- ALQCD2(I,2) = PDFLAM(1)*PDFLAM(2)
- else
- ALQCD2(I,2) = PDFLAM(I)*PDFLAM(I)
- endif
- ALQCD2(I,1) = PARMDL(148)
- & *(ALQCD2(I,2)/PARMDL(148))**(BQCD(1)/BQCD(2))
- ALQCD2(I,3) = PARMDL(149)
- & *(ALQCD2(I,2)/PARMDL(149))**(BQCD(3)/BQCD(2))
- ALQCD2(I,4) = PARMDL(150)
- & *(ALQCD2(I,2)/PARMDL(150))**(BQCD(4)/BQCD(2))
-
- ENDDO
-
- ELSE IF(IMODE.LT.0) THEN
-
- if(IMODE.eq.-4) then
- I = 3
- ALQCD2(I,2) = SQRT(ALQCD2(1,2)*ALQCD2(2,2))
- else
- I = -IMODE
- ALQCD2(I,2) = Q2
- endif
- ALQCD2(I,1) = PARMDL(148)
- & *(ALQCD2(I,2)/PARMDL(148))**(BQCD(1)/BQCD(2))
- ALQCD2(I,3) = PARMDL(149)
- & *(ALQCD2(I,2)/PARMDL(149))**(BQCD(3)/BQCD(2))
- ALQCD2(I,4) = PARMDL(150)
- & *(ALQCD2(I,2)/PARMDL(150))**(BQCD(4)/BQCD(2))
-
- ENDIF
-
- END
-
-CDECK ID>, PHO_DFWRAP
- SUBROUTINE PHO_DFWRAP(MODE,JM1,JM2)
-C**********************************************************************
-C
-C wrapper for diffraction dissociation in hadron-nucleus and
-C nucleus-nucleus collisions with DPMJET
-C
-C input: MODE 1: transformation into CMS
-C 2: transformation into Lab
-C JM1/2 indices of old mother particles
-C JM1/2N indices of new mother particles
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- INTEGER MODE,JM1,JM2
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-
- DOUBLE PRECISION GAMBED(4),P1(4),P2(4),P3(4),P4(4),XM1,XM2
- DOUBLE PRECISION SS,ECMD,PTOT1,CODD,SIDD,COFD,SIFD,ANORF
-
- INTEGER I,NHEPS,JM1S,JM2S,JM1N,JM2N,IREJ
-
-C transformation into CMS
-
- IF(MODE.EQ.1) THEN
-
- JM1S = JM1
- JM2S = JM2
- NHEPS = NHEP
-
- XM1 = PHEP(5,JM1)
- XM2 = PHEP(5,JM2)
-
-C boost into CMS
- P1(1) = PHEP(1,JM1)+PHEP(1,JM2)
- P1(2) = PHEP(2,JM1)+PHEP(2,JM2)
- P1(3) = PHEP(3,JM1)+PHEP(3,JM2)
- P1(4) = PHEP(4,JM1)+PHEP(4,JM2)
- SS = (P1(4)+P1(3))*(P1(4)-P1(3))-P1(1)**2-P1(2)**2
- ECMD = SQRT(SS)
- DO 10 I=1,4
- GAMBED(I) = P1(I)/ECMD
- 10 CONTINUE
- CALL PHO_ALTRA(GAMBED(4),-GAMBED(1),-GAMBED(2),-GAMBED(3),
- & PHEP(1,JM1),PHEP(2,JM1),PHEP(3,JM1),
- & PHEP(4,JM1),PTOT1,P1(1),P1(2),P1(3),P1(4))
-C rotation angles
- CODD = P1(3)/PTOT1
- SIDD = SQRT(P1(1)**2+P1(2)**2)/PTOT1
- COFD = 1.D0
- SIFD = 0.D0
- IF(PTOT1*SIDD.GT.1.D-5) THEN
- COFD = P1(1)/(SIDD*PTOT1)
- SIFD = P1(2)/(SIDD*PTOT1)
- ANORF= SQRT(COFD*COFD+SIFD*SIFD)
- COFD = COFD/ANORF
- SIFD = SIFD/ANORF
- ENDIF
-
-C initial particles in CMS
-
- P1(1) = 0.D0
- P1(2) = 0.D0
- P1(3) = ECMD/2.D0*XPSUB
- P1(4) = P1(3)
-
- P2(1) = 0.D0
- P2(2) = 0.D0
- P2(3) = -ECMD/2.D0*XTSUB
- P2(4) = -P2(3)
-
- CALL PHO_MSHELL(P1,P2,XM1,XM2,P3,P4,IREJ)
-
- CALL PHO_REGPAR(1,IDHEP(JM1),IMPART(JM1),JM1,JM2,
- & P3(1),P3(2),P3(3),P3(4),IPHIST(1,JM1),IPHIST(2,JM1),
- & ICOLOR(1,JM1),ICOLOR(2,JM1),JM1N,1)
-
- CALL PHO_REGPAR(1,IDHEP(JM2),IMPART(JM2),JM2,JM1,
- & P4(1),P4(2),P4(3),P4(4),IPHIST(1,JM2),IPHIST(2,JM2),
- & ICOLOR(1,JM2),ICOLOR(2,JM2),JM2N,1)
-
- JM1 = JM1N
- JM2 = JM2N
-
-C transformation into lab.
-
- ELSE IF(MODE.EQ.2) THEN
-
- CALL PHO_LTRHEP(JM1,NHEP,CODD,SIDD,COFD,SIFD,GAMBED(4),
- & GAMBED(1),GAMBED(2),GAMBED(3))
-
- JM1 = JM1S
- JM2 = JM2S
-
-C clean up after rejection
-
- ELSE IF(MODE.EQ.-2) THEN
-
- NHEP = NHEPS
-
- JM1 = JM1S
- JM2 = JM2S
-
- ELSE
-
- WRITE(LO,'(1X,A,I6)') 'PHO_DFWRAP: invalid MODE parameter:',MODE
-
- ENDIF
-
- END
-
-CDECK ID>, PHO_DIFDIS
- SUBROUTINE PHO_DIFDIS(IDIF1,IDIF2,IMOTH1,IMOTH2,SPROB,IMODE,
- & MSOFT,MHARD,IREJ)
-C***********************************************************************
-C
-C sampling of diffractive events of different kinds,
-C (produced particles stored in /POEVT1/)
-C
-C input: IDIF1/2 diffractive process particle 1/2
-C 0 elastic/quasi-elastic scattering
-C 1 diffraction dissociation
-C IMOTH1/2 index of mother particles in /POEVT1/
-C SPROB suppression factor (survival probability) for
-C resolved diffraction dissociation
-C IMODE mode of operation
-C 0 sampling of diffractive cut
-C 1 sampling of enhanced cut
-C 2 sampling of diffractive cut without
-C scattering (needed for double-pomeron)
-C -1 initialization
-C -2 output of statistics
-C
-C output: MSOFT number of generated soft strings
-C MHARD number of generated hard strings
-C IDIF1/2 diffraction label for particle 1/2 in /PROCES/
-C 0 quasi elastic scattering
-C 1 low-mass diffractive dissociation
-C 2 soft high-mass diffractive dissociation
-C 3 hard resolved diffractive dissociation
-C 4 hard direct diffractive dissociation
-C IREJ rejection label
-C 0 successful generation of partons
-C 1 failure
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( EPS = 1.D-7,
- & DEPS = 1.D-10)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C c.m. kinematics of diffraction
- INTEGER NPOSD
- DOUBLE PRECISION ECMD,PCMD,PMASSD,PVIRTD,GAMBED,
- & SIDD,CODD,SIFD,COFD,PDCMS
- COMMON /PODCMS/ ECMD,PCMD,PMASSD(2),PVIRTD(2),GAMBED(4),
- & SIDD,CODD,SIFD,COFD,PDCMS(4,2),NPOSD(2)
-C obsolete cut-off information
- DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
- COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C Reggeon phenomenology parameters
- DOUBLE PRECISION ALPOM,ALPOMP,GP,B0POM,ALREG,ALREGP,GR,B0REG,
- & GPPP,GPPR,B0PPP,B0PPR,VDMFAC,VDMQ2F,B0HAR,AKFAC
- COMMON /POPREG/ ALPOM,ALPOMP,GP(2),B0POM(2),
- & ALREG,ALREGP,GR(2),B0REG(2),
- & GPPP,GPPR,B0PPP,B0PPR,
- & VDMFAC(4),VDMQ2F(4),B0HAR,AKFAC
-C parameters of 2x2 channel model
- DOUBLE PRECISION PHISUP,RMASS,VAR,AMPFAC,ELAFAC,VFAC
- COMMON /PO2CHA/ PHISUP(2),RMASS(2),VAR,AMPFAC(4),ELAFAC(4),VFAC
-C table of particle indices for recursive PHOJET calls
- INTEGER MAXIPX
- PARAMETER ( MAXIPX = 100 )
- INTEGER IPOPOS,IPORES,IPOIX1,IPOIX2,IPOIX3
- COMMON /PORECU/ IPOPOS(2,MAXIPX),IPORES(MAXIPX),
- & IPOIX1,IPOIX2,IPOIX3
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C event weights and generated cross section
- INTEGER IPOWGC,ISWCUT,IVWGHT
- DOUBLE PRECISION SIGGEN,HSWGHT,HSWCUT,EVWGHT
- COMMON /POWGHT/ SIGGEN(4),HSWGHT(0:10),HSWCUT(20),EVWGHT(0:10),
- & IPOWGC(0:10),ISWCUT(20),IVWGHT(0:10)
-
- DOUBLE PRECISION P1,P2,XMASS,AMP,PP,PD1,PD2
- DIMENSION P1(5),P2(5),XMASS(2),AMP(2),PP(7,2),PD1(7),PD2(7)
- DIMENSION IDPDG(2),IDBAM(2),IPAR(2),IPOSP(2,2),IRPDG(2),IVEC(2),
- & IRBAM(2),IFL1P(2),IFL2P(2),ISAM(2),JSAM(2),KSAM(2),
- & IDIR(2),IPROC(2)
-
- IF(IMODE.EQ.-1) THEN
-C initialization
- RETURN
- ELSE IF(IMODE.EQ.-2) THEN
-C output of statistics
- RETURN
- ENDIF
-
- IREJ = 0
-C mass cuts
- PIMASS = 0.140D0
-C debug output
- IF(IDEB(45).GE.10) THEN
- WRITE(LO,'(1X,2A,/16X,7I6)') 'PHO_DIFDIS: (1) ',
- & 'IDIF1,IDIF2,IMOTH1,IMOTH2,MSOFT,MHARD,IMODE',
- & IDIF1,IDIF2,IMOTH1,IMOTH2,MSOFT,MHARD,IMODE
- ENDIF
- IPAR(1) = IDIF1
- IPAR(2) = IDIF2
-C save current status
- MSOFT = 0
- MHARD = 0
- KHPOMS = KHPOM
- KSPOMS = KSPOM
- KSREGS = KSREG
- KHDIRS = KHDIR
- IPOIS1 = IPOIX1
- IPOIS2 = IPOIX2
- IPOIS3 = IPOIX3
- JDA11 = JDAHEP(1,IMOTH1)
- JDA21 = JDAHEP(2,IMOTH1)
- JDA12 = JDAHEP(1,IMOTH2)
- JDA22 = JDAHEP(2,IMOTH2)
- ISTH1 = ISTHEP(IMOTH1)
- ISTH2 = ISTHEP(IMOTH2)
- NHEPS = NHEP
-C get mother data
- NPOSD(1) = IMOTH1
- NPOSD(2) = IMOTH2
- DO 20 I=1,2
- IDPDG(I) = IDHEP(NPOSD(I))
- IDBAM(I) = IMPART(NPOSD(I))
- AMP(I) = PHO_PMASS(IDBAM(I),0)
- IF(IDPDG(I).EQ.22) THEN
- PMASSD(I) = 0.765D0
- PVIRTD(I) = PHEP(5,NPOSD(I))**2
- ELSE
- PMASSD(I) = PHO_PMASS(IDBAM(I),0)
- PVIRTD(I) = 0.D0
- ENDIF
- 20 CONTINUE
-C get CM system
- P1(1) = PHEP(1,IMOTH1)+PHEP(1,IMOTH2)
- P1(2) = PHEP(2,IMOTH1)+PHEP(2,IMOTH2)
- P1(3) = PHEP(3,IMOTH1)+PHEP(3,IMOTH2)
- P1(4) = PHEP(4,IMOTH1)+PHEP(4,IMOTH2)
- SS = (P1(4)+P1(3))*(P1(4)-P1(3))-P1(1)**2-P1(2)**2
- ECMD = SQRT(SS)
- IF(IDEB(45).GE.15) WRITE(LO,'(1X,A,E12.4)')
- & 'PHO_DIFDIS: availabe energy',ECMD
-C check total available energy
- IF((AMP(1)+AMP(2)+0.1D0).GE.ECMD) THEN
- IF(IDEB(45).GE.2) WRITE(LO,'(1X,2A,/5X,A,1P,3E11.3)')
- & 'PHO_DIFDIS: ',
- & 'not enough energy for inelastic diffraction',
- & 'ECM, particle masses:',ECMD,AMP
- IFAIL(7) = IFAIL(7)+1
- IREJ = 1
- RETURN
- ENDIF
-C boost into CMS
- DO 10 I=1,4
- GAMBED(I) = P1(I)/ECMD
- 10 CONTINUE
- CALL PHO_ALTRA(GAMBED(4),-GAMBED(1),-GAMBED(2),-GAMBED(3),
- & PHEP(1,IMOTH1),PHEP(2,IMOTH1),PHEP(3,IMOTH1),
- & PHEP(4,IMOTH1),PTOT1,P1(1),P1(2),P1(3),P1(4))
-C rotation angles
- CODD = P1(3)/PTOT1
- SIDD = SQRT(P1(1)**2+P1(2)**2)/PTOT1
- COFD = 1.D0
- SIFD = 0.D0
- IF(PTOT1*SIDD.GT.1.D-5) THEN
- COFD = P1(1)/(SIDD*PTOT1)
- SIFD = P1(2)/(SIDD*PTOT1)
- ANORF= SQRT(COFD*COFD+SIFD*SIFD)
- COFD = COFD/ANORF
- SIFD = SIFD/ANORF
- ENDIF
-C initial particles in CMS
- PDCMS(1,1) = 0.D0
- PDCMS(2,1) = 0.D0
- PDCMS(3,1) = PTOT1
- PDCMS(4,1) = P1(4)
- PDCMS(1,2) = 0.D0
- PDCMS(2,2) = 0.D0
- PDCMS(3,2) = -PTOT1
- PDCMS(4,2) = ECMD-P1(4)
-C get new CM momentum
- AM12 = PMASSD(1)**2
- AM22 = PMASSD(2)**2
- PCMD = PHO_XLAM(SS,AM12,AM22)/(2.D0*ECMD)
-
-C coherence constraint (min/max diffractive mass allowed)
- IF(IMODE.EQ.2) THEN
- THRM1 = PARMDL(71)/SQRT(1-PARMDL(72))
- THRM1 = MAX(THRM1,PARMDL(70)*PARMDL(71))
- THRM2 = SQRT(1-PARMDL(72))*ECMD
- THRM2 = MIN(THRM2,ECMD/PARMDL(70))
- ELSE
- THRM1 = PARMDL(46)
- THRM2 = PARMDL(45)*ECMD
-C check kinematic limits
- IF(THRM2.LE.(4.D0*PARMDL(162))) IPAR(1) = MIN(IPAR(1),1)
- IF(THRM2.LE.(4.D0*PARMDL(163))) IPAR(2) = MIN(IPAR(2),1)
- ENDIF
-
-C check energy vs. coherence constraints
- IF(MAX(PARMDL(162),PMASSD(1)+THRM1).GE.THRM2) IPAR(1) = 0
- IF(MAX(PARMDL(163),PMASSD(2)+THRM1).GE.THRM2) IPAR(2) = 0
-
-C no phase space available
- IF(IPAR(1)+IPAR(2).EQ.0) THEN
- IF(IDEB(45).GE.2) WRITE(LO,'(1X,2A,1P,E11.3,2(/5X,A,2E11.3))')
- & 'PHO_DIFDIS: ',
- & 'not enough phase space for ine. diffraction (Ecm)',ECMD,
- & 'side 1: min. mass, upper mass limit:',
- & MAX(PARMDL(162),PMASSD(1)+THRM1),THRM2,
- & 'side 2: min. mass, upper mass limit:',
- & MAX(PARMDL(163),PMASSD(2)+THRM1),THRM2
- IFAIL(7) = IFAIL(7)+1
- IREJ = 1
- RETURN
- ENDIF
-
- ITRY = 0
- ITRYM = 10
- IPARS1 = IPAR(1)
- IPARS2 = IPAR(2)
-
-C main rejection loop
-C -------------------------------
- 50 CONTINUE
- ITRY = ITRY+1
- IF(ITRY.GT.1) THEN
- IFAIL(13) = IFAIL(13)+1
- IF(ITRY.GE.ITRYM) THEN
- IF(IDEB(45).GE.2) WRITE(LO,'(1X,A,I10,2I3)')
- & 'PHO_DIFDIS: rejection (KEVE,IPAR1/2) ',KEVENT,IPAR
- IFAIL(7) = IFAIL(7)+1
- IREJ = 1
- RETURN
- ENDIF
- ENDIF
- KSPOM = KSPOMS
- KHPOM = KHPOMS
- KHDIR = KHDIRS
- KSREG = KSREGS
- IPAR(1) = IPARS1
- IPAR(2) = IPARS2
-C reset mother-daugther relations
- NHEP = NHEPS
- JDAHEP(1,IMOTH1) = JDA11
- JDAHEP(2,IMOTH1) = JDA21
- JDAHEP(1,IMOTH2) = JDA12
- JDAHEP(2,IMOTH2) = JDA22
- ISTHEP(IMOTH1) = ISTH1
- ISTHEP(IMOTH2) = ISTH2
- IPOIX1 = IPOIS1
- IPOIX2 = IPOIS2
- IPOIX3 = IPOIS3
-C
- NSLP = 0
- NCOR = 0
- 55 CONTINUE
-
-C calculation of kinematics
- DO 100 I=1,2
-C sampling of masses
- IRPDG(I) = 0
- IRBAM(I) = 0
- IFL1P(I) = IDPDG(I)
- IFL2P(I) = IDBAM(I)
- IVEC(I) = 0
- IDIR(I) = 0
- ISAM(I) = 0
- JSAM(I) = 0
- KSAM(I) = 0
- IF(IPAR(I).EQ.0) THEN
-C vector meson dominance assumed
- XMASS(I) = AMP(I)
- CALL PHO_VECRES(IVEC(I),XMASS(I),IFL1P(I),IFL2P(I))
-C diffraction dissociation
- ELSE IF(IPAR(I).EQ.1) THEN
- XMMIN = MAX(PARMDL(161+I),PMASSD(I)+THRM1)
- PREF2 = PMASSD(I)**2
- XMASS(I) = PHO_DFMASS(XMMIN,THRM2,PREF2,PVIRTD(I),ISWMDL(22))
- ELSE
- WRITE(LO,'(/1X,A,2I3)')
- & 'PHO_DIFDIS:ERROR:invalid IPAR1,IPAR2',IPAR(1),IPAR(2)
- CALL PHO_ABORT
- ENDIF
- 100 CONTINUE
-
-C sampling of momentum transfer
- CALL PHO_DIFSLP(IPAR(1),IPAR(2),IVEC(1),IVEC(2),XMASS(1),XMASS(2),
- & THRM2,TT,SLWGHT,IREJ)
- IF(IREJ.NE.0) THEN
- NSLP=NSLP+1
- IF(NSLP.LT.100) GOTO 55
- WRITE(LO,'(1X,2A,/10X,2I3,2E12.3)') 'PHO_DIFDIS: ',
- & 'too many slope rejections:IPAR1,IPAR2,M1,M2',IPAR,XMASS
- IREJ = 5
- RETURN
- ENDIF
-
-C correct for t-M^2 correlation in diffraction
- IF(DT_RNDM(TT).GT.SLWGHT) THEN
- NCOR=NCOR+1
- IF(NCOR.LT.100) GOTO 55
- WRITE(LO,'(1X,2A,I10)') 'PHO_DIFDIS: ',
- & 'too many rejections due to t-M**2 correlation (EVE)',KEVENT
- IREJ = 5
- RETURN
- ENDIF
-
-C debug output
- IF(IDEB(45).GE.5) THEN
- WRITE(LO,'(1X,A,/5X,2I3,3E12.3)')
- & 'PHO_DIFDIS: IPAR1,IPAR2,XMASS1,XMASS2,TT',IPAR,XMASS,TT
- ENDIF
-C not double pomeron scattering
- IF(IMODE.NE.2) THEN
-C sample diffractive interaction processes
- DO 120 I=1,2
- IF(IPAR(I).NE.0) THEN
-C find particle combination
- IF(IDPDG(I).EQ.IFPAP(1)) THEN
- IP = 2
- ELSE IF(IDPDG(I).EQ.IFPAP(2)) THEN
- IP = 3
- ELSE IF(IDPDG(I).EQ.990) THEN
- IP = 4
- ELSE
- IP = I+1
- ENDIF
-C sample dissociation process
- CALL PHO_DIFPRO(IP,ISWMDL(16),IDPDG(I),990,XMASS(I),
- & PVIRTD(I),0.D0,SPROB,IPROC(I),ISAM(I),JSAM(I),
- & KSAM(I),IDIR(I))
- IF((IPROC(I).EQ.1).OR.(IPROC(I).EQ.8)) THEN
-C store process label
- IF(IDIR(I).GT.0) THEN
- IPAR(I) = 4
- ELSE IF(KSAM(I).GT.0) THEN
- IPAR(I) = 3
- ELSE IF(ISAM(I).GT.0) THEN
- IPAR(I) = 2
- ELSE
- IPAR(I) = 1
-C mass fine correction
- CALL PHO_MASSAD(IDPDG(I),IFL1P(I),IFL2P(I),PMASSD(I),
- & XMASS(I),XMNEW,IRPDG(I),IRBAM(I))
- XMASS(I) = XMNEW
- ENDIF
- ELSE
-C diffractive pomeron-hadron interaction
- IPAR(I) = 10+IPROC(I)
- ENDIF
-C debug output
- IF(IDEB(45).GE.15) WRITE(LO,'(1X,A,/10X,I3,E12.4,5I3)')
- & 'PHO_DIFDIS: IP,XMASS,IPROC,ISAM,JSAM,KSAM,IDIR',
- & IP,XMASS(I),IPROC(I),ISAM(I),JSAM(I),KSAM(I),IDIR(I)
- ENDIF
- 120 CONTINUE
- ENDIF
-C actualize debug information
- IF(IMODE.EQ.1) THEN
- IDIFR1 = IPAR(1)
- IDIFR2 = IPAR(2)
- ENDIF
-C calculate new momenta in CMS
- CALL PHO_DIFKIN(XMASS(1),XMASS(2),TT,P1,P2,IREJ)
- IF(IREJ.NE.0) GOTO 50
- DO 130 I=1,4
- PP(I,1) = P1(I)
- PP(I,2) = P2(I)
- 130 CONTINUE
-
-C comment line for diffraction
- CALL PHO_REGPAR(30,IPROCE,IMODE,NPOSD(1),NPOSD(2),XMASS(1),
- & XMASS(2),TT,ECMD,IPAR(1),IPAR(2),IDPDG(1),IDPDG(2),ICPOS,1)
-C write diffractive strings/particles
- DO 200 I=1,2
- I1 = I
- I2 = 3-I1
- DO K=1,4
- PD1(K) = PP(K,I1)
- PD2(K) = PP(K,I2)
- ENDDO
- PP(6,I1) = SIGN(PHEP(5,NPOSD(I1))**2,PHEP(5,NPOSD(I1)))
- PP(7,I1) = TT
- IGEN = IPHIST(2,NPOSD(I1))
- if(IGEN.eq.0) IGEN = -I1*10
- CALL PHO_DIFPAR(NPOSD(I1),NPOSD(I2),IGEN,IFL1P(I1),IFL2P(I1),
- & IPAR(I1),PD1,PD2,IPOSP(1,I1),IPOSP(2,I1),IMODE,IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(7+I) = IFAIL(7+I)+1
- IF(IDEB(45).GE.3) WRITE(LO,'(1X,A,2I3,E11.3)')
- & 'PHO_DIFDIS: rejection by PHO_DIFPAR (I,IPAR,XM)',
- & I,IPAR(I),XMASS(I)
- GOTO 50
- ENDIF
- ICOLOR(I1,ICPOS) = IPOSP(1,I1)
- 200 CONTINUE
-C double-pomeron scattering?
- IF(IMODE.EQ.2) GOTO 150
-
-C diffractive final states
- DO 300 I=1,2
- 110 CONTINUE
- IF(IPAR(I).EQ.0) THEN
-C vector meson production
- IF(IDPDG(I).EQ.22) THEN
- IF(ISWMDL(21).GE.0) THEN
- ISP = IPAMDL(3)
- IF(ISWMDL(21).GE.1) ISP = IPAMDL(4)
- CALL PHO_SDECAY(IPOSP(1,I),ISP,2)
- ENDIF
-C hadronic state of multi-pomeron coupling
- ELSE IF(IDPDG(I).EQ.990) THEN
- CALL PHO_SDECAY(IPOSP(1,I),0,2)
- ENDIF
- ELSE
- IF((IPROC(I).EQ.1).OR.(IPROC(I).EQ.8)) THEN
- IF(ISAM(I)+JSAM(I)+KSAM(I).EQ.0) JSAM(I) = 1
- IF(IDIR(I).GT.0) THEN
- IPAR(I) = 4
- ELSE IF(KSAM(I).GT.0) THEN
- IPAR(I) = 3
- ELSE IF(ISAM(I).GT.0) THEN
- IPAR(I) = 2
- ELSE
- IPAR(I) = 1
- ENDIF
- ELSE
- IPAR(I) = 10+IPROC(I)
- ENDIF
- IPHIST(I,ICPOS) = IPAR(I)
-C update debug informantion
- KSPOM = ISAM(I)
- KSREG = JSAM(I)
- KHPOM = KSAM(I)
- KHDIR = IDIR(I)
- IDIFR1 = IPAR(1)
- IDIFR2 = IPAR(2)
- IF((IRPDG(I).NE.0).AND.(ISWMDL(23).GT.0)) THEN
-
-C resonance decay, pi+pi- background
- P1(1) = PHEP(1,IPOSP(1,I))+PHEP(1,IPOSP(2,I))
- P1(2) = PHEP(2,IPOSP(1,I))+PHEP(2,IPOSP(2,I))
- P1(3) = PHEP(3,IPOSP(1,I))+PHEP(3,IPOSP(2,I))
- P1(4) = PHEP(4,IPOSP(1,I))+PHEP(4,IPOSP(2,I))
- CALL PHO_REGPAR(1,IRPDG(I),IRBAM(I),IPOSP(1,I),IPOSP(2,I),
- & P1(1),P1(2),P1(3),P1(4),0,2,0,0,IPOS,1)
-C decay
- IF(IDPDG(I).EQ.22) THEN
- IPHIST(2,IPOS) = 3
- IF(ISWMDL(21).GE.0) THEN
- ISP = IPAMDL(3)
- IF(ISWMDL(21).GE.2) ISP = IPAMDL(4)
- CALL PHO_SDECAY(IPOS,ISP,2)
- ENDIF
- ELSE
- CALL PHO_SDECAY(IPOS,IPAMDL(3),2)
- ENDIF
- IREJ = 0
- ELSE
-
-C particle-pomeron scattering
- IF(IPAR(I).LE.4) THEN
-C non-diffractive particle-pomeron scattering
- IGEN = IPHIST(2,NPOSD(I))
- if(IGEN.eq.0) then
- if(I.eq.1) then
- IGEN = 5
- else
- IGEN = 6
- endif
- endif
- CALL PHO_STDPAR(IPOSP(1,I),IPOSP(2,I),IGEN,
- & ISAM(I),JSAM(I),KSAM(I),IDIR(I),IREJ)
- ELSE
-C diffractive particle-pomeron scattering
- IPOIX2 = IPOIX2+1
- IPORES(IPOIX2) = IPROC(I)
- IPOPOS(1,IPOIX2) = IPOSP(1,I)
- IPOPOS(2,IPOIX2) = IPOSP(2,I)
- ENDIF
- ENDIF
- ENDIF
-
-C rejection?
- IF(IREJ.NE.0) THEN
- IFAIL(20+I) = IFAIL(20+I)+1
- IF(IPAR(I).GT.1) THEN
- IF(IPAR(I).EQ.3) IFAIL(7+2*I) = IFAIL(7+2*I)+1
- IF(IPAR(I).EQ.4) IFAIL(8+2*I) = IFAIL(8+2*I)+1
- IF(IDIR(I).GT.0) THEN
- IDIR(I) = 0
- ELSE IF(KSAM(I).GT.0) THEN
- KSAM(I) = KSAM(I)-1
- ELSE IF(ISAM(I).GT.0) THEN
- ISAM(I) = ISAM(I)-1
- ENDIF
- GOTO 110
- ELSE
- IF(IDEB(45).GE.2) WRITE(LO,'(1X,A,2I3,E11.3)')
- & 'PHO_DIFDIS: rejection PHO_STDPAR (I,IPAR,XM)',
- & I,IPAR(I),XMASS(I)
- GOTO 50
- ENDIF
- ENDIF
- 300 CONTINUE
-
- IDIF1 = IPAR(1)
- IDIF2 = IPAR(2)
-C update debug information
- KSPOM = KSPOMS+ISAM(1)+ISAM(2)
- KSREG = KSREGS+JSAM(1)+JSAM(2)
- KHPOM = KHPOMS+KSAM(1)+KSAM(2)
- KHDIR = KHDIRS+IDIR(1)+IDIR(2)
-
- 150 CONTINUE
-
-C debug output
- IF(IDEB(45).GE.10) THEN
- WRITE(LO,'(1X,2A,/18X,7I6)') 'PHO_DIFDIS: (2) ',
- & 'IPAR1,IPAR2,IMOTH1,IMOTH2,MSOFT,MHARD,IMODE',
- & IPAR,NPOSD,MSOFT,MHARD,IMODE
- ENDIF
- IF(IDEB(45).GE.15) THEN
- WRITE(LO,'(2(/1X,A))') 'PHO_DIFDIS: output of /POEVT1/',
- & '------------------------------'
- CALL PHO_PREVNT(0)
- ENDIF
-
- END
-
-CDECK ID>, PHO_DIFPRO
- SUBROUTINE PHO_DIFPRO(IP,ICUT,ID1,ID2,XMASS,P2V1,P2V2,SPROB,
- & IPROC,ISAM,JSAM,KSAM,IDIR)
-C*********************************************************************
-C
-C sampling of diffraction dissociation process
-C
-C input: IP particle combination
-C ICUT user imposed limitations
-C ID1/2 PDG particle code of scattering particles
-C XMASS diffractively produced mass (GeV)
-C P2V1/2 virtuality of scattering particles (Gev**2)
-C SPROB suppression factor for resolved single and
-C double diffraction dissociation
-C
-C output: IRPOC process ID
-C ISAM number of cut pomerons (soft)
-C JSAM number of cut reggeons
-C KSAM number of cut pomerons (hard)
-C IDIR direct hard interaction
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C energy-interpolation table
- INTEGER IEETA2
- PARAMETER ( IEETA2 = 20 )
- INTEGER ISIMAX
- DOUBLE PRECISION SIGTAB,SIGECM
- COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
-
- ISAM = 0
- JSAM = 0
- KSAM = 0
- IDIR = 0
-
- IF(XMASS.GT.3.D0) THEN
-C rapidity gap survival probability
- SPRO = 1.D0
- IF(ISWMDL(28).GE.1) SPRO = SPROB
-C sample interaction
- IPROC = 0
- CALL PHO_SAMPRO(IP,ID1,ID2,XMASS,P2V1,P2V2,SPRO,IPROC)
- ELSE
- IPROC = 1
- ENDIF
- IF(IPROC.EQ.1) CALL PHO_SAMPRB(XMASS,IP,ISAM,JSAM,KSAM)
-C non-diffractive hadron-pomeron interaction
- IF((IPROC.EQ.1).OR.(IPROC.EQ.8)) THEN
-C option for suppression of multiple interaction
- IF(ICUT.EQ.0) THEN
- IPROC = 1
- IF(ISAM+KSAM+IDIR.GT.0) THEN
- ISAM = 1
- JSAM = 0
- ELSE
- JSAM = 1
- ENDIF
- KSAM = 0
- IDIR = 0
- ELSE IF(ICUT.EQ.1) THEN
- IF(IDIR.GT.0) THEN
- ELSE IF(KSAM.GT.0) THEN
- KSAM = 1
- ISAM = 0
- JSAM = 0
- ELSE IF(ISAM.GT.0) THEN
- ISAM = 1
- JSAM = 0
- ELSE
- JSAM = 1
- ENDIF
- ELSE IF(ICUT.EQ.2) THEN
- KSAM = MIN(KSAM,1)
- ELSE IF(ICUT.EQ.3) THEN
- ISAM = MIN(ISAM,1)
- ENDIF
- ENDIF
- END
-
-CDECK ID>, PHO_DIFPAR
- SUBROUTINE PHO_DIFPAR(IMOTH1,IMOTH2,IGENM,IFL1,IFL2,IPAR,P1,P2,
- & IPOSH1,IPOSH2,IMODE,IREJ)
-C***********************************************************************
-C
-C perform string construction for diffraction dissociation
-C
-C input: IMOTH1,2 index of mother particles in POEVT1
-C IGENM production process of mother particles
-C IFL1,IFL2 particle numbers
-C (IDPDG,IDBAM for quasi-elas. hadron)
-C IPAR 0 quasi-elasic scattering
-C 1 single string configuration
-C 2 two string configuration
-C P1 massive 4 momentum of first
-C P1(6) virtuality/squ.mass of particle (GeV**2)
-C P1(7) virtuality of Pomeron (neg, GeV**2)
-C P2 massive 4 momentum of second particle
-C IMODE 1 diffraction dissociation
-C 2 double-pomeron scattering
-C
-C output: IPOSH1,2 index of the particles in /POEVT1/
-C IREJ 0 successful string construction
-C 1 no string construction possible
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- DIMENSION P1(7),P2(7)
-
- PARAMETER ( EPS = 1.D-7,
- & DEPS = 1.D-10)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C c.m. kinematics of diffraction
- INTEGER NPOSD
- DOUBLE PRECISION ECMD,PCMD,PMASSD,PVIRTD,GAMBED,
- & SIDD,CODD,SIFD,COFD,PDCMS
- COMMON /PODCMS/ ECMD,PCMD,PMASSD(2),PVIRTD(2),GAMBED(4),
- & SIDD,CODD,SIFD,COFD,PDCMS(4,2),NPOSD(2)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
- DIMENSION PCH1(2,4)
- data IC1 /0/
- data IC2 /0/
-
- IREJ = 0
- ILTR1 = NHEP+1
- IGEN = IGENM
- if(IGENM.le.-10) IGEN = 0
-
-C elastic part
- IF(IPAR.EQ.0) THEN
- IF((IFL1.EQ.92).OR.(IFL1.EQ.91)) THEN
- if(IGEN.eq.0) IGEN = 3
-C pi+/pi- isotropic background
- CALL PHO_REGPAR(1,IFL1,IFL2,IMOTH1,IMOTH2,
- & P1(1),P1(2),P1(3),P1(4),0,IGEN,0,0,IPOSH1,1)
- CALL PHO_SDECAY(IPOSH1,0,-2)
- ELSE
- if(IGEN.eq.0) then
- IGEN = 2
- if(IFL1.ne.IDHEP(IMOTH1)) IGEN = 3
- endif
-C registration of particle or resonance
- CALL PHO_REGPAR(1,IFL1,IFL2,IMOTH1,IMOTH2,P1(1),P1(2),P1(3),
- & P1(4),0,IGEN,0,0,IPOSH1,1)
- ENDIF
-
-C diffraction dissociation
- ELSE IF((IPAR.GE.1).AND.(IPAR.LE.18)) THEN
-C calculation of resulting particle momenta
- IF(IMOTH1.EQ.NPOSD(1)) THEN
- K = 2
- ELSE
- K = 1
- ENDIF
- DO 100 I=1,4
- PCH1(2,I) = PDCMS(I,K)-P2(I)
- PCH1(1,I) = P1(I)-PCH1(2,I)
- 100 CONTINUE
-
-C registration
- if(IMODE.LT.2) then
- if(IGEN.eq.0) IGEN = -IGENM/10+4
- CALL PHO_REGPAR(1,IFL1,IFL2,IMOTH1,IMOTH2,PCH1(1,1),
- & PCH1(1,2),PCH1(1,3),PCH1(1,4),-1,IGEN,IC1,IC2,IPOSH1,1)
- else
- if(IGEN.eq.0) IGEN = 4
- endif
- CALL PHO_REGPAR(1,990,0,IMOTH2,IMOTH1,PCH1(2,1),PCH1(2,2),
- & PCH1(2,3),PCH1(2,4),-1,IGEN,IC1,IC2,IPOSH2,1)
-
-C invalid IPAR
- ELSE
- WRITE(LO,'(/1X,A,I6)') 'PHO_DIFPAR:ERROR: invalid IPAR:',IPAR
- CALL PHO_ABORT
- ENDIF
-
-C back transformation
- CALL PHO_LTRHEP(ILTR1,NHEP,CODD,SIDD,COFD,SIFD,GAMBED(4),
- & GAMBED(1),GAMBED(2),GAMBED(3))
-
- END
-
-CDECK ID>, PHO_QELAST
- SUBROUTINE PHO_QELAST(IPROC,JM1,JM2,IREJ)
-C**********************************************************************
-C
-C sampling of quasi elastic processes
-C
-C input: IPROC 2 purely elastic scattering
-C IPROC 3 q-ela. omega/omega/phi/pi+pi- production
-C IPROC 4 double pomeron scattering
-C IPROC -1 initialization
-C IPROC -2 output of statistics
-C JM1/2 index of initial particle 1/2
-C
-C output: initial and final particles in /POEVT1/ involving
-C polarized resonances in /POEVT1/ and decay
-C products
-C
-C IREJ 0 successful
-C 1 failure
-C 50 user rejection
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( NTAB = 20,
- & EPS = 1.D-10,
- & PIMASS = 0.13D0,
- & DEPS = 1.D-10)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C c.m. kinematics of diffraction
- INTEGER NPOSD
- DOUBLE PRECISION ECMD,PCMD,PMASSD,PVIRTD,GAMBED,
- & SIDD,CODD,SIFD,COFD,PDCMS
- COMMON /PODCMS/ ECMD,PCMD,PMASSD(2),PVIRTD(2),GAMBED(4),
- & SIDD,CODD,SIFD,COFD,PDCMS(4,2),NPOSD(2)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C cross sections
- INTEGER IPFIL,IFAFIL,IFBFIL
- DOUBLE PRECISION SIGTOT,SIGELA,SIGVM,SIGINE,SIGNDF,SIGDIR,
- & SIGLSD,SIGHSD,SIGLDD,SIGHDD,SIGCDF,
- & SIGPOM,SIGREG,SIGHAR,SIGTR1,SIGTR2,SIGLOO,
- & SIGDPO,SIG1SO,SIG1HA,SLOEL,SLOVM,SIGCOR,
- & FSUP,FSUD,FSUH,ECMFIL,P2AFIL,P2BFIL
- COMMON /POCSEC/ SIGTOT,SIGELA,SIGVM(0:4,0:4),SIGINE,SIGNDF,SIGDIR,
- & SIGLSD(2),SIGHSD(2),SIGLDD,SIGHDD,SIGCDF(0:4),
- & SIGPOM,SIGREG,SIGHAR,SIGTR1(2),SIGTR2(2),SIGLOO,
- & SIGDPO(4),SIG1SO,SIG1HA,SLOEL,SLOVM(4,4),SIGCOR,
- & FSUP(2),FSUD(2),FSUH(2),ECMFIL,P2AFIL,P2BFIL,
- & IPFIL,IFAFIL,IFBFIL
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
- DOUBLE PRECISION P,PK1,PK2,PMI,RMASS
- DIMENSION P(4,2),PK1(5),PK2(5),PMI(2),RMASS(2)
- DIMENSION IFL(2),IDPRO(4)
- character*15 pho_pname
- CHARACTER*8 VMESA(0:4),VMESB(0:4)
- DIMENSION ISAMVM(4,4)
- DATA IDPRO / 113,223,333,92 /
- DATA VMESA / 'vmeson ','rho ','omega ','phi ',
- & 'pi+pi- ' /
- DATA VMESB / 'vmeson ','rho ','omega ','phi ',
- & 'pi+pi- ' /
-
-C sampling of elastic/quasi-elastic processes
- IF((IPROC.EQ.2).OR.(IPROC.EQ.3)) THEN
- IREJ = 0
- NPOSD(1) = JM1
- NPOSD(2) = JM2
- DO 55 I=1,2
- PMI(I) = PHEP(5,NPOSD(I))
- IF(PMI(I).LT.0.1D0) PMI(I) = 0.765D0
- 55 CONTINUE
-C get CM system
- PK1(1) = PHEP(1,JM1)+PHEP(1,JM2)
- PK1(2) = PHEP(2,JM1)+PHEP(2,JM2)
- PK1(3) = PHEP(3,JM1)+PHEP(3,JM2)
- PK1(4) = PHEP(4,JM1)+PHEP(4,JM2)
- SS = (PK1(4)+PK1(3))*(PK1(4)-PK1(3))-PK1(1)**2-PK1(2)**2
- ECMD = SQRT(SS)
-
- IF(ECMD.LE.PMI(1)+PMI(2)) THEN
- IF(IDEB(34).GE.3) WRITE(LO,'(1X,A,I12,3E12.4)')
- & 'PHO_QELAST: too small mass (EV,ECM,M1,M2)',KEVENT,
- & ECMD,PMI
- IREJ = 5
- RETURN
- ENDIF
-
- DO 60 I=1,4
- GAMBED(I) = PK1(I)/ECMD
- 60 CONTINUE
- CALL PHO_ALTRA(GAMBED(4),-GAMBED(1),-GAMBED(2),-GAMBED(3),
- & PHEP(1,NPOSD(1)),PHEP(2,NPOSD(1)),PHEP(3,NPOSD(1)),
- & PHEP(4,NPOSD(1)),PTOT1,PK1(1),PK1(2),PK1(3),PK1(4))
-C rotation angles
- CODD = PK1(3)/PTOT1
- SIDD = SQRT(PK1(1)**2+PK1(2)**2)/PTOT1
- COFD = 1.D0
- SIFD = 0.D0
- IF(PTOT1*SIDD.GT.1.D-5) THEN
- COFD = PK1(1)/(SIDD*PTOT1)
- SIFD = PK1(2)/(SIDD*PTOT1)
- ANORF = SQRT(COFD*COFD+SIFD*SIFD)
- COFD = COFD/ANORF
- SIFD = SIFD/ANORF
- ENDIF
-C get CM momentum
- AM12 = PMI(1)**2
- AM22 = PMI(2)**2
- PCMD = PHO_XLAM(SS,AM12,AM22)/(2.D0*ECMD)
-
-C production process of mother particles
- IGEN = IPHIST(2,NPOSD(1))
- if(IGEN.eq.0) IGEN = IPROC
-
- ICALL = ICALL + 1
-C main rejection label
- 50 CONTINUE
-C determine process and final particles
- IFL(1) = IDHEP(NPOSD(1))
- IFL(2) = IDHEP(NPOSD(2))
- IF(IPROC.EQ.3) THEN
- ITRY = 0
- 100 CONTINUE
- ITRY = ITRY+1
- IF(ITRY.GT.50) THEN
- IF(IDEB(34).GE.3) WRITE(LO,'(1X,A,I12,I5,E12.4)')
- & 'PHO_QELAST: mass rejection (EV,ITRY,ECM)',KEVENT,
- & ITRY,ECMD
- IREJ = 5
- RETURN
- ENDIF
- XI = DT_RNDM(PCMD)*SIGVM(0,0)-DEPS
- DO 110 I=1,4
- DO 120 J=1,4
- XI = XI-SIGVM(I,J)
- IF(XI.LE.0.D0) GOTO 130
- 120 CONTINUE
- 110 CONTINUE
- 130 CONTINUE
- IF(IFL(1).EQ.22) IFL(1) = IDPRO(I)
- IF(IFL(2).EQ.22) IFL(2) = IDPRO(J)
- ISAMVM(I,J) = ISAMVM(I,J)+1
- ISAMQE = ISAMQE+1
-C sample new masses
- CALL PHO_SAMASS(IFL(1),RMASS(1))
- CALL PHO_SAMASS(IFL(2),RMASS(2))
- IF(RMASS(1)+RMASS(2).GE.ECMD) GOTO 100
- ELSE IF(IPROC.EQ.2) THEN
- I = 0
- J = 0
- ISAMEL = ISAMEL+1
- RMASS(1) = PHO_PMASS(NPOSD(1),2)
- RMASS(2) = PHO_PMASS(NPOSD(2),2)
- ELSE
- WRITE(LO,'(/1X,A,I6)') 'PHO_QELAST:ERROR: invalid IPROC',IPROC
- CALL PHO_ABORT
- ENDIF
-C sample momentum transfer
- CALL PHO_DIFSLP(0,0,I,J,RMASS(1),RMASS(2),RMASS(1),TT,
- & SLWGHT,IREJ)
- IF(IDEB(34).GE.5) WRITE(LO,'(1X,A,2I6,I3,3E11.3)')
- & 'PHO_QELAST: IF1,2,T,RM1,RM2',IFL,IPROC,TT,RMASS
-C calculate new momenta
- CALL PHO_DIFKIN(RMASS(1),RMASS(2),TT,PK1,PK2,IREJ)
- IF(IREJ.NE.0) GOTO 50
- DO K=1,4
- P(K,1) = PK1(K)
- P(K,2) = PK2(K)
- ENDDO
-C comment line for elastic/quasi-elastic scattering
- CALL PHO_REGPAR(35,IPROC,0,NPOSD(1),NPOSD(2),RMASS(1),RMASS(2),
- & TT,ECMD,IFL(1),IFL(2),IDHEP(NPOSD(1)),IDHEP(NPOSD(2)),ICPOS,1)
-
- I1 = NHEP+1
-C fill /POEVT1/
- DO 200 I=1,2
- K = 3-I
- IF((IFL(I).EQ.92).OR.(IFL(I).EQ.91)) THEN
-C pi+/pi- isotropic background
- IGEN = 3
- CALL PHO_REGPAR(1,113,0,NPOSD(I),NPOSD(K),P(1,I),P(2,I),
- & P(3,I),P(4,I),0,IGEN,0,0,IPOS,1)
- ICOLOR(I,ICPOS) = IPOS
- CALL PHO_SDECAY(IPOS,0,-2)
- ELSE
-C registration
- IGEN = 2
- if(IFL(I).ne.IDHEP(NPOSD(I))) IGEN = 3
- CALL PHO_REGPAR(1,IFL(I),0,NPOSD(I),NPOSD(K),P(1,I),P(2,I),
- & P(3,I),P(4,I),0,IGEN,0,0,IPOS,1)
- ICOLOR(I,ICPOS) = IPOS
- ENDIF
- 200 CONTINUE
- I2 = NHEP
-C search for vector mesons
- DO 300 I=I1,I2
-C decay according to polarization
- IF((IDHEP(JMOHEP(1,I)).EQ.22).AND.(ISWMDL(21).GE.0)) THEN
- ISP = IPAMDL(3)
- IF(ISWMDL(21).GE.1) ISP = IPAMDL(4)
- CALL PHO_SDECAY(I,ISP,2)
- ENDIF
- 300 CONTINUE
- I2 = NHEP
-C back transformation
- CALL PHO_LTRHEP(I1,I2,CODD,SIDD,COFD,SIFD,GAMBED(4),GAMBED(1),
- & GAMBED(2),GAMBED(3))
-
-C initialization of tables
- ELSE IF(IPROC.EQ.-1) THEN
- DO 10 I=1,4
- DO 20 J=1,4
- ISAMVM(I,J) = 0
- 20 CONTINUE
- 10 CONTINUE
- ISAMEL = 0
- ISAMQE = 0
- IF(IFPAP(1).NE.22) VMESA(1) = PHO_PNAME(IFPAP(1),1)
- IF(IFPAP(2).NE.22) VMESB(1) = PHO_PNAME(IFPAP(2),1)
- CALL PHO_SAMASS(-1,RMASS(1))
- ICALL = 0
-
-C output of statistics
- ELSE IF(IPROC.EQ.-2) THEN
- IF(ICALL.LT.10) RETURN
- WRITE(LO,'(/,1X,A,I10/,1X,A)')
- & 'PHO_QELAST: statistics of (quasi-)elastic processes',ICALL,
- & '---------------------------------------------------'
- WRITE(LO,'(1X,A,I10)')
- & 'sampled elastic processes:',ISAMEL
- WRITE(LO,'(1X,A,I10)')
- & 'sampled quasi-elastic vectormeson production:',ISAMQE
- WRITE(LO,'(15X,4(4X,A))') (VMESB(I),I=1,4)
- DO 30 I=1,4
- WRITE(LO,'(5X,A,4I12)') VMESA(I),(ISAMVM(I,K),K=1,4)
- 30 CONTINUE
- CALL PHO_SAMASS(-2,RMASS(1))
- ELSE
- WRITE(LO,'(/1X,2A,I3)') 'PHO_QELAST:ERROR: ',
- & 'unknown process ID',IPROC
- CALL PHO_ABORT
- ENDIF
-
- END
-
-CDECK ID>, PHO_CDIFF
- SUBROUTINE PHO_CDIFF(IMOTH1,IMOTH2,MSOFT,MHARD,IMODE,IREJ)
-C**********************************************************************
-C
-C preparation of /POEVT1/ for double-pomeron scattering
-C
-C input: IMOTH1/2 index of mother particles in /POEVT1/
-C
-C IMODE 1 sampling of pomeron-pomeron scattering
-C -1 initialization
-C -2 output of statistics
-C
-C output: MSOFT number of generated soft strings
-C MHARD number of generated hard strings
-C IREJ 0 accepted
-C 1 rejected
-C 50 user rejection
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( EPS = 1.D-10,
- & DEPS = 1.D-10)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-C Reggeon phenomenology parameters
- DOUBLE PRECISION ALPOM,ALPOMP,GP,B0POM,ALREG,ALREGP,GR,B0REG,
- & GPPP,GPPR,B0PPP,B0PPR,VDMFAC,VDMQ2F,B0HAR,AKFAC
- COMMON /POPREG/ ALPOM,ALPOMP,GP(2),B0POM(2),
- & ALREG,ALREGP,GR(2),B0REG(2),
- & GPPP,GPPR,B0PPP,B0PPR,
- & VDMFAC(4),VDMQ2F(4),B0HAR,AKFAC
-C parameters of 2x2 channel model
- DOUBLE PRECISION PHISUP,RMASS,VAR,AMPFAC,ELAFAC,VFAC
- COMMON /PO2CHA/ PHISUP(2),RMASS(2),VAR,AMPFAC(4),ELAFAC(4),VFAC
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C energy-interpolation table
- INTEGER IEETA2
- PARAMETER ( IEETA2 = 20 )
- INTEGER ISIMAX
- DOUBLE PRECISION SIGTAB,SIGECM
- COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
-C table of particle indices for recursive PHOJET calls
- INTEGER MAXIPX
- PARAMETER ( MAXIPX = 100 )
- INTEGER IPOPOS,IPORES,IPOIX1,IPOIX2,IPOIX3
- COMMON /PORECU/ IPOPOS(2,MAXIPX),IPORES(MAXIPX),
- & IPOIX1,IPOIX2,IPOIX3
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
- DIMENSION PD(4)
-
- if(IMODE.ne.1) return
-
- IREJ = 0
- IP = 4
-C select first diffraction
- IF(DT_RNDM(DUM).GT.0.5D0) THEN
- IPAR1 = 1
- IPAR2 = 0
- ELSE
- IPAR1 = 0
- IPAR2 = 1
- ENDIF
- ITRY2 = 0
- ITRYM = 1000
-
-C save current status
- MSOFT = 0
- MHARD = 0
- KHPOMS = KHPOM
- KSPOMS = KSPOM
- KSREGS = KSREG
- KHDIRS = KHDIR
- IPOIS1 = IPOIX1
- IPOIS2 = IPOIX2
- IPOIS3 = IPOIX3
- JDA11 = JDAHEP(1,IMOTH1)
- JDA21 = JDAHEP(2,IMOTH1)
- JDA12 = JDAHEP(1,IMOTH2)
- JDA22 = JDAHEP(2,IMOTH2)
- ISTH1 = ISTHEP(IMOTH1)
- ISTH2 = ISTHEP(IMOTH2)
- NHEPS = NHEP
-
-C find mother particle production process
- IGEN = IPHIST(2,IMOTH1)
- if(IGEN.eq.0) IGEN = 4
-
-C main generation loop
- 60 CONTINUE
-
- KSPOM = KSPOMS
- KHPOM = KHPOMS
- KHDIR = KHDIRS
- KSREG = KSREGS
- I1 = IPAR1
- I2 = IPAR2
-C reset mother-daugther relations
- NHEP = NHEPS
- JDAHEP(1,IMOTH1) = JDA11
- JDAHEP(2,IMOTH1) = JDA21
- JDAHEP(1,IMOTH2) = JDA12
- JDAHEP(2,IMOTH2) = JDA22
- ISTHEP(IMOTH1) = ISTH1
- ISTHEP(IMOTH2) = ISTH2
- IPOIX1 = IPOIS1
- IPOIX2 = IPOIS2
- IPOIX3 = IPOIS3
-C rejection counter
- ITRY2 = ITRY2+1
- IF(ITRY2.GT.1) THEN
- IFAIL(39) = IFAIL(39)+1
- IF(ITRY2.GE.ITRYM) GOTO 50
- ENDIF
-C generate two diffractive events
- CALL PHO_DIFDIS(I1,I2,IMOTH1,IMOTH2,1.D0,2,MSOFT,MHARD,IREJ)
- IF(IREJ.NE.0) GOTO 50
- CALL PHO_DIFDIS(I2,I1,IMOTH1,IMOTH2,1.D0,2,MSOFT,MHARD,IREJ)
- IF(IREJ.NE.0) GOTO 50
-C mass of pomeron-pomeron system
- DO 100 I2 = NHEP,1,-1
- IF(IDHEP(I2).EQ.990) GOTO 110
- 100 CONTINUE
- 110 CONTINUE
- DO 120 I1 = I2-1,1,-1
- IF(IDHEP(I1).EQ.990) GOTO 130
- 120 CONTINUE
- 130 CONTINUE
- DO 140 I=1,4
- PD(I) = PHEP(I,I1)+PHEP(I,I2)
- 140 CONTINUE
- XMASS = (PD(4)-PD(3))*(PD(4)+PD(3))-PD(1)**2-PD(2)**2
- IF(IDEB(59).GE.20) WRITE(LO,'(1X,A,2I3,E12.4)')
- & 'PHO_CDIFF: IPOM1,IPOM2,MASS**2',I1,I2,XMASS
- IF(XMASS.LT.0.1D0) GOTO 60
- XMASS = SQRT(XMASS)
- IF(XMASS.LT.PARMDL(71)) GOTO 60
-
-C sample pomeron-pomeron interaction process
- CALL PHO_DIFPRO(4,ISWMDL(17),990,990,XMASS,0.D0,0.D0,1.D0,
- & IPROC,ISAM,JSAM,KSAM,IDIR)
-
-C non-diffractive pomeron-pomeron interactions
- IF((IPROC.EQ.1).OR.(IPROC.EQ.8)) THEN
- 200 CONTINUE
- IF(ISAM+JSAM+KSAM+IDIR.EQ.0) JSAM = 1
-C debug output
- IF(IDEB(59).GE.15) WRITE(LO,'(1X,A,/5X,I3,E12.4,4I5)')
- & 'PHO_CDIFF: IP,XMASS,ISAM,JSAM,KSAM,IDIR,',
- & IP,XMASS,ISAM,JSAM,KSAM,IDIR
-C store debug information
- IF(IDIR.GT.0) THEN
- IPAR = 4
- ELSE IF(KSAM.GT.0) THEN
- IPAR = 3
- ELSE IF(ISAM.GT.0) THEN
- IPAR = 2
- ELSE
- IPAR = 1
- ENDIF
- IDDPOM = IPAR
- IF(ISAM+JSAM.GT.0) KSDPO = 1
- IF(KSAM+IDIR.GT.0) KHDPO = 1
- KSPOM = ISAM
- KSREG = JSAM
- KHPOM = KSAM
- KHDIR = IDIR
- KSTRG = 0
- KSLOO = 0
-C generate pomeron-pomeron interaction
- CALL PHO_STDPAR(I1,I2,IGEN,ISAM,JSAM,KSAM,IDIR,IREJ)
- IF(IREJ.NE.0) THEN
- IFAIL(3) = IFAIL(3)+1
- IF(IPAR.GT.1) THEN
- IF(IPAR.EQ.3) IFAIL(9) = IFAIL(9)+1
- IF(IDIR.GT.0) THEN
- IFAIL(10) = IFAIL(10)+1
- IDIR = 0
- ELSE IF(KSAM.GT.0) THEN
- KSAM = KSAM-1
- ELSE IF(ISAM.GT.0) THEN
- ISAM = ISAM-1
- ENDIF
- GOTO 200
- ELSE
- IF(IDEB(59).GE.2) WRITE(LO,'(1X,A,2I3,E11.3)')
- & 'PHO_CDIFF: rejection by PHO_STDPAR (I,IPAR,XM)',
- & I,IPAR,XMASS
- GOTO 50
- ENDIF
- ENDIF
-
-C diffractive pomeron-pomeron interactions
- ELSE
- IPOIX2 = IPOIX2+1
- IPORES(IPOIX2) = IPROC
- IPOPOS(1,IPOIX2) = I1
- IPOPOS(2,IPOIX2) = I2
- IPAR = 10+IPROC
- IDDPOM = IPAR
- ENDIF
-
-C update debug information
- KSPOM = KSPOMS+ISAM
- KSREG = KSREGS+JSAM
- KHPOM = KHPOMS+KSAM
- KHDIR = KHDIRS+IDIR
-C comment line for central diffraction
- CALL PHO_REGPAR(40,4,IPAR,IMOTH1,IMOTH2,PD(1),PD(2),PD(3),PD(4),
- & I1,I2,IDHEP(IMOTH1),IDHEP(IMOTH2),IPOS,1)
- PHEP(5,IPOS) = XMASS
-C debug output
- IF(IDEB(59).GE.15) THEN
- WRITE(LO,'(2(/1X,A))') 'PHO_CDIFF: output of /POEVT1/',
- & '-----------------------------'
- CALL PHO_PREVNT(0)
- ENDIF
- RETURN
-
-C treatment of rejection
- 50 CONTINUE
- IREJ = 1
- IFAIL(40) = IFAIL(40)+1
- IF(IDEB(59).GE.3) THEN
- WRITE(LO,'(1X,A)')
- & 'PHO_CDIFF: rejection (ITRY,ITRYM)',ITRY2,ITRYM
- IF(IDEB(59).GE.10) THEN
- CALL PHO_PREVNT(0)
- ELSE
- CALL PHO_PREVNT(-1)
- ENDIF
- ENDIF
-
- END
-
-CDECK ID>, PHO_SAMASS
- SUBROUTINE PHO_SAMASS(IFLA,RMASS)
-C**********************************************************************
-C
-C resonance mass sampling of quasi elastic processes
-C
-C input: IFLA PDG number of particle
-C IFLA -1 initialization
-C IFLA -2 output of statistics
-C
-C output: RMASS particle mass (in GeV)
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER(EPS = 1.D-10 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C parameters of the "simple" Vector Dominance Model
- DOUBLE PRECISION VMAS,GAMM,RMIN,RMAX,VMSL,VMFA
- COMMON /POSVDM/ VMAS(4),GAMM(4),RMIN(4),RMAX(4),VMSL(4),VMFA(4)
-
- PARAMETER(NTABM=50)
- DIMENSION XMA(4,NTABM),XMC(4,NTABM),RMA(4,NTABM)
- DIMENSION SUM(4),ICALL(4)
-
-C*****************************************************************
-C initialization of tables
- IF(IFLA.EQ.-1) THEN
-C
- NSTEP = NTABM
- DO 102 I=1,4
- ICALL(I) = 0
-
- DELTAM=(RMAX(I)-RMIN(I))/DBLE(NSTEP-1)
- DO 105 K=1,NSTEP
- RMA(I,K)=RMIN(I)+DELTAM*DBLE(K-1)
- 105 CONTINUE
- 102 CONTINUE
-C calculate table of dsig/dm
- CALL PHO_DSIGDM(RMA,XMA,NSTEP)
-C output of table
- IF(IDEB(35).GE.1) THEN
- WRITE(LO,'(/5X,A)') 'table: mass (GeV) DSIG/DM (mub/GeV)'
- WRITE(LO,'(1X,A,/1X,A)')
- & ' (m, rho, m, omega, m, phi, m, pi+pi-)',
- & ' -------------------------------------------------------'
- DO 106 K=1,NSTEP
- WRITE(LO,'(1X,8E12.3)') RMA(1,K),XMA(1,K),
- & RMA(2,K),XMA(2,K),RMA(3,K),XMA(3,K),RMA(4,K),XMA(4,K)
- 106 CONTINUE
- ENDIF
-C make second table for sampling
- DO 109 I=1,4
- SUM(I) = 0.D0
- DO 108 K=2,NSTEP
- SUM(I) = SUM(I) + (XMA(I,K-1)+XMA(I,K))/2.D0
- XMC(I,K) = SUM(I)
- 108 CONTINUE
- 109 CONTINUE
-C normalization
- DO 118 K=1,NSTEP
- DO 119 I=1,4
- XMC(I,K) = XMC(I,K)/XMC(I,NSTEP)
- 119 CONTINUE
- 118 CONTINUE
- IF(IDEB(35).GE.10) THEN
- WRITE(LO,'(/5X,A)') 'PHO_DSIGDM: normalized summed table:'
- WRITE(LO,'(1X,A,/1X,A)')
- & ' (m, rho, m, omega, m, phi, m, pi+pi-)',
- & ' -------------------------------------------------------'
- DO 120 K=1,NSTEP
- WRITE(LO,'(1X,8E12.3)') RMA(1,K),XMC(1,K),
- & RMA(2,K),XMC(2,K),RMA(3,K),XMC(3,K),RMA(4,K),XMC(4,K)
- 120 CONTINUE
- ENDIF
-C
-C**************************************************
-C output of statistics
- ELSE IF(IFLA.EQ.-2) THEN
- WRITE(LO,'(2(/1X,A))') 'PHO_SAMASS: statistics',
- & '----------------------'
- WRITE(LO,'(4(/8X,A,I10))') 'rho: ',ICALL(1),
- & 'omega: ',ICALL(2),'phi: ',ICALL(3),'pi+pi-:',ICALL(4)
-
-C
-C********************************************************
-C sampling of RMASS
- ELSE
-C quasi-elastic vector meson production
- IF(IFLA.EQ.113) THEN
- KP = 1
- ELSE IF(IFLA.EQ.223) THEN
- KP = 2
- ELSE IF(IFLA.EQ.333) THEN
- KP = 3
- ELSE IF(IFLA.EQ.92) THEN
- KP = 4
-C quasi-elastic production of h*
- ELSE IF(IFLA.EQ.91) THEN
- RMASS = 0.35D0
- RETURN
-C elastic hadron scattering
- ELSE
- RMASS = PHO_PMASS(IFLA,1)
- IF(IDEB(35).GE.20) WRITE(LO,'(1X,A,I7,E12.3)')
- & 'PHO_SAMASS: IFLA,MASS',IFLA,RMASS
- RETURN
- ENDIF
-C
-C sample mass of vector mesonsn / two-pi background
- XI = DT_RNDM(RMASS) + EPS
-C binary search
- IF((XMC(KP,1).LE.XI).AND.(XMC(KP,NSTEP).GE.XI)) THEN
- KMIN=1
- KMAX=NSTEP
- 300 CONTINUE
- IF((KMAX-KMIN).EQ.1) GOTO 400
- KK=(KMAX+KMIN)/2
- IF(XI.LE.XMC(KP,KK)) THEN
- KMAX=KK
- ELSE
- KMIN=KK
- ENDIF
- GOTO 300
- 400 CONTINUE
- ELSE
- WRITE(LO,'(1X,A)') 'PHO_SAMASS:ERROR:XI out of range'
- WRITE(LO,'(5X,A,I7,I6,3E12.4)') 'EVENT,IFLA,XI,XImin,XImax',
- & KEVENT,IFLA,XI,XMC(KP,1),XMC(KP,NSTEP)
- CALL PHO_ABORT
- ENDIF
-C fine interpolation
- RMASS = RMA(KP,KMIN)+
- & (RMA(KP,KMAX)-RMA(KP,KMIN))/
- & (XMC(KP,KMAX)-XMC(KP,KMIN))
- & *(XI-XMC(KP,KMIN))
- IF(IDEB(35).GE.20) THEN
- IF(IDEB(35).GE.25) WRITE(LO,'(1X,A,3E15.3)')
- & 'PHO_SAMASS: MLEFT,MRIGHT,RMASS',
- & RMA(KP,KMIN),RMA(KP,KMAX),RMASS
- WRITE(LO,'(1X,A,I7,E12.3)') 'PHO_SAMASS: IFLA,MASS',
- & IFLA,RMASS
- ENDIF
- ICALL(KP) = ICALL(KP)+1
-
- ENDIF
- END
-
-CDECK ID>, PHO_DSIGDM
- SUBROUTINE PHO_DSIGDM(RMA,XMA,NSTEP)
-C**********************************************************************
-C
-C differential cross section DSIG/DM of low mass enhancement
-C
-C input: RMA(4,NTABM) mass values
-C output: XMA(4,NTABM) DSIG/DM of resonances
-C 1 rho production
-C 2 omega production
-C 3 phi production
-C 4 pi-pi continuum
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( EPS = 1.D-10 )
-
- PARAMETER(NTABM=50)
- DIMENSION XMA(4,NTABM),RMA(4,NTABM)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C parameters of the "simple" Vector Dominance Model
- DOUBLE PRECISION VMAS,GAMM,RMIN,RMAX,VMSL,VMFA
- COMMON /POSVDM/ VMAS(4),GAMM(4),RMIN(4),RMAX(4),VMSL(4),VMFA(4)
-
- PIMASS = 0.135
-C rho meson shape (mass dependent width)
- QRES = SQRT(VMAS(1)**2 - 4.D0*PIMASS**2)
- DO 100 I=1,NSTEP
- XMASS = RMA(1,I)
- QQ = SQRT(XMASS**2 - 4.D0*PIMASS**2)
- GAMMA = GAMM(1)*(QQ/QRES)**3
- XMA(1,I) = XMASS*GAMMA*(VMAS(1)/XMASS)**PARMDL(170)
- & /((VMAS(1)**2-XMASS**2)**2+VMAS(1)**2*GAMMA**2)
- 100 CONTINUE
-C omega/phi meson (constant width)
- DO 200 K=2,3
- DO 300 I=1,NSTEP
- XMASS = RMA(K,I)
- XMA(K,I) = XMASS*GAMM(K)
- & /((VMAS(K)**2-XMASS**2)**2+VMAS(K)**2*GAMM(K)**2)
- 300 CONTINUE
- 200 CONTINUE
-C pi-pi continuum
- DO 400 I=1,NSTEP
- XMASS = RMA(4,I)
- XMA(4,I) = (XMASS-0.29D0)**2/XMASS
- 400 CONTINUE
-
- END
-
-CDECK ID>, PHO_SDECAY
- SUBROUTINE PHO_SDECAY(NPOS,ISP,ILEV)
-C**********************************************************************
-C
-C decay of single resonance of /POEVT1/:
-C decay in helicity frame according to polarization, isotropic
-C decay and decay with limited transverse phase space possible
-C
-C ATTENTION:
-C reference to particle number of CPC has to exist
-C
-C input: NPOS position in /POEVT1/
-C ISP 0 decay according to phase space
-C 1 decay according to transversal polarization
-C 2 decay according to longitudinal polarization
-C 3 decay with limited phase space
-C ILEV decay mode to use
-C 1 strong only
-C 2 strong and ew of tau, charm, and bottom
-C 3 strong and electro-weak decays
-C negative: remove mother resonance after decay
-C
-C output: /POEVT1/,/POEVT2/ final particles according to decay mode
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( EPS = 1.D-15,
- & DEPS = 1.D-10 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-C particle decay data
- double precision wg_sec_list
- integer idec_list,isec_list
- COMMON /POPAR3/ wg_sec_list(500),idec_list(3,300),
- & isec_list(3,500)
-C auxiliary data for three particle decay
- DOUBLE PRECISION ECM,PCM,COD,COF,SIF
- COMMON /PO3DCY/ ECM(3),PCM(3),COD(3),COF(3),SIF(3)
-
- DIMENSION WGHD(20),KCH(20),ID(3)
-
- IMODE = ABS(ILEV)
- IF(IDEB(36).GE.15) WRITE(LO,'(1X,A,3I5)')
- & 'PHO_SDECAY: NPOS,ISP,ILEV',NPOS,ISP,ILEV
-
-C comment entry
- IF(ISTHEP(NPOS).GT.11) RETURN
-
-C particle stable?
- IDcpc = IMPART(NPOS)
- IF(IDcpc.EQ.0) return
- if(idec_list(1,IDcpc).eq.0) return
- IDabs = iabs(IDcpc)
-
-C different decay modi (times)
- IF(IMODE.EQ.1) THEN
- if(idec_list(1,IDabs).ne.1) return
- ELSE IF(IMODE.EQ.2) THEN
- if(idec_list(1,IDabs).gt.2) return
- ELSE IF(IMODE.EQ.3) THEN
- if(idec_list(1,IDabs).gt.3) return
- ELSE
- WRITE(LO,'(/1X,A,I5)') 'PHO_SDECAY: invalid mode (ILEV)',ILEV
- CALL PHO_ABORT
- ENDIF
-
-C decay products, check for mass limitations
- K = 0
- WGSUM = 0.D0
- AMIST = PHEP(5,NPOS)
- DO 100 I=idec_list(2,IDabs),idec_list(3,IDabs)
- AMSUM = 0.D0
- DO 200 L=1,3
- ID(L) = isec_list(L,I)
- IF(ID(L).NE.0) AMSUM = AMSUM+pho_pmass(ID(L),0)
- 200 CONTINUE
- IF(AMSUM.LT.AMIST) THEN
- K = K+1
- WGHD(K) = wg_sec_list(I)
- KCH(K) = I
- ENDIF
- 100 CONTINUE
- IF(K.EQ.0)THEN
- WRITE(LO,'(/1X,A,I6,3E12.4)')
- & 'PHO_SDECAY: particle mass too small (NPOS,MA,DCYM)',
- & NPOS,AMIST,AMSUM
- CALL PHO_PREVNT(0)
- RETURN
- ENDIF
-
-C sample new decay channel
- XI = (DT_RNDM(AMSUM)-EPS)*WGSUM
- K = 0
- WGSUM = 0.D0
- 500 CONTINUE
- K = K+1
- WGSUM = WGSUM+WGHD(K)
- IF(XI.GT.WGSUM) GOTO 500
- IK = KCH(K)
- ID(1) = isec_list(1,IK)
- ID(2) = isec_list(2,IK)
- ID(3) = isec_list(3,IK)
- if(IDcpc.lt.0) then
- ID(1) = ipho_anti(ID(1))
- ID(2) = ipho_anti(ID(2))
- ID(3) = ipho_anti(ID(3))
- endif
-
-C rotation
- PTOT = SQRT(PHEP(1,NPOS)**2+PHEP(2,NPOS)**2+PHEP(3,NPOS)**2)
- CXS = PHEP(1,NPOS)/PTOT
- CYS = PHEP(2,NPOS)/PTOT
- CZS = PHEP(3,NPOS)/PTOT
-C boost
- GBET = PTOT/AMIST
- GAM = PHEP(4,NPOS)/AMIST
-
- IF(ID(3).EQ.0) THEN
-C two particle decay
- CALL PHO_SDECY2(AMIST,pho_pmass(ID(1),0),pho_pmass(ID(2),0),ISP)
- ELSE
-C three particle decay
- CALL PHO_SDECY3(AMIST,pho_pmass(ID(1),0),pho_pmass(ID(2),0),
- & pho_pmass(ID(3),0),ISP)
- ENDIF
-
- IF(ILEV.LT.0) THEN
- IF(NHEP.NE.NPOS) THEN
- WRITE(LO,'(/1X,2A,2I5)') 'PHO_SDECAY:ERROR: ',
- & 'cannot remove resonance (NPOS,NHEP)',NPOS,NHEP
- CALL PHO_ABORT
- ENDIF
- IMO1 = JMOHEP(1,NPOS)
- IMO2 = JMOHEP(2,NPOS)
- NHEP = NHEP-1
- ELSE
- IMO1 = NPOS
- IMO2 = 0
- ENDIF
- IPH1 = IPHIST(1,NPOS)
- IPH2 = IPHIST(2,NPOS)
-
-C back transformation and registration
- DO 300 I=1,3
- IF(ID(I).NE.0) THEN
- CALL PHO_LTRANS(GAM,GBET,CXS,CYS,CZS,COD(I),COF(I),SIF(I),
- & PCM(I),ECM(I),PTOT,CX,CY,CZ,EE)
- XX = PTOT*CX
- YY = PTOT*CY
- ZZ = PTOT*CZ
- CALL PHO_REGPAR(1,0,ID(I),IMO1,IMO2,XX,YY,ZZ,EE,
- & IPH1,IPH2,0,0,IPOS,1)
- ENDIF
- 300 CONTINUE
-
- 400 CONTINUE
-C debug output
- IF(IDEB(36).GE.20) THEN
- WRITE(LO,'(2(/1X,A))') 'PHO_SDECAY: /POEVT1/',
- & '--------------------'
- CALL PHO_PREVNT(0)
- ENDIF
-
- END
-
-CDECK ID>, PHO_SDECY2
- SUBROUTINE PHO_SDECY2(UMO,AM1,AM2,ISP)
-C**********************************************************************
-C
-C isotropic/anisotropic two particle decay in CM system,
-C (transversely/longitudinally polarized boson into two
-C pseudo-scalar mesons)
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C auxiliary data for three particle decay
- DOUBLE PRECISION ECM,PCM,COD,COF,SIF
- COMMON /PO3DCY/ ECM(3),PCM(3),COD(3),COF(3),SIF(3)
-
- UMO2=UMO*UMO
- AM11=AM1*AM1
- AM22=AM2*AM2
- ECM(1)=(UMO2+AM11-AM22)/(2.D0*UMO)
- ECM(2)=UMO-ECM(1)
- WAU=ECM(1)*ECM(1)-AM11
- IF(WAU.LT.0.D0) THEN
- WRITE(LO,'(/1X,A,E12.4)') 'PHO_SDECY2:ERROR:too small mass',WAU
- CALL PHO_ABORT
- ENDIF
- PCM(1)=SQRT(WAU)
- PCM(2)=PCM(1)
-
- CALL PHO_SFECFE(SIF(1),COF(1))
- IF(ISP.EQ.0) THEN
-C no polarization
- COD(1) = 2.D0*DT_RNDM(UMO)-1.D0
- ELSE IF(ISP.EQ.1) THEN
-C transverse polarization
- 400 CONTINUE
- COD(1) = 2.D0*DT_RNDM(AM22)-1.D0
- SID12 = 1.D0-COD(1)*COD(1)
- IF(SID12.LT.DT_RNDM(AM1)) GOTO 400
- ELSE IF(ISP.EQ.2) THEN
-C longitudinal polarization
- 500 CONTINUE
- COD(1) = 2.D0*DT_RNDM(AM2)-1.D0
- COD12 = COD(1)*COD(1)
- IF(COD12.LT.DT_RNDM(AM11)) GOTO 500
- ELSE
- WRITE(LO,'(/1X,2A,I3)') 'PHO_SDECY2:ERROR: ',
- & 'invalid polarization',ISP
- CALL PHO_ABORT
- ENDIF
-
- COD(2) = -COD(1)
- COF(2) = -COF(1)
- SIF(2) = -SIF(1)
-
- END
-
-CDECK ID>, PHO_SDECY3
- SUBROUTINE PHO_SDECY3(UMO,AM1,AM2,AM3,ISP)
-C**********************************************************************
-C
-C isotropic/anisotropic three particle decay in CM system,
-C (transversely/longitudinally polarized boson into three
-C pseudo-scalar mesons)
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-30,
- & EPS = 1.D-15 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C auxiliary data for three particle decay
- DOUBLE PRECISION ECM,PCM,COD,COF,SIF
- COMMON /PO3DCY/ ECM(3),PCM(3),COD(3),COF(3),SIF(3)
-
- DIMENSION F(5),XX(5)
-
-C calculation of maximum of S2 phase space weight
- UMOO=UMO+UMO
- GU=(AM2+AM3)**2
- GO=(UMO-AM1)**2
- UFAK=1.0000000000001D0
- IF (GU.GT.GO) UFAK=0.99999999999999D0
- OFAK=2.D0-UFAK
- GU=GU*UFAK
- GO=GO*OFAK
- DS2=(GO-GU)/99.D0
- AM11=AM1*AM1
- AM22=AM2*AM2
- AM33=AM3*AM3
- UMO2=UMO*UMO
- RHO2=0.D0
- S22=GU
- DO 124 I=1,100
- S21=S22
- S22=GU+(I-1.D0)*DS2
- RHO1=RHO2
- RHO2=PHO_XLAM(S22,UMO2,AM11)*PHO_XLAM(S22,AM22,AM33)/(S22+EPS)
- IF(RHO2.LT.RHO1) GOTO 125
- 124 CONTINUE
-
- 125 CONTINUE
- S2SUP=(S22-S21)/2.D0+S21
- SUPRHO=PHO_XLAM(S2SUP,UMO2,AM11)*PHO_XLAM(S2SUP,AM22,AM33)
- & /(S2SUP+EPS)
- SUPRHO=SUPRHO*1.05D0
- XO=S21-DS2
- IF(GU.LT.GO.AND.XO.LT.GU) XO=GU
- IF(GU.GT.GO.AND.XO.GT.GU) XO=GU
- XX(1)=XO
- XX(3)=S22
- X1=(XO+S22)*0.5D0
- XX(2)=X1
- F(3)=RHO2
- F(1)=PHO_XLAM(XO,UMO2,AM11)*PHO_XLAM(XO,AM22,AM33)/(XO+EPS)
- F(2)=PHO_XLAM(X1,UMO2,AM11)*PHO_XLAM(X1,AM22,AM33)/(X1+EPS)
- DO 126 I=1,16
- X4=(XX(1)+XX(2))*0.5D0
- X5=(XX(2)+XX(3))*0.5D0
- F(4)=PHO_XLAM(X4,UMO2,AM11)*PHO_XLAM(X4,AM22,AM33)/(X4+EPS)
- F(5)=PHO_XLAM(X5,UMO2,AM11)*PHO_XLAM(X5,AM22,AM33)/(X5+EPS)
- XX(4)=X4
- XX(5)=X5
- DO 128 II=1,5
- IA=II
- DO 131 III=IA,5
- IF(F(II).LT.F(III)) THEN
- FH=F(II)
- F(II)=F(III)
- F(III)=FH
- FH=XX(II)
- XX(II)=XX(III)
- XX(III)=FH
- ENDIF
- 131 CONTINUE
- 128 CONTINUE
- SUPRHO=F(1)
- S2SUP=XX(1)
- DO 129 II=1,3
- IA=II
- DO 130 III=IA,3
- IF (XX(II).LT.XX(III)) THEN
- FH=F(II)
- F(II)=F(III)
- F(III)=FH
- FH=XX(II)
- XX(II)=XX(III)
- XX(III)=FH
- ENDIF
- 130 CONTINUE
- 129 CONTINUE
- 126 CONTINUE
-
- AM23=(AM2+AM3)**2
-
-C selection of S1
- ITH=0
- 200 CONTINUE
- ITH=ITH+1
- IF(ITH.GT.200) THEN
- WRITE(LO,'(/1X,A,I10)')
- & 'PHO_SDECY3:ERROR: too many iterations',ITH
- CALL PHO_ABORT
- ENDIF
- S2=AM23+DT_RNDM(AM2)*((UMO-AM1)**2-AM23)
- Y=DT_RNDM(AM23)*SUPRHO
- RHO=PHO_XLAM(S2,UMO2,AM11)*PHO_XLAM(S2,AM22,AM33)/S2
- IF(Y.GT.RHO) GOTO 200
-
-C selection of S2
- S1=DT_RNDM(AM2)*RHO+AM11+AM22-(S2-UMO2+AM11)*(S2+AM22-AM33)
- & /(2.D0*S2)-RHO/2.D0
- S3=UMO2+AM11+AM22+AM33-S1-S2
- ECM(1)=(UMO2+AM11-S2)/UMOO
- ECM(2)=(UMO2+AM22-S3)/UMOO
- ECM(3)=(UMO2+AM33-S1)/UMOO
- PCM(1)=SQRT((ECM(1)+AM1)*(ECM(1)-AM1))
- PCM(2)=SQRT((ECM(2)+AM2)*(ECM(2)-AM2))
- PCM(3)=SQRT((ECM(3)+AM3)*(ECM(3)-AM3))
-
-C calculation of angles: TH between p1,p2; TH1 p3,p1; TH2 p3,p2
- IF((PCM(1).LE.EPS).OR.(PCM(2).LE.EPS)) THEN
- COSTH=(DT_RNDM(S1)-0.5D0)*2.D0
- ELSE
- COSTH=(ECM(1)*ECM(2)+0.5D0*(AM11+AM22-S1))/(PCM(1)*PCM(2))
- ENDIF
- COSTH2=(PCM(3)*PCM(3)+PCM(2)*PCM(2)-PCM(1)*PCM(1))
- & /(2.D0*PCM(2)*PCM(3))
- SINTH2=SQRT(1.D0-COSTH2*COSTH2)
- SINTH1=COSTH2*SQRT(1.D0-COSTH*COSTH)-COSTH*SINTH2
- COSTH1=COSTH*COSTH2+SINTH2*SQRT(1.D0-COSTH*COSTH)
-
-C selection of the sperical coordinates of particle 3
- CALL PHO_SFECFE(SIF(3),COF(3))
- IF(ISP.EQ.0) THEN
-C no polarization
- COD(3) = 2.D0*DT_RNDM(S2)-1.D0
- ELSE IF(ISP.EQ.1) THEN
-C transverse polarization
- 400 CONTINUE
- COD(3) = 2.D0*DT_RNDM(S1)-1.D0
- SID32 = 1.D0-COD(3)*COD(3)
- IF(SID32.LT.DT_RNDM(COSTH)) GOTO 400
- ELSE IF(ISP.EQ.2) THEN
-C longitudinal polarization
- 500 CONTINUE
- COD(3) = 2.D0*DT_RNDM(COSTH2)-1.D0
- COD32 = COD(3)*COD(3)
- IF(COD32.LT.DT_RNDM(SINTH1)) GOTO 500
- ELSE
- WRITE(LO,'(/1X,2A,I3)') 'PHO_SDECY3:ERROR: ',
- & 'invalid polarization',ISP
- CALL PHO_ABORT
- ENDIF
-
-C selection of the rotation angle of p1-p2 plane along p3
- IF(ISP.EQ.0) THEN
- CALL PHO_SFECFE(SFE,CFE)
- ELSE
- SFE = 0.D0
- CFE = 1.D0
- ENDIF
- CX11=-COSTH1
- CY11=SINTH1*CFE
- CZ11=SINTH1*SFE
- CX22=-COSTH2
- CY22=-SINTH2*CFE
- CZ22=-SINTH2*SFE
-
- SID3 = SQRT((1.D0+COD(3))*(1.D0-COD(3)))
- COD(1)=CX11*COD(3)+CZ11*SID3
- IF((1.D0-COD(1)*COD(1)).LT.DEPS) THEN
- WRITE(LO,'(1X,A,5E12.4)') 'PHO_SDECY3: COS(TH1) > 1',
- & COD(1),COF(3),SID3,CX11,CZ11
- CALL PHO_PREVNT(-1)
- ENDIF
-
- SID1=SQRT((1.D0+COD(1))*(1.D0-COD(1)))
- COF(1)=(CX11*SID3*COF(3)-CY11*SIF(3)-CZ11*COD(3)*COF(3))/SID1
- SIF(1)=(CX11*SID3*SIF(3)+CY11*COF(3)-CZ11*COD(3)*SIF(3))/SID1
- COD(2)=CX22*COD(3)+CZ22*SID3
- SID2=SQRT((1.D0+COD(2))*(1.D0-COD(2)))
- COF(2)=(CX22*SID3*COF(3)-CY22*SIF(3)-CZ22*COD(3)*COF(3))/SID2
- SIF(2)=(CX22*SID3*SIF(3)+CY22*COF(3)-CZ22*COD(3)*SIF(3))/SID2
-
- END
-
-CDECK ID>, PHO_DFMASS
- DOUBLE PRECISION FUNCTION PHO_DFMASS(XMIN,XMAX,PREF2,PVIRT2,IMODE)
-C**********************************************************************
-C
-C sampling of Mx diffractive mass distribution within
-C limits XMIN, XMAX
-C
-C input: XMIN,XMAX mass limitations (GeV)
-C PREF2 original particle mass/ reference mass
-C (squared, GeV**2)
-C PVIRT2 particle virtuality
-C IMODE M**2 mass distribution
-C 1 1/(M**2+Q**2)
-C 2 1/(M**2+Q**2)**alpha
-C -1 1/(M**2-Mref**2+Q**2)
-C -2 1/(M**2-Mref**2+Q**2)**alpha
-C
-C output: diffractive mass (GeV)
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER(EPS = 1.D-10)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
- IF((XMIN.GE.XMAX).OR.(XMIN.LE.0.3D0)) THEN
- WRITE(LO,'(/1X,2A,3E12.4)') 'PHO_DFMASS:ERROR: ',
- & 'invalid mass limits',XMIN,XMAX,PREF2
- CALL PHO_PREVNT(-1)
- PHO_DFMASS = 0.135D0
- RETURN
- ENDIF
-
- IF(IMODE.GT.0) THEN
- PM2 = -PVIRT2
- ELSE
- PM2 = PREF2 - PVIRT2
- ENDIF
-
-C critical pomeron
- IF(ABS(IMODE).EQ.1) THEN
- XMIN2 = LOG(XMIN**2-PM2)
- XMAX2 = LOG(XMAX**2-PM2)
- XI = (XMAX2-XMIN2)*DT_RNDM(PM2)+XMIN2
- XMA2 = EXP(XI)+PM2
-
-C supercritical pomeron
- ELSE IF(ABS(IMODE).EQ.2) THEN
- DDELTA = 1.D0-PARMDL(48)
- XMIN2 = (XMIN**2-PM2)**DDELTA
- XMAX2 = (XMAX**2-PM2)**DDELTA
- XI = (XMAX2-XMIN2)*DT_RNDM(PM2)+XMIN2
- XMA2 = XI**(1.D0/DDELTA)+PM2
- ELSE
- WRITE(LO,'(/,1X,A,I3)')
- & 'PHO_DFMASS:ERROR: unsupported mode',IMODE
- CALL PHO_ABORT
- ENDIF
-
- PHO_DFMASS = SQRT(XMA2)
-C debug output
- IF(IDEB(43).GE.15) THEN
- WRITE(LO,'(1X,A,4E12.3)') 'PHO_DFMASS:Mmin,Mmax,Mref,Mass',
- & XMIN,XMAX,PREF2,SQRT(XMA2)
- ENDIF
-
- END
-
-CDECK ID>, PHO_DIFSLP
- SUBROUTINE PHO_DIFSLP(IDF1,IDF2,IVEC1,IVEC2,XM1,XM2,XMX,
- & TT,SLWGHT,IREJ)
-C**********************************************************************
-C
-C sampling of T (Mandelstam variable) distribution within
-C certain limits TMIN, TMAX
-C
-C input: IDF1,2 type of diffractive vertex
-C 0 elastic/quasi-elastic scattering
-C 1 diffraction dissociation
-C IVEC1,2 vector meson IDs in case of quasi-elastic
-C scattering, otherwise 0
-C XM1 mass of diffractive system 1 (GeV)
-C XM2 mass of diffractive system 2 (GeV)
-C XMX max. mass of diffractive system (GeV)
-C
-C output: TT squared momentum transfer ( < 0, GeV**2)
-C SLWGHT weight to allow for mass-dependent slope
-C IREJ 0 successful sampling
-C 1 masses too big for given T range
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER(EPS = 1.D-10)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C c.m. kinematics of diffraction
- INTEGER NPOSD
- DOUBLE PRECISION ECMD,PCMD,PMASSD,PVIRTD,GAMBED,
- & SIDD,CODD,SIFD,COFD,PDCMS
- COMMON /PODCMS/ ECMD,PCMD,PMASSD(2),PVIRTD(2),GAMBED(4),
- & SIDD,CODD,SIFD,COFD,PDCMS(4,2),NPOSD(2)
-C cross sections
- INTEGER IPFIL,IFAFIL,IFBFIL
- DOUBLE PRECISION SIGTOT,SIGELA,SIGVM,SIGINE,SIGNDF,SIGDIR,
- & SIGLSD,SIGHSD,SIGLDD,SIGHDD,SIGCDF,
- & SIGPOM,SIGREG,SIGHAR,SIGTR1,SIGTR2,SIGLOO,
- & SIGDPO,SIG1SO,SIG1HA,SLOEL,SLOVM,SIGCOR,
- & FSUP,FSUD,FSUH,ECMFIL,P2AFIL,P2BFIL
- COMMON /POCSEC/ SIGTOT,SIGELA,SIGVM(0:4,0:4),SIGINE,SIGNDF,SIGDIR,
- & SIGLSD(2),SIGHSD(2),SIGLDD,SIGHDD,SIGCDF(0:4),
- & SIGPOM,SIGREG,SIGHAR,SIGTR1(2),SIGTR2(2),SIGLOO,
- & SIGDPO(4),SIG1SO,SIG1HA,SLOEL,SLOVM(4,4),SIGCOR,
- & FSUP(2),FSUD(2),FSUH(2),ECMFIL,P2AFIL,P2BFIL,
- & IPFIL,IFAFIL,IFBFIL
-C Reggeon phenomenology parameters
- DOUBLE PRECISION ALPOM,ALPOMP,GP,B0POM,ALREG,ALREGP,GR,B0REG,
- & GPPP,GPPR,B0PPP,B0PPR,VDMFAC,VDMQ2F,B0HAR,AKFAC
- COMMON /POPREG/ ALPOM,ALPOMP,GP(2),B0POM(2),
- & ALREG,ALREGP,GR(2),B0REG(2),
- & GPPP,GPPR,B0PPP,B0PPR,
- & VDMFAC(4),VDMQ2F(4),B0HAR,AKFAC
-C parameters of 2x2 channel model
- DOUBLE PRECISION PHISUP,RMASS,VAR,AMPFAC,ELAFAC,VFAC
- COMMON /PO2CHA/ PHISUP(2),RMASS(2),VAR,AMPFAC(4),ELAFAC(4),VFAC
-C parameters of the "simple" Vector Dominance Model
- DOUBLE PRECISION VMAS,GAMM,RMIN,RMAX,VMSL,VMFA
- COMMON /POSVDM/ VMAS(4),GAMM(4),RMIN(4),RMAX(4),VMSL(4),VMFA(4)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
- IREJ = 0
- XM12 = XM1**2
- XM22 = XM2**2
- SS = ECMD**2
-C
-C range of momentum transfer t
- TMIN = -PARMDL(68)
- TMAX = -PARMDL(69)
-C determine min. abs(t) necessary to produce masses
- PCM2 = PCMD**2
- PCMP2 = PHO_XLAM(SS,XM12,XM22)**2/(4.D0*SS)
- IF(PCMP2.LE.0.D0) THEN
- IREJ = 1
- TT = 0.D0
- RETURN
- ENDIF
- TMINP = PMASSD(1)**2+XM12+2.D0*PCMD*SQRT(PCMP2)
- & -2.D0*SQRT((PMASSD(1)**2+PCM2)*(XM12+PCMP2))
-C
- IF(TMINP.LT.TMAX) THEN
- IF(IDEB(44).GE.3) THEN
- WRITE(LO,'(1X,2A,/5X,5E12.3)') 'PHO_DIFSLP:REJECTION: ',
- & 'too large Tmin (XM1/2,TMIN,TMAX,TMINP)',
- & XM1,XM2,TMIN,TMAX,TMINP
- ENDIF
- IFAIL(32) = IFAIL(32)+1
- IREJ = 1
- TT = 0.D0
- RETURN
- ENDIF
- TMINA = MIN(TMIN,TMINP)
-C
-C calculation of slope (mass-dependent parametrization)
- IF(IDF1+IDF2.GT.0) THEN
-C diffraction dissociation
- XMP12 = XM1**2+PVIRTD(1)
- XMP22 = XM2**2+PVIRTD(2)
- XMX1 = SQRT(XMP12)
- XMX2 = SQRT(XMP22)
- CALL PHO_SCALES(PMASSD(1),PMASSD(2),XMX1,XMX2,SC1,SC2,SB1,SB2)
- FAC = 4.D0*(PMASSD(1)*PMASSD(2))**2
- SLOPE = DBLE(IDF1+IDF2)*B0PPP
- & +2.D0*(B0POM(1)*SB1+B0POM(2)*SB2+ALPOMP*LOG(SS*FAC
- & /((PMASSD(1)**2+XMP12)*(PMASSD(2)**2+XMP22))+PARMDL(47)))
- SLOPE = MAX(SLOPE,1.D0)
-C
- XMA1 = XMX
- XMA2 = XMX
- IF(IDF1.EQ.0) THEN
- XMA1 = XM1
- ELSE IF(IDF1.EQ.0) THEN
- XMA2 = XM2
- ENDIF
- XMP12 = XMA1**2+PVIRTD(1)
- XMP22 = XMA2**2+PVIRTD(2)
- XMX1 = SQRT(XMP12)
- XMX2 = SQRT(XMP22)
- CALL PHO_SCALES(PMASSD(1),PMASSD(2),XMX1,XMX2,SC1,SC2,SB1,SB2)
- SLMIN = DBLE(IDF1+IDF2)*B0PPP
- & +2.D0*(B0POM(1)*SB1+B0POM(2)*SB2+ALPOMP*LOG(SS*FAC
- & /((PMASSD(1)**2+XMP12)*(PMASSD(2)**2+XMP22))+PARMDL(47)))
- SLMIN = MAX(SLMIN,1.D0)
- ELSE
-C elastic/quasi-elastic scattering
- IF(ISWMDL(13).EQ.0) THEN
-C external slope values
- PRINT LO,'PHO_DIFSLP:ERROR: this option is not installed !'
- CALL PHO_ABORT
- ELSE IF(ISWMDL(13).EQ.1) THEN
-C model slopes
- IF(IVEC1*IVEC2.EQ.0) THEN
- SLOPE = SLOEL
- ELSE
- SLOPE = SLOVM(IVEC1,IVEC2)
- ENDIF
- SLMIN = SLOPE
- ELSE
- WRITE(LO,'(/1X,A,I5)') 'SASDSDT:ERROR: invalid ISWMDL(13)',
- & ISWMDL(13)
- CALL PHO_ABORT
- ENDIF
- ENDIF
-C
-C determine max. abs(t) to avoid underflows
- TMAXP = -25.D0/SLOPE
- TMAXA = MAX(TMAX,TMAXP)
-C
- IF(TMINA.LT.TMAXA) THEN
- IF(IDEB(44).GE.3) THEN
- WRITE(LO,'(1X,2A,/5X,5E12.3)') 'PHO_DIFSLP:REJECTION: ',
- & 'too small Tmax (XM1/2,TMINA,TMAXA,SLOPE)',
- & XM1,XM2,TMINA,TMAXA,SLOPE
- ENDIF
- IFAIL(32) = IFAIL(32)+1
- IREJ = 1
- TT = 0.D0
- RETURN
- ENDIF
-C
-C sampling from corrected range of T
- TMINE = EXP(SLMIN*TMINA)
- TMAXE = EXP(SLMIN*TMAXA)
- XI = (TMINE-TMAXE)*DT_RNDM(SLMIN)+TMAXE
- TT = LOG(XI)/SLMIN
- SLWGHT = EXP((SLOPE-SLMIN)*TT)
-C
-C debug output
- IF(IDEB(44).GE.15) THEN
- WRITE(LO,'(1X,A,1P,E12.3/5X,A,2I2,2X,2I2,2E10.2,/5X,A,5E10.2)')
- & 'PHO_DIFSLP: sampled momentum transfer:',TT,
- & 'IDF1/2,IVEC1/2,XM1/2:',IDF1,IDF2,IVEC1,IVEC2,XM1,XM2,
- & 'Tmi,Tmx,SLMIN,SLOPE,WGHT:',TMINP,TMAXP,SLMIN,SLOPE,SLWGHT
- ENDIF
- END
-
-CDECK ID>, PHO_DIFKIN
- SUBROUTINE PHO_DIFKIN(XMP1,XMP2,TT,PMOM1,PMOM2,IREJ)
-C**********************************************************************
-C
-C calculation of diffractive kinematics
-C
-C input: XMP1 mass of outgoing particle system 1 (GeV)
-C XMP2 mass of outgoing particle system 2 (GeV)
-C TT momentum transfer (GeV**2, negative)
-C
-C output: PMOM1(5) four momentum of outgoing system 1
-C PMOM2(5) four momentum of outgoing system 2
-C IREJ 0 kinematics consistent
-C 1 kinematics inconsistent
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER(EPS = 1.D-10,
- & DEPS = 0.001)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C c.m. kinematics of diffraction
- INTEGER NPOSD
- DOUBLE PRECISION ECMD,PCMD,PMASSD,PVIRTD,GAMBED,
- & SIDD,CODD,SIFD,COFD,PDCMS
- COMMON /PODCMS/ ECMD,PCMD,PMASSD(2),PVIRTD(2),GAMBED(4),
- & SIDD,CODD,SIFD,COFD,PDCMS(4,2),NPOSD(2)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
- DOUBLE PRECISION PMOM1,PMOM2
- DIMENSION PMOM1(5),PMOM2(5)
-
-C debug output
- IF(IDEB(49).GT.10) WRITE(LO,'(1X,A,/5X,5E12.4)')
- & 'PHO_DIFKIN: Ecmd,Pcmd,Mini-1,Mini-2,TT:',
- & ECMD,PCMD,XMP1,XMP2,TT
-
-C general kinematic constraints
- IREJ = 1
- IF(ECMD.LE.1.1D0*(XMP1+XMP2)) RETURN
-
-C new squared cms momentum
- XMP12 = XMP1**2
- XMP22 = XMP2**2
- SS = ECMD**2
- PCM2 = PCMD**2
- PCMP2 = PHO_XLAM(SS,XMP12,XMP22)**2/(4.D0*SS)
-
-C new longitudinal/transverse momentum
- E1I = SQRT(PCM2+PMASSD(1)**2)
- E1F = SQRT(PCMP2+XMP12)
- E2F = SQRT(PCMP2+XMP22)
- PLONG = (TT+PCM2+PCMP2-(E1I-E1F)**2)/(2.D0*PCMD)
- PTRAN = PCMP2-PLONG**2
-
-C check consistency of kinematics
- IF(PTRAN.LT.0.D0) THEN
- IF(IDEB(49).GE.1) THEN
- WRITE(LO,'(1X,2A,I10)') 'PHO_DIFKIN: ',
- & 'inconsistent kinematics in event call: ',KEVENT
- WRITE(LO,'(1X,A,/5X,1p,6E11.3)')
- & 'PHO_DIFKIN: XMP1,XMP2,TT,PCMP,PLONG,PTRANS',
- & XMP1,XMP2,TT,SQRT(PCMP2),PLONG,SIGN(SQRT(ABS(PTRAN)),PTRAN)
- ENDIF
- IREJ = 1
- RETURN
- ELSE
- PTRAN = SQRT(PTRAN)
- ENDIF
- XI = PI2*DT_RNDM(PTRAN)
-
-C outgoing momenta in cm. system
- PMOM1(4) = E1F
- PMOM1(1) = PTRAN*COS(XI)
- PMOM1(2) = PTRAN*SIN(XI)
- PMOM1(3) = PLONG
- PMOM1(5) = XMP1
-
- PMOM2(4) = E2F
- PMOM2(1) = -PMOM1(1)
- PMOM2(2) = -PMOM1(2)
- PMOM2(3) = -PLONG
- PMOM2(5) = XMP2
- IREJ = 0
-
-C debug output / precision check
- IF(IDEB(49).GE.0) THEN
-C check kinematics
- XM1 = (PMOM1(4)-PMOM1(3))*(PMOM1(4)+PMOM1(3))
- & -PMOM1(1)**2-PMOM1(2)**2
- XM1 = SIGN(SQRT(ABS(XM1)),XM1)
- XM2 = (PMOM2(4)-PMOM2(3))*(PMOM2(4)+PMOM2(3))
- & -PMOM2(1)**2-PMOM2(2)**2
- XM2 = SIGN(SQRT(ABS(XM2)),XM2)
- IF((ABS(XM1-XMP1).GT.DEPS).OR.(ABS(XM1-XMP1).GT.DEPS)) THEN
- WRITE(LO,'(1X,2A,/5X,4E11.4)') 'PHO_DIFKIN: ',
- & 'inconsistent masses: MINI-1,MOUT-1,MINI-2,MOUT-2',
- & XMP1,XM1,XMP2,XM2
- CALL PHO_PREVNT(-1)
- ENDIF
-C output
- IF(IDEB(49).GT.10) THEN
- WRITE(LO,'(1X,A,5E11.3,/1X,A,5E11.3)')
- & 'PHO_DIFKIN: P1',PMOM1,' P2',PMOM2
- ENDIF
- ENDIF
-
- END
-
-CDECK ID>, PHO_VECRES
- SUBROUTINE PHO_VECRES(IVEC,RMASS,IDPDG,IDBAM)
-C**********************************************************************
-C
-C sampling of vector meson resonance in diffractive processes
-C (nothing done for hadrons)
-C
-C input: /POSVDM/ VDMFAC factors
-C
-C output: IVEC 0 incoming hadron
-C 1 rho 0
-C 2 omega
-C 3 phi
-C 4 pi+/pi- background
-C RMASS mass of vector meson (GeV)
-C IDPDG particle ID according to PDG
-C IDBAM particle ID according to CPC
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER(EPS = 1.D-10)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C parameters of the "simple" Vector Dominance Model
- DOUBLE PRECISION VMAS,GAMM,RMIN,RMAX,VMSL,VMFA
- COMMON /POSVDM/ VMAS(4),GAMM(4),RMIN(4),RMAX(4),VMSL(4),VMFA(4)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
-C particle code translation
- DIMENSION ITRANS(4)
-C rho0,omega,phi,pi+/pi-
- DATA ITRANS /113, 223, 333, 92 /
-
- IDPDO = IDPDG
-C
-C vector meson production
- IF(IDPDG.EQ.22) THEN
- XI = DT_RNDM(RMASS)*(VMFA(1)+VMFA(2)+VMFA(3)+VMFA(4))
- SUM = 0.D0
- DO 55 K=1,4
- SUM = SUM + VMFA(K)
- IF(XI.LE.SUM) GOTO 65
- 55 CONTINUE
- 65 CONTINUE
-C
- IDPDG = ITRANS(K)
- IDBAM = ipho_pdg2id(IDPDG)
- IVEC = K
-C sample mass of vector meson
- CALL PHO_SAMASS(IDPDG,RMASS)
-
-C hadronic resonance of multi-pomeron coupling
- ELSE IF(IDPDG.EQ.990) THEN
- K = 4
- IDPDG = 91
- IDBAM = ipho_pdg2id(IDPDG)
- IVEC = 4
-C sample mass of two-pion system
- CALL PHO_SAMASS(IDPDG,RMASS)
-
-C hadron remnants in inucleus interactions
- ELSE IF(IDPDG.EQ.81) THEN
- IF(IHFLD(1,1).EQ.0) THEN
- CALL PHO_SEAFLA(1,IFL1,IFL2,RMASS)
- CALL PHO_HACODE(IFL1,IFL2,IDBA1,IDBA2)
- ELSE
- CALL PHO_HACODE(IHFLD(1,1),IHFLD(1,2),IDBA1,IDBA2)
- ENDIF
- RMAS1 = PHO_PMASS(IDBA1,0)
- RMAS2 = PHO_PMASS(IDBA2,0)
- IF((IDBA2.NE.0).AND.
- & (DT_RNDM(RMAS1).LT.(RMAS1/(RMAS1+RMAS2)))) THEN
- IDBAM = IDBA2
- RMASS = RMAS2
- ELSE
- IDBAM = IDBA1
- RMASS = RMAS1
- ENDIF
- IDPDG = IPHO_ID2PDG(IDBAM)
- IVEC = 0
- ELSE IF(IDPDG.EQ.82) THEN
- IF(IHFLD(2,1).EQ.0) THEN
- CALL PHO_SEAFLA(2,IFL1,IFL2,RMASS)
- CALL PHO_HACODE(IFL1,IFL2,IDBA1,IDBA2)
- ELSE
- CALL PHO_HACODE(IHFLD(2,1),IHFLD(2,2),IDBA1,IDBA2)
- ENDIF
- RMAS1 = PHO_PMASS(IDBA1,0)
- RMAS2 = PHO_PMASS(IDBA2,0)
- IF((IDBA2.NE.0).AND.
- & (DT_RNDM(RMAS1).LT.(RMAS1/(RMAS1+RMAS2)))) THEN
- IDBAM = IDBA2
- RMASS = RMAS2
- ELSE
- IDBAM = IDBA1
- RMASS = RMAS1
- ENDIF
- IDPDG = IPHO_ID2PDG(IDBAM)
- IVEC = 0
- ENDIF
-C debug output
- IF(IDEB(47).GE.5) THEN
- WRITE(LO,'(1X,A,/10X,3I7,E12.4)')
- & 'PHO_VECRES: IDPDG-OLD,IDPDG,IDBAM,MASS',
- & IDPDO,IDPDG,IDBAM,RMASS
- ENDIF
-
- END
-
-CDECK ID>, PHO_DIFRES
- SUBROUTINE PHO_DIFRES(IDMOTH,IVAL1,IVAL2,
- & IDPDG,IDBAM,RMASS,RGAM,RWG,LISTL)
-C**********************************************************************
-C
-C list of resonance states for low mass resonances
-C
-C input: IDMOTH PDG ID of mother particle
-C IVAL1,2 quarks (photon only)
-C
-C output: IDPDG list of PDG IDs for possible resonances
-C IDBAM list of corresponding CPC IDs
-C RMASS mass
-C RGAMS decay width
-C RMASS additional weight factor
-C LISTL entries in current list
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- DIMENSION IDPDG(10),IDBAM(10),RMASS(10),RGAM(10),RWG(10)
-
- PARAMETER (EPS = 1.D-10,
- & DEPS = 1.D-15)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C particle ID translation table
- integer ID_pdg_list,ID_list,ID_pdg_max
- character*12 name_list
- COMMON /POPAR1/ ID_pdg_list(300),ID_list(577),name_list(300),
- & ID_pdg_max
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-
- DIMENSION RWGHT(20),IRPDG(20),IRBAM(20)
- DATA IRPDG /113, 223, 333, 50223, 40113, 60223, 10333, 30113,
- & 12212, 42212, -12212, -42212,
- & 8*0 /
- DATA RWGHT /1.D0, 0.11D0, 0.1D0, 0.11D0, 1.D0, 0.11D0, 0.1D0,
- & 1.D0, 1.D0, 1.D0, 1.D0, 1.D0,
- & 8*1.D0 /
-
- DATA init /0/
-
-C initialize table
- if(init.eq.0) then
- do i=1,20
- if(IRPDG(i).ne.0) then
- IRBAM(i) = ipho_pdg2id(IRPDG(i))
- endif
- enddo
- init = 1
- endif
-
-C copy table with particles and isospin weights
- LISTL = 0
- IF(IDMOTH.EQ.22) THEN
- I1 = 4
- I2 = 8
- ELSE IF(IDMOTH.EQ.2212) THEN
- I1 = 9
- I2 = 10
- ELSE IF(IDMOTH.EQ.-2212) THEN
- I1 = 11
- I2 = 12
- ELSE
- RETURN
- ENDIF
-
- DO 100 I=I1,I2
- LISTL = LISTL+1
- IDBAM(LISTL) = IRBAM(I)
- IDPDG(LISTL) = IRPDG(I)
- RMASS(LISTL) = xm_list(iabs(IDBAM(LISTL)))
- RGAM(LISTL) = gam_list(iabs(IDBAM(LISTL)))
- RWG(LISTL) = RWGHT(I)
- 100 CONTINUE
-
-C debug output
- IF(IDEB(85).GE.20) THEN
- WRITE(LO,'(1X,A,3I7)') 'PHO_DIFRES: mother,quarks',IDMOTH,
- & IVAL1,IVAL2
- DO 200 I=1,LISTL
- WRITE(LO,'(1X,I3,2I7,E12.4)') I,IDBAM(I),IDPDG(I),RMASS(I)
- 200 CONTINUE
- ENDIF
-
- END
-
-CDECK ID>, PHO_MASSAD
- SUBROUTINE PHO_MASSAD(IFLMO,IFL1,IFL2,
- & PMASS,XMCON,XMOUT,IDPDG,IDcpc)
-C***********************************************************************
-C
-C fine-correction of low mass strings to mass of corresponding
-C resonance or two particle threshold
-C
-C input: IFLMO PDG ID of mother particle
-C IFL1,2 requested parton flavours
-C (not used at the moment)
-C PMASS reference mass (mass of mother particle)
-C XMCON conjecture of mass
-C
-C output: XMOUT output mass (adjusted input mass)
-C moved ot nearest mass possible
-C IDPDG PDG resonance ID
-C IDcpc CPC resonance ID
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DEPS = 1.D-8 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-C particle decay data
- double precision wg_sec_list
- integer idec_list,isec_list
- COMMON /POPAR3/ wg_sec_list(500),idec_list(3,300),
- & isec_list(3,500)
-
- DIMENSION XWG(10),RMA(10),RGA(10),RWG(10),IRPDG(10),IRBAM(10)
-
- XMINP = XMCON
- IDPDG = 0
- IDcpc = 0
- XMOUT = XMINP
-
-C resonance treatment activated?
- IF(ISWMDL(23).EQ.0) RETURN
-
- CALL PHO_DIFRES(IFLMO,IFL1,IFL2,IRPDG,IRBAM,RMA,RGA,RWG,LISTL)
- IF(LISTL.LT.1) THEN
- IF(IDEB(7).GE.2) WRITE(LO,'(1X,A,3I7)')
- & 'PHO_MASSAD: no resonances for (IFMO,IF1,IF2)',
- & IFLMO,IFL1,IFL2
- GOTO 50
- ENDIF
-C mass small?
- PMASSL = (PMASS+0.15D0)**2
- XMINP2 = XMINP**2
-C determine resonance probability
- DM2 = 1.1D0
- RPROB = (PMASSL+DM2)*(XMINP2-PMASSL)/(DM2*XMINP2)
- IF(RPROB.LT.DT_RNDM(PMASSL)) THEN
-C sample new resonance
- XWGSUM = 0.D0
- DO 100 I=1,LISTL
- XWG(I) = RWG(I)/RMA(I)**2
- XWGSUM = XWGSUM+XWG(I)
- 100 CONTINUE
-
- ITER = 0
- 150 CONTINUE
- ITER = ITER+1
- IF(ITER.GE.5) THEN
- IDcpc = 0
- IDPDG = 0
- XMOUT = XMINP
- GOTO 50
- ENDIF
-
- I = 0
- XI = XWGSUM*DT_RNDM(XMOUT)
- 200 CONTINUE
- I = I+1
- XWGSUM = XWGSUM-XWG(I)
- IF((XI.LT.XWGSUM).AND.(I.LT.LISTL)) GOTO 200
- IDPDG = IRPDG(I)
- IDcpc = IRBAM(I)
- GARES = RGA(I)
- XMRES = RMA(I)
- XMRES2 = XMRES**2
-C sample new mass (from Breit-Wigner cross section)
- ALO = ATAN((PMASSL-XMRES2)/(XMRES*GARES))
- AHI = ATAN((5.D0-XMRES2)/(XMRES*GARES))
- XI = (AHI-ALO)*DT_RNDM(XMRES)+ALO
- XMOUT = XMRES*GARES*TAN(XI)+XMRES2
- XMOUT = SQRT(XMOUT)
-
-C check mass for decay
- AMDCY = 2.D0*XMRES
- ID = abs(IDcpc)
- DO 250 IK=idec_list(2,ID),idec_list(3,ID)
- AMSUM = 0.D0
- DO 275 I=1,3
- IF(isec_list(I,IK).NE.0)
- & AMSUM = AMSUM + xm_list(iabs(isec_list(I,IK)))
- 275 CONTINUE
- AMDCY = MIN(AMDCY,AMSUM)
- 250 CONTINUE
- IF(AMDCY.GE.XMOUT) GOTO 150
-
-C debug output
- IF(IDEB(7).GE.10)
- & WRITE(LO,'(1X,2A,/1X,3I6,2E10.3,2I7,2E10.3)')
- & 'PHO_MASSAD: ',
- & 'IFMO,IF1,IF2,XMCON,XMOUT,IDPDG,IDcpc,RMA,RGA',
- & IFLMO,IFL1,IFL2,XMCON,XMOUT,IDPDG,IDcpc,RMA(I),RGA(I)
- RETURN
- ENDIF
-
- 50 CONTINUE
-C debug output
- IF(IDEB(7).GE.15)
- & WRITE(LO,'(1X,A,/1X,3I6,2E10.3)')
- & 'PHO_MASSAD: string sampled: IFMO,IF1,IF2,XMCON,XMOUT',
- & IFLMO,IFL1,IFL2,XMCON,XMOUT
-
- END
-
-CDECK ID>, PHO_PDF
- SUBROUTINE PHO_PDF(NPAR,X,SCALE2,P2VIR,PD)
-C***************************************************************
-C
-C call different PDF sets for different particle types
-C
-C input: NPAR 1 IGRP(1),ISET(1)
-C 2 IGRP(2),ISET(2)
-C X momentum fraction
-C SCALE2 squared scale (GeV**2)
-C P2VIR particle virtuality (positive, GeV**2)
-C
-C output PD(-6:6) field containing the x*PDF fractions
-C
-C***************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- DIMENSION PD(-6:6)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C currently activated parton density parametrizations
- CHARACTER*8 PDFNAM
- INTEGER IPARID,IPAVA,ITYPE,IGRP,ISET,IEXT,NPAOLD
- DOUBLE PRECISION PDFLAM,PDFQ2M
- COMMON /POPPDF/ PDFLAM(2),PDFQ2M(2),PDFNAM(2),IPARID(2),
- & IPAVA(2),ITYPE(2),IGRP(2),ISET(2),IEXT(2),NPAOLD
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-
- DIMENSION PARAM(20),VALUE(20)
- CHARACTER*20 PARAM
-
- REAL XR,P2R,Q2R,F2GM,XPDFGM
- DIMENSION XPDFGM(-6:6)
-
-C check of kinematic boundaries
- XI = X
- IF(X.GT.1.D0) THEN
- IF(IDEB(37).GE.0) THEN
- WRITE(LO,'(/,1X,A,E15.8/)')
- & 'PHO_PDF: x>1 (corrected to x=1)',X
- CALL PHO_PREVNT(-1)
- ENDIF
- XI = 0.99999999999D0
- ELSE IF(X.LE.0.D0) THEN
- IF(IDEB(37).GE.0) THEN
- WRITE(LO,'(/,1X,A,E15.8/)') 'PHO_PDF: X <= 0 ',X
- CALL PHO_PREVNT(-1)
- ENDIF
- XI = 0.0001D0
- ENDIF
-
- DO 100 I=-6,6
- PD(I) = 0.D0
- 100 CONTINUE
- IRET = 1
-
- IF((NPAR.EQ.1).OR.(NPAR.EQ.2)) THEN
-
-C internal PDFs
-
- IF(IEXT(NPAR).EQ.0) THEN
- IF(ITYPE(NPAR).EQ.1) THEN
-C proton PDFs
- IF(IGRP(NPAR).EQ.5) THEN
- IF(ISET(NPAR).EQ.3) THEN
- CALL PHO_DOR92HO(XI,SCALE2,UDV,DV,GL,UDB,SB,CB,BB)
- UV = UDV-DV
- UDB = 2.D0*UDB
- DEL = 0.D0
- IRET = 0
- ELSE IF(ISET(NPAR).EQ.4) THEN
- CALL PHO_DOR92LO(XI,SCALE2,UDV,DV,GL,UDB,SB,CB,BB)
- UV = UDV-DV
- UDB = 2.D0*UDB
- DEL = 0.D0
- IRET = 0
- ELSE IF(ISET(NPAR).EQ.5) THEN
- CALL PHO_DOR94HO(XI,SCALE2,UV,DV,DEL,UDB,SB,GL)
-C heavy quarks from GRV92-HO
- AMU2 = 0.3
- ALAM2 = 0.248 * 0.248
- S = LOG (LOG(SCALE2/ALAM2) / LOG(AMU2/ALAM2))
- SC = 0.820
- ALC = 0.98
- BEC = 0.0
- AKC = -0.625 - 0.523 * S
- AGC = 0.0
- BC = 1.896 + 1.616 * S
- DC = 4.12 + 0.683 * S
- EC = 4.36 + 1.328 * S
- ESC = 0.677 + 0.679 * S
- CB = PHO_DOR92FS(X,S,SC,ALC,BEC,AKC,AGC,BC,DC,EC,ESC)
- SBO = 1.297
- ALB = 0.99
- BEB = 0.0
- AKB = 0.0 - 0.193 * S
- AGB = 0.0
- BBO = 0.0
- DB = 3.447 + 0.927 * S
- EB = 4.68 + 1.259 * S
- ESB = 1.892 + 2.199 * S
- BB = PHO_DOR92FS(X,S,SBO,ALB,BEB,AKB,AGB,BBO,DB,EB,ESB)
- IRET = 0
- ELSE IF(ISET(NPAR).EQ.6) THEN
- CALL PHO_DOR94LO(XI,SCALE2,UV,DV,DEL,UDB,SB,GL)
-C heavy quarks from GRV92-LO
- AMU2 = 0.25
- ALAM2 = 0.232D0**2
- S = LOG (LOG(SCALE2/ALAM2) / LOG(AMU2/ALAM2))
- SC = 0.888
- ALC = 1.01
- BEC = 0.37
- AKC = 0.0
- AGC = 0.0
- BC = 4.24 - 0.804 * S
- DC = 3.46 + 1.076 * S
- EC = 4.61 + 1.490 * S
- ESC = 2.555 + 1.961 * S
- CB = PHO_DOR92FS(X,S,SC,ALC,BEC,AKC,AGC,BC,DC,EC,ESC)
- SBO = 1.351
- ALB = 1.00
- BEB = 0.51
- AKB = 0.0
- AGB = 0.0
- BBO = 1.848
- DB = 2.929 + 1.396 * S
- EB = 4.71 + 1.514 * S
- ESB = 4.02 + 1.239 * S
- BB = PHO_DOR92FS(X,S,SBO,ALB,BEB,AKB,AGB,BBO,DB,EB,ESB)
- IRET = 0
- ELSE IF(ISET(NPAR).EQ.7) THEN
- CALL PHO_DOR94DI(XI,SCALE2, UV, DV, DEL, UDB, SB, GL)
-C heavy quarks from GRV92-HO
- AMU2 = 0.3
- ALAM2 = 0.248 * 0.248
- S = LOG (LOG(SCALE2/ALAM2) / LOG(AMU2/ALAM2))
- SC = 0.820
- ALC = 0.98
- BEC = 0.0
- AKC = -0.625 - 0.523 * S
- AGC = 0.0
- BC = 1.896 + 1.616 * S
- DC = 4.12 + 0.683 * S
- EC = 4.36 + 1.328 * S
- ESC = 0.677 + 0.679 * S
- CB = PHO_DOR92FS(X,S,SC,ALC,BEC,AKC,AGC,BC,DC,EC,ESC)
- SBO = 1.297
- ALB = 0.99
- BEB = 0.0
- AKB = 0.0 - 0.193 * S
- AGB = 0.0
- BBO = 0.0
- DB = 3.447 + 0.927 * S
- EB = 4.68 + 1.259 * S
- ESB = 1.892 + 2.199 * S
- BB = PHO_DOR92FS(X,S,SBO,ALB,BEB,AKB,AGB,BBO,DB,EB,ESB)
- IRET = 0
- ELSE IF(ISET(NPAR).EQ.8) THEN
- CALL PHO_DOR98LO(XI,SCALE2,UV,DV,US,DS,SB,GL)
- DEL = DS-US
- UDB = DS+US
-C heavy quarks from GRV92-LO
- AMU2 = 0.25
- ALAM2 = 0.232D0**2
- S = LOG (LOG(SCALE2/ALAM2) / LOG(AMU2/ALAM2))
- SC = 0.888
- ALC = 1.01
- BEC = 0.37
- AKC = 0.0
- AGC = 0.0
- BC = 4.24 - 0.804 * S
- DC = 3.46 + 1.076 * S
- EC = 4.61 + 1.490 * S
- ESC = 2.555 + 1.961 * S
- CB = PHO_DOR92FS(X,S,SC,ALC,BEC,AKC,AGC,BC,DC,EC,ESC)
- SBO = 1.351
- ALB = 1.00
- BEB = 0.51
- AKB = 0.0
- AGB = 0.0
- BBO = 1.848
- DB = 2.929 + 1.396 * S
- EB = 4.71 + 1.514 * S
- ESB = 4.02 + 1.239 * S
- BB = PHO_DOR92FS(X,S,SBO,ALB,BEB,AKB,AGB,BBO,DB,EB,ESB)
- IRET = 0
- ELSE IF(ISET(NPAR).EQ.9) THEN
-* CALL PHO_DOR98SC(XI,SCALE2,UV,DV,US,DS,SB,GL)
- DEL = DS-US
- UDB = DS+US
-C heavy quarks from GRV92-LO
- AMU2 = 0.25
- ALAM2 = 0.232D0**2
- S = LOG (LOG(SCALE2/ALAM2) / LOG(AMU2/ALAM2))
- SC = 0.888
- ALC = 1.01
- BEC = 0.37
- AKC = 0.0
- AGC = 0.0
- BC = 4.24 - 0.804 * S
- DC = 3.46 + 1.076 * S
- EC = 4.61 + 1.490 * S
- ESC = 2.555 + 1.961 * S
- CB = PHO_DOR92FS(X,S,SC,ALC,BEC,AKC,AGC,BC,DC,EC,ESC)
- SBO = 1.351
- ALB = 1.00
- BEB = 0.51
- AKB = 0.0
- AGB = 0.0
- BBO = 1.848
- DB = 2.929 + 1.396 * S
- EB = 4.71 + 1.514 * S
- ESB = 4.02 + 1.239 * S
- BB = PHO_DOR92FS(X,S,SBO,ALB,BEB,AKB,AGB,BBO,DB,EB,ESB)
- IRET = 0
- ENDIF
- PD(-5) = BB
- PD(-4) = CB
- PD(-3) = SB
- PD(-2) = 0.5D0*(UDB-DEL)
- PD(-1) = 0.5D0*(UDB+DEL)
- PD(0) = GL
- PD(1) = DV+PD(-1)
- PD(2) = UV+PD(-2)
- PD(3) = PD(-3)
- PD(4) = PD(-4)
- PD(5) = PD(-5)
- ENDIF
- ELSE IF(ITYPE(NPAR).EQ.2) THEN
-C pion PDFs (default for pi+)
- IF(IGRP(NPAR).EQ.5) THEN
- IF(ISET(NPAR).EQ.1) THEN
- CALL PHO_DORPHO (XI,SCALE2,VA,GL,QB,CB,BB)
- IRET = 0
- ELSE IF(ISET(NPAR).EQ.2) THEN
- CALL PHO_DORPLO (XI,SCALE2,VA,GL,QB,CB,BB)
- IRET = 0
- ENDIF
- PD(-5) = BB
- PD(-4) = CB
- PD(-3) = QB
- PD(-2) = QB
- PD(-1) = QB+VA
- PD(0) = GL
- PD(1) = QB
- PD(2) = VA+QB
- PD(3) = QB
- PD(4) = CB
- PD(5) = BB
- ENDIF
- ELSE IF(ITYPE(NPAR).EQ.3) THEN
-C photon PDFs
- IF(IGRP(NPAR).EQ.5) THEN
- IF(ISET(NPAR).EQ.1) THEN
- CALL PHO_DORGH0 (XI,SCALE2,UB,DB,SB,CB,BB,GL)
- IRET = 0
- ELSE IF(ISET(NPAR).EQ.2) THEN
- CALL PHO_DORGHO (XI,SCALE2,UB,DB,SB,CB,BB,GL)
- IRET = 0
- ELSE IF(ISET(NPAR).EQ.3) THEN
- CALL PHO_DORGLO (XI,SCALE2,UB,DB,SB,CB,BB,GL)
- IRET = 0
- ENDIF
-C reweight with Drees-Godbole factor
- WGX = 1.D0
- IF(P2VIR.GT.0.001D0) THEN
- WGX = LOG(SCALE2/(P2VIR+PARMDL(144)))
- & /LOG(SCALE2/PARMDL(144))
- WGX = MAX(WGX,0.D0)
- ENDIF
- PD(-5) = BB*WGX/137.D0
- PD(-4) = CB*WGX/137.D0
- PD(-3) = SB*WGX/137.D0
- PD(-2) = UB*WGX/137.D0
- PD(-1) = DB*WGX/137.D0
- PD(0) = GL*WGX*WGX/137.D0
- PD(1) = PD(-1)
- PD(2) = PD(-2)
- PD(3) = PD(-3)
- PD(4) = PD(-4)
- PD(5) = PD(-5)
- ELSE IF(IGRP(NPAR).EQ.8) THEN
- IF(ISET(NPAR).EQ.1) THEN
- CALL PHO_PHGAL (XI,SCALE2,PD)
- IRET = 0
- ENDIF
- ENDIF
- ELSE IF(ITYPE(NPAR).EQ.20) THEN
-C Pomeron PDFs
- MODE = IGRP(NPAR)
- IF(MODE.EQ.1) THEN
- PD(0) = 6.D0*(1.D0-XI)**5*PARMDL(26)*PARMDL(78)
- IRET = 0
- ELSE IF(MODE.EQ.2) THEN
- PD(0) = 6.D0*XI*(1.D0-XI)*PARMDL(26)*PARMDL(78)
- IRET = 0
- ELSE IF(MODE.EQ.3) THEN
- PD(0) = (0.18D0/XI+5.46D0)*(1.D0-XI)*PARMDL(26)*PARMDL(78)
- IRET = 0
- ELSE IF(MODE.EQ.4) THEN
- CALL PHO_CKMTPD(990,XI,SCALE2,PD)
- DO 105 I=-4,4
- PD(I) = PD(I)*PARMDL(78)
- 105 CONTINUE
- IRET = 0
- ENDIF
- ENDIF
-
-C external PDFs
-
- ELSE IF(IEXT(NPAR).EQ.2) THEN
-C PDFLIB call: new PDF numbering
- IF(NPAR.NE.NPAOLD) THEN
- PARAM(1) = 'NPTYPE'
- PARAM(2) = 'NGROUP'
- PARAM(3) = 'NSET'
- PARAM(4) = ' '
- VALUE(1) = ITYPE(NPAR)
- VALUE(2) = ABS(IGRP(NPAR))
- VALUE(3) = ISET(NPAR)
- CALL PDFSET(PARAM,VALUE)
- ENDIF
- IF(ITYPE(NPAR).EQ.3) THEN
- IP2 = 0
- CALL STRUCTP(XI,SCALE2,P2VIR,IP2,PD(2),PD(1),PD(-2),PD(-1),
- & PD(-3),PD(-4),PD(-5),PD(-6),PD(0))
- ELSE
- SCALE = SQRT(SCALE2)
- CALL STRUCTM(XI,SCALE,PD(2),PD(1),PD(-2),PD(-1),
- & PD(-3),PD(-4),PD(-5),PD(-6),PD(0))
- ENDIF
- DO 115 I=3,6
- PD(I) = PD(-I)
- 115 CONTINUE
- IF(ITYPE(NPAR).EQ.1) THEN
-C proton valence quarks
- PD(1) = PD(1)+PD(-1)
- PD(2) = PD(2)+PD(-2)
- ELSE IF(ITYPE(NPAR).EQ.2) THEN
-C pi+ valences
- DVAL = PD(1)
- PD(1) = PD(-1)
- PD(-1) = DVAL+PD(1)
- PD(2) = PD(2)+PD(-2)
- ELSE IF(ITYPE(NPAR).EQ.3) THEN
-C photon conventions
- PD(1) = PD(-1)
- PD(2) = PD(-2)
- ENDIF
- IRET = 0
-
- ELSE IF(IEXT(NPAR).EQ.3) THEN
-C PHOLIB call: version 2.0
- CALL PHVAL(IGRP(NPAR),ISET(NPAR),XI,SCALE2,PD,IRET)
- IF(IRET.LT.0) THEN
- WRITE(LO,'(/1X,A,I2)')
- & 'PHO_PDF:ERROR: non-vanishing PHVAL return code',IRET
- CALL PHO_ABORT
- ENDIF
- IRET = 0
-
-C photon PDFs depending on photon virtuality
-
- ELSE IF(IEXT(NPAR).EQ.4) THEN
- IF(IGRP(NPAR).EQ.1) THEN
-C Schuler/Sjostrand PDF (interface to single precision)
- XR = XI
- Q2R = SCALE2
- P2R = P2VIR
- IP2 = 0
- CALL PHO_SASGAM(ISET(NPAR),XR,Q2R,P2R,IP2,F2GM,XPDFGM)
- DO 120 I=-6,6
- PD(I) = DBLE(XPDFGM(I))
- 120 CONTINUE
- IRET = 0
- ELSE IF(IGRP(NPAR).EQ.5) THEN
-C Gluck/Reya/Stratmann
- IF(ISET(NPAR).EQ.4) THEN
- CALL PHO_DORGLV (XI,SCALE2,P2VIR, UB, DB, SB, GL)
- CALL PHO_QPMPDF(4,XI,SCALE2,0.D0,P2VIR,CB)
- IRET = 0
- PD(-5) = 0.D0
- PD(-4) = CB
- PD(-3) = SB/137.D0
- PD(-2) = UB/137.D0
- PD(-1) = DB/137.D0
- PD(0) = GL/137.D0
- PD(1) = PD(-1)
- PD(1) = PD(-1)
- PD(2) = PD(-2)
- PD(3) = PD(-3)
- PD(4) = PD(-4)
- PD(5) = PD(-5)
- ENDIF
- ENDIF
- ENDIF
-
-C check for errors
-
- IF(IRET.NE.0) THEN
- WRITE(LO,'(/1X,A,/10X,5I6)')
- & 'PHO_PDF:ERROR:unsupported PDF(NPAR,IEXT,ITYPE,IGRP,ISET)',
- & NPAR,IEXT(NPAR),ITYPE(NPAR),IGRP(NPAR),ISET(NPAR)
- CALL PHO_ABORT
- ENDIF
-C error in NPAR
- ELSE
- WRITE(LO,'(/1X,A,I5)') 'PHO_PDF:ERROR:invalid NPAR(1,2) ',NPAR
- CALL PHO_ABORT
- ENDIF
- NPAOLD = NPAR
-
-C valence quark treatment
-
- IF(ITYPE(NPAR).EQ.2) THEN
-C meson conventions
- IF(IPARID(NPAR).EQ.111) THEN
-C pi0 valence quarks
- PD(-1) = (PD(1)+PD(-1))/2.D0
- PD(1) = PD(-1)
- PD(-2) = (PD(2)+PD(-2))/2.D0
- PD(2) = PD(-2)
- ELSE IF(ABS(IPARID(NPAR)).EQ.321) THEN
-C K+/-
- VALS = PD(-1)-PD(1)
- PD(-1) = PD(1)
- PD(-3) = PD(-3)+VALS
- ELSE IF( (IPARID(NPAR).EQ.311)
- & .OR.(IPARID(NPAR).EQ.310)
- & .OR.(IPARID(NPAR).EQ.130)) THEN
-C neutral kaons
- VALS = PD(-1)-PD(1)
- VALU = PD(2)-PD(-2)
- PD(-1) = PD(1)
- PD(2) = PD(-2)
- PD(2) = PD(2)+VALU/2.D0
- PD(-2) = PD(-2)+VALU/2.D0
- PD(3) = PD(3)+VALS/2.D0
- PD(-3) = PD(-3)+VALS/2.D0
- ENDIF
- ELSE IF(ITYPE(NPAR).EQ.1) THEN
-C nucleon conventions
- IF(ABS(IPARID(NPAR)).EQ.2112) THEN
-C neutron valence quarks
- DUM = PD(1)
- PD(1) = PD(2)
- PD(2) = DUM
- ELSE IF(ABS(IPARID(NPAR)).EQ.3222) THEN
-C (anti-)sigma+
- VALS = PD(1)-PD(-1)
- PD(1) = PD(-1)
- PD(3) = PD(3)+VALS
- ELSE IF(ABS(IPARID(NPAR)).EQ.3112) THEN
-C (anti-)sigma-
- VALS = PD(1)-PD(-1)
- VALD = PD(2)-PD(-2)
- PD(1) = PD(-1)
- PD(2) = PD(-2)
- PD(1) = PD(1)+VALD
- PD(3) = PD(3)+VALS
- ELSE IF( (ABS(IPARID(NPAR)).EQ.3122)
- & .OR.(ABS(IPARID(NPAR)).EQ.3212)) THEN
-C (anti-)sigma0 and (anti-)lambda
- VALS = PD(1)-PD(-1)
- VALD = (PD(2)-PD(-2))/2.D0
- PD(1) = PD(-1)
- PD(2) = PD(-2)
- PD(1) = PD(1)+VALD
- PD(2) = PD(2)+VALD
- PD(3) = PD(3)+VALS
- ENDIF
- ENDIF
-
-C antiparticle
- IF(IPARID(NPAR).LT.0) THEN
- DO 190 I=1,4
- DUM=PD(I)
- PD(I)=PD(-I)
- PD(-I)=DUM
- 190 CONTINUE
- ENDIF
-
-C optionally remove valence quarks
- IF(IPAVA(NPAR).EQ.0) THEN
- DO 200 I=1,4
- PD(I) = MIN(PD(-I),PD(I))
- PD(-I) = PD(I)
- 200 CONTINUE
- ENDIF
-
-C debug information
- IF(IDEB(37).GE.30) WRITE(LO,
- & '(1X,A,I4,1P,3E12.4/,2X,A,6E10.3,/2X,A,E10.3,/2X,A,6E10.3)')
- & 'PHO_PDF: NPAR,X,SCALE**2,P2VIR',
- & NPAR,X,SCALE2,P2VIR,'PD(-6..-1)',(PD(I),I=-6,-1),
- & 'PD(0) ',PD(0),'PD(1..6) ',(PD(I),I=1,6)
-
- END
-
-CDECK ID>, PHO_QPMPDF
- SUBROUTINE PHO_QPMPDF(IQ,X,SCALE2,PTREF,PVIRT,FXP)
-C***************************************************************
-C
-C contribution to photon PDF from box graph
-C (Bethe-Heitler process)
-C
-C input: IQ quark flavour
-C SCALE2 scale (GeV**2, positive)
-C PTREF reference scale (GeV, positive)
-C X parton momentum fraction
-C PVIRT photon virtuality (GeV**2, positive)
-C FXP x*f(x,Q**2), x times parton density
-C
-C***************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C internal rejection counters
- INTEGER NMXJ
- PARAMETER (NMXJ=60)
- CHARACTER*10 REJTIT
- INTEGER IFAIL
- COMMON /POLOOP/ IFAIL(NMXJ),REJTIT(NMXJ)
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
- DIMENSION QM(6)
- DATA QM / 0.2D0,0.25D0,0.5D0,1.5D0,4.5D0,174.D0 /
-
- FXP = 0.D0
- I = ABS(IQ)
-C
-* QM2 = MAX(QM(I),PTREF)**2
-* QM2 = MAX(QM2,PVIRT)
-* BBE = (1.D0-X)*SCALE2
-* IF(BBE.LE.0.D0) THEN
-* IF(IDEB(27).GE.5) WRITE(LO,'(1X,A,4E10.3)')
-* & 'PHO_QPMPDF: over mass limit (X,Q2,P2,QM)',X,SCALE2,
-* & PVIRT,QM(I)
-* ENDIF
-* FXP = X*(4.D0-3.D0*MOD(I,2))/9.D0*3.D0/(2.D0*137.D0*PI)
-* & *((X**2+(1.D0-X)**2)*LOG(BBE/(QM2*X))+8.D0*X*(1.D0-X)-1.D0)
-C Bethe-Heitler process approximation for 2*x*p2/q2 << 1
- QM2 = MAX(QM(I),PTREF)**2
- W2 = SCALE2/X*(1.D0-X-X*PVIRT/SCALE2)
- IF(W2.GT.4.D0*QM2) THEN
- BE = SQRT(1.D0-4.D0*QM2/W2)
- BP = SQRT(1.D0+BE*(1.D0-4.D0*X*X*PVIRT/SCALE2))
- BM = SQRT(1.D0-BE*(1.D0-4.D0*X*X*PVIRT/SCALE2))
-* FXP = X*(4.D0-3.D0*MOD(I,2))/9.D0*3.D0/(137.D0*PI)*(BE*(-1.D0
- FXP = X*Q_ch2(I)*3.D0/(137.D0*PI)*(BE*(-1.D0
- & +6.D0*X-6.D0*X*X)+2.D0*X*X*((2.D0*QM2-PVIRT)/SCALE2
- & -4.D0*QM2*QM2/SCALE2**2)*(1.D0/BM-1.D0/BP)
- & +(X*X+(1.D0-X)**2+X*(1-3.D0*X)*4.D0*QM2/SCALE2
- & -X*X*8.D0*QM2*QM2/SCALE2**2)*LOG(BP/BM))
- ELSE
- IF(IDEB(27).GE.5) WRITE(LO,'(1X,A,4E10.3)')
- & 'PHO_QPMPDF: under mass limit (X,Q2,P2,QM)',X,SCALE2,
- & PVIRT,QM(I)
- ENDIF
-C debug output
- IF(IDEB(27).GE.20) WRITE(LO,'(1X,A,I3,1P,5E10.3)')
- & 'PHO_QPMPDF: X,Q2,P2,QM',I,X,SCALE2,PVIRT,QM(I),FXP
- END
-
-CDECK ID>, PHO_SETPDF
- SUBROUTINE PHO_SETPDF(IDPDG,ITYP,IPAR,ISET,IEXT,IPAVAL,MODE)
-C***************************************************************
-C
-C assigns PDF numbers to particles
-C
-C input: IDPDG PDG number of particle
-C ITYP particle type
-C IPAR PDF paramertization
-C ISET number of set
-C IEXT library number for PDF calculation
-C IPAVAL (only output)
-C 1 PDF with valence quarks
-C 0 PDF without valence quarks
-C MODE -1 add entry to table
-C 1 read from table
-C 2 output of table
-C
-C***************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-
- DIMENSION IPDFS(5,50)
- DATA IENTRY / 0 /
-
- IF(MODE.EQ.1) THEN
- I = 1
- IF(IDPDG.EQ.81) THEN
- IDCMP = IDEQP(1)
- IPAVAL = IHFLS(1)
- ELSE IF(IDPDG.EQ.82) THEN
- IDCMP = IDEQP(2)
- IPAVAL = IHFLS(2)
- ELSE
- IDCMP = IDPDG
- IPAVAL = 1
- ENDIF
-200 CONTINUE
- IF(IDCMP.EQ.IPDFS(1,I)) THEN
- ITYP = IPDFS(2,I)
- IPAR = IPDFS(3,I)
- ISET = IPDFS(4,I)
- IEXT = IPDFS(5,I)
- IF(IDEB(80).GE.15) WRITE(LO,'(1X,A,I7,5X,3I4)')
- & 'PHO_SETPDF: ID,IPAR,ISET,IEXT',IDCMP,IPAR,ISET,IEXT
- RETURN
- ENDIF
- I = I+1
- IF(I.GT.IENTRY) THEN
- WRITE(LO,'(/1X,A,I7)')
- & 'PHO_SETPDF: no PDF assigned to ',IDCMP
- CALL PHO_ABORT
- ENDIF
- GOTO 200
- ELSE IF(MODE.EQ.-1) THEN
- DO 50 I=1,IENTRY
- IF(IDPDG.EQ.IPDFS(1,I)) THEN
- WRITE(LO,'(/1X,A,5I6)')
- & 'PHO_SETPDF: overwrite old particle PDF',
- & IDPDG,IPDFS(2,I),IPDFS(3,I),IPDFS(4,I),IPDFS(5,I)
- GOTO 100
- ENDIF
- 50 CONTINUE
- I = IENTRY+1
- IF(I.GT.50) THEN
- WRITE(LO,'(/1X,A,/1x,6I6)')
- & 'PHO_SETPDF:ERROR: no space left in IPDFS:',
- & I,IDPDG,IPDFS(2,I),IPDFS(3,I),IPDFS(4,I),IPDFS(5,I)
- STOP
- ENDIF
- IENTRY = I
- 100 CONTINUE
- IPDFS(1,I) = IDPDG
- IF(IDPDG.EQ.990) THEN
- ITYP1 = 20
- ELSE IF(IDPDG.EQ.22) THEN
- ITYP1 = 3
- ELSE IF(ABS(IDPDG).LT.1000) THEN
- ITYP1 = 2
- ELSE
- ITYP1 = 1
- ENDIF
- IPDFS(2,I) = ITYP1
- IPDFS(3,I) = IPAR
- IPDFS(4,I) = ISET
- IPDFS(5,I) = IEXT
- ELSE IF(MODE.EQ.-2) THEN
- WRITE(LO,'(/1X,A)') 'PHO_SETPDF: PDFs assigned by user:'
- DO 150 I=1,IENTRY
- WRITE(LO,'(5X,I4,A,I7,A,4I5)') I,' particle:',IPDFS(1,I),
- & ' PDF-set ',IPDFS(2,I),IPDFS(3,I),IPDFS(4,I),IPDFS(5,I)
- 150 CONTINUE
- ELSE
- WRITE(LO,'(/1X,A,I5)') 'PHO_SETPDF:ERROR: invalid mode ',MODE
- ENDIF
- END
-
-CDECK ID>, PHO_GETPDF
- SUBROUTINE PHO_GETPDF(NPAR,PDFNA,ALA,Q2MI,Q2MA,XMI,XMA)
-C***************************************************************
-C
-C get PDF information
-C
-C input: NPAR 1 first PDF in /POPPDF/
-C 2 second PDF in /POPPDF/
-C
-C output: PDFNA name of PDf parametrization
-C ALA QCD LAMBDA (4 flavours, in GeV)
-C Q2MI minimal Q2
-C Q2MA maximal Q2
-C XMI minimal X
-C XMA maximal X
-C
-C***************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- CHARACTER*8 PDFNA
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
-C PHOLIB 4.15 common
- COMMON /W50512/ QCDL4,QCDL5
- COMMON /W50513/ XMIN,XMAX,Q2MIN,Q2MAX
-
-C PHOPDF version 2.0 common
- PARAMETER (MAXS=6,MAXP=10)
- CHARACTER*4 CHPAR
- COMMON/PHCOM1/ XLIM(MAXP,0:MAXS,2), Q2LIM(MAXP,0:MAXS,2),
- & NSET(MAXP,2),NFL(MAXP)
- COMMON/PHCOM2/ ALM(MAXP,0:MAXS),CHPAR(MAXP),IORD(MAXP,-MAXS:MAXS)
-
-C currently activated parton density parametrizations
- CHARACTER*8 PDFNAM
- INTEGER IPARID,IPAVA,ITYPE,IGRP,ISET,IEXT,NPAOLD
- DOUBLE PRECISION PDFLAM,PDFQ2M
- COMMON /POPPDF/ PDFLAM(2),PDFQ2M(2),PDFNAM(2),IPARID(2),
- & IPAVA(2),ITYPE(2),IGRP(2),ISET(2),IEXT(2),NPAOLD
-
- DIMENSION PARAM(20),VALUE(20)
- CHARACTER*20 PARAM
-
- IF((NPAR.NE.1).AND.(NPAR.NE.2)) THEN
- WRITE(LO,'(/1X,A,I6)')
- & 'PHO_GETPDF:ERROR: invalid PDF number (1,2)',NPAR
- CALL PHO_ABORT
- ENDIF
- ALA = 0.D0
-
- IF(IEXT(NPAR).EQ.0) THEN
-
-C internal parametrizations
-
- IF(ITYPE(NPAR).EQ.1) THEN
-C proton PDFs
- IF(IGRP(NPAR).EQ.5) THEN
- IF(ISET(NPAR).EQ.3) THEN
- ALA = 0.2D0
- Q2MI = 0.3D0
- PDFNA = 'GRV92 HO'
- ELSE IF(ISET(NPAR).EQ.4) THEN
- ALA = 0.2D0
- Q2MI = 0.25D0
- PDFNA = 'GRV92 LO'
- ELSE IF(ISET(NPAR).EQ.5) THEN
- ALA = 0.2D0
- Q2MI = 0.4D0
- PDFNA = 'GRV94 HO'
- ELSE IF(ISET(NPAR).EQ.6) THEN
- ALA = 0.2D0
- Q2MI = 0.4D0
- PDFNA = 'GRV94 LO'
- ELSE IF(ISET(NPAR).EQ.7) THEN
- ALA = 0.2D0
- Q2MI = 0.4D0
- PDFNA = 'GRV94 DI'
- ELSE IF(ISET(NPAR).EQ.8) THEN
- ALA = 0.175D0
- Q2MI = 0.8D0
- PDFNA = 'GRV98 LO'
- ELSE IF(ISET(NPAR).EQ.9) THEN
- ALA = 0.175D0
- Q2MI = 0.8D0
- PDFNA = 'GRV98 SC'
- ENDIF
- ENDIF
- ELSE IF(ITYPE(NPAR).EQ.2) THEN
-C pion PDFs
- IF(IGRP(NPAR).EQ.5) THEN
- IF(ISET(NPAR).EQ.1) THEN
- ALA = 0.2D0
- Q2MI = 0.3D0
- PDFNA = 'GRV-P HO'
- ELSE IF(ISET(NPAR).EQ.2) THEN
- ALA = 0.2D0
- Q2MI = 0.25D0
- PDFNA = 'GRV-P LO'
- ENDIF
- ENDIF
- ELSE IF(ITYPE(NPAR).EQ.3) THEN
-C photon PDFs
- IF(IGRP(NPAR).EQ.5) THEN
- IF(ISET(NPAR).EQ.1) THEN
- ALA = 0.2D0
- Q2MI = 0.3D0
- PDFNA = 'GRV-G LH'
- ELSE IF(ISET(NPAR).EQ.2) THEN
- ALA = 0.2D0
- Q2MI = 0.3D0
- PDFNA = 'GRV-G HO'
- ELSE IF(ISET(NPAR).EQ.3) THEN
- ALA = 0.2D0
- Q2MI = 0.25D0
- PDFNA = 'GRV-G LO'
- ENDIF
- ELSE IF(IGRP(NPAR).EQ.8) THEN
- IF(ISET(NPAR).EQ.1) THEN
- ALA = 0.2D0
- Q2MI = 4.D0
- PDFNA = 'AGL-G LO'
- ENDIF
- ENDIF
- ELSE IF(ITYPE(NPAR).EQ.20) THEN
-C pomeron PDFs
- IF(IGRP(NPAR).EQ.4) THEN
- CALL PHO_CKMTPA(990,XMI,XMA,ALA,Q2MI,Q2MA,PDFNA)
- ELSE
- ALA = 0.3D0
- Q2MI = 2.D0
- PDFNA = 'POM-PDF1'
- ENDIF
- ENDIF
-
-C external parametrizations
-
- ELSE IF(IEXT(NPAR).EQ.1) THEN
-C PDFLIB call: old numbering
- PARAM(1) = 'MODE'
- PARAM(2) = ' '
- VALUE(1) = IGRP(NPAR)
- CALL PDFSET(PARAM,VALUE)
- Q2MI = Q2MIN
- Q2MA = Q2MAX
- XMI = XMIN
- XMA = XMAX
- ALA = QCDL4
- PDFNA = 'PDFLIB1'
- ELSE IF(IEXT(NPAR).EQ.2) THEN
-C PDFLIB call: new numbering
- PARAM(1) = 'NPTYPE'
- PARAM(2) = 'NGROUP'
- PARAM(3) = 'NSET'
- PARAM(4) = ' '
- VALUE(1) = ITYPE(NPAR)
- VALUE(2) = IGRP(NPAR)
- VALUE(3) = ISET(NPAR)
- CALL PDFSET(PARAM,VALUE)
- Q2MI = Q2MIN
- Q2MA = Q2MAX
- XMI = XMIN
- XMA = XMAX
- ALA = QCDL4
- PDFNA = 'PDFLIB2'
- ELSE IF(IEXT(NPAR).EQ.3) THEN
-C PHOLIB interface
- ALA = ALM(IGRP(NPAR),ISET(NPAR))
- Q2MI = 2.D0
- PDFNA = CHPAR(IGRP(NPAR))
-
-C some special internal parametrizations
-
- ELSE IF(IEXT(NPAR).EQ.4) THEN
-C photon PDFs depending on virtualities
- IF(IGRP(NPAR).EQ.1) THEN
-C Schuler/Sjostrand parametrization
- ALA = 0.2D0
- IF(ISET(NPAR).EQ.1) THEN
- Q2MI = 0.2D0
- PDFNA = 'SaS-1D '
- ELSE IF(ISET(NPAR).EQ.2) THEN
- Q2MI = 0.2D0
- PDFNA = 'SaS-1M '
- ELSE IF(ISET(NPAR).EQ.3) THEN
- Q2MI = 2.D0
- PDFNA = 'SaS-2D '
- ELSE IF(ISET(NPAR).EQ.4) THEN
- Q2MI = 2.D0
- PDFNA = 'SaS-2M '
- ENDIF
- ELSE IF(IGRP(NPAR).EQ.5) THEN
-C Gluck/Reya/Stratmann parametrization
- IF(ISET(NPAR).EQ.4) THEN
- ALA = 0.2D0
- Q2MI = 0.6D0
- PDFNA = 'GRS-G LO'
- ENDIF
- ENDIF
- ELSE IF(IEXT(NPAR).EQ.5) THEN
-C Schuler/Sjostrand anomalous only
- ALA = 0.2D0
- Q2MI = 0.2D0
- PDFNA = 'SaS anom'
- ENDIF
- IF(ALA.LT.0.01D0) THEN
- WRITE(LO,'(/1X,2A,/10X,5I6)')
- & 'PHO_GETPDF:ERROR: ',
- & 'unsupported PDF (NPAR,IEXT,ITYPE,IGRP,ISET)',
- & NPAR,IEXT(NPAR),ITYPE(NPAR),IGRP(NPAR),ISET(NPAR)
- CALL PHO_ABORT
- ENDIF
-
- END
-
-CDECK ID>, PHO_ACTPDF
- SUBROUTINE PHO_ACTPDF(IDPDG,K)
-C***************************************************************
-C
-C activate PDF for QCD calculations
-C
-C input: IDPDG PDG particle number
-C K 1 first PDF in /POPPDF/
-C 2 second PDF in /POPPDF/
-C -2 write current settings
-C
-C output: /POPPDF/
-C
-C***************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C currently activated parton density parametrizations
- CHARACTER*8 PDFNAM
- INTEGER IPARID,IPAVA,ITYPE,IGRP,ISET,IEXT,NPAOLD
- DOUBLE PRECISION PDFLAM,PDFQ2M
- COMMON /POPPDF/ PDFLAM(2),PDFQ2M(2),PDFNAM(2),IPARID(2),
- & IPAVA(2),ITYPE(2),IGRP(2),ISET(2),IEXT(2),NPAOLD
-
- IF(K.GT.0) THEN
-
-C read PDF from table
- CALL PHO_SETPDF(IDPDG,ITYPE(K),IGRP(K),ISET(K),IEXT(K),
- & IPAVA(K),1)
- IPARID(K) = IDPDG
-C get PDF parameters
- CALL PHO_GETPDF(K,PDFNAM(K),PDFLAM(K),PDFQ2M(K),Q2MA,XMI,XMA)
-C initialize alpha_s calculation
- alam2 = PDFLAM(K)*PDFLAM(K)
- DUMMY = PHO_ALPHAS(alam2,-K)
-
- IF(IDEB(2).GE.20) THEN
- WRITE(LO,'(1X,A)')
- & 'PHO_ACTPDF: LAMBDA,Q2MIN,NAME,ITYPE,IPAR,ISET,IEXT,PAR'
- WRITE(LO,'(1X,A,I2,2E12.3,2X,A8,4I4,I7)') 'SIDE',K,
- & PDFLAM(K),PDFQ2M(K),PDFNAM(K),ITYPE(K),IGRP(K),ISET(K),
- & IEXT(K),IPARID(K)
- ENDIF
- NPAOLD = K
-
- ELSE IF(K.EQ.-2) THEN
-
-C write table of current PDFs
- WRITE(LO,'(1X,A)')
- & 'PHO_ACTPDF: LAMBDA,Q2MIN,NAME,ITYPE,IPAR,ISET,IEXT,PAR'
- WRITE(LO,'(1X,A,2E12.3,2X,A8,4I4,I7)') 'SIDE 1:',PDFLAM(1),
- & PDFQ2M(1),PDFNAM(1),ITYPE(1),IGRP(1),ISET(1),IEXT(1),
- & IPARID(1)
- WRITE(LO,'(1X,A,2E12.3,2X,A8,4I4,I7)') 'SIDE 2:',PDFLAM(2),
- & PDFQ2M(2),PDFNAM(2),ITYPE(2),IGRP(2),ISET(2),IEXT(2),
- & IPARID(2)
-
- ELSE
-
- WRITE(LO,'(/1X,A,2I4)')
- & 'PHO_ACTPDF:ERROR: invalid arguments',IDPDG,K
- CALL PHO_ABORT
-
- ENDIF
-
- END
-
-CDECK ID>, PHO_PDFTST
- SUBROUTINE PHO_PDFTST(IDPDG,SCALE2,P2MASS)
-C*********************************************************************
-C
-C structure function test utility
-C
-C input: IDPDG PDG ID of particle
-C SCALE2 squared scale (GeV**2)
-C P2MASS particle virtuality (pos, GeV**2)
-C
-C output: tables of PDF, sum rule checking, table of F2
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C currently activated parton density parametrizations
- CHARACTER*8 PDFNAM
- INTEGER IPARID,IPAVA,ITYPE,IGRP,ISET,IEXT,NPAOLD
- DOUBLE PRECISION PDFLAM,PDFQ2M
- COMMON /POPPDF/ PDFLAM(2),PDFQ2M(2),PDFNAM(2),IPARID(2),
- & IPAVA(2),ITYPE(2),IGRP(2),ISET(2),IEXT(2),NPAOLD
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
- DIMENSION PD(-6:6),PDSUM(-6:6),PDAVE(-6:6),FXP(4)
- CHARACTER*8 PDFNA
-
- CALL PHO_ACTPDF(IDPDG,1)
- CALL PHO_GETPDF(1,PDFNA,ALA,Q2MI,Q2MA,XMI,XMA)
-
- WRITE(LO,'(/,A)') ' *** Structure Function Test Utility ***'
- WRITE(LO,'(A)') ' ======================================='
-
- WRITE(LO,'(/,A,3I10)')
- & ' used structure function:',ITYPE(1),IGRP(1),ISET(1)
- WRITE(LO,'(A,A)') ' corresponds to ',PDFNA
- WRITE(LO,'(A,E12.3)') ' used squared scale (GeV**2):',SCALE2
- WRITE(LO,'(A,E12.3)') ' particle virtuality (GeV**2):',P2MASS
- WRITE(LO,'(/1X,A)') 'x times parton densities'
- WRITE(LO,'(1X,A)') ' X PD(-4 - 4)'
- WRITE(LO,'(1X,A)')
- & ' ============================================================'
-
-C logarithmic loop over x values
-C upper bound
- XUPPER=0.9999D0
-C lower bound
- XLOWER=1.D-4
-C number of steps
- NSTEP=50
-
- XFIRST=LOG(XLOWER)
- XDELTA=LOG(XUPPER/XLOWER)/DBLE(NSTEP-1)
- DO 100 I=1,NSTEP
- X=EXP(XFIRST)
- XCONTR=X
- CALL PHO_PDF(1,X,SCALE2,P2MASS,PD)
- IF(X.NE.XCONTR) THEN
- WRITE(LO,*) ' x changed! old: ',XCONTR,' new: ',X
- ENDIF
- WRITE(LO,'(1X,1P,10E11.4)') XCONTR,(PD(K),K=-4,4)
- XFIRST=XFIRST+XDELTA
- 100 CONTINUE
-
- IF(IDPDG.EQ.22) THEN
- WRITE(LO,'(/1X,A)')
- & 'comparison PDF to contribution due to box diagram'
- WRITE(LO,'(1X,A)') ' X PD(1),PB(1), .... ,PD(4),PB(4)'
- WRITE(LO,'(1X,A)')
- & ' ============================================================'
- XFIRST=LOG(XLOWER)
- XDELTA=LOG(XUPPER/XLOWER)/DBLE(NSTEP-1)
- DO 110 I=1,NSTEP
- X=EXP(XFIRST)
- CALL PHO_PDF(1,X,SCALE2,P2MASS,PD)
- DO 120 K=1,4
- CALL PHO_QPMPDF(K,X,SCALE2,0.D0,P2MASS,FXP(K))
- 120 CONTINUE
- WRITE(LO,'(1X,1P,9E11.4)') X,(PD(K),FXP(K),K=1,4)
- XFIRST=XFIRST+XDELTA
- 110 CONTINUE
- ENDIF
-
-C check momentum sum rule
-
- WRITE(LO,'(/1X,A)') 'PHO_PDFTST: estimate of quark sum rules'
- DO 199 I=-6,6
- PDSUM(I) = 0.D0
- PDAVE(I) = 0.D0
- 199 CONTINUE
- ITER=5000
- DO 200 I=1,ITER
- XX=DBLE(I)/DBLE(ITER)
- IF(XX.EQ.1.D0) XX = 0.999999D0
- CALL PHO_PDF(1,XX,SCALE2,P2MASS,PD)
- DO 202 K=-6,6
- PDSUM(K) = PDSUM(K)+PD(K)/XX
- PDAVE(K) = PDAVE(K)+PD(K)
- 202 CONTINUE
- 200 CONTINUE
- WRITE(LO,'(1X,A)')
- & 'Table: parton-ID, dx-integral over Q(X,Q**2), X*Q(X,Q**2)'
- XSUM = 0.D0
- DO 204 I=-6,6
- PDSUM(I) = PDSUM(I)/DBLE(ITER)
- PDAVE(I) = PDAVE(I)/DBLE(ITER)
- XSUM = XSUM+PDAVE(I)
- WRITE(LO,'(9X,I3,3X,2E15.4)') I,PDSUM(I),PDAVE(I)
- 204 CONTINUE
- WRITE(LO,'(1X,A)') 'PHO_PDFTST: valence flavours'
- DO 205 I=1,6
- WRITE(LO,'(9X,I3,E12.4)') I,PDSUM(I)-PDSUM(-I)
- 205 CONTINUE
- WRITE(LO,'(1X,A,E12.4)') 'momentum sum rule',XSUM
- WRITE(LO,'(A/)') ' ============================================='
-
-C table of F2
-
- WRITE(LO,'(/1X,A,E12.4,/1X,A)')
- & 'PHO_PDFTST: TABLE OF X, F2(X,Q**2) FOR Q**2',SCALE2,
- & '-----------------------------------------------------'
- ITER=100
- DO 300 I=1,ITER
- XX=DBLE(I)/DBLE(ITER)
- IF(XX.EQ.1.D0) XX = 0.9999D0
- CALL PHO_PDF(1,XX,SCALE2,P2MASS,PD)
- F2 = 0.D0
- DO 302 K=-6,6
- IF(K.NE.0) F2 = F2 + Q_ch2(K)*PD(K)
- 302 CONTINUE
- WRITE(LO,'(5X,1P,2E14.5)') XX,F2
- 300 CONTINUE
- WRITE(LO,'(A/)') ' ============================================='
- END
-
-CDECK ID>, PHO_REGPAR
- SUBROUTINE PHO_REGPAR(ISTH,IDPDG,IDBAM,JM1,JM2,P1,P2,P3,P4,
- & IPHIS1,IPHIS2,IC1,IC2,IPOS,IMODE)
-C**********************************************************************
-C
-C registration of particle in /POEVT1/ and /POEVT2/
-C
-C input: ISTH status code of particle
-C -2 initial parton hard scattering
-C -1 parton
-C 0 string
-C 1 visible particle (no color)
-C 2 decayed particle
-C IDPDG PDG particle ID code
-C IDBAM CPC particle ID code
-C JM1,JM2 first and second mother index
-C P1..P4 four momentum
-C IPHIS1 extended history information
-C IPHIS1<100: JM1 from particle 1
-C IPHIS1>100: JM1 from particle 2
-C 1 valence quark
-C 2 valence diquark
-C 3 sea quark
-C 4 sea diquark
-C (neg. for antipartons)
-C IPHIS2 extended history information
-C positive: JM2 from particle 1
-C negative: JM2 from particle 2
-C (see IPHIS1)
-C IC1,IC2 color labels for partons
-C IMODE 1 register given parton
-C 0 reset /POEVT1/ and /POEVT2/
-C 2 return data of entry IPOS
-C
-C IPOS position of particle in /POEVT1/
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER (DEPS = 1.D-20)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
- IF(IMODE.EQ.1) THEN
- IF(IDEB(76).GE.26) THEN
- WRITE(LO,'(1X,A,/2X,I3,I6,3I4,4E10.3)')
- & 'PHO_REGPAR: ISTH,IDPDG,IDBAM,JM1,JM2,P1,P2,P3,P4',
- & ISTH,IDPDG,IDBAM,JM1,JM2,P1,P2,P3,P4
- WRITE(LO,'(1X,A,/2X,6I6)')
- & 'PHO_REGPAR: IPHIS1,IPHIS2,IC1,IC2,IPOS,IMODE',
- & IPHIS1,IPHIS2,IC1,IC2,IPOS,IMODE
- ENDIF
- IF(NHEP.EQ.NMXHEP) THEN
- WRITE(LO,'(/1X,2A,2I6/)') 'PHO_REGPAR: ',
- & 'no space left in /POEVT1/ (NHEP,NMXHEP):',NHEP,NMXHEP
- CALL PHO_ABORT
- ENDIF
- NHEP = NHEP+1
- IDBAMI = IDBAM
- IDPDGI = IDPDG
- IF(ABS(ISTH).LE.2) THEN
- IF((IDBAM.NE.0).AND.(IDPDG.EQ.0)) THEN
- IDPDGI = ipho_id2pdg(IDBAM)
- ELSE IF((IDBAM.EQ.0).AND.(IDPDG.NE.0)) THEN
- IDBAMI = ipho_pdg2id(IDPDG)
- ENDIF
- ENDIF
-C standard data
- ISTHEP(NHEP) = ISTH
- IDHEP(NHEP) = IDPDGI
- JMOHEP(1,NHEP) = JM1
- JMOHEP(2,NHEP) = JM2
-C update of mother-daugther relations
- IF(ABS(ISTH).LE.1) THEN
- IF(JM1.GT.0) THEN
- IF(JDAHEP(1,JM1).EQ.0) THEN
- JDAHEP(1,JM1) = NHEP
- ISTHEP(JM1) = 2
- ENDIF
- JDAHEP(2,JM1) = NHEP
- ENDIF
- IF((JM2.NE.JM1).AND.(JM2.GT.0)) THEN
- IF(JDAHEP(1,JM2).EQ.0) THEN
- JDAHEP(1,JM2) = NHEP
- ISTHEP(JM2) = 2
- ENDIF
- JDAHEP(2,JM2) = NHEP
- ELSE IF(JM2.LT.0) THEN
- DO 100 II=JM1+1,-JM2
- IF(JDAHEP(1,II).EQ.0) THEN
- JDAHEP(1,II) = NHEP
- ISTHEP(II) = 2
- ENDIF
- JDAHEP(2,II) = NHEP
-100 CONTINUE
- ENDIF
- ENDIF
- PHEP(1,NHEP) = P1
- PHEP(2,NHEP) = P2
- PHEP(3,NHEP) = P3
- PHEP(4,NHEP) = P4
- IF((ABS(ISTH).LE.3).OR.(ISTH.EQ.20).OR.(ISTH.EQ.21)) THEN
- TMP=(P4-P3)*(P4+P3)-P1**2-P2**2
- PHEP(5,NHEP) = SIGN(SQRT(ABS(TMP)),TMP)
- ELSE
- PHEP(5,NHEP) = 0.D0
- ENDIF
- JDAHEP(1,NHEP) = 0
- JDAHEP(2,NHEP) = 0
-C extended information
- IMPART(NHEP) = IDBAMI
-C extended history information
- IPHIST(1,NHEP) = IPHIS1
- IPHIST(2,NHEP) = IPHIS2
-C charge/baryon number or color labels
- IF(ISTH.EQ.1) THEN
- ICOLOR(1,NHEP) = IPHO_CHR3(NHEP,2)
- ICOLOR(2,NHEP) = IPHO_BAR3(NHEP,2)
- ELSE
- ICOLOR(1,NHEP) = IC1
- ICOLOR(2,NHEP) = IC2
- ENDIF
-
- IPOS = NHEP
- IF(IDEB(76).GE.26) THEN
- WRITE(LO,'(1X,A,2I4,2X,2I4,E12.3,I5)')
- & 'PHO_REGPAR: IPHIST1/2,IC1/2,MASS,IPOS',IPHIST(1,NHEP),
- & IPHIST(2,NHEP),ICOLOR(1,NHEP),ICOLOR(2,NHEP),
- & PHEP(5,NHEP),IPOS
- ENDIF
-
- ELSE IF(IMODE.EQ.0) THEN
- NHEP = 0
- ELSE IF(IMODE.EQ.2) THEN
- IF((IPOS.LT.1).OR.(IPOS.GT.NHEP)) THEN
- WRITE(LO,'(1X,2A,2I8)') 'PHO_REGPAR: ',
- & 'index out of bounds (NHEP,IPOS)',NHEP,IPOS
- RETURN
- ENDIF
- ISTH = ISTHEP(IPOS)
- IDPDG = IDHEP(IPOS)
- IDBAM = IMPART(IPOS)
- JM1 = JMOHEP(1,IPOS)
- JM2 = JMOHEP(2,IPOS)
- P1 = PHEP(1,IPOS)
- P2 = PHEP(2,IPOS)
- P3 = PHEP(3,IPOS)
- P4 = PHEP(4,IPOS)
- IPHIS1= IPHIST(1,IPOS)
- IPHIS2= IPHIST(2,IPOS)
- IC1 = ICOLOR(1,IPOS)
- IC2 = ICOLOR(2,IPOS)
- ELSE
- WRITE(LO,'(1X,A,I8)') 'PHO_REGPAR: invalid mode',IMODE
- ENDIF
- END
-
-CDECK ID>, IPHO_CNV1
- INTEGER FUNCTION IPHO_CNV1(IPART)
-C*********************************************************************
-C
-C conversion of quark numbering scheme to PARTICLE DATA GROUP
-C convention
-C
-C input: old internal particle code of hard scattering
-C 0 gluon
-C 1 d
-C 2 u
-C 3 s
-C 4 c
-C valence quarks changed to standard numbering
-C
-C output: standard particle codes
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-C
- II = ABS(IPART)
-C change gluon number
- IF(II.EQ.0) THEN
- IPHO_CNV1 = 21
-C change valence quark
- ELSE IF((II.GT.6).AND.(II.LT.13)) THEN
- IPHO_CNV1 = SIGN(II-6,IPART)
- ELSE
- IPHO_CNV1 = IPART
- ENDIF
- END
-
-CDECK ID>, PHO_HACODE
- SUBROUTINE PHO_HACODE(ID1,ID2,IDcpc1,IDcpc2)
-C*********************************************************************
-C
-C determination of hadron index from quarks
-C
-C input: ID1,ID2 parton code according to PDG conventions
-C
-C output: IDcpc1,2 CPC particle codes
-C
-C*********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- integer ID1,ID2,IDcpc1,IDcpc2
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-
-C local variables
- integer ii,jj,kk,i1,i2
-
- IDcpc1 = 0
- IDcpc2 = 0
-
- if(ID1*ID2.lt.0) then
-C meson
- if(ID1.gt.0) then
- ii = ID1
- jj = -ID2
- else
- ii = ID2
- jj = -ID1
- endif
- IDcpc1 = ID_psm_list(ii,jj)
- IDcpc2 = ID_vem_list(ii,jj)
-
- else
-C baryon
- i1 = abs(ID1)
- i2 = abs(ID2)
- if(i1.gt.6) then
- ii = i1/1000
- jj = (i1-ii*1000)/100
- kk = i2
- else
- ii = i1
- jj = i2/1000
- kk = (i2-jj*1000)/100
- endif
- IDcpc1 = sign(ID_b8_list(ii,jj,kk),ID1)
- IDcpc2 = sign(ID_b10_list(ii,jj,kk),ID1)
-
- endif
-
- END
-
-CDECK ID>, PHO_ID2STR
- SUBROUTINE PHO_ID2STR(ID1,ID2,NOBAM,IBAM1,IBAM2,IBAM3,IBAM4)
-C*********************************************************************
-C
-C conversion of quark numbering scheme
-C
-C input: standard particle codes:
-C ID1
-C ID2
-C
-C output: NOBAM CPC string code
-C quark codes (PDG convention):
-C IBAM1
-C IBAM2
-C IBAM3
-C IBAM4
-C
-C NOBAM = -1 invalid flavour combinations
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- IDA1 = ABS(ID1)
- IDA2 = ABS(ID2)
-
-C quark-antiquark string
- IF((IDA1.LE.6).AND.(IDA2.LE.6)) THEN
- IF((ID1*ID2).GE.0) GOTO 100
- IBAM1 = ID1
- IBAM2 = ID2
- IBAM3 = 0
- IBAM4 = 0
- NOBAM = 3
-C quark-diquark string
- ELSE IF((IDA2.GT.6).AND.(IDA1.LE.6)) THEN
- IF((ID1*ID2).LE.0) GOTO 100
- IBAM1 = ID1
- IBAM2 = ID2/1000
- IBAM3 = (ID2-IBAM2*1000)/100
- IBAM4 = 0
- NOBAM = 4
-C diquark-quark string
- ELSE IF((IDA1.GT.6).AND.(IDA2.LE.6)) THEN
- IF((ID1*ID2).LE.0) GOTO 100
- IBAM1 = ID1/1000
- IBAM2 = (ID1-IBAM1*1000)/100
- IBAM3 = ID2
- IBAM4 = 0
- NOBAM = 6
-C gluon-gluon string
- ELSE IF((IDA1.EQ.21).AND.(IDA2.EQ.21)) THEN
- IBAM1 = 21
- IBAM2 = 21
- IBAM3 = 0
- IBAM4 = 0
- NOBAM = 7
-C diquark-antidiquark string
- ELSE IF((IDA1.GT.6).AND.(IDA2.GT.6)) THEN
- IF((ID1*ID2).GE.0) GOTO 100
- IBAM1 = ID1/1000
- IBAM2 = (ID1-IBAM1*1000)/100
- IBAM3 = ID2/1000
- IBAM4 = (ID2-IBAM3*1000)/100
- NOBAM = 5
- ENDIF
- RETURN
-
-C invalid combination
- 100 CONTINUE
- WRITE(LO,'(//1X,A,2I10)')
- & 'PHO_ID2STR: invalid flavors for string (ID1,ID2)',ID1,ID2
- CALL PHO_ABORT
-
- END
-
-CDECK ID>, PHO_MKSLTR
- SUBROUTINE PHO_MKSLTR(P1,P2,GAM,GAMB)
-C********************************************************************
-C
-C calculate successive Lorentz boots for arbitrary Lorentz trans.
-C
-C input: P1 initial 4 vector
-C GAM(3),GAMB(3) Lorentz boost parameters
-C
-C output: P2 final 4 vector
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- DIMENSION P1(4),P2(4),GAM(3),GAMB(3)
-
- P2(4) = P1(4)
- DO 150 I=1,3
- P2(I)=GAM(I)*P1(I)+GAMB(I)*P2(4)
- P2(4)=GAM(I)*P2(4)+GAMB(I)*P1(I)
- 150 CONTINUE
- END
-
-CDECK ID>, PHO_GETLTR
- SUBROUTINE PHO_GETLTR(P1,P2,GAM,GAMB,DELE,IREJ)
-C********************************************************************
-C
-C calculate Lorentz boots for arbitrary Lorentz transformation
-C
-C input: P1 initial 4 vector
-C P2 final 4 vector
-C
-C output: GAM(3),GAMB(3)
-C DELE energy deviation
-C IREJ 0 success
-C 1 failure
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DREL = 0.001D0 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- DIMENSION P1(4),P2(4),GAM(3),GAMB(3),PA(4),PP(4)
-
- IREJ = 1
- DO 50 K=1,4
- PA(K) = P1(K)
- PP(K) = P1(K)
- 50 CONTINUE
- PM1 = P1(4)**2-P1(1)**2-P1(2)**2-P1(3)**2
- DO 100 I=1,3
- PP(I) = P2(I)
- PP(4) = PM1+PP(1)**2+PP(2)**2+PP(3)**2
- IF(PP(4).LE.0.D0) RETURN
- PP(4) = SQRT(PP(4))
- GAMB(I) = (SQRT(PA(4)**2-PA(I)**2+PP(I)**2)*PP(I)
- & -PA(4)*PA(I))/(PA(4)**2+PP(I)**2)
- GAM(I) = 1.D0/SQRT(1.D0-GAMB(I)**2)
- GAMB(I) = GAMB(I)*GAM(I)
- DO 150 K=1,4
- PA(K) = PP(K)
- 150 CONTINUE
- 100 CONTINUE
- DELE = P2(4)-PP(4)
- IREJ = 0
-C consistency check
-* IF(ABS(P2(4)-PP(4))/MAX(P2(4),PP(4)).GT.DREL) THEN
-* PM2 = P2(4)**2-P2(1)**2-P2(2)**2-P2(3)**2
-* WRITE(LO,'(/1X,A,2E12.5)')
-* & 'PHO_GETLTR: INCONSISTENT ENERGIES',P2(4),PP(4)
-* WRITE(LO,'(1X,A,2E12.4)') 'INPUT MASSES',PM1,PM2
-* WRITE(LO,'(1X,A,4E12.4)') 'INPUT ',P1
-* WRITE(LO,'(1X,A,4E12.4)') 'OUTPUT',P2
-* WRITE(LO,'(1X,A,4E12.4)') 'INTERN',PP
-* ENDIF
- END
-
-CDECK ID>, PHO_ALTRA
- SUBROUTINE PHO_ALTRA(GA,BGX,BGY,BGZ,PCX,PCY,PCZ,EC,P,PX,PY,PZ,E)
-C*********************************************************************
-C
-C arbitrary Lorentz transformation
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- EP=PCX*BGX+PCY*BGY+PCZ*BGZ
- PE=EP/(GA+1.D0)+EC
- PX=PCX+BGX*PE
- PY=PCY+BGY*PE
- PZ=PCZ+BGZ*PE
- P=SQRT(PX*PX+PY*PY+PZ*PZ)
- E=GA*EC+EP
-
- END
-
-CDECK ID>, PHO_LTRANS
- SUBROUTINE PHO_LTRANS(GAM,BGAM,CX,CY,CZ,COD,COF,SIF,P,ECM,
- & PL,CXL,CYL,CZL,EL)
-C**********************************************************************
-C
-C Lorentz transformation into lab - system
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( TINY=1.D-08,TINY2=1.D-30 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- SID=SQRT(1.D0-COD*COD)
- PLX=P*SID*COF
- PLY=P*SID*SIF
- PCMZ=P*COD
- PLZ=GAM*PCMZ+BGAM*ECM
- PL=SQRT(PLX*PLX+PLY*PLY+PLZ*PLZ)
- EL=GAM*ECM+BGAM*PCMZ
-
-C rotation into the original direction
- COZ=PLZ/PL
- SIZ=SQRT(MAX((1.D0-COZ)*(1.D0+COZ),0.D0))
-
-* CALL PHO_DTRANS(CX,CY,CZ,COZ,SIZ,COF,SIF,CXL,CYL,CZL)
-
- AX=ABS(CX)
- AY=ABS(CY)
- IF(AX.LT.AY) THEN
- AMAX=AY
- AMIN=AX
- ELSE
- AMAX=AX
- AMIN=AY
- ENDIF
- IF (ABS(CX)-TINY) 1,1,2
- 1 IF (ABS(CY)-TINY) 3,3,2
-
- 3 CONTINUE
-* WRITE(LO,*)' PHO_DTRANS CX CY CZ =',CX,CY,CZ
- CXL=SIZ*COF
- CYL=SIZ*SIF
- CZL=COZ*CZ
-* WRITE(LO,*)' PHO_DTRANS CXL=SIZ*COF CYL=SIZ*SIF CZL=COZ'
-* WRITE(LO,*) CXL,CYL,CZL
- RETURN
-
- 2 CONTINUE
- IF(AMAX.GT.TINY2) THEN
- AR=AMIN/AMAX
- AR=AR*AR
- A=AMAX*SQRT(1.D0+AR)
- ELSE
-* WRITE(LO,*)' PHO_DTRANS AMAX LE TINY2 '
- GOTO 3
- ENDIF
- XI=SIZ*COF
- YI=SIZ*SIF
- ZI=COZ
- CXL=-CY*XI/A-CZ*CX*YI/A+CX*ZI
- CYL=CX*XI/A-CZ*CY*YI/A+CY*ZI
- CZL=A*YI+CZ*ZI
-
- END
-
-CDECK ID>, PHO_TRANS
- SUBROUTINE PHO_TRANS(XO,YO,ZO,CDE,SDE,CFE,SFE,X,Y,Z)
-C**********************************************************************
-C
-C rotation of coordinate frame (1) de rotation around y axis
-C (2) fe rotation around z axis
-C (inverse rotation to PHO_TRANI)
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- X= CDE*CFE*XO-SFE*YO+SDE*CFE*ZO
- Y= CDE*SFE*XO+CFE*YO+SDE*SFE*ZO
- Z=-SDE *XO +CDE *ZO
-
- END
-
-CDECK ID>, PHO_TRANI
- SUBROUTINE PHO_TRANI(XO,YO,ZO,CDE,SDE,CFE,SFE,X,Y,Z)
-C**********************************************************************
-C
-C rotation of coordinate frame (1) -fe rotation around z axis
-C (2) -de rotation around y axis
-C (inverse rotation to PHO_TRANS)
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- X= CDE*CFE*XO+CDE*SFE*YO-SDE*ZO
- Y=-SFE *XO+CFE* YO
- Z= SDE*CFE*XO+SDE*SFE*YO+CDE*ZO
-
- END
-
-CDECK ID>, pho_cpcini
- SUBROUTINE pho_cpcini(Nrows,Number,List)
-C***********************************************************************
-C
-C initialization of particle hash table
-C
-C input: Number vector with Nrows entries according to PDG
-C convention
-C
-C output: List vector with hash table
-C
-C (this code is based on the function initpns written by
-C Gerry Lynch, LBL, January 1990)
-C
-C***********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- integer Number(*),List(*),Nrows
-
- Integer Nin,Nout,Ip,I
-
- do I = 1,577
- List(I) = 0
- enddo
-
-C Loop over all of the elements in the Number vector
-
- Do 500 Ip = 1,Nrows
- Nin = Number(Ip)
-
-C Calculate a list number for this particle id number
- If(Nin.Gt.99999.or.Nin.Le.0) Then
- Nout = -1
- Else If(Nin.Le.577) Then
- Nout = Nin
- Else
- Nout = Mod(Nin,577)
- End If
-
- 200 continue
-
- If(Nout.Lt.0) Then
-C Count the bad entries
- WRITE(LO,'(1x,a,i10)')
- & 'pho_cpcini: invalid particle ID',Nin
- Go to 500
- End If
- If(List(Nout).eq.0) Then
- List(Nout) = Ip
- Else
- If(Nin.eq.Number(List(Nout))) Then
- WRITE(LO,'(1x,a,i10)')
- & 'pho_cpcini: double particle ID',Nin
- End If
- Nout = Nout + 5
- If(Nout.Gt.577) Nout = Mod(Nout, 577)
-
- Go to 200
- End If
- 500 Continue
-
- END
-
-CDECK ID>, ipho_pdg2id
- INTEGER FUNCTION ipho_pdg2id(IDpdg)
-C**********************************************************************
-C
-C calculation internal particle code using the particle index i
-C according to the PDG proposal.
-C
-C input: IDpdg PDG particle number
-C output: ipho_pdg2id internal particle code
-C (0 for invalid IDpdg)
-C
-C the hash algorithm is based on a program by Gerry Lynch
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- integer IDpdg
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C particle ID translation table
- integer ID_pdg_list,ID_list,ID_pdg_max
- character*12 name_list
- COMMON /POPAR1/ ID_pdg_list(300),ID_list(577),name_list(300),
- & ID_pdg_max
-
- integer Nin,Nout
- Nin = abs(IDpdg)
-
- if((Nin.gt.99999).or.(Nin.eq.0)) then
-C invalid particle number
- if(ideb(71).gt.5) WRITE(LO,'(1x,A,I10)')
- & 'ipho_pdg2id: invalid PDG ID number ',IDpdg
- ipho_pdg2id = 0
- return
- else If(Nin.le.577) then
-C simple case
- Nout = Nin
- else
-C use hash algorithm
- Nout = mod(Nin,577)
- endif
-
- 100 continue
-
-C particle not in table
- if(ID_list(Nout).Eq.0) then
- if(ideb(71).ge.0) WRITE(LO,'(1x,A,I10)')
- & 'ipho_pdg2id: particle not in table ',IDpdg
- ipho_pdg2id = 0
- return
- endif
-
- if(ID_pdg_list(ID_list(Nout)).eq.Nin) then
-C particle ID found
- ipho_pdg2id = sign(ID_list(Nout),IDpdg)
- return
- else
-C increment and try again
- Nout = Nout + 5
- If(Nout.gt.577) Nout = Mod(Nout,577)
- goto 100
- endif
-
- END
-
-CDECK ID>, IPHO_ID2PDG
- INTEGER FUNCTION ipho_id2pdg(IDcpc)
-C**********************************************************************
-C
-C conversion of internal particle code to PDG standard
-C
-C input: IDcpc internal particle number
-C output: ipho_id2pdg PDG particle number
-C (0 for invalid IDcpc)
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- integer IDcpc
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C particle ID translation table
- integer ID_pdg_list,ID_list,ID_pdg_max
- character*12 name_list
- COMMON /POPAR1/ ID_pdg_list(300),ID_list(577),name_list(300),
- & ID_pdg_max
-
- integer IDabs
-
- IDabs = abs(IDcpc)
- if((IDabs.lt.1).or.(IDabs.gt.ID_pdg_max)) then
- ipho_id2pdg = 0
- return
- endif
-
- ipho_id2pdg = sign(ID_pdg_list(IDabs),IDcpc)
-
- END
-
-CDECK ID>, IPHO_LU2PDG
- INTEGER FUNCTION IPHO_LU2PDG(LUKF)
-C**********************************************************************
-C
-C conversion of JETSET KF code to PDG code
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
- PARAMETER (NTAB=10)
- DIMENSION LU2PD(2,NTAB)
- DATA LU2PD / 4232, 4322,
- & 4322, 4232,
- & 3212, 3122,
- & 3122, 3212,
- & 30553, 20553,
- & 30443, 20443,
- & 20443, 10443,
- & 10443, 0,
- & 511, 0,
- & 10551, 551 /
-C
- DO 100 I=1,NTAB
- IF(LU2PD(1,I).EQ.LUKF) THEN
- IPHO_LU2PDG=LU2PD(2,I)
- RETURN
- ENDIF
- 100 CONTINUE
- IPHO_LU2PDG=LUKF
-
- END
-
-CDECK ID>, IPHO_PDG2LU
- INTEGER FUNCTION IPHO_PDG2LU(IPDG)
-C**********************************************************************
-C
-C conversion of PDG code to JETSET code
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
- PARAMETER (NTAB=8)
- DIMENSION LU2PD(2,NTAB)
- DATA LU2PD / 4232, 4322,
- & 4322, 4232,
- & 3212, 3122,
- & 3122, 3212,
- & 30553, 20553,
- & 30443, 20443,
- & 20443, 10443,
- & 10551, 551 /
-C
- DO 100 I=1,NTAB
- IF(LU2PD(2,I).EQ.IPDG) THEN
- IPHO_PDG2LU=LU2PD(1,I)
- RETURN
- ENDIF
- 100 CONTINUE
- IPHO_PDG2LU=IPDG
-
- END
-
-CDECK ID>, pho_pname
- CHARACTER*15 FUNCTION pho_pname(ID,mode)
-C***********************************************************************
-C
-C returns particle name for given ID number
-C
-C input: ID particle ID number
-C mode 0: ID treated as compressed particle code
-C 1: ID treated as PDG number
-C
-C***********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- integer ID,mode
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C particle ID translation table
- integer ID_pdg_list,ID_list,ID_pdg_max
- character*12 name_list
- COMMON /POPAR1/ ID_pdg_list(300),ID_list(577),name_list(300),
- & ID_pdg_max
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-
-C external functions
- integer ipho_id2pdg,ipho_pdg2id
-
-C local variables
- integer IDpdg,i,ii,k,l,ichar,i_anti
- character*15 name
-
- pho_pname = '(?????????????)'
-
- if(mode.eq.0) then
- i = ID
- IDpdg = ipho_id2pdg(ID)
- if(IDpdg.eq.0) return
- else if(mode.eq.1) then
- i = ipho_pdg2id(ID)
- if(i.eq.0) return
- IDpdg = ID
- else if(mode.eq.2) then
- if(ISTHEP(ID).gt.11) then
- if(ISTHEP(ID).eq.20) then
- pho_pname = 'hard ini. part.'
- else if(ISTHEP(ID).eq.21) then
- pho_pname = 'hard fin. part.'
- else if(ISTHEP(ID).eq.25) then
- pho_pname = 'hard scattering'
- else if(ISTHEP(ID).eq.30) then
- pho_pname = 'diff. diss. '
- else if(ISTHEP(ID).eq.35) then
- pho_pname = 'elastic scatt. '
- else if(ISTHEP(ID).eq.40) then
- pho_pname = 'central scatt. '
- endif
- return
- endif
- IDpdg = IDHEP(ID)
- i = IMPART(ID)
- else
- WRITE(LO,'(1x,a,2i4)')
- & 'pho_pname: invalid arguments (ID,mode): ',ID,mode
- return
- endif
-
- ii = abs(i)
- if((ii.eq.0).or.(ii.gt.ID_pdg_max)) return
-
- name = name_list(ii)
- ichar = ich3_list(ii)*sign(1,i)
- if(mod(ichar,3).ne.0) then
- ichar = 0
- else
- ichar = ichar/3
- endif
-
-C find position of first blank character
- k = 1
- 100 continue
- k = k+1
- if(name(k:k).ne.' ') goto 100
-
-C append anti-particle sign
- if(i.lt.0) then
- i_anti = 0
- do l=1,3
- i_anti = i_anti+iq_list(l,ii)
- enddo
- if(iba3_list(ii).ne.0) then
- name(k:k) = '~'
- k = K+1
- else if(((i_anti.ne.0).and.(ichar.eq.0))
- & .or.(IDpdg.eq.-12)
- & .or.(IDpdg.eq.-14)
- & .or.(IDpdg.eq.-16)) then
- name(k:k) = '~'
- k = K+1
- endif
- endif
-
-C append charge sign
- if(ichar.eq.-2) then
- name(k:k+1) = '--'
- else if(ichar.eq.-1) then
- name(k:k) = '-'
- else if(ichar.eq.1) then
- name(k:k) = '+'
- else if(ichar.eq.2) then
- name(k:k+1) = '++'
- endif
-
- pho_pname = name
-
- END
-
-CDECK ID>, ipho_anti
- INTEGER FUNCTION ipho_anti(ID)
-C**********************************************************************
-C
-C determine antiparticle for given ID
-C
-C input: ID gives CPC particle number
-C
-C output: ipho_anti antiparticle code
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- integer ID
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C particle ID translation table
- integer ID_pdg_list,ID_list,ID_pdg_max
- character*12 name_list
- COMMON /POPAR1/ ID_pdg_list(300),ID_list(577),name_list(300),
- & ID_pdg_max
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C external functions
- integer ipho_id2pdg,ipho_pdg2id
-
-C local variables
- integer IDabs,IDpdg,i_anti,l
-
- ipho_anti = -ID
- IDabs = abs(ID)
-
-C baryons
- if(iba3_list(IDabs).ne.0) return
-
-C charged particles
- if(ich3_list(IDabs).ne.0) return
-
-C K0_s and K0_l
- IDpdg = ipho_id2pdg(ID)
- if(IDpdg.eq.310) then
- ID = ipho_pdg2id(130)
- return
- else if(IDpdg.eq.130) then
- ID = ipho_pdg2id(310)
- return
- endif
-
-C neutral mesons with open strangeness, charm, or beauty
- i_anti = 0
- do l=1,3
- i_anti = i_anti+iq_list(l,IDabs)
- enddo
- if(i_anti.ne.0) return
-
-C neutrinos
- IDpdg = abs(IDpdg)
- if((IDpdg.eq.12).or.(IDpdg.eq.14).or.(IDpdg.eq.16)) return
-
- ipho_anti = ID
-
- END
-
-CDECK ID>, ipho_chr3
- INTEGER FUNCTION ipho_chr3(ID,mode)
-C**********************************************************************
-C
-C output of three times the electric charge
-C
-C input: mode
-C 0 ID gives CPC particle number
-C 1 ID gives PDG particle number
-C 2 ID gives position of particle in /POEVT1/
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- integer ID,mode
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C particle ID translation table
- integer ID_pdg_list,ID_list,ID_pdg_max
- character*12 name_list
- COMMON /POPAR1/ ID_pdg_list(300),ID_list(577),name_list(300),
- & ID_pdg_max
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-
-C external functions
- integer ipho_pdg2id
-
-C local variables
- integer i,IDpdg
-
- ipho_chr3 = 0
-
- if(mode.eq.0) then
- i = ID
- else if(mode.eq.1) then
- i = ipho_pdg2id(ID)
- if(i.eq.0) return
- IDpdg = ID
- else if(mode.eq.2) then
- if(ISTHEP(ID).gt.11) return
- i = IMPART(ID)
- IDpdg = IDHEP(ID)
- IF((IDpdg.eq.90).or.(IDpdg.eq.91).or.(IDpdg.eq.92)) then
- ipho_chr3 = ICOLOR(1,ID)
- return
- endif
- else
- WRITE(LO,'(1x,a,2i4)')
- & 'ipho_chr3: invalid mode (ID,mode): ',ID,mode
- return
- endif
-
- if((i.eq.0).or.(iabs(i).gt.ID_pdg_max)) then
- WRITE(LO,'(1x,a,3i8)')
- & 'ipho_chr3: invalid arguments (ID,mode,i): ',ID,mode,i
- ipho_chr3 = 1.D0/dble(i)
- call pho_prevnt(0)
- return
- endif
-
- ipho_chr3 = ich3_list(iabs(i))*sign(1,i)
-
- END
-
-CDECK ID>, ipho_bar3
- INTEGER FUNCTION ipho_bar3(ID,mode)
-C**********************************************************************
-C
-C output of three times the baryon charge
-C
-C index: MODE
-C 0 ID gives CPC particle number
-C 1 ID gives PDG particle number
-C 2 ID gives position of particle in /POEVT1/
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- integer ID,mode
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C particle ID translation table
- integer ID_pdg_list,ID_list,ID_pdg_max
- character*12 name_list
- COMMON /POPAR1/ ID_pdg_list(300),ID_list(577),name_list(300),
- & ID_pdg_max
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-
-C external functions
- integer ipho_pdg2id
-
-C local variables
- integer i,IDpdg
-
- ipho_bar3 = 0
-
- if(mode.eq.0) then
- i = ID
- else if(mode.eq.1) then
- i = ipho_pdg2id(ID)
- if(i.eq.0) return
- IDpdg = ID
- else if(mode.eq.2) then
- if(ISTHEP(ID).gt.11) return
- i = IMPART(ID)
- IDpdg = IDHEP(ID)
- IF((IDpdg.eq.90).or.(IDpdg.eq.91).or.(IDpdg.eq.92)) then
- ipho_bar3 = ICOLOR(2,ID)
- return
- endif
- else
- WRITE(LO,'(1x,a,2i4)')
- & 'ipho_bar3: invalid mode (ID,mode): ',ID,mode
- return
- endif
-
- if((i.eq.0).or.(iabs(i).gt.ID_pdg_max)) then
- WRITE(LO,'(1x,a,3i8)')
- & 'ipho_bar3: invalid arguments (ID,mode,i): ',ID,mode,i
- ipho_bar3 = 1.D0/dble(i)
- return
- endif
-
- ipho_bar3 = iba3_list(iabs(i))*sign(1,i)
-
- END
-
-CDECK ID>, pho_pmass
- DOUBLE PRECISION FUNCTION pho_pmass(ID,mode)
-C***********************************************************************
-C
-C particle mass
-C
-C input: mode -1 initialization
-C 0 ID gives CPC particle number
-C 1 ID gives PDG particle number,
-C (for quarks current masses are returned)
-C 2 ID gives position of particle in /POEVT1/
-C 3 ID gives PDG parton number,
-C (for quarks constituent masses are returned)
-C
-C output: average particle mass (in GeV)
-C
-C***********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- integer ID,mode,MSTJ24
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C particle ID translation table
- integer ID_pdg_list,ID_list,ID_pdg_max
- character*12 name_list
- COMMON /POPAR1/ ID_pdg_list(300),ID_list(577),name_list(300),
- & ID_pdg_max
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-
- INTEGER MSTU,MSTJ
- DOUBLE PRECISION PARU,PARJ
- COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-
-C external functions
- integer ipho_pdg2id,ipho_id2pdg
-
- DOUBLE PRECISION PYMASS
-
-C local variables
- integer i,IDpdg
-
- pho_pmass = 0.D0
-
- if(mode.eq.0) then
- i = ID
- else if(mode.eq.1) then
- i = ipho_pdg2id(ID)
- if(i.eq.0) return
- else if(mode.eq.2) then
- if(ISTHEP(ID).gt.11) return
- i = IMPART(ID)
- IDpdg = IDHEP(ID)
- IF((IDpdg.eq.90).or.(IDpdg.eq.91).or.(IDpdg.eq.92)) then
- pho_pmass = PHEP(5,ID)
- return
- endif
- else if(mode.eq.3) then
- i = abs(ID)
- if((i.gt.0).and.(i.le.6)) then
- pho_pmass = PARMDL(150+i)
- return
- else
- i = ipho_pdg2id(ID)
- if(i.eq.0) return
- endif
- else if(mode.eq.-1) then
-C initialization: take masses for quarks and di-quarks from JETSET
- MSTJ24 = MSTJ(24)
- MSTJ(24) = 0
- do i=1,22
- IDpdg = ipho_id2pdg(i)
-
- xm_list(i) = PYMASS(IDpdg)
-
- enddo
- MSTJ(24) = MSTJ24
- return
- else
- WRITE(LO,'(1x,a,2i4)')
- & 'pho_pmass: invalid arguments (ID,mode): ',ID,mode
- return
- endif
-
- if((i.eq.0).or.(iabs(i).gt.ID_pdg_max)) then
- WRITE(LO,'(1x,a,2i8)')
- & 'pho_pmass: invalid arguments (ID,mode): ',ID,mode
- pho_pmass = 1.D0/dble(i)
- return
- endif
-
- pho_pmass = xm_list(iabs(i))
-
- END
-
-CDECK ID>, PHO_MEMASS
- SUBROUTINE PHO_MEMASS(I,J,AMPS,AMPS2,AMVE,AMVE2,IPS,IVE)
-C**********************************************************************
-C
-C determine meson masses corresponding to the input flavours
-C
-C input: I,J,K quark flavours (PDG convention)
-C
-C output: AMPS pseudo scalar meson mass
-C AMPS2 next possible two particle configuration
-C (two pseudo scalar mesons)
-C AMVE vector meson mass
-C AMVE2 next possible two particle configuration
-C (two vector mesons)
-C IPS,IVE meson numbers in CPC
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- integer I,J,IPS,IVE
- double precision AMPS,AMPS2,AMVE,AMVE2
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C particle ID translation table
- integer ID_pdg_list,ID_list,ID_pdg_max
- character*12 name_list
- COMMON /POPAR1/ ID_pdg_list(300),ID_list(577),name_list(300),
- & ID_pdg_max
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-
-C local variables
- integer ii,jj
-
- IF(I.GT.0) THEN
- ii = I
- jj = -J
- ELSE
- ii = J
- jj = -I
- ENDIF
-
-C particle ID's
- IPS = id_psm_list(ii,jj)
- IVE = id_vem_list(ii,jj)
-C masses
- if(IPS.ne.0) then
- AMPS = xm_list(iabs(IPS))
- else
- AMPS = 0.D0
- endif
- if(IVE.ne.0) then
- AMVE = xm_list(iabs(IVE))
- else
- AMVE = 0.D0
- endif
-
-C next possible two-particle configurations (add phase space)
- AMPS2 = xm_psm2_list(ii,jj)*1.5D0
- AMVE2 = xm_vem2_list(ii,jj)*1.1D0
-
- END
-
-CDECK ID>, PHO_BAMASS
- SUBROUTINE PHO_BAMASS(I,J,K,AM8,AM82,AM10,AM102,I8,I10)
-C**********************************************************************
-C
-C determine baryon masses corresponding to the input flavours
-C
-C input: I,J,K quark flavours (PDG convention)
-C
-C output: AM8 octett baryon mass
-C AM82 next possible two particle configuration
-C (octett baryon and meson)
-C AM10 decuplett baryon mass
-C AM102 next possible two particle configuration
-C (decuplett baryon and meson,
-C baryon built up from first two quarks)
-C I8,I10 internal baryon numbers
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- integer I,J,K,I8,I10
- double precision AM8,AM82,AM10,AM102
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C particle ID translation table
- integer ID_pdg_list,ID_list,ID_pdg_max
- character*12 name_list
- COMMON /POPAR1/ ID_pdg_list(300),ID_list(577),name_list(300),
- & ID_pdg_max
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-
-C local variables
- integer ii,jj,kk
-
-C find particle ID's
- ii = iabs(I)
- jj = iabs(J)
- kk = iabs(K)
- I8 = id_b8_list(ii,jj,kk)
- I10 = id_b10_list(ii,jj,kk)
-
-C masses (if combination possible)
- if(I8.ne.0) then
- AM8 = xm_list(I8)
- I8 = sign(I8,i)
- else
- AM8 = 0.D0
- endif
- if(I10.ne.0) then
- AM10 = xm_list(I10)
- I10 = sign(I10,i)
- else
- AM10 = 0.D0
- endif
-
-C next possible two-particle configurations (add phase space)
- AM82 = xm_b82_list(ii,jj,kk)*1.5D0
- AM102 = xm_b102_list(ii,jj,kk)*1.1D0
-
- END
-
-CDECK ID>, PHO_DQMASS
- SUBROUTINE PHO_DQMASS(I,J,K,L,AM82,AM102)
-C**********************************************************************
-C
-C determine minimal masses corresponding to the input flavours
-C (diquark a-diquark string system)
-C
-C input: I,J,K,L quark flavours (PDG convention)
-C
-C output: AM82 mass of two octett baryons
-C AM102 mass of two decuplett baryons
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- integer I,J,K,L
- double precision AM82,AM102
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-
-C local variables
- integer ii,jj,kk,ll
-
- ii = iabs(i)
- kk = iabs(k)
- jj = iabs(j)
- ll = iabs(l)
-
- AM82 = xm_bb82_list(ii,jj,kk,ll)
- AM102 = xm_bb102_list(ii,jj,kk,ll)
-
- END
-
-CDECK ID>, PHO_CHECK
- SUBROUTINE PHO_CHECK(MD,IDEV)
-C**********************************************************************
-C
-C check quantum numbers of entries in /POEVT1/ and /POEVT2/
-C (energy, momentum, charge, baryon number conservation)
-C
-C input: MD -1 check overall momentum conservation
-C and perform detailed check only in case of
-C deviations
-C 1 test all branchings, mother-daughter
-C relations
-C
-C output: IDEV 0 no deviations
-C 1 deviations found
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C color string configurations including collapsed strings and hadrons
- INTEGER MSTR
- PARAMETER (MSTR=500)
- INTEGER NPOS,NCODE,IPAR1,IPAR2,IPAR3,IPAR4,NNCH,IBHAD
- COMMON /POSTRG/ NPOS(4,MSTR),NCODE(MSTR),
- & IPAR1(MSTR),IPAR2(MSTR),IPAR3(MSTR),IPAR4(MSTR),
- & NNCH(MSTR),IBHAD(MSTR),ISTR
-
-C count number of errors to avoid disk overflow
- DATA IERR / 0 /
-
- IDEV = 0
-C conservation check suppressed
- IF((IPAMDL(15).EQ.0).OR.(IDEB(20).LE.-10)) RETURN
-
- IF(IPAMDL(13).GT.0) THEN
-
-C DPMJET call with x limitations
- MODE = -1
- ECM1 = SQRT(XPSUB*XTSUB)*ECM
-
- ELSE
-
-C standard call
- MODE = MD
-C first two entries are considered as scattering particles
- EE1 = PHEP(4,1) + PHEP(4,2)
- PX1 = PHEP(1,1) + PHEP(1,2)
- PY1 = PHEP(2,1) + PHEP(2,2)
- PZ1 = PHEP(3,1) + PHEP(3,2)
-
- ENDIF
-
- DDREL = PARMDL(75)
- DDABS = PARMDL(76)
- IF(MODE.EQ.-1) GOTO 500
-
- 50 CONTINUE
-
- I = 1
- 100 CONTINUE
-
-C recognize only decayed particles as mothers
- IF(ISTHEP(I).EQ.2) THEN
-C search for other mother particles
- K = JDAHEP(1,I)
- IF(K.EQ.0) THEN
- IF(IPAMDL(178).NE.0)
- & WRITE(LO,'(1X,2A,I4)') 'PHO_CHECK: ',
- & 'entry marked as decayed but no dauther given:',I
- GOTO 99
- ENDIF
- K1 = JMOHEP(1,K)
- K2 = JMOHEP(2,K)
-C sum over mother particles
- ICH1 = IPHO_CHR3(K1,2)
- IBA1 = IPHO_BAR3(K1,2)
- EE1 = PHEP(4,K1)
- PX1 = PHEP(1,K1)
- PY1 = PHEP(2,K1)
- PZ1 = PHEP(3,K1)
- IF(K2.LT.0) THEN
- K2 = -K2
- IF((K1.GT.I).OR.(K2.LT.I)) THEN
- WRITE(LO,'(/,1X,2A,3I4)') 'PHO_CHECK: ',
- & 'inconsistent mother/daughter relation found',I,K1,K2
- CALL PHO_PREVNT(-1)
- ENDIF
- DO 400 II=K1+1,K2
- IF(ABS(ISTHEP(II)).LE.2) THEN
- ICH1 = ICH1 + IPHO_CHR3(II,2)
- IBA1 = IBA1 + IPHO_BAR3(II,2)
- EE1 = EE1 + PHEP(4,II)
- PX1 = PX1 + PHEP(1,II)
- PY1 = PY1 + PHEP(2,II)
- PZ1 = PZ1 + PHEP(3,II)
- ENDIF
- 400 CONTINUE
- ELSE IF((K2.GT.0).AND.(K2.NE.K1)) THEN
- ICH1 = ICH1 + IPHO_CHR3(K2,2)
- IBA1 = IBA1 + IPHO_BAR3(K2,2)
- EE1 = EE1 + PHEP(4,K2)
- PX1 = PX1 + PHEP(1,K2)
- PY1 = PY1 + PHEP(2,K2)
- PZ1 = PZ1 + PHEP(3,K2)
- ENDIF
-
-C sum over daughter particles
- ICH2 = 0.D0
- IBA2 = 0.D0
- EE2 = 0.D0
- PX2 = 0.D0
- PY2 = 0.D0
- PZ2 = 0.D0
- DO 200 II=JDAHEP(1,I),JDAHEP(2,I)
- IF(ABS(ISTHEP(II)).LE.2) THEN
- ICH2 = ICH2 + IPHO_CHR3(II,2)
- IBA2 = IBA2 + IPHO_BAR3(II,2)
- EE2 = EE2 + PHEP(4,II)
- PX2 = PX2 + PHEP(1,II)
- PY2 = PY2 + PHEP(2,II)
- PZ2 = PZ2 + PHEP(3,II)
- ENDIF
- 200 CONTINUE
-
-C conservation check
- ESC = MAX(MAX(EE1,EE2)*DDREL,DDABS)
- IF(ABS(EE1-EE2).GT.ESC) THEN
- WRITE(LO,'(1X,A,/,5X,A,I3,2X,1P,2E10.3)')
- & 'PHO_CHECK: energy conservation violated for',
- & 'entry,initial,final:',I,EE1,EE2
- IDEV = 1
- ENDIF
- ESC = MAX(MAX(ABS(PX1),ABS(PX2))*DDREL,DDABS)
- IF(ABS(PX1-PX2).GT.ESC) THEN
- WRITE(LO,'(1X,A,/,5X,A,I3,2X,1P,2E12.3)')
- & 'PHO_CHECK: x-momentum conservation violated for',
- & 'entry,initial,final:',I,PX1,PX2
- IDEV = 1
- ENDIF
- ESC = MAX(MAX(ABS(PY1),ABS(PY2))*DDREL,DDABS)
- IF(ABS(PY1-PY2).GT.ESC) THEN
- WRITE(LO,'(1X,A,/,5X,A,I3,2X,1P,2E12.3)')
- & 'PHO_CHECK: y-momentum conservation violated for',
- & 'entry,initial,final:',I,PY1,PY2
- IDEV = 1
- ENDIF
- ESC = MAX(MAX(ABS(PZ1),ABS(PZ2))*DDREL,DDABS)
- IF(ABS(PZ1-PZ2).GT.ESC) THEN
- WRITE(LO,'(1X,A,/,5X,A,I3,2X,1P,2E12.3)')
- & 'PHO_CHECK: z-momentum conservation violated for',
- & 'entry,initial,final:',I,PZ1,PZ2
- IDEV = 1
- ENDIF
- IF(ICH1.NE.ICH2) THEN
- WRITE(LO,'(1X,A,/,5X,A,I3,2X,2I5)')
- & 'PHO_CHECK: charge conservation violated for',
- & 'entry,initial,final:',I,ICH1,ICH2
- IDEV = 1
- ENDIF
- IF(IBA1.NE.IBA2) THEN
- WRITE(LO,'(1X,2A,/,5X,A,I3,2X,2I5)') 'PHO_CHECK: ',
- & 'baryon charge conservation violated for',
- & 'entry,initial,final:',I,IBA1,IBA2
- IDEV = 1
- ENDIF
- IF(IDEB(20).GE.35) THEN
- WRITE(LO,
- & '(/,1X,A,A,2(2X,I4,A,I4),2(/,5X,A,4E13.4),/5X,A,4I5)')
- & 'PHO_CHECK diagnostics:',
- & '(1.mother/l.mother,1.daughter/l.daughter):',
- & K1,'/',K2,JDAHEP(1,I),'/',JDAHEP(2,I),
- & 'mother momenta ',PX1,PY1,PZ1,EE1,
- & 'daughter momenta ',PX2,PY2,PZ2,EE2,
- & 'charge,baryon no ',ICH1,ICH2,IBA1,IBA2
- ENDIF
- ENDIF
- 99 CONTINUE
- I = I+1
- IF(I.LE.NHEP) GOTO 100
-
- 55 CONTINUE
-
- IERR = IERR+IDEV
-
-C write complete event in case of deviations
- IF((IDEB(20).GE.0).AND.(IDEV.NE.0)) THEN
- CALL PHO_PREVNT(1)
- IF(ISTR.GT.0) THEN
- CALL PHO_PRSTRG
-
- IF(ISWMDL(6).GE.0) CALL PYLIST(1)
-
- ENDIF
- ENDIF
-
-C stop after too many errors
- IF(IERR.GT.IPAMDL(179)) THEN
- WRITE(LO,'(////1X,2A,I6,////)') 'PHO_CHECK:ERROR:',
- & 'too many inconsistencies found, program terminated',IERR
- CALL PHO_ABORT
- ENDIF
-
- RETURN
-
-C overall check only (less time consuming)
-
- 500 CONTINUE
-
- ICH2 = 0.D0
- IBA2 = 0.D0
- EE2 = 0.D0
- PX2 = 0.D0
- PY2 = 0.D0
- PZ2 = 0.D0
-
- DO 300 K=3,NHEP
-C recognize only existing particles as possible daughters
- IF(ABS(ISTHEP(K)).EQ.1) THEN
- ICH2 = ICH2 + IPHO_CHR3(K,2)
- IBA2 = IBA2 + IPHO_BAR3(K,2)
- EE2 = EE2 + PHEP(4,K)
- PX2 = PX2 + PHEP(1,K)
- PY2 = PY2 + PHEP(2,K)
- PZ2 = PZ2 + PHEP(3,K)
- ENDIF
- 300 CONTINUE
-
-C check energy-momentum conservation
- ESC = ECM*DDREL
-
- IF(IPAMDL(13).GT.0) THEN
-
-C DPMJET call with x limitations
- ECM2 = SQRT((EE2-PZ2)*(EE2+PZ2)-PX2**2-PY2**2)
- IF(ABS(ECM1-ECM2).GT.ESC) THEN
- WRITE(LO,'(1X,A,/,5X,A,1P,2E12.4)')
- & 'PHO_CHECK: c.m. energy conservation violated',
- & 'initial/final energy:',ECM1,ECM2
- IDEV = 1
- ENDIF
-
- ELSE
-
-C standard call
- IF(ABS(EE1-EE2).GT.ESC) THEN
- WRITE(LO,'(1X,A,/,5X,A,1P,2E12.4)')
- & 'PHO_CHECK: energy conservation violated',
- & 'initial/final energy:',EE1,EE2
- IDEV = 1
- ENDIF
- IF(ABS(PX1-PX2).GT.ESC) THEN
- WRITE(LO,'(1X,A,/,5X,A,1P,2E12.4)')
- & 'PHO_CHECK: x-momentum conservation violated',
- & 'initial/final x-momentum:',PX1,PX2
- IDEV = 1
- ENDIF
- IF(ABS(PY1-PY2).GT.ESC) THEN
- WRITE(LO,'(1X,A,/,5X,A,1P,2E12.4)')
- & 'PHO_CHECK: y-momentum conservation violated',
- & 'initial/final y-momentum:',PY1,PY2
- IDEV = 1
- ENDIF
- IF(ABS(PZ1-PZ2).GT.ESC) THEN
- WRITE(LO,'(1X,A,/,5X,A,1P,2E12.4)')
- & 'PHO_CHECK: z-momentum conservation violated',
- & 'initial/final z-momentum:',PZ1,PZ2
- IDEV = 1
- ENDIF
-
-C check of quantum number conservation
-
- ICH1 = IPHO_CHR3(1,2) + IPHO_CHR3(2,2)
- IBA1 = IPHO_BAR3(1,2) + IPHO_BAR3(2,2)
-
- IF(ICH1.NE.ICH2) THEN
- WRITE(LO,'(1X,A,/,5X,A,2I5)')
- & 'PHO_CHECK: charge conservation violated',
- & 'initial/final charge sum',ICH1,ICH2
- IDEV = 1
- ENDIF
- IF(IBA1.NE.IBA2) THEN
- WRITE(LO,'(1X,2A,/,5X,A,2I5)') 'PHO_CHECK: ',
- & 'baryonic charge conservation violated',
- & 'initial/final baryonic charge sum',IBA1,IBA2
- IDEV = 1
- ENDIF
-
- ENDIF
-
-C perform detailed checks in case of deviations
- IF((IDEB(20).GE.0).AND.(IDEV.NE.0)) THEN
- IF(IPAMDL(13).GT.0) THEN
- GOTO 55
- ELSE
- DDREL = DDREL/2.D0
- DDABS = DDABS/2.D0
- WRITE(LO,'(/1X,2A,2E12.4)') 'PHO_CHECK: ',
- & 'increasing precision of tests to',DDREL,DDABS
- GOTO 50
- ENDIF
- ENDIF
-
- END
-
-CDECK ID>, PHO_ABORT
- SUBROUTINE PHO_ABORT
-C**********************************************************************
-C
-C top MC event generation due to fatal error,
-C print all information of event generation and history
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C color string configurations including collapsed strings and hadrons
- INTEGER MSTR
- PARAMETER (MSTR=500)
- INTEGER NPOS,NCODE,IPAR1,IPAR2,IPAR3,IPAR4,NNCH,IBHAD
- COMMON /POSTRG/ NPOS(4,MSTR),NCODE(MSTR),
- & IPAR1(MSTR),IPAR2(MSTR),IPAR3(MSTR),IPAR4(MSTR),
- & NNCH(MSTR),IBHAD(MSTR),ISTR
-C light-cone x fractions and c.m. momenta of soft cut string ends
- INTEGER MAXSOF
- PARAMETER ( MAXSOF = 50 )
- INTEGER IJSI2,IJSI1
- DOUBLE PRECISION XS1,XS2,PSOFT1,PSOFT2
- COMMON /POSOFT/ XS1(MAXSOF),XS2(MAXSOF),
- & PSOFT1(4,MAXSOF),PSOFT2(4,MAXSOF),
- & IJSI1(MAXSOF),IJSI2(MAXSOF)
-C hard scattering data
- INTEGER MSCAHD
- PARAMETER ( MSCAHD = 50 )
- INTEGER LSCAHD,LSC1HD,LSIDX,
- & NINHD,N0INHD,NIVAL,N0IVAL,NOUTHD,NBRAHD,NPROHD
- DOUBLE PRECISION PPH,PTHD,ETAHD,Q2SCA,PDFVA,XHD,VHD,X0HD
- COMMON /POHSLT/ LSCAHD,LSC1HD,LSIDX(MSCAHD),
- & PPH(8*MSCAHD,2),PTHD(MSCAHD),ETAHD(MSCAHD,2),
- & Q2SCA(MSCAHD,2),PDFVA(MSCAHD,2),
- & XHD(MSCAHD,2),VHD(MSCAHD),X0HD(MSCAHD,2),
- & NINHD(MSCAHD,2),N0INHD(MSCAHD,2),
- & NIVAL(MSCAHD,2),N0IVAL(MSCAHD,2),
- & NOUTHD(MSCAHD,2),NBRAHD(MSCAHD,2),NPROHD(MSCAHD)
-
- WRITE(LO,'(//,1X,A,/,1X,A)')
- & 'PHO_ABORT: program execution stopped',
- & '===================================='
- WRITE(LO,'(/,1X,A,/,1X,A)') 'listing of available data follows:'
-C
- CALL PHO_SETMDL(0,0,-2)
- CALL PHO_PREVNT(-1)
- CALL PHO_ACTPDF(0,-2)
-C print selected parton flavours
- WRITE(LO,'(1X,A,I4)') 'selected soft flavours: ',KSOFT
- DO 700 I=1,KSOFT
- WRITE(LO,'(10X,2I5)') IJSI1(I),IJSI2(I)
- 700 CONTINUE
- WRITE(LO,'(1X,A,I4)') 'selected hard flavours: ',KHARD
- DO 750 K=1,KHARD
- I = LSIDX(K)
- WRITE(LO,'(10X,A,I5)') 'process:',NPROHD(I)
- WRITE(LO,'(10X,A,2I4,7X,A,2I4)') 'initial:',NINHD(I,1),
- & NINHD(I,2),'final:',NOUTHD(I,1),NOUTHD(I,2)
- 750 CONTINUE
-C print selected parton momenta
- WRITE(LO,'(1X,A,I4)') 'selected soft momenta: ',KSOFT
- DO 300 I=1,KSOFT
- WRITE(LO,'(10X,A,4E12.3)') 'par.1',(PSOFT1(II,I),II=1,4)
- WRITE(LO,'(10X,A,4E12.3)') 'par.2',(PSOFT2(II,I),II=1,4)
- 300 CONTINUE
- WRITE(LO,'(1X,A,I4)') 'selected hard momenta: ',KHARD
- DO 350 K=1,KHARD
- I = LSIDX(K)
- I3 = 8*I-4
- WRITE(LO,'(10X,A,4E12.3)') 'par.1',(PPH(I3+II,1),II=1,4)
- WRITE(LO,'(10X,A,4E12.3)') 'par.2',(PPH(I3+II,2),II=1,4)
- 350 CONTINUE
-
-C print /POEVT1/
- CALL PHO_PREVNT(0)
-
-C fragmentation process
- IF(ISTR.GT.0) THEN
-C print /POSTRG/
- CALL PHO_PRSTRG
-
- IF(ISWMDL(6).GE.0) CALL PYLIST(1)
-
- ENDIF
-
-C last message
- WRITE(LO,'(////5X,A,///5X,A,///)')
- & 'PHO_ABORT: execution terminated due to fatal error',
- &'*** Simulating division by zero to get traceback information ***'
- ISTR = 100/IPAMDL(100)
-
- END
-
-CDECK ID>, PHO_TRACE
- SUBROUTINE PHO_TRACE(ISTART,ISWI,LEVEL)
-C**********************************************************************
-C
-C trace program subroutines according to level,
-C original output levels will be saved
-C
-C input: ISTART first event to trace
-C ISWI number of events to trace
-C 0 loop call, use old values
-C -1 restore original output levels
-C 1 store level and wait for event
-C LEVEL desired output level
-C 0 standard output
-C 3 internal rejections
-C 5 cross sections, slopes etc.
-C 10 parameter of subroutines and
-C results
-C 20 huge amount of debug output
-C 30 maximal possible output
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-
- DIMENSION IMEM(NMAXD)
-
-C protect ISWI
- ISW = ISWI
- 10 CONTINUE
- IF(ISW.EQ.0) THEN
- IF(KEVENT.LT.ION) THEN
- RETURN
- ELSE IF(KEVENT.EQ.ION) THEN
- WRITE(LO,'(///,1X,A,///)')
- & 'PHO_TRACE: trace mode switched on'
- DO 100 I=1,NMAXD
- IMEM(I) = IDEB(I)
- IDEB(I) = MAX(ILEVEL,IMEM(I))
- 100 CONTINUE
- ELSE IF(KEVENT.EQ.IOFF) THEN
- WRITE(LO,'(//,1X,A,///)')
- & 'PHO_TRACE: trace mode switched off'
- DO 200 I=1,NMAXD
- IDEB(I) = IMEM(I)
- 200 CONTINUE
- ENDIF
- ELSE IF(ISW.EQ.-1) THEN
- DO 300 I=1,NMAXD
- IDEB(I) = IMEM(I)
- 300 CONTINUE
- ELSE
-C save information
- ION = ISTART
- IOFF = ISTART+ISW
- ILEVEL = LEVEL
- ENDIF
-C check coincidence
- IF(ISW.GT.0) THEN
- ISW=0
- ILEVEL = LEVEL
- GOTO 10
- ENDIF
-
- END
-
-CDECK ID>, PHO_PRSTRG
- SUBROUTINE PHO_PRSTRG
-C**********************************************************************
-C
-C print information of /POSTRG/
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C color string configurations including collapsed strings and hadrons
- INTEGER MSTR
- PARAMETER (MSTR=500)
- INTEGER NPOS,NCODE,IPAR1,IPAR2,IPAR3,IPAR4,NNCH,IBHAD
- COMMON /POSTRG/ NPOS(4,MSTR),NCODE(MSTR),
- & IPAR1(MSTR),IPAR2(MSTR),IPAR3(MSTR),IPAR4(MSTR),
- & NNCH(MSTR),IBHAD(MSTR),ISTR
-
- WRITE(LO,'(/,1X,A,I5)')
- & 'PHO_PRSTRG: number of strings soft+hard:',ISTR
- WRITE(LO,'(/,1X,A/,1X,A)') 'COMMON /POSTRG/:',
- & ' NOBAM ID1 ID2 ID3 ID4 NPO1/2/3/4 MASS'
- WRITE(LO,'(1X,A)')
- & ' ======================================================='
- DO 800 I=1,ISTR
- WRITE(LO,'(1X,9I5,1P,E11.3)')
- & NCODE(I),IPAR1(I),IPAR2(I),IPAR3(I),IPAR4(I),NPOS(1,I),
- & NPOS(2,I),NPOS(3,I),NPOS(4,I),PHEP(5,NPOS(1,I))
- 800 CONTINUE
-
- END
-
-CDECK ID>, PHO_PREVNT
- SUBROUTINE PHO_PREVNT(NPART)
-C**********************************************************************
-C
-C print all information of event generation and history
-C
-C input: NPART -1 minimal output: process IDs
-C 0 additional output of /POEVT1/
-C 1 additional output of /POSTRG/
-C 2 additional output of /HEPEVT/
-C (call LULIST(1))
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C general process information
- INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
- COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-
- CHARACTER*15 PHO_PNAME
-
- IF(NPART.GE.0) WRITE(LO,'(/)')
- WRITE(LO,'(1X,A,1PE10.3)')
- & 'PHO_PREVNT: c.m. energy',ECM
- CALL PHO_SETPAR(-2,IH,NPART,0.D0)
- WRITE(LO,'(6X,A,A,/1X,I10,10I6)')
- & 'EV-CALL,ISPOM,IHPOM,ISREG,IHDIR,KSTRG,',
- & 'KHTRG,KSLOO,KHLOO,KSDPO,KHDPO',
- & KEVENT,KSPOM,KHPOM,KSREG,KHDIR,KSTRG,KHTRG,KSLOO,KHLOO,KSDPO,
- & KHDPO
- WRITE(LO,'(6X,A,I4,4I3)')
- & 'PROCESS-ID,IDNODF,IDIFF1,IDIFF2,IDDPOM',IPROCE,IDNODF,IDIFR1,
- & IDIFR2,IDDPOM
-
- IF(IPAMDL(13).GT.0) THEN
- WRITE(LO,'(1X,A)') 'PHO_PREVNT: DPMJET special settings:'
- WRITE(LO,'(5X,A,1P,4E11.3)') 'ECMN,PCMN,SECM,SPCM',
- & ECMN,PCMN,SECM,SPCM
- WRITE(LO,'(5X,A,1P,2E11.3)') 'XPSUB,XTSUB',XPSUB,XTSUB
- ENDIF
-
- IF(NPART.LT.0) RETURN
-
- IF(NPART.GE.1) CALL PHO_PRSTRG
-
- WRITE(LO,'(/1X,A)') 'COMMON /POEVT1/:'
- ICHAS = 0
- IBARFS = 0
- IMULC = 0
- IMUL = 0
- WRITE(LO,'(/1X,A,A,/,1X,A,A)')
- & ' NO IST NAME MO-1 MO-2 DA-1 DA-2 CHA BAR',
- & ' IH1 IH2 CO1 CO2',
- & '========================================================',
- & '===================='
- DO 20 IH=1,NHEP
- CH = DBLE(IPHO_CHR3(IH,2)/3.D0)
- BA = DBLE(IPHO_BAR3(IH,2)/3.D0)
- WRITE(LO,'(1X,2I5,1X,A15,4I5,2F5.1,2I5,2I5)')
- & IH,ISTHEP(IH),PHO_PNAME(IH,2),
- & JMOHEP(1,IH),JMOHEP(2,IH),JDAHEP(1,IH),JDAHEP(2,IH),
- & CH,BA,IPHIST(1,IH),IPHIST(2,IH),
- & ICOLOR(1,IH),ICOLOR(2,IH)
- IF(ABS(ISTHEP(IH)).EQ.1) THEN
- ICHAS = ICHAS + IPHO_CHR3(IH,2)
- IBARFS = IBARFS + IPHO_BAR3(IH,2)
- ENDIF
- IF(ABS(ISTHEP(IH)).EQ.1) THEN
- IF(IPHO_CHR3(IH,2).NE.0) IMULC = IMULC+1
- IMUL = IMUL+1
- ENDIF
- 20 CONTINUE
- WRITE(LO,'(1X,2(3X,A,I3),2X,2(5X,A,I5))') 'sum charge:',ICHAS/3,
- & 'baryon:',IBARFS/3,'chr.mult:',IMULC,'tot.mult:',IMUL
-
- WRITE(LO,7)
- PXS = 0.D0
- PYS = 0.D0
- PZS = 0.D0
- P0S = 0.D0
- DO 30 IN=1,NHEP
- IF( (ABS(PHEP(3,IN)).LT.99999.D0)
- & .AND.(PHEP(4,IN).LT.99999.D0)) THEN
- WRITE(LO,8) IN,ISTHEP(IN),PHO_PNAME(IN,2),
- & (PHEP(J,IN),J=1,5),SQRT(PHEP(1,IN)**2+PHEP(2,IN)**2)
- ELSE
- WRITE(LO,11) IN,ISTHEP(IN),PHO_PNAME(IN,2),
- & (PHEP(J,IN),J=1,5),SQRT(PHEP(1,IN)**2+PHEP(2,IN)**2)
- ENDIF
- IF(ABS(ISTHEP(IN)).EQ.1) THEN
- PXS = PXS + PHEP(1,IN)
- PYS = PYS + PHEP(2,IN)
- PZS = PZS + PHEP(3,IN)
- P0S = P0S + PHEP(4,IN)
- ENDIF
- 30 CONTINUE
- AMFS = P0S**2-PXS**2-PYS**2-PZS**2
- AMFS = SIGN(SQRT(ABS(AMFS)),AMFS)
- IF(P0S.LT.99999.D0) THEN
- WRITE(LO,10) ' sum: ',PXS,PYS,PZS,P0S,AMFS
- ELSE
- WRITE(LO,12) ' sum: ',PXS,PYS,PZS,P0S,AMFS
- ENDIF
- WRITE(LO,'(//)')
-
- 5 FORMAT(2X,8H NUMBER ,8H STATUS ,8H IDENT. ,
- & 8H 1.MOTH.,8H 2.MOTH.,8H 1.DAUG.,8H L.DAUG.,
- & 8H CHARGE ,8H BARYON ,/)
- 6 FORMAT(7I8,2F8.3)
- 7 FORMAT(/,2X,' NR STAT NAME X-MOMENTA',
- & ' Y-MOMENTA Z-MOMENTA ENERGY MASS PT',/,
- & 2X,'-------------------------------',
- & '--------------------------------------------')
- 8 FORMAT(I5,I4,1X,A15,2F8.3,3F10.3,F8.3)
- 9 FORMAT(I10,14X,5F10.3)
- 10 FORMAT(10X,A14,1X,2F8.3,3F10.3)
- 11 FORMAT(I5,I4,1X,A15,2F8.2,2F10.1,F10.3,F8.3)
- 12 FORMAT(10X,A14,1X,2F8.2,2F10.1,F10.3)
-
- IF(NPART.GE.2) CALL PYLIST(1)
-
- END
-
-CDECK ID>, PHO_LTRHEP
- SUBROUTINE PHO_LTRHEP(I1,I2,COD,SID,COF,SIF,GAM,BGX,BGY,BGZ)
-C*******************************************************************
-C
-C Lorentz transformation of entries I1 to I2 in /POEVT1/
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER ( DIFF = 0.001D0,
- & EPS = 1.D-5 )
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-
-C standard particle data interface
- INTEGER NMXHEP
-
- PARAMETER (NMXHEP=4000)
-
- INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
- DOUBLE PRECISION PHEP,VHEP
- COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
- & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
- & VHEP(4,NMXHEP)
-C extension to standard particle data interface (PHOJET specific)
- INTEGER IMPART,IPHIST,ICOLOR
- COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
-
- DO 100 I=I1,MIN(I2,NHEP)
- IF((ABS(ISTHEP(I)).LE.10).OR.(ISTHEP(I).EQ.21)) THEN
- CALL PHO_TRANS(PHEP(1,I),PHEP(2,I),PHEP(3,I),COD,SID,COF,SIF,
- & XX,YY,ZZ)
- EE=PHEP(4,I)
- CALL PHO_ALTRA(GAM,BGX,BGY,BGZ,XX,YY,ZZ,EE,PTOT,
- & PHEP(1,I),PHEP(2,I),PHEP(3,I),PHEP(4,I))
- ELSE IF(ISTHEP(I).EQ.20) THEN
- EE=SQRT(PHEP(1,I)**2+PHEP(2,I)**2+PHEP(3,I)**2)
- CALL PHO_TRANS(PHEP(1,I),PHEP(2,I),PHEP(3,I),COD,SID,COF,SIF,
- & XX,YY,ZZ)
- CALL PHO_ALTRA(GAM,BGX,BGY,BGZ,XX,YY,ZZ,EE,PTOT,
- & PHEP(1,I),PHEP(2,I),PHEP(3,I),PMASS)
- ENDIF
- 100 CONTINUE
-
-C debug precision
- IF(IDEB(70).LT.1) RETURN
- DO 200 I=I1,MIN(NHEP,I2)
- IF(ABS(ISTHEP(I)).GT.10) GOTO 190
- PMASS = PHEP(4,I)**2-PHEP(1,I)**2-PHEP(2,I)**2-PHEP(3,I)**2
- PMASS = SIGN(SQRT(ABS(PMASS)),PMASS)
- IF((ABS(PMASS-PHEP(5,I))/MAX(PHEP(5,I),1.D0)).GT.DIFF) THEN
- WRITE(LO,'(1X,A,I5,2E13.4)')
- & 'PHO_LTRHEP: inconsistent masses:',I,PMASS,PHEP(5,I)
- ENDIF
- 190 CONTINUE
- 200 CONTINUE
-
- END
-
-CDECK ID>, PHO_PECMS
- SUBROUTINE PHO_PECMS(ID,PMASS1,PMASS2,ECM,PP,EE)
-C*******************************************************************
-C
-C calculation of cms momentum and energy of massive particle
-C (ID= 1 using PMASS1, 2 using PMASS2)
-C
-C output: PP cms momentum
-C EE energy in CMS of particle ID
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
- S=ECM**2
- PM1 = SIGN(PMASS1**2,PMASS1)
- PM2 = SIGN(PMASS2**2,PMASS2)
- PP = SQRT(S**2 - 2.D0*PM1*S - 2.D0*PM2*S - 2.D0*PM1*PM2
- & + PM1**2 + PM2**2)/(2.D0*ECM)
-
- IF(ID.EQ.1) THEN
- EE = SQRT( PM1 + PP**2 )
- ELSE IF(ID.EQ.2) THEN
- EE = SQRT( PM2 + PP**2 )
- ELSE
- WRITE(LO,'(/1X,A,I3,/)')
- & 'PHO_PECMS:ERROR: invalid ID number:',ID
- EE = PP
- ENDIF
-
- END
-
-CDECK ID>, PHO_FRAINI
- SUBROUTINE PHO_FRAINI(IDEFAU)
-C***********************************************************************
-C
-C initialization of fragmentation packages
-C (currently LUND JETSET)
-C
-C initialization for JETSET call in DTUNUC 1.04 (J.R. 6/93)
-C changed to work in PHOJET (R.E. 1/94)
-C
-C input: IDEFAU 0 no hadronization at all
-C 1 do not touch any parameter of JETSET
-C 2 default parameters kept, decay length 10mm to
-C define stable particles
-C 3 load tuned parameters for JETSET 7.3
-C neg. value: prevent strange/charm hadrons from decaying
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- PARAMETER (EPS=1.D-10)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- INTEGER N,NPAD,K
- DOUBLE PRECISION P,V
- COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-
- INTEGER MSTU,MSTJ
- DOUBLE PRECISION PARU,PARJ
- COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-
- INTEGER KCHG
- DOUBLE PRECISION PMAS,PARF,VCKM
- COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-
- INTEGER MDCY,MDME,KFDP
- DOUBLE PRECISION BRAT
- COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
-
- INTEGER PYCOMP
-
- IDEFAB = ABS(IDEFAU)
-
- IF(IDEFAB.EQ.0) THEN
- WRITE(LO,'(/1X,A)') 'PHO_FRAINI: hadronization switched off'
- RETURN
- ENDIF
-C defaults
- DEF2 = PARJ(2)
- IDEF12 = MSTJ(12)
- DEF19 = PARJ(19)
- DEF41 = PARJ(41)
- DEF42 = PARJ(42)
- DEF21 = PARJ(21)
-
-C declare stable particles
- IF(IDEFAB.GE.2) MSTJ(22) = 2
-
-C load optimized parameters
- IF(IDEFAB.GE.3) THEN
-
-* PARJ(19)=0.19
-C Lund a-parameter
-C (default=0.3)
- PARJ(41)=0.3
-C Lund b-parameter
-C (default=1.0)
- PARJ(42)=1.0
-C Lund sigma parameter in pt distribution
-C (default=0.36)
- PARJ(21)=0.36
- ENDIF
-C
-C prevent particles decaying
- IF(IDEFAU.LT.0) THEN
-C K0S
-
- KC=PYCOMP(310)
-
- MDCY(KC,1)=0
-C PI0
-
- KC=PYCOMP(111)
-
- MDCY(KC,1)=0
-C LAMBDA
-
- KC=PYCOMP(3122)
-
- MDCY(KC,1)=0
-C ALAMBDA
-
- KC=PYCOMP(-3122)
-
- MDCY(KC,1)=0
-C SIG+
-
- KC=PYCOMP(3222)
-
- MDCY(KC,1)=0
-C ASIG+
-
- KC=PYCOMP(-3222)
-
- MDCY(KC,1)=0
-C SIG-
-
- KC=PYCOMP(3112)
-
- MDCY(KC,1)=0
-C ASIG-
-
- KC=PYCOMP(-3112)
-
- MDCY(KC,1)=0
-C SIG0
-
- KC=PYCOMP(3212)
-
- MDCY(KC,1)=0
-C ASIG0
-
- KC=PYCOMP(-3212)
-
- MDCY(KC,1)=0
-C TET0
-
- KC=PYCOMP(3322)
-
- MDCY(KC,1)=0
-C ATET0
-
- KC=PYCOMP(-3322)
-
- MDCY(KC,1)=0
-C TET-
-
- KC=PYCOMP(3312)
-
- MDCY(KC,1)=0
-C ATET-
-
- KC=PYCOMP(-3312)
-
- MDCY(KC,1)=0
-C OMEGA-
-
- KC=PYCOMP(3334)
-
- MDCY(KC,1)=0
-C AOMEGA-
-
- KC=PYCOMP(-3334)
-
- MDCY(KC,1)=0
-C D+
-
- KC=PYCOMP(411)
-
- MDCY(KC,1)=0
-C D-
-
- KC=PYCOMP(-411)
-
- MDCY(KC,1)=0
-C D0
-
- KC=PYCOMP(421)
-
- MDCY(KC,1)=0
-C A-D0
-
- KC=PYCOMP(-421)
-
- MDCY(KC,1)=0
-C DS+
-
- KC=PYCOMP(431)
-
- MDCY(KC,1)=0
-C A-DS+
-
- KC=PYCOMP(-431)
-
- MDCY(KC,1)=0
-C ETAC
-
- KC=PYCOMP(441)
-
- MDCY(KC,1)=0
-C LAMBDAC+
-
- KC=PYCOMP(4122)
-
- MDCY(KC,1)=0
-C A-LAMBDAC+
-
- KC=PYCOMP(-4122)
-
- MDCY(KC,1)=0
-C SIGMAC++
-
- KC=PYCOMP(4222)
-
- MDCY(KC,1)=0
-C SIGMAC+
-
- KC=PYCOMP(4212)
-
- MDCY(KC,1)=0
-C SIGMAC0
-
- KC=PYCOMP(4112)
-
- MDCY(KC,1)=0
-C A-SIGMAC++
-
- KC=PYCOMP(-4222)
-
- MDCY(KC,1)=0
-C A-SIGMAC+
-
- KC=PYCOMP(-4212)
-
- MDCY(KC,1)=0
-C A-SIGMAC0
-
- KC=PYCOMP(-4112)
-
- MDCY(KC,1)=0
-C KSIC+
-
- KC=PYCOMP(4232)
-
- MDCY(KC,1)=0
-C KSIC0
-
- KC=PYCOMP(4132)
-
- MDCY(KC,1)=0
-C A-KSIC+
-
- KC=PYCOMP(-4232)
-
- MDCY(KC,1)=0
-C A-KSIC0
-
- KC=PYCOMP(-4132)
-
- MDCY(KC,1)=0
- ENDIF
-
-C *** Commented by Chiara
-C WRITE(LO,2355) IDEFAU,DEF2,PARJ(2),IDEF12,MSTJ(12),
-C & DEF19,PARJ(19),DEF41,PARJ(41),DEF42,PARJ(42),DEF21,PARJ(21)
-C 2355 FORMAT(/' PHO_FRAINI: fragmentation initialization ISWMDL(6)',I3/,
-C & ' --------------------------------------------------',/,
-C & 5X,'parameter description default / current',/,
-C & 5X,'PARJ( 2) strangeness suppression : ',2F7.3,/,
-C & 5X,'MSTJ(12) popcorn : ',2I7,/,
-C & 5X,'PARJ(19) popcorn : ',2F7.3,/,
-C & 5X,'PARJ(41) Lund a : ',2F7.3,/,
-C & 5X,'PARJ(42) Lund b : ',2F7.3,/,
-C & 5X,'PARJ(21) sigma in pt distribution: ',2F7.3,/)
-
- END
-
-CDECK ID>, PHO_SETPAR
- SUBROUTINE pho_setpar(Iside,IDpdg,IDcpc,Pvir)
-C**********************************************************************
-C
-C assign a particle to either side 1 or 2
-C (including special treatment for remnants)
-C
-C input: Iside 1,2 side selected for the particle
-C -2 output of current settings
-C IDpdg PDG number
-C IDcpc CPC number
-C 0 CPC determination in subroutine
-C -1 special particle remnant, IDPDG
-C is the particle number the remnant
-C corresponds to (see /POHDFL/)
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- integer Iside,IDpdg,IDcpc
- double precision Pvir
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C event debugging information
- INTEGER NMAXD
- PARAMETER (NMAXD=100)
- INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
- & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
- COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
- & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
-C global event kinematics and particle IDs
- INTEGER IFPAP,IFPAB
- DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
- COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
-C nucleon-nucleus / nucleus-nucleus interface to DPMJET
- INTEGER IDEQP,IDEQB,IHFLD,IHFLS
- DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
- COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
- & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
-C particle ID translation table
- integer ID_pdg_list,ID_list,ID_pdg_max
- character*12 name_list
- COMMON /POPAR1/ ID_pdg_list(300),ID_list(577),name_list(300),
- & ID_pdg_max
-C general particle data
- double precision xm_list,tau_list,gam_list,
- & xm_psm2_list,xm_vem2_list,xm_b82_list,xm_b102_list,
- & xm_bb82_list,xm_bb102_list
- integer ich3_list,iba3_list,iq_list,
- & id_psm_list,id_vem_list,id_b8_list,id_b10_list
- COMMON /POPAR2/ xm_list(300),tau_list(300),gam_list(300),
- & xm_psm2_list(6,6),xm_vem2_list(6,6),
- & xm_b82_list(6,6,6),xm_b102_list(6,6,6),
- & xm_bb82_list(6,6,6,6),xm_bb102_list(6,6,6,6),
- & ich3_list(300),iba3_list(300),iq_list(3,300),
- & id_psm_list(6,6),id_vem_list(6,6),
- & id_b8_list(6,6,6),id_b10_list(6,6,6)
-C particle decay data
- double precision wg_sec_list
- integer idec_list,isec_list
- COMMON /POPAR3/ wg_sec_list(500),idec_list(3,300),
- & isec_list(3,500)
-
-C external functions
- integer ipho_pdg2id,ipho_chr3,ipho_bar3
- double precision pho_pmass
-
-C local variables
- integer i,IDcpcN,IDcpcR,IDpdgN,IDpdgR,IDB,IFL1,IFL2,IFL3
-
- IF((Iside.EQ.1).OR.(Iside.EQ.2)) THEN
- IDcpcN = IDcpc
-C remnant?
- IF(IDcpc.EQ.-1) THEN
- IF(Iside.EQ.1) THEN
- IDpdgR = 81
- ELSE
- IDpdgR = 82
- ENDIF
- IDcpcR = ipho_pdg2id(IDpdgR)
- IDEQB(Iside) = ipho_pdg2id(IDpdg)
- IDEQP(Iside) = IDpdg
-C copy particle properties
- IDB = abs(IDEQB(Iside))
- xm_list(IDcpcR) = xm_list(IDB)
- tau_list(IDcpcR) = tau_list(IDB)
- gam_list(IDcpcR) = gam_list(IDB)
- IF(IHFLS(Iside).EQ.1) THEN
- ich3_list(IDcpcR) = ipho_chr3(IDEQB(Iside),0)
- iba3_list(IDcpcR) = ipho_bar3(IDEQB(Iside),0)
- ELSE
- ich3_list(IDcpcR) = 0
- iba3_list(IDcpcR) = 0
- ENDIF
-C quark content
- IFL1 = IHFLD(Iside,1)
- IFL2 = IHFLD(Iside,2)
- IFL3 = 0
- IF(IHFLS(Iside).EQ.1) THEN
- IF(ABS(IHFLD(Iside,1)).GT.1000) THEN
- IFL1 = IHFLD(Iside,1)/1000
- IFL2 = MOD(IHFLD(Iside,1)/100,10)
- IFL3 = IHFLD(Iside,2)
- ELSE IF(ABS(IHFLD(Iside,2)).GT.1000) THEN
- IFL1 = IHFLD(Iside,1)
- IFL2 = IHFLD(Iside,2)/1000
- IFL3 = MOD(IHFLD(Iside,2)/100,10)
- ENDIF
- ENDIF
- iq_list(1,IDcpcR) = IFL1
- iq_list(2,IDcpcR) = IFL2
- iq_list(3,IDcpcR) = IFL3
-
- IDcpcN = IDcpcR
- IDPDGN = IDPDGR
-
- IF(IDEB(87).GE.5) THEN
- WRITE(LO,'(1X,A,I2,/5X,A,I7,4I6)')
- & 'pho_setpar: remnant assignment side',Iside,
- & 'IDPDG,IFL1,2,3,IVAL',IDPDGN,IFL1,IFL2,IFL3,IHFLS(Iside)
- ENDIF
- ELSE IF(IDcpc.EQ.0) THEN
-C ordinary hadron
- IHFLS(Iside) = 1
- IHFLD(Iside,1) = 0
- IHFLD(Iside,2) = 0
- IDcpcN = ipho_pdg2id(IDpdg)
- IDpdgN = IDpdg
- ENDIF
-
-C initialize /POGCMS/
- IFPAP(Iside) = IDpdgN
- IFPAB(Iside) = IDcpcN
- PMASS(Iside) = pho_pmass(IDcpcN,0)
- IF(IFPAP(Iside).EQ.22) THEN
- PVIRT(Iside) = ABS(PVIR)
- ELSE
- PVIRT(Iside) = 0.D0
- ENDIF
-
- ELSE IF(Iside.EQ.-2) THEN
-C output of current settings
- DO 100 I=1,2
- WRITE(LO,'(1X,A,I2,1X,A,I7,I4,1X,1P2E10.3)')
- & 'PHO_SETPAR: side',
- & I,'IDPDG,IDcpc,PMASS,PVIRT',IFPAP(I),IFPAB(I),PMASS(I),
- & PVIRT(I)
- IF((IFPAP(I).EQ.81).OR.(IFPAP(I).EQ.82)) THEN
- WRITE(LO,'(5X,A,I7,I4,I2,3I5)')
- & 'remnant:IDPDG,IDcpc,IVAL,IFLA1,2',IDEQP(I),IDEQB(I),
- & IHFLS(I),IHFLD(I,1),IHFLD(I,2)
- ENDIF
- 100 CONTINUE
- ELSE
- WRITE(LO,'(/1X,A,I8)')
- & 'pho_setpar: invalid argument (Iside)',Iside
- ENDIF
-
- END
-
-CDECK ID>, PHO_XLAM
- DOUBLE PRECISION FUNCTION PHO_XLAM(X,Y,Z)
-C**********************************************************************
-C
-C auxiliary function for two/three particle decay mode
-C (standard LAMBDA**(1/2) function)
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-C
- YZ=Y-Z
- XLAM=X*X-2.D0*X*(Y+Z)+YZ*YZ
- IF(XLAM.LT.0.D0) XLAM=-XLAM
- PHO_XLAM=SQRT(XLAM)
- END
-
-CDECK ID>, PHO_BESSJ0
- DOUBLE PRECISION FUNCTION PHO_BESSJ0(DX)
-C**********************************************************************
-C
-C CERN (KERN) LIB function C312
-C
-C modified by R. Engel (03/02/93)
-C
-C**********************************************************************
- DOUBLE PRECISION DX
- DOUBLE PRECISION X,Y,V,H,ALFA,EIGHT
- DOUBLE PRECISION PI1,PI2,C1(0:14),C2(0:9),C3(0:10),B0,B1,B2,P,Q,R
- SAVE
-
- DATA EIGHT /8.0D0/
- DATA PI1 /0.79788 45608 0287D0/, PI2 /0.78539 81633 9745D0/
-
- DATA C1( 0) /+0.15772 79714 7489D0/
- DATA C1( 1) /-0.00872 34423 5285D0/
- DATA C1( 2) /+0.26517 86132 0334D0/
- DATA C1( 3) /-0.37009 49938 7265D0/
- DATA C1( 4) /+0.15806 71023 3210D0/
- DATA C1( 5) /-0.03489 37694 1141D0/
- DATA C1( 6) /+0.00481 91800 6947D0/
- DATA C1( 7) /-0.00046 06261 6621D0/
- DATA C1( 8) /+0.00003 24603 2882D0/
- DATA C1( 9) /-0.00000 17619 4691D0/
- DATA C1(10) /+0.00000 00760 8164D0/
- DATA C1(11) /-0.00000 00026 7925D0/
- DATA C1(12) /+0.00000 00000 7849D0/
- DATA C1(13) /-0.00000 00000 0194D0/
- DATA C1(14) /+0.00000 00000 0004D0/
-
- DATA C2( 0) /+0.99946 03493 4752D0/
- DATA C2( 1) /-0.00053 65220 4681D0/
- DATA C2( 2) /+0.00000 30751 8479D0/
- DATA C2( 3) /-0.00000 00517 0595D0/
- DATA C2( 4) /+0.00000 00016 3065D0/
- DATA C2( 5) /-0.00000 00000 7864D0/
- DATA C2( 6) /+0.00000 00000 0517D0/
- DATA C2( 7) /-0.00000 00000 0043D0/
- DATA C2( 8) /+0.00000 00000 0004D0/
- DATA C2( 9) /-0.00000 00000 0001D0/
-
- DATA C3( 0) /-0.01555 58546 05337D0/
- DATA C3( 1) /+0.00006 83851 99426D0/
- DATA C3( 2) /-0.00000 07414 49841D0/
- DATA C3( 3) /+0.00000 00179 72457D0/
- DATA C3( 4) /-0.00000 00007 27192D0/
- DATA C3( 5) /+0.00000 00000 42201D0/
- DATA C3( 6) /-0.00000 00000 03207D0/
- DATA C3( 7) /+0.00000 00000 00301D0/
- DATA C3( 8) /-0.00000 00000 00033D0/
- DATA C3( 9) /+0.00000 00000 00004D0/
- DATA C3(10) /-0.00000 00000 00001D0/
-
- X=DX
- V=ABS(X)
- IF(V .LT. EIGHT) THEN
- Y=V/EIGHT
- H=2.D0*Y**2-1.D0
- ALFA=-2.D0*H
- B1=0.D0
- B2=0.D0
- DO 1 I = 14,0,-1
- B0=C1(I)-ALFA*B1-B2
- B2=B1
- 1 B1=B0
- B1=B0-H*B2
- ELSE
- R=1.D0/V
- Y=EIGHT*R
- H=2.D0*Y**2-1.D0
- ALFA=-2.D0*H
- B1=0.D0
- B2=0.D0
- DO 2 I = 9,0,-1
- B0=C2(I)-ALFA*B1-B2
- B2=B1
- 2 B1=B0
- P=B0-H*B2
- B1=0.D0
- B2=0.D0
- DO 3 I = 10,0,-1
- B0=C3(I)-ALFA*B1-B2
- B2=B1
- 3 B1=B0
- Q=Y*(B0-H*B2)
- B0=V-PI2
- B1=PI1*SQRT(R)*(P*COS(B0)-Q*SIN(B0))
- ENDIF
- PHO_BESSJ0=B1
- RETURN
- END
-
-CDECK ID>, PHO_BESSI0
- DOUBLE PRECISION FUNCTION PHO_BESSI0(X)
-C**********************************************************************
-C
-C Bessel Function I0
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- AX = ABS(X)
- IF (AX .LT. 3.75D0) THEN
- Y = (X/3.75D0)**2
- PHO_BESSI0 =
- & 1.0D0+Y*(3.5156229D0+Y*(3.0899424D0+Y*(1.2067492D0
- & +Y*(0.2659732D0+Y*(0.360768D-1+Y*0.45813D-2)))))
- ELSE
- Y = 3.75D0/AX
- PHO_BESSI0 =
- & (EXP(AX)/SQRT(AX))*(0.39894228D0+Y*(0.1328592D-1
- & +Y*(0.225319D-2+Y*(-0.157565D-2+Y*(0.916281D-2
- & +Y*(-0.2057706D-1+Y*(0.2635537D-1+Y*(-0.1647633D-1
- & +Y*0.392377D-2))))))))
- ENDIF
-
- END
-
-CDECK ID>, PHO_BESSI1
- DOUBLE PRECISION FUNCTION PHO_BESSI1(X)
-C**********************************************************************
-C
-C Bessel Function I1
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- AX = ABS(X)
-
- IF (AX .LT. 3.75D0) THEN
- Y = (X/3.75D0)**2
- BESLI1 =
- & AX*(0.5D0+Y*(0.87890594D0+Y*(0.51498869D0+Y*(0.15084934D0
- & +Y*(0.2658733D-1+Y*(0.301532D-2+Y*0.32411D-3))))))
- ELSE
- Y = 3.75D0/AX
- BESLI1 =
- & 0.2282967D-1+Y*(-0.2895312D-1+Y*(0.1787654D-1
- & -Y*0.420059D-2))
- BESLI1 =
- & 0.39894228D0+Y*(-0.3988024D-1+Y*(-0.362018D-2
- & +Y*(0.163801D-2+Y*(-0.1031555D-1+Y*BESLI1))))
- BESLI1 = BESLI1 * EXP(AX)/SQRT(AX)
- ENDIF
- IF (X .LT. 0.D0) BESLI1 = -BESLI1
-
- PHO_BESSI1 = BESLI1
-
- END
-
-CDECK ID>, PHO_BESSK0
- DOUBLE PRECISION FUNCTION PHO_BESSK0(X)
-C**********************************************************************
-C
-C Modified Bessel Function K0
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- IF (X .LT. 2.D0) THEN
- Y = X**2/4.D0
- PHO_BESSK0 =
- & (-LOG(X/2.D0)*PHO_BESSI0(X))+(-.57721566D0+Y*(0.42278420D0
- & +Y*(0.23069756D0+Y*(0.3488590D-1+Y*(0.262698D-2
- & +Y*(0.10750D-3+Y*0.740D-5))))))
- ELSE
- Y = 2.D0/X
- PHO_BESSK0 =
- & (EXP(-X)/SQRT(X))*(1.25331414D0+Y*(-0.7832358D-1
- & +Y*(0.2189568D-1+Y*(-0.1062446D-1+Y*(0.587872D-2
- & +Y*(-0.251540D-2+Y*0.53208D-3))))))
- ENDIF
-
- END
-
-CDECK ID>, PHO_BESSK1
- DOUBLE PRECISION FUNCTION PHO_BESSK1(X)
-C**********************************************************************
-C
-C Modified Bessel Function K1
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- IF (X .LT. 2.D0) THEN
- Y = X**2/4.D0
- PHO_BESSK1 =
- & (LOG(X/2.D0)*PHO_BESSI1(X))+(1.D0/X)*(1.D0+Y*(0.15443144D0
- & +Y*(-0.67278579D0+Y*(-0.18156897D0+Y*(-0.1919402D-1
- & +Y*(-0.110404D-2+Y*(-0.4686D-4)))))))
- ELSE
- Y=2.D0/X
- PHO_BESSK1 =
- & (EXP(-X)/SQRT(X))*(1.25331414D0+Y*(0.23498619D0
- & +Y*(-0.3655620D-1+Y*(0.1504268D-1+Y*(-0.780353D-2
- & +Y*(0.325614D-2+Y*(-0.68245D-3)))))))
- ENDIF
-
- END
-
-CDECK ID>, PHO_GAUSET
- SUBROUTINE PHO_GAUSET(AX,BX,NX,Z,W)
-C********************************************************************
-C
-C N-point gauss zeros and weights for the interval (AX,BX) are
-C stored in arrays Z and W respectively.
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- COMMON /POGDAT/A(273),X(273),KTAB(96)
- DIMENSION Z(NX),W(NX)
-
- ALPHA=0.5*(BX+AX)
- BETA=0.5*(BX-AX)
- N=NX
-
-C the N=1 case:
- IF(N.NE.1) GO TO 1
- Z(1)=ALPHA
- W(1)=BX-AX
- RETURN
-
-C the Gauss cases:
- 1 IF((N.LE.16).AND.(N.GT.1)) GO TO 2
- IF(N.EQ.20) GO TO 2
- IF(N.EQ.24) GO TO 2
- IF(N.EQ.32) GO TO 2
- IF(N.EQ.40) GO TO 2
- IF(N.EQ.48) GO TO 2
- IF(N.EQ.64) GO TO 2
- IF(N.EQ.80) GO TO 2
- IF(N.EQ.96) GO TO 2
-
-C the extended Gauss cases:
- IF((N/96)*96.EQ.N) GO TO 3
-
-C jump to center of intervall intrgration:
- GO TO 100
-
-C get Gauss point array
-
- 2 CALL PHO_GAUDAT
-C extract real points
- K=KTAB(N)
- M=N/2
- DO 21 J=1,M
-C extract values from big array
- JTAB=K-1+J
- WTEMP=BETA*A(JTAB)
- DELTA=BETA*X(JTAB)
-C store them backward
- Z(J)=ALPHA-DELTA
- W(J)=WTEMP
-C store them forward
- JP=N+1-J
- Z(JP)=ALPHA+DELTA
- W(JP)=WTEMP
- 21 CONTINUE
-C store central point (odd N)
- IF((N-M-M).EQ.0) RETURN
- Z(M+1)=ALPHA
- JMID=K+M
- W(M+1)=BETA*A(JMID)
- RETURN
-
-C get ND96 times chained 96 Gauss point array
-
- 3 CALL PHO_GAUDAT
-C print out message
-C -extract real points
- K=KTAB(96)
- ND96=N/96
- DO 31 J=1,48
-C extract values from big array
- JTAB=K-1+J
- WTEMP=BETA*A(JTAB)
- DELTA=BETA*X(JTAB)
- WTeMP=WTEMP/ND96
- DeLTA=DELTA/ND96
- DO 32 JD96=0,ND96-1
- ZCNTR= (ALPHA-BETA)+ BETA*FLOAT(2*JD96+1)/FLOAT(ND96)
-C store them backward
- Z(J+JD96*96)=ZCNTR-DELTA
- W(J+JD96*96)=WTEMP
-C store them forward
- JP=96+1-J
- Z(JP+JD96*96)=ZCNTR+DELTA
- W(JP+JD96*96)=WTEMP
- 32 CONTINUE
- 31 CONTINUE
- RETURN
-
-C the center of intervall cases:
- 100 CONTINUE
-C put in constant weight and equally spaced central points
- N=IABS(N)
- DO 111 IN=1,N
- WIN=(BX-AX)/FLOAT(N)
- Z(IN)=AX + (FLOAT(IN)-.5)*WIN
- 111 W(IN)=WIN
-
- END
-
-CDECK ID>, PHO_GAUDAT
- SUBROUTINE PHO_GAUDAT
-C*********************************************************************
-C
-C store big arrays needed for Gauss integral, CERNLIB D106BD
-C (arrays A,X,ITAB copied on B,Y,LTAB)
-C
-C*********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
-
- SAVE
- COMMON /POGDAT/ B(273),Y(273),LTAB(96)
- DIMENSION A(273),X(273),KTAB(96)
-
-C-----TABLE OF INITIAL SUBSCRIPTS FOR N=2(1)16(4)96
- DATA KTAB(2)/1/
- DATA KTAB(3)/2/
- DATA KTAB(4)/4/
- DATA KTAB(5)/6/
- DATA KTAB(6)/9/
- DATA KTAB(7)/12/
- DATA KTAB(8)/16/
- DATA KTAB(9)/20/
- DATA KTAB(10)/25/
- DATA KTAB(11)/30/
- DATA KTAB(12)/36/
- DATA KTAB(13)/42/
- DATA KTAB(14)/49/
- DATA KTAB(15)/56/
- DATA KTAB(16)/64/
- DATA KTAB(20)/72/
- DATA KTAB(24)/82/
- DATA KTAB(28)/82/
- DATA KTAB(32)/94/
- DATA KTAB(36)/94/
- DATA KTAB(40)/110/
- DATA KTAB(44)/110/
- DATA KTAB(48)/130/
- DATA KTAB(52)/130/
- DATA KTAB(56)/130/
- DATA KTAB(60)/130/
- DATA KTAB(64)/154/
- DATA KTAB(68)/154/
- DATA KTAB(72)/154/
- DATA KTAB(76)/154/
- DATA KTAB(80)/186/
- DATA KTAB(84)/186/
- DATA KTAB(88)/186/
- DATA KTAB(92)/186/
- DATA KTAB(96)/226/
-C
-C-----TABLE OF ABSCISSAE (X) AND WEIGHTS (A) FOR INTERVAL (-1,+1).
-C
-C-----N=2
- DATA X(1)/0.577350269189626D0 /, A(1)/1.000000000000000D0 /
-C-----N=3
- DATA X(2)/0.774596669241483D0 /, A(2)/0.555555555555556D0 /
- DATA X(3)/0.000000000000000D0 /, A(3)/0.888888888888889D0 /
-C-----N=4
- DATA X(4)/0.861136311594053D0 /, A(4)/0.347854845137454D0 /
- DATA X(5)/0.339981043584856D0 /, A(5)/0.652145154862546D0 /
-C-----N=5
- DATA X(6)/0.906179845938664D0 /, A(6)/0.236926885056189D0 /
- DATA X(7)/0.538469310105683D0 /, A(7)/0.478628670499366D0 /
- DATA X(8)/0.000000000000000D0 /, A(8)/0.568888888888889D0 /
-C-----N=6
- DATA X(9)/0.932469514203152D0 /, A(9)/0.171324492379170D0 /
- DATA X(10)/0.661209386466265D0 /, A(10)/0.360761573048139D0 /
- DATA X(11)/0.238619186083197D0 /, A(11)/0.467913934572691D0 /
-C-----N=7
- DATA X(12)/0.949107912342759D0 /, A(12)/0.129484966168870D0 /
- DATA X(13)/0.741531185599394D0 /, A(13)/0.279705391489277D0 /
- DATA X(14)/0.405845151377397D0 /, A(14)/0.381830050505119D0 /
- DATA X(15)/0.000000000000000D0 /, A(15)/0.417959183673469D0 /
-C-----N=8
- DATA X(16)/0.960289856497536D0 /, A(16)/0.101228536290376D0 /
- DATA X(17)/0.796666477413627D0 /, A(17)/0.222381034453374D0 /
- DATA X(18)/0.525532409916329D0 /, A(18)/0.313706645877887D0 /
- DATA X(19)/0.183434642495650D0 /, A(19)/0.362683783378362D0 /
-C-----N=9
- DATA X(20)/0.968160239507626D0 /, A(20)/0.081274388361574D0 /
- DATA X(21)/0.836031107326636D0 /, A(21)/0.180648160694857D0 /
- DATA X(22)/0.613371432700590D0 /, A(22)/0.260610696402935D0 /
- DATA X(23)/0.324253423403809D0 /, A(23)/0.312347077040003D0 /
- DATA X(24)/0.000000000000000D0 /, A(24)/0.330239355001260D0 /
-C-----N=10
- DATA X(25)/0.973906528517172D0 /, A(25)/0.066671344308688D0 /
- DATA X(26)/0.865063366688985D0 /, A(26)/0.149451349150581D0 /
- DATA X(27)/0.679409568299024D0 /, A(27)/0.219086362515982D0 /
- DATA X(28)/0.433395394129247D0 /, A(28)/0.269266719309996D0 /
- DATA X(29)/0.148874338981631D0 /, A(29)/0.295524224714753D0 /
-C-----N=11
- DATA X(30)/0.978228658146057D0 /, A(30)/0.055668567116174D0 /
- DATA X(31)/0.887062599768095D0 /, A(31)/0.125580369464905D0 /
- DATA X(32)/0.730152005574049D0 /, A(32)/0.186290210927734D0 /
- DATA X(33)/0.519096129206812D0 /, A(33)/0.233193764591990D0 /
- DATA X(34)/0.269543155952345D0 /, A(34)/0.262804544510247D0 /
- DATA X(35)/0.000000000000000D0 /, A(35)/0.272925086777901D0 /
-C-----N=12
- DATA X(36)/0.981560634246719D0 /, A(36)/0.047175336386512D0 /
- DATA X(37)/0.904117256370475D0 /, A(37)/0.106939325995318D0 /
- DATA X(38)/0.769902674194305D0 /, A(38)/0.160078328543346D0 /
- DATA X(39)/0.587317954286617D0 /, A(39)/0.203167426723066D0 /
- DATA X(40)/0.367831498998180D0 /, A(40)/0.233492536538355D0 /
- DATA X(41)/0.125233408511469D0 /, A(41)/0.249147045813403D0 /
-C-----N=13
- DATA X(42)/0.984183054718588D0 /, A(42)/0.040484004765316D0 /
- DATA X(43)/0.917598399222978D0 /, A(43)/0.092121499837728D0 /
- DATA X(44)/0.801578090733310D0 /, A(44)/0.138873510219787D0 /
- DATA X(45)/0.642349339440340D0 /, A(45)/0.178145980761946D0 /
- DATA X(46)/0.448492751036447D0 /, A(46)/0.207816047536889D0 /
- DATA X(47)/0.230458315955135D0 /, A(47)/0.226283180262897D0 /
- DATA X(48)/0.000000000000000D0 /, A(48)/0.232551553230874D0 /
-C-----N=14
- DATA X(49)/0.986283808696812D0 /, A(49)/0.035119460331752D0 /
- DATA X(50)/0.928434883663574D0 /, A(50)/0.080158087159760D0 /
- DATA X(51)/0.827201315069765D0 /, A(51)/0.121518570687903D0 /
- DATA X(52)/0.687292904811685D0 /, A(52)/0.157203167158194D0 /
- DATA X(53)/0.515248636358154D0 /, A(53)/0.185538397477938D0 /
- DATA X(54)/0.319112368927890D0 /, A(54)/0.205198463721296D0 /
- DATA X(55)/0.108054948707344D0 /, A(55)/0.215263853463158D0 /
-C-----N=15
- DATA X(56)/0.987992518020485D0 /, A(56)/0.030753241996117D0 /
- DATA X(57)/0.937273392400706D0 /, A(57)/0.070366047488108D0 /
- DATA X(58)/0.848206583410427D0 /, A(58)/0.107159220467172D0 /
- DATA X(59)/0.724417731360170D0 /, A(59)/0.139570677926154D0 /
- DATA X(60)/0.570972172608539D0 /, A(60)/0.166269205816994D0 /
- DATA X(61)/0.394151347077563D0 /, A(61)/0.186161000015562D0 /
- DATA X(62)/0.201194093997435D0 /, A(62)/0.198431485327111D0 /
- DATA X(63)/0.000000000000000D0 /, A(63)/0.202578241925561D0 /
-C-----N=16
- DATA X(64)/0.989400934991650D0 /, A(64)/0.027152459411754D0 /
- DATA X(65)/0.944575023073233D0 /, A(65)/0.062253523938648D0 /
- DATA X(66)/0.865631202387832D0 /, A(66)/0.095158511682493D0 /
- DATA X(67)/0.755404408355003D0 /, A(67)/0.124628971255534D0 /
- DATA X(68)/0.617876244402644D0 /, A(68)/0.149595988816577D0 /
- DATA X(69)/0.458016777657227D0 /, A(69)/0.169156519395003D0 /
- DATA X(70)/0.281603550779259D0 /, A(70)/0.182603415044924D0 /
- DATA X(71)/0.095012509837637D0 /, A(71)/0.189450610455069D0 /
-C-----N=20
- DATA X(72)/0.993128599185094D0 /, A(72)/0.017614007139152D0 /
- DATA X(73)/0.963971927277913D0 /, A(73)/0.040601429800386D0 /
- DATA X(74)/0.912234428251325D0 /, A(74)/0.062672048334109D0 /
- DATA X(75)/0.839116971822218D0 /, A(75)/0.083276741576704D0 /
- DATA X(76)/0.746331906460150D0 /, A(76)/0.101930119817240D0 /
- DATA X(77)/0.636053680726515D0 /, A(77)/0.118194531961518D0 /
- DATA X(78)/0.510867001950827D0 /, A(78)/0.131688638449176D0 /
- DATA X(79)/0.373706088715419D0 /, A(79)/0.142096109318382D0 /
- DATA X(80)/0.227785851141645D0 /, A(80)/0.149172986472603D0 /
- DATA X(81)/0.076526521133497D0 /, A(81)/0.152753387130725D0 /
-C-----N=24
- DATA X(82)/0.995187219997021D0 /, A(82)/0.012341229799987D0 /
- DATA X(83)/0.974728555971309D0 /, A(83)/0.028531388628933D0 /
- DATA X(84)/0.938274552002732D0 /, A(84)/0.044277438817419D0 /
- DATA X(85)/0.886415527004401D0 /, A(85)/0.059298584915436D0 /
- DATA X(86)/0.820001985973902D0 /, A(86)/0.073346481411080D0 /
- DATA X(87)/0.740124191578554D0 /, A(87)/0.086190161531953D0 /
- DATA X(88)/0.648093651936975D0 /, A(88)/0.097618652104113D0 /
- DATA X(89)/0.545421471388839D0 /, A(89)/0.107444270115965D0 /
- DATA X(90)/0.433793507626045D0 /, A(90)/0.115505668053725D0 /
- DATA X(91)/0.315042679696163D0 /, A(91)/0.121670472927803D0 /
- DATA X(92)/0.191118867473616D0 /, A(92)/0.125837456346828D0 /
- DATA X(93)/0.064056892862605D0 /, A(93)/0.127938195346752D0 /
-C-----N=32
- DATA X(94)/0.997263861849481D0 /, A(94)/0.007018610009470D0 /
- DATA X(95)/0.985611511545268D0 /, A(95)/0.016274394730905D0 /
- DATA X(96)/0.964762255587506D0 /, A(96)/0.025392065309262D0 /
- DATA X(97)/0.934906075937739D0 /, A(97)/0.034273862913021D0 /
- DATA X(98)/0.896321155766052D0 /, A(98)/0.042835898022226D0 /
- DATA X(99)/0.849367613732569D0 /, A(99)/0.050998059262376D0 /
- DATA X(100)/0.794483795967942D0/, A(100)/0.058684093478535D0/
- DATA X(101)/0.732182118740289D0/, A(101)/0.065822222776361D0/
- DATA X(102)/0.663044266930215D0/, A(102)/0.072345794108848D0/
- DATA X(103)/0.587715757240762D0/, A(103)/0.078193895787070D0/
- DATA X(104)/0.506899908932229D0/, A(104)/0.083311924226946D0/
- DATA X(105)/0.421351276130635D0/, A(105)/0.087652093004403D0/
- DATA X(106)/0.331868602282127D0/, A(106)/0.091173878695763D0/
- DATA X(107)/0.239287362252137D0/, A(107)/0.093844399080804D0/
- DATA X(108)/0.144471961582796D0/, A(108)/0.095638720079274D0/
- DATA X(109)/0.048307665687738D0/, A(109)/0.096540088514727D0/
-C-----N=40
- DATA X(110)/0.998237709710559D0/, A(110)/0.004521277098533D0/
- DATA X(111)/0.990726238699457D0/, A(111)/0.010498284531152D0/
- DATA X(112)/0.977259949983774D0/, A(112)/0.016421058381907D0/
- DATA X(113)/0.957916819213791D0/, A(113)/0.022245849194166D0/
- DATA X(114)/0.932812808278676D0/, A(114)/0.027937006980023D0/
- DATA X(115)/0.902098806968874D0/, A(115)/0.033460195282547D0/
- DATA X(116)/0.865959503212259D0/, A(116)/0.038782167974472D0/
- DATA X(117)/0.824612230833311D0/, A(117)/0.043870908185673D0/
- DATA X(118)/0.778305651426519D0/, A(118)/0.048695807635072D0/
- DATA X(119)/0.727318255189927D0/, A(119)/0.053227846983936D0/
- DATA X(120)/0.671956684614179D0/, A(120)/0.057439769099391D0/
- DATA X(121)/0.612553889667980D0/, A(121)/0.061306242492928D0/
- DATA X(122)/0.549467125095128D0/, A(122)/0.064804013456601D0/
- DATA X(123)/0.483075801686178D0/, A(123)/0.067912045815233D0/
- DATA X(124)/0.413779204371605D0/, A(124)/0.070611647391286D0/
- DATA X(125)/0.341994090825758D0/, A(125)/0.072886582395804D0/
- DATA X(126)/0.268152185007253D0/, A(126)/0.074723169057968D0/
- DATA X(127)/0.192697580701371D0/, A(127)/0.076110361900626D0/
- DATA X(128)/0.116084070675255D0/, A(128)/0.077039818164247D0/
- DATA X(129)/0.038772417506050D0/, A(129)/0.077505947978424D0/
-C-----N=48
- DATA X(130)/0.998771007252426D0/, A(130)/0.003153346052305D0/
- DATA X(131)/0.993530172266350D0/, A(131)/0.007327553901276D0/
- DATA X(132)/0.984124583722826D0/, A(132)/0.011477234579234D0/
- DATA X(133)/0.970591592546247D0/, A(133)/0.015579315722943D0/
- DATA X(134)/0.952987703160430D0/, A(134)/0.019616160457355D0/
- DATA X(135)/0.931386690706554D0/, A(135)/0.023570760839324D0/
- DATA X(136)/0.905879136715569D0/, A(136)/0.027426509708356D0/
- DATA X(137)/0.876572020274247D0/, A(137)/0.031167227832798D0/
- DATA X(138)/0.843588261624393D0/, A(138)/0.034777222564770D0/
- DATA X(139)/0.807066204029442D0/, A(139)/0.038241351065830D0/
- DATA X(140)/0.767159032515740D0/, A(140)/0.041545082943464D0/
- DATA X(141)/0.724034130923814D0/, A(141)/0.044674560856694D0/
- DATA X(142)/0.677872379632663D0/, A(142)/0.047616658492490D0/
- DATA X(143)/0.628867396776513D0/, A(143)/0.050359035553854D0/
- DATA X(144)/0.577224726083972D0/, A(144)/0.052890189485193D0/
- DATA X(145)/0.523160974722233D0/, A(145)/0.055199503699984D0/
- DATA X(146)/0.466902904750958D0/, A(146)/0.057277292100403D0/
- DATA X(147)/0.408686481990716D0/, A(147)/0.059114839698395D0/
- DATA X(148)/0.348755886292160D0/, A(148)/0.060704439165893D0/
- DATA X(149)/0.287362487355455D0/, A(149)/0.062039423159892D0/
- DATA X(150)/0.224763790394689D0/, A(150)/0.063114192286254D0/
- DATA X(151)/0.161222356068891D0/, A(151)/0.063924238584648D0/
- DATA X(152)/0.097004699209462D0/, A(152)/0.064466164435950D0/
- DATA X(153)/0.032380170962869D0/, A(153)/0.064737696812683D0/
-C-----N=64
- DATA X(154)/0.999305041735772D0/, A(154)/0.001783280721696D0/
- DATA X(155)/0.996340116771955D0/, A(155)/0.004147033260562D0/
- DATA X(156)/0.991013371476744D0/, A(156)/0.006504457968978D0/
- DATA X(157)/0.983336253884625D0/, A(157)/0.008846759826363D0/
- DATA X(158)/0.973326827789910D0/, A(158)/0.011168139460131D0/
- DATA X(159)/0.961008799652053D0/, A(159)/0.013463047896718D0/
- DATA X(160)/0.946411374858402D0/, A(160)/0.015726030476024D0/
- DATA X(161)/0.929569172131939D0/, A(161)/0.017951715775697D0/
- DATA X(162)/0.910522137078502D0/, A(162)/0.020134823153530D0/
- DATA X(163)/0.889315445995114D0/, A(163)/0.022270173808383D0/
- DATA X(164)/0.865999398154092D0/, A(164)/0.024352702568710D0/
- DATA X(165)/0.840629296252580D0/, A(165)/0.026377469715054D0/
- DATA X(166)/0.813265315122797D0/, A(166)/0.028339672614259D0/
- DATA X(167)/0.783972358943341D0/, A(167)/0.030234657072402D0/
- DATA X(168)/0.752819907260531D0/, A(168)/0.032057928354851D0/
- DATA X(169)/0.719881850171610D0/, A(169)/0.033805161837141D0/
- DATA X(170)/0.685236313054233D0/, A(170)/0.035472213256882D0/
- DATA X(171)/0.648965471254657D0/, A(171)/0.037055128540240D0/
- DATA X(172)/0.611155355172393D0/, A(172)/0.038550153178615D0/
- DATA X(173)/0.571895646202634D0/, A(173)/0.039953741132720D0/
- DATA X(174)/0.531279464019894D0/, A(174)/0.041262563242623D0/
- DATA X(175)/0.489403145707052D0/, A(175)/0.042473515123653D0/
- DATA X(176)/0.446366017253464D0/, A(176)/0.043583724529323D0/
- DATA X(177)/0.402270157963991D0/, A(177)/0.044590558163756D0/
- DATA X(178)/0.357220158337668D0/, A(178)/0.045491627927418D0/
- DATA X(179)/0.311322871990210D0/, A(179)/0.046284796581314D0/
- DATA X(180)/0.264687162208767D0/, A(180)/0.046968182816210D0/
- DATA X(181)/0.217423643740007D0/, A(181)/0.047540165714830D0/
- DATA X(182)/0.169644420423992D0/, A(182)/0.047999388596458D0/
- DATA X(183)/0.121462819296120D0/, A(183)/0.048344762234802D0/
- DATA X(184)/0.072993121787799D0/, A(184)/0.048575467441503D0/
- DATA X(185)/0.024350292663424D0/, A(185)/0.048690957009139D0/
-C-----N=80
- DATA X(186)/0.999553822651630D0/, A(186)/0.001144950003186D0/
- DATA X(187)/0.997649864398237D0/, A(187)/0.002663533589512D0/
- DATA X(188)/0.994227540965688D0/, A(188)/0.004180313124694D0/
- DATA X(189)/0.989291302499755D0/, A(189)/0.005690922451403D0/
- DATA X(190)/0.982848572738629D0/, A(190)/0.007192904768117D0/
- DATA X(191)/0.974909140585727D0/, A(191)/0.008683945269260D0/
- DATA X(192)/0.965485089043799D0/, A(192)/0.010161766041103D0/
- DATA X(193)/0.954590766343634D0/, A(193)/0.011624114120797D0/
- DATA X(194)/0.942242761309872D0/, A(194)/0.013068761592401D0/
- DATA X(195)/0.928459877172445D0/, A(195)/0.014493508040509D0/
- DATA X(196)/0.913263102571757D0/, A(196)/0.015896183583725D0/
- DATA X(197)/0.896675579438770D0/, A(197)/0.017274652056269D0/
- DATA X(198)/0.878722567678213D0/, A(198)/0.018626814208299D0/
- DATA X(199)/0.859431406663111D0/, A(199)/0.019950610878141D0/
- DATA X(200)/0.838831473580255D0/, A(200)/0.021244026115782D0/
- DATA X(201)/0.816954138681463D0/, A(201)/0.022505090246332D0/
- DATA X(202)/0.793832717504605D0/, A(202)/0.023731882865930D0/
- DATA X(203)/0.769502420135041D0/, A(203)/0.024922535764115D0/
- DATA X(204)/0.744000297583597D0/, A(204)/0.026075235767565D0/
- DATA X(205)/0.717365185362099D0/, A(205)/0.027188227500486D0/
- DATA X(206)/0.689637644342027D0/, A(206)/0.028259816057276D0/
- DATA X(207)/0.660859898986119D0/, A(207)/0.029288369583267D0/
- DATA X(208)/0.631075773046871D0/, A(208)/0.030272321759557D0/
- DATA X(209)/0.600330622829751D0/, A(209)/0.031210174188114D0/
- DATA X(210)/0.568671268122709D0/, A(210)/0.032100498673487D0/
- DATA X(211)/0.536145920897131D0/, A(211)/0.032941939397645D0/
- DATA X(212)/0.502804111888784D0/, A(212)/0.033733214984611D0/
- DATA X(213)/0.468696615170544D0/, A(213)/0.034473120451753D0/
- DATA X(214)/0.433875370831756D0/, A(214)/0.035160529044747D0/
- DATA X(215)/0.398393405881969D0/, A(215)/0.035794393953416D0/
- DATA X(216)/0.362304753499487D0/, A(216)/0.036373749905835D0/
- DATA X(217)/0.325664370747701D0/, A(217)/0.036897714638276D0/
- DATA X(218)/0.288528054884511D0/, A(218)/0.037365490238730D0/
- DATA X(219)/0.250952358392272D0/, A(219)/0.037776364362001D0/
- DATA X(220)/0.212994502857666D0/, A(220)/0.038129711314477D0/
- DATA X(221)/0.174712291832646D0/, A(221)/0.038424993006959D0/
- DATA X(222)/0.136164022809143D0/, A(222)/0.038661759774076D0/
- DATA X(223)/0.097408398441584D0/, A(223)/0.038839651059051D0/
- DATA X(224)/0.058504437152420D0/, A(224)/0.038958395962769D0/
- DATA X(225)/0.019511383256793D0/, A(225)/0.039017813656306D0/
-C-----N=96
- DATA X(226)/0.999689503883230D0/, A(226)/0.000796792065552D0/
- DATA X(227)/0.998364375863181D0/, A(227)/0.001853960788946D0/
- DATA X(228)/0.995981842987209D0/, A(228)/0.002910731817934D0/
- DATA X(229)/0.992543900323762D0/, A(229)/0.003964554338444D0/
- DATA X(230)/0.988054126329623D0/, A(230)/0.005014202742927D0/
- DATA X(231)/0.982517263563014D0/, A(231)/0.006058545504235D0/
- DATA X(232)/0.975939174585136D0/, A(232)/0.007096470791153D0/
- DATA X(233)/0.968326828463264D0/, A(233)/0.008126876925698D0/
- DATA X(234)/0.959688291448742D0/, A(234)/0.009148671230783D0/
- DATA X(235)/0.950032717784437D0/, A(235)/0.010160770535008D0/
- DATA X(236)/0.939370339752755D0/, A(236)/0.011162102099838D0/
- DATA X(237)/0.927712456722308D0/, A(237)/0.012151604671088D0/
- DATA X(238)/0.915071423120898D0/, A(238)/0.013128229566961D0/
- DATA X(239)/0.901460635315852D0/, A(239)/0.014090941772314D0/
- DATA X(240)/0.886894517402420D0/, A(240)/0.015038721026994D0/
- DATA X(241)/0.871388505909296D0/, A(241)/0.015970562902562D0/
- DATA X(242)/0.854959033434601D0/, A(242)/0.016885479864245D0/
- DATA X(243)/0.837623511228187D0/, A(243)/0.017782502316045D0/
- DATA X(244)/0.819400310737931D0/, A(244)/0.018660679627411D0/
- DATA X(245)/0.800308744139140D0/, A(245)/0.019519081140145D0/
- DATA X(246)/0.780369043867433D0/, A(246)/0.020356797154333D0/
- DATA X(247)/0.759602341176647D0/, A(247)/0.021172939892191D0/
- DATA X(248)/0.738030643744400D0/, A(248)/0.021966644438744D0/
- DATA X(249)/0.715676812348967D0/, A(249)/0.022737069658329D0/
- DATA X(250)/0.692564536642171D0/, A(250)/0.023483399085926D0/
- DATA X(251)/0.668718310043916D0/, A(251)/0.024204841792364D0/
- DATA X(252)/0.644163403784967D0/, A(252)/0.024900633222483D0/
- DATA X(253)/0.618925840125468D0/, A(253)/0.025570036005349D0/
- DATA X(254)/0.593032364777572D0/, A(254)/0.026212340735672D0/
- DATA X(255)/0.566510418561397D0/, A(255)/0.026826866725591D0/
- DATA X(256)/0.539388108324357D0/, A(256)/0.027412962726029D0/
- DATA X(257)/0.511694177154667D0/, A(257)/0.027970007616848D0/
- DATA X(258)/0.483457973920596D0/, A(258)/0.028497411065085D0/
- DATA X(259)/0.454709422167743D0/, A(259)/0.028994614150555D0/
- DATA X(260)/0.425478988407300D0/, A(260)/0.029461089958167D0/
- DATA X(261)/0.395797649828908D0/, A(261)/0.029896344136328D0/
- DATA X(262)/0.365696861472313D0/, A(262)/0.030299915420827D0/
- DATA X(263)/0.335208522892625D0/, A(263)/0.030671376123669D0/
- DATA X(264)/0.304364944354496D0/, A(264)/0.031010332586313D0/
- DATA X(265)/0.273198812591049D0/, A(265)/0.031316425596861D0/
- DATA X(266)/0.241743156163840D0/, A(266)/0.031589330770727D0/
- DATA X(267)/0.210031310460567D0/, A(267)/0.031828758894411D0/
- DATA X(268)/0.178096882367618D0/, A(268)/0.032034456231992D0/
- DATA X(269)/0.145973714654896D0/, A(269)/0.032206204794030D0/
- DATA X(270)/0.113695850110665D0/, A(270)/0.032343822568575D0/
- DATA X(271)/0.081297495464425D0/, A(271)/0.032447163714064D0/
- DATA X(272)/0.048812985136049D0/, A(272)/0.032516118713868D0/
- DATA X(273)/0.016276744849602D0/, A(273)/0.032550614492363D0/
- DATA IBD/0/
- IF(IBD.NE.0) RETURN
- IBD=1
- DO 10 I=1,273
- B(I) = A(I)
- Y(I) = X(I)
- 10 CONTINUE
- DO 20 I=1,96
- LTAB(I) = KTAB(I)
- 20 CONTINUE
- END
-
-CDECK ID>, PHO_DZEROX
- DOUBLE PRECISION FUNCTION PHO_DZEROX(A0,B0,EPS,MAXF,F,MODE)
-C**********************************************************************
-C
-C Based on
-C
-C J.C.P. Bus and T.J. Dekker, Two Efficient Algorithms with
-C Guaranteed Convergence for Finding a Zero of a Function,
-C ACM Trans. Math. Software 1 (1975) 330-345.
-C
-C (MODE = 1: Algorithm M; MODE = 2: Algorithm R)
-C
-C CERNLIB C200
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- CHARACTER NAME*(*)
- PARAMETER (NAME = 'PHO_DZEROX')
- LOGICAL LMT
- DIMENSION IM1(2),IM2(2),LMT(2)
- EXTERNAL F
-
- PARAMETER (Z1 = 1, HALF = Z1/2)
-
- DATA IM1 /2,3/, IM2 /-1,3/
-
- IF(MODE .NE. 1 .AND. MODE .NE. 2) THEN
- C=-2D+10
- WRITE(LO,100) NAME,MODE
- GO TO 99
- ENDIF
- FA=F(B0)
- FB=F(A0)
- IF(FA*FB .GT. 0) THEN
- C=-3D+10
- WRITE(LO,101) NAME
- GO TO 99
- ENDIF
- ATL=ABS(EPS)
- B=A0
- A=B0
- LMT(2)=.TRUE.
- MF=2
- 1 C=A
- FC=FA
- 2 IE=0
- 3 IF(ABS(FC) .LT. ABS(FB)) THEN
- IF(C .NE. A) THEN
- D=A
- FD=FA
- END IF
- A=B
- B=C
- C=A
- FA=FB
- FB=FC
- FC=FA
- END IF
- TOL=ATL*(1+ABS(C))
- H=HALF*(C+B)
- HB=H-B
- IF(ABS(HB) .GT. TOL) THEN
- IF(IE .GT. IM1(MODE)) THEN
- W=HB
- ELSE
- TOL=TOL*SIGN(Z1,HB)
- P=(B-A)*FB
- LMT(1)=IE .LE. 1
- IF(LMT(MODE)) THEN
- Q=FA-FB
- LMT(2)=.FALSE.
- ELSE
- FDB=(FD-FB)/(D-B)
- FDA=(FD-FA)/(D-A)
- P=FDA*P
- Q=FDB*FA-FDA*FB
- END IF
- IF(P .LT. 0) THEN
- P=-P
- Q=-Q
- END IF
- IF(IE .EQ. IM2(MODE)) P=P+P
- IF(P .EQ. 0 .OR. P .LE. Q*TOL) THEN
- W=TOL
- ELSEIF(P .LT. HB*Q) THEN
- W=P/Q
- ELSE
- W=HB
- END IF
- END IF
- D=A
- A=B
- FD=FA
- FA=FB
- B=B+W
- MF=MF+1
- IF(MF .GT. MAXF) THEN
- WRITE(LO,102) NAME
- GO TO 99
- ENDIF
- FB=F(B)
- IF(FB .EQ. 0 .OR. SIGN(Z1,FC) .EQ. SIGN(Z1,FB)) GO TO 1
- IF(W .EQ. HB) GO TO 2
- IE=IE+1
- GO TO 3
- END IF
- 99 CONTINUE
- PHO_DZEROX=C
- RETURN
- 100 FORMAT(1X,A,': mode = ',I3,' illegal')
- 101 FORMAT(1X,A,': F(A) and F(B) have the same sign')
- 102 FORMAT(1X,A,': too many function calls')
-
- END
-
-CDECK ID>, PHO_EXPINT
- DOUBLE PRECISION FUNCTION PHO_EXPINT(RXM)
-C***********************************************************************
-C
-C function to calculate E_i(x) = -E_1(-x)
-C
-C based on CERNLIB C337 (changed by R.Engel 10/1993)
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- DOUBLE PRECISION P1(5),Q1(5),P2(7),Q2(7),P3(6),Q3(6),P4(8),Q4(8)
- DOUBLE PRECISION A1(8),B1(8),A2(8),B2(8),A3(6),B3(6),XL(6)
- DOUBLE PRECISION X,Y,AP,BP,DP,AQ,BQ,DQ,X0,V
-
- DATA X0 /0.37250 74107 8137D0/
- DATA XL /-24.0D0,-12.0D0,-6.0D0,0.0D0,1.0D0,4.0D0/
- DATA P1
- 1/+4.29312 52343 210D+0, +3.98941 53870 321D+1,
- 2 +2.92525 18866 921D+2, +4.25696 82638 592D+2,
- 3 -4.34981 43832 952D+2/
- DATA Q1
- 1/+1.00000 00000 000D+0, +1.88992 88395 003D+1,
- 2 +1.50950 38744 251D+2, +5.68052 52718 987D+2,
- 3 +7.53585 64359 843D+2/
- DATA P2
- 1/+4.30967 83946 939D-1, +6.90522 52278 444D+0,
- 2 +2.30192 55939 133D+1, +2.43784 08879 132D+1,
- 3 +9.04161 55694 633D+0, +9.99979 57705 159D-1,
- 4 +4.65627 10797 510D-7/
- DATA Q2
- 1/+1.03400 13040 487D-1, +3.31909 21359 330D+0,
- 2 +2.04494 78501 379D+1, +4.12807 84189 142D+1,
- 3 +3.24264 21069 514D+1, +1.00411 64382 905D+1,
- 4 +1.00000 00000 000D+0/
- DATA P3
- 1/-2.39099 64453 136D+0, -1.47982 19500 504D+2,
- 2 -2.54376 33976 890D+2, -1.19557 61038 372D+2,
- 3 -1.96304 08535 939D+1, -9.99999 99990 360D-1/
- DATA Q3
- 1/+1.77600 70940 351D+2, +5.30685 09610 812D+2,
- 2 +4.62230 27156 148D+2, +1.56818 43364 539D+2,
- 3 +2.16304 08494 238D+1, +1.00000 00000 000D+0/
- DATA P4
- 1/-8.66937 33995 107D+0, -5.49142 26552 109D+2,
- 2 -4.21001 61535 707D+3, -2.49301 39345 865D+5,
- 3 -1.19623 66934 925D+5, -2.21744 62775 885D+7,
- 4 +3.89280 42131 120D+6, -3.91546 07380 910D+8/
- DATA Q4
- 1/+3.41718 75000 000D+1, -1.60708 92658 722D+3,
- 2 +3.57300 29805 851D+4, -4.83547 43616 216D+5,
- 3 +4.28559 62461 175D+6, -2.49033 37574 054D+7,
- 4 +8.91925 76757 561D+7, -1.65254 29972 521D+8/
- DATA A1
- 1/-2.18086 38152 072D+0, -2.19010 23385 488D+1,
- 2 +9.30816 38566 217D+0, +2.50762 81129 356D+1,
- 3 -3.31842 53199 722D+1, +6.01217 99083 008D+1,
- 4 -4.32531 13287 813D+1, +1.00443 10922 808D+0/
- DATA B1
- 1/+0.00000 00000 000D+0, +3.93707 70185 272D+0,
- 2 +3.00892 64837 292D+2, -6.25041 16167 188D+0,
- 3 +1.00367 43951 673D+3, +1.43256 73812 194D+1,
- 4 +2.73624 11988 933D+3, +5.27468 85196 291D-1/
- DATA A2
- 1/-3.48334 65360 285D+0, -1.86545 45488 340D+1,
- 2 -8.28561 99414 064D+0, -3.23467 33030 540D+1,
- 3 +1.79601 68876 925D+1, +1.75656 31546 961D+0,
- 4 -1.95022 32128 966D+0, +9.99994 29607 471D-1/
- DATA B2
- 1/+0.00000 00000 000D+0, +6.95000 65588 743D+1,
- 2 +5.72837 19383 732D+1, +2.57776 38423 844D+1,
- 3 +7.60761 14800 773D+2, +2.89516 72792 514D+1,
- 4 -3.43942 26689 987D+0, +1.00083 86740 264D+0/
- DATA A3
- 1/-2.77809 28934 438D+1, -1.01047 90815 760D+1,
- 2 -9.14830 08216 736D+0, -5.02233 17461 851D+0,
- 3 -3.00000 77799 358D+0, +1.00000 00000 704D+0/
- DATA B3
- 1/+0.00000 00000 000D+0, +1.22399 93926 823D+2,
- 2 +2.72761 00778 779D+0, -7.18975 18395 045D+0,
- 3 -2.99901 18065 262D+0, +1.99999 99428 260D+0/
-C
-C conversion to E_i function
- X = -RXM
-C
- IF(X .LE. XL(1)) THEN
- AP=A3(1)-X
- DO 1 I = 2,5
- 1 AP=A3(I)-X+B3(I)/AP
- Y=(EXP(-X)/X)*(1.D0-(A3(6)+B3(6)/AP)/X)
- ELSEIF(X .LE. XL(2)) THEN
- AP=A2(1)-X
- DO 2 I = 2,7
- 2 AP=A2(I)-X+B2(I)/AP
- Y=(EXP(-X)/X)*(A2(8)+B2(8)/AP)
- ELSEIF(X .LE. XL(3)) THEN
- AP=A1(1)-X
- DO 3 I = 2,7
- 3 AP=A1(I)-X+B1(I)/AP
- Y=(EXP(-X)/X)*(A1(8)+B1(8)/AP)
- ELSEIF(X .LT. XL(4)) THEN
- V=-2.D0*(X/3.D0+1.D0)
- BP=0.D0
- DP=P4(1)
- DO 4 I = 2,8
- AP=BP
- BP=DP
- 4 DP=P4(I)-AP+V*BP
- BQ=0.D0
- DQ=Q4(1)
- DO 14 I = 2,8
- AQ=BQ
- BQ=DQ
- 14 DQ=Q4(I)-AQ+V*BQ
- Y=-LOG(-X/X0)+(X+X0)*(DP-AP)/(DQ-AQ)
- ELSEIF(X .EQ. XL(4)) THEN
-* CALL KERMTR('C337.1',LGFILE,MFLAG,RFLAG)
-* IF(MFLAG) THEN
-* IF(LGFILE .EQ. 0) THEN
-* WRITE(LO,100) ENAME
-* ELSE
-* WRITE(LGFILE,100) ENAME
-* ENDIF
-* ENDIF
-* IF(.NOT.RFLAG) CALL ABEND
- PHO_EXPINT=0.D0
- RETURN
- ELSEIF(X .LT. XL(5)) THEN
- AP=P1(1)
- AQ=Q1(1)
- DO 5 I = 2,5
- AP=P1(I)+X*AP
- 5 AQ=Q1(I)+X*AQ
- Y=-LOG(X)+AP/AQ
- ELSEIF(X .LE. XL(6)) THEN
- Y=1.D0/X
- AP=P2(1)
- AQ=Q2(1)
- DO 6 I = 2,7
- AP=P2(I)+Y*AP
- 6 AQ=Q2(I)+Y*AQ
- Y=EXP(-X)*AP/AQ
- ELSE
- Y=1.D0/X
- AP=P3(1)
- AQ=Q3(1)
- DO 7 I = 2,6
- AP=P3(I)+Y*AP
- 7 AQ=Q3(I)+Y*AQ
- Y=EXP(-X)*Y*(1.D0+Y*AP/AQ)
- ENDIF
-C sign conversion to E_i
- PHO_EXPINT=-Y
-
- END
-
-CDECK ID>, PHO_RNDBET
- DOUBLE PRECISION FUNCTION PHO_RNDBET(GAM,ETA)
-C********************************************************************
-C
-C RANDOM NUMBER GENERATION FROM BETA
-C DISTRIBUTION IN REGION 0 < X < 1.
-C F(X) = X**(GAM-1.)*(1.-X)**(ETA-1)*GAMM(ETA+GAM) / (GAMM(GAM
-C *GAMM(ETA))
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- Y = PHO_RNDGAM(1.D0,GAM)
- Z = PHO_RNDGAM(1.D0,ETA)
-
- PHO_RNDBET = Y/(Y+Z)
-
- END
-
-CDECK ID>, PHO_RNDGAM
- DOUBLE PRECISION FUNCTION PHO_RNDGAM(ALAM,ETA)
-C********************************************************************
-C
-C RANDOM NUMBER SELECTION FROM GAMMA DISTRIBUTION
-C F(X) = ALAM**ETA*X**(ETA-1)*EXP(-ALAM*X) / GAM(ETA)
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-C
- NCOU=0
- N = ETA
- F = ETA - N
- IF(F.EQ.0.D0) GOTO 20
- 10 R = DT_RNDM(ETA)
- NCOU=NCOU+1
- IF (NCOU.GE.11) GOTO 20
- IF(R.LT.F/(F+2.71828D0)) GOTO 30
- YYY=LOG(DT_RNDM(F)+1.0D-9)/F
- IF(ABS(YYY).GT.50.D0) GOTO 20
- Y = EXP(YYY)
- IF(LOG(DT_RNDM(Y)+1.0D-9).GT.-Y) GOTO 10
- GOTO 40
- 20 Y = 0.D0
- GOTO 50
- 30 Y = 1.D0-LOG(DT_RNDM(R)+1.0D-9)
- IF(DT_RNDM(Y).GT.Y**(F-1.D0)) GOTO 10
- 40 IF(N.EQ.0) GOTO 70
- 50 Z = 1.D0
- DO 60 I = 1,N
- 60 Z = Z*DT_RNDM(Y)
- Y = Y-LOG(Z+1.0D-9)
- 70 PHO_RNDGAM = Y/ALAM
- RETURN
- END
-
-CDECK ID>, PHO_SFECFE
- SUBROUTINE PHO_SFECFE(SFE,CFE)
-C**********************************************************************
-C
-C fast random SIN(X) COS(X) selection
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-C
- 1 CONTINUE
- X=DT_RNDM(XX)
- Y=DT_RNDM(YY)
- XX=X*X
- YY=Y*Y
- XY=XX+YY
- IF(XY.GT.1.D0) GOTO 1
- CFE=(XX-YY)/XY
- SFE=2.D0*X*Y/XY
- IF(DT_RNDM(XY).LT.0.5D0) THEN
- SFE=-SFE
- ENDIF
- END
-
-CDECK ID>, PHO_SWAPD
- SUBROUTINE PHO_SWAPD(D1,D2)
-C********************************************************************
-C
-C exchange of argument values (double precision)
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- D = D1
- D1 = D2
- D2 = D
- END
-
-CDECK ID>, PHO_SWAPI
- SUBROUTINE PHO_SWAPI(I1,I2)
-C********************************************************************
-C
-C exchange of argument values (integer)
-C
-C********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- K = I1
- I1 = I2
- I2 = K
- END
-
-CDECK ID>, PHO_HADCSL
- SUBROUTINE PHO_HADCSL(ID1,ID2,ECM,PLAB,IMODE,
- & SIGTOT,SIGEL,SIGDIF,SLOPE,RHO)
-C***********************************************************************
-C
-C low-energy cross section parametrizations
-C
-C input: ID1,ID2 PDG IDs of particles (meson first)
-C ECM c.m. energy (GeV)
-C PLAB lab. momentum (second particle at rest)
-C IMODE 1 ECM given, PLAB ignored
-C 2 PLAB given, ECM ignored
-C
-C output: SIGTOT total cross section (mb)
-C SIGEL elastic cross section (mb)
-C SIGDIF diffracive cross section (sd-1,sd-2,dd), (mb)
-C SLOPE forward elastic slope (GeV**-2)
-C RHO real/imaginary part of elastic amplitude
-C
-C comments:
-C
-C - low-energy data interpolation uses PDG fits from 1992 issue
-C - high-energy extrapolation by Donnachie-Landshoff like fit made
-C by PDG 1996
-C - analytic extension of amplitude to calculate rho
-C
-C***********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- INTEGER ID1,ID2,IMODE
- DOUBLE PRECISION ECM,PLAB,SIGTOT,SIGEL,SIGDIF(3),SLOPE,RHO
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-C model switches and parameters
- CHARACTER*8 MDLNA
- INTEGER ISWMDL,IPAMDL
- DOUBLE PRECISION PARMDL
- COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
-
- INTEGER K
- DOUBLE PRECISION SIGTO1,SIGTO2,SIGEL1,SIGEL2,
- & SS,PL,PLL,E1,XP,YP,YM,PHR,PHP,X1,X2
-
- DOUBLE PRECISION TPDG92(7,2,6),TPDG96(9,6),BURQ83(3,6),XMA(6)
-
- DATA TPDG92 /
- & 3.D0, 2100.D0, 48.D0, 0.D0, 1.D0, 0.522D0, -4.51D0,
- & 3.D0, 2100.D0, 11.9D0, 26.9D0, -1.21D0, 0.169D0, -1.85D0,
- & 5.D0, 2100.D0, 38.4D0, 77.6D0, -0.64D0, 0.26D0, -1.2D0,
- & 5.D0, 2100.D0, 10.2D0, 52.7D0, -1.16D0, 0.125D0, -1.28D0,
- & 4.D0, 340.D0, 16.4D0, 19.3D0, -0.42D0, 0.19D0, 0.D0,
- & 4.D0, 340.D0, 0.D0, 11.4D0, -0.4D0, 0.079D0, 0.D0,
- & 2.5D0, 370.D0, 33.D0, 14.D0, -1.36D0, 0.456D0, -4.03D0,
- & 2.5D0, 370.D0, 1.76D0, 11.2D0, -0.64D0, 0.043D0, 0.D0,
- & 2.D0, 310.D0, 18.1D0, 0.D0, 1.D0, 0.26D0, -1.D0,
- & 2.D0, 310.D0, 5.D0, 8.1D0, -1.8D0, 0.16D0, -1.3D0,
- & 3.D0, 310.D0, 32.1D0, 0.D0, 1.D0, 0.66D0, -5.6D0,
- & 3.D0, 310.D0, 7.3D0, 0.D0, 1.D0, 0.29D0, -2.4D0 /
-
- DATA TPDG96 /
- & 50.D0, 22.D0,0.079D0,0.25D0,0.D0,
- & 77.15D0,-21.05D0,0.46D0,0.9D0,
- & 50.D0, 22.D0,0.079D0,0.25D0,0.D0,
- & 77.15D0,21.05D0,0.46D0,0.9D0,
- & 10.D0, 13.70,0.079D0,0.25D0,0.D0,
- & 31.85D0,-4.05D0,0.45D0,0.9D0,
- & 10.D0, 13.70,0.079D0,0.25D0,0.D0,
- & 31.85D0,4.05D0,0.45D0,0.9D0,
- & 10.D0, 12.20,0.079D0,0.25D0,0.D0,
- & 17.35D0,-9.05D0,0.50D0,0.9D0,
- & 10.D0, 12.20,0.079D0,0.25D0,0.D0,
- & 17.35D0,9.05D0,0.50D0,0.9D0 /
-
- DATA BURQ83 /
- & 11.13D0, -6.21D0, 0.30D0,
- & 11.13D0, 7.23D0, 0.30D0,
- & 9.11D0, -0.73D0, 0.28D0,
- & 9.11D0, 0.65D0, 0.28D0,
- & 8.55D0, -5.98D0, 0.28D0,
- & 8.55D0, 1.60D0, 0.28D0 /
-
- DATA XMA /
- & 2*0.93956563D0, 2*0.13956995D0, 2*0.493677D0 /
-
-C find index
- IF(ID2.NE.2212) THEN
- GOTO 100
- ELSE IF(ID1.EQ.2212) THEN
- K = 1
- ELSE IF(ID1.EQ.-2212) THEN
- K = 2
- ELSE IF(ID1.EQ.211) THEN
- K = 3
- ELSE IF(ID1.EQ.-211) THEN
- K = 4
- ELSE IF(ID1.EQ.321) THEN
- K = 5
- ELSE IF(ID1.EQ.-321) THEN
- K = 6
- ELSE
- GOTO 100
- ENDIF
-
-C calculate lab momentum
- IF(IMODE.EQ.1) THEN
- SS = ECM**2
- E1 = 0.5D0/XMA(1)*(SS-XMA(1)**2-XMA(K)**2)
- PL = SQRT(E1*E1-XMA(K)**2)
- ELSE IF(IMODE.EQ.2) THEN
- PL = PLAB
- SS = XMA(1)**2+XMA(K)**2+2.D0*XMA(1)*SQRT(PL**2+XMA(K)**2)
- ECM = SQRT(SS)
- ELSE
- WRITE(LO,'(1X,A,I5)') 'PHO_HADCSL:ERROR: invalid IMODE: ',IMODE
- RETURN
- ENDIF
- PLL = LOG(PL)
-
-C check against lower limit
- IF(ECM.LE.XMA(1)+XMA(K)) GOTO 200
-
- XP = TPDG96(2,K)*SS**TPDG96(3,K)
- YP = TPDG96(6,K)/SS**TPDG96(8,K)
- YM = TPDG96(7,K)/SS**TPDG96(8,K)
-
- PHR = TAN(PI/2.D0*(1.-TPDG96(8,K)))
- PHP = TAN(PI/2.D0*(1.+TPDG96(3,K)))
- RHO = (-YP/PHR + YM*PHR - XP/PHP)/(YP+YM+XP)
- SLOPE = BURQ83(1,K)+BURQ83(2,K)/SQRT(PL)+BURQ83(3,K)*PLL
-
-C select energy range and interpolation method
- IF(PL.LT.TPDG96(1,K)) THEN
- SIGTOT = TPDG92(3,1,K)+TPDG92(4,1,K)*PL**TPDG92(5,1,K)
- & + TPDG92(6,1,K)*PLL**2+TPDG92(7,1,K)*PLL
- SIGEL = TPDG92(3,2,K)+TPDG92(4,2,K)*PL**TPDG92(5,2,K)
- & + TPDG92(6,2,K)*PLL**2+TPDG92(7,2,K)*PLL
- ELSE IF(PL.LT.TPDG92(2,1,K)) THEN
- SIGTO1 = TPDG92(3,1,K)+TPDG92(4,1,K)*PL**TPDG92(5,1,K)
- & + TPDG92(6,1,K)*PLL**2+TPDG92(7,1,K)*PLL
- SIGEL1 = TPDG92(3,2,K)+TPDG92(4,2,K)*PL**TPDG92(5,2,K)
- & + TPDG92(6,2,K)*PLL**2+TPDG92(7,2,K)*PLL
- SIGTO2 = YP+YM+XP
- SIGEL2 = SIGTO2**2/(16.D0*PI*SLOPE*GEV2MB)*(1.D0+RHO**2)
- X2 = LOG(PL/TPDG96(1,K))/LOG(TPDG92(2,1,K)/TPDG96(1,K))
- X1 = 1.D0 - X2
- SIGTOT = SIGTO2*X2 + SIGTO1*X1
- SIGEL = SIGEL2*X2 + SIGEL1*X1
- ELSE
- SIGTOT = YP+YM+XP
- SIGEL = SIGTOT**2/(16.D0*PI*SLOPE*GEV2MB)*(1.D0+RHO**2)
- ENDIF
-
-C no parametrization of diffraction implemented
- SIGDIF(1) = -1.D0
- SIGDIF(2) = -1.D0
- SIGDIF(3) = -1.D0
-
- RETURN
-
- 100 CONTINUE
- WRITE(LO,'(1X,2A,2I7)') 'PHO_HADCSL:ERROR: ',
- & 'invalid particle combination: ',ID1,ID2
- RETURN
-
- 200 CONTINUE
- WRITE(LO,'(1X,2A,1P,2E12.4)') 'PHO_HADCSL:ERROR: ',
- & 'energy too small (Ecm,Plab): ',ECM,PLAB
-
- END
-
-CDECK ID>, PHO_CSDIFF
- SUBROUTINE PHO_CSDIFF(Id1,Id2,SS,Xi_min,Xi_max,
- & sig_sd1,sig_sd2,sig_dd)
-C***********************************************************************
-C
-C cross section for diffraction dissociation according to
-C Goulianos' parametrization (Ref: PL B358 (1995) 379)
-C
-C in addition rescaling for different particles is applied using
-C internal rescaling tables (not implemented yet)
-C
-C input: Id1/2 PDG ID's of incoming particles
-C SS squared c.m. energy (GeV**2)
-C Xi_min min. diff mass (squared) = Xi_min*SS
-C Xi_max max. diff mass (squared) = Xi_max*SS
-C
-C output: sig_sd1 cross section for diss. of particle 1 (mb)
-C sig_sd2 cross section for diss. of particle 2 (mb)
-C sig_dd cross section for diss. of both particles
-C
-C***********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
- INTEGER Id1,Id2
- DOUBLE PRECISION SS,Xi_min,Xi_max,sig_sd1,sig_sd2,sig_dd
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-C some constants
- DOUBLE PRECISION PI,PI2,PI4,GEV2MB,Q_ch,Q_ch2,Q_ch4
- COMMON /POCONS/ PI,PI2,PI4,GEV2MB,
- & Q_ch(-6:6),Q_ch2(-6:6),Q_ch4(-6:6)
-
- DOUBLE PRECISION xpos1(96),xwgh1(96),xpos2(96),xwgh2(96)
- DOUBLE PRECISION delta,alphap,beta0,gpom0,xm_p,x_rad2,xm4_p2,
- & fac,tt,t1,t2,tl,tu,Xnorm,xi,xil,xiu,w_xi,alpha_t,f2_t,
- & xms_1,xms_2,CSdiff
-
- INTEGER Ngau1,Ngau2,i1,i2
-
-C model parameters
-
- DATA delta / 0.104d0 /
- DATA alphap / 0.25d0 /
- DATA beta0 / 6.56d0 /
- DATA gpom0 / 1.21d0 /
- DATA xm_p / 0.938d0 /
- DATA x_rad2 / 0.71d0 /
-
-C integration precision
-
- DATA Ngau1 / 96 /
- DATA Ngau2 / 96 /
-
- sig_sd1 = 0.d0
- sig_sd2 = 0.d0
- sig_dd = 0.d0
-
- IF ((ABS(id1).EQ.2212).AND.(ABS(id2).EQ.2212)) THEN
-
- xm4_p2 = 4.D0*xm_p**2
- fac = beta0**2/(16.D0*PI)
-
- t1 = -5.D0
- t2 = 0.D0
- tl = x_rad2/3.D0/(1.D0-t1/x_rad2)**3
- tu = x_rad2/3.D0/(1.D0-t2/x_rad2)**3
-
-C flux renormalization and cross section
-
- Xnorm = 0.d0
-
- xil = log(1.5d0/SS)
- xiu = log(0.1d0)
-
- IF(xiu.LE.xil) goto 1000
-
- CALL PHO_GAUSET(xil,xiu,Ngau1,xpos1,xwgh1)
- CALL PHO_GAUSET(tl,tu,Ngau2,xpos2,xwgh2)
-
- do i1=1,Ngau1
-
- xi = exp(xpos1(i1))
- w_xi = Xwgh1(i1)
-
- do i2=1,Ngau2
-
- tt = x_rad2-x_rad2*(x_rad2/(3.D0*xpos2(i2)))**(1.D0/3.D0)
-
- alpha_t = 1.D0+delta+alphap*tt
- f2_t = ((xm4_p2-2.8D0*tt)/(xm4_p2-tt))**2
-
- Xnorm = Xnorm
- & + f2_t*xi**(2.D0-2.d0*alpha_t)*Xwgh2(i2)*w_xi
-
- enddo
- enddo
-
- Xnorm = Xnorm*fac
-
- 1000 continue
-
- XIL = LOG(Xi_min)
- XIU = LOG(Xi_max)
-
- T1 = -5.D0
- T2 = 0.D0
-
- TL = x_rad2/3.D0/(1.D0-t1/x_rad2)**3
- TU = x_rad2/3.D0/(1.D0-t2/x_rad2)**3
-
-C single diffraction diss. cross section
-
- CSdiff = 0.d0
-
- IF(XIU.LE.XIL) goto 2000
-
- CALL PHO_GAUSET(XIL,XIU,NGAU1,XPOS1,XWGH1)
- CALL PHO_GAUSET(TL,TU,NGAU2,XPOS2,XWGH2)
-
- do i1=1,Ngau1
-
- xi = exp(xpos1(i1))
- w_xi = Xwgh1(i1)*beta0*gpom0*(xi*ss)**delta
-
- do i2=1,Ngau2
-
- tt = x_rad2-x_rad2*(x_rad2/(3.D0*xpos2(i2)))**(1.D0/3.D0)
-
- alpha_t = 1.D0+delta+alphap*tt
- f2_t = ((xm4_p2-2.8D0*tt)/(xm4_p2-tt))**2
-
- CSdiff = CSdiff
- & + f2_t*xi**(2.D0-2.d0*alpha_t)*Xwgh2(i2)*w_xi
-
- enddo
- enddo
-
- CSdiff = CSdiff*fac*GEV2MB/MAX(1.d0,Xnorm)
-
-* WRITE(LO,'(1x,1p,4e14.3)')
-* & sqrt(SS),Xnorm,2.*CSdiff*MAX(1.d0,Xnorm),2.*CSdiff
-
- sig_sd1 = CSdiff
- sig_sd2 = CSdiff
-
- 2000 continue
-
-C double diffraction dissociation cross section
-
- CSdiff = 0.d0
-
- xil = log(1.5d0/SS)
- xiu = log(Xi_max/1.5d0)
-
- IF(xiu.LE.xil) goto 3000
-
- fac = (beta0*gpom0*SS**delta
- & /(4.d0*sqrt(PI)*MAX(1.d0,Xnorm)))**2
- & /(2.d0*alphap)
-
- CALL PHO_GAUSET(xil,xiu,ngau1,xpos1,xwgh1)
-
- do i1=1,Ngau1
-
- xi = exp(xpos1(i1))
- xms_1 = xi*SS
-
- xiu = log(Xi_max/(xi*SS))
-
- if(xil.lt.xiu) then
-
- CALL PHO_GAUSET(xil,xiu,Ngau2,xpos2,xwgh2)
-
- do i2=1,Ngau2
-
- xms_2 = exp(xpos2(i2))*SS
- CSdiff = CSdiff
- & + 1.d0/((xms_1*xms_2)**delta*log(SS/(xms_1*xms_2)))
- & *xwgh1(i1)*xwgh2(i2)
-
- enddo
-
- endif
-
- enddo
-
- sig_dd = CSdiff*fac*GEV2MB
-
- 3000 continue
-
- ELSE
-
- WRITE(LO,'(1x,2a,2I8)') 'PHO_CSDIFF: ',
- & 'invalid particle combination (Id1/2)',Id1,Id2
-
- ENDIF
-
- END
-
-CDECK ID>, PHO_ALLM97
- DOUBLE PRECISION FUNCTION PHO_ALLM97(Q2,W)
-C**********************************************************************
-C
-C ALLM97 parametrization for gamma*-p cross section
-C (for F2 see comments, code adapted from V. Shekelyan, H1)
-C
-C**********************************************************************
-
- IMPLICIT NONE
-
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- DOUBLE PRECISION Q2,W
- DOUBLE PRECISION M02,M12,LAM2,M22
- DOUBLE PRECISION S11,S12,S13,A11,A12,A13,B11,B12,B13
- DOUBLE PRECISION S21,S22,S23,A21,A22,A23,B21,B22,B23
- DOUBLE PRECISION ALFA,XMP2,W2,Q02,S,T,T0,Z,CIN,
- & AP,BP,AR,BR,XP,XR,SR,SP,F2P,F2R
- DATA ALFA,XMP2 /112.2D0 , .8802D0 /
-
- W2=W*W
- PHO_ALLM97 = 0.D0
-
-C pomeron
- S11 = 0.28067D0
- S12 = 0.22291D0
- S13 = 2.1979D0
- A11 = -0.0808D0
- A12 = -0.44812D0
- A13 = 1.1709D0
- B11 = 0.60243D0
- B12 = 1.3754D0
- B13 = 1.8439D0
- M12 = 49.457D0
-
-C reggeon
- S21 = 0.80107D0
- S22 = 0.97307D0
- S23 = 3.4942D0
- A21 = 0.58400D0
- A22 = 0.37888D0
- A23 = 2.6063D0
- B21 = 0.10711D0
- B22 = 1.9386D0
- B23 = 0.49338D0
- M22 = 0.15052D0
-C
- M02 = 0.31985D0
- LAM2 = 0.065270D0
- Q02 = 0.46017D0 +LAM2
-
-C
- S=0.
- T=LOG((Q2+Q02)/LAM2)
- T0=LOG(Q02/LAM2)
- IF(Q2.GT.0.D0) S=LOG(T/T0)
- Z=1.D0
-
- IF(Q2.GT.0.D0) Z=(W2-XMP2)/(Q2+W2-XMP2)
-
- IF(S.LT.0.01D0) THEN
-
-C pomeron part
-
- XP=1.D0 /(1.D0 +(W2-XMP2)/(Q2+M12))
-
- AP=A11
- BP=B11**2
-
- SP=S11
- F2P=SP*XP**AP*Z**BP
-
-C reggeon part
-
- XR=1.D0 /(1.D0 +(W2-XMP2)/(Q2+M22))
-
- AR=A21
- BR=B21**2
-
- SR=S21
- F2R=SR*XR**AR*Z**BR
-
- ELSE
-
-C pomeron part
-
- XP=1.D0 /(1.D0 +(W2-XMP2)/(Q2+M12))
-
- AP=A11+(A11-A12)*(1.D0 /(1.D0 +S**A13)-1.D0 )
-
- BP=B11**2+B12**2*S**B13
-
- SP=S11+(S11-S12)*(1.D0 /(1.D0 +S**S13)-1.D0 )
-
- F2P=SP*XP**AP*Z**BP
-
-C reggeon part
-
- XR=1.D0 /(1.D0 +(W2-XMP2)/(Q2+M22))
-
- AR=A21+A22*S**A23
- BR=B21**2+B22**2*S**B23
-
- SR=S21+S22*S**S23
- F2R=SR*XR**AR*Z**BR
-
- ENDIF
-
-* F2 = (F2P+F2R)*Q2/(Q2+M02)
-
- CIN=ALFA/(Q2+M02)*(1.D0 +4.D0*XMP2*Q2/(Q2+W2-XMP2)**2)/Z
- PHO_ALLM97 = CIN*(F2P+F2R)
-
- END
-
-CDECK ID>, PHO_DOR98LO
- SUBROUTINE PHO_DOR98LO (Xinp, Q2inp, UV, DV, US, DS, SS, GL)
-C***********************************************************************
-C
-C GRV98 parton densities, leading order set
-C
-C For a detailed explanation see
-C M. Glueck, E. Reya, A. Vogt :
-C hep-ph/9806404 = DO-TH 98/07 = WUE-ITP-98-019
-C (To appear in Eur. Phys. J. C)
-C
-C interpolation routine based on the original GRV98PA routine,
-C adapted to define interpolation table as DATA statements
-C
-C (R.Engel, 09/98)
-C
-C
-C INPUT: X = Bjorken-x (between 1.E-9 and 1.)
-C Q2 = scale in GeV**2 (between 0.8 and 1.E6)
-C
-C OUTPUT: UV = u - u(bar), DV = d - d(bar), US = u(bar),
-C DS = d(bar), SS = s = s(bar), GL = gluon.
-C Always x times the distribution is returned.
-C
-C******************************************************i****************
- IMPLICIT DOUBLE PRECISION (A-H, O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- PARAMETER (NPART=6, NX=68, NQ=27, NARG=2)
- DIMENSION XUVF(NX,NQ), XDVF(NX,NQ), XDEF(NX,NQ), XUDF(NX,NQ),
- 1 XSF(NX,NQ), XGF(NX,NQ),
- 2 XT(NARG), NA(NARG), ARRF(NX+NQ)
-
- DIMENSION XUVF_L(NX*NQ), XDVF_L(NX*NQ), XDEF_L(NX*NQ),
- & XUDF_L(NX*NQ), XSF_L(NX*NQ), XGF_L(NX*NQ)
-
- EQUIVALENCE (XUVF(1,1),XUVF_L(1))
- EQUIVALENCE (XDVF(1,1),XDVF_L(1))
- EQUIVALENCE (XDEF(1,1),XDEF_L(1))
- EQUIVALENCE (XUDF(1,1),XUDF_L(1))
- EQUIVALENCE (XSF(1,1),XSF_L(1))
- EQUIVALENCE (XGF(1,1),XGF_L(1))
-
- DATA (ARRF(K),K= 1, 95) /
- & -2.0723E+01,-2.0135E+01,-1.9560E+01,-1.8983E+01,-1.8421E+01,
- & -1.7833E+01,-1.7258E+01,-1.6680E+01,-1.6118E+01,-1.5530E+01,
- & -1.4955E+01,-1.4378E+01,-1.3816E+01,-1.3479E+01,-1.3122E+01,
- & -1.2717E+01,-1.2311E+01,-1.1913E+01,-1.1513E+01,-1.1176E+01,
- & -1.0820E+01,-1.0414E+01,-1.0009E+01,-9.6108E+00,-9.2103E+00,
- & -8.8739E+00,-8.5172E+00,-8.1117E+00,-7.7063E+00,-7.3082E+00,
- & -6.9078E+00,-6.5713E+00,-6.2146E+00,-5.8091E+00,-5.4037E+00,
- & -5.0056E+00,-4.6052E+00,-4.2687E+00,-3.9120E+00,-3.5066E+00,
- & -3.1011E+00,-2.8134E+00,-2.5257E+00,-2.3026E+00,-2.0794E+00,
- & -1.8971E+00,-1.7430E+00,-1.6094E+00,-1.4917E+00,-1.3863E+00,
- & -1.2910E+00,-1.2040E+00,-1.1239E+00,-1.0498E+00,-9.8083E-01,
- & -9.1629E-01,-7.9851E-01,-6.9315E-01,-5.9784E-01,-5.1083E-01,
- & -4.3078E-01,-3.5667E-01,-2.8768E-01,-2.2314E-01,-1.6252E-01,
- & -1.0536E-01,-5.1293E-02, 0.0000E+00,-2.2314E-01, 0.0000E+00,
- & 2.6236E-01, 5.8779E-01, 9.9325E-01, 1.3863E+00, 1.8563E+00,
- & 2.3026E+00, 2.7726E+00, 3.2189E+00, 3.6889E+00, 4.1589E+00,
- & 4.6052E+00, 5.1930E+00, 5.7683E+00, 6.3456E+00, 6.9078E+00,
- & 7.4955E+00, 8.0709E+00, 8.6482E+00, 9.2103E+00, 9.9988E+00,
- & 1.0736E+01, 1.1513E+01, 1.2301E+01, 1.3039E+01, 1.3816E+01/
- DATA (XUVF_L(K),K= 1, 114) /
- &2.3186E+00,2.2915E+00,2.2645E+00,2.2385E+00,2.2140E+00,2.1876E+00,
- &2.1623E+00,2.1366E+00,2.1121E+00,2.0862E+00,2.0612E+00,2.0358E+00,
- &2.0110E+00,1.9963E+00,1.9806E+00,1.9624E+00,1.9446E+00,1.9263E+00,
- &1.9072E+00,1.8904E+00,1.8724E+00,1.8515E+00,1.8294E+00,1.8085E+00,
- &1.7865E+00,1.7680E+00,1.7483E+00,1.7249E+00,1.6993E+00,1.6715E+00,
- &1.6385E+00,1.6141E+00,1.5884E+00,1.5597E+00,1.5337E+00,1.5121E+00,
- &1.4985E+00,1.4980E+00,1.5116E+00,1.5555E+00,1.6432E+00,1.7434E+00,
- &1.8861E+00,2.0327E+00,2.2174E+00,2.4015E+00,2.5849E+00,2.7671E+00,
- &2.9488E+00,3.1308E+00,3.3142E+00,3.4998E+00,3.6885E+00,3.8826E+00,
- &4.0815E+00,4.2069E+00,4.5481E+00,4.8830E+00,5.2116E+00,5.5351E+00,
- &5.8553E+00,6.1665E+00,6.4745E+00,6.7767E+00,7.0735E+00,7.3628E+00,
- &7.6283E+00,0.0000E+00,2.3948E+00,2.3665E+00,2.3388E+00,2.3126E+00,
- &2.2860E+00,2.2592E+00,2.2327E+00,2.2065E+00,2.1810E+00,2.1541E+00,
- &2.1284E+00,2.1020E+00,2.0760E+00,2.0605E+00,2.0443E+00,2.0259E+00,
- &2.0068E+00,1.9873E+00,1.9676E+00,1.9500E+00,1.9312E+00,1.9081E+00,
- &1.8860E+00,1.8635E+00,1.8406E+00,1.8221E+00,1.8007E+00,1.7764E+00,
- &1.7489E+00,1.7195E+00,1.6855E+00,1.6600E+00,1.6332E+00,1.6031E+00,
- &1.5760E+00,1.5532E+00,1.5397E+00,1.5376E+00,1.5507E+00,1.5929E+00,
- &1.6784E+00,1.7759E+00,1.9129E+00,2.0531E+00,2.2292E+00,2.4032E+00/
- DATA (XUVF_L(K),K= 115, 228) /
- &2.5752E+00,2.7449E+00,2.9135E+00,3.0810E+00,3.2491E+00,3.4183E+00,
- &3.5898E+00,3.7650E+00,3.9437E+00,4.0443E+00,4.3402E+00,4.6262E+00,
- &4.9009E+00,5.1640E+00,5.4156E+00,5.6530E+00,5.8759E+00,6.0779E+00,
- &6.2540E+00,6.3836E+00,6.4062E+00,0.0000E+00,2.4808E+00,2.4513E+00,
- &2.4236E+00,2.3948E+00,2.3680E+00,2.3397E+00,2.3127E+00,2.2853E+00,
- &2.2585E+00,2.2307E+00,2.2026E+00,2.1762E+00,2.1490E+00,2.1332E+00,
- &2.1164E+00,2.0964E+00,2.0766E+00,2.0565E+00,2.0353E+00,2.0171E+00,
- &1.9969E+00,1.9738E+00,1.9501E+00,1.9258E+00,1.9026E+00,1.8821E+00,
- &1.8594E+00,1.8330E+00,1.8046E+00,1.7734E+00,1.7378E+00,1.7112E+00,
- &1.6829E+00,1.6514E+00,1.6228E+00,1.5994E+00,1.5840E+00,1.5808E+00,
- &1.5927E+00,1.6334E+00,1.7157E+00,1.8093E+00,1.9406E+00,2.0735E+00,
- &2.2394E+00,2.4019E+00,2.5615E+00,2.7178E+00,2.8718E+00,3.0246E+00,
- &3.1766E+00,3.3284E+00,3.4820E+00,3.6370E+00,3.7952E+00,3.8716E+00,
- &4.1225E+00,4.3580E+00,4.5798E+00,4.7847E+00,4.9730E+00,5.1395E+00,
- &5.2832E+00,5.3945E+00,5.4634E+00,5.4612E+00,5.2940E+00,0.0000E+00,
- &2.5823E+00,2.5527E+00,2.5226E+00,2.4928E+00,2.4650E+00,2.4358E+00,
- &2.4071E+00,2.3783E+00,2.3505E+00,2.3212E+00,2.2928E+00,2.2636E+00,
- &2.2360E+00,2.2185E+00,2.2005E+00,2.1801E+00,2.1591E+00,2.1376E+00,
- &2.1153E+00,2.0960E+00,2.0747E+00,2.0505E+00,2.0247E+00,1.9991E+00/
- DATA (XUVF_L(K),K= 229, 342) /
- &1.9746E+00,1.9523E+00,1.9287E+00,1.9000E+00,1.8693E+00,1.8361E+00,
- &1.7994E+00,1.7711E+00,1.7409E+00,1.7076E+00,1.6772E+00,1.6517E+00,
- &1.6345E+00,1.6302E+00,1.6408E+00,1.6789E+00,1.7574E+00,1.8457E+00,
- &1.9692E+00,2.0939E+00,2.2474E+00,2.3969E+00,2.5419E+00,2.6837E+00,
- &2.8216E+00,2.9573E+00,3.0915E+00,3.2246E+00,3.3583E+00,3.4917E+00,
- &3.6273E+00,3.6791E+00,3.8823E+00,4.0673E+00,4.2350E+00,4.3813E+00,
- &4.5072E+00,4.6083E+00,4.6757E+00,4.7055E+00,4.6825E+00,4.5674E+00,
- &4.2566E+00,0.0000E+00,2.7025E+00,2.6705E+00,2.6393E+00,2.6093E+00,
- &2.5790E+00,2.5484E+00,2.5184E+00,2.4880E+00,2.4590E+00,2.4277E+00,
- &2.3971E+00,2.3669E+00,2.3380E+00,2.3200E+00,2.3002E+00,2.2782E+00,
- &2.2557E+00,2.2331E+00,2.2092E+00,2.1887E+00,2.1660E+00,2.1400E+00,
- &2.1126E+00,2.0859E+00,2.0586E+00,2.0351E+00,2.0094E+00,1.9786E+00,
- &1.9453E+00,1.9096E+00,1.8707E+00,1.8406E+00,1.8084E+00,1.7728E+00,
- &1.7392E+00,1.7128E+00,1.6933E+00,1.6875E+00,1.6949E+00,1.7295E+00,
- &1.8023E+00,1.8845E+00,1.9991E+00,2.1134E+00,2.2525E+00,2.3868E+00,
- &2.5160E+00,2.6405E+00,2.7609E+00,2.8781E+00,2.9929E+00,3.1059E+00,
- &3.2180E+00,3.3292E+00,3.4407E+00,3.4675E+00,3.6225E+00,3.7573E+00,
- &3.8710E+00,3.9617E+00,4.0270E+00,4.0642E+00,4.0675E+00,4.0263E+00,
- &3.9240E+00,3.7262E+00,3.3217E+00,0.0000E+00,2.8135E+00,2.7813E+00/
- DATA (XUVF_L(K),K= 343, 456) /
- &2.7489E+00,2.7166E+00,2.6850E+00,2.6527E+00,2.6212E+00,2.5898E+00,
- &2.5592E+00,2.5267E+00,2.4943E+00,2.4636E+00,2.4320E+00,2.4129E+00,
- &2.3929E+00,2.3695E+00,2.3453E+00,2.3211E+00,2.2959E+00,2.2740E+00,
- &2.2496E+00,2.2221E+00,2.1931E+00,2.1653E+00,2.1356E+00,2.1112E+00,
- &2.0830E+00,2.0503E+00,2.0147E+00,1.9766E+00,1.9361E+00,1.9037E+00,
- &1.8696E+00,1.8318E+00,1.7966E+00,1.7677E+00,1.7459E+00,1.7378E+00,
- &1.7430E+00,1.7738E+00,1.8407E+00,1.9169E+00,2.0223E+00,2.1273E+00,
- &2.2537E+00,2.3742E+00,2.4892E+00,2.5990E+00,2.7043E+00,2.8056E+00,
- &2.9038E+00,3.0000E+00,3.0936E+00,3.1864E+00,3.2782E+00,3.2867E+00,
- &3.4021E+00,3.4971E+00,3.5691E+00,3.6188E+00,3.6422E+00,3.6335E+00,
- &3.5908E+00,3.5036E+00,3.3552E+00,3.1085E+00,2.6634E+00,0.0000E+00,
- &2.9406E+00,2.9062E+00,2.8726E+00,2.8385E+00,2.8060E+00,2.7720E+00,
- &2.7392E+00,2.7058E+00,2.6734E+00,2.6399E+00,2.6057E+00,2.5722E+00,
- &2.5390E+00,2.5194E+00,2.4975E+00,2.4728E+00,2.4471E+00,2.4216E+00,
- &2.3945E+00,2.3712E+00,2.3458E+00,2.3152E+00,2.2856E+00,2.2545E+00,
- &2.2237E+00,2.1966E+00,2.1672E+00,2.1312E+00,2.0926E+00,2.0521E+00,
- &2.0093E+00,1.9748E+00,1.9384E+00,1.8975E+00,1.8601E+00,1.8275E+00,
- &1.8036E+00,1.7924E+00,1.7948E+00,1.8206E+00,1.8808E+00,1.9499E+00,
- &2.0450E+00,2.1390E+00,2.2512E+00,2.3570E+00,2.4564E+00,2.5501E+00/
- DATA (XUVF_L(K),K= 457, 570) /
- &2.6391E+00,2.7240E+00,2.8053E+00,2.8834E+00,2.9590E+00,3.0326E+00,
- &3.1042E+00,3.0942E+00,3.1727E+00,3.2289E+00,3.2628E+00,3.2739E+00,
- &3.2574E+00,3.2103E+00,3.1297E+00,3.0047E+00,2.8211E+00,2.5467E+00,
- &2.0897E+00,0.0000E+00,3.0557E+00,3.0193E+00,2.9840E+00,2.9497E+00,
- &2.9150E+00,2.8801E+00,2.8454E+00,2.8109E+00,2.7771E+00,2.7412E+00,
- &2.7065E+00,2.6716E+00,2.6360E+00,2.6149E+00,2.5923E+00,2.5663E+00,
- &2.5395E+00,2.5120E+00,2.4834E+00,2.4589E+00,2.4330E+00,2.4011E+00,
- &2.3676E+00,2.3363E+00,2.3027E+00,2.2736E+00,2.2422E+00,2.2040E+00,
- &2.1629E+00,2.1194E+00,2.0750E+00,2.0384E+00,1.9996E+00,1.9565E+00,
- &1.9160E+00,1.8811E+00,1.8541E+00,1.8409E+00,1.8399E+00,1.8611E+00,
- &1.9143E+00,1.9764E+00,2.0622E+00,2.1459E+00,2.2457E+00,2.3385E+00,
- &2.4249E+00,2.5051E+00,2.5806E+00,2.6515E+00,2.7182E+00,2.7823E+00,
- &2.8427E+00,2.9008E+00,2.9564E+00,2.9332E+00,2.9828E+00,3.0094E+00,
- &3.0142E+00,2.9955E+00,2.9537E+00,2.8796E+00,2.7735E+00,2.6260E+00,
- &2.4242E+00,2.1388E+00,1.6900E+00,0.0000E+00,3.1718E+00,3.1348E+00,
- &3.0971E+00,3.0610E+00,3.0260E+00,2.9896E+00,2.9533E+00,2.9173E+00,
- &2.8818E+00,2.8449E+00,2.8072E+00,2.7709E+00,2.7340E+00,2.7121E+00,
- &2.6877E+00,2.6605E+00,2.6319E+00,2.6032E+00,2.5732E+00,2.5471E+00,
- &2.5180E+00,2.4851E+00,2.4511E+00,2.4170E+00,2.3817E+00,2.3505E+00/
- DATA (XUVF_L(K),K= 571, 684) /
- &2.3172E+00,2.2762E+00,2.2328E+00,2.1868E+00,2.1400E+00,2.1012E+00,
- &2.0601E+00,2.0136E+00,1.9704E+00,1.9335E+00,1.9035E+00,1.8868E+00,
- &1.8827E+00,1.8990E+00,1.9452E+00,2.0005E+00,2.0763E+00,2.1507E+00,
- &2.2377E+00,2.3179E+00,2.3917E+00,2.4592E+00,2.5218E+00,2.5799E+00,
- &2.6336E+00,2.6843E+00,2.7314E+00,2.7753E+00,2.8166E+00,2.7824E+00,
- &2.8054E+00,2.8081E+00,2.7893E+00,2.7474E+00,2.6818E+00,2.5888E+00,
- &2.4646E+00,2.3032E+00,2.0902E+00,1.8025E+00,1.3740E+00,0.0000E+00,
- &3.2793E+00,3.2385E+00,3.2014E+00,3.1643E+00,3.1270E+00,3.0888E+00,
- &3.0517E+00,3.0141E+00,2.9773E+00,2.9392E+00,2.9009E+00,2.8610E+00,
- &2.8230E+00,2.8000E+00,2.7754E+00,2.7459E+00,2.7163E+00,2.6858E+00,
- &2.6545E+00,2.6270E+00,2.5962E+00,2.5617E+00,2.5271E+00,2.4903E+00,
- &2.4527E+00,2.4207E+00,2.3851E+00,2.3421E+00,2.2960E+00,2.2476E+00,
- &2.1987E+00,2.1578E+00,2.1146E+00,2.0670E+00,2.0202E+00,1.9796E+00,
- &1.9468E+00,1.9282E+00,1.9203E+00,1.9319E+00,1.9712E+00,2.0197E+00,
- &2.0872E+00,2.1524E+00,2.2288E+00,2.2981E+00,2.3606E+00,2.4177E+00,
- &2.4692E+00,2.5159E+00,2.5591E+00,2.5981E+00,2.6339E+00,2.6669E+00,
- &2.6962E+00,2.6528E+00,2.6566E+00,2.6395E+00,2.6028E+00,2.5437E+00,
- &2.4622E+00,2.3555E+00,2.2200E+00,2.0488E+00,1.8335E+00,1.5506E+00,
- &1.1442E+00,0.0000E+00,3.3868E+00,3.3470E+00,3.3075E+00,3.2689E+00/
- DATA (XUVF_L(K),K= 685, 798) /
- &3.2300E+00,3.1909E+00,3.1517E+00,3.1129E+00,3.0747E+00,3.0335E+00,
- &2.9946E+00,2.9537E+00,2.9140E+00,2.8896E+00,2.8638E+00,2.8337E+00,
- &2.8021E+00,2.7705E+00,2.7373E+00,2.7075E+00,2.6767E+00,2.6403E+00,
- &2.6031E+00,2.5649E+00,2.5258E+00,2.4917E+00,2.4537E+00,2.4080E+00,
- &2.3597E+00,2.3091E+00,2.2580E+00,2.2150E+00,2.1692E+00,2.1186E+00,
- &2.0701E+00,2.0257E+00,1.9901E+00,1.9679E+00,1.9571E+00,1.9629E+00,
- &1.9955E+00,2.0378E+00,2.0963E+00,2.1529E+00,2.2178E+00,2.2766E+00,
- &2.3287E+00,2.3749E+00,2.4162E+00,2.4529E+00,2.4850E+00,2.5140E+00,
- &2.5392E+00,2.5617E+00,2.5798E+00,2.5298E+00,2.5151E+00,2.4811E+00,
- &2.4282E+00,2.3561E+00,2.2611E+00,2.1439E+00,2.0005E+00,1.8252E+00,
- &1.6091E+00,1.3345E+00,9.5375E-01,0.0000E+00,3.4912E+00,3.4507E+00,
- &3.4100E+00,3.3696E+00,3.3310E+00,3.2893E+00,3.2496E+00,3.2088E+00,
- &3.1686E+00,3.1278E+00,3.0865E+00,3.0438E+00,3.0020E+00,2.9766E+00,
- &2.9494E+00,2.9180E+00,2.8850E+00,2.8520E+00,2.8174E+00,2.7877E+00,
- &2.7550E+00,2.7169E+00,2.6762E+00,2.6369E+00,2.5958E+00,2.5594E+00,
- &2.5195E+00,2.4721E+00,2.4211E+00,2.3680E+00,2.3145E+00,2.2695E+00,
- &2.2214E+00,2.1684E+00,2.1154E+00,2.0706E+00,2.0303E+00,2.0058E+00,
- &1.9909E+00,1.9920E+00,2.0177E+00,2.0531E+00,2.1031E+00,2.1511E+00,
- &2.2060E+00,2.2548E+00,2.2972E+00,2.3339E+00,2.3655E+00,2.3927E+00/
- DATA (XUVF_L(K),K= 799, 912) /
- &2.4159E+00,2.4357E+00,2.4520E+00,2.4644E+00,2.4735E+00,2.4171E+00,
- &2.3878E+00,2.3397E+00,2.2743E+00,2.1907E+00,2.0861E+00,1.9611E+00,
- &1.8128E+00,1.6351E+00,1.4227E+00,1.1584E+00,8.0371E-01,0.0000E+00,
- &3.5892E+00,3.5473E+00,3.5055E+00,3.4637E+00,3.4230E+00,3.3809E+00,
- &3.3396E+00,3.2976E+00,3.2571E+00,3.2126E+00,3.1696E+00,3.1272E+00,
- &3.0840E+00,3.0569E+00,3.0286E+00,2.9959E+00,2.9619E+00,2.9273E+00,
- &2.8910E+00,2.8598E+00,2.8266E+00,2.7863E+00,2.7448E+00,2.7029E+00,
- &2.6598E+00,2.6219E+00,2.5804E+00,2.5305E+00,2.4773E+00,2.4214E+00,
- &2.3662E+00,2.3191E+00,2.2698E+00,2.2126E+00,2.1577E+00,2.1092E+00,
- &2.0674E+00,2.0393E+00,2.0210E+00,2.0173E+00,2.0367E+00,2.0654E+00,
- &2.1076E+00,2.1485E+00,2.1942E+00,2.2338E+00,2.2678E+00,2.2959E+00,
- &2.3193E+00,2.3386E+00,2.3539E+00,2.3660E+00,2.3738E+00,2.3789E+00,
- &2.3799E+00,2.3197E+00,2.2776E+00,2.2186E+00,2.1426E+00,2.0495E+00,
- &1.9397E+00,1.8097E+00,1.6583E+00,1.4814E+00,1.2736E+00,1.0200E+00,
- &6.8880E-01,0.0000E+00,3.7157E+00,3.6699E+00,3.6275E+00,3.5842E+00,
- &3.5420E+00,3.4972E+00,3.4542E+00,3.4107E+00,3.3678E+00,3.3234E+00,
- &3.2774E+00,3.2332E+00,3.1870E+00,3.1600E+00,3.1297E+00,3.0952E+00,
- &3.0595E+00,3.0231E+00,2.9850E+00,2.9534E+00,2.9160E+00,2.8740E+00,
- &2.8312E+00,2.7872E+00,2.7408E+00,2.7014E+00,2.6568E+00,2.6045E+00/
- DATA (XUVF_L(K),K= 913, 1026) /
- &2.5481E+00,2.4895E+00,2.4315E+00,2.3817E+00,2.3283E+00,2.2697E+00,
- &2.2106E+00,2.1591E+00,2.1128E+00,2.0807E+00,2.0578E+00,2.0477E+00,
- &2.0583E+00,2.0796E+00,2.1122E+00,2.1433E+00,2.1777E+00,2.2069E+00,
- &2.2299E+00,2.2483E+00,2.2618E+00,2.2718E+00,2.2778E+00,2.2803E+00,
- &2.2797E+00,2.2749E+00,2.2668E+00,2.2019E+00,2.1468E+00,2.0761E+00,
- &1.9902E+00,1.8883E+00,1.7711E+00,1.6370E+00,1.4847E+00,1.3103E+00,
- &1.1091E+00,8.7047E-01,5.6856E-01,0.0000E+00,3.8327E+00,3.7877E+00,
- &3.7424E+00,3.6981E+00,3.6540E+00,3.6083E+00,3.5637E+00,3.5184E+00,
- &3.4753E+00,3.4271E+00,3.3800E+00,3.3325E+00,3.2860E+00,3.2564E+00,
- &3.2258E+00,3.1893E+00,3.1519E+00,3.1135E+00,3.0738E+00,3.0389E+00,
- &3.0010E+00,2.9580E+00,2.9118E+00,2.8654E+00,2.8178E+00,2.7758E+00,
- &2.7289E+00,2.6738E+00,2.6146E+00,2.5530E+00,2.4924E+00,2.4399E+00,
- &2.3845E+00,2.3213E+00,2.2605E+00,2.2040E+00,2.1540E+00,2.1186E+00,
- &2.0908E+00,2.0749E+00,2.0772E+00,2.0914E+00,2.1145E+00,2.1368E+00,
- &2.1613E+00,2.1804E+00,2.1941E+00,2.2037E+00,2.2088E+00,2.2101E+00,
- &2.2083E+00,2.2031E+00,2.1942E+00,2.1826E+00,2.1665E+00,2.0987E+00,
- &2.0321E+00,1.9516E+00,1.8571E+00,1.7497E+00,1.6281E+00,1.4923E+00,
- &1.3406E+00,1.1697E+00,9.7635E-01,7.5209E-01,4.7638E-01,0.0000E+00,
- &3.9497E+00,3.9009E+00,3.8555E+00,3.8080E+00,3.7630E+00,3.7163E+00/
- DATA (XUVF_L(K),K= 1027, 1140) /
- &3.6699E+00,3.6231E+00,3.5765E+00,3.5285E+00,3.4807E+00,3.4305E+00,
- &3.3810E+00,3.3511E+00,3.3185E+00,3.2805E+00,3.2414E+00,3.2016E+00,
- &3.1598E+00,3.1244E+00,3.0837E+00,3.0383E+00,2.9908E+00,2.9424E+00,
- &2.8919E+00,2.8477E+00,2.7990E+00,2.7403E+00,2.6784E+00,2.6142E+00,
- &2.5507E+00,2.4960E+00,2.4362E+00,2.3710E+00,2.3058E+00,2.2463E+00,
- &2.1931E+00,2.1539E+00,2.1216E+00,2.0996E+00,2.0940E+00,2.1012E+00,
- &2.1154E+00,2.1294E+00,2.1444E+00,2.1543E+00,2.1597E+00,2.1610E+00,
- &2.1585E+00,2.1523E+00,2.1432E+00,2.1307E+00,2.1155E+00,2.0964E+00,
- &2.0742E+00,2.0035E+00,1.9273E+00,1.8396E+00,1.7387E+00,1.6273E+00,
- &1.5032E+00,1.3665E+00,1.2164E+00,1.0501E+00,8.6515E-01,6.5470E-01,
- &4.0284E-01,0.0000E+00,4.0572E+00,4.0093E+00,3.9616E+00,3.9140E+00,
- &3.8670E+00,3.8185E+00,3.7706E+00,3.7224E+00,3.6746E+00,3.6251E+00,
- &3.5744E+00,3.5233E+00,3.4720E+00,3.4406E+00,3.4062E+00,3.3671E+00,
- &3.3263E+00,3.2847E+00,3.2414E+00,3.2046E+00,3.1620E+00,3.1150E+00,
- &3.0653E+00,3.0145E+00,2.9619E+00,2.9153E+00,2.8641E+00,2.8032E+00,
- &2.7388E+00,2.6715E+00,2.6056E+00,2.5481E+00,2.4880E+00,2.4171E+00,
- &2.3496E+00,2.2862E+00,2.2282E+00,2.1865E+00,2.1502E+00,2.1217E+00,
- &2.1086E+00,2.1086E+00,2.1149E+00,2.1216E+00,2.1275E+00,2.1295E+00,
- &2.1273E+00,2.1212E+00,2.1119E+00,2.0992E+00,2.0837E+00,2.0653E+00/
- DATA (XUVF_L(K),K= 1141, 1254) /
- &2.0442E+00,2.0194E+00,1.9912E+00,1.9193E+00,1.8359E+00,1.7412E+00,
- &1.6366E+00,1.5214E+00,1.3956E+00,1.2594E+00,1.1115E+00,9.5033E-01,
- &7.7356E-01,5.7585E-01,3.4506E-01,0.0000E+00,4.1710E+00,4.1201E+00,
- &4.0712E+00,4.0213E+00,3.9730E+00,3.9228E+00,3.8734E+00,3.8233E+00,
- &3.7726E+00,3.7217E+00,3.6699E+00,3.6160E+00,3.5640E+00,3.5311E+00,
- &3.4960E+00,3.4549E+00,3.4121E+00,3.3689E+00,3.3237E+00,3.2848E+00,
- &3.2425E+00,3.1917E+00,3.1399E+00,3.0866E+00,3.0319E+00,2.9838E+00,
- &2.9306E+00,2.8668E+00,2.7992E+00,2.7291E+00,2.6605E+00,2.6007E+00,
- &2.5375E+00,2.4631E+00,2.3919E+00,2.3261E+00,2.2643E+00,2.2183E+00,
- &2.1772E+00,2.1426E+00,2.1222E+00,2.1155E+00,2.1135E+00,2.1130E+00,
- &2.1102E+00,2.1039E+00,2.0941E+00,2.0815E+00,2.0652E+00,2.0466E+00,
- &2.0251E+00,2.0014E+00,1.9746E+00,1.9450E+00,1.9116E+00,1.8381E+00,
- &1.7481E+00,1.6484E+00,1.5404E+00,1.4225E+00,1.2963E+00,1.1611E+00,
- &1.0161E+00,8.6047E-01,6.9193E-01,5.0691E-01,2.9581E-01,0.0000E+00,
- &4.2754E+00,4.2238E+00,4.1737E+00,4.1233E+00,4.0740E+00,4.0219E+00,
- &3.9713E+00,3.9196E+00,3.8675E+00,3.8160E+00,3.7618E+00,3.7060E+00,
- &3.6510E+00,3.6173E+00,3.5808E+00,3.5380E+00,3.4941E+00,3.4493E+00,
- &3.4027E+00,3.3623E+00,3.3163E+00,3.2647E+00,3.2114E+00,3.1563E+00,
- &3.0989E+00,3.0489E+00,2.9929E+00,2.9263E+00,2.8563E+00,2.7837E+00/
- DATA (XUVF_L(K),K= 1255, 1368) /
- &2.7122E+00,2.6501E+00,2.5825E+00,2.5073E+00,2.4327E+00,2.3623E+00,
- &2.2962E+00,2.2474E+00,2.2020E+00,2.1616E+00,2.1335E+00,2.1209E+00,
- &2.1113E+00,2.1034E+00,2.0929E+00,2.0795E+00,2.0634E+00,2.0439E+00,
- &2.0222E+00,1.9982E+00,1.9716E+00,1.9428E+00,1.9113E+00,1.8773E+00,
- &1.8394E+00,1.7649E+00,1.6692E+00,1.5658E+00,1.4547E+00,1.3360E+00,
- &1.2095E+00,1.0761E+00,9.3485E-01,7.8430E-01,6.2380E-01,4.5010E-01,
- &2.5625E-01,0.0000E+00,4.3798E+00,4.3275E+00,4.2762E+00,4.2239E+00,
- &4.1730E+00,4.1196E+00,4.0674E+00,4.0143E+00,3.9623E+00,3.9056E+00,
- &3.8502E+00,3.7935E+00,3.7370E+00,3.7018E+00,3.6642E+00,3.6200E+00,
- &3.5742E+00,3.5277E+00,3.4786E+00,3.4371E+00,3.3901E+00,3.3359E+00,
- &3.2800E+00,3.2235E+00,3.1639E+00,3.1115E+00,3.0537E+00,2.9847E+00,
- &2.9116E+00,2.8364E+00,2.7623E+00,2.6973E+00,2.6275E+00,2.5497E+00,
- &2.4705E+00,2.3972E+00,2.3281E+00,2.2747E+00,2.2253E+00,2.1793E+00,
- &2.1444E+00,2.1253E+00,2.1081E+00,2.0939E+00,2.0755E+00,2.0555E+00,
- &2.0332E+00,2.0081E+00,1.9814E+00,1.9522E+00,1.9205E+00,1.8875E+00,
- &1.8520E+00,1.8139E+00,1.7725E+00,1.6968E+00,1.5976E+00,1.4911E+00,
- &1.3772E+00,1.2577E+00,1.1320E+00,1.0005E+00,8.6242E-01,7.1750E-01,
- &5.6466E-01,4.0150E-01,2.2333E-01,0.0000E+00,4.4809E+00,4.4265E+00,
- &4.3735E+00,4.3193E+00,4.2670E+00,4.2128E+00,4.1585E+00,4.1039E+00/
- DATA (XUVF_L(K),K= 1369, 1482) /
- &4.0509E+00,3.9928E+00,3.9351E+00,3.8769E+00,3.8180E+00,3.7821E+00,
- &3.7434E+00,3.6974E+00,3.6501E+00,3.6019E+00,3.5513E+00,3.5093E+00,
- &3.4594E+00,3.4035E+00,3.3456E+00,3.2870E+00,3.2250E+00,3.1715E+00,
- &3.1110E+00,3.0396E+00,2.9639E+00,2.8863E+00,2.8096E+00,2.7429E+00,
- &2.6702E+00,2.5884E+00,2.5068E+00,2.4296E+00,2.3560E+00,2.3003E+00,
- &2.2464E+00,2.1951E+00,2.1530E+00,2.1283E+00,2.1045E+00,2.0843E+00,
- &2.0591E+00,2.0328E+00,2.0047E+00,1.9749E+00,1.9429E+00,1.9096E+00,
- &1.8740E+00,1.8369E+00,1.7978E+00,1.7560E+00,1.7116E+00,1.6360E+00,
- &1.5322E+00,1.4233E+00,1.3084E+00,1.1885E+00,1.0637E+00,9.3449E-01,
- &7.9961E-01,6.6020E-01,5.1453E-01,3.6103E-01,1.9641E-01,0.0000E+00,
- &4.6169E+00,4.5608E+00,4.5060E+00,4.4504E+00,4.3960E+00,4.3395E+00,
- &4.2837E+00,4.2262E+00,4.1710E+00,4.1106E+00,4.0517E+00,3.9908E+00,
- &3.9300E+00,3.8920E+00,3.8509E+00,3.8030E+00,3.7538E+00,3.7035E+00,
- &3.6494E+00,3.6055E+00,3.5556E+00,3.4966E+00,3.4351E+00,3.3738E+00,
- &3.3090E+00,3.2518E+00,3.1888E+00,3.1141E+00,3.0348E+00,2.9533E+00,
- &2.8730E+00,2.8020E+00,2.7264E+00,2.6400E+00,2.5551E+00,2.4732E+00,
- &2.3941E+00,2.3329E+00,2.2742E+00,2.2147E+00,2.1644E+00,2.1317E+00,
- &2.0986E+00,2.0700E+00,2.0363E+00,2.0021E+00,1.9668E+00,1.9299E+00,
- &1.8922E+00,1.8532E+00,1.8125E+00,1.7704E+00,1.7270E+00,1.6809E+00/
- DATA (XUVF_L(K),K= 1483, 1596) /
- &1.6327E+00,1.5570E+00,1.4497E+00,1.3373E+00,1.2215E+00,1.1020E+00,
- &9.7897E-01,8.5304E-01,7.2349E-01,5.9074E-01,4.5411E-01,3.1307E-01,
- &1.6547E-01,0.0000E+00,4.7403E+00,4.6834E+00,4.6262E+00,4.5696E+00,
- &4.5140E+00,4.4557E+00,4.3978E+00,4.3393E+00,4.2817E+00,4.2191E+00,
- &4.1578E+00,4.0941E+00,4.0310E+00,3.9917E+00,3.9492E+00,3.8995E+00,
- &3.8481E+00,3.7958E+00,3.7411E+00,3.6937E+00,3.6405E+00,3.5806E+00,
- &3.5171E+00,3.4520E+00,3.3840E+00,3.3254E+00,3.2596E+00,3.1812E+00,
- &3.0985E+00,3.0137E+00,2.9301E+00,2.8556E+00,2.7782E+00,2.6879E+00,
- &2.5974E+00,2.5119E+00,2.4281E+00,2.3629E+00,2.2982E+00,2.2324E+00,
- &2.1730E+00,2.1332E+00,2.0922E+00,2.0570E+00,2.0152E+00,1.9739E+00,
- &1.9323E+00,1.8902E+00,1.8474E+00,1.8039E+00,1.7589E+00,1.7129E+00,
- &1.6654E+00,1.6163E+00,1.5652E+00,1.4896E+00,1.3789E+00,1.2649E+00,
- &1.1487E+00,1.0300E+00,9.0896E-01,7.8619E-01,6.6149E-01,5.3498E-01,
- &4.0654E-01,2.7586E-01,1.4208E-01,0.0000E+00,4.8699E+00,4.8107E+00,
- &4.7518E+00,4.6928E+00,4.6350E+00,4.5750E+00,4.5152E+00,4.4524E+00,
- &4.3956E+00,4.3299E+00,4.2674E+00,4.2014E+00,4.1350E+00,4.0939E+00,
- &4.0503E+00,3.9982E+00,3.9448E+00,3.8905E+00,3.8328E+00,3.7846E+00,
- &3.7300E+00,3.6664E+00,3.5991E+00,3.5326E+00,3.4620E+00,3.3998E+00,
- &3.3311E+00,3.2494E+00,3.1632E+00,3.0752E+00,2.9881E+00,2.9120E+00/
- DATA (XUVF_L(K),K= 1597, 1710) /
- &2.8299E+00,2.7339E+00,2.6398E+00,2.5493E+00,2.4611E+00,2.3911E+00,
- &2.3215E+00,2.2482E+00,2.1812E+00,2.1342E+00,2.0854E+00,2.0427E+00,
- &1.9932E+00,1.9453E+00,1.8978E+00,1.8504E+00,1.8030E+00,1.7545E+00,
- &1.7059E+00,1.6565E+00,1.6056E+00,1.5535E+00,1.4989E+00,1.4245E+00,
- &1.3108E+00,1.1959E+00,1.0798E+00,9.6219E-01,8.4358E-01,7.2422E-01,
- &6.0451E-01,4.8425E-01,3.6380E-01,2.4286E-01,1.2189E-01,0.0000E+00,
- &4.9964E+00,4.9356E+00,4.8755E+00,4.8147E+00,4.7550E+00,4.6935E+00,
- &4.6315E+00,4.5697E+00,4.5062E+00,4.4406E+00,4.3752E+00,4.3061E+00,
- &4.2380E+00,4.1962E+00,4.1500E+00,4.0963E+00,4.0405E+00,3.9832E+00,
- &3.9245E+00,3.8728E+00,3.8172E+00,3.7504E+00,3.6811E+00,3.6108E+00,
- &3.5381E+00,3.4734E+00,3.4018E+00,3.3164E+00,3.2269E+00,3.1352E+00,
- &3.0446E+00,2.9657E+00,2.8794E+00,2.7800E+00,2.6821E+00,2.5867E+00,
- &2.4930E+00,2.4184E+00,2.3433E+00,2.2634E+00,2.1877E+00,2.1342E+00,
- &2.0772E+00,2.0279E+00,1.9713E+00,1.9172E+00,1.8642E+00,1.8120E+00,
- &1.7600E+00,1.7076E+00,1.6553E+00,1.6027E+00,1.5491E+00,1.4938E+00,
- &1.4374E+00,1.3637E+00,1.2481E+00,1.1325E+00,1.0166E+00,9.0047E-01,
- &7.8428E-01,6.6889E-01,5.5381E-01,4.3953E-01,3.2652E-01,2.1461E-01,
- &1.0498E-01,0.0000E+00,5.1134E+00,5.0511E+00,4.9886E+00,4.9273E+00,
- &4.8660E+00,4.8016E+00,4.7382E+00,4.6744E+00,4.6106E+00,4.5420E+00/
- DATA (XUVF_L(K),K= 1711, 1824) /
- &4.4742E+00,4.4028E+00,4.3320E+00,4.2892E+00,4.2413E+00,4.1858E+00,
- &4.1281E+00,4.0682E+00,4.0067E+00,3.9556E+00,3.8955E+00,3.8271E+00,
- &3.7556E+00,3.6829E+00,3.6071E+00,3.5401E+00,3.4662E+00,3.3777E+00,
- &3.2849E+00,3.1898E+00,3.0960E+00,3.0140E+00,2.9244E+00,2.8224E+00,
- &2.7183E+00,2.6191E+00,2.5219E+00,2.4431E+00,2.3628E+00,2.2767E+00,
- &2.1931E+00,2.1332E+00,2.0695E+00,2.0145E+00,1.9514E+00,1.8920E+00,
- &1.8340E+00,1.7775E+00,1.7215E+00,1.6664E+00,1.6108E+00,1.5553E+00,
- &1.4995E+00,1.4421E+00,1.3839E+00,1.3103E+00,1.1944E+00,1.0782E+00,
- &9.6271E-01,8.4822E-01,7.3481E-01,6.2240E-01,5.1184E-01,4.0291E-01,
- &2.9618E-01,1.9206E-01,9.1846E-02,0.0000E+00,5.2367E+00,5.1713E+00,
- &5.1071E+00,5.0425E+00,4.9800E+00,4.9141E+00,4.8489E+00,4.7833E+00,
- &4.7181E+00,4.6457E+00,4.5768E+00,4.5034E+00,4.4300E+00,4.3847E+00,
- &4.3353E+00,4.2782E+00,4.2182E+00,4.1570E+00,4.0921E+00,4.0385E+00,
- &3.9782E+00,3.9074E+00,3.8331E+00,3.7575E+00,3.6781E+00,3.6086E+00,
- &3.5313E+00,3.4401E+00,3.3439E+00,3.2455E+00,3.1483E+00,3.0623E+00,
- &2.9694E+00,2.8629E+00,2.7561E+00,2.6527E+00,2.5508E+00,2.4669E+00,
- &2.3816E+00,2.2887E+00,2.1979E+00,2.1317E+00,2.0613E+00,2.0002E+00,
- &1.9307E+00,1.8659E+00,1.8033E+00,1.7426E+00,1.6834E+00,1.6247E+00,
- &1.5668E+00,1.5085E+00,1.4504E+00,1.3916E+00,1.3311E+00,1.2591E+00/
- DATA (XUVF_L(K),K= 1825, 1836) /
- &1.1415E+00,1.0256E+00,9.1107E-01,7.9840E-01,6.8736E-01,5.7902E-01,
- &4.7260E-01,3.6895E-01,2.6838E-01,1.7161E-01,8.0264E-02,0.0000E+00/
- DATA (XDVF_L(K),K= 1, 114) /
- &1.4230E+00,1.4064E+00,1.3903E+00,1.3749E+00,1.3590E+00,1.3424E+00,
- &1.3271E+00,1.3114E+00,1.2962E+00,1.2803E+00,1.2647E+00,1.2492E+00,
- &1.2340E+00,1.2246E+00,1.2155E+00,1.2044E+00,1.1927E+00,1.1814E+00,
- &1.1695E+00,1.1589E+00,1.1479E+00,1.1347E+00,1.1214E+00,1.1080E+00,
- &1.0944E+00,1.0824E+00,1.0700E+00,1.0544E+00,1.0371E+00,1.0188E+00,
- &9.9884E-01,9.8287E-01,9.6563E-01,9.4645E-01,9.2847E-01,9.1313E-01,
- &9.0246E-01,8.9955E-01,9.0461E-01,9.2737E-01,9.7648E-01,1.0343E+00,
- &1.1168E+00,1.2030E+00,1.3129E+00,1.4240E+00,1.5357E+00,1.6492E+00,
- &1.7643E+00,1.8818E+00,2.0016E+00,2.1253E+00,2.2535E+00,2.3853E+00,
- &2.5225E+00,2.5620E+00,2.7906E+00,3.0230E+00,3.2574E+00,3.4983E+00,
- &3.7459E+00,4.0062E+00,4.2803E+00,4.5790E+00,4.9150E+00,5.3263E+00,
- &5.9228E+00,0.0000E+00,1.4698E+00,1.4526E+00,1.4360E+00,1.4199E+00,
- &1.4030E+00,1.3864E+00,1.3702E+00,1.3542E+00,1.3386E+00,1.3221E+00,
- &1.3059E+00,1.2896E+00,1.2740E+00,1.2644E+00,1.2544E+00,1.2425E+00,
- &1.2309E+00,1.2185E+00,1.2061E+00,1.1953E+00,1.1836E+00,1.1697E+00,
- &1.1558E+00,1.1417E+00,1.1275E+00,1.1154E+00,1.1011E+00,1.0844E+00,
- &1.0663E+00,1.0471E+00,1.0261E+00,1.0092E+00,9.9133E-01,9.7103E-01,
- &9.5184E-01,9.3560E-01,9.2380E-01,9.1922E-01,9.2378E-01,9.4563E-01,
- &9.9235E-01,1.0474E+00,1.1262E+00,1.2078E+00,1.3110E+00,1.4146E+00/
- DATA (XDVF_L(K),K= 115, 228) /
- &1.5192E+00,1.6241E+00,1.7298E+00,1.8375E+00,1.9471E+00,2.0592E+00,
- &2.1741E+00,2.2925E+00,2.4144E+00,2.4425E+00,2.6407E+00,2.8375E+00,
- &3.0361E+00,3.2345E+00,3.4343E+00,3.6388E+00,3.8488E+00,4.0682E+00,
- &4.3043E+00,4.5737E+00,4.9280E+00,0.0000E+00,1.5226E+00,1.5047E+00,
- &1.4874E+00,1.4702E+00,1.4530E+00,1.4363E+00,1.4193E+00,1.4023E+00,
- &1.3860E+00,1.3690E+00,1.3520E+00,1.3351E+00,1.3190E+00,1.3083E+00,
- &1.2983E+00,1.2858E+00,1.2733E+00,1.2606E+00,1.2476E+00,1.2362E+00,
- &1.2237E+00,1.2092E+00,1.1943E+00,1.1795E+00,1.1645E+00,1.1509E+00,
- &1.1365E+00,1.1185E+00,1.0994E+00,1.0784E+00,1.0566E+00,1.0388E+00,
- &1.0195E+00,9.9801E-01,9.7765E-01,9.6019E-01,9.4712E-01,9.4158E-01,
- &9.4524E-01,9.6454E-01,1.0088E+00,1.0604E+00,1.1346E+00,1.2112E+00,
- &1.3076E+00,1.4038E+00,1.4995E+00,1.5957E+00,1.6918E+00,1.7888E+00,
- &1.8877E+00,1.9877E+00,2.0896E+00,2.1940E+00,2.2999E+00,2.3168E+00,
- &2.4844E+00,2.6497E+00,2.8098E+00,2.9678E+00,3.1219E+00,3.2743E+00,
- &3.4260E+00,3.5742E+00,3.7237E+00,3.8717E+00,4.0300E+00,0.0000E+00,
- &1.5849E+00,1.5662E+00,1.5482E+00,1.5298E+00,1.5130E+00,1.4944E+00,
- &1.4769E+00,1.4593E+00,1.4423E+00,1.4243E+00,1.4066E+00,1.3894E+00,
- &1.3720E+00,1.3607E+00,1.3499E+00,1.3366E+00,1.3237E+00,1.3101E+00,
- &1.2963E+00,1.2840E+00,1.2709E+00,1.2553E+00,1.2396E+00,1.2232E+00/
- DATA (XDVF_L(K),K= 229, 342) /
- &1.2075E+00,1.1932E+00,1.1776E+00,1.1584E+00,1.1377E+00,1.1152E+00,
- &1.0922E+00,1.0729E+00,1.0524E+00,1.0294E+00,1.0074E+00,9.8843E-01,
- &9.7377E-01,9.6751E-01,9.6901E-01,9.8606E-01,1.0264E+00,1.0745E+00,
- &1.1435E+00,1.2136E+00,1.3018E+00,1.3894E+00,1.4758E+00,1.5619E+00,
- &1.6474E+00,1.7332E+00,1.8194E+00,1.9063E+00,1.9941E+00,2.0832E+00,
- &2.1725E+00,2.1789E+00,2.3166E+00,2.4460E+00,2.5708E+00,2.6884E+00,
- &2.7987E+00,2.9025E+00,2.9974E+00,3.0823E+00,3.1538E+00,3.2013E+00,
- &3.2043E+00,0.0000E+00,1.6586E+00,1.6391E+00,1.6202E+00,1.6014E+00,
- &1.5830E+00,1.5638E+00,1.5457E+00,1.5267E+00,1.5087E+00,1.4899E+00,
- &1.4711E+00,1.4517E+00,1.4340E+00,1.4224E+00,1.4107E+00,1.3972E+00,
- &1.3827E+00,1.3684E+00,1.3535E+00,1.3404E+00,1.3263E+00,1.3096E+00,
- &1.2927E+00,1.2758E+00,1.2575E+00,1.2422E+00,1.2250E+00,1.2046E+00,
- &1.1821E+00,1.1579E+00,1.1331E+00,1.1127E+00,1.0905E+00,1.0655E+00,
- &1.0415E+00,1.0207E+00,1.0042E+00,9.9612E-01,9.9507E-01,1.0089E+00,
- &1.0451E+00,1.0887E+00,1.1514E+00,1.2146E+00,1.2936E+00,1.3711E+00,
- &1.4469E+00,1.5220E+00,1.5960E+00,1.6694E+00,1.7428E+00,1.8159E+00,
- &1.8894E+00,1.9620E+00,2.0344E+00,2.0313E+00,2.1357E+00,2.2333E+00,
- &2.3215E+00,2.4009E+00,2.4706E+00,2.5292E+00,2.5750E+00,2.6036E+00,
- &2.6096E+00,2.5783E+00,2.4673E+00,0.0000E+00,1.7269E+00,1.7065E+00/
- DATA (XDVF_L(K),K= 343, 456) /
- &1.6866E+00,1.6676E+00,1.6480E+00,1.6279E+00,1.6089E+00,1.5891E+00,
- &1.5701E+00,1.5502E+00,1.5307E+00,1.5113E+00,1.4910E+00,1.4799E+00,
- &1.4673E+00,1.4526E+00,1.4373E+00,1.4221E+00,1.4060E+00,1.3922E+00,
- &1.3771E+00,1.3596E+00,1.3414E+00,1.3234E+00,1.3045E+00,1.2879E+00,
- &1.2689E+00,1.2468E+00,1.2227E+00,1.1966E+00,1.1706E+00,1.1487E+00,
- &1.1248E+00,1.0980E+00,1.0724E+00,1.0495E+00,1.0310E+00,1.0212E+00,
- &1.0181E+00,1.0291E+00,1.0609E+00,1.1002E+00,1.1563E+00,1.2136E+00,
- &1.2840E+00,1.3528E+00,1.4201E+00,1.4854E+00,1.5492E+00,1.6125E+00,
- &1.6751E+00,1.7368E+00,1.7981E+00,1.8579E+00,1.9157E+00,1.9057E+00,
- &1.9875E+00,2.0577E+00,2.1190E+00,2.1700E+00,2.2094E+00,2.2370E+00,
- &2.2484E+00,2.2403E+00,2.2047E+00,2.1261E+00,1.9567E+00,0.0000E+00,
- &1.8047E+00,1.7833E+00,1.7626E+00,1.7418E+00,1.7220E+00,1.7009E+00,
- &1.6810E+00,1.6603E+00,1.6403E+00,1.6193E+00,1.5986E+00,1.5775E+00,
- &1.5570E+00,1.5441E+00,1.5309E+00,1.5156E+00,1.4991E+00,1.4828E+00,
- &1.4658E+00,1.4510E+00,1.4350E+00,1.4160E+00,1.3966E+00,1.3772E+00,
- &1.3565E+00,1.3386E+00,1.3184E+00,1.2942E+00,1.2680E+00,1.2404E+00,
- &1.2125E+00,1.1887E+00,1.1631E+00,1.1342E+00,1.1064E+00,1.0813E+00,
- &1.0608E+00,1.0480E+00,1.0426E+00,1.0500E+00,1.0774E+00,1.1111E+00,
- &1.1608E+00,1.2107E+00,1.2719E+00,1.3315E+00,1.3886E+00,1.4445E+00/
- DATA (XDVF_L(K),K= 457, 570) /
- &1.4984E+00,1.5505E+00,1.6020E+00,1.6524E+00,1.7009E+00,1.7480E+00,
- &1.7926E+00,1.7763E+00,1.8327E+00,1.8794E+00,1.9154E+00,1.9405E+00,
- &1.9531E+00,1.9537E+00,1.9362E+00,1.8986E+00,1.8325E+00,1.7203E+00,
- &1.5163E+00,0.0000E+00,1.8755E+00,1.8533E+00,1.8314E+00,1.8106E+00,
- &1.7890E+00,1.7672E+00,1.7464E+00,1.7248E+00,1.7038E+00,1.6817E+00,
- &1.6601E+00,1.6385E+00,1.6160E+00,1.6033E+00,1.5889E+00,1.5721E+00,
- &1.5552E+00,1.5380E+00,1.5199E+00,1.5042E+00,1.4871E+00,1.4670E+00,
- &1.4463E+00,1.4249E+00,1.4036E+00,1.3843E+00,1.3630E+00,1.3364E+00,
- &1.3086E+00,1.2791E+00,1.2500E+00,1.2245E+00,1.1971E+00,1.1662E+00,
- &1.1361E+00,1.1090E+00,1.0858E+00,1.0721E+00,1.0641E+00,1.0676E+00,
- &1.0898E+00,1.1195E+00,1.1627E+00,1.2069E+00,1.2603E+00,1.3118E+00,
- &1.3607E+00,1.4079E+00,1.4534E+00,1.4968E+00,1.5392E+00,1.5794E+00,
- &1.6181E+00,1.6552E+00,1.6888E+00,1.6690E+00,1.7073E+00,1.7353E+00,
- &1.7530E+00,1.7595E+00,1.7531E+00,1.7338E+00,1.6988E+00,1.6428E+00,
- &1.5583E+00,1.4293E+00,1.2136E+00,0.0000E+00,1.9470E+00,1.9238E+00,
- &1.9021E+00,1.8782E+00,1.8570E+00,1.8343E+00,1.8123E+00,1.7898E+00,
- &1.7680E+00,1.7449E+00,1.7222E+00,1.6994E+00,1.6760E+00,1.6624E+00,
- &1.6469E+00,1.6299E+00,1.6118E+00,1.5933E+00,1.5742E+00,1.5574E+00,
- &1.5392E+00,1.5179E+00,1.4955E+00,1.4738E+00,1.4506E+00,1.4300E+00/
- DATA (XDVF_L(K),K= 571, 684) /
- &1.4069E+00,1.3792E+00,1.3492E+00,1.3178E+00,1.2868E+00,1.2597E+00,
- &1.2307E+00,1.1976E+00,1.1654E+00,1.1363E+00,1.1108E+00,1.0945E+00,
- &1.0840E+00,1.0845E+00,1.1017E+00,1.1268E+00,1.1637E+00,1.2016E+00,
- &1.2473E+00,1.2910E+00,1.3324E+00,1.3719E+00,1.4090E+00,1.4450E+00,
- &1.4784E+00,1.5109E+00,1.5404E+00,1.5681E+00,1.5925E+00,1.5689E+00,
- &1.5916E+00,1.6043E+00,1.6067E+00,1.5981E+00,1.5779E+00,1.5449E+00,
- &1.4949E+00,1.4262E+00,1.3303E+00,1.1932E+00,9.7657E-01,0.0000E+00,
- &2.0122E+00,1.9881E+00,1.9640E+00,1.9418E+00,1.9190E+00,1.8954E+00,
- &1.8721E+00,1.8492E+00,1.8262E+00,1.8024E+00,1.7784E+00,1.7550E+00,
- &1.7300E+00,1.7157E+00,1.6999E+00,1.6818E+00,1.6627E+00,1.6435E+00,
- &1.6233E+00,1.6058E+00,1.5866E+00,1.5643E+00,1.5417E+00,1.5178E+00,
- &1.4926E+00,1.4705E+00,1.4465E+00,1.4174E+00,1.3856E+00,1.3527E+00,
- &1.3198E+00,1.2914E+00,1.2605E+00,1.2257E+00,1.1915E+00,1.1601E+00,
- &1.1326E+00,1.1142E+00,1.1016E+00,1.0982E+00,1.1114E+00,1.1321E+00,
- &1.1637E+00,1.1958E+00,1.2352E+00,1.2722E+00,1.3071E+00,1.3397E+00,
- &1.3704E+00,1.3995E+00,1.4267E+00,1.4516E+00,1.4736E+00,1.4942E+00,
- &1.5100E+00,1.4848E+00,1.4955E+00,1.4964E+00,1.4873E+00,1.4675E+00,
- &1.4366E+00,1.3933E+00,1.3349E+00,1.2585E+00,1.1565E+00,1.0171E+00,
- &8.0601E-01,0.0000E+00,2.0789E+00,2.0539E+00,2.0294E+00,2.0053E+00/
- DATA (XDVF_L(K),K= 685, 798) /
- &1.9820E+00,1.9581E+00,1.9336E+00,1.9096E+00,1.8860E+00,1.8609E+00,
- &1.8367E+00,1.8106E+00,1.7860E+00,1.7706E+00,1.7543E+00,1.7350E+00,
- &1.7150E+00,1.6945E+00,1.6735E+00,1.6550E+00,1.6349E+00,1.6112E+00,
- &1.5864E+00,1.5617E+00,1.5356E+00,1.5128E+00,1.4868E+00,1.4555E+00,
- &1.4224E+00,1.3876E+00,1.3532E+00,1.3231E+00,1.2904E+00,1.2536E+00,
- &1.2173E+00,1.1838E+00,1.1545E+00,1.1338E+00,1.1185E+00,1.1113E+00,
- &1.1199E+00,1.1362E+00,1.1627E+00,1.1895E+00,1.2222E+00,1.2529E+00,
- &1.2813E+00,1.3080E+00,1.3324E+00,1.3546E+00,1.3756E+00,1.3938E+00,
- &1.4103E+00,1.4232E+00,1.4319E+00,1.4055E+00,1.4052E+00,1.3959E+00,
- &1.3768E+00,1.3480E+00,1.3084E+00,1.2576E+00,1.1928E+00,1.1110E+00,
- &1.0066E+00,8.6804E-01,6.6615E-01,0.0000E+00,2.1434E+00,2.1178E+00,
- &2.0930E+00,2.0676E+00,2.0440E+00,2.0184E+00,1.9935E+00,1.9686E+00,
- &1.9439E+00,1.9179E+00,1.8915E+00,1.8663E+00,1.8400E+00,1.8239E+00,
- &1.8067E+00,1.7863E+00,1.7654E+00,1.7440E+00,1.7219E+00,1.7025E+00,
- &1.6814E+00,1.6565E+00,1.6311E+00,1.6045E+00,1.5766E+00,1.5526E+00,
- &1.5250E+00,1.4925E+00,1.4574E+00,1.4213E+00,1.3849E+00,1.3532E+00,
- &1.3191E+00,1.2800E+00,1.2418E+00,1.2062E+00,1.1743E+00,1.1517E+00,
- &1.1338E+00,1.1237E+00,1.1272E+00,1.1399E+00,1.1608E+00,1.1828E+00,
- &1.2092E+00,1.2341E+00,1.2570E+00,1.2774E+00,1.2962E+00,1.3135E+00/
- DATA (XDVF_L(K),K= 799, 912) /
- &1.3280E+00,1.3406E+00,1.3511E+00,1.3588E+00,1.3613E+00,1.3335E+00,
- &1.3246E+00,1.3067E+00,1.2801E+00,1.2441E+00,1.1985E+00,1.1418E+00,
- &1.0724E+00,9.8806E-01,8.8293E-01,7.4746E-01,5.5665E-01,0.0000E+00,
- &2.2035E+00,2.1769E+00,2.1514E+00,2.1259E+00,2.1000E+00,2.0743E+00,
- &2.0488E+00,2.0226E+00,1.9973E+00,1.9702E+00,1.9428E+00,1.9166E+00,
- &1.8890E+00,1.8729E+00,1.8548E+00,1.8337E+00,1.8116E+00,1.7895E+00,
- &1.7662E+00,1.7461E+00,1.7239E+00,1.6980E+00,1.6714E+00,1.6436E+00,
- &1.6146E+00,1.5889E+00,1.5604E+00,1.5266E+00,1.4895E+00,1.4515E+00,
- &1.4138E+00,1.3806E+00,1.3448E+00,1.3040E+00,1.2638E+00,1.2261E+00,
- &1.1920E+00,1.1669E+00,1.1469E+00,1.1341E+00,1.1335E+00,1.1420E+00,
- &1.1583E+00,1.1760E+00,1.1971E+00,1.2168E+00,1.2343E+00,1.2501E+00,
- &1.2640E+00,1.2762E+00,1.2866E+00,1.2942E+00,1.2996E+00,1.3020E+00,
- &1.3003E+00,1.2725E+00,1.2557E+00,1.2312E+00,1.1982E+00,1.1569E+00,
- &1.1068E+00,1.0465E+00,9.7460E-01,8.8884E-01,7.8459E-01,6.5333E-01,
- &4.7359E-01,0.0000E+00,2.2800E+00,2.2524E+00,2.2256E+00,2.1987E+00,
- &2.1730E+00,2.1459E+00,2.1192E+00,2.0922E+00,2.0656E+00,2.0374E+00,
- &2.0100E+00,1.9802E+00,1.9520E+00,1.9346E+00,1.9156E+00,1.8937E+00,
- &1.8706E+00,1.8475E+00,1.8228E+00,1.8017E+00,1.7783E+00,1.7509E+00,
- &1.7221E+00,1.6937E+00,1.6627E+00,1.6354E+00,1.6050E+00,1.5688E+00/
- DATA (XDVF_L(K),K= 913, 1026) /
- &1.5301E+00,1.4898E+00,1.4503E+00,1.4150E+00,1.3772E+00,1.3339E+00,
- &1.2911E+00,1.2510E+00,1.2138E+00,1.1866E+00,1.1637E+00,1.1458E+00,
- &1.1403E+00,1.1441E+00,1.1548E+00,1.1669E+00,1.1817E+00,1.1950E+00,
- &1.2065E+00,1.2163E+00,1.2249E+00,1.2313E+00,1.2355E+00,1.2379E+00,
- &1.2379E+00,1.2348E+00,1.2275E+00,1.1987E+00,1.1744E+00,1.1427E+00,
- &1.1035E+00,1.0570E+00,1.0018E+00,9.3862E-01,8.6494E-01,7.7913E-01,
- &6.7747E-01,5.5266E-01,3.8741E-01,0.0000E+00,2.3524E+00,2.3243E+00,
- &2.2963E+00,2.2689E+00,2.2420E+00,2.2137E+00,2.1858E+00,2.1579E+00,
- &2.1301E+00,2.1011E+00,2.0718E+00,2.0424E+00,2.0120E+00,1.9937E+00,
- &1.9743E+00,1.9509E+00,1.9267E+00,1.9020E+00,1.8763E+00,1.8541E+00,
- &1.8295E+00,1.8006E+00,1.7713E+00,1.7402E+00,1.7077E+00,1.6794E+00,
- &1.6475E+00,1.6087E+00,1.5679E+00,1.5259E+00,1.4840E+00,1.4470E+00,
- &1.4072E+00,1.3615E+00,1.3163E+00,1.2738E+00,1.2336E+00,1.2045E+00,
- &1.1783E+00,1.1563E+00,1.1459E+00,1.1457E+00,1.1504E+00,1.1577E+00,
- &1.1662E+00,1.1742E+00,1.1807E+00,1.1857E+00,1.1886E+00,1.1902E+00,
- &1.1899E+00,1.1878E+00,1.1830E+00,1.1751E+00,1.1633E+00,1.1345E+00,
- &1.1039E+00,1.0667E+00,1.0230E+00,9.7228E-01,9.1417E-01,8.4905E-01,
- &7.7478E-01,6.9004E-01,5.9155E-01,4.7371E-01,3.2191E-01,0.0000E+00,
- &2.4233E+00,2.3947E+00,2.3653E+00,2.3365E+00,2.3090E+00,2.2800E+00/
- DATA (XDVF_L(K),K= 1027, 1140) /
- &2.2512E+00,2.2220E+00,2.1934E+00,2.1628E+00,2.1319E+00,2.1007E+00,
- &2.0700E+00,2.0512E+00,2.0301E+00,2.0057E+00,1.9809E+00,1.9549E+00,
- &1.9281E+00,1.9049E+00,1.8791E+00,1.8497E+00,1.8175E+00,1.7854E+00,
- &1.7507E+00,1.7209E+00,1.6878E+00,1.6474E+00,1.6047E+00,1.5603E+00,
- &1.5164E+00,1.4777E+00,1.4358E+00,1.3879E+00,1.3403E+00,1.2952E+00,
- &1.2523E+00,1.2206E+00,1.1913E+00,1.1661E+00,1.1505E+00,1.1462E+00,
- &1.1460E+00,1.1481E+00,1.1518E+00,1.1545E+00,1.1559E+00,1.1562E+00,
- &1.1548E+00,1.1523E+00,1.1478E+00,1.1414E+00,1.1331E+00,1.1212E+00,
- &1.1055E+00,1.0763E+00,1.0405E+00,9.9877E-01,9.5130E-01,8.9815E-01,
- &8.3813E-01,7.7188E-01,6.9792E-01,6.1492E-01,5.2020E-01,4.0920E-01,
- &2.7020E-01,0.0000E+00,2.4906E+00,2.4607E+00,2.4307E+00,2.4014E+00,
- &2.3730E+00,2.3427E+00,2.3127E+00,2.2828E+00,2.2528E+00,2.2213E+00,
- &2.1903E+00,2.1577E+00,2.1250E+00,2.1053E+00,2.0839E+00,2.0583E+00,
- &2.0318E+00,2.0051E+00,1.9771E+00,1.9527E+00,1.9259E+00,1.8935E+00,
- &1.8607E+00,1.8269E+00,1.7917E+00,1.7606E+00,1.7253E+00,1.6833E+00,
- &1.6387E+00,1.5925E+00,1.5465E+00,1.5061E+00,1.4624E+00,1.4121E+00,
- &1.3623E+00,1.3152E+00,1.2700E+00,1.2349E+00,1.2036E+00,1.1745E+00,
- &1.1544E+00,1.1457E+00,1.1410E+00,1.1389E+00,1.1378E+00,1.1357E+00,
- &1.1332E+00,1.1290E+00,1.1244E+00,1.1176E+00,1.1099E+00,1.0996E+00/
- DATA (XDVF_L(K),K= 1141, 1254) /
- &1.0875E+00,1.0729E+00,1.0538E+00,1.0249E+00,9.8511E-01,9.3994E-01,
- &8.8948E-01,8.3410E-01,7.7332E-01,7.0681E-01,6.3377E-01,5.5280E-01,
- &4.6214E-01,3.5755E-01,2.2965E-01,0.0000E+00,2.5589E+00,2.5291E+00,
- &2.4979E+00,2.4676E+00,2.4370E+00,2.4060E+00,2.3753E+00,2.3443E+00,
- &2.3135E+00,2.2809E+00,2.2486E+00,2.2146E+00,2.1810E+00,2.1602E+00,
- &2.1376E+00,2.1114E+00,2.0841E+00,2.0557E+00,2.0265E+00,2.0011E+00,
- &1.9730E+00,1.9392E+00,1.9055E+00,1.8697E+00,1.8327E+00,1.8003E+00,
- &1.7635E+00,1.7197E+00,1.6727E+00,1.6246E+00,1.5770E+00,1.5346E+00,
- &1.4890E+00,1.4363E+00,1.3841E+00,1.3341E+00,1.2867E+00,1.2492E+00,
- &1.2151E+00,1.1824E+00,1.1578E+00,1.1451E+00,1.1356E+00,1.1298E+00,
- &1.1233E+00,1.1169E+00,1.1105E+00,1.1027E+00,1.0940E+00,1.0840E+00,
- &1.0726E+00,1.0592E+00,1.0444E+00,1.0265E+00,1.0045E+00,9.7613E-01,
- &9.3249E-01,8.8451E-01,8.3193E-01,7.7510E-01,7.1373E-01,6.4749E-01,
- &5.7554E-01,4.9725E-01,4.1072E-01,3.1254E-01,1.9551E-01,0.0000E+00,
- &2.6244E+00,2.5927E+00,2.5615E+00,2.5299E+00,2.4990E+00,2.4671E+00,
- &2.4356E+00,2.4034E+00,2.3717E+00,2.3377E+00,2.3034E+00,2.2689E+00,
- &2.2340E+00,2.2126E+00,2.1892E+00,2.1616E+00,2.1331E+00,2.1040E+00,
- &2.0736E+00,2.0471E+00,2.0180E+00,1.9830E+00,1.9472E+00,1.9112E+00,
- &1.8717E+00,1.8375E+00,1.7996E+00,1.7538E+00,1.7053E+00,1.6548E+00/
- DATA (XDVF_L(K),K= 1255, 1368) /
- &1.6053E+00,1.5612E+00,1.5138E+00,1.4590E+00,1.4045E+00,1.3516E+00,
- &1.3023E+00,1.2626E+00,1.2251E+00,1.1889E+00,1.1601E+00,1.1441E+00,
- &1.1302E+00,1.1201E+00,1.1098E+00,1.0996E+00,1.0888E+00,1.0782E+00,
- &1.0659E+00,1.0531E+00,1.0388E+00,1.0228E+00,1.0047E+00,9.8480E-01,
- &9.6040E-01,9.3234E-01,8.8589E-01,8.3563E-01,7.8162E-01,7.2366E-01,
- &6.6215E-01,5.9658E-01,5.2617E-01,4.5043E-01,3.6787E-01,2.7575E-01,
- &1.6826E-01,0.0000E+00,2.6886E+00,2.6564E+00,2.6234E+00,2.5908E+00,
- &2.5600E+00,2.5268E+00,2.4943E+00,2.4612E+00,2.4283E+00,2.3924E+00,
- &2.3582E+00,2.3219E+00,2.2860E+00,2.2642E+00,2.2394E+00,2.2113E+00,
- &2.1817E+00,2.1512E+00,2.1198E+00,2.0920E+00,2.0618E+00,2.0268E+00,
- &1.9890E+00,1.9503E+00,1.9098E+00,1.8739E+00,1.8343E+00,1.7867E+00,
- &1.7365E+00,1.6843E+00,1.6329E+00,1.5870E+00,1.5377E+00,1.4807E+00,
- &1.4239E+00,1.3692E+00,1.3169E+00,1.2751E+00,1.2350E+00,1.1954E+00,
- &1.1624E+00,1.1425E+00,1.1247E+00,1.1110E+00,1.0963E+00,1.0827E+00,
- &1.0687E+00,1.0547E+00,1.0396E+00,1.0240E+00,1.0070E+00,9.8853E-01,
- &9.6834E-01,9.4569E-01,9.1962E-01,8.9220E-01,8.4321E-01,7.9105E-01,
- &7.3592E-01,6.7777E-01,6.1620E-01,5.5143E-01,4.8272E-01,4.0962E-01,
- &3.3102E-01,2.4455E-01,1.4574E-01,0.0000E+00,2.7496E+00,2.7153E+00,
- &2.6835E+00,2.6504E+00,2.6180E+00,2.5834E+00,2.5502E+00,2.5161E+00/
- DATA (XDVF_L(K),K= 1369, 1482) /
- &2.4824E+00,2.4466E+00,2.4095E+00,2.3736E+00,2.3360E+00,2.3124E+00,
- &2.2875E+00,2.2580E+00,2.2274E+00,2.1960E+00,2.1631E+00,2.1347E+00,
- &2.1032E+00,2.0670E+00,2.0277E+00,1.9882E+00,1.9458E+00,1.9086E+00,
- &1.8675E+00,1.8179E+00,1.7658E+00,1.7122E+00,1.6586E+00,1.6112E+00,
- &1.5600E+00,1.5010E+00,1.4420E+00,1.3855E+00,1.3294E+00,1.2858E+00,
- &1.2435E+00,1.2006E+00,1.1641E+00,1.1410E+00,1.1193E+00,1.1023E+00,
- &1.0837E+00,1.0664E+00,1.0496E+00,1.0329E+00,1.0157E+00,9.9745E-01,
- &9.7803E-01,9.5735E-01,9.3539E-01,9.1075E-01,8.8302E-01,8.5608E-01,
- &8.0509E-01,7.5168E-01,6.9580E-01,6.3743E-01,5.7619E-01,5.1233E-01,
- &4.4547E-01,3.7496E-01,2.9995E-01,2.1862E-01,1.2745E-01,0.0000E+00,
- &2.8331E+00,2.7978E+00,2.7648E+00,2.7299E+00,2.6960E+00,2.6609E+00,
- &2.6263E+00,2.5910E+00,2.5561E+00,2.5197E+00,2.4802E+00,2.4424E+00,
- &2.4030E+00,2.3791E+00,2.3526E+00,2.3216E+00,2.2897E+00,2.2570E+00,
- &2.2225E+00,2.1925E+00,2.1595E+00,2.1199E+00,2.0799E+00,2.0383E+00,
- &1.9938E+00,1.9551E+00,1.9121E+00,1.8601E+00,1.8054E+00,1.7494E+00,
- &1.6932E+00,1.6435E+00,1.5898E+00,1.5280E+00,1.4659E+00,1.4056E+00,
- &1.3471E+00,1.3010E+00,1.2550E+00,1.2078E+00,1.1652E+00,1.1383E+00,
- &1.1114E+00,1.0902E+00,1.0668E+00,1.0451E+00,1.0248E+00,1.0039E+00,
- &9.8353E-01,9.6205E-01,9.4076E-01,9.1705E-01,8.9229E-01,8.6577E-01/
- DATA (XDVF_L(K),K= 1483, 1596) /
- &8.3604E-01,8.0985E-01,7.5687E-01,7.0190E-01,6.4516E-01,5.8700E-01,
- &5.2660E-01,4.6452E-01,3.9995E-01,3.3310E-01,2.6289E-01,1.8826E-01,
- &1.0655E-01,0.0000E+00,2.9096E+00,2.8732E+00,2.8390E+00,2.8027E+00,
- &2.7690E+00,2.7325E+00,2.6961E+00,2.6597E+00,2.6231E+00,2.5833E+00,
- &2.5456E+00,2.5047E+00,2.4650E+00,2.4391E+00,2.4120E+00,2.3799E+00,
- &2.3462E+00,2.3123E+00,2.2763E+00,2.2451E+00,2.2108E+00,2.1692E+00,
- &2.1276E+00,2.0835E+00,2.0378E+00,1.9974E+00,1.9525E+00,1.8983E+00,
- &1.8413E+00,1.7827E+00,1.7243E+00,1.6725E+00,1.6166E+00,1.5520E+00,
- &1.4872E+00,1.4244E+00,1.3627E+00,1.3136E+00,1.2649E+00,1.2130E+00,
- &1.1663E+00,1.1352E+00,1.1040E+00,1.0787E+00,1.0514E+00,1.0264E+00,
- &1.0021E+00,9.7883E-01,9.5548E-01,9.3171E-01,9.0763E-01,8.8283E-01,
- &8.5596E-01,8.2732E-01,7.9601E-01,7.7056E-01,7.1598E-01,6.6027E-01,
- &6.0340E-01,5.4514E-01,4.8601E-01,4.2556E-01,3.6359E-01,2.9984E-01,
- &2.3396E-01,1.6486E-01,9.0844E-02,0.0000E+00,2.9880E+00,2.9510E+00,
- &2.9150E+00,2.8782E+00,2.8430E+00,2.8048E+00,2.7677E+00,2.7301E+00,
- &2.6924E+00,2.6517E+00,2.6110E+00,2.5696E+00,2.5280E+00,2.5017E+00,
- &2.4728E+00,2.4393E+00,2.4042E+00,2.3687E+00,2.3313E+00,2.2988E+00,
- &2.2631E+00,2.2204E+00,2.1768E+00,2.1312E+00,2.0828E+00,2.0405E+00,
- &1.9928E+00,1.9364E+00,1.8772E+00,1.8164E+00,1.7558E+00,1.7018E+00/
- DATA (XDVF_L(K),K= 1597, 1710) /
- &1.6434E+00,1.5762E+00,1.5084E+00,1.4432E+00,1.3783E+00,1.3261E+00,
- &1.2741E+00,1.2182E+00,1.1669E+00,1.1315E+00,1.0961E+00,1.0671E+00,
- &1.0360E+00,1.0071E+00,9.7992E-01,9.5371E-01,9.2801E-01,9.0200E-01,
- &8.7588E-01,8.4862E-01,8.2038E-01,7.9020E-01,7.5770E-01,7.3298E-01,
- &6.7721E-01,6.2090E-01,5.6394E-01,5.0631E-01,4.4841E-01,3.8970E-01,
- &3.3019E-01,2.6973E-01,2.0791E-01,1.4420E-01,7.7416E-02,0.0000E+00,
- &3.0661E+00,3.0288E+00,2.9911E+00,2.9537E+00,2.9160E+00,2.8778E+00,
- &2.8392E+00,2.8000E+00,2.7610E+00,2.7200E+00,2.6782E+00,2.6345E+00,
- &2.5900E+00,2.5625E+00,2.5329E+00,2.4982E+00,2.4617E+00,2.4247E+00,
- &2.3857E+00,2.3518E+00,2.3145E+00,2.2697E+00,2.2245E+00,2.1764E+00,
- &2.1269E+00,2.0819E+00,2.0331E+00,1.9746E+00,1.9126E+00,1.8497E+00,
- &1.7862E+00,1.7303E+00,1.6696E+00,1.5995E+00,1.5285E+00,1.4608E+00,
- &1.3929E+00,1.3377E+00,1.2826E+00,1.2228E+00,1.1669E+00,1.1279E+00,
- &1.0882E+00,1.0555E+00,1.0205E+00,9.8876E-01,9.5876E-01,9.2969E-01,
- &9.0171E-01,8.7356E-01,8.4551E-01,8.1668E-01,7.8701E-01,7.5564E-01,
- &7.2196E-01,6.9797E-01,6.4121E-01,5.8469E-01,5.2810E-01,4.7131E-01,
- &4.1460E-01,3.5783E-01,3.0063E-01,2.4338E-01,1.8544E-01,1.2660E-01,
- &6.6270E-02,0.0000E+00,3.1379E+00,3.0995E+00,3.0600E+00,3.0213E+00,
- &2.9840E+00,2.9442E+00,2.9047E+00,2.8641E+00,2.8239E+00,2.7813E+00/
- DATA (XDVF_L(K),K= 1711, 1824) /
- &2.7383E+00,2.6928E+00,2.6470E+00,2.6191E+00,2.5880E+00,2.5519E+00,
- &2.5145E+00,2.4761E+00,2.4357E+00,2.4004E+00,2.3615E+00,2.3153E+00,
- &2.2678E+00,2.2180E+00,2.1669E+00,2.1208E+00,2.0699E+00,2.0087E+00,
- &1.9447E+00,1.8795E+00,1.8139E+00,1.7558E+00,1.6930E+00,1.6205E+00,
- &1.5467E+00,1.4759E+00,1.4054E+00,1.3484E+00,1.2895E+00,1.2267E+00,
- &1.1663E+00,1.1242E+00,1.0808E+00,1.0449E+00,1.0065E+00,9.7194E-01,
- &9.3967E-01,9.0840E-01,8.7834E-01,8.4891E-01,8.1928E-01,7.8930E-01,
- &7.5803E-01,7.2562E-01,6.9124E-01,6.6796E-01,6.1058E-01,5.5392E-01,
- &4.9752E-01,4.4176E-01,3.8633E-01,3.3127E-01,2.7648E-01,2.2186E-01,
- &1.6735E-01,1.1268E-01,5.7652E-02,0.0000E+00,3.2129E+00,3.1726E+00,
- &3.1325E+00,3.0928E+00,3.0540E+00,3.0127E+00,2.9717E+00,2.9303E+00,
- &2.8887E+00,2.8449E+00,2.8001E+00,2.7537E+00,2.7060E+00,2.6766E+00,
- &2.6453E+00,2.6073E+00,2.5683E+00,2.5286E+00,2.4866E+00,2.4501E+00,
- &2.4107E+00,2.3628E+00,2.3125E+00,2.2620E+00,2.2079E+00,2.1597E+00,
- &2.1067E+00,2.0440E+00,1.9778E+00,1.9097E+00,1.8421E+00,1.7819E+00,
- &1.7169E+00,1.6416E+00,1.5664E+00,1.4922E+00,1.4189E+00,1.3583E+00,
- &1.2971E+00,1.2300E+00,1.1652E+00,1.1200E+00,1.0729E+00,1.0343E+00,
- &9.9254E-01,9.5513E-01,9.2006E-01,8.8711E-01,8.5555E-01,8.2426E-01,
- &7.9305E-01,7.6193E-01,7.2963E-01,6.9636E-01,6.6128E-01,6.3868E-01/
- DATA (XDVF_L(K),K= 1825, 1836) /
- &5.8093E-01,5.2428E-01,4.6858E-01,4.1372E-01,3.5972E-01,3.0648E-01,
- &2.5392E-01,2.0208E-01,1.5083E-01,1.0018E-01,5.0068E-02,0.0000E+00/
- DATA (XDEF_L(K),K= 1, 114) /
- &4.3007E-01,4.2474E-01,4.1967E-01,4.1458E-01,4.0970E-01,4.0443E-01,
- &3.9925E-01,3.9397E-01,3.8864E-01,3.8302E-01,3.7707E-01,3.7100E-01,
- &3.6470E-01,3.6080E-01,3.5639E-01,3.5109E-01,3.4531E-01,3.3914E-01,
- &3.3238E-01,3.2609E-01,3.1913E-01,3.1062E-01,3.0152E-01,2.9176E-01,
- &2.8100E-01,2.7114E-01,2.5952E-01,2.4467E-01,2.2784E-01,2.0937E-01,
- &1.9117E-01,1.7470E-01,1.5685E-01,1.3678E-01,1.1825E-01,1.0349E-01,
- &9.4854E-02,9.5054E-02,1.0589E-01,1.3527E-01,1.8584E-01,2.3426E-01,
- &2.9021E-01,3.3527E-01,3.7670E-01,4.0255E-01,4.1326E-01,4.0880E-01,
- &3.8831E-01,3.5045E-01,2.9287E-01,2.1298E-01,1.0773E-01,0.0000E+00,
- &0.0000E+00,2.0644E-01,1.5422E-01,1.0950E-01,7.3614E-02,4.6726E-02,
- &2.7433E-02,1.4144E-02,6.5080E-03,2.4719E-03,0.0000E+00,0.0000E+00,
- &0.0000E+00,0.0000E+00,4.4398E-01,4.3864E-01,4.3346E-01,4.2809E-01,
- &4.2290E-01,4.1747E-01,4.1205E-01,4.0650E-01,4.0098E-01,3.9480E-01,
- &3.8873E-01,3.8226E-01,3.7560E-01,3.7145E-01,3.6678E-01,3.6108E-01,
- &3.5488E-01,3.4833E-01,3.4123E-01,3.3464E-01,3.2718E-01,3.1811E-01,
- &3.0838E-01,2.9811E-01,2.8670E-01,2.7630E-01,2.6412E-01,2.4861E-01,
- &2.3110E-01,2.1209E-01,1.9355E-01,1.7681E-01,1.5878E-01,1.3870E-01,
- &1.2044E-01,1.0620E-01,9.8341E-02,9.9345E-02,1.1086E-01,1.4055E-01,
- &1.9033E-01,2.3696E-01,2.8983E-01,3.3137E-01,3.6834E-01,3.8982E-01/
- DATA (XDEF_L(K),K= 115, 228) /
- &3.9672E-01,3.8896E-01,3.6609E-01,3.2678E-01,2.6933E-01,1.9181E-01,
- &9.1683E-02,0.0000E+00,0.0000E+00,1.8955E-01,1.4041E-01,9.8873E-02,
- &6.5928E-02,4.1462E-02,2.3905E-02,1.2324E-02,5.6113E-03,2.1050E-03,
- &0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,4.5980E-01,4.5420E-01,
- &4.4884E-01,4.4319E-01,4.3780E-01,4.3208E-01,4.2642E-01,4.2053E-01,
- &4.1457E-01,4.0824E-01,4.0181E-01,3.9484E-01,3.8780E-01,3.8328E-01,
- &3.7831E-01,3.7223E-01,3.6559E-01,3.5853E-01,3.5072E-01,3.4400E-01,
- &3.3590E-01,3.2633E-01,3.1598E-01,3.0508E-01,2.9301E-01,2.8197E-01,
- &2.6915E-01,2.5289E-01,2.3470E-01,2.1511E-01,1.9623E-01,1.7918E-01,
- &1.6098E-01,1.4092E-01,1.2294E-01,1.0928E-01,1.0224E-01,1.0401E-01,
- &1.1623E-01,1.4620E-01,1.9488E-01,2.3948E-01,2.8894E-01,3.2681E-01,
- &3.5905E-01,3.7613E-01,3.7908E-01,3.6817E-01,3.4299E-01,3.0266E-01,
- &2.4596E-01,1.7115E-01,7.6792E-02,0.0000E+00,0.0000E+00,1.7267E-01,
- &1.2670E-01,8.8446E-02,5.8458E-02,3.6380E-02,2.0551E-02,1.0608E-02,
- &4.7732E-03,1.7670E-03,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,
- &4.7845E-01,4.7258E-01,4.6687E-01,4.6107E-01,4.5540E-01,4.4938E-01,
- &4.4336E-01,4.3728E-01,4.3070E-01,4.2403E-01,4.1702E-01,4.0968E-01,
- &4.0210E-01,3.9723E-01,3.9181E-01,3.8522E-01,3.7808E-01,3.7047E-01,
- &3.6211E-01,3.5469E-01,3.4619E-01,3.3582E-01,3.2478E-01,3.1314E-01/
- DATA (XDEF_L(K),K= 229, 342) /
- &3.0021E-01,2.8848E-01,2.7488E-01,2.5781E-01,2.3886E-01,2.1865E-01,
- &1.9932E-01,1.8196E-01,1.6359E-01,1.4359E-01,1.2596E-01,1.1295E-01,
- &1.0678E-01,1.0933E-01,1.2234E-01,1.5242E-01,1.9969E-01,2.4187E-01,
- &2.8742E-01,3.2112E-01,3.4825E-01,3.6067E-01,3.5959E-01,3.4546E-01,
- &3.1813E-01,2.7719E-01,2.2151E-01,1.5037E-01,6.2862E-02,0.0000E+00,
- &0.0000E+00,1.5516E-01,1.1270E-01,7.7856E-02,5.0916E-02,3.1337E-02,
- &1.7279E-02,8.9355E-03,3.9672E-03,1.4465E-03,0.0000E+00,0.0000E+00,
- &0.0000E+00,0.0000E+00,5.0059E-01,4.9450E-01,4.8826E-01,4.8213E-01,
- &4.7610E-01,4.6972E-01,4.6326E-01,4.5655E-01,4.4999E-01,4.4265E-01,
- &4.3505E-01,4.2703E-01,4.1870E-01,4.1345E-01,4.0758E-01,4.0034E-01,
- &3.9260E-01,3.8434E-01,3.7539E-01,3.6725E-01,3.5804E-01,3.4696E-01,
- &3.3492E-01,3.2231E-01,3.0852E-01,2.9601E-01,2.8154E-01,2.6348E-01,
- &2.4363E-01,2.2272E-01,2.0295E-01,1.8526E-01,1.6669E-01,1.4678E-01,
- &1.2956E-01,1.1726E-01,1.1212E-01,1.1548E-01,1.2910E-01,1.5906E-01,
- &2.0458E-01,2.4395E-01,2.8508E-01,3.1418E-01,3.3593E-01,3.4343E-01,
- &3.3827E-01,3.2104E-01,2.9189E-01,2.5067E-01,1.9688E-01,1.3016E-01,
- &5.0498E-02,0.0000E+00,0.0000E+00,1.3742E-01,9.8602E-02,6.7357E-02,
- &4.3555E-02,2.6444E-02,1.4175E-02,7.3561E-03,3.2181E-03,1.1530E-03,
- &0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,5.2114E-01,5.1454E-01/
- DATA (XDEF_L(K),K= 343, 456) /
- &5.0806E-01,5.0160E-01,4.9520E-01,4.8843E-01,4.8165E-01,4.7456E-01,
- &4.6738E-01,4.5962E-01,4.5149E-01,4.4293E-01,4.3400E-01,4.2833E-01,
- &4.2194E-01,4.1420E-01,4.0580E-01,3.9678E-01,3.8741E-01,3.7848E-01,
- &3.6878E-01,3.5682E-01,3.4416E-01,3.3062E-01,3.1602E-01,3.0269E-01,
- &2.8749E-01,2.6857E-01,2.4798E-01,2.2641E-01,2.0626E-01,1.8828E-01,
- &1.6960E-01,1.4976E-01,1.3293E-01,1.2126E-01,1.1684E-01,1.2099E-01,
- &1.3505E-01,1.6471E-01,2.0841E-01,2.4521E-01,2.8248E-01,3.0770E-01,
- &3.2484E-01,3.2845E-01,3.1999E-01,3.0047E-01,2.7030E-01,2.2924E-01,
- &1.7739E-01,1.1482E-01,4.2174E-02,0.0000E+00,0.0000E+00,1.2330E-01,
- &8.7586E-02,5.9211E-02,3.7890E-02,2.2733E-02,1.1877E-02,6.1865E-03,
- &2.6713E-03,9.4247E-04,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,
- &5.4423E-01,5.3740E-01,5.3068E-01,5.2385E-01,5.1700E-01,5.0982E-01,
- &5.0256E-01,4.9509E-01,4.8731E-01,4.7895E-01,4.7023E-01,4.6094E-01,
- &4.5130E-01,4.4506E-01,4.3820E-01,4.2973E-01,4.2069E-01,4.1108E-01,
- &4.0069E-01,3.9131E-01,3.8063E-01,3.6796E-01,3.5430E-01,3.3991E-01,
- &3.2433E-01,3.1014E-01,2.9407E-01,2.7418E-01,2.5281E-01,2.3056E-01,
- &2.0999E-01,1.9171E-01,1.7291E-01,1.5321E-01,1.3677E-01,1.2578E-01,
- &1.2220E-01,1.2696E-01,1.4132E-01,1.7056E-01,2.1212E-01,2.4603E-01,
- &2.7912E-01,3.0023E-01,3.1274E-01,3.1234E-01,3.0087E-01,2.7925E-01/
- DATA (XDEF_L(K),K= 457, 570) /
- &2.4820E-01,2.0782E-01,1.5841E-01,1.0056E-01,3.5470E-02,0.0000E+00,
- &0.0000E+00,1.0941E-01,7.6864E-02,5.1391E-02,3.2506E-02,1.9250E-02,
- &9.7741E-03,5.1192E-03,2.1775E-03,0.0000E+00,0.0000E+00,0.0000E+00,
- &0.0000E+00,0.0000E+00,5.6542E-01,5.5814E-01,5.5101E-01,5.4385E-01,
- &5.3670E-01,5.2913E-01,5.2140E-01,5.1352E-01,5.0533E-01,4.9639E-01,
- &4.8702E-01,4.7710E-01,4.6670E-01,4.6011E-01,4.5270E-01,4.4365E-01,
- &4.3394E-01,4.2383E-01,4.1271E-01,4.0253E-01,3.9137E-01,3.7783E-01,
- &3.6325E-01,3.4810E-01,3.3163E-01,3.1674E-01,2.9988E-01,2.7922E-01,
- &2.5706E-01,2.3429E-01,2.1333E-01,1.9484E-01,1.7592E-01,1.5634E-01,
- &1.4028E-01,1.2985E-01,1.2692E-01,1.3218E-01,1.4678E-01,1.7535E-01,
- &2.1492E-01,2.4628E-01,2.7582E-01,2.9349E-01,3.0215E-01,2.9865E-01,
- &2.8479E-01,2.6176E-01,2.3025E-01,1.9073E-01,1.4372E-01,9.0030E-02,
- &3.1431E-02,0.0000E+00,0.0000E+00,9.8561E-02,6.8571E-02,4.5400E-02,
- &2.8439E-02,1.6650E-02,8.2414E-03,4.3377E-03,1.8226E-03,0.0000E+00,
- &0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,5.8660E-01,5.7912E-01,
- &5.7170E-01,5.6412E-01,5.5660E-01,5.4858E-01,5.4040E-01,5.3194E-01,
- &5.2336E-01,5.1383E-01,5.0381E-01,4.9326E-01,4.8220E-01,4.7515E-01,
- &4.6719E-01,4.5756E-01,4.4719E-01,4.3619E-01,4.2441E-01,4.1376E-01,
- &4.0188E-01,3.8750E-01,3.7220E-01,3.5617E-01,3.3884E-01,3.2317E-01/
- DATA (XDEF_L(K),K= 571, 684) /
- &3.0561E-01,2.8413E-01,2.6132E-01,2.3801E-01,2.1667E-01,1.9794E-01,
- &1.7898E-01,1.5951E-01,1.4381E-01,1.3395E-01,1.3154E-01,1.3722E-01,
- &1.5183E-01,1.7978E-01,2.1726E-01,2.4615E-01,2.7227E-01,2.8668E-01,
- &2.9185E-01,2.8560E-01,2.6981E-01,2.4566E-01,2.1405E-01,1.7560E-01,
- &1.3093E-01,8.1317E-02,2.8821E-02,0.0000E+00,0.0000E+00,8.9016E-02,
- &6.1335E-02,4.0241E-02,2.4960E-02,1.4451E-02,6.9787E-03,3.6912E-03,
- &1.5320E-03,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,
- &6.0621E-01,5.9821E-01,5.9043E-01,5.8253E-01,5.7470E-01,5.6625E-01,
- &5.5768E-01,5.4870E-01,5.3948E-01,5.2962E-01,5.1919E-01,5.0796E-01,
- &4.9620E-01,4.8867E-01,4.8027E-01,4.7003E-01,4.5907E-01,4.4740E-01,
- &4.3484E-01,4.2392E-01,4.1127E-01,3.9627E-01,3.8010E-01,3.6326E-01,
- &3.4524E-01,3.2900E-01,3.1064E-01,2.8853E-01,2.6510E-01,2.4135E-01,
- &2.1970E-01,2.0080E-01,1.8175E-01,1.6242E-01,1.4701E-01,1.3753E-01,
- &1.3572E-01,1.4160E-01,1.5623E-01,1.8343E-01,2.1902E-01,2.4571E-01,
- &2.6885E-01,2.8059E-01,2.8292E-01,2.7441E-01,2.5704E-01,2.3223E-01,
- &2.0062E-01,1.6317E-01,1.2079E-01,7.4733E-02,2.7461E-02,0.0000E+00,
- &0.0000E+00,8.1334E-02,5.5577E-02,3.6150E-02,2.2243E-02,1.2749E-02,
- &6.0264E-03,3.2009E-03,1.3143E-03,0.0000E+00,0.0000E+00,0.0000E+00,
- &0.0000E+00,0.0000E+00,6.2581E-01,6.1778E-01,6.0953E-01,6.0134E-01/
- DATA (XDEF_L(K),K= 685, 798) /
- &5.9310E-01,5.8428E-01,5.7523E-01,5.6587E-01,5.5625E-01,5.4565E-01,
- &5.3457E-01,5.2280E-01,5.1030E-01,5.0236E-01,4.9350E-01,4.8267E-01,
- &4.7104E-01,4.5899E-01,4.4560E-01,4.3381E-01,4.2066E-01,4.0485E-01,
- &3.8801E-01,3.7047E-01,3.5165E-01,3.3476E-01,3.1574E-01,2.9293E-01,
- &2.6889E-01,2.4469E-01,2.2279E-01,2.0369E-01,1.8458E-01,1.6537E-01,
- &1.5025E-01,1.4125E-01,1.3980E-01,1.4589E-01,1.6046E-01,1.8686E-01,
- &2.2052E-01,2.4502E-01,2.6530E-01,2.7444E-01,2.7406E-01,2.6361E-01,
- &2.4491E-01,2.1954E-01,1.8819E-01,1.5193E-01,1.1170E-01,6.9146E-02,
- &2.6829E-02,0.0000E+00,0.0000E+00,7.4387E-02,5.0398E-02,3.2529E-02,
- &1.9840E-02,1.1260E-02,5.2109E-03,2.7796E-03,1.1291E-03,0.0000E+00,
- &0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,6.4510E-01,6.3663E-01,
- &6.2809E-01,6.1948E-01,6.1090E-01,6.0165E-01,5.9256E-01,5.8263E-01,
- &5.7237E-01,5.6121E-01,5.4960E-01,5.3710E-01,5.2390E-01,5.1555E-01,
- &5.0615E-01,4.9474E-01,4.8273E-01,4.6980E-01,4.5603E-01,4.4343E-01,
- &4.2983E-01,4.1325E-01,3.9561E-01,3.7731E-01,3.5765E-01,3.4017E-01,
- &3.2063E-01,2.9709E-01,2.7258E-01,2.4795E-01,2.2572E-01,2.0647E-01,
- &1.8735E-01,1.6824E-01,1.5339E-01,1.4470E-01,1.4366E-01,1.4990E-01,
- &1.6437E-01,1.8986E-01,2.2169E-01,2.4408E-01,2.6175E-01,2.6863E-01,
- &2.6585E-01,2.5363E-01,2.3397E-01,2.0813E-01,1.7714E-01,1.4205E-01/
- DATA (XDEF_L(K),K= 799, 912) /
- &1.0396E-01,6.4602E-02,2.6785E-02,0.0000E+00,0.0000E+00,6.8343E-02,
- &4.5962E-02,2.9434E-02,1.7812E-02,1.0015E-02,4.5458E-03,2.4331E-03,
- &9.7866E-04,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,
- &6.6281E-01,6.5407E-01,6.4523E-01,6.3631E-01,6.2740E-01,6.1775E-01,
- &6.0821E-01,5.9770E-01,5.8724E-01,5.7535E-01,5.6321E-01,5.5021E-01,
- &5.3640E-01,5.2763E-01,5.1775E-01,5.0583E-01,4.9310E-01,4.7946E-01,
- &4.6520E-01,4.5225E-01,4.3811E-01,4.2074E-01,4.0247E-01,3.8355E-01,
- &3.6315E-01,3.4516E-01,3.2502E-01,3.0091E-01,2.7589E-01,2.5090E-01,
- &2.2842E-01,2.0903E-01,1.8987E-01,1.7087E-01,1.5631E-01,1.4790E-01,
- &1.4709E-01,1.5345E-01,1.6771E-01,1.9243E-01,2.2253E-01,2.4307E-01,
- &2.5846E-01,2.6327E-01,2.5857E-01,2.4493E-01,2.2441E-01,1.9832E-01,
- &1.6773E-01,1.3380E-01,9.7606E-02,6.1077E-02,2.7123E-02,4.1687E-04,
- &0.0000E+00,6.3316E-02,4.2290E-02,2.6899E-02,1.6166E-02,9.0143E-03,
- &4.0214E-03,2.1587E-03,8.6042E-04,0.0000E+00,0.0000E+00,0.0000E+00,
- &0.0000E+00,0.0000E+00,6.8558E-01,6.7623E-01,6.6716E-01,6.5776E-01,
- &6.4840E-01,6.3825E-01,6.2778E-01,6.1697E-01,6.0589E-01,5.9350E-01,
- &5.8071E-01,5.6677E-01,5.5220E-01,5.4293E-01,5.3246E-01,5.1980E-01,
- &5.0630E-01,4.9221E-01,4.7690E-01,4.6348E-01,4.4839E-01,4.3024E-01,
- &4.1112E-01,3.9125E-01,3.7016E-01,3.5134E-01,3.3054E-01,3.0571E-01/
- DATA (XDEF_L(K),K= 913, 1026) /
- &2.8005E-01,2.5463E-01,2.3186E-01,2.1230E-01,1.9311E-01,1.7422E-01,
- &1.5985E-01,1.5187E-01,1.5138E-01,1.5783E-01,1.7178E-01,1.9543E-01,
- &2.2331E-01,2.4162E-01,2.5415E-01,2.5666E-01,2.4964E-01,2.3438E-01,
- &2.1293E-01,1.8681E-01,1.5680E-01,1.2430E-01,9.0488E-02,5.7352E-02,
- &2.7942E-02,7.0995E-03,2.4780E-03,5.7612E-02,3.8138E-02,2.4057E-02,
- &1.4329E-02,7.9111E-03,3.4566E-03,1.8603E-03,7.3347E-04,0.0000E+00,
- &0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,7.0709E-01,6.9744E-01,
- &6.8784E-01,6.7803E-01,6.6830E-01,6.5763E-01,6.4678E-01,6.3540E-01,
- &6.2360E-01,6.1071E-01,5.9715E-01,5.8240E-01,5.6710E-01,5.5722E-01,
- &5.4625E-01,5.3291E-01,5.1856E-01,5.0380E-01,4.8797E-01,4.7363E-01,
- &4.5801E-01,4.3900E-01,4.1917E-01,3.9846E-01,3.7656E-01,3.5717E-01,
- &3.3564E-01,3.1017E-01,2.8397E-01,2.5816E-01,2.3508E-01,2.1538E-01,
- &1.9615E-01,1.7737E-01,1.6324E-01,1.5559E-01,1.5535E-01,1.6175E-01,
- &1.7537E-01,1.9793E-01,2.2384E-01,2.4005E-01,2.5009E-01,2.5051E-01,
- &2.4150E-01,2.2495E-01,2.0291E-01,1.7668E-01,1.4739E-01,1.1625E-01,
- &8.4583E-02,5.4470E-02,2.9013E-02,1.3147E-02,1.4553E-02,5.2777E-02,
- &3.4672E-02,2.1686E-02,1.2821E-02,7.0105E-03,3.0093E-03,1.6226E-03,
- &6.3321E-04,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,
- &7.2796E-01,7.1795E-01,7.0799E-01,6.9776E-01,6.8760E-01,6.7649E-01/
- DATA (XDEF_L(K),K= 1027, 1140) /
- &6.6523E-01,6.5299E-01,6.4099E-01,6.2720E-01,6.1289E-01,5.9763E-01,
- &5.8140E-01,5.7108E-01,5.5954E-01,5.4555E-01,5.3082E-01,5.1501E-01,
- &4.9841E-01,4.8352E-01,4.6718E-01,4.4758E-01,4.2678E-01,4.0543E-01,
- &3.8267E-01,3.6267E-01,3.4052E-01,3.1445E-01,2.8771E-01,2.6154E-01,
- &2.3817E-01,2.1835E-01,1.9910E-01,1.8043E-01,1.6662E-01,1.5905E-01,
- &1.5900E-01,1.6548E-01,1.7871E-01,2.0015E-01,2.2403E-01,2.3835E-01,
- &2.4610E-01,2.4469E-01,2.3394E-01,2.1634E-01,1.9372E-01,1.6761E-01,
- &1.3910E-01,1.0920E-01,7.9530E-02,5.2165E-02,3.0250E-02,1.8723E-02,
- &2.5275E-02,4.8575E-02,3.1676E-02,1.9677E-02,1.1540E-02,6.2533E-03,
- &2.6411E-03,1.4253E-03,5.5072E-04,0.0000E+00,0.0000E+00,0.0000E+00,
- &0.0000E+00,0.0000E+00,7.4788E-01,7.3751E-01,7.2708E-01,7.1644E-01,
- &7.0580E-01,6.9430E-01,6.8256E-01,6.6975E-01,6.5712E-01,6.4276E-01,
- &6.2791E-01,6.1180E-01,5.9490E-01,5.8409E-01,5.7199E-01,5.5739E-01,
- &5.4166E-01,5.2544E-01,5.0821E-01,4.9288E-01,4.7590E-01,4.5544E-01,
- &4.3393E-01,4.1178E-01,3.8837E-01,3.6775E-01,3.4513E-01,3.1844E-01,
- &2.9125E-01,2.6472E-01,2.4110E-01,2.2115E-01,2.0189E-01,1.8330E-01,
- &1.6955E-01,1.6237E-01,1.6243E-01,1.6875E-01,1.8164E-01,2.0201E-01,
- &2.2410E-01,2.3665E-01,2.4236E-01,2.3927E-01,2.2710E-01,2.0852E-01,
- &1.8563E-01,1.5962E-01,1.3170E-01,1.0314E-01,7.5292E-02,5.0347E-02/
- DATA (XDEF_L(K),K= 1141, 1254) /
- &3.1513E-02,2.3688E-02,3.4520E-02,4.4988E-02,2.9140E-02,1.7975E-02,
- &1.0472E-02,5.6268E-03,2.3442E-03,1.2646E-03,4.8432E-04,0.0000E+00,
- &0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,7.6812E-01,7.5731E-01,
- &7.4653E-01,7.3551E-01,7.2440E-01,7.1234E-01,6.9989E-01,6.8692E-01,
- &6.7357E-01,6.5855E-01,6.4312E-01,6.2624E-01,6.0850E-01,5.9719E-01,
- &5.8457E-01,5.6934E-01,5.5297E-01,5.3626E-01,5.1802E-01,5.0223E-01,
- &4.8440E-01,4.6329E-01,4.4109E-01,4.1826E-01,3.9408E-01,3.7291E-01,
- &3.4966E-01,3.2243E-01,2.9475E-01,2.6790E-01,2.4406E-01,2.2399E-01,
- &2.0470E-01,1.8621E-01,1.7262E-01,1.6558E-01,1.6576E-01,1.7201E-01,
- &1.8441E-01,2.0372E-01,2.2403E-01,2.3482E-01,2.3856E-01,2.3398E-01,
- &2.2040E-01,2.0103E-01,1.7782E-01,1.5205E-01,1.2492E-01,9.7540E-02,
- &7.1452E-02,4.8817E-02,3.2832E-02,2.8412E-02,4.3068E-02,4.1684E-02,
- &2.6819E-02,1.6431E-02,9.5049E-03,5.0674E-03,2.0840E-03,1.1231E-03,
- &4.2643E-04,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,
- &7.8709E-01,7.7617E-01,7.6509E-01,7.5353E-01,7.4210E-01,7.2955E-01,
- &7.1666E-01,7.0326E-01,6.8906E-01,6.7364E-01,6.5743E-01,6.3988E-01,
- &6.2140E-01,6.0962E-01,5.9645E-01,5.8083E-01,5.6382E-01,5.4630E-01,
- &5.2750E-01,5.1079E-01,4.9267E-01,4.7078E-01,4.4780E-01,4.2425E-01,
- &3.9948E-01,3.7773E-01,3.5398E-01,3.2619E-01,2.9811E-01,2.7093E-01/
- DATA (XDEF_L(K),K= 1255, 1368) /
- &2.4686E-01,2.2668E-01,2.0735E-01,1.8888E-01,1.7555E-01,1.6865E-01,
- &1.6887E-01,1.7500E-01,1.8693E-01,2.0522E-01,2.2377E-01,2.3300E-01,
- &2.3501E-01,2.2902E-01,2.1428E-01,1.9427E-01,1.7084E-01,1.4533E-01,
- &1.1889E-01,9.2655E-02,6.8174E-02,4.7575E-02,3.4123E-02,3.2605E-02,
- &5.0454E-02,3.8820E-02,2.4822E-02,1.5113E-02,8.6857E-03,4.5962E-03,
- &1.8704E-03,1.0050E-03,3.7856E-04,0.0000E+00,0.0000E+00,0.0000E+00,
- &0.0000E+00,0.0000E+00,8.0606E-01,7.9455E-01,7.8312E-01,7.7128E-01,
- &7.5940E-01,7.4610E-01,7.3287E-01,7.1917E-01,7.0456E-01,6.8825E-01,
- &6.7140E-01,6.5313E-01,6.3390E-01,6.2170E-01,6.0798E-01,5.9180E-01,
- &5.7419E-01,5.5596E-01,5.3636E-01,5.1934E-01,5.0050E-01,4.7790E-01,
- &4.5436E-01,4.3012E-01,4.0458E-01,3.8238E-01,3.5808E-01,3.2984E-01,
- &3.0133E-01,2.7388E-01,2.4957E-01,2.2930E-01,2.0996E-01,1.9168E-01,
- &1.7832E-01,1.7159E-01,1.7177E-01,1.7770E-01,1.8921E-01,2.0651E-01,
- &2.2344E-01,2.3117E-01,2.3152E-01,2.2426E-01,2.0844E-01,1.8790E-01,
- &1.6440E-01,1.3914E-01,1.1342E-01,8.8280E-02,6.5276E-02,4.6578E-02,
- &3.5360E-02,3.6411E-02,5.6986E-02,3.6256E-02,2.3040E-02,1.3948E-02,
- &7.9676E-03,4.1856E-03,1.6876E-03,9.0394E-04,3.3789E-04,0.0000E+00,
- &0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,8.2409E-01,8.1223E-01,
- &8.0027E-01,7.8810E-01,7.7580E-01,7.6250E-01,7.4852E-01,7.3383E-01/
- DATA (XDEF_L(K),K= 1369, 1482) /
- &7.1879E-01,7.0216E-01,6.8466E-01,6.6571E-01,6.4580E-01,6.3303E-01,
- &6.1887E-01,6.0161E-01,5.8362E-01,5.6485E-01,5.4490E-01,5.2736E-01,
- &5.0788E-01,4.8465E-01,4.6048E-01,4.3549E-01,4.0949E-01,3.8678E-01,
- &3.6198E-01,3.3325E-01,3.0435E-01,2.7667E-01,2.5212E-01,2.3179E-01,
- &2.1241E-01,1.9410E-01,1.8093E-01,1.7428E-01,1.7445E-01,1.8022E-01,
- &1.9133E-01,2.0758E-01,2.2299E-01,2.2941E-01,2.2823E-01,2.1990E-01,
- &2.0319E-01,1.8211E-01,1.5852E-01,1.3371E-01,1.0856E-01,8.4430E-02,
- &6.2776E-02,4.5758E-02,3.6514E-02,3.9756E-02,6.2597E-02,3.4019E-02,
- &2.1502E-02,1.2943E-02,7.3506E-03,3.8366E-03,1.5351E-03,8.1923E-04,
- &3.0383E-04,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,
- &8.4844E-01,8.3627E-01,8.2378E-01,8.1114E-01,7.9820E-01,7.8411E-01,
- &7.6977E-01,7.5436E-01,7.3871E-01,7.2101E-01,7.0269E-01,6.8280E-01,
- &6.6180E-01,6.4849E-01,6.3365E-01,6.1605E-01,5.9682E-01,5.7721E-01,
- &5.5628E-01,5.3805E-01,5.1772E-01,4.9378E-01,4.6868E-01,4.4295E-01,
- &4.1599E-01,3.9262E-01,3.6722E-01,3.3788E-01,3.0847E-01,2.8040E-01,
- &2.5562E-01,2.3513E-01,2.1572E-01,1.9746E-01,1.8447E-01,1.7787E-01,
- &1.7810E-01,1.8358E-01,1.9394E-01,2.0894E-01,2.2227E-01,2.2689E-01,
- &2.2385E-01,2.1408E-01,1.9620E-01,1.7461E-01,1.5108E-01,1.2667E-01,
- &1.0243E-01,7.9635E-02,5.9715E-02,4.4804E-02,3.7997E-02,4.3894E-02/
- DATA (XDEF_L(K),K= 1483, 1596) /
- &6.9391E-02,3.1240E-02,1.9603E-02,1.1712E-02,6.6036E-03,3.4150E-03,
- &1.3549E-03,7.1812E-04,2.6373E-04,0.0000E+00,0.0000E+00,0.0000E+00,
- &0.0000E+00,0.0000E+00,8.7089E-01,8.5819E-01,8.4535E-01,8.3207E-01,
- &8.1860E-01,8.0424E-01,7.8877E-01,7.7320E-01,7.5642E-01,7.3822E-01,
- &7.1895E-01,6.9816E-01,6.7640E-01,6.6244E-01,6.4701E-01,6.2817E-01,
- &6.0860E-01,5.8841E-01,5.6672E-01,5.4767E-01,5.2667E-01,5.0182E-01,
- &4.7599E-01,4.4955E-01,4.2190E-01,3.9787E-01,3.7196E-01,3.4199E-01,
- &3.1220E-01,2.8382E-01,2.5874E-01,2.3816E-01,2.1874E-01,2.0063E-01,
- &1.8770E-01,1.8107E-01,1.8121E-01,1.8638E-01,1.9622E-01,2.0994E-01,
- &2.2156E-01,2.2456E-01,2.1986E-01,2.0892E-01,1.9015E-01,1.6817E-01,
- &1.4465E-01,1.2070E-01,9.7309E-02,7.5665E-02,5.7234E-02,4.4095E-02,
- &3.9289E-02,4.7307E-02,7.4739E-02,2.8958E-02,1.8046E-02,1.0716E-02,
- &6.0010E-03,3.0801E-03,1.2145E-03,6.3833E-04,2.3251E-04,0.0000E+00,
- &0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,8.9366E-01,8.8058E-01,
- &8.6727E-01,8.5353E-01,8.3950E-01,8.2436E-01,8.0890E-01,7.9205E-01,
- &7.7476E-01,7.5566E-01,7.3557E-01,7.1393E-01,6.9120E-01,6.7672E-01,
- &6.6059E-01,6.4145E-01,6.2086E-01,5.9962E-01,5.7716E-01,5.5756E-01,
- &5.3584E-01,5.1022E-01,4.8344E-01,4.5615E-01,4.2780E-01,4.0320E-01,
- &3.7671E-01,3.4621E-01,3.1594E-01,2.8727E-01,2.6196E-01,2.4126E-01/
- DATA (XDEF_L(K),K= 1597, 1710) /
- &2.2177E-01,2.0361E-01,1.9078E-01,1.8427E-01,1.8432E-01,1.8918E-01,
- &1.9834E-01,2.1079E-01,2.2065E-01,2.2210E-01,2.1587E-01,2.0383E-01,
- &1.8424E-01,1.6197E-01,1.3849E-01,1.1505E-01,9.2463E-02,7.1949E-02,
- &5.4952E-02,4.3474E-02,4.0525E-02,5.0376E-02,7.9517E-02,2.6835E-02,
- &1.6616E-02,9.8004E-03,5.4489E-03,2.7768E-03,1.0900E-03,5.6728E-04,
- &2.0489E-04,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,
- &9.1643E-01,9.0298E-01,8.8901E-01,8.7472E-01,8.6030E-01,8.4449E-01,
- &8.2790E-01,8.1090E-01,7.9278E-01,7.7287E-01,7.5201E-01,7.2942E-01,
- &7.0580E-01,6.9067E-01,6.7395E-01,6.5357E-01,6.3264E-01,6.1082E-01,
- &5.8728E-01,5.6718E-01,5.4478E-01,5.1825E-01,4.9075E-01,4.6263E-01,
- &4.3360E-01,4.0844E-01,3.8138E-01,3.5032E-01,3.1963E-01,2.9065E-01,
- &2.6511E-01,2.4428E-01,2.2479E-01,2.0678E-01,1.9385E-01,1.8735E-01,
- &1.8722E-01,1.9179E-01,2.0029E-01,2.1158E-01,2.1961E-01,2.1971E-01,
- &2.1194E-01,1.9894E-01,1.7862E-01,1.5609E-01,1.3279E-01,1.0972E-01,
- &8.8007E-02,6.8578E-02,5.2905E-02,4.2942E-02,4.1624E-02,5.3065E-02,
- &8.3506E-02,2.4920E-02,1.5334E-02,8.9876E-03,4.9653E-03,2.5112E-03,
- &9.8300E-04,5.0629E-04,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,
- &0.0000E+00,0.0000E+00,9.3762E-01,9.2325E-01,9.0916E-01,8.9432E-01,
- &8.7930E-01,8.6312E-01,8.4579E-01,8.2807E-01,8.0954E-01,7.8866E-01/
- DATA (XDEF_L(K),K= 1711, 1824) /
- &7.6704E-01,7.4360E-01,7.1911E-01,7.0343E-01,6.8612E-01,6.6512E-01,
- &6.4349E-01,6.2048E-01,5.9676E-01,5.7574E-01,5.5261E-01,5.2556E-01,
- &4.9731E-01,4.6862E-01,4.3881E-01,4.1318E-01,3.8556E-01,3.5408E-01,
- &3.2299E-01,2.9375E-01,2.6794E-01,2.4706E-01,2.2744E-01,2.0939E-01,
- &1.9662E-01,1.9016E-01,1.8990E-01,1.9412E-01,2.0192E-01,2.1208E-01,
- &2.1863E-01,2.1745E-01,2.0845E-01,1.9458E-01,1.7365E-01,1.5094E-01,
- &1.2783E-01,1.0526E-01,8.4228E-02,6.5746E-02,5.1203E-02,4.2521E-02,
- &4.2531E-02,5.5238E-02,8.6619E-02,2.3321E-02,1.4266E-02,8.3142E-03,
- &4.5684E-03,2.2945E-03,8.9721E-04,4.5700E-04,0.0000E+00,0.0000E+00,
- &0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,9.5912E-01,9.4446E-01,
- &9.2967E-01,9.1446E-01,8.9890E-01,8.8176E-01,8.6424E-01,8.4567E-01,
- &8.2630E-01,8.0492E-01,7.8242E-01,7.5817E-01,7.3271E-01,7.1653E-01,
- &6.9849E-01,6.7725E-01,6.5433E-01,6.3091E-01,6.0625E-01,5.8456E-01,
- &5.6088E-01,5.3305E-01,5.0402E-01,4.7461E-01,4.4411E-01,4.1800E-01,
- &3.8988E-01,3.5790E-01,3.2644E-01,2.9690E-01,2.7087E-01,2.4987E-01,
- &2.3039E-01,2.1219E-01,1.9955E-01,1.9298E-01,1.9248E-01,1.9636E-01,
- &2.0355E-01,2.1258E-01,2.1752E-01,2.1512E-01,2.0490E-01,1.9021E-01,
- &1.6876E-01,1.4586E-01,1.2296E-01,1.0090E-01,8.0587E-02,6.3034E-02,
- &4.9591E-02,4.2122E-02,4.3355E-02,5.7203E-02,8.9336E-02,2.1802E-02/
- DATA (XDEF_L(K),K= 1825, 1836) /
- &1.3258E-02,7.6843E-03,4.1967E-03,2.0952E-03,8.1932E-04,4.1202E-04,
- &0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00,0.0000E+00/
- DATA (XUDF_L(K),K= 1, 114) /
- &1.8987E-02,1.9947E-02,2.0980E-02,2.2068E-02,2.3225E-02,2.4540E-02,
- &2.5957E-02,2.7526E-02,2.9229E-02,3.1232E-02,3.3453E-02,3.6003E-02,
- &3.8855E-02,4.0763E-02,4.2980E-02,4.5778E-02,4.8895E-02,5.2320E-02,
- &5.6174E-02,5.9765E-02,6.3980E-02,6.9315E-02,7.5299E-02,8.1888E-02,
- &8.9292E-02,9.6162E-02,1.0414E-01,1.1410E-01,1.2505E-01,1.3674E-01,
- &1.4937E-01,1.6060E-01,1.7296E-01,1.8730E-01,2.0166E-01,2.1531E-01,
- &2.2821E-01,2.3833E-01,2.4848E-01,2.6049E-01,2.7586E-01,2.9166E-01,
- &3.1456E-01,3.3942E-01,3.7230E-01,4.0597E-01,4.3921E-01,4.7071E-01,
- &4.9846E-01,5.2057E-01,5.3433E-01,5.3610E-01,5.2141E-01,4.8433E-01,
- &4.1719E-01,6.3794E-01,6.7411E-01,7.2040E-01,7.8812E-01,8.9495E-01,
- &1.0702E+00,1.3629E+00,1.8763E+00,2.8399E+00,4.8968E+00,1.0506E+01,
- &3.7793E+01,0.0000E+00,3.1111E-02,3.2336E-02,3.3580E-02,3.4906E-02,
- &3.6247E-02,3.7773E-02,3.9337E-02,4.1056E-02,4.2876E-02,4.5001E-02,
- &4.7299E-02,4.9897E-02,5.2761E-02,5.4666E-02,5.6867E-02,5.9620E-02,
- &6.2679E-02,6.6018E-02,6.9775E-02,7.3275E-02,7.7353E-02,8.2522E-02,
- &8.8327E-02,9.4694E-02,1.0184E-01,1.0846E-01,1.1615E-01,1.2575E-01,
- &1.3628E-01,1.4752E-01,1.5964E-01,1.7036E-01,1.8215E-01,1.9580E-01,
- &2.0933E-01,2.2213E-01,2.3411E-01,2.4341E-01,2.5275E-01,2.6387E-01,
- &2.7831E-01,2.9333E-01,3.1510E-01,3.3876E-01,3.6995E-01,4.0170E-01/
- DATA (XUDF_L(K),K= 115, 228) /
- &4.3298E-01,4.6172E-01,4.8742E-01,5.0700E-01,5.1856E-01,5.1873E-01,
- &5.0352E-01,4.6746E-01,4.0418E-01,6.1801E-01,6.5339E-01,6.9923E-01,
- &7.6627E-01,8.7125E-01,1.0408E+00,1.3199E+00,1.8020E+00,2.6920E+00,
- &4.5574E+00,9.5310E+00,3.2877E+01,0.0000E+00,5.1176E-02,5.2640E-02,
- &5.4100E-02,5.5603E-02,5.7095E-02,5.8737E-02,6.0416E-02,6.2154E-02,
- &6.4016E-02,6.6046E-02,6.8273E-02,7.0765E-02,7.3444E-02,7.5182E-02,
- &7.7263E-02,7.9781E-02,8.2626E-02,8.5707E-02,8.9176E-02,9.2402E-02,
- &9.6182E-02,1.0098E-01,1.0635E-01,1.1227E-01,1.1893E-01,1.2513E-01,
- &1.3230E-01,1.4128E-01,1.5115E-01,1.6164E-01,1.7300E-01,1.8301E-01,
- &1.9397E-01,2.0660E-01,2.1907E-01,2.3072E-01,2.4154E-01,2.4985E-01,
- &2.5817E-01,2.6810E-01,2.8136E-01,2.9535E-01,3.1585E-01,3.3824E-01,
- &3.6743E-01,3.9701E-01,4.2565E-01,4.5205E-01,4.7460E-01,4.9184E-01,
- &5.0110E-01,4.9954E-01,4.8363E-01,4.4878E-01,3.8940E-01,5.9452E-01,
- &6.2820E-01,6.7181E-01,7.3612E-01,8.3598E-01,9.9560E-01,1.2543E+00,
- &1.6953E+00,2.4947E+00,4.1415E+00,8.4275E+00,2.7797E+01,0.0000E+00,
- &8.6266E-02,8.7847E-02,8.9380E-02,9.0869E-02,9.2337E-02,9.3826E-02,
- &9.5315E-02,9.6842E-02,9.8333E-02,1.0003E-01,1.0178E-01,1.0370E-01,
- &1.0575E-01,1.0710E-01,1.0872E-01,1.1075E-01,1.1295E-01,1.1538E-01,
- &1.1821E-01,1.2088E-01,1.2396E-01,1.2796E-01,1.3252E-01,1.3756E-01/
- DATA (XUDF_L(K),K= 229, 342) /
- &1.4331E-01,1.4870E-01,1.5500E-01,1.6291E-01,1.7166E-01,1.8100E-01,
- &1.9111E-01,2.0002E-01,2.0977E-01,2.2095E-01,2.3189E-01,2.4200E-01,
- &2.5123E-01,2.5821E-01,2.6512E-01,2.7351E-01,2.8514E-01,2.9789E-01,
- &3.1683E-01,3.3731E-01,3.6424E-01,3.9124E-01,4.1697E-01,4.4030E-01,
- &4.6002E-01,4.7419E-01,4.8085E-01,4.7740E-01,4.6086E-01,4.2728E-01,
- &3.7241E-01,5.6656E-01,5.9684E-01,6.3694E-01,6.9622E-01,7.8804E-01,
- &9.3343E-01,1.1653E+00,1.5545E+00,2.2504E+00,3.6537E+00,7.2124E+00,
- &2.2653E+01,0.0000E+00,1.4838E-01,1.4960E-01,1.5068E-01,1.5161E-01,
- &1.5242E-01,1.5316E-01,1.5373E-01,1.5426E-01,1.5470E-01,1.5511E-01,
- &1.5554E-01,1.5602E-01,1.5660E-01,1.5698E-01,1.5750E-01,1.5830E-01,
- &1.5923E-01,1.6034E-01,1.6181E-01,1.6324E-01,1.6509E-01,1.6746E-01,
- &1.7054E-01,1.7402E-01,1.7811E-01,1.8208E-01,1.8687E-01,1.9296E-01,
- &1.9986E-01,2.0734E-01,2.1554E-01,2.2281E-01,2.3075E-01,2.3983E-01,
- &2.4863E-01,2.5660E-01,2.6366E-01,2.6883E-01,2.7387E-01,2.8026E-01,
- &2.8982E-01,3.0088E-01,3.1780E-01,3.3626E-01,3.6021E-01,3.8399E-01,
- &4.0666E-01,4.2682E-01,4.4278E-01,4.5386E-01,4.5774E-01,4.5230E-01,
- &4.3509E-01,4.0314E-01,3.5321E-01,5.3325E-01,5.5916E-01,5.9448E-01,
- &6.4707E-01,7.2797E-01,8.5557E-01,1.0563E+00,1.3882E+00,1.9717E+00,
- &3.1223E+00,5.9601E+00,1.7750E+01,0.0000E+00,2.3139E-01,2.3138E-01/
- DATA (XUDF_L(K),K= 343, 456) /
- &2.3120E-01,2.3076E-01,2.3006E-01,2.2907E-01,2.2788E-01,2.2645E-01,
- &2.2489E-01,2.2308E-01,2.2120E-01,2.1929E-01,2.1743E-01,2.1630E-01,
- &2.1526E-01,2.1411E-01,2.1311E-01,2.1231E-01,2.1171E-01,2.1148E-01,
- &2.1150E-01,2.1182E-01,2.1271E-01,2.1412E-01,2.1601E-01,2.1822E-01,
- &2.2096E-01,2.2496E-01,2.2961E-01,2.3481E-01,2.4086E-01,2.4622E-01,
- &2.5214E-01,2.5891E-01,2.6537E-01,2.7104E-01,2.7588E-01,2.7922E-01,
- &2.8235E-01,2.8664E-01,2.9413E-01,3.0352E-01,3.1845E-01,3.3481E-01,
- &3.5617E-01,3.7737E-01,3.9689E-01,4.1403E-01,4.2736E-01,4.3558E-01,
- &4.3712E-01,4.3016E-01,4.1245E-01,3.8197E-01,3.3645E-01,5.0322E-01,
- &5.2507E-01,5.5559E-01,6.0172E-01,6.7286E-01,7.8413E-01,9.5797E-01,
- &1.2422E+00,1.7341E+00,2.6883E+00,4.9868E+00,1.4177E+01,0.0000E+00,
- &3.6389E-01,3.6098E-01,3.5780E-01,3.5400E-01,3.5016E-01,3.4553E-01,
- &3.4044E-01,3.3521E-01,3.2971E-01,3.2369E-01,3.1755E-01,3.1120E-01,
- &3.0494E-01,3.0120E-01,2.9724E-01,2.9287E-01,2.8855E-01,2.8449E-01,
- &2.8072E-01,2.7770E-01,2.7469E-01,2.7175E-01,2.6933E-01,2.6740E-01,
- &2.6613E-01,2.6556E-01,2.6563E-01,2.6631E-01,2.6763E-01,2.6975E-01,
- &2.7268E-01,2.7539E-01,2.7857E-01,2.8224E-01,2.8565E-01,2.8841E-01,
- &2.9040E-01,2.9139E-01,2.9220E-01,2.9395E-01,2.9888E-01,3.0633E-01,
- &3.1877E-01,3.3296E-01,3.5147E-01,3.6947E-01,3.8604E-01,3.9986E-01/
- DATA (XUDF_L(K),K= 457, 570) /
- &4.1008E-01,4.1548E-01,4.1467E-01,4.0620E-01,3.8830E-01,3.5965E-01,
- &3.1902E-01,4.7020E-01,4.8772E-01,5.1303E-01,5.5185E-01,6.1224E-01,
- &7.0699E-01,8.5323E-01,1.0903E+00,1.4950E+00,2.2640E+00,4.0723E+00,
- &0.0000E+00,0.0000E+00,5.2666E-01,5.1909E-01,5.1100E-01,5.0238E-01,
- &4.9333E-01,4.8312E-01,4.7293E-01,4.6180E-01,4.5066E-01,4.3890E-01,
- &4.2692E-01,4.1467E-01,4.0262E-01,3.9542E-01,3.8784E-01,3.7925E-01,
- &3.7080E-01,3.6267E-01,3.5482E-01,3.4841E-01,3.4190E-01,3.3492E-01,
- &3.2852E-01,3.2287E-01,3.1768E-01,3.1409E-01,3.1066E-01,3.0785E-01,
- &3.0564E-01,3.0446E-01,3.0380E-01,3.0388E-01,3.0402E-01,3.0458E-01,
- &3.0488E-01,3.0475E-01,3.0386E-01,3.0263E-01,3.0116E-01,3.0045E-01,
- &3.0296E-01,3.0852E-01,3.1888E-01,3.3085E-01,3.4677E-01,3.6222E-01,
- &3.7600E-01,3.8707E-01,3.9488E-01,3.9799E-01,3.9530E-01,3.8568E-01,
- &3.6791E-01,3.4080E-01,3.0424E-01,4.4195E-01,4.5570E-01,4.7648E-01,
- &5.0935E-01,5.6099E-01,6.4225E-01,7.6680E-01,9.6736E-01,1.3053E+00,
- &1.9393E+00,3.3976E+00,0.0000E+00,0.0000E+00,7.4015E-01,7.2498E-01,
- &7.0940E-01,6.9297E-01,6.7620E-01,6.5800E-01,6.3935E-01,6.2047E-01,
- &6.0114E-01,5.8076E-01,5.6065E-01,5.4030E-01,5.2035E-01,5.0839E-01,
- &4.9583E-01,4.8167E-01,4.6773E-01,4.5434E-01,4.4113E-01,4.3035E-01,
- &4.1922E-01,4.0719E-01,3.9582E-01,3.8536E-01,3.7557E-01,3.6805E-01/
- DATA (XUDF_L(K),K= 571, 684) /
- &3.6079E-01,3.5336E-01,3.4710E-01,3.4173E-01,3.3719E-01,3.3400E-01,
- &3.3124E-01,3.2819E-01,3.2494E-01,3.2158E-01,3.1765E-01,3.1400E-01,
- &3.1011E-01,3.0684E-01,3.0682E-01,3.1046E-01,3.1856E-01,3.2861E-01,
- &3.4189E-01,3.5475E-01,3.6597E-01,3.7463E-01,3.8003E-01,3.8108E-01,
- &3.7681E-01,3.6631E-01,3.4865E-01,3.2327E-01,2.9078E-01,4.1488E-01,
- &4.2529E-01,4.4193E-01,4.6945E-01,5.1322E-01,5.8236E-01,6.8846E-01,
- &8.5739E-01,1.1394E+00,1.6617E+00,2.8395E+00,0.0000E+00,0.0000E+00,
- &9.8501E-01,9.5975E-01,9.3420E-01,9.0757E-01,8.8092E-01,8.5237E-01,
- &8.2383E-01,7.9445E-01,7.6556E-01,7.3524E-01,7.0484E-01,6.7495E-01,
- &6.4547E-01,6.2798E-01,6.0969E-01,5.8904E-01,5.6882E-01,5.4932E-01,
- &5.3014E-01,5.1443E-01,4.9826E-01,4.8058E-01,4.6380E-01,4.4815E-01,
- &4.3330E-01,4.2167E-01,4.1020E-01,3.9827E-01,3.8748E-01,3.7784E-01,
- &3.6931E-01,3.6303E-01,3.5669E-01,3.4992E-01,3.4358E-01,3.3710E-01,
- &3.3025E-01,3.2429E-01,3.1817E-01,3.1242E-01,3.1001E-01,3.1195E-01,
- &3.1802E-01,3.2610E-01,3.3719E-01,3.4770E-01,3.5674E-01,3.6357E-01,
- &3.6695E-01,3.6631E-01,3.6075E-01,3.4960E-01,3.3214E-01,3.0855E-01,
- &2.7931E-01,3.9198E-01,3.9931E-01,4.1263E-01,4.3550E-01,4.7310E-01,
- &5.3259E-01,6.2375E-01,7.6876E-01,1.0087E+00,1.4464E+00,2.4185E+00,
- &0.0000E+00,0.0000E+00,1.2917E+00,1.2523E+00,1.2128E+00,1.1722E+00/
- DATA (XUDF_L(K),K= 685, 798) /
- &1.1321E+00,1.0894E+00,1.0473E+00,1.0044E+00,9.6262E-01,9.1838E-01,
- &8.7565E-01,8.3283E-01,7.9186E-01,7.6734E-01,7.4146E-01,7.1300E-01,
- &6.8484E-01,6.5787E-01,6.3134E-01,6.0963E-01,5.8730E-01,5.6294E-01,
- &5.3947E-01,5.1767E-01,4.9689E-01,4.8039E-01,4.6398E-01,4.4675E-01,
- &4.3087E-01,4.1650E-01,4.0371E-01,3.9342E-01,3.8361E-01,3.7293E-01,
- &3.6284E-01,3.5305E-01,3.4307E-01,3.3468E-01,3.2613E-01,3.1788E-01,
- &3.1306E-01,3.1309E-01,3.1715E-01,3.2346E-01,3.3232E-01,3.4066E-01,
- &3.4779E-01,3.5251E-01,3.5401E-01,3.5184E-01,3.4519E-01,3.3347E-01,
- &3.1650E-01,2.9433E-01,2.6872E-01,3.6968E-01,3.7446E-01,3.8477E-01,
- &4.0368E-01,4.3551E-01,4.8654E-01,5.6457E-01,6.8832E-01,8.9135E-01,
- &1.2583E+00,2.0601E+00,0.0000E+00,0.0000E+00,1.6499E+00,1.5928E+00,
- &1.5356E+00,1.4773E+00,1.4202E+00,1.3601E+00,1.3009E+00,1.2413E+00,
- &1.1836E+00,1.1235E+00,1.0650E+00,1.0076E+00,9.5212E-01,9.1919E-01,
- &8.8569E-01,8.4733E-01,8.1006E-01,7.7436E-01,7.3955E-01,7.1104E-01,
- &6.8173E-01,6.4966E-01,6.1893E-01,5.9026E-01,5.6287E-01,5.4114E-01,
- &5.1941E-01,4.9621E-01,4.7490E-01,4.5564E-01,4.3786E-01,4.2408E-01,
- &4.1024E-01,3.9562E-01,3.8175E-01,3.6853E-01,3.5541E-01,3.4455E-01,
- &3.3366E-01,3.2286E-01,3.1565E-01,3.1397E-01,3.1618E-01,3.2069E-01,
- &3.2744E-01,3.3383E-01,3.3911E-01,3.4194E-01,3.4194E-01,3.3844E-01/
- DATA (XUDF_L(K),K= 799, 912) /
- &3.3088E-01,3.1887E-01,3.0224E-01,2.8177E-01,2.5901E-01,3.4945E-01,
- &3.5200E-01,3.5959E-01,3.7518E-01,4.0212E-01,4.4590E-01,5.1305E-01,
- &6.1934E-01,7.9273E-01,1.1025E+00,1.7693E+00,0.0000E+00,0.0000E+00,
- &2.0413E+00,1.9626E+00,1.8840E+00,1.8053E+00,1.7284E+00,1.6480E+00,
- &1.5697E+00,1.4911E+00,1.4157E+00,1.3375E+00,1.2620E+00,1.1875E+00,
- &1.1168E+00,1.0751E+00,1.0321E+00,9.8410E-01,9.3682E-01,8.9196E-01,
- &8.4816E-01,8.1245E-01,7.7582E-01,7.3576E-01,6.9745E-01,6.6154E-01,
- &6.2742E-01,6.0036E-01,5.7319E-01,5.4409E-01,5.1721E-01,4.9291E-01,
- &4.7049E-01,4.5284E-01,4.3541E-01,4.1671E-01,3.9926E-01,3.8274E-01,
- &3.6660E-01,3.5348E-01,3.4035E-01,3.2727E-01,3.1788E-01,3.1459E-01,
- &3.1499E-01,3.1792E-01,3.2291E-01,3.2764E-01,3.3124E-01,3.3250E-01,
- &3.3120E-01,3.2663E-01,3.1834E-01,3.0608E-01,2.8998E-01,2.7085E-01,
- &2.5085E-01,3.3191E-01,3.3258E-01,3.3808E-01,3.5072E-01,3.7379E-01,
- &4.1182E-01,4.7005E-01,5.6257E-01,7.1233E-01,9.7788E-01,1.5412E+00,
- &0.0000E+00,0.0000E+00,2.6325E+00,2.5188E+00,2.4060E+00,2.2942E+00,
- &2.1863E+00,2.0740E+00,1.9650E+00,1.8571E+00,1.7537E+00,1.6473E+00,
- &1.5453E+00,1.4458E+00,1.3515E+00,1.2965E+00,1.2394E+00,1.1767E+00,
- &1.1150E+00,1.0560E+00,9.9927E-01,9.5301E-01,9.0565E-01,8.5400E-01,
- &8.0462E-01,7.5858E-01,7.1481E-01,6.7994E-01,6.4502E-01,6.0799E-01/
- DATA (XUDF_L(K),K= 913, 1026) /
- &5.7349E-01,5.4206E-01,5.1299E-01,4.9028E-01,4.6789E-01,4.4387E-01,
- &4.2168E-01,4.0096E-01,3.8070E-01,3.6457E-01,3.4857E-01,3.3249E-01,
- &3.2026E-01,3.1503E-01,3.1326E-01,3.1423E-01,3.1703E-01,3.1974E-01,
- &3.2120E-01,3.2086E-01,3.1799E-01,3.1221E-01,3.0315E-01,2.9072E-01,
- &2.7522E-01,2.5796E-01,2.4114E-01,3.1079E-01,3.0956E-01,3.1267E-01,
- &3.2223E-01,3.4089E-01,3.7246E-01,4.2134E-01,4.9853E-01,6.2305E-01,
- &8.4191E-01,1.2983E+00,0.0000E+00,0.0000E+00,3.2997E+00,3.1427E+00,
- &2.9900E+00,2.8374E+00,2.6927E+00,2.5421E+00,2.3973E+00,2.2549E+00,
- &2.1191E+00,1.9809E+00,1.8488E+00,1.7209E+00,1.6001E+00,1.5300E+00,
- &1.4576E+00,1.3771E+00,1.2999E+00,1.2268E+00,1.1551E+00,1.0975E+00,
- &1.0385E+00,9.7437E-01,9.1327E-01,8.5649E-01,8.0236E-01,7.5952E-01,
- &7.1667E-01,6.7091E-01,6.2847E-01,5.9005E-01,5.5422E-01,5.2636E-01,
- &4.9890E-01,4.6976E-01,4.4269E-01,4.1752E-01,3.9377E-01,3.7477E-01,
- &3.5594E-01,3.3710E-01,3.2226E-01,3.1511E-01,3.1131E-01,3.1067E-01,
- &3.1132E-01,3.1227E-01,3.1198E-01,3.1021E-01,3.0606E-01,2.9926E-01,
- &2.8958E-01,2.7716E-01,2.6233E-01,2.4655E-01,2.3275E-01,2.9229E-01,
- &2.8941E-01,2.9061E-01,2.9753E-01,3.1273E-01,3.3909E-01,3.8034E-01,
- &4.4548E-01,5.5028E-01,7.3256E-01,1.1074E+00,0.0000E+00,0.0000E+00,
- &4.0557E+00,3.8486E+00,3.6460E+00,3.4480E+00,3.2579E+00,3.0626E+00/
- DATA (XUDF_L(K),K= 1027, 1140) /
- &2.8756E+00,2.6929E+00,2.5196E+00,2.3441E+00,2.1778E+00,2.0170E+00,
- &1.8670E+00,1.7797E+00,1.6902E+00,1.5909E+00,1.4960E+00,1.4058E+00,
- &1.3191E+00,1.2484E+00,1.1764E+00,1.0991E+00,1.0253E+00,9.5689E-01,
- &8.9197E-01,8.4046E-01,7.8904E-01,7.3442E-01,6.8367E-01,6.3780E-01,
- &5.9520E-01,5.6218E-01,5.2934E-01,4.9500E-01,4.6300E-01,4.3370E-01,
- &4.0611E-01,3.8431E-01,3.6284E-01,3.4121E-01,3.2389E-01,3.1494E-01,
- &3.0926E-01,3.0697E-01,3.0594E-01,3.0501E-01,3.0330E-01,3.0019E-01,
- &2.9492E-01,2.8734E-01,2.7718E-01,2.6476E-01,2.5057E-01,2.3646E-01,
- &2.2503E-01,2.7558E-01,2.7132E-01,2.7089E-01,2.7569E-01,2.8794E-01,
- &3.1000E-01,3.4491E-01,4.0016E-01,4.8886E-01,6.4191E-01,9.5232E-01,
- &0.0000E+00,0.0000E+00,4.8799E+00,4.6116E+00,4.3560E+00,4.1035E+00,
- &3.8608E+00,3.6163E+00,3.3822E+00,3.1557E+00,2.9412E+00,2.7247E+00,
- &2.5209E+00,2.3248E+00,2.1421E+00,2.0368E+00,1.9287E+00,1.8094E+00,
- &1.6955E+00,1.5877E+00,1.4841E+00,1.4003E+00,1.3154E+00,1.2237E+00,
- &1.1368E+00,1.0563E+00,9.8015E-01,9.2005E-01,8.5978E-01,7.9615E-01,
- &7.3715E-01,6.8369E-01,6.3441E-01,5.9609E-01,5.5830E-01,5.1865E-01,
- &4.8192E-01,4.4872E-01,4.1747E-01,3.9300E-01,3.6895E-01,3.4483E-01,
- &3.2508E-01,3.1459E-01,3.0709E-01,3.0328E-01,3.0056E-01,2.9840E-01,
- &2.9543E-01,2.9107E-01,2.8485E-01,2.7655E-01,2.6610E-01,2.5368E-01/
- DATA (XUDF_L(K),K= 1141, 1254) /
- &2.4019E-01,2.2736E-01,2.1837E-01,2.6080E-01,2.5542E-01,2.5362E-01,
- &2.5693E-01,2.6661E-01,2.8505E-01,3.1490E-01,3.6226E-01,4.3798E-01,
- &5.6769E-01,8.2836E-01,0.0000E+00,0.0000E+00,5.8340E+00,5.4940E+00,
- &5.1700E+00,4.8532E+00,4.5515E+00,4.2463E+00,3.9559E+00,3.6752E+00,
- &3.4138E+00,3.1496E+00,2.9022E+00,2.6648E+00,2.4450E+00,2.3189E+00,
- &2.1896E+00,2.0476E+00,1.9120E+00,1.7843E+00,1.6621E+00,1.5639E+00,
- &1.4648E+00,1.3569E+00,1.2556E+00,1.1618E+00,1.0734E+00,1.0037E+00,
- &9.3416E-01,8.6065E-01,7.9257E-01,7.3145E-01,6.7463E-01,6.3082E-01,
- &5.8786E-01,5.4262E-01,5.0118E-01,4.6374E-01,4.2883E-01,4.0146E-01,
- &3.7490E-01,3.4814E-01,3.2612E-01,3.1397E-01,3.0482E-01,2.9958E-01,
- &2.9536E-01,2.9178E-01,2.8756E-01,2.8208E-01,2.7504E-01,2.6611E-01,
- &2.5539E-01,2.4319E-01,2.3031E-01,2.1877E-01,2.1195E-01,2.4673E-01,
- &2.4036E-01,2.3746E-01,2.3912E-01,2.4677E-01,2.6223E-01,2.8748E-01,
- &3.2792E-01,3.9255E-01,5.0271E-01,7.2095E-01,0.0000E+00,0.0000E+00,
- &6.8578E+00,6.4388E+00,6.0380E+00,5.6501E+00,5.2825E+00,4.9103E+00,
- &4.5613E+00,4.2230E+00,3.9070E+00,3.5911E+00,3.2966E+00,3.0156E+00,
- &2.7567E+00,2.6078E+00,2.4563E+00,2.2905E+00,2.1319E+00,1.9837E+00,
- &1.8421E+00,1.7287E+00,1.6141E+00,1.4902E+00,1.3730E+00,1.2663E+00,
- &1.1652E+00,1.0858E+00,1.0067E+00,9.2337E-01,8.4648E-01,7.7710E-01/
- DATA (XUDF_L(K),K= 1255, 1368) /
- &7.1333E-01,6.6392E-01,6.1566E-01,5.6531E-01,5.1904E-01,4.7761E-01,
- &4.3908E-01,4.0927E-01,3.8022E-01,3.5109E-01,3.2686E-01,3.1318E-01,
- &3.0244E-01,2.9602E-01,2.9031E-01,2.8538E-01,2.8024E-01,2.7382E-01,
- &2.6607E-01,2.5668E-01,2.4571E-01,2.3364E-01,2.2155E-01,2.1116E-01,
- &2.0617E-01,2.3421E-01,2.2704E-01,2.2320E-01,2.2366E-01,2.2952E-01,
- &2.4241E-01,2.6402E-01,2.9884E-01,3.5437E-01,4.4860E-01,6.3331E-01,
- &0.0000E+00,0.0000E+00,7.9784E+00,7.4673E+00,6.9820E+00,6.5121E+00,
- &6.0712E+00,5.6250E+00,5.2080E+00,4.8065E+00,4.4309E+00,4.0590E+00,
- &3.7131E+00,3.3843E+00,3.0816E+00,2.9094E+00,2.7332E+00,2.5420E+00,
- &2.3595E+00,2.1895E+00,2.0271E+00,1.8966E+00,1.7658E+00,1.6248E+00,
- &1.4933E+00,1.3718E+00,1.2579E+00,1.1683E+00,1.0795E+00,9.8589E-01,
- &8.9996E-01,8.2253E-01,7.5153E-01,6.9648E-01,6.4287E-01,5.8736E-01,
- &5.3655E-01,4.9109E-01,4.4891E-01,4.1655E-01,3.8518E-01,3.5367E-01,
- &3.2738E-01,3.1221E-01,3.0006E-01,2.9246E-01,2.8544E-01,2.7940E-01,
- &2.7319E-01,2.6601E-01,2.5763E-01,2.4782E-01,2.3676E-01,2.2486E-01,
- &2.1329E-01,2.0405E-01,2.0083E-01,2.2267E-01,2.1489E-01,2.1027E-01,
- &2.0967E-01,2.1409E-01,2.2473E-01,2.4320E-01,2.7316E-01,3.2113E-01,
- &4.0209E-01,5.5899E-01,0.0000E+00,0.0000E+00,9.1575E+00,8.5458E+00,
- &7.9700E+00,7.4123E+00,6.8876E+00,6.3653E+00,5.8736E+00,5.4042E+00/
- DATA (XUDF_L(K),K= 1369, 1482) /
- &4.9684E+00,4.5359E+00,4.1366E+00,3.7576E+00,3.4110E+00,3.2138E+00,
- &3.0122E+00,2.7943E+00,2.5871E+00,2.3944E+00,2.2102E+00,2.0646E+00,
- &1.9163E+00,1.7581E+00,1.6109E+00,1.4753E+00,1.3483E+00,1.2486E+00,
- &1.1500E+00,1.0462E+00,9.5130E-01,8.6585E-01,7.8770E-01,7.2741E-01,
- &6.6891E-01,6.0781E-01,5.5266E-01,5.0342E-01,4.5788E-01,4.2322E-01,
- &3.8960E-01,3.5594E-01,3.2768E-01,3.1125E-01,2.9779E-01,2.8890E-01,
- &2.8091E-01,2.7385E-01,2.6670E-01,2.5886E-01,2.4989E-01,2.3976E-01,
- &2.2861E-01,2.1703E-01,2.0604E-01,1.9777E-01,1.9598E-01,2.1238E-01,
- &2.0408E-01,1.9879E-01,1.9735E-01,2.0048E-01,2.0933E-01,2.2523E-01,
- &2.5120E-01,2.9296E-01,3.6305E-01,4.9711E-01,0.0000E+00,0.0000E+00,
- &1.0956E+01,1.0188E+01,9.4660E+00,8.7704E+00,8.1209E+00,7.4727E+00,
- &6.8721E+00,6.2972E+00,5.7646E+00,5.2434E+00,4.7595E+00,4.3051E+00,
- &3.8911E+00,3.6559E+00,3.4174E+00,3.1598E+00,2.9153E+00,2.6889E+00,
- &2.4732E+00,2.3031E+00,2.1311E+00,1.9475E+00,1.7771E+00,1.6202E+00,
- &1.4748E+00,1.3609E+00,1.2481E+00,1.1301E+00,1.0222E+00,9.2549E-01,
- &8.3728E-01,7.6947E-01,7.0373E-01,6.3561E-01,5.7438E-01,5.1959E-01,
- &4.6984E-01,4.3187E-01,3.9529E-01,3.5864E-01,3.2783E-01,3.0967E-01,
- &2.9444E-01,2.8428E-01,2.7469E-01,2.6638E-01,2.5813E-01,2.4942E-01,
- &2.3986E-01,2.2937E-01,2.1819E-01,2.0682E-01,1.9665E-01,1.8966E-01/
- DATA (XUDF_L(K),K= 1483, 1596) /
- &1.8971E-01,1.9926E-01,1.9036E-01,1.8442E-01,1.8192E-01,1.8362E-01,
- &1.9037E-01,2.0318E-01,2.2459E-01,2.5904E-01,3.1665E-01,4.2407E-01,
- &0.0000E+00,0.0000E+00,1.2798E+01,1.1861E+01,1.0986E+01,1.0144E+01,
- &9.3643E+00,8.5887E+00,7.8706E+00,7.1866E+00,6.5568E+00,5.9419E+00,
- &5.3754E+00,4.8419E+00,4.3593E+00,4.0864E+00,3.8109E+00,3.5127E+00,
- &3.2315E+00,2.9714E+00,2.7252E+00,2.5309E+00,2.3356E+00,2.1269E+00,
- &1.9338E+00,1.7578E+00,1.5939E+00,1.4656E+00,1.3394E+00,1.2075E+00,
- &1.0875E+00,9.8023E-01,8.8256E-01,8.0772E-01,7.3533E-01,6.6054E-01,
- &5.9364E-01,5.3423E-01,4.8009E-01,4.3930E-01,4.0003E-01,3.6079E-01,
- &3.2768E-01,3.0809E-01,2.9130E-01,2.7993E-01,2.6898E-01,2.5976E-01,
- &2.5062E-01,2.4123E-01,2.3116E-01,2.2040E-01,2.0917E-01,1.9814E-01,
- &1.8865E-01,1.8272E-01,1.8428E-01,1.8820E-01,1.7883E-01,1.7238E-01,
- &1.6914E-01,1.6979E-01,1.7482E-01,1.8534E-01,2.0325E-01,2.3214E-01,
- &2.8022E-01,3.6659E-01,0.0000E+00,0.0000E+00,1.4900E+01,1.3767E+01,
- &1.2708E+01,1.1700E+01,1.0766E+01,9.8403E+00,8.9832E+00,8.1757E+00,
- &7.4366E+00,6.7121E+00,6.0486E+00,5.4300E+00,4.8704E+00,4.5555E+00,
- &4.2371E+00,3.8955E+00,3.5734E+00,3.2760E+00,2.9952E+00,2.7738E+00,
- &2.5528E+00,2.3175E+00,2.1001E+00,1.9012E+00,1.7176E+00,1.5750E+00,
- &1.4344E+00,1.2880E+00,1.1547E+00,1.0364E+00,9.2859E-01,8.4652E-01/
- DATA (XUDF_L(K),K= 1597, 1710) /
- &7.6723E-01,6.8578E-01,6.1255E-01,5.4848E-01,4.9034E-01,4.4649E-01,
- &4.0456E-01,3.6275E-01,3.2738E-01,3.0624E-01,2.8805E-01,2.7544E-01,
- &2.6343E-01,2.5315E-01,2.4318E-01,2.3314E-01,2.2263E-01,2.1166E-01,
- &2.0051E-01,1.8983E-01,1.8102E-01,1.7610E-01,1.7901E-01,1.7764E-01,
- &1.6791E-01,1.6102E-01,1.5715E-01,1.5684E-01,1.6056E-01,1.6899E-01,
- &1.8376E-01,2.0786E-01,2.4776E-01,3.1470E-01,0.0000E+00,0.0000E+00,
- &1.7212E+01,1.5853E+01,1.4590E+01,1.3390E+01,1.2283E+01,1.1191E+01,
- &1.0185E+01,9.2395E+00,8.3762E+00,7.5315E+00,6.7670E+00,6.0503E+00,
- &5.4086E+00,5.0481E+00,4.6843E+00,4.2940E+00,3.9280E+00,3.5917E+00,
- &3.2752E+00,3.0252E+00,2.7768E+00,2.5132E+00,2.2690E+00,2.0490E+00,
- &1.8445E+00,1.6857E+00,1.5301E+00,1.3685E+00,1.2219E+00,1.0920E+00,
- &9.7438E-01,8.8478E-01,7.9825E-01,7.1007E-01,6.3111E-01,5.6196E-01,
- &5.0016E-01,4.5321E-01,4.0867E-01,3.6435E-01,3.2686E-01,3.0431E-01,
- &2.8470E-01,2.7109E-01,2.5789E-01,2.4674E-01,2.3605E-01,2.2547E-01,
- &2.1459E-01,2.0348E-01,1.9237E-01,1.8201E-01,1.7376E-01,1.6982E-01,
- &1.7398E-01,1.6789E-01,1.5795E-01,1.5065E-01,1.4630E-01,1.4521E-01,
- &1.4773E-01,1.5443E-01,1.6659E-01,1.8664E-01,2.1966E-01,2.6878E-01,
- &0.0000E+00,0.0000E+00,1.9526E+01,1.7951E+01,1.6470E+01,1.5074E+01,
- &1.3790E+01,1.2527E+01,1.1370E+01,1.0282E+01,9.2958E+00,8.3330E+00/
- DATA (XUDF_L(K),K= 1711, 1824) /
- &7.4603E+00,6.6536E+00,5.9285E+00,5.5219E+00,5.1141E+00,4.6768E+00,
- &4.2681E+00,3.8926E+00,3.5402E+00,3.2626E+00,2.9882E+00,2.6963E+00,
- &2.4284E+00,2.1851E+00,1.9619E+00,1.7885E+00,1.6187E+00,1.4429E+00,
- &1.2838E+00,1.1431E+00,1.0159E+00,9.1924E-01,8.2663E-01,7.3180E-01,
- &6.4793E-01,5.7429E-01,5.0828E-01,4.5904E-01,4.1215E-01,3.6558E-01,
- &3.2620E-01,3.0238E-01,2.8167E-01,2.6700E-01,2.5302E-01,2.4098E-01,
- &2.2975E-01,2.1873E-01,2.0756E-01,1.9633E-01,1.8532E-01,1.7533E-01,
- &1.6763E-01,1.6450E-01,1.6959E-01,1.5953E-01,1.4943E-01,1.4185E-01,
- &1.3716E-01,1.3545E-01,1.3705E-01,1.4238E-01,1.5258E-01,1.6945E-01,
- &1.9705E-01,2.3049E-01,0.0000E+00,0.0000E+00,2.2141E+01,2.0286E+01,
- &1.8570E+01,1.6948E+01,1.5466E+01,1.4010E+01,1.2679E+01,1.1431E+01,
- &1.0303E+01,9.2106E+00,8.2239E+00,7.3077E+00,6.4926E+00,6.0348E+00,
- &5.5765E+00,5.0879E+00,4.6321E+00,4.2138E+00,3.8233E+00,3.5162E+00,
- &3.2122E+00,2.8907E+00,2.5960E+00,2.3300E+00,2.0856E+00,1.8954E+00,
- &1.7110E+00,1.5199E+00,1.3476E+00,1.1955E+00,1.0584E+00,9.5478E-01,
- &8.5531E-01,7.5417E-01,6.6439E-01,5.8623E-01,5.1682E-01,4.6468E-01,
- &4.1541E-01,3.6662E-01,3.2538E-01,3.0035E-01,2.7843E-01,2.6291E-01,
- &2.4798E-01,2.3522E-01,2.2346E-01,2.1203E-01,2.0062E-01,1.8935E-01,
- &1.7843E-01,1.6874E-01,1.6163E-01,1.5920E-01,1.6520E-01,1.5147E-01/
- DATA (XUDF_L(K),K= 1825, 1836) /
- &1.4120E-01,1.3349E-01,1.2844E-01,1.2620E-01,1.2701E-01,1.3118E-01,
- &1.3954E-01,1.5369E-01,1.7631E-01,1.9416E-01,0.0000E+00,0.0000E+00/
- DATA (XSF_L(K),K= 1, 114) /
- &8.9277E-03,9.2838E-03,9.6380E-03,9.9960E-03,1.0349E-02,1.0719E-02,
- &1.1082E-02,1.1442E-02,1.1792E-02,1.2148E-02,1.2489E-02,1.2817E-02,
- &1.3124E-02,1.3295E-02,1.3474E-02,1.3661E-02,1.3835E-02,1.3985E-02,
- &1.4121E-02,1.4217E-02,1.4303E-02,1.4379E-02,1.4419E-02,1.4434E-02,
- &1.4412E-02,1.4366E-02,1.4286E-02,1.4158E-02,1.3991E-02,1.3790E-02,
- &1.3553E-02,1.3335E-02,1.3094E-02,1.2821E-02,1.2580E-02,1.2410E-02,
- &1.2357E-02,1.2459E-02,1.2790E-02,1.3571E-02,1.5018E-02,1.6665E-02,
- &1.9113E-02,2.1832E-02,2.5587E-02,2.9818E-02,3.4535E-02,3.9813E-02,
- &4.5737E-02,5.2358E-02,5.9765E-02,6.8021E-02,7.7185E-02,8.7258E-02,
- &9.8198E-02,1.1073E-01,1.4216E-01,1.8364E-01,2.3959E-01,3.1758E-01,
- &4.3050E-01,6.0203E-01,8.8214E-01,1.3845E+00,2.4294E+00,5.2463E+00,
- &1.8903E+01,0.0000E+00,1.4987E-02,1.5468E-02,1.5936E-02,1.6403E-02,
- &1.6855E-02,1.7319E-02,1.7760E-02,1.8194E-02,1.8600E-02,1.9008E-02,
- &1.9382E-02,1.9730E-02,2.0033E-02,2.0199E-02,2.0359E-02,2.0523E-02,
- &2.0654E-02,2.0760E-02,2.0831E-02,2.0870E-02,2.0886E-02,2.0858E-02,
- &2.0798E-02,2.0680E-02,2.0523E-02,2.0363E-02,2.0127E-02,1.9825E-02,
- &1.9464E-02,1.9060E-02,1.8607E-02,1.8200E-02,1.7750E-02,1.7240E-02,
- &1.6759E-02,1.6362E-02,1.6103E-02,1.6050E-02,1.6240E-02,1.6916E-02,
- &1.8336E-02,2.0030E-02,2.2586E-02,2.5447E-02,2.9418E-02,3.3874E-02/
- DATA (XSF_L(K),K= 115, 228) /
- &3.8821E-02,4.4375E-02,5.0509E-02,5.7343E-02,6.4974E-02,7.3385E-02,
- &8.2640E-02,9.2732E-02,1.0354E-01,1.1667E-01,1.4809E-01,1.8910E-01,
- &2.4387E-01,3.1940E-01,4.2764E-01,5.9054E-01,8.5228E-01,1.3150E+00,
- &2.2623E+00,4.7596E+00,1.6445E+01,0.0000E+00,2.5010E-02,2.5616E-02,
- &2.6180E-02,2.6758E-02,2.7279E-02,2.7792E-02,2.8274E-02,2.8729E-02,
- &2.9134E-02,2.9513E-02,2.9836E-02,3.0110E-02,3.0324E-02,3.0417E-02,
- &3.0492E-02,3.0537E-02,3.0551E-02,3.0517E-02,3.0432E-02,3.0326E-02,
- &3.0181E-02,2.9954E-02,2.9663E-02,2.9316E-02,2.8913E-02,2.8508E-02,
- &2.8021E-02,2.7422E-02,2.6741E-02,2.5997E-02,2.5204E-02,2.4500E-02,
- &2.3734E-02,2.2858E-02,2.2019E-02,2.1281E-02,2.0698E-02,2.0402E-02,
- &2.0365E-02,2.0844E-02,2.2137E-02,2.3807E-02,2.6404E-02,2.9338E-02,
- &3.3433E-02,3.8036E-02,4.3135E-02,4.8799E-02,5.5061E-02,6.1999E-02,
- &6.9633E-02,7.8024E-02,8.7156E-02,9.6998E-02,1.0742E-01,1.2099E-01,
- &1.5162E-01,1.9121E-01,2.4363E-01,3.1510E-01,4.1638E-01,5.6669E-01,
- &8.0557E-01,1.2216E+00,2.0572E+00,4.2084E+00,1.3911E+01,0.0000E+00,
- &4.2554E-02,4.3210E-02,4.3820E-02,4.4379E-02,4.4862E-02,4.5317E-02,
- &4.5708E-02,4.6037E-02,4.6300E-02,4.6434E-02,4.6540E-02,4.6530E-02,
- &4.6426E-02,4.6317E-02,4.6155E-02,4.5919E-02,4.5622E-02,4.5267E-02,
- &4.4833E-02,4.4425E-02,4.3932E-02,4.3298E-02,4.2582E-02,4.1785E-02/
- DATA (XSF_L(K),K= 229, 342) /
- &4.0903E-02,4.0097E-02,3.9179E-02,3.8047E-02,3.6815E-02,3.5547E-02,
- &3.4199E-02,3.3020E-02,3.1748E-02,3.0298E-02,2.8905E-02,2.7644E-02,
- &2.6563E-02,2.5882E-02,2.5485E-02,2.5614E-02,2.6651E-02,2.8199E-02,
- &3.0731E-02,3.3652E-02,3.7768E-02,4.2390E-02,4.7530E-02,5.3188E-02,
- &5.9436E-02,6.6257E-02,7.3734E-02,8.1918E-02,9.0696E-02,1.0004E-01,
- &1.0978E-01,1.2357E-01,1.5274E-01,1.8999E-01,2.3888E-01,3.0452E-01,
- &3.9656E-01,5.3136E-01,7.4246E-01,1.1043E+00,1.8158E+00,3.6023E+00,
- &0.0000E+00,0.0000E+00,7.3602E-02,7.4085E-02,7.4460E-02,7.4729E-02,
- &7.4904E-02,7.4982E-02,7.4902E-02,7.4713E-02,7.4446E-02,7.3972E-02,
- &7.3397E-02,7.2626E-02,7.1803E-02,7.1200E-02,7.0479E-02,6.9610E-02,
- &6.8654E-02,6.7624E-02,6.6495E-02,6.5467E-02,6.4313E-02,6.2898E-02,
- &6.1380E-02,5.9788E-02,5.8079E-02,5.6557E-02,5.4876E-02,5.2866E-02,
- &5.0733E-02,4.8592E-02,4.6341E-02,4.4415E-02,4.2370E-02,4.0073E-02,
- &3.7825E-02,3.5778E-02,3.3956E-02,3.2702E-02,3.1749E-02,3.1334E-02,
- &3.1922E-02,3.3216E-02,3.5534E-02,3.8322E-02,4.2321E-02,4.6830E-02,
- &5.1816E-02,5.7335E-02,6.3369E-02,6.9947E-02,7.7109E-02,8.4752E-02,
- &9.2948E-02,1.0153E-01,1.1031E-01,1.2405E-01,1.5100E-01,1.8509E-01,
- &2.2905E-01,2.8761E-01,3.6847E-01,4.8537E-01,6.6543E-01,9.6831E-01,
- &1.5524E+00,2.9766E+00,0.0000E+00,0.0000E+00,1.1509E-01,1.1500E-01/
- DATA (XSF_L(K),K= 343, 456) /
- &1.1474E-01,1.1430E-01,1.1371E-01,1.1292E-01,1.1196E-01,1.1079E-01,
- &1.0948E-01,1.0791E-01,1.0620E-01,1.0426E-01,1.0215E-01,1.0076E-01,
- &9.9224E-02,9.7466E-02,9.5472E-02,9.3507E-02,9.1346E-02,8.9460E-02,
- &8.7382E-02,8.4914E-02,8.2326E-02,7.9663E-02,7.6874E-02,7.4459E-02,
- &7.1794E-02,6.8694E-02,6.5489E-02,6.2266E-02,5.8964E-02,5.6164E-02,
- &5.3226E-02,4.9916E-02,4.6721E-02,4.3794E-02,4.1128E-02,3.9225E-02,
- &3.7654E-02,3.6613E-02,3.6666E-02,3.7626E-02,3.9655E-02,4.2227E-02,
- &4.6000E-02,5.0288E-02,5.5044E-02,6.0308E-02,6.6020E-02,7.2218E-02,
- &7.8943E-02,8.6079E-02,9.3611E-02,1.0141E-01,1.0925E-01,1.2274E-01,
- &1.4748E-01,1.7840E-01,2.1791E-01,2.6997E-01,3.4109E-01,4.4280E-01,
- &5.9706E-01,8.5325E-01,1.3371E+00,2.4909E+00,0.0000E+00,0.0000E+00,
- &1.8131E-01,1.7986E-01,1.7802E-01,1.7597E-01,1.7372E-01,1.7110E-01,
- &1.6825E-01,1.6515E-01,1.6187E-01,1.5820E-01,1.5428E-01,1.5016E-01,
- &1.4582E-01,1.4314E-01,1.4017E-01,1.3677E-01,1.3315E-01,1.2951E-01,
- &1.2571E-01,1.2248E-01,1.1891E-01,1.1472E-01,1.1045E-01,1.0615E-01,
- &1.0173E-01,9.7944E-02,9.3854E-02,8.9131E-02,8.4347E-02,7.9597E-02,
- &7.4799E-02,7.0788E-02,6.6599E-02,6.1932E-02,5.7438E-02,5.3307E-02,
- &4.9546E-02,4.6816E-02,4.4417E-02,4.2536E-02,4.1862E-02,4.2361E-02,
- &4.3960E-02,4.6198E-02,4.9612E-02,5.3553E-02,5.7974E-02,6.2830E-02/
- DATA (XSF_L(K),K= 457, 570) /
- &6.8141E-02,7.3865E-02,7.9970E-02,8.6422E-02,9.3160E-02,1.0006E-01,
- &1.0685E-01,1.1989E-01,1.4199E-01,1.6937E-01,2.0407E-01,2.4925E-01,
- &3.1029E-01,3.9635E-01,5.2529E-01,7.3579E-01,1.1263E+00,2.0347E+00,
- &0.0000E+00,0.0000E+00,2.6278E-01,2.5883E-01,2.5460E-01,2.5007E-01,
- &2.4526E-01,2.3995E-01,2.3437E-01,2.2848E-01,2.2242E-01,2.1578E-01,
- &2.0894E-01,2.0181E-01,1.9465E-01,1.9018E-01,1.8540E-01,1.7984E-01,
- &1.7415E-01,1.6846E-01,1.6261E-01,1.5768E-01,1.5234E-01,1.4615E-01,
- &1.3987E-01,1.3368E-01,1.2736E-01,1.2199E-01,1.1628E-01,1.0975E-01,
- &1.0321E-01,9.6788E-02,9.0380E-02,8.5059E-02,7.9532E-02,7.3436E-02,
- &6.7594E-02,6.2243E-02,5.7363E-02,5.3720E-02,5.0502E-02,4.7772E-02,
- &4.6346E-02,4.6358E-02,4.7497E-02,4.9377E-02,5.2401E-02,5.5965E-02,
- &6.0009E-02,6.4489E-02,6.9334E-02,7.4546E-02,8.0117E-02,8.5936E-02,
- &9.1972E-02,9.8056E-02,1.0398E-01,1.1644E-01,1.3628E-01,1.6068E-01,
- &1.9127E-01,2.3085E-01,2.8377E-01,3.5756E-01,4.6698E-01,6.4315E-01,
- &9.6485E-01,1.6969E+00,0.0000E+00,0.0000E+00,3.6944E-01,3.6187E-01,
- &3.5380E-01,3.4525E-01,3.3659E-01,3.2716E-01,3.1761E-01,3.0767E-01,
- &2.9759E-01,2.8675E-01,2.7586E-01,2.6462E-01,2.5339E-01,2.4660E-01,
- &2.3933E-01,2.3101E-01,2.2257E-01,2.1415E-01,2.0571E-01,1.9854E-01,
- &1.9083E-01,1.8216E-01,1.7338E-01,1.6480E-01,1.5613E-01,1.4885E-01/
- DATA (XSF_L(K),K= 571, 684) /
- &1.4115E-01,1.3244E-01,1.2380E-01,1.1542E-01,1.0713E-01,1.0031E-01,
- &9.3226E-02,8.5515E-02,7.8171E-02,7.1449E-02,6.5307E-02,6.0723E-02,
- &5.6523E-02,5.2878E-02,5.0622E-02,5.0109E-02,5.0720E-02,5.2187E-02,
- &5.4770E-02,5.7950E-02,6.1582E-02,6.5595E-02,6.9997E-02,7.4716E-02,
- &7.9677E-02,8.4886E-02,9.0221E-02,9.5543E-02,1.0065E-01,1.1245E-01,
- &1.3012E-01,1.5166E-01,1.7859E-01,2.1305E-01,2.5881E-01,3.2188E-01,
- &4.1454E-01,5.6186E-01,8.2718E-01,1.4188E+00,0.0000E+00,0.0000E+00,
- &4.9195E-01,4.7916E-01,4.6620E-01,4.5277E-01,4.3908E-01,4.2463E-01,
- &4.0985E-01,3.9491E-01,3.7975E-01,3.6377E-01,3.4790E-01,3.3178E-01,
- &3.1592E-01,3.0640E-01,2.9622E-01,2.8462E-01,2.7303E-01,2.6160E-01,
- &2.5012E-01,2.4047E-01,2.3023E-01,2.1867E-01,2.0717E-01,1.9597E-01,
- &1.8477E-01,1.7546E-01,1.6568E-01,1.5468E-01,1.4387E-01,1.3343E-01,
- &1.2319E-01,1.1482E-01,1.0622E-01,9.6828E-02,8.7978E-02,7.9884E-02,
- &7.2526E-02,6.6973E-02,6.1948E-02,5.7359E-02,5.4304E-02,5.3263E-02,
- &5.3381E-02,5.4456E-02,5.6601E-02,5.9380E-02,6.2613E-02,6.6252E-02,
- &7.0174E-02,7.4432E-02,7.8943E-02,8.3559E-02,8.8282E-02,9.2963E-02,
- &9.7382E-02,1.0858E-01,1.2441E-01,1.4363E-01,1.6745E-01,1.9778E-01,
- &2.3771E-01,2.9246E-01,3.7200E-01,4.9738E-01,7.2010E-01,1.2083E+00,
- &0.0000E+00,0.0000E+00,6.4521E-01,6.2534E-01,6.0540E-01,5.8499E-01/
- DATA (XSF_L(K),K= 685, 798) /
- &5.6467E-01,5.4301E-01,5.2143E-01,4.9951E-01,4.7813E-01,4.5538E-01,
- &4.3325E-01,4.1083E-01,3.8899E-01,3.7591E-01,3.6210E-01,3.4648E-01,
- &3.3091E-01,3.1578E-01,3.0062E-01,2.8797E-01,2.7469E-01,2.5979E-01,
- &2.4501E-01,2.3066E-01,2.1649E-01,2.0481E-01,1.9252E-01,1.7884E-01,
- &1.6549E-01,1.5274E-01,1.4029E-01,1.3018E-01,1.1985E-01,1.0865E-01,
- &9.8135E-02,8.8550E-02,7.9829E-02,7.3318E-02,6.7269E-02,6.1748E-02,
- &5.7838E-02,5.6250E-02,5.5826E-02,5.6474E-02,5.8181E-02,6.0533E-02,
- &6.3373E-02,6.6563E-02,7.0085E-02,7.3865E-02,7.7842E-02,8.1937E-02,
- &8.6092E-02,9.0169E-02,9.3962E-02,1.0448E-01,1.1858E-01,1.3561E-01,
- &1.5663E-01,1.8318E-01,2.1803E-01,2.6529E-01,3.3349E-01,4.3985E-01,
- &6.2661E-01,1.0291E+00,0.0000E+00,0.0000E+00,8.2462E-01,7.9558E-01,
- &7.6680E-01,7.3764E-01,7.0860E-01,6.7834E-01,6.4822E-01,6.1798E-01,
- &5.8880E-01,5.5792E-01,5.2800E-01,4.9801E-01,4.6912E-01,4.5197E-01,
- &4.3393E-01,4.1360E-01,3.9348E-01,3.7394E-01,3.5462E-01,3.3856E-01,
- &3.2180E-01,3.0303E-01,2.8460E-01,2.6681E-01,2.4932E-01,2.3502E-01,
- &2.2005E-01,2.0359E-01,1.8747E-01,1.7224E-01,1.5746E-01,1.4551E-01,
- &1.3337E-01,1.2028E-01,1.0805E-01,9.6986E-02,8.6877E-02,7.9334E-02,
- &7.2326E-02,6.5799E-02,6.1060E-02,5.8911E-02,5.7957E-02,5.8189E-02,
- &5.9441E-02,6.1387E-02,6.3834E-02,6.6632E-02,6.9732E-02,7.3070E-02/
- DATA (XSF_L(K),K= 799, 912) /
- &7.6595E-02,8.0190E-02,8.3816E-02,8.7358E-02,9.0631E-02,1.0046E-01,
- &1.1304E-01,1.2815E-01,1.4670E-01,1.7006E-01,2.0049E-01,2.4154E-01,
- &3.0039E-01,3.9121E-01,5.4894E-01,8.8378E-01,0.0000E+00,0.0000E+00,
- &1.0199E+00,9.8025E-01,9.4100E-01,9.0151E-01,8.6283E-01,8.2243E-01,
- &7.8262E-01,7.4321E-01,7.0465E-01,6.6494E-01,6.2647E-01,5.8811E-01,
- &5.5152E-01,5.2985E-01,5.0721E-01,4.8183E-01,4.5681E-01,4.3274E-01,
- &4.0883E-01,3.8916E-01,3.6878E-01,3.4589E-01,3.2366E-01,3.0238E-01,
- &2.8152E-01,2.6437E-01,2.4685E-01,2.2733E-01,2.0858E-01,1.9085E-01,
- &1.7375E-01,1.6000E-01,1.4607E-01,1.3115E-01,1.1722E-01,1.0469E-01,
- &9.3284E-02,8.4739E-02,7.6803E-02,6.9420E-02,6.3844E-02,6.1178E-02,
- &5.9720E-02,5.9561E-02,6.0398E-02,6.1984E-02,6.4051E-02,6.6494E-02,
- &6.9202E-02,7.2161E-02,7.5274E-02,7.8453E-02,8.1651E-02,8.4728E-02,
- &8.7564E-02,9.6777E-02,1.0806E-01,1.2157E-01,1.3806E-01,1.5882E-01,
- &1.8566E-01,2.2170E-01,2.7301E-01,3.5168E-01,4.8696E-01,7.7010E-01,
- &0.0000E+00,0.0000E+00,1.3158E+00,1.2585E+00,1.2024E+00,1.1462E+00,
- &1.0919E+00,1.0352E+00,9.8042E-01,9.2608E-01,8.7345E-01,8.1987E-01,
- &7.6814E-01,7.1724E-01,6.6882E-01,6.4053E-01,6.1093E-01,5.7796E-01,
- &5.4572E-01,5.1470E-01,4.8433E-01,4.5934E-01,4.3358E-01,4.0495E-01,
- &3.7717E-01,3.5082E-01,3.2513E-01,3.0408E-01,2.8258E-01,2.5918E-01/
- DATA (XSF_L(K),K= 913, 1026) /
- &2.3648E-01,2.1538E-01,1.9510E-01,1.7888E-01,1.6255E-01,1.4508E-01,
- &1.2895E-01,1.1443E-01,1.0131E-01,9.1507E-02,8.2387E-02,7.3778E-02,
- &6.7147E-02,6.3813E-02,6.1721E-02,6.1065E-02,6.1373E-02,6.2475E-02,
- &6.4105E-02,6.6079E-02,6.8362E-02,7.0856E-02,7.3440E-02,7.6143E-02,
- &7.8812E-02,8.1388E-02,8.3726E-02,9.2167E-02,1.0190E-01,1.1355E-01,
- &1.2780E-01,1.4554E-01,1.6841E-01,1.9900E-01,2.4223E-01,3.0775E-01,
- &4.1920E-01,6.4849E-01,0.0000E+00,0.0000E+00,1.6483E+00,1.5703E+00,
- &1.4940E+00,1.4180E+00,1.3449E+00,1.2694E+00,1.1966E+00,1.1250E+00,
- &1.0566E+00,9.8644E-01,9.1985E-01,8.5482E-01,7.9312E-01,7.5722E-01,
- &7.1986E-01,6.7849E-01,6.3821E-01,5.9972E-01,5.6214E-01,5.3143E-01,
- &4.9987E-01,4.6500E-01,4.3136E-01,3.9956E-01,3.6875E-01,3.4379E-01,
- &3.1832E-01,2.9044E-01,2.6397E-01,2.3923E-01,2.1580E-01,1.9706E-01,
- &1.7829E-01,1.5838E-01,1.3999E-01,1.2356E-01,1.0875E-01,9.7664E-02,
- &8.7392E-02,7.7645E-02,7.0035E-02,6.6062E-02,6.3365E-02,6.2239E-02,
- &6.2062E-02,6.2731E-02,6.3942E-02,6.5526E-02,6.7390E-02,6.9436E-02,
- &7.1635E-02,7.3891E-02,7.6122E-02,7.8246E-02,8.0196E-02,8.7884E-02,
- &9.6357E-02,1.0648E-01,1.1880E-01,1.3413E-01,1.5386E-01,1.7993E-01,
- &2.1655E-01,2.7189E-01,3.6486E-01,5.5332E-01,0.0000E+00,0.0000E+00,
- &2.0271E+00,1.9234E+00,1.8224E+00,1.7226E+00,1.6272E+00,1.5293E+00/
- DATA (XSF_L(K),K= 1027, 1140) /
- &1.4356E+00,1.3438E+00,1.2568E+00,1.1682E+00,1.0841E+00,1.0026E+00,
- &9.2625E-01,8.8207E-01,8.3568E-01,7.8523E-01,7.3607E-01,6.8926E-01,
- &6.4385E-01,6.0685E-01,5.6892E-01,5.2730E-01,4.8731E-01,4.4961E-01,
- &4.1331E-01,3.8417E-01,3.5441E-01,3.2210E-01,2.9168E-01,2.6323E-01,
- &2.3631E-01,2.1500E-01,1.9374E-01,1.7129E-01,1.5067E-01,1.3231E-01,
- &1.1579E-01,1.0349E-01,9.2080E-02,8.1205E-02,7.2626E-02,6.8039E-02,
- &6.4761E-02,6.3188E-02,6.2549E-02,6.2795E-02,6.3617E-02,6.4835E-02,
- &6.6329E-02,6.8017E-02,6.9809E-02,7.1667E-02,7.3520E-02,7.5270E-02,
- &7.6864E-02,8.3899E-02,9.1206E-02,1.0002E-01,1.1070E-01,1.2399E-01,
- &1.4094E-01,1.6341E-01,1.9474E-01,2.4163E-01,3.1971E-01,4.7587E-01,
- &0.0000E+00,0.0000E+00,2.4392E+00,2.3049E+00,2.1760E+00,2.0502E+00,
- &1.9296E+00,1.8065E+00,1.6895E+00,1.5750E+00,1.4674E+00,1.3585E+00,
- &1.2554E+00,1.1565E+00,1.0638E+00,1.0103E+00,9.5527E-01,8.9449E-01,
- &8.3572E-01,7.8018E-01,7.2635E-01,6.8280E-01,6.3819E-01,5.8948E-01,
- &5.4299E-01,4.9923E-01,4.5740E-01,4.2371E-01,3.8978E-01,3.5296E-01,
- &3.1832E-01,2.8629E-01,2.5599E-01,2.3212E-01,2.0840E-01,1.8346E-01,
- &1.6065E-01,1.4043E-01,1.2229E-01,1.0880E-01,9.6294E-02,8.4335E-02,
- &7.4905E-02,6.9717E-02,6.5897E-02,6.3914E-02,6.2851E-02,6.2731E-02,
- &6.3183E-02,6.4075E-02,6.5225E-02,6.6597E-02,6.8048E-02,6.9577E-02/
- DATA (XSF_L(K),K= 1141, 1254) /
- &7.1093E-02,7.2525E-02,7.3842E-02,8.0241E-02,8.6615E-02,9.4292E-02,
- &1.0360E-01,1.1517E-01,1.2992E-01,1.4936E-01,1.7633E-01,2.1652E-01,
- &2.8294E-01,4.1389E-01,0.0000E+00,0.0000E+00,2.9162E+00,2.7470E+00,
- &2.5840E+00,2.4244E+00,2.2743E+00,2.1215E+00,1.9764E+00,1.8358E+00,
- &1.7035E+00,1.5708E+00,1.4463E+00,1.3268E+00,1.2152E+00,1.1514E+00,
- &1.0857E+00,1.0132E+00,9.4449E-01,8.7867E-01,8.1556E-01,7.6453E-01,
- &7.1252E-01,6.5602E-01,6.0218E-01,5.5192E-01,5.0387E-01,4.6545E-01,
- &4.2679E-01,3.8521E-01,3.4602E-01,3.1005E-01,2.7623E-01,2.4962E-01,
- &2.2332E-01,1.9577E-01,1.7070E-01,1.4856E-01,1.2874E-01,1.1402E-01,
- &1.0040E-01,8.7343E-02,7.6984E-02,7.1254E-02,6.6892E-02,6.4508E-02,
- &6.3019E-02,6.2518E-02,6.2667E-02,6.3211E-02,6.4031E-02,6.5064E-02,
- &6.6243E-02,6.7458E-02,6.8679E-02,6.9830E-02,7.0885E-02,7.6672E-02,
- &8.2192E-02,8.8844E-02,9.6930E-02,1.0696E-01,1.1972E-01,1.3654E-01,
- &1.5978E-01,1.9411E-01,2.5048E-01,3.6023E-01,0.0000E+00,0.0000E+00,
- &3.4281E+00,3.2194E+00,3.0180E+00,2.8239E+00,2.6400E+00,2.4537E+00,
- &2.2781E+00,2.1087E+00,1.9503E+00,1.7915E+00,1.6433E+00,1.5021E+00,
- &1.3711E+00,1.2958E+00,1.2191E+00,1.1350E+00,1.0536E+00,9.7846E-01,
- &9.0526E-01,8.4668E-01,7.8697E-01,7.2243E-01,6.6110E-01,6.0402E-01,
- &5.4971E-01,5.0652E-01,4.6307E-01,4.1647E-01,3.7287E-01,3.3288E-01/
- DATA (XSF_L(K),K= 1255, 1368) /
- &2.9545E-01,2.6636E-01,2.3751E-01,2.0740E-01,1.8012E-01,1.5611E-01,
- &1.3467E-01,1.1881E-01,1.0414E-01,9.0105E-02,7.8839E-02,7.2563E-02,
- &6.7703E-02,6.4930E-02,6.3070E-02,6.2241E-02,6.2071E-02,6.2347E-02,
- &6.2882E-02,6.3645E-02,6.4526E-02,6.5473E-02,6.6427E-02,6.7333E-02,
- &6.8194E-02,7.3430E-02,7.8217E-02,8.3974E-02,9.1017E-02,9.9745E-02,
- &1.1088E-01,1.2552E-01,1.4563E-01,1.7528E-01,2.2351E-01,3.1636E-01,
- &0.0000E+00,0.0000E+00,3.9892E+00,3.7328E+00,3.4900E+00,3.2549E+00,
- &3.0344E+00,2.8108E+00,2.6014E+00,2.4001E+00,2.2123E+00,2.0253E+00,
- &1.8518E+00,1.6860E+00,1.5339E+00,1.4463E+00,1.3575E+00,1.2608E+00,
- &1.1678E+00,1.0809E+00,9.9767E-01,9.3087E-01,8.6314E-01,7.8996E-01,
- &7.2083E-01,6.5671E-01,5.9602E-01,5.4775E-01,4.9935E-01,4.4773E-01,
- &3.9951E-01,3.5571E-01,3.1467E-01,2.8272E-01,2.5135E-01,2.1871E-01,
- &1.8923E-01,1.6331E-01,1.4031E-01,1.2332E-01,1.0762E-01,9.2560E-02,
- &8.0473E-02,7.3714E-02,6.8385E-02,6.5246E-02,6.3019E-02,6.1878E-02,
- &6.1420E-02,6.1413E-02,6.1734E-02,6.2226E-02,6.2861E-02,6.3564E-02,
- &6.4288E-02,6.4985E-02,6.5657E-02,7.0367E-02,7.4522E-02,7.9506E-02,
- &8.5651E-02,9.3297E-02,1.0298E-01,1.1572E-01,1.3323E-01,1.5884E-01,
- &2.0039E-01,2.7925E-01,0.0000E+00,0.0000E+00,4.5788E+00,4.2729E+00,
- &3.9840E+00,3.7039E+00,3.4438E+00,3.1812E+00,2.9349E+00,2.6996E+00/
- DATA (XSF_L(K),K= 1369, 1482) /
- &2.4810E+00,2.2644E+00,2.0633E+00,1.8732E+00,1.6979E+00,1.5988E+00,
- &1.4974E+00,1.3865E+00,1.2812E+00,1.1834E+00,1.0891E+00,1.0143E+00,
- &9.3839E-01,8.5662E-01,7.7948E-01,7.0838E-01,6.4106E-01,5.8780E-01,
- &5.3454E-01,4.7781E-01,4.2528E-01,3.7737E-01,3.3289E-01,2.9818E-01,
- &2.6446E-01,2.2932E-01,1.9770E-01,1.7005E-01,1.4552E-01,1.2746E-01,
- &1.1078E-01,9.4770E-02,8.1957E-02,7.4689E-02,6.8915E-02,6.5457E-02,
- &6.2902E-02,6.1493E-02,6.0768E-02,6.0515E-02,6.0585E-02,6.0863E-02,
- &6.1298E-02,6.1789E-02,6.2311E-02,6.2835E-02,6.3340E-02,6.7601E-02,
- &7.1162E-02,7.5516E-02,8.0878E-02,8.7566E-02,9.6095E-02,1.0725E-01,
- &1.2258E-01,1.4495E-01,1.8090E-01,2.4841E-01,0.0000E+00,0.0000E+00,
- &5.4774E+00,5.0929E+00,4.7320E+00,4.3841E+00,4.0592E+00,3.7350E+00,
- &3.4329E+00,3.1454E+00,2.8799E+00,2.6172E+00,2.3747E+00,2.1466E+00,
- &1.9383E+00,1.8195E+00,1.6996E+00,1.5689E+00,1.4457E+00,1.3301E+00,
- &1.2211E+00,1.1339E+00,1.0456E+00,9.5119E-01,8.6259E-01,7.8097E-01,
- &7.0419E-01,6.4380E-01,5.8358E-01,5.1955E-01,4.6051E-01,4.0719E-01,
- &3.5768E-01,3.1962E-01,2.8220E-01,2.4360E-01,2.0909E-01,1.7895E-01,
- &1.5240E-01,1.3282E-01,1.1484E-01,9.7655E-02,8.3739E-02,7.5857E-02,
- &6.9509E-02,6.5616E-02,6.2633E-02,6.0853E-02,5.9819E-02,5.9271E-02,
- &5.9038E-02,5.9046E-02,5.9192E-02,5.9432E-02,5.9709E-02,6.0008E-02/
- DATA (XSF_L(K),K= 1483, 1596) /
- &6.0340E-02,6.4032E-02,6.6851E-02,7.0446E-02,7.4870E-02,8.0457E-02,
- &8.7554E-02,9.6862E-02,1.0964E-01,1.2821E-01,1.5779E-01,2.1189E-01,
- &0.0000E+00,0.0000E+00,6.3982E+00,5.9307E+00,5.4920E+00,5.0710E+00,
- &4.6822E+00,4.2915E+00,3.9337E+00,3.5898E+00,3.2756E+00,2.9660E+00,
- &2.6817E+00,2.4150E+00,2.1724E+00,2.0348E+00,1.8961E+00,1.7457E+00,
- &1.6034E+00,1.4714E+00,1.3471E+00,1.2473E+00,1.1476E+00,1.0408E+00,
- &9.4083E-01,8.4932E-01,7.6350E-01,6.9606E-01,6.2897E-01,5.5833E-01,
- &4.9315E-01,4.3444E-01,3.8044E-01,3.3861E-01,2.9817E-01,2.5642E-01,
- &2.1917E-01,1.8685E-01,1.5838E-01,1.3752E-01,1.1831E-01,9.9987E-02,
- &8.5224E-02,7.6762E-02,6.9910E-02,6.5655E-02,6.2297E-02,6.0213E-02,
- &5.8897E-02,5.8096E-02,5.7624E-02,5.7400E-02,5.7322E-02,5.7351E-02,
- &5.7432E-02,5.7560E-02,5.7758E-02,6.0939E-02,6.3212E-02,6.6167E-02,
- &6.9884E-02,7.4560E-02,8.0552E-02,8.8432E-02,9.9242E-02,1.1491E-01,
- &1.3966E-01,1.8320E-01,0.0000E+00,0.0000E+00,7.4490E+00,6.8826E+00,
- &6.3540E+00,5.8477E+00,5.3805E+00,4.9187E+00,4.4884E+00,4.0843E+00,
- &3.7147E+00,3.3516E+00,3.0193E+00,2.7088E+00,2.4279E+00,2.2696E+00,
- &2.1091E+00,1.9368E+00,1.7739E+00,1.6237E+00,1.4821E+00,1.3692E+00,
- &1.2557E+00,1.1358E+00,1.0238E+00,9.2133E-01,8.2567E-01,7.5070E-01,
- &6.7656E-01,5.9850E-01,5.2688E-01,4.6263E-01,4.0371E-01,3.5842E-01/
- DATA (XSF_L(K),K= 1597, 1710) /
- &3.1427E-01,2.6933E-01,2.2930E-01,1.9466E-01,1.6427E-01,1.4208E-01,
- &1.2168E-01,1.0226E-01,8.6560E-02,7.7553E-02,7.0202E-02,6.5576E-02,
- &6.1860E-02,5.9487E-02,5.7920E-02,5.6852E-02,5.6166E-02,5.5736E-02,
- &5.5458E-02,5.5289E-02,5.5193E-02,5.5163E-02,5.5243E-02,5.7935E-02,
- &5.9740E-02,6.2111E-02,6.5158E-02,6.9050E-02,7.4078E-02,8.0683E-02,
- &8.9776E-02,1.0288E-01,1.2351E-01,1.5725E-01,0.0000E+00,0.0000E+00,
- &8.6044E+00,7.9255E+00,7.2940E+00,6.6940E+00,6.1391E+00,5.5940E+00,
- &5.0907E+00,4.6180E+00,4.1841E+00,3.7622E+00,3.3775E+00,3.0195E+00,
- &2.6967E+00,2.5153E+00,2.3331E+00,2.1364E+00,1.9521E+00,1.7815E+00,
- &1.6211E+00,1.4944E+00,1.3683E+00,1.2334E+00,1.1084E+00,9.9465E-01,
- &8.8864E-01,8.0585E-01,7.2432E-01,6.3866E-01,5.6038E-01,4.9058E-01,
- &4.2648E-01,3.7768E-01,3.3036E-01,2.8189E-01,2.3907E-01,2.0214E-01,
- &1.6987E-01,1.4635E-01,1.2479E-01,1.0428E-01,8.7748E-02,7.8203E-02,
- &7.0386E-02,6.5431E-02,6.1373E-02,5.8719E-02,5.6916E-02,5.5642E-02,
- &5.4751E-02,5.4118E-02,5.3653E-02,5.3314E-02,5.3067E-02,5.2897E-02,
- &5.2861E-02,5.5140E-02,5.6493E-02,5.8378E-02,6.0860E-02,6.4090E-02,
- &6.8261E-02,7.3828E-02,8.1439E-02,9.2423E-02,1.0952E-01,1.3424E-01,
- &0.0000E+00,0.0000E+00,9.7645E+00,8.9701E+00,8.2340E+00,7.5357E+00,
- &6.8926E+00,6.2607E+00,5.6834E+00,5.1374E+00,4.6459E+00,4.1625E+00/
- DATA (XSF_L(K),K= 1711, 1824) /
- &3.7261E+00,3.3206E+00,2.9567E+00,2.7529E+00,2.5476E+00,2.3274E+00,
- &2.1217E+00,1.9320E+00,1.7541E+00,1.6131E+00,1.4740E+00,1.3257E+00,
- &1.1879E+00,1.0631E+00,9.4732E-01,8.5726E-01,7.6844E-01,6.7586E-01,
- &5.9131E-01,5.1597E-01,4.4748E-01,3.9504E-01,3.4470E-01,2.9317E-01,
- &2.4779E-01,2.0880E-01,1.7478E-01,1.5007E-01,1.2748E-01,1.0600E-01,
- &8.8713E-02,7.8704E-02,7.0472E-02,6.5220E-02,6.0885E-02,5.7993E-02,
- &5.5967E-02,5.4536E-02,5.3470E-02,5.2665E-02,5.2054E-02,5.1577E-02,
- &5.1203E-02,5.0930E-02,5.0809E-02,5.2731E-02,5.3716E-02,5.5192E-02,
- &5.7203E-02,5.9902E-02,6.3412E-02,6.8123E-02,7.4602E-02,8.3905E-02,
- &9.8185E-02,1.1515E-01,0.0000E+00,0.0000E+00,1.1069E+01,1.0141E+01,
- &9.2840E+00,8.4741E+00,7.7316E+00,7.0038E+00,6.3364E+00,5.7137E+00,
- &5.1475E+00,4.6031E+00,4.1059E+00,3.6477E+00,3.2381E+00,3.0086E+00,
- &2.7788E+00,2.5333E+00,2.3033E+00,2.0926E+00,1.8951E+00,1.7404E+00,
- &1.5854E+00,1.4229E+00,1.2715E+00,1.1352E+00,1.0089E+00,9.1089E-01,
- &8.1457E-01,7.1424E-01,6.2332E-01,5.4229E-01,4.6872E-01,4.1295E-01,
- &3.5903E-01,3.0454E-01,2.5654E-01,2.1539E-01,1.7965E-01,1.5373E-01,
- &1.3011E-01,1.0766E-01,8.9530E-02,7.9108E-02,7.0483E-02,6.4943E-02,
- &6.0331E-02,5.7203E-02,5.4990E-02,5.3395E-02,5.2144E-02,5.1206E-02,
- &5.0454E-02,4.9840E-02,4.9351E-02,4.8978E-02,4.8801E-02,5.0351E-02/
- DATA (XSF_L(K),K= 1825, 1836) /
- &5.1017E-02,5.2127E-02,5.3737E-02,5.5934E-02,5.8835E-02,6.2800E-02,
- &6.8260E-02,7.6135E-02,8.7873E-02,0.0000E+00,0.0000E+00,0.0000E+00/
- DATA (XGF_L(K),K= 1, 114) /
- &1.0646E+00,1.0934E+00,1.1214E+00,1.1484E+00,1.1741E+00,1.1999E+00,
- &1.2242E+00,1.2466E+00,1.2676E+00,1.2873E+00,1.3042E+00,1.3194E+00,
- &1.3313E+00,1.3376E+00,1.3430E+00,1.3472E+00,1.3502E+00,1.3504E+00,
- &1.3501E+00,1.3478E+00,1.3430E+00,1.3356E+00,1.3267E+00,1.3149E+00,
- &1.3003E+00,1.2857E+00,1.2680E+00,1.2451E+00,1.2189E+00,1.1899E+00,
- &1.1575E+00,1.1282E+00,1.0947E+00,1.0543E+00,1.0121E+00,9.6983E-01,
- &9.2809E-01,8.9556E-01,8.6663E-01,8.4606E-01,8.4971E-01,8.7714E-01,
- &9.3569E-01,1.0140E+00,1.1325E+00,1.2706E+00,1.4268E+00,1.6005E+00,
- &1.7918E+00,2.0014E+00,2.2301E+00,2.4791E+00,2.7490E+00,3.0404E+00,
- &3.3541E+00,3.5718E+00,4.2579E+00,5.0478E+00,5.9674E+00,7.0458E+00,
- &8.3375E+00,9.9284E+00,1.1949E+01,1.4650E+01,1.8560E+01,2.5096E+01,
- &4.0067E+01,0.0000E+00,1.6404E+00,1.6723E+00,1.7014E+00,1.7287E+00,
- &1.7533E+00,1.7768E+00,1.7973E+00,1.8152E+00,1.8297E+00,1.8417E+00,
- &1.8498E+00,1.8540E+00,1.8544E+00,1.8526E+00,1.8489E+00,1.8424E+00,
- &1.8335E+00,1.8221E+00,1.8091E+00,1.7949E+00,1.7784E+00,1.7555E+00,
- &1.7310E+00,1.7034E+00,1.6713E+00,1.6428E+00,1.6093E+00,1.5680E+00,
- &1.5230E+00,1.4754E+00,1.4241E+00,1.3785E+00,1.3278E+00,1.2681E+00,
- &1.2068E+00,1.1462E+00,1.0867E+00,1.0400E+00,9.9665E-01,9.6041E-01,
- &9.4923E-01,9.6563E-01,1.0117E+00,1.0781E+00,1.1816E+00,1.3028E+00/
- DATA (XGF_L(K),K= 115, 228) /
- &1.4397E+00,1.5912E+00,1.7573E+00,1.9376E+00,2.1326E+00,2.3425E+00,
- &2.5677E+00,2.8078E+00,3.0611E+00,3.2398E+00,3.7904E+00,4.4126E+00,
- &5.1162E+00,5.9322E+00,6.8841E+00,8.0278E+00,9.4403E+00,1.1276E+01,
- &1.3844E+01,1.7948E+01,2.6821E+01,0.0000E+00,2.5295E+00,2.5563E+00,
- &2.5800E+00,2.5995E+00,2.6174E+00,2.6286E+00,2.6363E+00,2.6395E+00,
- &2.6379E+00,2.6306E+00,2.6184E+00,2.6000E+00,2.5768E+00,2.5598E+00,
- &2.5397E+00,2.5137E+00,2.4839E+00,2.4516E+00,2.4161E+00,2.3833E+00,
- &2.3459E+00,2.3000E+00,2.2499E+00,2.1966E+00,2.1407E+00,2.0900E+00,
- &2.0320E+00,1.9647E+00,1.8929E+00,1.8190E+00,1.7411E+00,1.6734E+00,
- &1.5997E+00,1.5142E+00,1.4279E+00,1.3438E+00,1.2617E+00,1.1967E+00,
- &1.1353E+00,1.0800E+00,1.0501E+00,1.0526E+00,1.0849E+00,1.1369E+00,
- &1.2228E+00,1.3250E+00,1.4410E+00,1.5691E+00,1.7085E+00,1.8587E+00,
- &2.0200E+00,2.1915E+00,2.3728E+00,2.5633E+00,2.7603E+00,2.9047E+00,
- &3.3315E+00,3.8026E+00,4.3243E+00,4.9121E+00,5.5828E+00,6.3648E+00,
- &7.3038E+00,8.4817E+00,1.0068E+01,1.2484E+01,1.7398E+01,0.0000E+00,
- &3.9781E+00,3.9859E+00,3.9880E+00,3.9845E+00,3.9763E+00,3.9582E+00,
- &3.9337E+00,3.9028E+00,3.8636E+00,3.8159E+00,3.7613E+00,3.6984E+00,
- &3.6287E+00,3.5836E+00,3.5326E+00,3.4703E+00,3.4046E+00,3.3350E+00,
- &3.2612E+00,3.1962E+00,3.1248E+00,3.0388E+00,2.9485E+00,2.8565E+00/
- DATA (XGF_L(K),K= 229, 342) /
- &2.7591E+00,2.6752E+00,2.5823E+00,2.4756E+00,2.3627E+00,2.2510E+00,
- &2.1352E+00,2.0365E+00,1.9308E+00,1.8097E+00,1.6896E+00,1.5737E+00,
- &1.4618E+00,1.3735E+00,1.2886E+00,1.2087E+00,1.1551E+00,1.1411E+00,
- &1.1545E+00,1.1903E+00,1.2550E+00,1.3356E+00,1.4282E+00,1.5306E+00,
- &1.6419E+00,1.7606E+00,1.8869E+00,2.0194E+00,2.1574E+00,2.2992E+00,
- &2.4432E+00,2.5568E+00,2.8674E+00,3.2008E+00,3.5626E+00,3.9572E+00,
- &4.3932E+00,4.8857E+00,5.4544E+00,6.1386E+00,7.0188E+00,8.2895E+00,
- &1.0709E+01,0.0000E+00,6.3697E+00,6.3265E+00,6.2740E+00,6.2091E+00,
- &6.1391E+00,6.0517E+00,5.9560E+00,5.8525E+00,5.7367E+00,5.6106E+00,
- &5.4709E+00,5.3235E+00,5.1695E+00,5.0724E+00,4.9662E+00,4.8411E+00,
- &4.7105E+00,4.5784E+00,4.4412E+00,4.3226E+00,4.1943E+00,4.0442E+00,
- &3.8903E+00,3.7360E+00,3.5773E+00,3.4420E+00,3.2967E+00,3.1301E+00,
- &2.9593E+00,2.7916E+00,2.6229E+00,2.4802E+00,2.3301E+00,2.1613E+00,
- &1.9957E+00,1.8382E+00,1.6875E+00,1.5691E+00,1.4545E+00,1.3433E+00,
- &1.2614E+00,1.2264E+00,1.2177E+00,1.2342E+00,1.2749E+00,1.3313E+00,
- &1.3987E+00,1.4740E+00,1.5559E+00,1.6431E+00,1.7346E+00,1.8295E+00,
- &1.9260E+00,2.0232E+00,2.1174E+00,2.2034E+00,2.4118E+00,2.6289E+00,
- &2.8563E+00,3.0948E+00,3.3486E+00,3.6231E+00,3.9250E+00,4.2677E+00,
- &4.6847E+00,5.2492E+00,6.2650E+00,0.0000E+00,9.3778E+00,9.2428E+00/
- DATA (XGF_L(K),K= 343, 456) /
- &9.0960E+00,8.9365E+00,8.7665E+00,8.5746E+00,8.3714E+00,8.1544E+00,
- &7.9343E+00,7.6882E+00,7.4352E+00,7.1724E+00,6.9027E+00,6.7360E+00,
- &6.5571E+00,6.3494E+00,6.1374E+00,5.9260E+00,5.7093E+00,5.5249E+00,
- &5.3270E+00,5.0995E+00,4.8700E+00,4.6419E+00,4.4114E+00,4.2173E+00,
- &4.0129E+00,3.7786E+00,3.5451E+00,3.3173E+00,3.0900E+00,2.9004E+00,
- &2.7040E+00,2.4853E+00,2.2734E+00,2.0742E+00,1.8851E+00,1.7372E+00,
- &1.5941E+00,1.4536E+00,1.3433E+00,1.2893E+00,1.2607E+00,1.2587E+00,
- &1.2792E+00,1.3153E+00,1.3616E+00,1.4149E+00,1.4736E+00,1.5361E+00,
- &1.6012E+00,1.6677E+00,1.7344E+00,1.7990E+00,1.8589E+00,1.9261E+00,
- &2.0646E+00,2.2044E+00,2.3456E+00,2.4882E+00,2.6342E+00,2.7823E+00,
- &2.9370E+00,3.1022E+00,3.2902E+00,3.5288E+00,3.9528E+00,0.0000E+00,
- &1.3926E+01,1.3617E+01,1.3298E+01,1.2959E+01,1.2612E+01,1.2230E+01,
- &1.1845E+01,1.1442E+01,1.1036E+01,1.0599E+01,1.0158E+01,9.7041E+00,
- &9.2562E+00,8.9827E+00,8.6974E+00,8.3632E+00,8.0255E+00,7.6946E+00,
- &7.3614E+00,7.0802E+00,6.7814E+00,6.4439E+00,6.1064E+00,5.7775E+00,
- &5.4468E+00,5.1723E+00,4.8858E+00,4.5617E+00,4.2425E+00,3.9361E+00,
- &3.6353E+00,3.3874E+00,3.1301E+00,2.8506E+00,2.5816E+00,2.3318E+00,
- &2.0965E+00,1.9136E+00,1.7368E+00,1.5622E+00,1.4211E+00,1.3452E+00,
- &1.2937E+00,1.2737E+00,1.2719E+00,1.2868E+00,1.3119E+00,1.3437E+00/
- DATA (XGF_L(K),K= 457, 570) /
- &1.3799E+00,1.4189E+00,1.4596E+00,1.5003E+00,1.5401E+00,1.5761E+00,
- &1.6073E+00,1.6574E+00,1.7377E+00,1.8158E+00,1.8902E+00,1.9601E+00,
- &2.0263E+00,2.0884E+00,2.1452E+00,2.1990E+00,2.2512E+00,2.3118E+00,
- &2.4354E+00,0.0000E+00,1.9256E+01,1.8699E+01,1.8142E+01,1.7563E+01,
- &1.6980E+01,1.6355E+01,1.5725E+01,1.5081E+01,1.4443E+01,1.3769E+01,
- &1.3097E+01,1.2422E+01,1.1755E+01,1.1358E+01,1.0937E+01,1.0454E+01,
- &9.9818E+00,9.5167E+00,9.0465E+00,8.6570E+00,8.2473E+00,7.7870E+00,
- &7.3320E+00,6.8911E+00,6.4569E+00,6.0969E+00,5.7223E+00,5.3051E+00,
- &4.8992E+00,4.5131E+00,4.1351E+00,3.8285E+00,3.5148E+00,3.1749E+00,
- &2.8517E+00,2.5534E+00,2.2748E+00,2.0598E+00,1.8527E+00,1.6465E+00,
- &1.4780E+00,1.3832E+00,1.3129E+00,1.2758E+00,1.2566E+00,1.2544E+00,
- &1.2628E+00,1.2778E+00,1.2971E+00,1.3186E+00,1.3412E+00,1.3637E+00,
- &1.3845E+00,1.4021E+00,1.4142E+00,1.4518E+00,1.4945E+00,1.5327E+00,
- &1.5661E+00,1.5941E+00,1.6160E+00,1.6309E+00,1.6386E+00,1.6381E+00,
- &1.6291E+00,1.6176E+00,1.6271E+00,0.0000E+00,2.5945E+01,2.5063E+01,
- &2.4160E+01,2.3234E+01,2.2336E+01,2.1370E+01,2.0417E+01,1.9450E+01,
- &1.8508E+01,1.7517E+01,1.6548E+01,1.5580E+01,1.4645E+01,1.4085E+01,
- &1.3496E+01,1.2836E+01,1.2181E+01,1.1547E+01,1.0921E+01,1.0404E+01,
- &9.8614E+00,9.2547E+00,8.6616E+00,8.0926E+00,7.5352E+00,7.0774E+00/
- DATA (XGF_L(K),K= 571, 684) /
- &6.6043E+00,6.0842E+00,5.5816E+00,5.1040E+00,4.6450E+00,4.2749E+00,
- &3.8995E+00,3.4941E+00,3.1134E+00,2.7651E+00,2.4423E+00,2.1941E+00,
- &1.9564E+00,1.7198E+00,1.5241E+00,1.4112E+00,1.3220E+00,1.2705E+00,
- &1.2348E+00,1.2175E+00,1.2113E+00,1.2119E+00,1.2167E+00,1.2238E+00,
- &1.2321E+00,1.2398E+00,1.2460E+00,1.2491E+00,1.2470E+00,1.2752E+00,
- &1.2894E+00,1.2998E+00,1.3055E+00,1.3049E+00,1.2991E+00,1.2860E+00,
- &1.2655E+00,1.2370E+00,1.1998E+00,1.1564E+00,1.1181E+00,0.0000E+00,
- &3.3362E+01,3.2051E+01,3.0740E+01,2.9429E+01,2.8133E+01,2.6758E+01,
- &2.5422E+01,2.4082E+01,2.2784E+01,2.1435E+01,2.0130E+01,1.8839E+01,
- &1.7597E+01,1.6865E+01,1.6098E+01,1.5241E+01,1.4397E+01,1.3587E+01,
- &1.2791E+01,1.2130E+01,1.1444E+01,1.0687E+01,9.9507E+00,9.2501E+00,
- &8.5659E+00,8.0104E+00,7.4390E+00,6.8118E+00,6.2125E+00,5.6506E+00,
- &5.1096E+00,4.6780E+00,4.2434E+00,3.7769E+00,3.3424E+00,2.9475E+00,
- &2.5842E+00,2.3061E+00,2.0409E+00,1.7770E+00,1.5572E+00,1.4290E+00,
- &1.3248E+00,1.2609E+00,1.2112E+00,1.1814E+00,1.1636E+00,1.1530E+00,
- &1.1469E+00,1.1433E+00,1.1407E+00,1.1378E+00,1.1337E+00,1.1269E+00,
- &1.1152E+00,1.1360E+00,1.1320E+00,1.1243E+00,1.1127E+00,1.0960E+00,
- &1.0739E+00,1.0461E+00,1.0122E+00,9.7100E-01,9.2292E-01,8.6909E-01,
- &8.1432E-01,0.0000E+00,4.2364E+01,4.0483E+01,3.8640E+01,3.6792E+01/
- DATA (XGF_L(K),K= 685, 798) /
- &3.4991E+01,3.3112E+01,3.1295E+01,2.9487E+01,2.7748E+01,2.5953E+01,
- &2.4235E+01,2.2543E+01,2.0935E+01,1.9990E+01,1.9011E+01,1.7921E+01,
- &1.6852E+01,1.5830E+01,1.4831E+01,1.4013E+01,1.3165E+01,1.2236E+01,
- &1.1337E+01,1.0485E+01,9.6616E+00,8.9943E+00,8.3137E+00,7.5711E+00,
- &6.8670E+00,6.2090E+00,5.5842E+00,5.0866E+00,4.5873E+00,4.0564E+00,
- &3.5646E+00,3.1234E+00,2.7185E+00,2.4107E+00,2.1172E+00,1.8273E+00,
- &1.5836E+00,1.4407E+00,1.3211E+00,1.2459E+00,1.1839E+00,1.1433E+00,
- &1.1153E+00,1.0949E+00,1.0794E+00,1.0667E+00,1.0555E+00,1.0443E+00,
- &1.0317E+00,1.0172E+00,9.9883E-01,1.0131E+00,9.9503E-01,9.7446E-01,
- &9.5064E-01,9.2316E-01,8.9156E-01,8.5528E-01,8.1439E-01,7.6837E-01,
- &7.1718E-01,6.6210E-01,6.0243E-01,0.0000E+00,5.2603E+01,5.0038E+01,
- &4.7540E+01,4.5053E+01,4.2652E+01,4.0175E+01,3.7784E+01,3.5407E+01,
- &3.3154E+01,3.0851E+01,2.8651E+01,2.6507E+01,2.4488E+01,2.3310E+01,
- &2.2084E+01,2.0735E+01,1.9418E+01,1.8166E+01,1.6951E+01,1.5960E+01,
- &1.4935E+01,1.3817E+01,1.2742E+01,1.1732E+01,1.0759E+01,9.9749E+00,
- &9.1794E+00,8.3186E+00,7.5044E+00,6.7510E+00,6.0386E+00,5.4762E+00,
- &4.9137E+00,4.3200E+00,3.7728E+00,3.2842E+00,2.8391E+00,2.5026E+00,
- &2.1835E+00,1.8677E+00,1.6033E+00,1.4461E+00,1.3138E+00,1.2277E+00,
- &1.1557E+00,1.1057E+00,1.0689E+00,1.0407E+00,1.0176E+00,9.9768E-01/
- DATA (XGF_L(K),K= 799, 912) /
- &9.7951E-01,9.6199E-01,9.4331E-01,9.2359E-01,9.0058E-01,9.0921E-01,
- &8.8156E-01,8.5244E-01,8.2081E-01,7.8702E-01,7.5025E-01,7.1005E-01,
- &6.6667E-01,6.1984E-01,5.6969E-01,5.1748E-01,4.5895E-01,0.0000E+00,
- &6.3459E+01,6.0127E+01,5.6900E+01,5.3695E+01,5.0615E+01,4.7464E+01,
- &4.4440E+01,4.1483E+01,3.8684E+01,3.5826E+01,3.3122E+01,3.0500E+01,
- &2.8040E+01,2.6617E+01,2.5143E+01,2.3518E+01,2.1950E+01,2.0455E+01,
- &1.9011E+01,1.7842E+01,1.6646E+01,1.5337E+01,1.4094E+01,1.2920E+01,
- &1.1799E+01,1.0903E+01,9.9940E+00,9.0166E+00,8.0967E+00,7.2512E+00,
- &6.4551E+00,5.8279E+00,5.2081E+00,4.5519E+00,3.9568E+00,3.4237E+00,
- &2.9425E+00,2.5798E+00,2.2371E+00,1.8995E+00,1.6161E+00,1.4477E+00,
- &1.3046E+00,1.2096E+00,1.1285E+00,1.0709E+00,1.0274E+00,9.9290E-01,
- &9.6399E-01,9.3860E-01,9.1550E-01,8.9324E-01,8.7036E-01,8.4674E-01,
- &8.2129E-01,8.2506E-01,7.9094E-01,7.5633E-01,7.2031E-01,6.8307E-01,
- &6.4387E-01,6.0237E-01,5.5907E-01,5.1344E-01,4.6618E-01,4.1810E-01,
- &3.6329E-01,0.0000E+00,7.9498E+01,7.4941E+01,7.0580E+01,6.6266E+01,
- &6.2169E+01,5.8002E+01,5.4045E+01,5.0164E+01,4.6539E+01,4.2847E+01,
- &3.9386E+01,3.6065E+01,3.2968E+01,3.1180E+01,2.9347E+01,2.7330E+01,
- &2.5394E+01,2.3566E+01,2.1811E+01,2.0388E+01,1.8944E+01,1.7368E+01,
- &1.5877E+01,1.4488E+01,1.3164E+01,1.2111E+01,1.1051E+01,9.9162E+00/
- DATA (XGF_L(K),K= 913, 1026) /
- &8.8542E+00,7.8839E+00,6.9777E+00,6.2689E+00,5.5695E+00,4.8410E+00,
- &4.1789E+00,3.5909E+00,3.0635E+00,2.6689E+00,2.2973E+00,1.9324E+00,
- &1.6270E+00,1.4446E+00,1.2882E+00,1.1839E+00,1.0926E+00,1.0266E+00,
- &9.7585E-01,9.3473E-01,8.9976E-01,8.6898E-01,8.4068E-01,8.1374E-01,
- &7.8714E-01,7.6011E-01,7.3262E-01,7.3148E-01,6.9170E-01,6.5270E-01,
- &6.1357E-01,5.7426E-01,5.3417E-01,4.9316E-01,4.5166E-01,4.0914E-01,
- &3.6649E-01,3.2429E-01,2.7651E-01,0.0000E+00,9.7091E+01,9.1127E+01,
- &8.5440E+01,7.9869E+01,7.4603E+01,6.9275E+01,6.4220E+01,5.9343E+01,
- &5.4780E+01,5.0195E+01,4.5912E+01,4.1816E+01,3.8028E+01,3.5857E+01,
- &3.3637E+01,3.1205E+01,2.8880E+01,2.6695E+01,2.4601E+01,2.2923E+01,
- &2.1219E+01,1.9374E+01,1.7634E+01,1.6009E+01,1.4488E+01,1.3276E+01,
- &1.2064E+01,1.0772E+01,9.5709E+00,8.4795E+00,7.4649E+00,6.6775E+00,
- &5.9046E+00,5.1015E+00,4.3733E+00,3.7372E+00,3.1677E+00,2.7434E+00,
- &2.3459E+00,1.9566E+00,1.6317E+00,1.4368E+00,1.2699E+00,1.1572E+00,
- &1.0581E+00,9.8558E-01,9.2913E-01,8.8297E-01,8.4349E-01,8.0862E-01,
- &7.7667E-01,7.4686E-01,7.1760E-01,6.8906E-01,6.6005E-01,6.5493E-01,
- &6.1209E-01,5.7080E-01,5.3038E-01,4.9085E-01,4.5137E-01,4.1231E-01,
- &3.7316E-01,3.3442E-01,2.9613E-01,2.5928E-01,2.1912E-01,0.0000E+00,
- &1.1660E+02,1.0899E+02,1.0178E+02,9.4752E+01,8.8142E+01,8.1480E+01/
- DATA (XGF_L(K),K= 1027, 1140) /
- &7.5219E+01,6.9198E+01,6.3578E+01,5.7986E+01,5.2800E+01,4.7867E+01,
- &4.3328E+01,4.0736E+01,3.8088E+01,3.5213E+01,3.2469E+01,2.9907E+01,
- &2.7451E+01,2.5501E+01,2.3516E+01,2.1392E+01,1.9391E+01,1.7546E+01,
- &1.5800E+01,1.4426E+01,1.3057E+01,1.1607E+01,1.0266E+01,9.0517E+00,
- &7.9294E+00,7.0617E+00,6.2165E+00,5.3397E+00,4.5572E+00,3.8687E+00,
- &3.2598E+00,2.8078E+00,2.3859E+00,1.9745E+00,1.6317E+00,1.4267E+00,
- &1.2497E+00,1.1305E+00,1.0247E+00,9.4657E-01,8.8556E-01,8.3542E-01,
- &7.9253E-01,7.5465E-01,7.2037E-01,6.8840E-01,6.5775E-01,6.2793E-01,
- &5.9852E-01,5.9015E-01,5.4553E-01,5.0339E-01,4.6306E-01,4.2411E-01,
- &3.8622E-01,3.4909E-01,3.1294E-01,2.7773E-01,2.4373E-01,2.1150E-01,
- &1.7848E-01,0.0000E+00,1.3738E+02,1.2796E+02,1.1904E+02,1.1042E+02,
- &1.0233E+02,9.4222E+01,8.6662E+01,7.9409E+01,7.2655E+01,6.6001E+01,
- &5.9833E+01,5.4007E+01,4.8672E+01,4.5642E+01,4.2552E+01,3.9214E+01,
- &3.6040E+01,3.3082E+01,3.0272E+01,2.8026E+01,2.5779E+01,2.3361E+01,
- &2.1093E+01,1.9009E+01,1.7062E+01,1.5526E+01,1.4003E+01,1.2396E+01,
- &1.0916E+01,9.5845E+00,8.3611E+00,7.4188E+00,6.5021E+00,5.5589E+00,
- &4.7169E+00,3.9865E+00,3.3389E+00,2.8617E+00,2.4178E+00,1.9872E+00,
- &1.6283E+00,1.4143E+00,1.2296E+00,1.1049E+00,9.9315E-01,9.1079E-01,
- &8.4623E-01,7.9317E-01,7.4768E-01,7.0802E-01,6.7178E-01,6.3836E-01/
- DATA (XGF_L(K),K= 1141, 1254) /
- &6.0703E-01,5.7658E-01,5.4733E-01,5.3630E-01,4.9100E-01,4.4879E-01,
- &4.0920E-01,3.7138E-01,3.3521E-01,3.0054E-01,2.6721E-01,2.3523E-01,
- &2.0485E-01,1.7634E-01,1.4852E-01,0.0000E+00,1.6103E+02,1.4938E+02,
- &1.3848E+02,1.2798E+02,1.1818E+02,1.0840E+02,9.9309E+01,9.0651E+01,
- &8.2647E+01,7.4733E+01,6.7469E+01,6.0672E+01,5.4433E+01,5.0913E+01,
- &4.7343E+01,4.3482E+01,3.9833E+01,3.6452E+01,3.3242E+01,3.0689E+01,
- &2.8134E+01,2.5404E+01,2.2863E+01,2.0531E+01,1.8362E+01,1.6652E+01,
- &1.4967E+01,1.3197E+01,1.1573E+01,1.0120E+01,8.7877E+00,7.7679E+00,
- &6.7819E+00,5.7685E+00,4.8731E+00,4.0967E+00,3.4122E+00,2.9097E+00,
- &2.4451E+00,1.9953E+00,1.6222E+00,1.3995E+00,1.2076E+00,1.0771E+00,
- &9.6151E-01,8.7563E-01,8.0819E-01,7.5269E-01,7.0548E-01,6.6395E-01,
- &6.2666E-01,5.9253E-01,5.6034E-01,5.3005E-01,5.0122E-01,4.8790E-01,
- &4.4273E-01,4.0115E-01,3.6251E-01,3.2632E-01,2.9224E-01,2.5988E-01,
- &2.2931E-01,2.0039E-01,1.7324E-01,1.4805E-01,1.2201E-01,0.0000E+00,
- &1.8591E+02,1.7193E+02,1.5886E+02,1.4632E+02,1.3469E+02,1.2310E+02,
- &1.1237E+02,1.0218E+02,9.2839E+01,8.3643E+01,7.5256E+01,6.7382E+01,
- &6.0231E+01,5.6204E+01,5.2127E+01,4.7743E+01,4.3601E+01,3.9784E+01,
- &3.6172E+01,3.3310E+01,3.0455E+01,2.7410E+01,2.4579E+01,2.2009E+01,
- &1.9599E+01,1.7727E+01,1.5886E+01,1.3956E+01,1.2193E+01,1.0620E+01/
- DATA (XGF_L(K),K= 1255, 1368) /
- &9.1866E+00,8.0925E+00,7.0383E+00,5.9623E+00,5.0119E+00,4.1917E+00,
- &3.4750E+00,2.9503E+00,2.4663E+00,1.9999E+00,1.6141E+00,1.3840E+00,
- &1.1856E+00,1.0518E+00,9.3192E-01,8.4324E-01,7.7348E-01,7.1642E-01,
- &6.6779E-01,6.2531E-01,5.8732E-01,5.5231E-01,5.2039E-01,4.9037E-01,
- &4.6218E-01,4.4711E-01,4.0225E-01,3.6159E-01,3.2438E-01,2.8982E-01,
- &2.5765E-01,2.2765E-01,1.9954E-01,1.7331E-01,1.4889E-01,1.2621E-01,
- &9.6984E-02,0.0000E+00,2.1269E+02,1.9609E+02,1.8060E+02,1.6582E+02,
- &1.5214E+02,1.3863E+02,1.2613E+02,1.1431E+02,1.0351E+02,9.2957E+01,
- &8.3294E+01,7.4318E+01,6.6188E+01,6.1617E+01,5.7019E+01,5.2073E+01,
- &4.7428E+01,4.3153E+01,3.9122E+01,3.5941E+01,3.2764E+01,2.9404E+01,
- &2.6282E+01,2.3458E+01,2.0836E+01,1.8796E+01,1.6786E+01,1.4693E+01,
- &1.2792E+01,1.1101E+01,9.5678E+00,8.4010E+00,7.2773E+00,6.1402E+00,
- &5.1403E+00,4.2791E+00,3.5311E+00,2.9851E+00,2.4835E+00,2.0017E+00,
- &1.6039E+00,1.3677E+00,1.1646E+00,1.0265E+00,9.0375E-01,8.1271E-01,
- &7.4135E-01,6.8280E-01,6.3328E-01,5.9018E-01,5.5184E-01,5.1677E-01,
- &4.8494E-01,4.5537E-01,4.2797E-01,4.1146E-01,3.6736E-01,3.2788E-01,
- &2.9207E-01,2.5923E-01,2.2901E-01,2.0110E-01,1.7527E-01,1.5131E-01,
- &1.2926E-01,1.0839E-01,6.9776E-02,0.0000E+00,2.4043E+02,2.2104E+02,
- &2.0300E+02,1.8582E+02,1.7003E+02,1.5443E+02,1.4007E+02,1.2658E+02/
- DATA (XGF_L(K),K= 1369, 1482) /
- &1.1426E+02,1.0227E+02,9.1332E+01,8.1197E+01,7.2119E+01,6.6989E+01,
- &6.1846E+01,5.6342E+01,5.1188E+01,4.6448E+01,4.2002E+01,3.8498E+01,
- &3.5016E+01,3.1335E+01,2.7931E+01,2.4848E+01,2.2009E+01,1.9797E+01,
- &1.7637E+01,1.5389E+01,1.3354E+01,1.1550E+01,9.9187E+00,8.6824E+00,
- &7.4988E+00,6.3022E+00,5.2549E+00,4.3589E+00,3.5788E+00,3.0139E+00,
- &2.4962E+00,2.0005E+00,1.5931E+00,1.3514E+00,1.1435E+00,1.0028E+00,
- &8.7751E-01,7.8479E-01,7.1218E-01,6.5272E-01,6.0250E-01,5.5920E-01,
- &5.2061E-01,4.8590E-01,4.5422E-01,4.2519E-01,3.9858E-01,3.8094E-01,
- &3.3789E-01,2.9975E-01,2.6524E-01,2.3401E-01,2.0560E-01,1.7956E-01,
- &1.5565E-01,1.3374E-01,1.1354E-01,9.4096E-02,3.9275E-02,0.0000E+00,
- &2.8195E+02,2.5830E+02,2.3640E+02,2.1554E+02,1.9645E+02,1.7774E+02,
- &1.6058E+02,1.4448E+02,1.2990E+02,1.1575E+02,1.0299E+02,9.1121E+01,
- &8.0574E+01,7.4642E+01,6.8724E+01,6.2402E+01,5.6498E+01,5.1101E+01,
- &4.6042E+01,4.2081E+01,3.8152E+01,3.4014E+01,3.0201E+01,2.6780E+01,
- &2.3611E+01,2.1171E+01,1.8789E+01,1.6329E+01,1.4107E+01,1.2148E+01,
- &1.0386E+01,9.0557E+00,7.7874E+00,6.5118E+00,5.4006E+00,4.4539E+00,
- &3.6370E+00,3.0467E+00,2.5088E+00,1.9959E+00,1.5762E+00,1.3274E+00,
- &1.1142E+00,9.7065E-01,8.4265E-01,7.4825E-01,6.7451E-01,6.1445E-01,
- &5.6374E-01,5.2024E-01,4.8166E-01,4.4741E-01,4.1643E-01,3.8830E-01/
- DATA (XGF_L(K),K= 1483, 1596) /
- &3.6282E-01,3.4411E-01,3.0249E-01,2.6607E-01,2.3369E-01,2.0474E-01,
- &1.7852E-01,1.5489E-01,1.3341E-01,1.1384E-01,9.5862E-02,7.7509E-02,
- &0.0000E+00,0.0000E+00,3.2379E+02,2.9556E+02,2.6960E+02,2.4513E+02,
- &2.2265E+02,2.0073E+02,1.8071E+02,1.6202E+02,1.4515E+02,1.2887E+02,
- &1.1419E+02,1.0071E+02,8.8650E+01,8.1931E+01,7.5233E+01,6.8140E+01,
- &6.1510E+01,5.5467E+01,4.9832E+01,4.5419E+01,4.1070E+01,3.6493E+01,
- &3.2295E+01,2.8536E+01,2.5086E+01,2.2426E+01,1.9846E+01,1.7175E+01,
- &1.4781E+01,1.2681E+01,1.0797E+01,9.3831E+00,8.0380E+00,6.6897E+00,
- &5.5221E+00,4.5337E+00,3.6831E+00,3.0714E+00,2.5159E+00,1.9884E+00,
- &1.5586E+00,1.3048E+00,1.0886E+00,9.4191E-01,8.1217E-01,7.1679E-01,
- &6.4238E-01,5.8194E-01,5.3136E-01,4.8766E-01,4.4965E-01,4.1594E-01,
- &3.8570E-01,3.5847E-01,3.3403E-01,3.1456E-01,2.7454E-01,2.3977E-01,
- &2.0922E-01,1.8216E-01,1.5795E-01,1.3622E-01,1.1669E-01,9.9012E-02,
- &8.2668E-02,6.4604E-02,0.0000E+00,0.0000E+00,3.7071E+02,3.3727E+02,
- &3.0660E+02,2.7790E+02,2.5169E+02,2.2608E+02,2.0283E+02,1.8123E+02,
- &1.6179E+02,1.4311E+02,1.2635E+02,1.1097E+02,9.7357E+01,8.9759E+01,
- &8.2263E+01,7.4239E+01,6.6821E+01,6.0073E+01,5.3813E+01,4.8927E+01,
- &4.4114E+01,3.9072E+01,3.4471E+01,3.0351E+01,2.6592E+01,2.3699E+01,
- &2.0903E+01,1.8031E+01,1.5459E+01,1.3211E+01,1.1204E+01,9.7024E+00/
- DATA (XGF_L(K),K= 1597, 1710) /
- &8.2828E+00,6.8644E+00,5.6367E+00,4.6059E+00,3.7241E+00,3.0915E+00,
- &2.5189E+00,1.9786E+00,1.5396E+00,1.2816E+00,1.0611E+00,9.1306E-01,
- &7.8207E-01,6.8594E-01,6.1118E-01,5.5075E-01,5.0031E-01,4.5732E-01,
- &4.1996E-01,3.8671E-01,3.5732E-01,3.3101E-01,3.0775E-01,2.8769E-01,
- &2.4931E-01,2.1637E-01,1.8763E-01,1.6241E-01,1.4002E-01,1.2013E-01,
- &1.0238E-01,8.6311E-02,7.1348E-02,5.2982E-02,0.0000E+00,0.0000E+00,
- &4.2142E+02,3.8237E+02,3.4660E+02,3.1292E+02,2.8259E+02,2.5300E+02,
- &2.2626E+02,2.0148E+02,1.7927E+02,1.5797E+02,1.3896E+02,1.2163E+02,
- &1.0632E+02,9.7858E+01,8.9366E+01,8.0488E+01,7.2234E+01,6.4771E+01,
- &5.7843E+01,5.2468E+01,4.7182E+01,4.1663E+01,3.6633E+01,3.2165E+01,
- &2.8082E+01,2.4971E+01,2.1960E+01,1.8866E+01,1.6118E+01,1.3723E+01,
- &1.1595E+01,1.0008E+01,8.5101E+00,7.0232E+00,5.7443E+00,4.6705E+00,
- &3.7584E+00,3.1066E+00,2.5189E+00,1.9659E+00,1.5193E+00,1.2575E+00,
- &1.0346E+00,8.8517E-01,7.5338E-01,6.5695E-01,5.8219E-01,5.2200E-01,
- &4.7218E-01,4.2954E-01,3.9258E-01,3.6043E-01,3.3190E-01,3.0663E-01,
- &2.8431E-01,2.6413E-01,2.2746E-01,1.9612E-01,1.6912E-01,1.4557E-01,
- &1.2488E-01,1.0660E-01,9.0362E-02,7.5731E-02,6.1890E-02,4.2720E-02,
- &0.0000E+00,0.0000E+00,4.7166E+02,4.2676E+02,3.8580E+02,3.4749E+02,
- &3.1273E+02,2.7927E+02,2.4899E+02,2.2108E+02,1.9611E+02,1.7230E+02/
- DATA (XGF_L(K),K= 1711, 1824) /
- &1.5107E+02,1.3178E+02,1.1483E+02,1.0548E+02,9.6179E+01,8.6383E+01,
- &7.7331E+01,6.9156E+01,6.1613E+01,5.5763E+01,5.0019E+01,4.4056E+01,
- &3.8633E+01,3.3819E+01,2.9446E+01,2.6108E+01,2.2889E+01,1.9617E+01,
- &1.6706E+01,1.4179E+01,1.1938E+01,1.0276E+01,8.7112E+00,7.1630E+00,
- &5.8345E+00,4.7275E+00,3.7856E+00,3.1171E+00,2.5164E+00,1.9532E+00,
- &1.4997E+00,1.2350E+00,1.0108E+00,8.6027E-01,7.2804E-01,6.3166E-01,
- &5.5726E-01,4.9745E-01,4.4802E-01,4.0623E-01,3.7002E-01,3.3850E-01,
- &3.1081E-01,2.8644E-01,2.6509E-01,2.4476E-01,2.0951E-01,1.7979E-01,
- &1.5426E-01,1.3217E-01,1.1290E-01,9.5951E-02,8.0975E-02,6.7483E-02,
- &5.4483E-02,3.4309E-02,0.0000E+00,0.0000E+00,5.2745E+02,4.7595E+02,
- &4.2900E+02,3.8543E+02,3.4589E+02,3.0795E+02,2.7377E+02,2.4235E+02,
- &2.1434E+02,1.8771E+02,1.6408E+02,1.4266E+02,1.2392E+02,1.1358E+02,
- &1.0335E+02,9.2593E+01,8.2702E+01,7.3780E+01,6.5553E+01,5.9207E+01,
- &5.2983E+01,4.6535E+01,4.0700E+01,3.5531E+01,3.0842E+01,2.7278E+01,
- &2.3855E+01,2.0386E+01,1.7301E+01,1.4635E+01,1.2282E+01,1.0538E+01,
- &8.9065E+00,7.2932E+00,5.9178E+00,4.7769E+00,3.8086E+00,3.1240E+00,
- &2.5114E+00,1.9387E+00,1.4794E+00,1.2125E+00,9.8604E-01,8.3538E-01,
- &7.0309E-01,6.0683E-01,5.3289E-01,4.7378E-01,4.2493E-01,3.8387E-01,
- &3.4846E-01,3.1778E-01,2.9097E-01,2.6744E-01,2.4699E-01,2.2688E-01/
- DATA (XGF_L(K),K= 1825, 1836) /
- &1.9308E-01,1.6489E-01,1.4079E-01,1.2009E-01,1.0214E-01,8.6447E-02,
- &7.2603E-02,6.0131E-02,4.7893E-02,2.6613E-02,0.0000E+00,0.0000E+00/
-
-*
- X = Xinp
-*...CHECK OF X AND Q2 VALUES :
- IF ( (X.LT.0.99D-9) .OR. (X.GT.1.D0) ) THEN
-* WRITE(LO,91) X
- 91 FORMAT (2X,'GRV98: x out of range',1p,E12.4)
- X = 0.99D-9
-* STOP
- ENDIF
-
- Q2 = Q2inp
- IF ( (Q2.LT.0.799) .OR. (Q2.GT.1.E6) ) THEN
-* WRITE(LO,92) Q2
- 92 FORMAT (2X,'GRV98: Q2 out of range',1p,E12.4)
- Q2 = 0.99E6
-* STOP
- ENDIF
-
-*
-*...INTERPOLATION :
- NA(1) = NX
- NA(2) = NQ
- XT(1) = DLOG(X)
- XT(2) = DLOG(Q2)
- X1 = 1.- X
- XV = X**0.5
- XS = X**(-0.2)
- UV = PHO_DBFINT(NARG,XT,NA,ARRF,XUVF) * X1**3 * XV
- DV = PHO_DBFINT(NARG,XT,NA,ARRF,XDVF) * X1**4 * XV
- DE = PHO_DBFINT(NARG,XT,NA,ARRF,XDEF) * X1**7 * XV
- UD = PHO_DBFINT(NARG,XT,NA,ARRF,XUDF) * X1**7 * XS
- US = 0.5 * (UD - DE)
- DS = 0.5 * (UD + DE)
- SS = PHO_DBFINT(NARG,XT,NA,ARRF,XSF) * X1**7 * XS
- GL = PHO_DBFINT(NARG,XT,NA,ARRF,XGF) * X1**5 * XS
-
- END
-
-CDECK ID>, PHO_DOR98SC
- SUBROUTINE PHO_DOR98SC (Xinp, Q2inp, UV, DV, US, DS, SS, GL)
-C***********************************************************************
-C
-C GRV98 parton densities, leading order set
-C
-C For a detailed explanation see
-C M. Glueck, E. Reya, A. Vogt :
-C hep-ph/9806404 = DO-TH 98/07 = WUE-ITP-98-019
-C (To appear in Eur. Phys. J. C)
-C
-C interpolation routine based on the original GRV98PA routine,
-C adapted to define interpolation table as DATA statements
-C
-C (R.Engel, 09/98)
-C
-C CAUTION: this is a version with gluon shadowing corrections
-C (R.Engel, 09/99)
-C
-C
-C INPUT: X = Bjorken-x (between 1.E-9 and 1.)
-C Q2 = scale in GeV**2 (between 0.8 and 1.E6)
-C
-C OUTPUT: UV = u - u(bar), DV = d - d(bar), US = u(bar),
-C DS = d(bar), SS = s = s(bar), GL = gluon.
-C Always x times the distribution is returned.
-C
-C******************************************************i****************
- IMPLICIT DOUBLE PRECISION (A-H, O-Z)
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- PARAMETER (NPART=6, NX=68, NQ=27, NARG=2)
- DIMENSION XUVF(NX,NQ), XDVF(NX,NQ), XDEF(NX,NQ), XUDF(NX,NQ),
- 1 XSF(NX,NQ), XGF(NX,NQ),
- 2 XT(NARG), NA(NARG), ARRF(NX+NQ)
-
- DIMENSION XUVF_L(NX*NQ), XDVF_L(NX*NQ), XDEF_L(NX*NQ),
- & XUDF_L(NX*NQ), XSF_L(NX*NQ), XGF_L(NX*NQ)
-
- EQUIVALENCE (XUVF(1,1),XUVF_L(1))
- EQUIVALENCE (XDVF(1,1),XDVF_L(1))
- EQUIVALENCE (XDEF(1,1),XDEF_L(1))
- EQUIVALENCE (XUDF(1,1),XUDF_L(1))
- EQUIVALENCE (XSF(1,1),XSF_L(1))
- EQUIVALENCE (XGF(1,1),XGF_L(1))
-
-*#################### data statements for shadowed LO PDF ##############
-C ... deleted ...
-*#######################################################################
-
- X = Xinp
-*...CHECK OF X AND Q2 VALUES :
- IF ( (X.LT.0.99D-9) .OR. (X.GT.1.D0) ) THEN
-* WRITE(LO,91) X
- 91 FORMAT (2X,'GRV98_SC: x out of range',1p,E12.4)
- X = 0.99D-9
-* STOP
- ENDIF
-
- Q2 = Q2inp
- IF ( (Q2.LT.0.799) .OR. (Q2.GT.1.E6) ) THEN
-* WRITE(LO,92) Q2
- 92 FORMAT (2X,'GRV98_SC: Q2 out of range',1p,E12.4)
- Q2 = 0.99E6
-* STOP
- ENDIF
-
-*
-*...INTERPOLATION :
- NA(1) = NX
- NA(2) = NQ
- XT(1) = DLOG(X)
- XT(2) = DLOG(Q2)
- X1 = 1.- X
- XV = X**0.5
- XS = X**(-0.2)
- UV = PHO_DBFINT(NARG,XT,NA,ARRF,XUVF) * X1**3 * XV
- DV = PHO_DBFINT(NARG,XT,NA,ARRF,XDVF) * X1**4 * XV
- DE = PHO_DBFINT(NARG,XT,NA,ARRF,XDEF) * X1**7 * XV
- UD = PHO_DBFINT(NARG,XT,NA,ARRF,XUDF) * X1**7 * XS
- US = 0.5 * (UD - DE)
- DS = 0.5 * (UD + DE)
- SS = PHO_DBFINT(NARG,XT,NA,ARRF,XSF) * X1**7 * XS
- GL = PHO_DBFINT(NARG,XT,NA,ARRF,XGF) * X1**5 * XS
-
- END
-
-CDECK ID>, PHO_DOR94LO
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-* *
-* G R V - P R O T O N - P A R A M E T R I Z A T I O N S *
-* *
-* 1994 UPDATE *
-* *
-* FOR A DETAILED EXPLANATION SEE *
-* M. GLUECK, E.REYA, A.VOGT : *
-* DO-TH 94/24 = DESY 94-206 *
-* (TO APPEAR IN Z. PHYS. C) *
-* *
-* THE PARAMETRIZATIONS ARE FITTED TO THE EVOLVED PARTONS FOR *
-* Q**2 / GEV**2 BETWEEN 0.4 AND 1.E6 *
-* X BETWEEN 1.E-5 AND 1. *
-* LARGE-X REGIONS, WHERE THE DISTRIBUTION UNDER CONSIDERATION *
-* IS NEGLIGIBLY SMALL, WERE EXCLUDED FROM THE FIT. *
-* *
-* HEAVY QUARK THRESHOLDS Q(H) = M(H) IN THE BETA FUNCTION : *
-* M(C) = 1.5, M(B) = 4.5 *
-* CORRESPONDING LAMBDA(F) VALUES IN GEV FOR Q**2 > M(H)**2 : *
-* LO : LAMBDA(3) = 0.232, LAMBDA(4) = 0.200, *
-* LAMBDA(5) = 0.153, *
-* NLO : LAMBDA(3) = 0.248, LAMBDA(4) = 0.200, *
-* LAMBDA(5) = 0.131. *
-* THE NUMBER OF ACTIVE QUARK FLAVOURS IS NF = 3 EVERYWHERE *
-* EXCEPT IN THE BETA FUNCTION, I.E. THE HEAVY QUARKS C,B,... *
-* ARE NOT PRESENT AS PARTONS IN THE Q2-EVOLUTION. *
-* IF NEEDED, HEAVY QUARK DENSITIES CAN BE TAKEN FROM THE 1991 *
-* GRV PARAMETRIZATION. *
-* *
-* NLO DISTRIBUTIONS ARE GIVEN IN MS-BAR FACTORIZATION SCHEME *
-* (SUBROUTINE GRV94HO) AS WELL AS IN THE DIS SCHEME (GRV94DI), *
-* THE LEADING ORDER PARAMETRIZATION IS PROVIDED BY "GRV94LO". *
-* *
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-*
-*...INPUT PARAMETERS :
-*
-* X = MOMENTUM FRACTION
-* Q2 = SCALE Q**2 IN GEV**2
-*
-*...OUTPUT (ALWAYS X TIMES THE DISTRIBUTION) :
-*
-* UV = U(VAL) = U - U(BAR)
-* DV = D(VAL) = D - D(BAR)
-* DEL = D(BAR) - U(BAR)
-* UDB = U(BAR) + D(BAR)
-* SB = S = S(BAR)
-* GL = GLUON
-*
-*...LO PARAMETRIZATION :
-*
- SUBROUTINE PHO_DOR94LO (X, Q2, UV, DV, DEL, UDB, SB, GL)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- MU2 = 0.23
- LAM2 = 0.2322 * 0.2322
- S = LOG (LOG(Q2/LAM2) / LOG(MU2/LAM2))
- DS = SQRT (S)
- S2 = S * S
- S3 = S2 * S
-*...UV :
- NU = 2.284 + 0.802 * S + 0.055 * S2
- AKU = 0.590 - 0.024 * S
- BKU = 0.131 + 0.063 * S
- AU = -0.449 - 0.138 * S - 0.076 * S2
- BU = 0.213 + 2.669 * S - 0.728 * S2
- CU = 8.854 - 9.135 * S + 1.979 * S2
- DU = 2.997 + 0.753 * S - 0.076 * S2
- UV = PHO_DOR94FV (X, NU, AKU, BKU, AU, BU, CU, DU)
-*...DV :
- ND = 0.371 + 0.083 * S + 0.039 * S2
- AKD = 0.376
- BKD = 0.486 + 0.062 * S
- AD = -0.509 + 3.310 * S - 1.248 * S2
- BD = 12.41 - 10.52 * S + 2.267 * S2
- CD = 6.373 - 6.208 * S + 1.418 * S2
- DD = 3.691 + 0.799 * S - 0.071 * S2
- DV = PHO_DOR94FV (X, ND, AKD, BKD, AD, BD, CD, DD)
-*...DEL :
- NE = 0.082 + 0.014 * S + 0.008 * S2
- AKE = 0.409 - 0.005 * S
- BKE = 0.799 + 0.071 * S
- AE = -38.07 + 36.13 * S - 0.656 * S2
- BE = 90.31 - 74.15 * S + 7.645 * S2
- CE = 0.0
- DE = 7.486 + 1.217 * S - 0.159 * S2
- DEL = PHO_DOR94FV (X, NE, AKE, BKE, AE, BE, CE, DE)
-*...UDB :
- ALX = 1.451
- BEX = 0.271
- AKX = 0.410 - 0.232 * S
- BKX = 0.534 - 0.457 * S
- AGX = 0.890 - 0.140 * S
- BGX = -0.981
- CX = 0.320 + 0.683 * S
- DX = 4.752 + 1.164 * S + 0.286 * S2
- EX = 4.119 + 1.713 * S
- ESX = 0.682 + 2.978 * S
- UDB = PHO_DOR94FW(X,S,ALX,BEX,AKX,BKX,AGX,BGX,CX,DX,EX,ESX)
-*...SB :
- ALS = 0.914
- BES = 0.577
- AKS = 1.798 - 0.596 * S
- AS = -5.548 + 3.669 * DS - 0.616 * S
- BS = 18.92 - 16.73 * DS + 5.168 * S
- DST = 6.379 - 0.350 * S + 0.142 * S2
- EST = 3.981 + 1.638 * S
- ESS = 6.402
- SB = PHO_DOR94FS (X, S, ALS, BES, AKS, AS, BS, DST, EST, ESS)
-*...GL :
- ALG = 0.524
- BEG = 1.088
- AKG = 1.742 - 0.930 * S
- BKG = - 0.399 * S2
- AG = 7.486 - 2.185 * S
- BG = 16.69 - 22.74 * S + 5.779 * S2
- CG = -25.59 + 29.71 * S - 7.296 * S2
- DG = 2.792 + 2.215 * S + 0.422 * S2 - 0.104 * S3
- EG = 0.807 + 2.005 * S
- ESG = 3.841 + 0.316 * S
- GL = PHO_DOR94FW(X,S,ALG,BEG,AKG,BKG,AG,BG,CG,DG,EG,ESG)
-
- END
-
-*
-*...NLO PARAMETRIZATION (MS(BAR)) :
-*
-CDECK ID>, PHO_DOR94HO
- SUBROUTINE PHO_DOR94HO (X, Q2, UV, DV, DEL, UDB, SB, GL)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- MU2 = 0.34
- LAM2 = 0.248 * 0.248
- S = LOG (LOG(Q2/LAM2) / LOG(MU2/LAM2))
- DS = SQRT (S)
- S2 = S * S
- S3 = S2 * S
-*...UV :
- NU = 1.304 + 0.863 * S
- AKU = 0.558 - 0.020 * S
- BKU = 0.183 * S
- AU = -0.113 + 0.283 * S - 0.321 * S2
- BU = 6.843 - 5.089 * S + 2.647 * S2 - 0.527 * S3
- CU = 7.771 - 10.09 * S + 2.630 * S2
- DU = 3.315 + 1.145 * S - 0.583 * S2 + 0.154 * S3
- UV = PHO_DOR94FV (X, NU, AKU, BKU, AU, BU, CU, DU)
-*...DV :
- ND = 0.102 - 0.017 * S + 0.005 * S2
- AKD = 0.270 - 0.019 * S
- BKD = 0.260
- AD = 2.393 + 6.228 * S - 0.881 * S2
- BD = 46.06 + 4.673 * S - 14.98 * S2 + 1.331 * S3
- CD = 17.83 - 53.47 * S + 21.24 * S2
- DD = 4.081 + 0.976 * S - 0.485 * S2 + 0.152 * S3
- DV = PHO_DOR94FV (X, ND, AKD, BKD, AD, BD, CD, DD)
-*...DEL :
- NE = 0.070 + 0.042 * S - 0.011 * S2 + 0.004 * S3
- AKE = 0.409 - 0.007 * S
- BKE = 0.782 + 0.082 * S
- AE = -29.65 + 26.49 * S + 5.429 * S2
- BE = 90.20 - 74.97 * S + 4.526 * S2
- CE = 0.0
- DE = 8.122 + 2.120 * S - 1.088 * S2 + 0.231 * S3
- DEL = PHO_DOR94FV (X, NE, AKE, BKE, AE, BE, CE, DE)
-*...UDB :
- ALX = 0.877
- BEX = 0.561
- AKX = 0.275
- BKX = 0.0
- AGX = 0.997
- BGX = 3.210 - 1.866 * S
- CX = 7.300
- DX = 9.010 + 0.896 * DS + 0.222 * S2
- EX = 3.077 + 1.446 * S
- ESX = 3.173 - 2.445 * DS + 2.207 * S
- UDB = PHO_DOR94FW(X,S,ALX,BEX,AKX,BKX,AGX,BGX,CX,DX,EX,ESX)
-*...SB :
- ALS = 0.756
- BES = 0.216
- AKS = 1.690 + 0.650 * DS - 0.922 * S
- AS = -4.329 + 1.131 * S
- BS = 9.568 - 1.744 * S
- DST = 9.377 + 1.088 * DS - 1.320 * S + 0.130 * S2
- EST = 3.031 + 1.639 * S
- ESS = 5.837 + 0.815 * S
- SB = PHO_DOR94FS (X, S, ALS, BES, AKS, AS, BS, DST, EST, ESS)
-*...GL :
- ALG = 1.014
- BEG = 1.738
- AKG = 1.724 + 0.157 * S
- BKG = 0.800 + 1.016 * S
- AG = 7.517 - 2.547 * S
- BG = 34.09 - 52.21 * DS + 17.47 * S
- CG = 4.039 + 1.491 * S
- DG = 3.404 + 0.830 * S
- EG = -1.112 + 3.438 * S - 0.302 * S2
- ESG = 3.256 - 0.436 * S
- GL = PHO_DOR94FW(X,S,ALG,BEG,AKG,BKG,AG,BG,CG,DG,EG,ESG)
-
- END
-
-CDECK ID>, PHO_DOR94DI
-*
-*...NLO PARAMETRIZATION (DIS) :
-*
- SUBROUTINE PHO_DOR94DI (X, Q2, UV, DV, DEL, UDB, SB, GL)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- MU2 = 0.34
- LAM2 = 0.248 * 0.248
- S = LOG (LOG(Q2/LAM2) / LOG(MU2/LAM2))
- DS = SQRT (S)
- S2 = S * S
- S3 = S2 * S
-*...UV :
- NU = 2.484 + 0.116 * S + 0.093 * S2
- AKU = 0.563 - 0.025 * S
- BKU = 0.054 + 0.154 * S
- AU = -0.326 - 0.058 * S - 0.135 * S2
- BU = -3.322 + 8.259 * S - 3.119 * S2 + 0.291 * S3
- CU = 11.52 - 12.99 * S + 3.161 * S2
- DU = 2.808 + 1.400 * S - 0.557 * S2 + 0.119 * S3
- UV = PHO_DOR94FV (X, NU, AKU, BKU, AU, BU, CU, DU)
-*...DV :
- ND = 0.156 - 0.017 * S
- AKD = 0.299 - 0.022 * S
- BKD = 0.259 - 0.015 * S
- AD = 3.445 + 1.278 * S + 0.326 * S2
- BD = -6.934 + 37.45 * S - 18.95 * S2 + 1.463 * S3
- CD = 55.45 - 69.92 * S + 20.78 * S2
- DD = 3.577 + 1.441 * S - 0.683 * S2 + 0.179 * S3
- DV = PHO_DOR94FV (X, ND, AKD, BKD, AD, BD, CD, DD)
-*...DEL :
- NE = 0.099 + 0.019 * S + 0.002 * S2
- AKE = 0.419 - 0.013 * S
- BKE = 1.064 - 0.038 * S
- AE = -44.00 + 98.70 * S - 14.79 * S2
- BE = 28.59 - 40.94 * S - 13.66 * S2 + 2.523 * S3
- CE = 84.57 - 108.8 * S + 31.52 * S2
- DE = 7.469 + 2.480 * S - 0.866 * S2
- DEL = PHO_DOR94FV (X, NE, AKE, BKE, AE, BE, CE, DE)
-*...UDB :
- ALX = 1.215
- BEX = 0.466
- AKX = 0.326 + 0.150 * S
- BKX = 0.956 + 0.405 * S
- AGX = 0.272
- BGX = 3.794 - 2.359 * DS
- CX = 2.014
- DX = 7.941 + 0.534 * DS - 0.940 * S + 0.410 * S2
- EX = 3.049 + 1.597 * S
- ESX = 4.396 - 4.594 * DS + 3.268 * S
- UDB = PHO_DOR94FW(X,S,ALX,BEX,AKX,BKX,AGX,BGX,CX,DX,EX,ESX)
-*...SB :
- ALS = 0.175
- BES = 0.344
- AKS = 1.415 - 0.641 * DS
- AS = 0.580 - 9.763 * DS + 6.795 * S - 0.558 * S2
- BS = 5.617 + 5.709 * DS - 3.972 * S
- DST = 13.78 - 9.581 * S + 5.370 * S2 - 0.996 * S3
- EST = 4.546 + 0.372 * S2
- ESS = 5.053 - 1.070 * S + 0.805 * S2
- SB = PHO_DOR94FS (X, S, ALS, BES, AKS, AS, BS, DST, EST, ESS)
-*...GL :
- ALG = 1.258
- BEG = 1.846
- AKG = 2.423
- BKG = 2.427 + 1.311 * S - 0.153 * S2
- AG = 25.09 - 7.935 * S
- BG = -14.84 - 124.3 * DS + 72.18 * S
- CG = 590.3 - 173.8 * S
- DG = 5.196 + 1.857 * S
- EG = -1.648 + 3.988 * S - 0.432 * S2
- ESG = 3.232 - 0.542 * S
- GL = PHO_DOR94FW(X,S,ALG,BEG,AKG,BKG,AG,BG,CG,DG,EG,ESG)
-
- END
-
-*
-*...FUNCTIONAL FORMS OF THE PARAMETRIZATIONS :
-*
-CDECK ID>, PHO_DOR94FV
- DOUBLE PRECISION FUNCTION PHO_DOR94FV (X,N,AK,BK,A,B,C,D)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- DX = SQRT (X)
- PHO_DOR94FV = N*X**AK*(1.D0+A*X**BK+X*(B+C*DX))*(1.D0-X)**D
-
- END
-
-CDECK ID>, PHO_DOR94FW
- DOUBLE PRECISION FUNCTION PHO_DOR94FW(X,S,AL,BE,AK,BK,
- & A,B,C,D,E,ES)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- LX = LOG (1./X)
- PHO_DOR94FW = (X**AK * (A + X * (B + X*C)) * LX**BK + S**AL
- 1 * DEXP (-E + SQRT (ES * S**BE * LX))) * (1.- X)**D
-
- END
-
-CDECK ID>, PHO_DOR94FS
- DOUBLE PRECISION FUNCTION PHO_DOR94FS (X,S,AL,BE,AK,AG,B,D,E,ES)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- DX = SQRT (X)
- LX = LOG (1./X)
- PHO_DOR94FS = S**AL / LX**AK * (1.+ AG*DX + B*X) * (1.- X)**D
- 1 * DEXP (-E + SQRT (ES * S**BE * LX))
-
- END
-
-CDECK ID>, PHO_DOR92LO
-*
-*
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-* *
-* G R V - P R O T O N - P A R A M E T R I Z A T I O N S *
-* *
-* FOR A DETAILED EXPLANATION SEE : *
-* M. GLUECK, E.REYA, A.VOGT: DO-TH 91/07 *
-* *
-* THE PARAMETRIZATIONS ARE FITTED TO THE PARTON DISTRIBUTIONS *
-* FOR Q ** 2 BETWEEN MU ** 2 (= 0.25 / 0.30 GEV ** 2 IN LO *
-* / HO) AND 1.E8 GEV ** 2 AND FOR X BETWEEN 1.E-5 AND 1. *
-* REGIONS, WHERE THE DISTRIBUTION UNDER CONSIDERATION IS NEG- *
-* LIGIBLE, I.E. BELOW ABOUT 1.E-4, WERE EXCLUDED FROM THE FIT. *
-* *
-* HEAVY QUARK THRESHOLDS Q(H) = M(H) : *
-* M(C) = 1.5, M(B) = 4.5, M(T) = 100 GEV *
-* *
-* CORRESPONDING LAMBDA(F) VALUES FOR F ACTIVE FLAVOURS : *
-* LO : LAMBDA(3) = 0.232, LAMBDA(4) = 0.200, *
-* LAMBDA(5) = 0.153, LAMBDA(6) = 0.082 GEV *
-* HO : LAMBDA(3) = 0.248, LAMBDA(4) = 0.200, *
-* LAMBDA(5) = 0.131, LAMBDA(6) = 0.053 GEV *
-* *
-* HO DISTRIBUTION REFER TO THE MS-BAR SCHEME OF BARDEEN ET AL. *
-* *
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-C
- SUBROUTINE PHO_DOR92LO (X, Q2, UDV, DV, GL, UDB, SB, CB, BB)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- MU2 = 0.25
- LAM2 = 0.232 * 0.232
- S = LOG (LOG(Q2/LAM2) / LOG(MU2/LAM2))
- S2 = S * S
- S3 = S2 * S
-C...X * (UV + DV) :
- NUD = 0.663 + 0.191 * S - 0.041 * S2 + 0.031 * S3
- AKUD = 0.326
- AGUD = -1.97 + 6.74 * S - 1.96 * S2
- BUD = 24.4 - 20.7 * S + 4.08 * S2
- DUD = 2.86 + 0.70 * S - 0.02 * S2
- UDV = PHO_DOR92FV (X, NUD, AKUD, AGUD, BUD, DUD)
-C...X * DV :
- ND = 0.579 + 0.283 * S + 0.047 * S2
- AKD = 0.523 - 0.015 * S
- AGD = 2.22 - 0.59 * S - 0.27 * S2
- BD = 5.95 - 6.19 * S + 1.55 * S2
- DD = 3.57 + 0.94 * S - 0.16 * S2
- DV = PHO_DOR92FV (X,ND,AKD,AGD,BD,DD)
-C...X * G :
- ALG = 0.558
- BEG = 1.218
- AKG = 1.00 - 0.17 * S
- BKG = 0.0
- AGG = 0.0 + 4.879 * S - 1.383 * S2
- BGG = 25.92 - 28.97 * S + 5.596 * S2
- CG = -25.69 + 23.68 * S - 1.975 * S2
- DG = 2.537 + 1.718 * S + 0.353 * S2
- EG = 0.595 + 2.138 * S
- ESG = 4.066
- GL = PHO_DOR92FW(X,S,ALG,BEG,AKG,BKG,AGG,BGG,CG,DG,EG,ESG)
-C...X * UBAR = X * DBAR :
- ALU = 1.396
- BEU = 1.331
- AKU = 0.412 - 0.171 * S
- BKU = 0.566 - 0.496 * S
- AGU = 0.363
- BGU = -1.196
- CU = 1.029 + 1.785 * S - 0.459 * S2
- DU = 4.696 + 2.109 * S
- EU = 3.838 + 1.944 * S
- ESU = 2.845
- UDB = PHO_DOR92FW(X,S,ALU,BEU,AKU,BKU,AGU,BGU,CU,DU,EU,ESU)
-C...X * SBAR = X * S :
- SS = 0.0
- ALS = 0.803
- BES = 0.563
- AKS = 2.082 - 0.577 * S
- AGS = -3.055 + 1.024 * S ** 0.67
- BS = 27.4 - 20.0 * S ** 0.154
- DS = 6.22
- EST = 4.33 + 1.408 * S
- ESS = 8.27 - 0.437 * S
- SB = PHO_DOR92FS(X,S,SS,ALS,BES,AKS,AGS,BS,DS,EST,ESS)
-C...X * CBAR = X * C :
- SC = 0.888
- ALC = 1.01
- BEC = 0.37
- AKC = 0.0
- AGC = 0.0
- BC = 4.24 - 0.804 * S
- DC = 3.46 + 1.076 * S
- EC = 4.61 + 1.490 * S
- ESC = 2.555 + 1.961 * S
- CB = PHO_DOR92FS(X,S,SC,ALC,BEC,AKC,AGC,BC,DC,EC,ESC)
-C...X * BBAR = X * B :
- SBO = 1.351
- ALB = 1.00
- BEB = 0.51
- AKB = 0.0
- AGB = 0.0
- BBO = 1.848
- DB = 2.929 + 1.396 * S
- EB = 4.71 + 1.514 * S
- ESB = 4.02 + 1.239 * S
- BB = PHO_DOR92FS(X,S,SBO,ALB,BEB,AKB,AGB,BBO,DB,EB,ESB)
-
- END
-
-CDECK ID>, PHO_DOR92HO
- SUBROUTINE PHO_DOR92HO (X, Q2, UDV, DV, GL, UDB, SB, CB, BB)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- MU2 = 0.3
- LAM2 = 0.248 * 0.248
- S = LOG (LOG(Q2/LAM2) / LOG(MU2/LAM2))
- DS = SQRT (S)
- S2 = S * S
- S3 = S2 * S
-C...X * (UV + DV) :
- NUD = 0.330 + 0.151 * S - 0.059 * S2 + 0.027 * S3
- AKUD = 0.285
- AGUD = -2.28 + 15.73 * S - 4.58 * S2
- BUD = 56.7 - 53.6 * S + 11.21 * S2
- DUD = 3.17 + 1.17 * S - 0.47 * S2 + 0.09 * S3
- UDV = PHO_DOR92FV (X, NUD, AKUD, AGUD, BUD, DUD)
-C...X * DV :
- ND = 0.459 + 0.315 * DS + 0.515 * S
- AKD = 0.624 - 0.031 * S
- AGD = 8.13 - 6.77 * DS + 0.46 * S
- BD = 6.59 - 12.83 * DS + 5.65 * S
- DD = 3.98 + 1.04 * S - 0.34 * S2
- DV = PHO_DOR92FV (X, ND, AKD, AGD, BD, DD)
-C...X * G :
- ALG = 1.128
- BEG = 1.575
- AKG = 0.323 + 1.653 * S
- BKG = 0.811 + 2.044 * S
- AGG = 0.0 + 1.963 * S - 0.519 * S2
- BGG = 0.078 + 6.24 * S
- CG = 30.77 - 24.19 * S
- DG = 3.188 + 0.720 * S
- EG = -0.881 + 2.687 * S
- ESG = 2.466
- GL = PHO_DOR92FW(X,S,ALG,BEG,AKG,BKG,AGG,BGG,CG,DG,EG,ESG)
-C...X * UBAR = X * DBAR :
- ALU = 0.594
- BEU = 0.614
- AKU = 0.636 - 0.084 * S
- BKU = 0.0
- AGU = 1.121 - 0.193 * S
- BGU = 0.751 - 0.785 * S
- CU = 8.57 - 1.763 * S
- DU = 10.22 + 0.668 * S
- EU = 3.784 + 1.280 * S
- ESU = 1.808 + 0.980 * S
- UDB = PHO_DOR92FW(X,S,ALU,BEU,AKU,BKU,AGU,BGU,CU,DU,EU,ESU)
-C...X * SBAR = X * S :
- SS = 0.0
- ALS = 0.756
- BES = 0.101
- AKS = 2.942 - 1.016 * S
- AGS = -4.60 + 1.167 * S
- BS = 9.31 - 1.324 * S
- DS = 11.49 - 1.198 * S + 0.053 * S2
- EST = 2.630 + 1.729 * S
- ESS = 8.12
- SB = PHO_DOR92FS (X,S,SS,ALS,BES,AKS,AGS,BS,DS,EST,ESS)
-C...X * CBAR = X * C :
- SC = 0.820
- ALC = 0.98
- BEC = 0.0
- AKC = -0.625 - 0.523 * S
- AGC = 0.0
- BC = 1.896 + 1.616 * S
- DC = 4.12 + 0.683 * S
- EC = 4.36 + 1.328 * S
- ESC = 0.677 + 0.679 * S
- CB = PHO_DOR92FS (X,S,SC,ALC,BEC,AKC,AGC,BC,DC,EC,ESC)
-C...X * BBAR = X * B :
- SBO = 1.297
- ALB = 0.99
- BEB = 0.0
- AKB = 0.0 - 0.193 * S
- AGB = 0.0
- BBO = 0.0
- DB = 3.447 + 0.927 * S
- EB = 4.68 + 1.259 * S
- ESB = 1.892 + 2.199 * S
- BB = PHO_DOR92FS(X,S,SBO,ALB,BEB,AKB,AGB,BBO,DB,EB,ESB)
-
- END
-
-CDECK ID>, PHO_DOR92FV
- DOUBLE PRECISION FUNCTION PHO_DOR92FV(X,N,AK,AG,B,D)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
- DX = SQRT (X)
- PHO_DOR92FV = N * X**AK * (1.+ AG*DX + B*X) * (1.- X)**D
-
- END
-
-CDECK ID>, PHO_DOR92FW
- DOUBLE PRECISION FUNCTION PHO_DOR92FW(X,S,
- & AL,BE,AK,BK,AG,BG,C,D,E,ES)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
- LX = LOG (1./X)
- PHO_DOR92FW = (X**AK * (AG + X * (BG + X*C)) * LX**BK + S**AL
- 1 * EXP (-E + SQRT (ES * S**BE * LX))) * (1.- X)**D
-
- END
-
-CDECK ID>, PHO_DOR92FS
- DOUBLE PRECISION FUNCTION PHO_DOR92FS(X,S,ST,AL,BE,AK,AG,B,D,E,ES)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- DX = SQRT (X)
- LX = LOG (1./X)
- IF (S .LE. ST) THEN
- PHO_DOR92FS = 0.D0
- ELSE
- PHO_DOR92FS = (S-ST)**AL/LX**AK*(1.D0+AG*DX+B*X)*(1.D0-X)**D
- 1 * EXP (-E + SQRT (ES * S**BE * LX))
- END IF
-
- END
-
-CDECK ID>, PHO_DORPLO
-*
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-* *
-* G R V - P I O N - P A R A M E T R I Z A T I O N S *
-* *
-* FOR A DETAILED EXPLANATION SEE : *
-* M. GLUECK, E.REYA, A.VOGT: DO-TH 91/16 *
-* *
-* THE PARAMETRIZATIONS ARE FITTED TO THE PARTON DISTRIBUTIONS *
-* FOR Q ** 2 BETWEEN MU ** 2 (= 0.25 / 0.30 GEV ** 2 IN LO *
-* / HO) AND 1.E8 GEV ** 2 AND FOR X BETWEEN 1.E-5 AND 1. *
-* REGIONS, WHERE THE DISTRIBUTION UNDER CONSIDERATION IS NEG- *
-* LIGIBLE, I.E. BELOW ABOUT 1.E-4, WERE EXCLUDED FROM THE FIT. *
-* *
-* HEAVY QUARK THRESHOLDS Q(H) = M(H) : *
-* M(C) = 1.5, M(B) = 4.5, M(T) = 100 GEV *
-* *
-* CORRESPONDING LAMBDA(F) VALUES FOR F ACTIVE FLAVOURS : *
-* LO : LAMBDA(3) = 0.232, LAMBDA(4) = 0.200, *
-* LAMBDA(5) = 0.153, LAMBDA(6) = 0.082 GEV *
-* HO : LAMBDA(3) = 0.248, LAMBDA(4) = 0.200, *
-* LAMBDA(5) = 0.131, LAMBDA(6) = 0.053 GEV *
-* *
-* HO DISTRIBUTION REFER TO THE MS-BAR SCHEME OF BARDEEN ET AL. *
-* *
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-C
- SUBROUTINE PHO_DORPLO (X, Q2, VAP, GLP, QBP, CBP, BBP)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- MU2 = 0.25
- LAM2 = 0.232 * 0.232
- S = LOG (LOG(Q2/LAM2) / LOG(MU2/LAM2))
- DS = SQRT (S)
- S2 = S * S
-C...X * VALENCE :
- NV = 0.519 + 0.180 * S - 0.011 * S2
- AKV = 0.499 - 0.027 * S
- AGV = 0.381 - 0.419 * S
- DV = 0.367 + 0.563 * S
- VAP = PHO_DORFVP (X, NV, AKV, AGV, DV)
-C...X * GLUON :
- ALG = 0.599
- BEG = 1.263
- AKG = 0.482 + 0.341 * DS
- BKG = 0.0
- AGG = 0.678 + 0.877 * S - 0.175 * S2
- BGG = 0.338 - 1.597 * S
- CG = 0.0 - 0.233 * S + 0.406 * S2
- DG = 0.390 + 1.053 * S
- EG = 0.618 + 2.070 * S
- ESG = 3.676
- GLP = PHO_DORFGP(X,S,ALG,BEG,AKG,BKG,AGG,BGG,CG,DG,EG,ESG)
-C...X * QBAR (SU(3)-SYMMETRIC SEA) :
- SL = 0.0
- ALS = 0.55
- BES = 0.56
- AKS = 2.538 - 0.763 * S
- AGS = -0.748
- BS = 0.313 + 0.935 * S
- DS = 3.359
- EST = 4.433 + 1.301 * S
- ESS = 9.30 - 0.887 * S
- QBP = PHO_DORFQP (X,S,SL,ALS,BES,AKS,AGS,BS,DS,EST,ESS)
-C...X * CBAR = X * C :
- SC = 0.888
- ALC = 1.02
- BEC = 0.39
- AKC = 0.0
- AGC = 0.0
- BC = 1.008
- DC = 1.208 + 0.771 * S
- EC = 4.40 + 1.493 * S
- ESC = 2.032 + 1.901 * S
- CBP = PHO_DORFQP (X,S,SC,ALC,BEC,AKC,AGC,BC,DC,EC,ESC)
-C...X * BBAR = X * B :
- SBO = 1.351
- ALB = 1.03
- BEB = 0.39
- AKB = 0.0
- AGB = 0.0
- BBO = 0.0
- DB = 0.697 + 0.855 * S
- EB = 4.51 + 1.490 * S
- ESB = 3.056 + 1.694 * S
- BBP = PHO_DORFQP(X,S,SBO,ALB,BEB,AKB,AGB,BBO,DB,EB,ESB)
-
- END
-
-CDECK ID>, PHO_DORPHO
- SUBROUTINE PHO_DORPHO (X, Q2, VAP, GLP, QBP, CBP, BBP)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- MU2 = 0.3
- LAM2 = 0.248 * 0.248
- S = LOG (LOG(Q2/LAM2) / LOG(MU2/LAM2))
- DS = SQRT (S)
- S2 = S * S
-C...X * VALENCE :
- NV = 0.456 + 0.150 * DS + 0.112 * S - 0.019 * S2
- AKV = 0.505 - 0.033 * S
- AGV = 0.748 - 0.669 * DS - 0.133 * S
- DV = 0.365 + 0.197 * DS + 0.394 * S
- VAP = PHO_DORFVP (X, NV, AKV, AGV, DV)
-C...X * GLUON :
- ALG = 1.096
- BEG = 1.371
- AKG = 0.437 - 0.689 * DS
- BKG = -0.631
- AGG = 1.324 - 0.441 * DS - 0.130 * S
- BGG = -0.955 + 0.259 * S
- CG = 1.075 - 0.302 * S
- DG = 1.158 + 1.229 * S
- EG = 0.0 + 2.510 * S
- ESG = 2.604 + 0.165 * S
- GLP = PHO_DORFGP(X,S,ALG,BEG,AKG,BKG,AGG,BGG,CG,DG,EG,ESG)
-C...X * QBAR (SU(3)-SYMMETRIC SEA) :
- SL = 0.0
- ALS = 0.85
- BES = 0.96
- AKS = -0.350 + 0.806 * S
- AGS = -1.663
- BS = 3.148
- DS = 2.273 + 1.438 * S
- EST = 3.214 + 1.545 * S
- ESS = 1.341 + 1.938 * S
- QBP = PHO_DORFQP (X,S,SL,ALS,BES,AKS,AGS,BS,DS,EST,ESS)
-C...X * CBAR = X * C :
- SC = 0.820
- ALC = 0.98
- BEC = 0.0
- AKC = 0.0 - 0.457 * S
- AGC = 0.0
- BC = -1.00 + 1.40 * S
- DC = 1.318 + 0.584 * S
- EC = 4.45 + 1.235 * S
- ESC = 1.496 + 1.010 * S
- CBP = PHO_DORFQP (X,S,SC,ALC,BEC,AKC,AGC,BC,DC,EC,ESC)
-C...X * BBAR = X * B :
- SBO = 1.297
- ALB = 0.99
- BEB = 0.0
- AKB = 0.0 - 0.172 * S
- AGB = 0.0
- BBO = 0.0
- DB = 1.447 + 0.485 * S
- EB = 4.79 + 1.164 * S
- ESB = 1.724 + 2.121 * S
- BBP = PHO_DORFQP(X,S,SBO,ALB,BEB,AKB,AGB,BBO,DB,EB,ESB)
-
- END
-
-CDECK ID>, PHO_DORFVP
- DOUBLE PRECISION FUNCTION PHO_DORFVP(X,N,AK,AG,D)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- DX = SQRT (X)
- PHO_DORFVP = N * X**AK * (1.+ AG*DX) * (1.- X)**D
-
- END
-
-CDECK ID>, PHO_DORFGP
- DOUBLE PRECISION FUNCTION PHO_DORFGP(X,S,AL,BE,AK,BK,AG,
- & BG,C,D,E,ES)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- DX = SQRT (X)
- LX = LOG (1./X)
- PHO_DORFGP = (X**AK * (AG + BG*DX + C*X) * LX**BK + S**AL
- 1 * EXP (-E + SQRT (ES * S**BE * LX))) * (1.- X)**D
-
- END
-
-CDECK ID>, PHO_DORFQP
- DOUBLE PRECISION FUNCTION PHO_DORFQP(X,S,ST,AL,BE,AK,AG,B,D,E,ES)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- DX = SQRT (X)
- LX = LOG (1./X)
- IF (S .LE. ST) THEN
- PHO_DORFQP = 0.0
- ELSE
- PHO_DORFQP = (S-ST)**AL/LX**AK*(1.D0+AG*DX+B*X)*(1.D0-X)**D
- 1 * EXP (-E + SQRT (ES * S**BE * LX))
- END IF
-
- END
-
-CDECK ID>, PHO_DORGLO
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-* *
-* G R V - P H O T O N - P A R A M E T R I Z A T I O N S *
-* *
-* FOR A DETAILED EXPLANATION SEE : *
-* M. GLUECK, E.REYA, A.VOGT: DO-TH 91/31 *
-* *
-* THE OUTPUT IS ALWAYS 1./ ALPHA(EM) * X * PARTON DENSITY *
-* *
-* THE PARAMETRIZATIONS ARE FITTED TO THE PARTON DISTRIBUTIONS *
-* FOR Q ** 2 BETWEEN MU ** 2 (= 0.25 / 0.30 GEV ** 2 IN LO *
-* / HO) AND 1.E6 GEV ** 2 AND FOR X BETWEEN 1.E-5 AND 1. *
-* *
-* HEAVY QUARK THRESHOLDS Q(H) = M(H) : *
-* M(C) = 1.5, M(B) = 4.5, M(T) = 100 GEV *
-* *
-* CORRESPONDING LAMBDA(F) VALUES FOR F ACTIVE FLAVOURS : *
-* LO : LAMBDA(3) = 0.232, LAMBDA(4) = 0.200, *
-* LAMBDA(5) = 0.153, LAMBDA(6) = 0.082 GEV *
-* HO : LAMBDA(3) = 0.248, LAMBDA(4) = 0.200, *
-* LAMBDA(5) = 0.131, LAMBDA(6) = 0.053 GEV *
-* *
-* HO DISTRIBUTIONS REFER TO THE DIS(GAMMA) SCHEME, SEE : *
-* M. GLUECK, E.REYA, A.VOGT: DO-TH 91/26 *
-* *
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-C
- SUBROUTINE PHO_DORGLO (X, Q2, UL, DL, SL, CL, BL, GL)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- MU2 = 0.25
- LAM2 = 0.232 * 0.232
- S = LOG (LOG(Q2/LAM2) / LOG(MU2/LAM2))
- SS = SQRT (S)
- S2 = S * S
-C...X * U = X * UBAR :
- AL = 1.717
- BE = 0.641
- AK = 0.500 - 0.176 * S
- BK = 15.00 - 5.687 * SS - 0.552 * S2
- AG = 0.235 + 0.046 * SS
- BG = 0.082 - 0.051 * S + 0.168 * S2
- C = 0.0 + 0.459 * S
- D = 0.354 - 0.061 * S
- E = 4.899 + 1.678 * S
- ES = 2.046 + 1.389 * S
- UL = PHO_DORGF (X, S, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-C...X * D = X * DBAR :
- AL = 1.549
- BE = 0.782
- AK = 0.496 + 0.026 * S
- BK = 0.685 - 0.580 * SS + 0.608 * S2
- AG = 0.233 + 0.302 * S
- BG = 0.0 - 0.818 * S + 0.198 * S2
- C = 0.114 + 0.154 * S
- D = 0.405 - 0.195 * S + 0.046 * S2
- E = 4.807 + 1.226 * S
- ES = 2.166 + 0.664 * S
- DL = PHO_DORGF (X, S, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-C...X * G :
- AL = 0.676
- BE = 1.089
- AK = 0.462 - 0.524 * SS
- BK = 5.451 - 0.804 * S2
- AG = 0.535 - 0.504 * SS + 0.288 * S2
- BG = 0.364 - 0.520 * S
- C = -0.323 + 0.115 * S2
- D = 0.233 + 0.790 * S - 0.139 * S2
- E = 0.893 + 1.968 * S
- ES = 3.432 + 0.392 * S
- GL = PHO_DORGF (X, S, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-C...X * S = X * SBAR :
- SF = 0.0
- AL = 1.609
- BE = 0.962
- AK = 0.470 - 0.099 * S2
- BK = 3.246
- AG = 0.121 - 0.068 * SS
- BG = -0.090 + 0.074 * S
- C = 0.062 + 0.034 * S
- D = 0.0 + 0.226 * S - 0.060 * S2
- E = 4.288 + 1.707 * S
- ES = 2.122 + 0.656 * S
- SL = PHO_DORGFS (X, S, SF, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-C...X * C = X * CBAR :
- SF = 0.888
- AL = 0.970
- BE = 0.545
- AK = 1.254 - 0.251 * S
- BK = 3.932 - 0.327 * S2
- AG = 0.658 + 0.202 * S
- BG = -0.699
- C = 0.965
- D = 0.0 + 0.141 * S - 0.027 * S2
- E = 4.911 + 0.969 * S
- ES = 2.796 + 0.952 * S
- CL = PHO_DORGFS (X, S, SF, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-C...X * B = X * BBAR :
- SF = 1.351
- AL = 1.016
- BE = 0.338
- AK = 1.961 - 0.370 * S
- BK = 0.923 + 0.119 * S
- AG = 0.815 + 0.207 * S
- BG = -2.275
- C = 1.480
- D = -0.223 + 0.173 * S
- E = 5.426 + 0.623 * S
- ES = 3.819 + 0.901 * S
- BL = PHO_DORGFS (X, S, SF, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-
- END
-
-CDECK ID>, PHO_DORGHO
- SUBROUTINE PHO_DORGHO (X, Q2, UH, DH, SH, CH, BH, GH)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- MU2 = 0.3
- LAM2 = 0.248 * 0.248
- S = LOG (LOG(Q2/LAM2) / LOG(MU2/LAM2))
- SS = SQRT (S)
- S2 = S * S
-C...X * U = X * UBAR :
- AL = 0.583
- BE = 0.688
- AK = 0.449 - 0.025 * S - 0.071 * S2
- BK = 5.060 - 1.116 * SS
- AG = 0.103
- BG = 0.319 + 0.422 * S
- C = 1.508 + 4.792 * S - 1.963 * S2
- D = 1.075 + 0.222 * SS - 0.193 * S2
- E = 4.147 + 1.131 * S
- ES = 1.661 + 0.874 * S
- UH = PHO_DORGF (X, S, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-C...X * D = X * DBAR :
- AL = 0.591
- BE = 0.698
- AK = 0.442 - 0.132 * S - 0.058 * S2
- BK = 5.437 - 1.916 * SS
- AG = 0.099
- BG = 0.311 - 0.059 * S
- C = 0.800 + 0.078 * S - 0.100 * S2
- D = 0.862 + 0.294 * SS - 0.184 * S2
- E = 4.202 + 1.352 * S
- ES = 1.841 + 0.990 * S
- DH = PHO_DORGF (X, S, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-C...X * G :
- AL = 1.161
- BE = 1.591
- AK = 0.530 - 0.742 * SS + 0.025 * S2
- BK = 5.662
- AG = 0.533 - 0.281 * SS + 0.218 * S2
- BG = 0.025 - 0.518 * S + 0.156 * S2
- C = -0.282 + 0.209 * S2
- D = 0.107 + 1.058 * S - 0.218 * S2
- E = 0.0 + 2.704 * S
- ES = 3.071 - 0.378 * S
- GH = PHO_DORGF (X, S, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-C...X * S = X * SBAR :
- SF = 0.0
- AL = 0.635
- BE = 0.456
- AK = 1.770 - 0.735 * SS - 0.079 * S2
- BK = 3.832
- AG = 0.084 - 0.023 * S
- BG = 0.136
- C = 2.119 - 0.942 * S + 0.063 * S2
- D = 1.271 + 0.076 * S - 0.190 * S2
- E = 4.604 + 0.737 * S
- ES = 1.641 + 0.976 * S
- SH = PHO_DORGFS (X, S, SF, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-C...X * C = X * CBAR :
- SF = 0.820
- AL = 0.926
- BE = 0.152
- AK = 1.142 - 0.175 * S
- BK = 3.276
- AG = 0.504 + 0.317 * S
- BG = -0.433
- C = 3.334
- D = 0.398 + 0.326 * S - 0.107 * S2
- E = 5.493 + 0.408 * S
- ES = 2.426 + 1.277 * S
- CH = PHO_DORGFS (X, S, SF, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-C...X * B = X * BBAR :
- SF = 1.297
- AL = 0.969
- BE = 0.266
- AK = 1.953 - 0.391 * S
- BK = 1.657 - 0.161 * S
- AG = 1.076 + 0.034 * S
- BG = -2.015
- C = 1.662
- D = 0.353 + 0.016 * S
- E = 5.713 + 0.249 * S
- ES = 3.456 + 0.673 * S
- BH = PHO_DORGFS (X, S, SF, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-
- END
-
-CDECK ID>, PHO_DORGH0
- SUBROUTINE PHO_DORGH0 (X, Q2, U0, D0, S0, C0, B0, G0)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- MU2 = 0.3
- LAM2 = 0.248 * 0.248
- S = LOG (LOG(Q2/LAM2) / LOG(MU2/LAM2))
- SS = SQRT (S)
- S2 = S * S
-C...X * U = X * UBAR :
- AL = 1.447
- BE = 0.848
- AK = 0.527 + 0.200 * S - 0.107 * S2
- BK = 7.106 - 0.310 * SS - 0.786 * S2
- AG = 0.197 + 0.533 * S
- BG = 0.062 - 0.398 * S + 0.109 * S2
- C = 0.755 * S - 0.112 * S2
- D = 0.318 - 0.059 * S
- E = 4.225 + 1.708 * S
- ES = 1.752 + 0.866 * S
- U0 = PHO_DORGF (X, S, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-C...X * D = X * DBAR :
- AL = 1.424
- BE = 0.770
- AK = 0.500 + 0.067 * SS - 0.055 * S2
- BK = 0.376 - 0.453 * SS + 0.405 * S2
- AG = 0.156 + 0.184 * S
- BG = 0.0 - 0.528 * S + 0.146 * S2
- C = 0.121 + 0.092 * S
- D = 0.379 - 0.301 * S + 0.081 * S2
- E = 4.346 + 1.638 * S
- ES = 1.645 + 1.016 * S
- D0 = PHO_DORGF (X, S, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-C...X * G :
- AL = 0.661
- BE = 0.793
- AK = 0.537 - 0.600 * SS
- BK = 6.389 - 0.953 * S2
- AG = 0.558 - 0.383 * SS + 0.261 * S2
- BG = 0.0 - 0.305 * S
- C = -0.222 + 0.078 * S2
- D = 0.153 + 0.978 * S - 0.209 * S2
- E = 1.429 + 1.772 * S
- ES = 3.331 + 0.806 * S
- G0 = PHO_DORGF (X, S, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-C...X * S = X * SBAR :
- SF = 0.0
- AL = 1.578
- BE = 0.863
- AK = 0.622 + 0.332 * S - 0.300 * S2
- BK = 2.469
- AG = 0.211 - 0.064 * SS - 0.018 * S2
- BG = -0.215 + 0.122 * S
- C = 0.153
- D = 0.0 + 0.253 * S - 0.081 * S2
- E = 3.990 + 2.014 * S
- ES = 1.720 + 0.986 * S
- S0 = PHO_DORGFS (X, S, SF, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-C...X * C = X * CBAR :
- SF = 0.820
- AL = 0.929
- BE = 0.381
- AK = 1.228 - 0.231 * S
- BK = 3.806 - 0.337 * S2
- AG = 0.932 + 0.150 * S
- BG = -0.906
- C = 1.133
- D = 0.0 + 0.138 * S - 0.028 * S2
- E = 5.588 + 0.628 * S
- ES = 2.665 + 1.054 * S
- C0 = PHO_DORGFS (X, S, SF, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-C...X * B = X * BBAR :
- SF = 1.297
- AL = 0.970
- BE = 0.207
- AK = 1.719 - 0.292 * S
- BK = 0.928 + 0.096 * S
- AG = 0.845 + 0.178 * S
- BG = -2.310
- C = 1.558
- D = -0.191 + 0.151 * S
- E = 6.089 + 0.282 * S
- ES = 3.379 + 1.062 * S
- B0 = PHO_DORGFS (X, S, SF, AL, BE, AK, BK, AG, BG, C, D, E, ES)
-
- END
-
-CDECK ID>, PHO_DORGF
- DOUBLE PRECISION FUNCTION PHO_DORGF(X,S,AL,BE,AK,BK,
- & AG,BG,C,D,E,ES)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- SX = SQRT (X)
- LX = LOG (1./X)
- PHO_DORGF = (X**AK * (AG + BG * SX + C * X**BK) + S**AL
- 1 * EXP (-E + SQRT (ES * S**BE * LX))) * (1.- X)**D
-
- END
-
-CDECK ID>, PHO_DORGFS
- DOUBLE PRECISION FUNCTION PHO_DORGFS(X,S,SF,AL,BE,AK,BK,AG,BG,
- & C,D,E,ES)
- IMPLICIT DOUBLE PRECISION (A - Z)
- SAVE
-
- IF (S .LE. SF) THEN
- PHO_DORGFS = 0.0
- ELSE
- SX = SQRT (X)
- LX = LOG (1./X)
- DS = S - SF
- PHO_DORGFS = (DS * X**AK * (AG + BG * SX + C * X**BK) + DS**AL
- 1 * EXP (-E + SQRT (ES * S**BE * LX))) * (1.- X)**D
- END IF
-
- END
-
-CDECK ID>, PHO_DORGLV
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-* *
-* G R S - LO - VIRTUAL PHOTON PARAMETRIZATIONS *
-* *
-* FOR A DETAILED EXPLANATION SEE *
-* M. GLUECK, E.REYA, M. STRATMANN : *
-* PHYS. REV. D51 (1995) 3220 *
-* *
-* THE PARAMETRIZATIONS ARE FITTED TO THE EVOLVED PARTONS FOR *
-* Q**2 / GEV**2 BETWEEN 0.6 AND 5.E4 *
-* AND (!) Q**2 > 5 P**2 *
-* P**2 / GEV**2 BETWEEN 0.0 AND 10. *
-* P**2 = 0 <=> REAL PHOTON *
-* X BETWEEN 1.E-4 AND 1. *
-* *
-* HEAVY QUARK THRESHOLDS Q(H) = M(H) IN THE BETA FUNCTION : *
-* M(C) = 1.5, M(B) = 4.5 *
-* CORRESPONDING LAMBDA(F) VALUES IN GEV FOR Q**2 > M(H)**2 : *
-* LO : LAMBDA(3) = 0.232, LAMBDA(4) = 0.200, *
-* LAMBDA(5) = 0.153, *
-* THE NUMBER OF ACTIVE QUARK FLAVOURS IS NF = 3 EVERYWHERE *
-* EXCEPT IN THE BETA FUNCTION, I.E. THE HEAVY QUARKS C,B,... *
-* ARE NOT PRESENT AS PARTONS IN THE Q2-EVOLUTION. *
-* *
-* PLEASE REPORT ANY STRANGE BEHAVIOUR TO : *
-* Marco.Stratmann@durham.ac.uk *
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-*
-*...INPUT PARAMETERS :
-*
-* X = MOMENTUM FRACTION
-* Q2 = SCALE Q**2 IN GEV**2
-* P2 = VIRTUALITY OF THE PHOTON IN GEV**2
-*
-*...OUTPUT (ALWAYS X TIMES THE DISTRIBUTION DIVIDED BY ALPHA_EM) :
-*
-********************************************************
-* subroutine grspar(x,q2,p2,ugam,dgam,sgam,ggam)
- subroutine PHO_DORGLV(x,q2,p2,ugam,dgam,sgam,ggam)
- implicit double precision (a-z)
- save
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- integer check
-c
-c check limits :
-c
- check=0
- if(x.lt.0.0001d0) check=1
- if((q2.lt.0.6d0).or.(q2.gt.50000.d0)) check=1
- if(q2.lt.5.d0*p2) check=1
-c
-c calculate distributions
-c
- if(check.eq.0) then
- call PHO_grscalc(x,q2,p2,ugam,dgam,sgam,ggam)
- else
- WRITE(LO,*) 'GRS PDF parametrization: x/q2/p2 limits exceeded'
- WRITE(LO,'(1X,A,1P,3E12.3)') 'current X, Q2, P2:',x,q2,p2
- endif
-
- end
-
-CDECK ID>, PHO_grscalc
- subroutine PHO_grscalc(x,q2,p2,ugam,dgam,sgam,ggam)
- implicit double precision (a-z)
- save
-
- dimension u1(40),ds1(40),g1(40)
- dimension ud2(20),s2(20),g2(20)
- dimension up0(20),dsp0(20),gp0(20)
- save u1,ds1,g1,ud2,s2,g2,up0,dsp0,gp0
-c
- data u1/-0.139d0,0.783d0,0.132d0,0.087d0,0.003d0,-0.0134d0,
- & 0.009d0,-0.017d0,0.092d0,-0.516d0,-0.085d0,0.439d0,
- & 0.013d0,0.108d0,-0.019d0,-0.272d0,-0.167d0,0.138d0,
- & 0.076d0,0.026d0,-0.013d0,0.27d0,0.107d0,-0.097d0,0.04d0,
- & 0.064d0,0.011d0,0.002d0,0.057d0,-0.057d0,0.162d0,
- & -0.172d0,0.124d0,-0.016d0,-0.065d0,0.044d0,-1.009d0,
- & 0.622d0,0.227d0,-0.184d0/
- data ds1/0.033d0,0.007d0,-0.0516d0,0.12d0,0.001d0,-0.013d0,
- & 0.018d0,-0.028d0,0.102d0,-0.595d0,-0.114d0,0.669d0,
- & 0.022d0,0.001d0,-0.003d0,-0.0583d0,-0.041d0,0.035d0,
- & 0.009d0,0.009d0,0.004d0,0.054d0,0.025d0,-0.02d0,
- & 0.007d0,0.021d0,0.01d0,0.004d0,-0.067d0,0.06d0,-0.148d0,
- & 0.13d0,0.032d0,-0.009d0,-0.06d0,0.036d0,-0.39d0,0.033d0,
- & 0.245d0,-0.171d0/
- data g1/0.025d0,0.d0,-0.018d0,0.112d0,-0.025d0,0.177d0,
- & -0.022d0,0.024d0,0.001d0,-0.0104d0,0.d0,0.d0,-1.082d0,
- & -1.666d0,0.d0,0.086d0,0.d0,0.053d0,0.005d0,-0.058d0,
- & 0.034d0,0.073d0,1.08d0,1.63d0,-0.0256d0,-0.088d0,0.d0,
- & 0.d0,-0.004d0,0.016d0,0.007d0,-0.012d0,0.01d0,-0.673d0,
- & 0.126d0,-0.167d0,0.032d0,-0.227d0,0.086d0,-0.159d0/
- data ud2/0.756d0,0.187d0,0.109d0,-0.163d0,0.002d0,0.004d0,
- & 0.054d0,-0.039d0,22.53d0,-21.02d0,5.608d0,0.332d0,
- & -0.008d0,-0.021d0,0.381d0,0.572d0,4.774d0,1.436d0,
- & -0.614d0,3.548d0/
- data s2/0.902d0,0.182d0,0.271d0,-0.346d0,0.017d0,-0.01d0,
- & -0.011d0,0.0065d0,17.1d0,-13.29d0,6.519d0,0.031d0,
- & -0.0176d0,0.003d0,1.243d0,0.804d0,4.709d0,1.499d0,
- & -0.48d0,3.401d0/
- data g2/0.364d0,1.31d0,0.86d0,-0.254d0,0.611d0,0.008d0,
- & -0.097d0,-2.412d0,-0.843d0,2.248d0,-0.201d0,1.33d0,
- & 0.572d0,0.44d0,1.233d0,0.009d0,0.954d0,1.862d0,3.791d0,
- & -0.079d0/
- data up0/1.551d0,0.105d0,1.089d0,-0.172d0,3.822d0,-2.162d0,
- & 0.533d0,-0.467d0,-0.412d0,0.2d0,0.377d0,0.299d0,0.487d0,
- & 0.0766d0,0.119d0,0.063d0,7.605d0,0.234d0,-0.567d0,
- & 2.294d0/
- data dsp0/2.484d0,1.214d0,1.088d0,-0.1735d0,4.293d0,
- & -2.802d0,0.5975d0,-0.1193d0,-0.0872d0,0.0418d0,0.128d0,
- & 0.0337d0,0.127d0,0.0135d0,0.14d0,0.0423d0,6.946d0,
- & 0.814d0,1.531d0,0.124d0/
- data gp0/1.682d0,1.1d0,0.5888d0,-0.4714d0,0.5362d0,0.0127d0,
- & -2.438d0,0.03399d0,0.07825d0,0.05842d0,0.08393d0,2.348d0,
- & -0.07182d0,1.084d0,0.3098d0,-0.07514d0,3.327d0,1.1d0,
- & 2.264d0,0.2675d0/
-c
- mu2=0.25d0
- lam2=0.232d0*0.232d0
-c
- if(p2.le.0.25d0) then
- s=log(log(q2/lam2)/log(mu2/lam2))
- lp1=0.d0
- lp2=0.d0
- else
- s=log(log(q2/lam2)/log(p2/lam2))
- lp1=log(p2/mu2)*log(p2/mu2)
- lp2=log(p2/mu2+log(p2/mu2))
- endif
-c
- alp=up0(1)+lp1*u1(1)+lp2*u1(2)
- bet=up0(2)+lp1*u1(3)+lp2*u1(4)
- a=up0(3)+lp1*u1(5)+lp2*u1(6)+
- & (up0(4)+lp1*u1(7)+lp2*u1(8))*s
- b=up0(5)+lp1*u1(9)+lp2*u1(10)+
- & (up0(6)+lp1*u1(11)+lp2*u1(12))*s**0.5+
- & (up0(7)+lp1*u1(13)+lp2*u1(14))*s**2
- gb=up0(8)+lp1*u1(15)+lp2*u1(16)+
- & (up0(9)+lp1*u1(17)+lp2*u1(18))*s+
- & (up0(10)+lp1*u1(19)+lp2*u1(20))*s**2
- ga=up0(11)+lp1*u1(21)+lp2*u1(22)+
- & (up0(12)+lp1*u1(23)+lp2*u1(24))*s**0.5
- gc=up0(13)+lp1*u1(25)+lp2*u1(33)+
- & (up0(14)+lp1*u1(26)+lp2*u1(34))*s
- gd=up0(15)+lp1*u1(27)+lp2*u1(35)+
- & (up0(16)+lp1*u1(28)+lp2*u1(36))*s
- ge=up0(17)+lp1*u1(29)+lp2*u1(37)+
- & (up0(18)+lp1*u1(30)+lp2*u1(38))*s
- gep=up0(19)+lp1*u1(31)+lp2*u1(39)+
- & (up0(20)+lp1*u1(32)+lp2*u1(40))*s
- upart1=PHO_grsf2(x,s,alp,bet,a,b,ga,gb,gc,gd,ge,gep)
-c
- alp=dsp0(1)+lp1*ds1(1)+lp2*ds1(2)
- bet=dsp0(2)+lp1*ds1(3)+lp2*ds1(4)
- a=dsp0(3)+lp1*ds1(5)+lp2*ds1(6)+
- & (dsp0(4)+lp1*ds1(7)+lp2*ds1(8))*s
- b=dsp0(5)+lp1*ds1(9)+lp2*ds1(10)+
- & (dsp0(6)+lp1*ds1(11)+lp2*ds1(12))*s**0.5+
- & (dsp0(7)+lp1*ds1(13)+lp2*ds1(14))*s**2
- gb=dsp0(8)+lp1*ds1(15)+lp2*ds1(16)+
- & (dsp0(9)+lp1*ds1(17)+lp2*ds1(18))*s+
- & (dsp0(10)+lp1*ds1(19)+lp2*ds1(20))*s**2
- ga=dsp0(11)+lp1*ds1(21)+lp2*ds1(22)+
- & (dsp0(12)+lp1*ds1(23)+lp2*ds1(24))*s
- gc=dsp0(13)+lp1*ds1(25)+lp2*ds1(33)+
- & (dsp0(14)+lp1*ds1(26)+lp2*ds1(34))*s
- gd=dsp0(15)+lp1*ds1(27)+lp2*ds1(35)+
- & (dsp0(16)+lp1*ds1(28)+lp2*ds1(36))*s
- ge=dsp0(17)+lp1*ds1(29)+lp2*ds1(37)+
- & (dsp0(18)+lp1*ds1(30)+lp2*ds1(38))*s
- gep=dsp0(19)+lp1*ds1(31)+lp2*ds1(39)+
- & (dsp0(20)+lp1*ds1(32)+lp2*ds1(40))*s
- dspart1=PHO_grsf2(x,s,alp,bet,a,b,ga,gb,gc,gd,ge,gep)
-c
- alp=gp0(1)+lp1*g1(1)+lp2*g1(2)
- bet=gp0(2)+lp1*g1(3)+lp2*g1(4)
- a=gp0(3)+lp1*g1(5)+lp2*g1(6)+
- & (gp0(4)+lp1*g1(7)+lp2*g1(8))*s**0.5
- b=gp0(5)+lp1*g1(9)+lp2*g1(10)+
- & (gp0(6)+lp1*g1(11)+lp2*g1(12))*s**2
- gb=gp0(7)+lp1*g1(13)+lp2*g1(14)+
- & (gp0(8)+lp1*g1(15)+lp2*g1(16))*s
- ga=gp0(9)+lp1*g1(17)+lp2*g1(18)+
- & (gp0(10)+lp1*g1(19)+lp2*g1(20))*s**0.5+
- & (gp0(11)+lp1*g1(21)+lp2*g1(22))*s**2
- gc=gp0(12)+lp1*g1(23)+lp2*g1(24)+
- & (gp0(13)+lp1*g1(25)+lp2*g1(26))*s**2
- gd=gp0(14)+lp1*g1(27)+lp2*g1(28)+
- & (gp0(15)+lp1*g1(29)+lp2*g1(30))*s+
- & (gp0(16)+lp1*g1(31)+lp2*g1(32))*s**2
- ge=gp0(17)+lp1*g1(33)+lp2*g1(34)+
- & (gp0(18)+lp1*g1(35)+lp2*g1(36))*s
- gep=gp0(19)+lp1*g1(37)+lp2*g1(38)+
- & (gp0(20)+lp1*g1(39)+lp2*g1(40))*s
- gpart1=PHO_grsf2(x,s,alp,bet,a,b,ga,gb,gc,gd,ge,gep)
-c
- s=log(log(q2/lam2)/log(mu2/lam2))
- suppr=1.d0/(1.d0+p2/0.59d0)**2
-c
- alp=ud2(1)
- bet=ud2(2)
- a=ud2(3)+ud2(4)*s
- ga=ud2(5)+ud2(6)*s**0.5
- gc=ud2(7)+ud2(8)*s
- b=ud2(9)+ud2(10)*s+ud2(11)*s**2
- gb=ud2(12)+ud2(13)*s+ud2(14)*s**2
- gd=ud2(15)+ud2(16)*s
- ge=ud2(17)+ud2(18)*s
- gep=ud2(19)+ud2(20)*s
- udpart2=suppr*PHO_grsf1(x,s,alp,bet,a,b,ga,gb,gc,gd,ge,gep)
-c
- alp=s2(1)
- bet=s2(2)
- a=s2(3)+s2(4)*s
- ga=s2(5)+s2(6)*s**0.5
- gc=s2(7)+s2(8)*s
- b=s2(9)+s2(10)*s+s2(11)*s**2
- gb=s2(12)+s2(13)*s+s2(14)*s**2
- gd=s2(15)+s2(16)*s
- ge=s2(17)+s2(18)*s
- gep=s2(19)+s2(20)*s
- spart2=suppr*PHO_grsf2(x,s,alp,bet,a,b,ga,gb,gc,gd,ge,gep)
-c
- alp=g2(1)
- bet=g2(2)
- a=g2(3)+g2(4)*s**0.5
- b=g2(5)+g2(6)*s**2
- gb=g2(7)+g2(8)*s
- ga=g2(9)+g2(10)*s**0.5+g2(11)*s**2
- gc=g2(12)+g2(13)*s**2
- gd=g2(14)+g2(15)*s+g2(16)*s**2
- ge=g2(17)+g2(18)*s
- gep=g2(19)+g2(20)*s
- gpart2=suppr*PHO_grsf1(x,s,alp,bet,a,b,ga,gb,gc,gd,ge,gep)
-c
- ugam=upart1+udpart2
- dgam=dspart1+udpart2
- sgam=dspart1+spart2
- ggam=gpart1+gpart2
-c
- end
-
-CDECK ID>, PHO_grsf1
- DOUBLE PRECISION FUNCTION PHO_grsf1(x,s,alp,bet,a,b,ga,gb,gc,gd,
- & ge,gep)
- implicit double precision (a-z)
- save
-
- PHO_grsf1=(x**a*(ga+gb*sqrt(x)+gc*x**b)+
- & s**alp*exp(-ge+sqrt(gep*s**bet*log(1.d0/x))))*
- & (1.d0-x)**gd
-
- end
-
-CDECK ID>, PHO_grsf2
- DOUBLE PRECISION FUNCTION PHO_grsf2(x,s,alp,bet,a,b,ga,gb,gc,gd,
- & ge,gep)
- implicit double precision (a-z)
- save
-
- PHO_grsf2=(s*x**a*(ga+gb*sqrt(x)+gc*x**b)+
- & s**alp*exp(-ge+sqrt(gep*s**bet*log(1.d0/x))))*
- & (1.d0-x)**gd
-
- end
-
-CDECK ID>, PHO_CKMTPA
- SUBROUTINE PHO_CKMTPA(IPA,XMI,XMA,ALA,Q2MI,Q2MA,PDFNA)
-C**********************************************************************
-C
-C PDF based on Regge theory, evolved with .... by ....
-C
-C input: IPAR 2212 proton (not installed)
-C 990 Pomeron
-C
-C output: parameters of parametrization
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- CHARACTER*8 PDFNA
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- REAL PROP(40),POMP(40)
- DATA PROP /
- & .230000E+00, .200000E+01, .150200E+00, .120000E+01, .263100E+00,
- & .645200E+00, .354890E+01, .111700E+01, .415000E+00, .768400E-01,
- & .100000E+00, .330000E-01, .352102E-01, .200000E+01, .200000E+01,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .100000E+00, .200000E+01, .100000E+09/
- DATA POMP /
- & .230000E+00, .500000E+01, .150200E+00, .120000E+01, .263100E+00,
- & .645200E+00, .354890E+01, .111700E+01, .415000E+00, .768400E-01,
- & .700000E-01, .700000E-01, .137161E+00, .300000E+01, .200000E+01,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .100000E+00, .500000E+01, .100000E+09/
-
- IF(IPA.EQ.2212) THEN
- ALA =PROP(1)
- Q2MI = PROP(39)
- Q2MA = PROP(40)
- PDFNA = 'CKMT-PRO'
- ELSE IF(IPA.EQ.990) THEN
- ALA = POMP(1)
- Q2MI = POMP(39)
- Q2MA = POMP(40)
- PDFNA = 'CKMT-POM'
- ELSE
- WRITE(LO,'(1X,A,I7)')
- & 'PHO_CKMTPA:ERROR: invalid particle code',IPA
- STOP
- ENDIF
- XMI = 1.D-4
- XMA = 1.D0
- END
-
-CDECK ID>, PHO_CKMTPD
- SUBROUTINE PHO_CKMTPD(IPAR,X,SCALE2,PD)
-C**********************************************************************
-C
-C PDF based on Regge theory, evolved with .... by ....
-C
-C input: IPAR 2212 proton (not installed)
-C 990 Pomeron
-C
-C output: PD(-6:6) x*f(x) parton distribution functions
-C (PDFLIB convention: d = PD(1), u = PD(2) )
-C
-C**********************************************************************
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- DOUBLE PRECISION X,SCALE2,PD(-6:6),CDN,CUP
- DIMENSION QQ(7)
-
- Q2=SNGL(SCALE2)
- Q1S=Q2
- XX=SNGL(X)
-C QCD lambda for evolution
- OWLAM = 0.23D0
- OWLAM2=OWLAM**2
-C Q0**2 for evolution
- Q02 = 2.D0
-C
-C
-C the conventions are : q(1)=x*u, q(2)=x*d, q(3)=q(4)=x*sbar=x*ubar=...
-C q(6)=x*charm, q(7)=x*gluon
-C
- SB=0.
- IF(Q2-Q02) 1,1,2
- 2 SB=LOG(LOG(Q2/OWLAM2)/LOG(Q02/OWLAM2))
- 1 CONTINUE
- IF(IPAR.EQ.2212) THEN
-* CALL PHO_CKMTPR(XX,SB,QQ
- WRITE(LO,'(/1X,A,I6)') 'PHO_CKMTPD:ERROR: invalid particle',IPAR
- CALL PHO_ABORT
- ELSE
- CALL PHO_CKMTPO(XX,SB,QQ)
- ENDIF
-C
- PD(-6) = 0.D0
- PD(-5) = 0.D0
- PD(-4) = DBLE(QQ(6))
- PD(-3) = DBLE(QQ(3))
- PD(-2) = DBLE(QQ(4))
- PD(-1) = DBLE(QQ(5))
- PD(0) = DBLE(QQ(7))
- PD(1) = DBLE(QQ(2))
- PD(2) = DBLE(QQ(1))
- PD(3) = DBLE(QQ(3))
- PD(4) = DBLE(QQ(6))
- PD(5) = 0.D0
- PD(6) = 0.D0
- IF(IPAR.EQ.990) THEN
- CDN = (PD(1)-PD(-1))/2.D0
- CUP = (PD(2)-PD(-2))/2.D0
- PD(-1) = PD(-1) + CDN
- PD(-2) = PD(-2) + CUP
- PD(1) = PD(-1)
- PD(2) = PD(-2)
- ENDIF
- END
-
-CDECK ID>, PHO_CKMTPO
- SUBROUTINE PHO_CKMTPO(X,S,QQ)
-C**********************************************************************
-C
-C calculation partons in Pomeron
-C
-C**********************************************************************
- SAVE
-
- DIMENSION QQ(7)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- DIMENSION F1(25),F2(25),GF(8,20,25),DL(4000)
- EQUIVALENCE (GF(1,1,1),DL(1))
- DATA DELTA/.10/
-
-C RNG= -.5
-C DEU.NORM. QUARKS,GLUONS,NEW NORM .6223E+00 .2754E+00 .1372E+01
-C POM.NORM. QUARKS,GLUONS,ALL .132E+00 .275E+00 .407E+00
- DATA (DL(K),K= 1, 85) /
- & .324159E-01, .324159E-01, .298895E-01, .298895E-01, .298895E-01,
- & .298895E-01, .486150E+00,-.867362E-18, .362035E-01, .362035E-01,
- & .335142E-01, .335151E-01, .335151E-01, .335142E-01, .745381E+00,
- & .399157E-02, .417146E-01, .417146E-01, .388545E-01, .388564E-01,
- & .388564E-01, .388545E-01, .107588E+01, .969559E-02, .493208E-01,
- & .493208E-01, .462819E-01, .462849E-01, .462849E-01, .462819E-01,
- & .148168E+01, .174837E-01, .593251E-01, .593251E-01, .560991E-01,
- & .561035E-01, .561035E-01, .560991E-01, .196422E+01, .276588E-01,
- & .720220E-01, .720220E-01, .686007E-01, .686065E-01, .686065E-01,
- & .686007E-01, .252331E+01, .405154E-01, .876695E-01, .876695E-01,
- & .840445E-01, .840520E-01, .840520E-01, .840445E-01, .315730E+01,
- & .563115E-01, .106489E+00, .106489E+00, .102652E+00, .102662E+00,
- & .102662E+00, .102652E+00, .386313E+01, .752690E-01, .128662E+00,
- & .128662E+00, .124605E+00, .124616E+00, .124616E+00, .124605E+00,
- & .463661E+01, .975686E-01, .154326E+00, .154326E+00, .150039E+00,
- & .150053E+00, .150053E+00, .150039E+00, .547247E+01, .123348E+00,
- & .183571E+00, .183571E+00, .179048E+00, .179063E+00, .179063E+00/
- DATA (DL(K),K= 86, 170) /
- & .179048E+00, .636464E+01, .152698E+00, .216445E+00, .216445E+00,
- & .211676E+00, .211694E+00, .211694E+00, .211676E+00, .730631E+01,
- & .185666E+00, .252948E+00, .252948E+00, .247925E+00, .247946E+00,
- & .247946E+00, .247925E+00, .829017E+01, .222252E+00, .293037E+00,
- & .293037E+00, .287752E+00, .287776E+00, .287776E+00, .287752E+00,
- & .930850E+01, .262414E+00, .336625E+00, .336625E+00, .331070E+00,
- & .331097E+00, .331097E+00, .331070E+00, .103534E+02, .306065E+00,
- & .383587E+00, .383587E+00, .377754E+00, .377785E+00, .377785E+00,
- & .377754E+00, .114166E+02, .353079E+00, .433760E+00, .433760E+00,
- & .427641E+00, .427675E+00, .427675E+00, .427641E+00, .124903E+02,
- & .403294E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .296507E-01, .296507E-01, .258624E-01, .258624E-01, .258624E-01,
- & .258624E-01, .422709E+00,-.173472E-17, .330029E-01, .330029E-01/
- DATA (DL(K),K= 171, 255) /
- & .289773E-01, .289787E-01, .289787E-01, .289773E-01, .642996E+00,
- & .344499E-02, .377610E-01, .377610E-01, .334880E-01, .334910E-01,
- & .334910E-01, .334880E-01, .914159E+00, .828363E-02, .441590E-01,
- & .441590E-01, .396285E-01, .396333E-01, .396333E-01, .396285E-01,
- & .123635E+01, .147501E-01, .523710E-01, .523710E-01, .475730E-01,
- & .475798E-01, .475798E-01, .475730E-01, .160820E+01, .230185E-01,
- & .625514E-01, .625514E-01, .574758E-01, .574848E-01, .574848E-01,
- & .574758E-01, .202705E+01, .332433E-01, .748195E-01, .748195E-01,
- & .694563E-01, .694678E-01, .694678E-01, .694563E-01, .248945E+01,
- & .455440E-01, .892611E-01, .892611E-01, .836006E-01, .836147E-01,
- & .836147E-01, .836006E-01, .299114E+01, .600067E-01, .105928E+00,
- & .105928E+00, .999607E-01, .999776E-01, .999776E-01, .999607E-01,
- & .352735E+01, .766833E-01, .124839E+00, .124839E+00, .118555E+00,
- & .118575E+00, .118575E+00, .118555E+00, .409288E+01, .955921E-01,
- & .145978E+00, .145978E+00, .139368E+00, .139391E+00, .139391E+00,
- & .139368E+00, .468226E+01, .116719E+00, .169300E+00, .169300E+00,
- & .162355E+00, .162382E+00, .162382E+00, .162355E+00, .528987E+01/
- DATA (DL(K),K= 256, 340) /
- & .140017E+00, .194730E+00, .194730E+00, .187441E+00, .187471E+00,
- & .187471E+00, .187441E+00, .591007E+01, .165413E+00, .222167E+00,
- & .222167E+00, .214525E+00, .214559E+00, .214559E+00, .214525E+00,
- & .653724E+01, .192806E+00, .251486E+00, .251486E+00, .243482E+00,
- & .243521E+00, .243521E+00, .243482E+00, .716591E+01, .222070E+00,
- & .282539E+00, .282539E+00, .274165E+00, .274208E+00, .274208E+00,
- & .274165E+00, .779082E+01, .253058E+00, .315161E+00, .315161E+00,
- & .306410E+00, .306458E+00, .306458E+00, .306410E+00, .840695E+01,
- & .285608E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .279581E-01, .279581E-01, .222797E-01, .222797E-01, .222797E-01,
- & .222797E-01, .367732E+00, .867362E-18, .309604E-01, .309604E-01,
- & .249419E-01, .249441E-01, .249441E-01, .249419E-01, .552053E+00,
- & .296633E-02, .350831E-01, .350831E-01, .287126E-01, .287173E-01/
- DATA (DL(K),K= 341, 425) /
- & .287173E-01, .287126E-01, .770476E+00, .704001E-02, .404554E-01,
- & .404554E-01, .337212E-01, .337286E-01, .337286E-01, .337212E-01,
- & .102096E+01, .123504E-01, .471588E-01, .471588E-01, .400495E-01,
- & .400599E-01, .400599E-01, .400495E-01, .130079E+01, .189795E-01,
- & .552518E-01, .552518E-01, .477564E-01, .477700E-01, .477700E-01,
- & .477564E-01, .160637E+01, .269860E-01, .647649E-01, .647649E-01,
- & .568725E-01, .568897E-01, .568897E-01, .568725E-01, .193388E+01,
- & .364007E-01, .757021E-01, .757021E-01, .674022E-01, .674232E-01,
- & .674232E-01, .674022E-01, .227916E+01, .472280E-01, .880430E-01,
- & .880430E-01, .793257E-01, .793507E-01, .793507E-01, .793257E-01,
- & .263802E+01, .594481E-01, .101745E+00, .101745E+00, .926005E-01,
- & .926297E-01, .926297E-01, .926005E-01, .300628E+01, .730184E-01,
- & .116745E+00, .116745E+00, .107164E+00, .107198E+00, .107198E+00,
- & .107164E+00, .337982E+01, .878765E-01, .132961E+00, .132961E+00,
- & .122936E+00, .122974E+00, .122974E+00, .122936E+00, .375469E+01,
- & .103942E+00, .150298E+00, .150298E+00, .139820E+00, .139863E+00,
- & .139863E+00, .139820E+00, .412714E+01, .121118E+00, .168645E+00/
- DATA (DL(K),K= 426, 510) /
- & .168645E+00, .157706E+00, .157754E+00, .157754E+00, .157706E+00,
- & .449366E+01, .139296E+00, .187883E+00, .187883E+00, .176476E+00,
- & .176529E+00, .176529E+00, .176476E+00, .485100E+01, .158356E+00,
- & .207882E+00, .207882E+00, .196000E+00, .196059E+00, .196059E+00,
- & .196000E+00, .519622E+01, .178170E+00, .228506E+00, .228506E+00,
- & .216145E+00, .216209E+00, .216209E+00, .216145E+00, .552665E+01,
- & .198603E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .275294E-01, .275294E-01, .190245E-01, .190245E-01, .190245E-01,
- & .190245E-01, .320228E+00, .000000E+00, .302671E-01, .302671E-01,
- & .212851E-01, .212884E-01, .212884E-01, .212851E-01, .470861E+00,
- & .255059E-02, .338703E-01, .338703E-01, .243988E-01, .244059E-01,
- & .244059E-01, .243988E-01, .642452E+00, .595399E-02, .383922E-01,
- & .383922E-01, .284195E-01, .284305E-01, .284305E-01, .284195E-01/
- DATA (DL(K),K= 511, 595) /
- & .831913E+00, .102638E-01, .438519E-01, .438519E-01, .333669E-01,
- & .333821E-01, .333821E-01, .333669E-01, .103618E+01, .155000E-01,
- & .502475E-01, .502475E-01, .392399E-01, .392595E-01, .392595E-01,
- & .392399E-01, .125172E+01, .216612E-01, .575580E-01, .575580E-01,
- & .460181E-01, .460425E-01, .460425E-01, .460181E-01, .147519E+01,
- & .287272E-01, .657445E-01, .657445E-01, .536635E-01, .536929E-01,
- & .536929E-01, .536635E-01, .170330E+01, .366597E-01, .747539E-01,
- & .747539E-01, .621238E-01, .621582E-01, .621582E-01, .621238E-01,
- & .193297E+01, .454066E-01, .845205E-01, .845205E-01, .713340E-01,
- & .713738E-01, .713738E-01, .713340E-01, .216133E+01, .549027E-01,
- & .949687E-01, .949687E-01, .812194E-01, .812646E-01, .812646E-01,
- & .812194E-01, .238578E+01, .650733E-01, .106015E+00, .106015E+00,
- & .916972E-01, .917480E-01, .917480E-01, .916972E-01, .260395E+01,
- & .758355E-01, .117569E+00, .117569E+00, .102678E+00, .102735E+00,
- & .102735E+00, .102678E+00, .281373E+01, .871004E-01, .129537E+00,
- & .129537E+00, .114070E+00, .114133E+00, .114133E+00, .114070E+00,
- & .301327E+01, .987750E-01, .141824E+00, .141824E+00, .125777E+00/
- DATA (DL(K),K= 596, 680) /
- & .125846E+00, .125846E+00, .125777E+00, .320098E+01, .110764E+00,
- & .154331E+00, .154331E+00, .137703E+00, .137778E+00, .137778E+00,
- & .137703E+00, .337553E+01, .122970E+00, .166962E+00, .166962E+00,
- & .149753E+00, .149833E+00, .149833E+00, .149753E+00, .353582E+01,
- & .135299E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .286766E-01, .286766E-01, .159579E-01, .159579E-01, .159579E-01,
- & .159579E-01, .279430E+00,-.867362E-18, .312327E-01, .312327E-01,
- & .178644E-01, .178691E-01, .178691E-01, .178644E-01, .399186E+00,
- & .219459E-02, .344289E-01, .344289E-01, .204015E-01, .204111E-01,
- & .204111E-01, .204015E-01, .529978E+00, .501953E-02, .382657E-01,
- & .382657E-01, .235713E-01, .235860E-01, .235860E-01, .235713E-01,
- & .668515E+00, .847682E-02, .427243E-01, .427243E-01, .273559E-01,
- & .273758E-01, .273758E-01, .273559E-01, .812075E+00, .125486E-01/
- DATA (DL(K),K= 681, 765) /
- & .477691E-01, .477691E-01, .317212E-01, .317465E-01, .317465E-01,
- & .317212E-01, .957801E+00, .172006E-01, .533547E-01, .533547E-01,
- & .366231E-01, .366539E-01, .366539E-01, .366231E-01, .110327E+01,
- & .223886E-01, .594259E-01, .594259E-01, .420076E-01, .420441E-01,
- & .420441E-01, .420076E-01, .124628E+01, .280584E-01, .659213E-01,
- & .659213E-01, .478149E-01, .478570E-01, .478570E-01, .478149E-01,
- & .138496E+01, .341502E-01, .727749E-01, .727749E-01, .539803E-01,
- & .540280E-01, .540280E-01, .539803E-01, .151767E+01, .405990E-01,
- & .799178E-01, .799178E-01, .604361E-01, .604895E-01, .604895E-01,
- & .604361E-01, .164304E+01, .473372E-01, .872796E-01, .872796E-01,
- & .671134E-01, .671724E-01, .671724E-01, .671134E-01, .175992E+01,
- & .542955E-01, .947896E-01, .947896E-01, .739429E-01, .740075E-01,
- & .740075E-01, .739429E-01, .186739E+01, .614047E-01, .102378E+00,
- & .102378E+00, .808565E-01, .809266E-01, .809266E-01, .808565E-01,
- & .196473E+01, .685965E-01, .109978E+00, .109978E+00, .877881E-01,
- & .878637E-01, .878637E-01, .877881E-01, .205141E+01, .758045E-01,
- & .117525E+00, .117525E+00, .946745E-01, .947553E-01, .947553E-01/
- DATA (DL(K),K= 766, 850) /
- & .946745E-01, .212709E+01, .829655E-01, .124958E+00, .124958E+00,
- & .101456E+00, .101542E+00, .101542E+00, .101456E+00, .219159E+01,
- & .900196E-01, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .318691E-01, .318691E-01, .129081E-01, .129081E-01, .129081E-01,
- & .129081E-01, .244842E+00,-.867362E-18, .343104E-01, .343104E-01,
- & .145076E-01, .145124E-01, .145124E-01, .145076E-01, .337040E+00,
- & .189443E-02, .371900E-01, .371900E-01, .165461E-01, .165557E-01,
- & .165557E-01, .165461E-01, .433081E+00, .422691E-02, .404763E-01,
- & .404763E-01, .189941E-01, .190085E-01, .190085E-01, .189941E-01,
- & .530109E+00, .696769E-02, .441304E-01, .441304E-01, .218150E-01,
- & .218342E-01, .218342E-01, .218150E-01, .626129E+00, .100799E-01,
- & .481031E-01, .481031E-01, .249615E-01, .249853E-01, .249853E-01,
- & .249615E-01, .719221E+00, .135159E-01, .523426E-01, .523426E-01/
- DATA (DL(K),K= 851, 935) /
- & .283837E-01, .284122E-01, .284122E-01, .283837E-01, .807951E+00,
- & .172259E-01, .567940E-01, .567940E-01, .320288E-01, .320619E-01,
- & .320619E-01, .320288E-01, .891154E+00, .211568E-01, .614022E-01,
- & .614022E-01, .358436E-01, .358811E-01, .358811E-01, .358436E-01,
- & .967928E+00, .252549E-01, .661122E-01, .661122E-01, .397750E-01,
- & .398169E-01, .398169E-01, .397750E-01, .103759E+01, .294673E-01,
- & .708708E-01, .708708E-01, .437716E-01, .438176E-01, .438176E-01,
- & .437716E-01, .109966E+01, .337422E-01, .756269E-01, .756269E-01,
- & .477840E-01, .478342E-01, .478342E-01, .477840E-01, .115380E+01,
- & .380302E-01, .803322E-01, .803322E-01, .517659E-01, .518200E-01,
- & .518200E-01, .517659E-01, .119986E+01, .422846E-01, .849423E-01,
- & .849423E-01, .556743E-01, .557322E-01, .557322E-01, .556743E-01,
- & .123782E+01, .464624E-01, .894164E-01, .894164E-01, .594701E-01,
- & .595315E-01, .595315E-01, .594701E-01, .126777E+01, .505242E-01,
- & .937178E-01, .937178E-01, .631181E-01, .631829E-01, .631829E-01,
- & .631181E-01, .128993E+01, .544348E-01, .978144E-01, .978144E-01,
- & .665876E-01, .666556E-01, .666556E-01, .665876E-01, .130457E+01/
- DATA (DL(K),K= 936, 1020) /
- & .581632E-01, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .377668E-01, .377668E-01, .968304E-02, .968304E-02, .968304E-02,
- & .968304E-02, .216392E+00,-.130104E-17, .401066E-01, .401066E-01,
- & .110266E-01, .110291E-01, .110291E-01, .110266E-01, .284113E+00,
- & .164283E-02, .426983E-01, .426983E-01, .126461E-01, .126510E-01,
- & .126510E-01, .126461E-01, .350879E+00, .355790E-02, .454940E-01,
- & .454940E-01, .144965E-01, .145039E-01, .145039E-01, .144965E-01,
- & .414611E+00, .570002E-02, .484493E-01, .484493E-01, .165364E-01,
- & .165462E-01, .165462E-01, .165364E-01, .474149E+00, .802739E-02,
- & .515153E-01, .515153E-01, .187191E-01, .187313E-01, .187313E-01,
- & .187191E-01, .528511E+00, .104932E-01, .546458E-01, .546458E-01,
- & .210009E-01, .210154E-01, .210154E-01, .210009E-01, .577107E+00,
- & .130535E-01, .577962E-01, .577962E-01, .233395E-01, .233563E-01/
- DATA (DL(K),K= 1021, 1105) /
- & .233563E-01, .233395E-01, .619574E+00, .156658E-01, .609249E-01,
- & .609249E-01, .256954E-01, .257143E-01, .257143E-01, .256954E-01,
- & .655725E+00, .182905E-01, .639938E-01, .639938E-01, .280322E-01,
- & .280532E-01, .280532E-01, .280322E-01, .685523E+00, .208909E-01,
- & .669681E-01, .669681E-01, .303170E-01, .303399E-01, .303399E-01,
- & .303170E-01, .709053E+00, .234341E-01, .698172E-01, .698172E-01,
- & .325206E-01, .325454E-01, .325454E-01, .325206E-01, .726501E+00,
- & .258907E-01, .725141E-01, .725141E-01, .346176E-01, .346442E-01,
- & .346442E-01, .346176E-01, .738139E+00, .282352E-01, .750364E-01,
- & .750364E-01, .365866E-01, .366148E-01, .366148E-01, .365866E-01,
- & .744304E+00, .304461E-01, .773653E-01, .773653E-01, .384099E-01,
- & .384396E-01, .384396E-01, .384099E-01, .745388E+00, .325056E-01,
- & .794860E-01, .794860E-01, .400736E-01, .401046E-01, .401046E-01,
- & .400736E-01, .741819E+00, .343996E-01, .813873E-01, .813873E-01,
- & .415670E-01, .415993E-01, .415993E-01, .415670E-01, .734051E+00,
- & .361177E-01, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00/
- DATA (DL(K),K= 1106, 1190) /
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .433773E-01, .433773E-01, .745094E-02, .745094E-02, .745094E-02,
- & .745094E-02, .201612E+00,-.130104E-17, .455998E-01, .455998E-01,
- & .866239E-02, .866443E-02, .866443E-02, .866239E-02, .255046E+00,
- & .149977E-02, .479569E-01, .479569E-01, .100584E-01, .100624E-01,
- & .100624E-01, .100584E-01, .305549E+00, .317779E-02, .503976E-01,
- & .503976E-01, .115911E-01, .115970E-01, .115970E-01, .115911E-01,
- & .351606E+00, .498612E-02, .528804E-01, .528804E-01, .132216E-01,
- & .132293E-01, .132293E-01, .132216E-01, .392560E+00, .688553E-02,
- & .553621E-01, .553621E-01, .149087E-01, .149181E-01, .149181E-01,
- & .149087E-01, .427948E+00, .883486E-02, .578049E-01, .578049E-01,
- & .166165E-01, .166276E-01, .166276E-01, .166165E-01, .457612E+00,
- & .107980E-01, .601739E-01, .601739E-01, .183120E-01, .183246E-01,
- & .183246E-01, .183120E-01, .481565E+00, .127419E-01, .624390E-01,
- & .624390E-01, .199661E-01, .199801E-01, .199801E-01, .199661E-01/
- DATA (DL(K),K= 1191, 1275) /
- & .499943E+00, .146375E-01, .645736E-01, .645736E-01, .215535E-01,
- & .215688E-01, .215688E-01, .215535E-01, .512983E+00, .164593E-01,
- & .665556E-01, .665556E-01, .230528E-01, .230693E-01, .230693E-01,
- & .230528E-01, .520995E+00, .181859E-01, .683669E-01, .683669E-01,
- & .244463E-01, .244639E-01, .244639E-01, .244463E-01, .524347E+00,
- & .197998E-01, .699932E-01, .699932E-01, .257201E-01, .257387E-01,
- & .257387E-01, .257201E-01, .523447E+00, .212869E-01, .714240E-01,
- & .714240E-01, .268637E-01, .268832E-01, .268832E-01, .268637E-01,
- & .518729E+00, .226367E-01, .726523E-01, .726523E-01, .278697E-01,
- & .278900E-01, .278900E-01, .278697E-01, .510641E+00, .238420E-01,
- & .736741E-01, .736741E-01, .287338E-01, .287547E-01, .287547E-01,
- & .287338E-01, .499630E+00, .248984E-01, .744886E-01, .744886E-01,
- & .294542E-01, .294757E-01, .294757E-01, .294542E-01, .486140E+00,
- & .258043E-01, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00/
- DATA (DL(K),K= 1276, 1360) /
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .499162E-01, .499162E-01, .534441E-02, .534441E-02, .534441E-02,
- & .534441E-02, .191108E+00,-.151788E-17, .519197E-01, .519197E-01,
- & .646285E-02, .646402E-02, .646402E-02, .646285E-02, .232539E+00,
- & .137669E-02, .539504E-01, .539504E-01, .769150E-02, .769377E-02,
- & .769377E-02, .769150E-02, .269907E+00, .285489E-02, .559598E-01,
- & .559598E-01, .898389E-02, .898721E-02, .898721E-02, .898389E-02,
- & .302186E+00, .438814E-02, .579130E-01, .579130E-01, .103061E-01,
- & .103104E-01, .103104E-01, .103061E-01, .329124E+00, .594258E-02,
- & .597754E-01, .597754E-01, .116245E-01, .116297E-01, .116297E-01,
- & .116245E-01, .350643E+00, .748452E-02, .615191E-01, .615191E-01,
- & .129113E-01, .129174E-01, .129174E-01, .129113E-01, .366890E+00,
- & .898645E-02, .631204E-01, .631204E-01, .141428E-01, .141497E-01,
- & .141497E-01, .141428E-01, .378134E+00, .104247E-01, .645601E-01,
- & .645601E-01, .152995E-01, .153071E-01, .153071E-01, .152995E-01,
- & .384719E+00, .117798E-01, .658236E-01, .658236E-01, .163657E-01,
- & .163739E-01, .163739E-01, .163657E-01, .387045E+00, .130362E-01/
- DATA (DL(K),K= 1361, 1445) /
- & .669000E-01, .669000E-01, .173294E-01, .173381E-01, .173381E-01,
- & .173294E-01, .385547E+00, .141821E-01, .677824E-01, .677824E-01,
- & .181820E-01, .181912E-01, .181912E-01, .181820E-01, .380677E+00,
- & .152091E-01, .684672E-01, .684672E-01, .189180E-01, .189277E-01,
- & .189277E-01, .189180E-01, .372894E+00, .161119E-01, .689539E-01,
- & .689539E-01, .195349E-01, .195449E-01, .195449E-01, .195349E-01,
- & .362650E+00, .168880E-01, .692447E-01, .692447E-01, .200324E-01,
- & .200427E-01, .200427E-01, .200324E-01, .350383E+00, .175374E-01,
- & .693442E-01, .693442E-01, .204123E-01, .204229E-01, .204229E-01,
- & .204123E-01, .336505E+00, .180622E-01, .692590E-01, .692590E-01,
- & .206783E-01, .206891E-01, .206891E-01, .206783E-01, .321403E+00,
- & .184661E-01, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .554152E-01, .554152E-01, .386683E-02, .386683E-02, .386683E-02/
- DATA (DL(K),K= 1446, 1530) /
- & .386683E-02, .185844E+00,-.151788E-17, .571372E-01, .571372E-01,
- & .493623E-02, .493704E-02, .493704E-02, .493623E-02, .219342E+00,
- & .129037E-02, .588098E-01, .588098E-01, .606768E-02, .606924E-02,
- & .606924E-02, .606768E-02, .248288E+00, .263296E-02, .603896E-01,
- & .603896E-01, .721747E-02, .721973E-02, .721973E-02, .721747E-02,
- & .271974E+00, .398431E-02, .618484E-01, .618484E-01, .835658E-02,
- & .835949E-02, .835949E-02, .835658E-02, .290397E+00, .531560E-02,
- & .631600E-01, .631600E-01, .945726E-02, .946074E-02, .946074E-02,
- & .945726E-02, .303702E+00, .659930E-02, .643051E-01, .643051E-01,
- & .104983E-01, .105023E-01, .105023E-01, .104983E-01, .312209E+00,
- & .781443E-02, .652691E-01, .652691E-01, .114624E-01, .114669E-01,
- & .114669E-01, .114624E-01, .316328E+00, .894407E-02, .660416E-01,
- & .660416E-01, .123367E-01, .123416E-01, .123416E-01, .123367E-01,
- & .316509E+00, .997546E-02, .666169E-01, .666169E-01, .131119E-01,
- & .131171E-01, .131171E-01, .131119E-01, .313229E+00, .108996E-01,
- & .669925E-01, .669925E-01, .137818E-01, .137874E-01, .137874E-01,
- & .137818E-01, .306974E+00, .117107E-01, .671695E-01, .671695E-01/
- DATA (DL(K),K= 1531, 1615) /
- & .143437E-01, .143495E-01, .143495E-01, .143437E-01, .298224E+00,
- & .124061E-01, .671517E-01, .671517E-01, .147970E-01, .148031E-01,
- & .148031E-01, .147970E-01, .287441E+00, .129858E-01, .669454E-01,
- & .669454E-01, .151437E-01, .151499E-01, .151499E-01, .151437E-01,
- & .275064E+00, .134517E-01, .665590E-01, .665590E-01, .153872E-01,
- & .153935E-01, .153935E-01, .153872E-01, .261497E+00, .138078E-01,
- & .660023E-01, .660023E-01, .155327E-01, .155391E-01, .155391E-01,
- & .155327E-01, .247105E+00, .140595E-01, .652865E-01, .652865E-01,
- & .155864E-01, .155929E-01, .155929E-01, .155864E-01, .232218E+00,
- & .142131E-01, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .601098E-01, .601098E-01, .278641E-02, .278641E-02, .278641E-02,
- & .278641E-02, .183460E+00, .130104E-17, .614949E-01, .614949E-01,
- & .382710E-02, .382771E-02, .382771E-02, .382710E-02, .211150E+00/
- DATA (DL(K),K= 1616, 1700) /
- & .122320E-02, .627722E-01, .627722E-01, .489465E-02, .489580E-02,
- & .489580E-02, .489465E-02, .234040E+00, .246333E-02, .639042E-01,
- & .639042E-01, .594825E-02, .594990E-02, .594990E-02, .594825E-02,
- & .251649E+00, .367998E-02, .648697E-01, .648697E-01, .696315E-02,
- & .696526E-02, .696526E-02, .696315E-02, .264143E+00, .484875E-02,
- & .656502E-01, .656502E-01, .791658E-02, .791907E-02, .791907E-02,
- & .791658E-02, .271822E+00, .594722E-02, .662343E-01, .662343E-01,
- & .879236E-02, .879520E-02, .879520E-02, .879236E-02, .275124E+00,
- & .695957E-02, .666152E-01, .666152E-01, .957846E-02, .958160E-02,
- & .958160E-02, .957846E-02, .274549E+00, .787413E-02, .667905E-01,
- & .667905E-01, .102668E-01, .102702E-01, .102702E-01, .102668E-01,
- & .270615E+00, .868318E-02, .667616E-01, .667616E-01, .108528E-01,
- & .108564E-01, .108564E-01, .108528E-01, .263847E+00, .938250E-02,
- & .665331E-01, .665331E-01, .113349E-01, .113387E-01, .113387E-01,
- & .113349E-01, .254756E+00, .997082E-02, .661123E-01, .661123E-01,
- & .117139E-01, .117179E-01, .117179E-01, .117139E-01, .243828E+00,
- & .104494E-01, .655090E-01, .655090E-01, .119931E-01, .119971E-01/
- DATA (DL(K),K= 1701, 1785) /
- & .119971E-01, .119931E-01, .231518E+00, .108217E-01, .647345E-01,
- & .647345E-01, .121770E-01, .121811E-01, .121811E-01, .121770E-01,
- & .218237E+00, .110927E-01, .638017E-01, .638017E-01, .122717E-01,
- & .122759E-01, .122759E-01, .122717E-01, .204353E+00, .112689E-01,
- & .627241E-01, .627241E-01, .122842E-01, .122884E-01, .122884E-01,
- & .122842E-01, .190187E+00, .113573E-01, .615161E-01, .615161E-01,
- & .122221E-01, .122262E-01, .122262E-01, .122221E-01, .176012E+00,
- & .113659E-01, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .641221E-01, .641221E-01, .198544E-02, .198544E-02, .198544E-02,
- & .198544E-02, .183018E+00, .184314E-17, .651208E-01, .651208E-01,
- & .300778E-02, .300823E-02, .300823E-02, .300778E-02, .206180E+00,
- & .116844E-02, .659664E-01, .659664E-01, .402903E-02, .402989E-02,
- & .402989E-02, .402903E-02, .224390E+00, .232648E-02, .666277E-01/
- DATA (DL(K),K= 1786, 1870) /
- & .666277E-01, .501117E-02, .501238E-02, .501238E-02, .501117E-02,
- & .237332E+00, .343657E-02, .670904E-01, .670904E-01, .593321E-02,
- & .593473E-02, .593473E-02, .593321E-02, .245310E+00, .447818E-02,
- & .673435E-01, .673435E-01, .677663E-02, .677843E-02, .677843E-02,
- & .677663E-02, .248743E+00, .543320E-02, .673832E-01, .673832E-01,
- & .752958E-02, .753161E-02, .753161E-02, .752958E-02, .248162E+00,
- & .629021E-02, .672099E-01, .672099E-01, .818432E-02, .818655E-02,
- & .818655E-02, .818432E-02, .244140E+00, .704188E-02, .668281E-01,
- & .668281E-01, .873688E-02, .873927E-02, .873927E-02, .873688E-02,
- & .237247E+00, .768463E-02, .662457E-01, .662457E-01, .918650E-02,
- & .918903E-02, .918903E-02, .918650E-02, .228043E+00, .821808E-02,
- & .654734E-01, .654734E-01, .953502E-02, .953766E-02, .953766E-02,
- & .953502E-02, .217054E+00, .864446E-02, .645238E-01, .645238E-01,
- & .978645E-02, .978915E-02, .978915E-02, .978645E-02, .204766E+00,
- & .896811E-02, .634114E-01, .634114E-01, .994639E-02, .994915E-02,
- & .994915E-02, .994639E-02, .191614E+00, .919500E-02, .621515E-01,
- & .621515E-01, .100217E-01, .100245E-01, .100245E-01, .100217E-01/
- DATA (DL(K),K= 1871, 1955) /
- & .177983E+00, .933229E-02, .607602E-01, .607602E-01, .100200E-01,
- & .100228E-01, .100228E-01, .100200E-01, .164201E+00, .938793E-02,
- & .592539E-01, .592539E-01, .994938E-02, .995217E-02, .995217E-02,
- & .994938E-02, .150544E+00, .937032E-02, .576488E-01, .576488E-01,
- & .981814E-02, .982091E-02, .982091E-02, .981814E-02, .137234E+00,
- & .928803E-02, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .675167E-01, .675167E-01, .139130E-02, .139130E-02, .139130E-02,
- & .139130E-02, .184090E+00, .113841E-17, .680840E-01, .680840E-01,
- & .240061E-02, .240097E-02, .240097E-02, .240061E-02, .203559E+00,
- & .112278E-02, .684634E-01, .684634E-01, .338513E-02, .338580E-02,
- & .338580E-02, .338513E-02, .217944E+00, .221249E-02, .686304E-01,
- & .686304E-01, .430938E-02, .431032E-02, .431032E-02, .430938E-02,
- & .227068E+00, .323420E-02, .685779E-01, .685779E-01, .515589E-02/
- DATA (DL(K),K= 1956, 2040) /
- & .515707E-02, .515707E-02, .515589E-02, .231353E+00, .417091E-02,
- & .683023E-01, .683023E-01, .591002E-02, .591140E-02, .591140E-02,
- & .591002E-02, .231327E+00, .500843E-02, .678068E-01, .678068E-01,
- & .656383E-02, .656537E-02, .656537E-02, .656383E-02, .227606E+00,
- & .573925E-02, .670989E-01, .670989E-01, .711344E-02, .711513E-02,
- & .711513E-02, .711344E-02, .220833E+00, .635992E-02, .661895E-01,
- & .661895E-01, .755852E-02, .756031E-02, .756031E-02, .755852E-02,
- & .211624E+00, .687048E-02, .650923E-01, .650923E-01, .790162E-02,
- & .790350E-02, .790350E-02, .790162E-02, .200567E+00, .727387E-02,
- & .638232E-01, .638232E-01, .814753E-02, .814946E-02, .814946E-02,
- & .814753E-02, .188197E+00, .757524E-02, .623994E-01, .623994E-01,
- & .830271E-02, .830469E-02, .830469E-02, .830271E-02, .174994E+00,
- & .778139E-02, .608390E-01, .608390E-01, .837482E-02, .837682E-02,
- & .837682E-02, .837482E-02, .161373E+00, .790029E-02, .591605E-01,
- & .591605E-01, .837226E-02, .837426E-02, .837426E-02, .837226E-02,
- & .147685E+00, .794065E-02, .573824E-01, .573824E-01, .830376E-02,
- & .830575E-02, .830575E-02, .830376E-02, .134218E+00, .791148E-02/
- DATA (DL(K),K= 2041, 2125) /
- & .555224E-01, .555224E-01, .817811E-02, .818008E-02, .818008E-02,
- & .817811E-02, .121200E+00, .782185E-02, .535980E-01, .535980E-01,
- & .800390E-02, .800584E-02, .800584E-02, .800390E-02, .108803E+00,
- & .768059E-02, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .703249E-01, .703249E-01, .953926E-03, .953926E-03, .953926E-03,
- & .953926E-03, .186497E+00, .108420E-18, .704188E-01, .704188E-01,
- & .195267E-02, .195297E-02, .195297E-02, .195267E-02, .202831E+00,
- & .108414E-02, .702995E-01, .702995E-01, .290528E-02, .290582E-02,
- & .290582E-02, .290528E-02, .213933E+00, .211514E-02, .699499E-01,
- & .699499E-01, .377873E-02, .377950E-02, .377950E-02, .377873E-02,
- & .219748E+00, .306054E-02, .693699E-01, .693699E-01, .455903E-02,
- & .455997E-02, .455997E-02, .455903E-02, .220821E+00, .390679E-02,
- & .685634E-01, .685634E-01, .523531E-02, .523640E-02, .523640E-02/
- DATA (DL(K),K= 2126, 2210) /
- & .523531E-02, .217787E+00, .464347E-02, .675406E-01, .675406E-01,
- & .580340E-02, .580462E-02, .580462E-02, .580340E-02, .211353E+00,
- & .526681E-02, .663155E-01, .663155E-01, .626315E-02, .626446E-02,
- & .626446E-02, .626315E-02, .202230E+00, .577705E-02, .649052E-01,
- & .649052E-01, .661759E-02, .661897E-02, .661897E-02, .661759E-02,
- & .191081E+00, .617758E-02, .633285E-01, .633285E-01, .687230E-02,
- & .687373E-02, .687373E-02, .687230E-02, .178518E+00, .647434E-02,
- & .616058E-01, .616058E-01, .703464E-02, .703611E-02, .703611E-02,
- & .703464E-02, .165082E+00, .667499E-02, .597580E-01, .597580E-01,
- & .711320E-02, .711468E-02, .711468E-02, .711320E-02, .151241E+00,
- & .678842E-02, .578059E-01, .578059E-01, .711723E-02, .711872E-02,
- & .711872E-02, .711723E-02, .137382E+00, .682417E-02, .557702E-01,
- & .557702E-01, .705628E-02, .705776E-02, .705776E-02, .705628E-02,
- & .123821E+00, .679205E-02, .536704E-01, .536704E-01, .693979E-02,
- & .694125E-02, .694125E-02, .693979E-02, .110798E+00, .670173E-02,
- & .515252E-01, .515252E-01, .677689E-02, .677832E-02, .677832E-02,
- & .677689E-02, .984933E-01, .656256E-02, .493519E-01, .493519E-01/
- DATA (DL(K),K= 2211, 2295) /
- & .657614E-02, .657753E-02, .657753E-02, .657614E-02, .870270E-01,
- & .638332E-02, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .725555E-01, .725555E-01, .636424E-03, .636424E-03, .636424E-03,
- & .636424E-03, .190200E+00,-.271051E-17, .721364E-01, .721364E-01,
- & .162522E-02, .162546E-02, .162546E-02, .162522E-02, .203770E+00,
- & .105090E-02, .714881E-01, .714881E-01, .254763E-02, .254807E-02,
- & .254807E-02, .254763E-02, .211914E+00, .202976E-02, .706012E-01,
- & .706012E-01, .337323E-02, .337384E-02, .337384E-02, .337323E-02,
- & .214704E+00, .290668E-02, .694832E-01, .694832E-01, .409164E-02,
- & .409240E-02, .409240E-02, .409164E-02, .212817E+00, .367169E-02,
- & .681454E-01, .681454E-01, .469593E-02, .469679E-02, .469679E-02,
- & .469593E-02, .207013E+00, .431823E-02, .666048E-01, .666048E-01,
- & .518578E-02, .518673E-02, .518673E-02, .518578E-02, .198095E+00/
- DATA (DL(K),K= 2296, 2380) /
- & .484637E-02, .648819E-01, .648819E-01, .556473E-02, .556575E-02,
- & .556575E-02, .556473E-02, .186850E+00, .525997E-02, .629989E-01,
- & .629989E-01, .583908E-02, .584014E-02, .584014E-02, .583908E-02,
- & .173986E+00, .556566E-02, .609795E-01, .609795E-01, .601725E-02,
- & .601834E-02, .601834E-02, .601725E-02, .160140E+00, .577215E-02,
- & .588474E-01, .588474E-01, .610889E-02, .611000E-02, .611000E-02,
- & .610889E-02, .145850E+00, .588934E-02, .566261E-01, .566261E-01,
- & .612435E-02, .612547E-02, .612547E-02, .612435E-02, .131564E+00,
- & .592785E-02, .543385E-01, .543385E-01, .607415E-02, .607526E-02,
- & .607526E-02, .607415E-02, .117636E+00, .589841E-02, .520060E-01,
- & .520060E-01, .596861E-02, .596970E-02, .596970E-02, .596861E-02,
- & .104336E+00, .581156E-02, .496485E-01, .496485E-01, .581753E-02,
- & .581860E-02, .581860E-02, .581753E-02, .918563E-01, .567728E-02,
- & .472842E-01, .472842E-01, .563002E-02, .563105E-02, .563105E-02,
- & .563002E-02, .803205E-01, .550487E-02, .449295E-01, .449295E-01,
- & .541435E-02, .541535E-02, .541535E-02, .541435E-02, .697975E-01,
- & .530276E-02, .000000E+00, .000000E+00, .000000E+00, .000000E+00/
- DATA (DL(K),K= 2381, 2465) /
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .742000E-01, .742000E-01, .410482E-03, .410482E-03, .410482E-03,
- & .410482E-03, .195273E+00,-.143657E-17, .732296E-01, .732296E-01,
- & .138854E-02, .138874E-02, .138874E-02, .138854E-02, .206298E+00,
- & .102151E-02, .720241E-01, .720241E-01, .228017E-02, .228054E-02,
- & .228054E-02, .228017E-02, .211639E+00, .195225E-02, .705820E-01,
- & .705820E-01, .305794E-02, .305844E-02, .305844E-02, .305794E-02,
- & .211509E+00, .276522E-02, .689187E-01, .689187E-01, .371549E-02,
- & .371609E-02, .371609E-02, .371549E-02, .206745E+00, .345441E-02,
- & .670527E-01, .670527E-01, .425016E-02, .425084E-02, .425084E-02,
- & .425016E-02, .198254E+00, .401749E-02, .650080E-01, .650080E-01,
- & .466572E-02, .466647E-02, .466647E-02, .466572E-02, .186950E+00,
- & .445856E-02, .628107E-01, .628107E-01, .496948E-02, .497027E-02,
- & .497027E-02, .496948E-02, .173701E+00, .478517E-02, .604878E-01/
- DATA (DL(K),K= 2466, 2550) /
- & .604878E-01, .517094E-02, .517175E-02, .517175E-02, .517094E-02,
- & .159263E+00, .500709E-02, .580665E-01, .580665E-01, .528116E-02,
- & .528199E-02, .528199E-02, .528116E-02, .144287E+00, .513562E-02,
- & .555730E-01, .555730E-01, .531181E-02, .531265E-02, .531265E-02,
- & .531181E-02, .129304E+00, .518264E-02, .530325E-01, .530325E-01,
- & .527468E-02, .527550E-02, .527550E-02, .527468E-02, .114731E+00,
- & .516012E-02, .504682E-01, .504682E-01, .518116E-02, .518198E-02,
- & .518198E-02, .518116E-02, .100877E+00, .507964E-02, .479014E-01,
- & .479014E-01, .504198E-02, .504278E-02, .504278E-02, .504198E-02,
- & .879578E-01, .495209E-02, .453511E-01, .453511E-01, .486695E-02,
- & .486772E-02, .486772E-02, .486695E-02, .761077E-01, .478741E-02,
- & .428340E-01, .428340E-01, .466486E-02, .466560E-02, .466560E-02,
- & .466486E-02, .653932E-01, .459453E-02, .403645E-01, .403645E-01,
- & .444342E-02, .444413E-02, .444413E-02, .444342E-02, .558281E-01,
- & .438128E-02, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00/
- DATA (DL(K),K= 2551, 2635) /
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .752337E-01, .752337E-01, .253875E-03, .253875E-03, .253875E-03,
- & .253875E-03, .201902E+00,-.159920E-17, .736752E-01, .736752E-01,
- & .121909E-02, .121925E-02, .121925E-02, .121909E-02, .210465E+00,
- & .994282E-03, .718865E-01, .718865E-01, .207747E-02, .207776E-02,
- & .207776E-02, .207747E-02, .212997E+00, .187854E-02, .698746E-01,
- & .698746E-01, .280521E-02, .280560E-02, .280560E-02, .280521E-02,
- & .209895E+00, .262933E-02, .676629E-01, .676629E-01, .340063E-02,
- & .340109E-02, .340109E-02, .340063E-02, .202191E+00, .324527E-02,
- & .652775E-01, .652775E-01, .386588E-02, .386641E-02, .386641E-02,
- & .386588E-02, .190971E+00, .372876E-02, .627483E-01, .627483E-01,
- & .420910E-02, .420967E-02, .420967E-02, .420910E-02, .177278E+00,
- & .408818E-02, .601066E-01, .601066E-01, .444148E-02, .444208E-02,
- & .444208E-02, .444148E-02, .162071E+00, .433493E-02, .573831E-01,
- & .573831E-01, .457564E-02, .457625E-02, .457625E-02, .457564E-02,
- & .146148E+00, .448183E-02, .546072E-01, .546072E-01, .462506E-02/
- DATA (DL(K),K= 2636, 2720) /
- & .462567E-02, .462567E-02, .462506E-02, .130166E+00, .454252E-02,
- & .518065E-01, .518065E-01, .460307E-02, .460368E-02, .460368E-02,
- & .460307E-02, .114632E+00, .453052E-02, .490062E-01, .490062E-01,
- & .452252E-02, .452312E-02, .452312E-02, .452252E-02, .999175E-01,
- & .445880E-02, .462287E-01, .462287E-01, .439529E-02, .439588E-02,
- & .439588E-02, .439529E-02, .862750E-01, .433936E-02, .434937E-01,
- & .434937E-01, .423211E-02, .423268E-02, .423268E-02, .423211E-02,
- & .738542E-01, .418306E-02, .408180E-01, .408180E-01, .404245E-02,
- & .404299E-02, .404299E-02, .404245E-02, .627228E-01, .399946E-02,
- & .382157E-01, .382157E-01, .383446E-02, .383498E-02, .383498E-02,
- & .383446E-02, .528847E-01, .379682E-02, .356980E-01, .356980E-01,
- & .361508E-02, .361557E-02, .361557E-02, .361508E-02, .442963E-01,
- & .358213E-02, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00/
- DATA (DL(K),K= 2721, 2805) /
- & .756149E-01, .756149E-01, .148956E-03, .148956E-03, .148956E-03,
- & .148956E-03, .210410E+00,-.149078E-18, .734321E-01, .734321E-01,
- & .109779E-02, .109791E-02, .109791E-02, .109779E-02, .216444E+00,
- & .967243E-03, .710369E-01, .710369E-01, .191860E-02, .191882E-02,
- & .191882E-02, .191860E-02, .215992E+00, .180426E-02, .684452E-01,
- & .684452E-01, .259230E-02, .259259E-02, .259259E-02, .259230E-02,
- & .209697E+00, .249224E-02, .656884E-01, .656884E-01, .312270E-02,
- & .312305E-02, .312305E-02, .312270E-02, .198844E+00, .303522E-02,
- & .627994E-01, .627994E-01, .351747E-02, .351786E-02, .351786E-02,
- & .351747E-02, .184740E+00, .344105E-02, .598138E-01, .598138E-01,
- & .378940E-02, .378981E-02, .378981E-02, .378940E-02, .168578E+00,
- & .372269E-02, .567666E-01, .567666E-01, .395362E-02, .395405E-02,
- & .395405E-02, .395362E-02, .151409E+00, .389544E-02, .536907E-01,
- & .536907E-01, .402569E-02, .402613E-02, .402613E-02, .402569E-02,
- & .134065E+00, .397499E-02, .506163E-01, .506163E-01, .402117E-02,
- & .402161E-02, .402161E-02, .402117E-02, .117191E+00, .397702E-02,
- & .475706E-01, .475706E-01, .395467E-02, .395511E-02, .395511E-02/
- DATA (DL(K),K= 2806, 2890) /
- & .395467E-02, .101250E+00, .391626E-02, .445771E-01, .445771E-01,
- & .383961E-02, .384003E-02, .384003E-02, .383961E-02, .865500E-01,
- & .380621E-02, .416559E-01, .416559E-01, .368789E-02, .368830E-02,
- & .368830E-02, .368789E-02, .732657E-01, .365888E-02, .388235E-01,
- & .388235E-01, .350985E-02, .351025E-02, .351025E-02, .350985E-02,
- & .614686E-01, .348466E-02, .360931E-01, .360931E-01, .331425E-02,
- & .331462E-02, .331462E-02, .331425E-02, .511511E-01, .329240E-02,
- & .334751E-01, .334751E-01, .310835E-02, .310870E-02, .310870E-02,
- & .310835E-02, .422485E-01, .308941E-02, .309768E-01, .309768E-01,
- & .289805E-02, .289838E-02, .289838E-02, .289805E-02, .346590E-01,
- & .288164E-02, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .752796E-01, .752796E-01, .816906E-04, .816906E-04, .816906E-04,
- & .816906E-04, .221322E+00, .298156E-18, .724376E-01, .724376E-01/
- DATA (DL(K),K= 2891, 2975) /
- & .100884E-02, .100894E-02, .100894E-02, .100884E-02, .224569E+00,
- & .938046E-03, .694166E-01, .694166E-01, .178592E-02, .178609E-02,
- & .178609E-02, .178592E-02, .220745E+00, .172460E-02, .662414E-01,
- & .662414E-01, .240001E-02, .240024E-02, .240024E-02, .240001E-02,
- & .210839E+00, .234694E-02, .629511E-01, .629511E-01, .286144E-02,
- & .286171E-02, .286171E-02, .286144E-02, .196463E+00, .281556E-02,
- & .595849E-01, .595849E-01, .318412E-02, .318441E-02, .318441E-02,
- & .318412E-02, .179204E+00, .314448E-02, .561822E-01, .561822E-01,
- & .338573E-02, .338605E-02, .338605E-02, .338573E-02, .160420E+00,
- & .335151E-02, .527801E-01, .527801E-01, .348530E-02, .348562E-02,
- & .348562E-02, .348530E-02, .141254E+00, .345578E-02, .494117E-01,
- & .494117E-01, .350098E-02, .350131E-02, .350131E-02, .350098E-02,
- & .122547E+00, .347555E-02, .461061E-01, .461061E-01, .344994E-02,
- & .345026E-02, .345026E-02, .344994E-02, .104908E+00, .342804E-02,
- & .428876E-01, .428876E-01, .334753E-02, .334784E-02, .334784E-02,
- & .334753E-02, .887264E-01, .332868E-02, .397764E-01, .397764E-01,
- & .320718E-02, .320748E-02, .320748E-02, .320718E-02, .742160E-01/
- DATA (DL(K),K= 2976, 3060) /
- & .319097E-02, .367882E-01, .367882E-01, .304033E-02, .304062E-02,
- & .304062E-02, .304033E-02, .614556E-01, .302641E-02, .339348E-01,
- & .339348E-01, .285650E-02, .285677E-02, .285677E-02, .285650E-02,
- & .504214E-01, .284454E-02, .312247E-01, .312247E-01, .266337E-02,
- & .266363E-02, .266363E-02, .266337E-02, .410205E-01, .265311E-02,
- & .286629E-01, .286629E-01, .246705E-02, .246730E-02, .246730E-02,
- & .246705E-02, .331166E-01, .245826E-02, .262521E-01, .262521E-01,
- & .227226E-02, .227248E-02, .227248E-02, .227226E-02, .265498E-01,
- & .226473E-02, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .741335E-01, .741335E-01, .409835E-04, .409835E-04, .409835E-04,
- & .409835E-04, .235495E+00,-.158395E-17, .705990E-01, .705990E-01,
- & .938808E-03, .938883E-03, .938883E-03, .938808E-03, .235413E+00,
- & .903728E-03, .669383E-01, .669383E-01, .166382E-02, .166395E-02/
- DATA (DL(K),K= 3061, 3145) /
- & .166395E-02, .166382E-02, .227523E+00, .163381E-02, .631853E-01,
- & .631853E-01, .221128E-02, .221145E-02, .221145E-02, .221128E-02,
- & .213316E+00, .218562E-02, .593855E-01, .593855E-01, .259911E-02,
- & .259931E-02, .259931E-02, .259911E-02, .194833E+00, .257720E-02,
- & .555825E-01, .555825E-01, .284819E-02, .284841E-02, .284841E-02,
- & .284819E-02, .174012E+00, .282950E-02, .518174E-01, .518174E-01,
- & .298117E-02, .298140E-02, .298140E-02, .298117E-02, .152385E+00,
- & .296523E-02, .481268E-01, .481268E-01, .302067E-02, .302090E-02,
- & .302090E-02, .302067E-02, .131168E+00, .300708E-02, .445413E-01,
- & .445413E-01, .298689E-02, .298712E-02, .298712E-02, .298689E-02,
- & .111177E+00, .297532E-02, .410859E-01, .410859E-01, .289793E-02,
- & .289815E-02, .289815E-02, .289793E-02, .929352E-01, .288809E-02,
- & .377798E-01, .377798E-01, .276920E-02, .276941E-02, .276941E-02,
- & .276920E-02, .767178E-01, .276084E-02, .346372E-01, .346372E-01,
- & .261353E-02, .261373E-02, .261373E-02, .261353E-02, .626102E-01,
- & .260643E-02, .316676E-01, .316676E-01, .244134E-02, .244154E-02,
- & .244154E-02, .244134E-02, .505665E-01, .243531E-02, .288765E-01/
- DATA (DL(K),K= 3146, 3230) /
- & .288765E-01, .226087E-02, .226105E-02, .226105E-02, .226087E-02,
- & .404527E-01, .225576E-02, .262660E-01, .262660E-01, .207845E-02,
- & .207862E-02, .207862E-02, .207845E-02, .320820E-01, .207412E-02,
- & .238351E-01, .238351E-01, .189881E-02, .189897E-02, .189897E-02,
- & .189881E-02, .252422E-01, .189514E-02, .215808E-01, .215808E-01,
- & .172536E-02, .172551E-02, .172551E-02, .172536E-02, .197186E-01,
- & .172225E-02, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .720339E-01, .720339E-01, .181946E-04, .181946E-04, .181946E-04,
- & .181946E-04, .254393E+00, .469256E-18, .677768E-01, .677768E-01,
- & .875835E-03, .875888E-03, .875888E-03, .875835E-03, .249966E+00,
- & .860480E-03, .634725E-01, .634725E-01, .153792E-02, .153801E-02,
- & .153801E-02, .153792E-02, .236824E+00, .152496E-02, .591619E-01,
- & .591619E-01, .201036E-02, .201048E-02, .201048E-02, .201036E-02/
- DATA (DL(K),K= 3231, 3315) /
- & .217211E+00, .199944E-02, .548948E-01, .548948E-01, .231978E-02,
- & .231992E-02, .231992E-02, .231978E-02, .193739E+00, .231058E-02,
- & .507162E-01, .507162E-01, .249460E-02, .249475E-02, .249475E-02,
- & .249460E-02, .168773E+00, .248686E-02, .466653E-01, .466653E-01,
- & .256217E-02, .256232E-02, .256232E-02, .256217E-02, .144012E+00,
- & .255566E-02, .427744E-01, .427744E-01, .254804E-02, .254820E-02,
- & .254820E-02, .254804E-02, .120695E+00, .254258E-02, .390676E-01,
- & .390676E-01, .247365E-02, .247380E-02, .247380E-02, .247365E-02,
- & .995452E-01, .246906E-02, .355626E-01, .355626E-01, .235710E-02,
- & .235725E-02, .235725E-02, .235710E-02, .809281E-01, .235325E-02,
- & .322703E-01, .322703E-01, .221303E-02, .221317E-02, .221317E-02,
- & .221303E-02, .649429E-01, .220980E-02, .291963E-01, .291963E-01,
- & .205294E-02, .205307E-02, .205307E-02, .205294E-02, .515039E-01,
- & .205024E-02, .263419E-01, .263419E-01, .188569E-02, .188581E-02,
- & .188581E-02, .188569E-02, .404102E-01, .188343E-02, .237044E-01,
- & .237044E-01, .171783E-02, .171795E-02, .171795E-02, .171783E-02,
- & .313959E-01, .171594E-02, .212782E-01, .212782E-01, .155409E-02/
- DATA (DL(K),K= 3316, 3400) /
- & .155419E-02, .155419E-02, .155409E-02, .241750E-01, .155251E-02,
- & .190555E-01, .190555E-01, .139767E-02, .139777E-02, .139777E-02,
- & .139767E-02, .184646E-01, .139635E-02, .170270E-01, .170270E-01,
- & .125065E-02, .125074E-02, .125074E-02, .125065E-02, .139996E-01,
- & .124955E-02, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .687547E-01, .687547E-01, .676181E-05, .676181E-05, .676181E-05,
- & .676181E-05, .280728E+00,-.145838E-17, .637529E-01, .637529E-01,
- & .808781E-03, .808818E-03, .808818E-03, .808781E-03, .270033E+00,
- & .803169E-03, .588180E-01, .588180E-01, .139388E-02, .139394E-02,
- & .139394E-02, .139388E-02, .249568E+00, .138922E-02, .539945E-01,
- & .539945E-01, .178168E-02, .178176E-02, .178176E-02, .178168E-02,
- & .222743E+00, .177782E-02, .493317E-01, .493317E-01, .200838E-02,
- & .200848E-02, .200848E-02, .200838E-02, .192919E+00, .200519E-02/
- DATA (DL(K),K= 3401, 3485) /
- & .448709E-01, .448709E-01, .211009E-02, .211019E-02, .211019E-02,
- & .211009E-02, .162975E+00, .210745E-02, .406433E-01, .406433E-01,
- & .211805E-02, .211815E-02, .211815E-02, .211805E-02, .134716E+00,
- & .211586E-02, .366716E-01, .366716E-01, .205957E-02, .205968E-02,
- & .205968E-02, .205957E-02, .109289E+00, .205776E-02, .329687E-01,
- & .329687E-01, .195606E-02, .195616E-02, .195616E-02, .195606E-02,
- & .871955E-01, .195457E-02, .295400E-01, .295400E-01, .182447E-02,
- & .182456E-02, .182456E-02, .182447E-02, .685399E-01, .182323E-02,
- & .263849E-01, .263849E-01, .167765E-02, .167774E-02, .167774E-02,
- & .167765E-02, .531615E-01, .167663E-02, .234975E-01, .234975E-01,
- & .152505E-02, .152514E-02, .152514E-02, .152505E-02, .407334E-01,
- & .152421E-02, .208683E-01, .208683E-01, .137342E-02, .137350E-02,
- & .137350E-02, .137342E-02, .308674E-01, .137273E-02, .184852E-01,
- & .184852E-01, .122732E-02, .122739E-02, .122739E-02, .122732E-02,
- & .231578E-01, .122675E-02, .163340E-01, .163340E-01, .108968E-02,
- & .108975E-02, .108975E-02, .108968E-02, .172149E-01, .108921E-02,
- & .143996E-01, .143996E-01, .962198E-03, .962260E-03, .962260E-03/
- DATA (DL(K),K= 3486, 3570) /
- & .962198E-03, .126908E-01, .961815E-03, .126661E-01, .126661E-01,
- & .845675E-03, .845732E-03, .845732E-03, .845675E-03, .928555E-02,
- & .845361E-03, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .639050E-01, .639050E-01, .189600E-05, .189600E-05, .189600E-05,
- & .189600E-05, .320203E+00, .545701E-18, .581555E-01, .581555E-01,
- & .725861E-03, .725886E-03, .725886E-03, .725861E-03, .299305E+00,
- & .724320E-03, .526376E-01, .526376E-01, .121568E-02, .121572E-02,
- & .121572E-02, .121568E-02, .267591E+00, .121442E-02, .473911E-01,
- & .473911E-01, .150820E-02, .150825E-02, .150825E-02, .150820E-02,
- & .230364E+00, .150718E-02, .424558E-01, .424558E-01, .164949E-02,
- & .164955E-02, .164955E-02, .164949E-02, .191972E+00, .164867E-02,
- & .378600E-01, .378600E-01, .168256E-02, .168262E-02, .168262E-02,
- & .168256E-02, .155818E+00, .168189E-02, .336181E-01, .336181E-01/
- DATA (DL(K),K= 3571, 3655) /
- & .164080E-02, .164086E-02, .164086E-02, .164080E-02, .123609E+00,
- & .164026E-02, .297349E-01, .297349E-01, .155136E-02, .155142E-02,
- & .155142E-02, .155136E-02, .961680E-01, .155092E-02, .262052E-01,
- & .262052E-01, .143382E-02, .143388E-02, .143388E-02, .143382E-02,
- & .735522E-01, .143346E-02, .230171E-01, .230171E-01, .130247E-02,
- & .130253E-02, .130253E-02, .130247E-02, .553916E-01, .130218E-02,
- & .201539E-01, .201539E-01, .116733E-02, .116739E-02, .116739E-02,
- & .116733E-02, .411453E-01, .116710E-02, .175955E-01, .175955E-01,
- & .103505E-02, .103510E-02, .103510E-02, .103505E-02, .301858E-01,
- & .103486E-02, .153199E-01, .153199E-01, .909828E-03, .909880E-03,
- & .909880E-03, .909828E-03, .218957E-01, .909677E-03, .133043E-01,
- & .133043E-01, .794097E-03, .794146E-03, .794146E-03, .794097E-03,
- & .157204E-01, .793976E-03, .115259E-01, .115259E-01, .689012E-03,
- & .689057E-03, .689057E-03, .689012E-03, .111816E-01, .688913E-03,
- & .996208E-02, .996208E-02, .594880E-03, .594922E-03, .594922E-03,
- & .594880E-03, .788559E-02, .594801E-03, .859151E-02, .859151E-02,
- & .511455E-03, .511493E-03, .511493E-03, .511455E-03, .551865E-02/
- DATA (DL(K),K= 3656, 3740) /
- & .511392E-03, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .567030E-01, .567030E-01, .317692E-06, .317692E-06, .317692E-06,
- & .317692E-06, .387655E+00,-.196551E-18, .502560E-01, .502560E-01,
- & .611827E-03, .611838E-03, .611838E-03, .611827E-03, .346975E+00,
- & .611576E-03, .442838E-01, .442838E-01, .981907E-03, .981929E-03,
- & .981929E-03, .981907E-03, .295290E+00, .981708E-03, .388018E-01,
- & .388018E-01, .116826E-02, .116829E-02, .116829E-02, .116826E-02,
- & .241157E+00, .116810E-02, .338227E-01, .338227E-01, .122537E-02,
- & .122541E-02, .122541E-02, .122537E-02, .190062E+00, .122525E-02,
- & .293442E-01, .293442E-01, .120047E-02, .120052E-02, .120052E-02,
- & .120047E-02, .145706E+00, .120037E-02, .253494E-01, .253494E-01,
- & .112580E-02, .112585E-02, .112585E-02, .112580E-02, .109110E+00,
- & .112572E-02, .218132E-01, .218132E-01, .102498E-02, .102503E-02/
- DATA (DL(K),K= 3741, 3825) /
- & .102503E-02, .102498E-02, .800661E-01, .102492E-02, .187030E-01,
- & .187030E-01, .913395E-03, .913450E-03, .913450E-03, .913395E-03,
- & .577342E-01, .913348E-03, .159833E-01, .159833E-01, .800935E-03,
- & .800990E-03, .800990E-03, .800935E-03, .409782E-01, .800898E-03,
- & .136172E-01, .136172E-01, .693698E-03, .693751E-03, .693751E-03,
- & .693698E-03, .286780E-01, .693669E-03, .115681E-01, .115681E-01,
- & .595013E-03, .595064E-03, .595064E-03, .595013E-03, .198197E-01,
- & .594990E-03, .980105E-02, .980105E-02, .506423E-03, .506471E-03,
- & .506471E-03, .506423E-03, .135410E-01, .506405E-03, .828286E-02,
- & .828286E-02, .428323E-03, .428368E-03, .428368E-03, .428323E-03,
- & .915498E-02, .428309E-03, .698303E-02, .698303E-02, .360397E-03,
- & .360439E-03, .360439E-03, .360397E-03, .613133E-02, .360386E-03,
- & .587373E-02, .587373E-02, .301934E-03, .301973E-03, .301973E-03,
- & .301934E-03, .407092E-02, .301925E-03, .492985E-02, .492985E-02,
- & .252029E-03, .252064E-03, .252064E-03, .252029E-03, .268179E-02,
- & .252022E-03, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00/
- DATA (DL(K),K= 3826, 3910) /
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .450567E-01, .450567E-01, .151200E-07, .151200E-07, .151200E-07,
- & .151200E-07, .542258E+00,-.767310E-18, .381624E-01, .381624E-01,
- & .438685E-03, .438751E-03, .438751E-03, .438685E-03, .447480E+00,
- & .438674E-03, .321250E-01, .321250E-01, .653465E-03, .653574E-03,
- & .653574E-03, .653465E-03, .347952E+00, .653456E-03, .268827E-01,
- & .268827E-01, .724735E-03, .724868E-03, .724868E-03, .724735E-03,
- & .258636E+00, .724728E-03, .223751E-01, .223751E-01, .709421E-03,
- & .709567E-03, .709567E-03, .709421E-03, .185088E+00, .709417E-03,
- & .185359E-01, .185359E-01, .650478E-03, .650626E-03, .650626E-03,
- & .650478E-03, .128686E+00, .650474E-03, .152906E-01, .152906E-01,
- & .572423E-03, .572567E-03, .572567E-03, .572423E-03, .873875E-01,
- & .572420E-03, .125654E-01, .125654E-01, .490165E-03, .490302E-03,
- & .490302E-03, .490165E-03, .581141E-01, .490163E-03, .102901E-01,
- & .102901E-01, .411740E-03, .411866E-03, .411866E-03, .411740E-03/
- DATA (DL(K),K= 3911, 3995) /
- & .379596E-01, .411738E-03, .839975E-02, .839975E-02, .340986E-03,
- & .341101E-03, .341101E-03, .340986E-03, .244073E-01, .340985E-03,
- & .683634E-02, .683634E-02, .279417E-03, .279520E-03, .279520E-03,
- & .279417E-03, .154717E-01, .279416E-03, .554846E-02, .554846E-02,
- & .227114E-03, .227204E-03, .227204E-03, .227114E-03, .968450E-02,
- & .227113E-03, .449143E-02, .449143E-02, .183425E-03, .183504E-03,
- & .183504E-03, .183425E-03, .599306E-02, .183425E-03, .362676E-02,
- & .362676E-02, .147387E-03, .147455E-03, .147455E-03, .147387E-03,
- & .366977E-02, .147387E-03, .292164E-02, .292164E-02, .117936E-03,
- & .117995E-03, .117995E-03, .117936E-03, .222583E-02, .117936E-03,
- & .234830E-02, .234830E-02, .940414E-04, .940914E-04, .940914E-04,
- & .940414E-04, .133844E-02, .940412E-04, .188339E-02, .188339E-02,
- & .747651E-04, .748074E-04, .748074E-04, .747651E-04, .798451E-03,
- & .747649E-04, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00,
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00/
- DATA (DL(K),K= 3996, 4000) /
- & .000000E+00, .000000E+00, .000000E+00, .000000E+00, .000000E+00/
-
- DO 10 I=1,7
- QQ(I) = 0.
- 10 CONTINUE
- IF(X.GT.0.9985) RETURN
-
- IS = S/DELTA+1
- IS = MIN(IS,19)
- IS1 = IS+1
- DO 20 I=1,7
- IF(I.EQ.3.AND.X.GT.0.95) GOTO 19
- IF(I.EQ.8.AND.X.GT.0.95) GOTO 19
- DO 30 L=1,25
- F1(L)=GF(I,IS,L)
- F2(L)=GF(I,IS1,L)
- 30 CONTINUE
- S1=(IS-1)*DELTA
- S2=S1+DELTA
- A1 = PHO_CKMTFV(X,F1)
- A2 = PHO_CKMTFV(X,F2)
- QQ(I)=A1*(S2-S)/DELTA+A2*(S-S1)/DELTA
- 19 CONTINUE
- 20 CONTINUE
-
- END
-
-CDECK ID>, PHO_CKMTFV
- REAL FUNCTION PHO_CKMTFV(X,FVL)
-C**********************************************************************
-C
-C LOGARITHMIC INTERPOLATOR - WATCH OUT FOR NEGATIVE
-C FUNCTIONS AND/OR X VALUES OUTSIDE THE RANGE 0 TO 1.
-C NOTE: DIMENSION OF FVL IS OVERWRITTEN BY VALUE USED
-C IN MAIN ROUTINE.
-C
-C**********************************************************************
- SAVE
-
- DIMENSION FVL(25),XGRID(25)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- DATA NX,XGRID/25,.001,.002,.004,.008,.016,.032,.064,.1,.15,
- *.2,.25,.3,.35,.4,.45,.5,.55,.6,.65,.7,.75,.8,.85,.9,.95/
-
- PHO_CKMTFV=0.
- DO 1 I=1,NX
- IF(X.LT.XGRID(I)) GO TO 2
- 1 CONTINUE
- 2 I=I-1
- IF(I.EQ.0) THEN
- I=I+1
- ELSE IF(I.GT.23) THEN
- I=23
- ENDIF
- J=I+1
- K=J+1
- AXI=LOG(XGRID(I))
- BXI=LOG(1.-XGRID(I))
- AXJ=LOG(XGRID(J))
- BXJ=LOG(1.-XGRID(J))
- AXK=LOG(XGRID(K))
- BXK=LOG(1.-XGRID(K))
- FI=LOG(ABS(FVL(I)) +1.E-15)
- FJ=LOG(ABS(FVL(J)) +1.E-16)
- FK=LOG(ABS(FVL(K)) +1.E-17)
- DET=AXI*(BXJ-BXK)+AXJ*(BXK-BXI)+AXK*(BXI-BXJ)
- ALOGA=(FI*(AXJ*BXK-AXK*BXJ)+FJ*(AXK*BXI-AXI*BXK)+FK*(AXI*BXJ-AXJ*
- $ BXI))/DET
- ALPHA=(FI*(BXJ-BXK)+FJ*(BXK-BXI)+FK*(BXI-BXJ))/DET
- BETA=(FI*(AXK-AXJ)+FJ*(AXI-AXK)+FK*(AXJ-AXI))/DET
- IF(ABS(ALPHA).GT.99..OR.ABS(BETA).GT.99..OR.ABS(ALOGA).GT.99.)
- 1RETURN
-C IF(ALPHA.GT.50..OR.BETA.GT.50.) THEN
-C WRITE(LO,2001) X,FVL
-C 2001 FORMAT(8E12.4)
-C WRITE(LO,2001) ALPHA,BETA,ALOGA,DET
-C ENDIF
- PHO_CKMTFV=EXP(ALOGA)*X**ALPHA*(1.-X)**BETA
-
- END
-
-CDECK ID>, PHO_SASGAM
-C***********************************************************************
-C...SaSgam version 2 - parton distributions of the photon
-C...by Gerhard A. Schuler and Torbjorn Sjostrand
-C...For further information see Z. Phys. C68 (1995) 607
-C...and Phys. Lett. B376 (1996) 193.
-
-C...18 January 1996: original code.
-C...22 July 1996: calculation of BETA moved in SASBEH.
-
-C!!!Note that one further call parameter - IP2 - has been added
-C!!!to the SASGAM argument list compared with version 1.
-
-C...The user should only need to call the SASGAM routine,
-C...which in turn calls the auxiliary routines SASVMD, SASANO,
-C...SASBEH and SASDIR. The package is self-contained.
-
-C...One particular aspect of these parametrizations is that F2 for
-C...the photon is not obtained just as the charge-squared-weighted
-C...sum of quark distributions, but differ in the treatment of
-C...heavy flavours (in F2 the DIS relation W2 = Q2*(1-x)/x restricts
-C...the kinematics range of heavy-flavour production, but the same
-C...kinematics is not relevant e.g. for jet production) and, for the
-C...'MSbar' fits, in the addition of a Cgamma term related to the
-C...separation of direct processes. Schematically:
-C...PDF = VMD (rho, omega, phi) + anomalous (d, u, s, c, b).
-C...F2 = VMD (rho, omega, phi) + anomalous (d, u, s) +
-C... Bethe-Heitler (c, b) (+ Cgamma (d, u, s)).
-C...The J/psi and Upsilon states have not been included in the VMD sum,
-C...but low c and b masses in the other components should compensate
-C...for this in a duality sense.
-
-C...The calling sequence is the following:
-C CALL SASGAM(ISET,X,Q2,P2,IP2,F2GM,XPDFGM)
-C...with the following declaration statement:
-C DIMENSION XPDFGM(-6:6)
-C...and, optionally, further information in:
-C COMMON/SASCOM/XPVMD(-6:6),XPANL(-6:6),XPANH(-6:6),XPBEH(-6:6),
-C &XPDIR(-6:6)
-C COMMON/SASVAL/VXPVMD(-6:6),VXPANL(-6:6),VXPANH(-6:6),VXPDGM(-6:6)
-C...Input: ISET = 1 : SaS set 1D ('DIS', Q0 = 0.6 GeV)
-C = 2 : SaS set 1M ('MSbar', Q0 = 0.6 GeV)
-C = 3 : SaS set 2D ('DIS', Q0 = 2 GeV)
-C = 4 : SaS set 2M ('MSbar', Q0 = 2 GeV)
-C X : x value.
-C Q2 : Q2 value.
-C P2 : P2 value; should be = 0. for an on-shell photon.
-C IP2 : scheme used to evaluate off-shell anomalous component.
-C = 0 : recommended default, see = 7.
-C = 1 : dipole dampening by integration; very time-consuming.
-C = 2 : P_0^2 = max( Q_0^2, P^2 )
-C = 3 : P_0^2 = Q_0^2 + P^2.
-C = 4 : P_{eff} that preserves momentum sum.
-C = 5 : P_{int} that preserves momentum and average
-C evolution range.
-C = 6 : P_{eff}, matched to P_0 in P2 -> Q2 limit.
-C = 7 : P_{eff}, matched to P_0 in P2 -> Q2 limit.
-C...Output: F2GM : F2 value of the photon (including factors of alpha_em).
-C XPFDGM : x times parton distribution functions of the photon,
-C with elements 0 = g, 1 = d, 2 = u, 3 = s, 4 = c, 5 = b,
-C 6 = t (always empty!), - for antiquarks (result is same).
-C...The breakdown by component is stored in the commonblock SASCOM,
-C with elements as above.
-C XPVMD : rho, omega, phi VMD part only of output.
-C XPANL : d, u, s anomalous part only of output.
-C XPANH : c, b anomalous part only of output.
-C XPBEH : c, b Bethe-Heitler part only of output.
-C XPDIR : Cgamma (direct contribution) part only of output.
-C...The above arrays do not distinguish valence and sea contributions,
-C...although this information is available internally. The additional
-C...commonblock SASVAL provides the valence part only of the above
-C...distributions. Array names VXPVMD, VXPANL and VXPANH correspond
-C...to XPVMD, XPANL and XPANH, while XPBEH and XPDIR are valence only
-C...and therefore not given doubly. VXPDGM gives the sum of valence
-C...parts, and so matches XPDFGM. The difference, i.e. XPVMD-VXPVMD
-C...and so on, gives the sea part only.
-C***********************************************************************
-
- SUBROUTINE PHO_SASGAM(ISET,X,Q2,P2,IP2,F2GM,XPDFGM)
-C...Purpose: to construct the F2 and parton distributions of the photon
-C...by summing homogeneous (VMD) and inhomogeneous (anomalous) terms.
-C...For F2, c and b are included by the Bethe-Heitler formula;
-C...in the 'MSbar' scheme additionally a Cgamma term is added.
- SAVE
- DIMENSION XPDFGM(-6:6)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- COMMON/SASCOM/XPVMD(-6:6),XPANL(-6:6),XPANH(-6:6),XPBEH(-6:6),
- &XPDIR(-6:6)
- COMMON/SASVAL/VXPVMD(-6:6),VXPANL(-6:6),VXPANH(-6:6),VXPDGM(-6:6)
- SAVE /SASCOM/,/SASVAL/
-
-C...Temporary array.
- DIMENSION XPGA(-6:6), VXPGA(-6:6)
-C...Charm and bottom masses (low to compensate for J/psi etc.).
- DATA PMC/1.3/, PMB/4.6/
-C...alpha_em and alpha_em/(2*pi).
- DATA AEM/0.007297/, AEM2PI/0.0011614/
-C...Lambda value for 4 flavours.
- DATA ALAM/0.20/
-C...Mixture u/(u+d), = 0.5 for incoherent and = 0.8 for coherent sum.
- DATA FRACU/0.8/
-C...VMD couplings f_V**2/(4*pi).
- DATA FRHO/2.20/, FOMEGA/23.6/, FPHI/18.4/
-C...Masses for rho (=omega) and phi.
- DATA PMRHO/0.770/, PMPHI/1.020/
-C...Number of points in integration for IP2=1.
- DATA NSTEP/100/
-
-C...Reset output.
- F2GM=0.
- DO 100 KFL=-6,6
- XPDFGM(KFL)=0.
- XPVMD(KFL)=0.
- XPANL(KFL)=0.
- XPANH(KFL)=0.
- XPBEH(KFL)=0.
- XPDIR(KFL)=0.
- VXPVMD(KFL)=0.
- VXPANL(KFL)=0.
- VXPANH(KFL)=0.
- VXPDGM(KFL)=0.
- 100 CONTINUE
-
-C...Check that input sensible.
- IF(ISET.LE.0.OR.ISET.GE.5) THEN
- WRITE(LO,*) ' FATAL ERROR: SaSgam called for unknown set'
- WRITE(LO,*) ' ISET = ',ISET
- STOP
- ENDIF
- IF(X.LE.0..OR.X.GT.1.) THEN
- WRITE(LO,*) ' FATAL ERROR: SaSgam called for unphysical x'
- WRITE(LO,*) ' X = ',X
- STOP
- ENDIF
-
-C...Set Q0 cut-off parameter as function of set used.
- IF(ISET.LE.2) THEN
- Q0=0.6
- ELSE
- Q0=2.
- ENDIF
- Q02=Q0**2
-
-C...Scale choice for off-shell photon; common factors.
- Q2A=Q2
- FACNOR=1.
- IF(IP2.EQ.1) THEN
- P2MX=P2+Q02
- Q2A=Q2+P2*Q02/MAX(Q02,Q2)
- FACNOR=LOG(Q2/Q02)/NSTEP
- ELSEIF(IP2.EQ.2) THEN
- P2MX=MAX(P2,Q02)
- ELSEIF(IP2.EQ.3) THEN
- P2MX=P2+Q02
- Q2A=Q2+P2*Q02/MAX(Q02,Q2)
- ELSEIF(IP2.EQ.4) THEN
- P2MX=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
- & ((Q2+P2)*(Q02+P2)))
- ELSEIF(IP2.EQ.5) THEN
- P2MXA=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
- & ((Q2+P2)*(Q02+P2)))
- P2MX=Q0*SQRT(P2MXA)
- FACNOR=LOG(Q2/P2MXA)/LOG(Q2/P2MX)
- ELSEIF(IP2.EQ.6) THEN
- P2MX=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
- & ((Q2+P2)*(Q02+P2)))
- P2MX=MAX(0.,1.-P2/Q2)*P2MX+MIN(1.,P2/Q2)*MAX(P2,Q02)
- ELSE
- P2MXA=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
- & ((Q2+P2)*(Q02+P2)))
- P2MX=Q0*SQRT(P2MXA)
- P2MXB=P2MX
- P2MX=MAX(0.,1.-P2/Q2)*P2MX+MIN(1.,P2/Q2)*MAX(P2,Q02)
- P2MXB=MAX(0.,1.-P2/Q2)*P2MXB+MIN(1.,P2/Q2)*P2MXA
- FACNOR=LOG(Q2/P2MXA)/LOG(Q2/P2MXB)
- ENDIF
-
-C...Call VMD parametrization for d quark and use to give rho, omega,
-C...phi. Note dipole dampening for off-shell photon.
- CALL PHO_SASVMD(ISET,1,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
- XFVAL=VXPGA(1)
- XPGA(1)=XPGA(2)
- XPGA(-1)=XPGA(-2)
- FACUD=AEM*(1./FRHO+1./FOMEGA)*(PMRHO**2/(PMRHO**2+P2))**2
- FACS=AEM*(1./FPHI)*(PMPHI**2/(PMPHI**2+P2))**2
- DO 110 KFL=-5,5
- XPVMD(KFL)=(FACUD+FACS)*XPGA(KFL)
- 110 CONTINUE
- XPVMD(1)=XPVMD(1)+(1.-FRACU)*FACUD*XFVAL
- XPVMD(2)=XPVMD(2)+FRACU*FACUD*XFVAL
- XPVMD(3)=XPVMD(3)+FACS*XFVAL
- XPVMD(-1)=XPVMD(-1)+(1.-FRACU)*FACUD*XFVAL
- XPVMD(-2)=XPVMD(-2)+FRACU*FACUD*XFVAL
- XPVMD(-3)=XPVMD(-3)+FACS*XFVAL
- VXPVMD(1)=(1.-FRACU)*FACUD*XFVAL
- VXPVMD(2)=FRACU*FACUD*XFVAL
- VXPVMD(3)=FACS*XFVAL
- VXPVMD(-1)=(1.-FRACU)*FACUD*XFVAL
- VXPVMD(-2)=FRACU*FACUD*XFVAL
- VXPVMD(-3)=FACS*XFVAL
-
- IF(IP2.NE.1) THEN
-C...Anomalous parametrizations for different strategies
-C...for off-shell photons; except full integration.
-
-C...Call anomalous parametrization for d + u + s.
- CALL PHO_SASANO(-3,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
- DO 120 KFL=-5,5
- XPANL(KFL)=FACNOR*XPGA(KFL)
- VXPANL(KFL)=FACNOR*VXPGA(KFL)
- 120 CONTINUE
-
-C...Call anomalous parametrization for c and b.
- CALL PHO_SASANO(4,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
- DO 130 KFL=-5,5
- XPANH(KFL)=FACNOR*XPGA(KFL)
- VXPANH(KFL)=FACNOR*VXPGA(KFL)
- 130 CONTINUE
- CALL PHO_SASANO(5,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
- DO 140 KFL=-5,5
- XPANH(KFL)=XPANH(KFL)+FACNOR*XPGA(KFL)
- VXPANH(KFL)=VXPANH(KFL)+FACNOR*VXPGA(KFL)
- 140 CONTINUE
-
- ELSE
-C...Special option: loop over flavours and integrate over k2.
- DO 170 KF=1,5
- DO 160 ISTEP=1,NSTEP
- Q2STEP=Q02*(Q2/Q02)**((ISTEP-0.5)/NSTEP)
- IF((KF.EQ.4.AND.Q2STEP.LT.PMC**2).OR.
- & (KF.EQ.5.AND.Q2STEP.LT.PMB**2)) GOTO 160
- CALL PHO_SASVMD(0,KF,X,Q2,Q2STEP,ALAM,XPGA,VXPGA)
- FACQ=AEM2PI*(Q2STEP/(Q2STEP+P2))**2*FACNOR
- IF(MOD(KF,2).EQ.0) FACQ=FACQ*(8./9.)
- IF(MOD(KF,2).EQ.1) FACQ=FACQ*(2./9.)
- DO 150 KFL=-5,5
- IF(KF.LE.3) XPANL(KFL)=XPANL(KFL)+FACQ*XPGA(KFL)
- IF(KF.GE.4) XPANH(KFL)=XPANH(KFL)+FACQ*XPGA(KFL)
- IF(KF.LE.3) VXPANL(KFL)=VXPANL(KFL)+FACQ*VXPGA(KFL)
- IF(KF.GE.4) VXPANH(KFL)=VXPANH(KFL)+FACQ*VXPGA(KFL)
- 150 CONTINUE
- 160 CONTINUE
- 170 CONTINUE
- ENDIF
-
-C...Call Bethe-Heitler term expression for charm and bottom.
- CALL PHO_SASBEH(4,X,Q2,P2,PMC**2,XPBH)
- XPBEH(4)=XPBH
- XPBEH(-4)=XPBH
- CALL PHO_SASBEH(5,X,Q2,P2,PMB**2,XPBH)
- XPBEH(5)=XPBH
- XPBEH(-5)=XPBH
-
-C...For MSbar subtraction call C^gamma term expression for d, u, s.
- IF(ISET.EQ.2.OR.ISET.EQ.4) THEN
- CALL PHO_SASDIR(X,Q2,P2,Q02,XPGA)
- DO 180 KFL=-5,5
- XPDIR(KFL)=XPGA(KFL)
- 180 CONTINUE
- ENDIF
-
-C...Store result in output array.
- DO 190 KFL=-5,5
- CHSQ=1./9.
- IF(IABS(KFL).EQ.2.OR.IABS(KFL).EQ.4) CHSQ=4./9.
- XPF2=XPVMD(KFL)+XPANL(KFL)+XPBEH(KFL)+XPDIR(KFL)
- IF(KFL.NE.0) F2GM=F2GM+CHSQ*XPF2
- XPDFGM(KFL)=XPVMD(KFL)+XPANL(KFL)+XPANH(KFL)
- VXPDGM(KFL)=VXPVMD(KFL)+VXPANL(KFL)+VXPANH(KFL)
- 190 CONTINUE
-
- RETURN
- END
-
-C*********************************************************************
-
-CDECK ID>, PHO_SASVMD
- SUBROUTINE PHO_SASVMD(ISET,KF,X,Q2,P2,ALAM,XPGA,VXPGA)
-C...Purpose: to evaluate the VMD parton distributions of a photon,
-C...evolved homogeneously from an initial scale P2 to Q2.
-C...Does not include dipole suppression factor.
-C...ISET is parton distribution set, see above;
-C...additionally ISET=0 is used for the evolution of an anomalous photon
-C...which branched at a scale P2 and then evolved homogeneously to Q2.
-C...ALAM is the 4-flavour Lambda, which is automatically converted
-C...to 3- and 5-flavour equivalents as needed.
- SAVE
- DIMENSION XPGA(-6:6), VXPGA(-6:6)
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- DATA PMC/1.3/, PMB/4.6/, AEM/0.007297/, AEM2PI/0.0011614/
-
-C...Reset output.
- DO 100 KFL=-6,6
- XPGA(KFL)=0.
- VXPGA(KFL)=0.
- 100 CONTINUE
- KFA=IABS(KF)
-
-C...Calculate Lambda; protect against unphysical Q2 and P2 input.
- ALAM3=ALAM*(PMC/ALAM)**(2./27.)
- ALAM5=ALAM*(ALAM/PMB)**(2./23.)
- P2EFF=MAX(P2,1.2*ALAM3**2)
- IF(KFA.EQ.4) P2EFF=MAX(P2EFF,PMC**2)
- IF(KFA.EQ.5) P2EFF=MAX(P2EFF,PMB**2)
- Q2EFF=MAX(Q2,P2EFF)
-
-C...Find number of flavours at lower and upper scale.
- NFP=4
- IF(P2EFF.LT.PMC**2) NFP=3
- IF(P2EFF.GT.PMB**2) NFP=5
- NFQ=4
- IF(Q2EFF.LT.PMC**2) NFQ=3
- IF(Q2EFF.GT.PMB**2) NFQ=5
-
-C...Find s as sum of 3-, 4- and 5-flavour parts.
- S=0.
- IF(NFP.EQ.3) THEN
- Q2DIV=PMC**2
- IF(NFQ.EQ.3) Q2DIV=Q2EFF
- S=S+(6./27.)*LOG(LOG(Q2DIV/ALAM3**2)/LOG(P2EFF/ALAM3**2))
- ENDIF
- IF(NFP.LE.4.AND.NFQ.GE.4) THEN
- P2DIV=P2EFF
- IF(NFP.EQ.3) P2DIV=PMC**2
- Q2DIV=Q2EFF
- IF(NFQ.EQ.5) Q2DIV=PMB**2
- S=S+(6./25.)*LOG(LOG(Q2DIV/ALAM**2)/LOG(P2DIV/ALAM**2))
- ENDIF
- IF(NFQ.EQ.5) THEN
- P2DIV=PMB**2
- IF(NFP.EQ.5) P2DIV=P2EFF
- S=S+(6./23.)*LOG(LOG(Q2EFF/ALAM5**2)/LOG(P2DIV/ALAM5**2))
- ENDIF
-
-C...Calculate frequent combinations of x and s.
- X1=1.-X
- XL=-LOG(X)
- S2=S**2
- S3=S**3
- S4=S**4
-
-C...Evaluate homogeneous anomalous parton distributions below or
-C...above threshold.
- IF(ISET.EQ.0) THEN
- IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
- &(KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
- XVAL = X * 1.5 * (X**2+X1**2)
- XGLU = 0.
- XSEA = 0.
- ELSE
- XVAL = (1.5/(1.-0.197*S+4.33*S2)*X**2 + (1.5+2.10*S)/
- & (1.+3.29*S)*X1**2 + 5.23*S/(1.+1.17*S+19.9*S3)*X*X1) *
- & X**(1./(1.+1.5*S)) * (1.-X**2)**(2.667*S)
- XGLU = 4.*S/(1.+4.76*S+15.2*S2+29.3*S4) *
- & X**(-2.03*S/(1.+2.44*S)) * (X1*XL)**(1.333*S) *
- & ((4.*X**2+7.*X+4.)*X1/3. - 2.*X*(1.+X)*XL)
- XSEA = S2/(1.+4.54*S+8.19*S2+8.05*S3) *
- & X**(-1.54*S/(1.+1.29*S)) * X1**(2.667*S) *
- & ((8.-73.*X+62.*X**2)*X1/9. + (3.-8.*X**2/3.)*X*XL +
- & (2.*X-1.)*X*XL**2)
- ENDIF
-
-C...Evaluate set 1D parton distributions below or above threshold.
- ELSEIF(ISET.EQ.1) THEN
- IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
- &(KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
- XVAL = 1.294 * X**0.80 * X1**0.76
- XGLU = 1.273 * X**0.40 * X1**1.76
- XSEA = 0.100 * X1**3.76
- ELSE
- XVAL = 1.294/(1.+0.252*S+3.079*S2) * X**(0.80-0.13*S) *
- & X1**(0.76+0.667*S) * XL**(2.*S)
- XGLU = 7.90*S/(1.+5.50*S) * EXP(-5.16*S) *
- & X**(-1.90*S/(1.+3.60*S)) * X1**1.30 * XL**(0.50+3.*S) +
- & 1.273 * EXP(-10.*S) * X**0.40 * X1**(1.76+3.*S)
- XSEA = (0.1-0.397*S2+1.121*S3)/(1.+5.61*S2+5.26*S3) *
- & X**(-7.32*S2/(1.+10.3*S2)) *
- & X1**((3.76+15.*S+12.*S2)/(1.+4.*S))
- XSEA0 = 0.100 * X1**3.76
- ENDIF
-
-C...Evaluate set 1M parton distributions below or above threshold.
- ELSEIF(ISET.EQ.2) THEN
- IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
- &(KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
- XVAL = 0.8477 * X**0.51 * X1**1.37
- XGLU = 3.42 * X**0.255 * X1**2.37
- XSEA = 0.
- ELSE
- XVAL = 0.8477/(1.+1.37*S+2.18*S2+3.73*S3) * X**(0.51+0.21*S)
- & * X1**1.37 * XL**(2.667*S)
- XGLU = 24.*S/(1.+9.6*S+0.92*S2+14.34*S3) * EXP(-5.94*S) *
- & X**((-0.013-1.80*S)/(1.+3.14*S)) * X1**(2.37+0.4*S) *
- & XL**(0.32+3.6*S) + 3.42 * EXP(-12.*S) * X**0.255 *
- & X1**(2.37+3.*S)
- XSEA = 0.842*S/(1.+21.3*S-33.2*S2+229.*S3) *
- & X**((0.13-2.90*S)/(1.+5.44*S)) * X1**(3.45+0.5*S) *
- & XL**(2.8*S)
- XSEA0 = 0.
- ENDIF
-
-C...Evaluate set 2D parton distributions below or above threshold.
- ELSEIF(ISET.EQ.3) THEN
- IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
- &(KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
- XVAL = X**0.46 * X1**0.64 + 0.76 * X
- XGLU = 1.925 * X1**2
- XSEA = 0.242 * X1**4
- ELSE
- XVAL = (1.+0.186*S)/(1.-0.209*S+1.495*S2) * X**(0.46+0.25*S)
- & * X1**((0.64+0.14*S+5.*S2)/(1.+S)) * XL**(1.9*S) +
- & (0.76+0.4*S) * X * X1**(2.667*S)
- XGLU = (1.925+5.55*S+147.*S2)/(1.-3.59*S+3.32*S2) *
- & EXP(-18.67*S) * X**((-5.81*S-5.34*S2)/(1.+29.*S-4.26*S2))
- & * X1**((2.-5.9*S)/(1.+1.7*S)) * XL**(9.3*S/(1.+1.7*S))
- XSEA = (0.242-0.252*S+1.19*S2)/(1.-0.607*S+21.95*S2) *
- & X**(-12.1*S2/(1.+2.62*S+16.7*S2)) * X1**4 * XL**S
- XSEA0 = 0.242 * X1**4
- ENDIF
-
-C...Evaluate set 2M parton distributions below or above threshold.
- ELSEIF(ISET.EQ.4) THEN
- IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
- &(KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
- XVAL = 1.168 * X**0.50 * X1**2.60 + 0.965 * X
- XGLU = 1.808 * X1**2
- XSEA = 0.209 * X1**4
- ELSE
- XVAL = (1.168+1.771*S+29.35*S2) * EXP(-5.776*S) *
- & X**((0.5+0.208*S)/(1.-0.794*S+1.516*S2)) *
- & X1**((2.6+7.6*S)/(1.+5.*S)) * XL**(5.15*S/(1.+2.*S)) +
- & (0.965+22.35*S)/(1.+18.4*S) * X * X1**(2.667*S)
- XGLU = (1.808+29.9*S)/(1.+26.4*S) * EXP(-5.28*S) *
- & X**((-5.35*S-10.11*S2)/(1.+31.71*S)) *
- & X1**((2.-7.3*S+4.*S2)/(1.+2.5*S)) *
- & XL**(10.9*S/(1.+2.5*S))
- XSEA = (0.209+0.644*S2)/(1.+0.319*S+17.6*S2) *
- & X**((-0.373*S-7.71*S2)/(1.+0.815*S+11.0*S2)) *
- & X1**(4.+S) * XL**(0.45*S)
- XSEA0 = 0.209 * X1**4
- ENDIF
- ENDIF
-
-C...Threshold factors for c and b sea.
- SLL=LOG(LOG(Q2EFF/ALAM**2)/LOG(P2EFF/ALAM**2))
- XCHM=0.
- IF(Q2.GT.PMC**2.AND.Q2.GT.1.001*P2EFF) THEN
- SCH=MAX(0.,LOG(LOG(PMC**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
- IF(ISET.EQ.0) THEN
- XCHM=XSEA*(1.-(SCH/SLL)**2)
- ELSE
- XCHM=MAX(0.,XSEA-XSEA0*X1**(2.667*S))*(1.-SCH/SLL)
- ENDIF
- ENDIF
- XBOT=0.
- IF(Q2.GT.PMB**2.AND.Q2.GT.1.001*P2EFF) THEN
- SBT=MAX(0.,LOG(LOG(PMB**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
- IF(ISET.EQ.0) THEN
- XBOT=XSEA*(1.-(SBT/SLL)**2)
- ELSE
- XBOT=MAX(0.,XSEA-XSEA0*X1**(2.667*S))*(1.-SBT/SLL)
- ENDIF
- ENDIF
-
-C...Fill parton distributions.
- XPGA(0)=XGLU
- XPGA(1)=XSEA
- XPGA(2)=XSEA
- XPGA(3)=XSEA
- XPGA(4)=XCHM
- XPGA(5)=XBOT
- XPGA(KFA)=XPGA(KFA)+XVAL
- DO 110 KFL=1,5
- XPGA(-KFL)=XPGA(KFL)
- 110 CONTINUE
- VXPGA(KFA)=XVAL
- VXPGA(-KFA)=XVAL
-
- RETURN
- END
-
-C*********************************************************************
-
-CDECK ID>, PHO_SASANO
- SUBROUTINE PHO_SASANO(KF,X,Q2,P2,ALAM,XPGA,VXPGA)
-C...Purpose: to evaluate the parton distributions of the anomalous
-C...photon, inhomogeneously evolved from a scale P2 (where it vanishes)
-C...to Q2.
-C...KF=0 gives the sum over (up to) 5 flavours,
-C...KF<0 limits to flavours up to abs(KF),
-C...KF>0 is for flavour KF only.
-C...ALAM is the 4-flavour Lambda, which is automatically converted
-C...to 3- and 5-flavour equivalents as needed.
- SAVE
-
-C input/output channels
- INTEGER LI,LO
- COMMON /POINOU/ LI,LO
-
- DIMENSION XPGA(-6:6), VXPGA(-6:6), ALAMSQ(3:5)
- DATA PMC/1.3/, PMB/4.6/, AEM/0.007297/, AEM2PI/0.0011614/
-
-C...Reset output.
- DO 100 KFL=-6,6
- XPGA(KFL)=0.
- VXPGA(KFL)=0.
- 100 CONTINUE
- IF(Q2.LE.P2) RETURN
- KFA=IABS(KF)
-
-C...Calculate Lambda; protect against unphysical Q2 and P2 input.
- ALAMSQ(3)=(ALAM*(PMC/ALAM)**(2./27.))**2
- ALAMSQ(4)=ALAM**2
- ALAMSQ(5)=(ALAM*(ALAM/PMB)**(2./23.))**2
- P2EFF=MAX(P2,1.2*ALAMSQ(3))
- IF(KF.EQ.4) P2EFF=MAX(P2EFF,PMC**2)
- IF(KF.EQ.5) P2EFF=MAX(P2EFF,PMB**2)
- Q2EFF=MAX(Q2,P2EFF)
- XL=-LOG(X)
-
-C...Find number of flavours at lower and upper scale.
- NFP=4
- IF(P2EFF.LT.PMC**2) NFP=3
- IF(P2EFF.GT.PMB**2) NFP=5
- NFQ=4
- IF(Q2EFF.LT.PMC**2) NFQ=3
- IF(Q2EFF.GT.PMB**2) NFQ=5
-
-C...Define range of flavour loop.
- IF(KF.EQ.0) THEN
- KFLMN=1
- KFLMX=5
- ELSEIF(KF.LT.0) THEN
- KFLMN=1
- KFLMX=KFA
- ELSE
- KFLMN=KFA
- KFLMX=KFA
- ENDIF
-
-C...Loop over flavours the photon can branch into.
- DO 110 KFL=KFLMN,KFLMX
-
-C...Light flavours: calculate t range and (approximate) s range.
- IF(KFL.LE.3.AND.(KFL.EQ.1.OR.KFL.EQ.KF)) THEN
- TDIFF=LOG(Q2EFF/P2EFF)
- S=(6./(33.-2.*NFQ))*LOG(LOG(Q2EFF/ALAMSQ(NFQ))/
- & LOG(P2EFF/ALAMSQ(NFQ)))
- IF(NFQ.GT.NFP) THEN
- Q2DIV=PMB**2
- IF(NFQ.EQ.4) Q2DIV=PMC**2
- SNFQ=(6./(33.-2.*NFQ))*LOG(LOG(Q2DIV/ALAMSQ(NFQ))/
- & LOG(P2EFF/ALAMSQ(NFQ)))
- SNFP=(6./(33.-2.*(NFQ-1)))*LOG(LOG(Q2DIV/ALAMSQ(NFQ-1))/
- & LOG(P2EFF/ALAMSQ(NFQ-1)))
- S=S+(LOG(Q2DIV/P2EFF)/LOG(Q2EFF/P2EFF))*(SNFP-SNFQ)
- ENDIF
- IF(NFQ.EQ.5.AND.NFP.EQ.3) THEN
- Q2DIV=PMC**2
- SNF4=(6./(33.-2.*4))*LOG(LOG(Q2DIV/ALAMSQ(4))/
- & LOG(P2EFF/ALAMSQ(4)))
- SNF3=(6./(33.-2.*3))*LOG(LOG(Q2DIV/ALAMSQ(3))/
- & LOG(P2EFF/ALAMSQ(3)))
- S=S+(LOG(Q2DIV/P2EFF)/LOG(Q2EFF/P2EFF))*(SNF3-SNF4)
- ENDIF
-
-C...u and s quark do not need a separate treatment when d has been done.
- ELSEIF(KFL.EQ.2.OR.KFL.EQ.3) THEN
-
-C...Charm: as above, but only include range above c threshold.
- ELSEIF(KFL.EQ.4) THEN
- IF(Q2.LE.PMC**2) GOTO 110
- P2EFF=MAX(P2EFF,PMC**2)
- Q2EFF=MAX(Q2EFF,P2EFF)
- TDIFF=LOG(Q2EFF/P2EFF)
- S=(6./(33.-2.*NFQ))*LOG(LOG(Q2EFF/ALAMSQ(NFQ))/
- & LOG(P2EFF/ALAMSQ(NFQ)))
- IF(NFQ.EQ.5.AND.NFP.EQ.4) THEN
- Q2DIV=PMB**2
- SNFQ=(6./(33.-2.*NFQ))*LOG(LOG(Q2DIV/ALAMSQ(NFQ))/
- & LOG(P2EFF/ALAMSQ(NFQ)))
- SNFP=(6./(33.-2.*(NFQ-1)))*LOG(LOG(Q2DIV/ALAMSQ(NFQ-1))/
- & LOG(P2EFF/ALAMSQ(NFQ-1)))
- S=S+(LOG(Q2DIV/P2EFF)/LOG(Q2EFF/P2EFF))*(SNFP-SNFQ)
- ENDIF
-
-C...Bottom: as above, but only include range above b threshold.
- ELSEIF(KFL.EQ.5) THEN
- IF(Q2.LE.PMB**2) GOTO 110
- P2EFF=MAX(P2EFF,PMB**2)
- Q2EFF=MAX(Q2,P2EFF)
- TDIFF=LOG(Q2EFF/P2EFF)
- S=(6./(33.-2.*NFQ))*LOG(LOG(Q2EFF/ALAMSQ(NFQ))/
- & LOG(P2EFF/ALAMSQ(NFQ)))
- ENDIF
-
-C...Evaluate flavour-dependent prefactor (charge^2 etc.).
- CHSQ=1./9.
- IF(KFL.EQ.2.OR.KFL.EQ.4) CHSQ=4./9.
- FAC=AEM2PI*2.*CHSQ*TDIFF
-
-C...Evaluate parton distributions (normalized to unit momentum sum).
- IF(KFL.EQ.1.OR.KFL.EQ.4.OR.KFL.EQ.5.OR.KFL.EQ.KF) THEN
- XVAL= ((1.5+2.49*S+26.9*S**2)/(1.+32.3*S**2)*X**2 +
- & (1.5-0.49*S+7.83*S**2)/(1.+7.68*S**2)*(1.-X)**2 +
- & 1.5*S/(1.-3.2*S+7.*S**2)*X*(1.-X)) *
- & X**(1./(1.+0.58*S)) * (1.-X**2)**(2.5*S/(1.+10.*S))
- XGLU= 2.*S/(1.+4.*S+7.*S**2) *
- & X**(-1.67*S/(1.+2.*S)) * (1.-X**2)**(1.2*S) *
- & ((4.*X**2+7.*X+4.)*(1.-X)/3. - 2.*X*(1.+X)*XL)
- XSEA= 0.333*S**2/(1.+4.90*S+4.69*S**2+21.4*S**3) *
- & X**(-1.18*S/(1.+1.22*S)) * (1.-X)**(1.2*S) *
- & ((8.-73.*X+62.*X**2)*(1.-X)/9. + (3.-8.*X**2/3.)*X*XL +
- & (2.*X-1.)*X*XL**2)
-
-C...Threshold factors for c and b sea.
- SLL=LOG(LOG(Q2EFF/ALAM**2)/LOG(P2EFF/ALAM**2))
- XCHM=0.
- IF(Q2.GT.PMC**2.AND.Q2.GT.1.001*P2EFF) THEN
- SCH=MAX(0.,LOG(LOG(PMC**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
- XCHM=XSEA*(1.-(SCH/SLL)**3)
- ENDIF
- XBOT=0.
- IF(Q2.GT.PMB**2.AND.Q2.GT.1.001*P2EFF) THEN
- SBT=MAX(0.,LOG(LOG(PMB**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
- XBOT=XSEA*(1.-(SBT/SLL)**3)
- ENDIF
- ENDIF
-
-C...Add contribution of each valence flavour.
- XPGA(0)=XPGA(0)+FAC*XGLU
- XPGA(1)=XPGA(1)+FAC*XSEA
- XPGA(2)=XPGA(2)+FAC*XSEA
- XPGA(3)=XPGA(3)+FAC*XSEA
- XPGA(4)=XPGA(4)+FAC*XCHM
- XPGA(5)=XPGA(5)+FAC*XBOT
- XPGA(KFL)=XPGA(KFL)+FAC*XVAL
- VXPGA(KFL)=VXPGA(KFL)+FAC*XVAL
- 110 CONTINUE
- DO 120 KFL=1,5
- XPGA(-KFL)=XPGA(KFL)
- VXPGA(-KFL)=VXPGA(KFL)
- 120 CONTINUE
-
- END
-
-C*********************************************************************
-
-CDECK ID>, PHO_SASBEH
- SUBROUTINE PHO_SASBEH(KF,X,Q2,P2,PM2,XPBH)
-C...Purpose: to evaluate the Bethe-Heitler cross section for
-C...heavy flavour production.
- SAVE
- DATA AEM2PI/0.0011614/
-
-C...Reset output.
- XPBH=0.
- SIGBH=0.
-
-C...Check kinematics limits.
- IF(X.GE.Q2/(4.*PM2+Q2+P2)) RETURN
- W2=Q2*(1.-X)/X-P2
- BETA2=1.-4.*PM2/W2
- IF(BETA2.LT.1E-10) RETURN
- BETA=SQRT(BETA2)
- RMQ=4.*PM2/Q2
-
-C...Simple case: P2 = 0.
- IF(P2.LT.1E-4) THEN
- IF(BETA.LT.0.99) THEN
- XBL=LOG((1.+BETA)/(1.-BETA))
- ELSE
- XBL=LOG((1.+BETA)**2*W2/(4.*PM2))
- ENDIF
- SIGBH=BETA*(8.*X*(1.-X)-1.-RMQ*X*(1.-X))+
- & XBL*(X**2+(1.-X)**2+RMQ*X*(1.-3.*X)-0.5*RMQ**2*X**2)
-
-C...Complicated case: P2 > 0, based on approximation of
-C...C.T. Hill and G.G. Ross, Nucl. Phys. B148 (1979) 373
- ELSE
- RPQ=1.-4.*X**2*P2/Q2
- IF(RPQ.GT.1E-10) THEN
- RPBE=SQRT(RPQ*BETA2)
- IF(RPBE.LT.0.99) THEN
- XBL=LOG((1.+RPBE)/(1.-RPBE))
- XBI=2.*RPBE/(1.-RPBE**2)
- ELSE
- RPBESN=4.*PM2/W2+(4.*X**2*P2/Q2)*BETA2
- XBL=LOG((1.+RPBE)**2/RPBESN)
- XBI=2.*RPBE/RPBESN
- ENDIF
- SIGBH=BETA*(6.*X*(1.-X)-1.)+
- & XBL*(X**2+(1.-X)**2+RMQ*X*(1.-3.*X)-0.5*RMQ**2*X**2)+
- & XBI*(2.*X/Q2)*(PM2*X*(2.-RMQ)-P2*X)
- ENDIF
- ENDIF
-
-C...Multiply by charge-squared etc. to get parton distribution.
- CHSQ=1./9.
- IF(IABS(KF).EQ.2.OR.IABS(KF).EQ.4) CHSQ=4./9.
- XPBH=3.*CHSQ*AEM2PI*X*SIGBH
-
- END
-
-C*********************************************************************
-
-CDECK ID>, PHO_SASDIR
- SUBROUTINE PHO_SASDIR(X,Q2,P2,Q02,XPGA)
-C...Purpose: to evaluate the direct contribution, i.e. the C^gamma term,
-C...as needed in MSbar parametrizations.
- SAVE
- DIMENSION XPGA(-6:6)
- DATA PMC/1.3/, PMB/4.6/, AEM2PI/0.0011614/
-
-C...Reset output.
- DO 100 KFL=-6,6
- XPGA(KFL)=0.
- 100 CONTINUE
-
-C...Evaluate common x-dependent expression.
- XTMP = (X**2+(1.-X)**2) * (-LOG(X)) - 1.
- CGAM = 3.*AEM2PI*X * (XTMP*(1.+P2/(P2+Q02)) + 6.*X*(1.-X))
-
-C...d, u, s part by simple charge factor.
- XPGA(1)=(1./9.)*CGAM
- XPGA(2)=(4./9.)*CGAM
- XPGA(3)=(1./9.)*CGAM
-
-C...Also fill for antiquarks.
- DO 110 KF=1,5
- XPGA(-KF)=XPGA(KF)
- 110 CONTINUE
-
- END
-
-CDECK ID>, PHO_PHGAL
- SUBROUTINE PHO_PHGAL(X,Q2,XPDF)
-C***********************************************************************
-C
-C photon parton densities with built-in momentum sum rule and
-C Regge-based low-x behaviour
-C
-C H. Abramowicz, E. Gurvich, A. Levy: Phys.Lett.B420:104-108,1998
-C e-Print Archive: hep-ph/9711355
-C
-C code submitted by E.Gurvich, slightly modified (R.Engel, 09/1998)
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- SAVE
-
- PARAMETER(IX=100,IQ=7,NARG=2,NFUN=4)
- DOUBLE PRECISION
- & XT(IX),Q2T(IQ),ARG(NARG),ENT(IX+IQ),
- & XPV(IX,IQ,0:NFUN),XPDF(-6:6)
-
- DIMENSION NA(NARG)
-
- DATA ZEROD/0.D0/
-
-C...100 x values; in (D-4,.77) log spaced (78 points)
-C... in (.78,.995) lineary spaced (22 points)
- DATA Q2T/4.D0,10.D0,50.D0,1.D2,1.D3,1.D4,1.D5/
- DATA XT/
- &0.1000D-03,0.1123D-03,0.1262D-03,0.1417D-03,0.1592D-03,0.1789D-03,
- &0.2009D-03,0.2257D-03,0.2535D-03,0.2848D-03,0.3199D-03,0.3593D-03,
- &0.4037D-03,0.4534D-03,0.5093D-03,0.5722D-03,0.6427D-03,0.7220D-03,
- &0.8110D-03,0.9110D-03,0.1023D-02,0.1150D-02,0.1291D-02,0.1451D-02,
- &0.1629D-02,0.1830D-02,0.2056D-02,0.2310D-02,0.2594D-02,0.2914D-02,
- &0.3274D-02,0.3677D-02,0.4131D-02,0.4640D-02,0.5212D-02,0.5855D-02,
- &0.6577D-02,0.7388D-02,0.8299D-02,0.9323D-02,0.1047D-01,0.1176D-01,
- &0.1321D-01,0.1484D-01,0.1667D-01,0.1873D-01,0.2104D-01,0.2363D-01,
- &0.2655D-01,0.2982D-01,0.3350D-01,0.3763D-01,0.4227D-01,0.4748D-01,
- &0.5334D-01,0.5992D-01,0.6731D-01,0.7560D-01,0.8493D-01,0.9540D-01,
- &0.1072D+00,0.1204D+00,0.1352D+00,0.1519D+00,0.1706D+00,0.1917D+00,
- &0.2153D+00,0.2419D+00,0.2717D+00,0.3052D+00,0.3428D+00,0.3851D+00,
- &0.4326D+00,0.4859D+00,0.5458D+00,0.6131D+00,0.6887D+00,0.7737D+00,
- &0.7837D+00,0.7937D+00,0.8037D+00,0.8137D+00,0.8237D+00,0.8337D+00,
- &0.8437D+00,0.8537D+00,0.8637D+00,0.8737D+00,0.8837D+00,0.8937D+00,
- &0.9037D+00,0.9137D+00,0.9237D+00,0.9337D+00,0.9437D+00,0.9537D+00,
- &0.9637D+00,0.9737D+00,0.9837D+00,0.9937D+00/
-
-C...place for DATA blocks
- DATA (XPV(I,1,0),I=1,100)/
- &0.6632D-01,0.6536D-01,0.6390D-01,0.6196D-01,0.5952D-01,0.5663D-01,
- &0.5339D-01,0.5124D-01,0.5029D-01,0.4893D-01,0.4718D-01,0.4505D-01,
- &0.4259D-01,0.4038D-01,0.3966D-01,0.3860D-01,0.3721D-01,0.3551D-01,
- &0.3354D-01,0.3206D-01,0.3134D-01,0.3031D-01,0.2902D-01,0.2747D-01,
- &0.2608D-01,0.2543D-01,0.2451D-01,0.2335D-01,0.2202D-01,0.2132D-01,
- &0.2051D-01,0.1950D-01,0.1851D-01,0.1783D-01,0.1696D-01,0.1609D-01,
- &0.1539D-01,0.1454D-01,0.1386D-01,0.1310D-01,0.1242D-01,0.1169D-01,
- &0.1104D-01,0.1036D-01,0.9694D-02,0.9046D-02,0.8400D-02,0.7792D-02,
- &0.7173D-02,0.6573D-02,0.5978D-02,0.5411D-02,0.4853D-02,0.4307D-02,
- &0.3791D-02,0.3292D-02,0.2818D-02,0.2382D-02,0.1976D-02,0.1606D-02,
- &0.1275D-02,0.9866D-03,0.7403D-03,0.5351D-03,0.3713D-03,0.2450D-03,
- &0.1524D-03,0.8849D-04,0.4730D-04,0.2278D-04,0.9707D-05,0.3518D-05,
- &0.1041D-05,0.2356D-06,0.3682D-07,0.3365D-08,0.1333D-09,0.1188D-11,
- &0.6095D-12,0.3031D-12,0.1457D-12,0.6733D-13,0.2986D-13,0.1262D-13,
- &0.5060D-14,0.1912D-14,0.6734D-15,0.2199D-15,0.6498D-16,0.1729D-16,
- &0.4059D-17,0.8091D-18,0.1324D-18,0.1691D-19,0.1518D-20,0.8785D-22,
- &0.2519D-23,0.2197D-25,0.2840D-28,0.1908D-33/
- DATA (XPV(I,1,1),I=1,100)/
- &0.5848D-03,0.5838D-03,0.5793D-03,0.5713D-03,0.5597D-03,0.5447D-03,
- &0.5270D-03,0.5167D-03,0.5143D-03,0.5087D-03,0.4998D-03,0.4879D-03,
- &0.4731D-03,0.4599D-03,0.4584D-03,0.4538D-03,0.4461D-03,0.4355D-03,
- &0.4223D-03,0.4133D-03,0.4109D-03,0.4053D-03,0.3970D-03,0.3859D-03,
- &0.3763D-03,0.3739D-03,0.3686D-03,0.3605D-03,0.3504D-03,0.3473D-03,
- &0.3426D-03,0.3355D-03,0.3286D-03,0.3253D-03,0.3196D-03,0.3138D-03,
- &0.3102D-03,0.3047D-03,0.3014D-03,0.2971D-03,0.2939D-03,0.2901D-03,
- &0.2875D-03,0.2849D-03,0.2824D-03,0.2805D-03,0.2787D-03,0.2780D-03,
- &0.2772D-03,0.2771D-03,0.2773D-03,0.2784D-03,0.2799D-03,0.2820D-03,
- &0.2850D-03,0.2886D-03,0.2930D-03,0.2985D-03,0.3050D-03,0.3126D-03,
- &0.3215D-03,0.3316D-03,0.3432D-03,0.3564D-03,0.3714D-03,0.3883D-03,
- &0.4073D-03,0.4287D-03,0.4526D-03,0.4794D-03,0.5092D-03,0.5425D-03,
- &0.5796D-03,0.6207D-03,0.6664D-03,0.7171D-03,0.7733D-03,0.8356D-03,
- &0.8429D-03,0.8502D-03,0.8574D-03,0.8647D-03,0.8719D-03,0.8791D-03,
- &0.8863D-03,0.8935D-03,0.9007D-03,0.9079D-03,0.9151D-03,0.9222D-03,
- &0.9294D-03,0.9365D-03,0.9436D-03,0.9508D-03,0.9579D-03,0.9650D-03,
- &0.9720D-03,0.9791D-03,0.9862D-03,0.9932D-03/
- DATA (XPV(I,1,2),I=1,100)/
- &0.2339D-02,0.2335D-02,0.2317D-02,0.2285D-02,0.2239D-02,0.2179D-02,
- &0.2108D-02,0.2067D-02,0.2057D-02,0.2035D-02,0.1999D-02,0.1951D-02,
- &0.1892D-02,0.1840D-02,0.1833D-02,0.1815D-02,0.1784D-02,0.1742D-02,
- &0.1689D-02,0.1653D-02,0.1643D-02,0.1621D-02,0.1588D-02,0.1544D-02,
- &0.1505D-02,0.1496D-02,0.1474D-02,0.1442D-02,0.1402D-02,0.1389D-02,
- &0.1370D-02,0.1342D-02,0.1314D-02,0.1301D-02,0.1278D-02,0.1255D-02,
- &0.1241D-02,0.1219D-02,0.1205D-02,0.1188D-02,0.1176D-02,0.1160D-02,
- &0.1150D-02,0.1139D-02,0.1130D-02,0.1122D-02,0.1115D-02,0.1112D-02,
- &0.1109D-02,0.1108D-02,0.1109D-02,0.1114D-02,0.1120D-02,0.1128D-02,
- &0.1140D-02,0.1154D-02,0.1172D-02,0.1194D-02,0.1220D-02,0.1251D-02,
- &0.1286D-02,0.1326D-02,0.1373D-02,0.1426D-02,0.1485D-02,0.1553D-02,
- &0.1629D-02,0.1715D-02,0.1811D-02,0.1917D-02,0.2037D-02,0.2170D-02,
- &0.2318D-02,0.2483D-02,0.2666D-02,0.2868D-02,0.3093D-02,0.3342D-02,
- &0.3372D-02,0.3401D-02,0.3430D-02,0.3459D-02,0.3488D-02,0.3517D-02,
- &0.3545D-02,0.3574D-02,0.3603D-02,0.3632D-02,0.3660D-02,0.3689D-02,
- &0.3717D-02,0.3746D-02,0.3775D-02,0.3803D-02,0.3831D-02,0.3860D-02,
- &0.3888D-02,0.3916D-02,0.3945D-02,0.3973D-02/
- DATA (XPV(I,1,3),I=1,100)/
- &0.1755D-03,0.1751D-03,0.1738D-03,0.1714D-03,0.1679D-03,0.1634D-03,
- &0.1581D-03,0.1550D-03,0.1543D-03,0.1526D-03,0.1499D-03,0.1464D-03,
- &0.1419D-03,0.1380D-03,0.1375D-03,0.1361D-03,0.1338D-03,0.1306D-03,
- &0.1267D-03,0.1240D-03,0.1233D-03,0.1216D-03,0.1191D-03,0.1158D-03,
- &0.1129D-03,0.1122D-03,0.1106D-03,0.1082D-03,0.1051D-03,0.1042D-03,
- &0.1028D-03,0.1006D-03,0.9857D-04,0.9759D-04,0.9587D-04,0.9414D-04,
- &0.9305D-04,0.9140D-04,0.9041D-04,0.8912D-04,0.8817D-04,0.8702D-04,
- &0.8626D-04,0.8546D-04,0.8472D-04,0.8415D-04,0.8362D-04,0.8339D-04,
- &0.8317D-04,0.8312D-04,0.8318D-04,0.8352D-04,0.8398D-04,0.8459D-04,
- &0.8550D-04,0.8658D-04,0.8789D-04,0.8956D-04,0.9151D-04,0.9379D-04,
- &0.9644D-04,0.9948D-04,0.1030D-03,0.1069D-03,0.1114D-03,0.1165D-03,
- &0.1222D-03,0.1286D-03,0.1358D-03,0.1438D-03,0.1528D-03,0.1628D-03,
- &0.1739D-03,0.1862D-03,0.1999D-03,0.2151D-03,0.2320D-03,0.2507D-03,
- &0.2529D-03,0.2551D-03,0.2572D-03,0.2594D-03,0.2616D-03,0.2637D-03,
- &0.2659D-03,0.2681D-03,0.2702D-03,0.2724D-03,0.2745D-03,0.2767D-03,
- &0.2788D-03,0.2810D-03,0.2831D-03,0.2852D-03,0.2874D-03,0.2895D-03,
- &0.2916D-03,0.2937D-03,0.2959D-03,0.2980D-03/
- DATA (XPV(I,1,4),I=1,100)/
- &0.7018D-03,0.7006D-03,0.6951D-03,0.6855D-03,0.6716D-03,0.6537D-03,
- &0.6324D-03,0.6200D-03,0.6172D-03,0.6104D-03,0.5998D-03,0.5854D-03,
- &0.5677D-03,0.5519D-03,0.5500D-03,0.5445D-03,0.5353D-03,0.5226D-03,
- &0.5068D-03,0.4960D-03,0.4930D-03,0.4864D-03,0.4764D-03,0.4631D-03,
- &0.4516D-03,0.4487D-03,0.4423D-03,0.4326D-03,0.4205D-03,0.4167D-03,
- &0.4111D-03,0.4026D-03,0.3943D-03,0.3903D-03,0.3835D-03,0.3765D-03,
- &0.3722D-03,0.3656D-03,0.3616D-03,0.3565D-03,0.3527D-03,0.3481D-03,
- &0.3450D-03,0.3418D-03,0.3389D-03,0.3366D-03,0.3345D-03,0.3336D-03,
- &0.3327D-03,0.3325D-03,0.3327D-03,0.3341D-03,0.3359D-03,0.3383D-03,
- &0.3420D-03,0.3463D-03,0.3516D-03,0.3582D-03,0.3660D-03,0.3752D-03,
- &0.3858D-03,0.3979D-03,0.4118D-03,0.4277D-03,0.4456D-03,0.4660D-03,
- &0.4887D-03,0.5145D-03,0.5432D-03,0.5752D-03,0.6111D-03,0.6510D-03,
- &0.6955D-03,0.7448D-03,0.7997D-03,0.8605D-03,0.9280D-03,0.1003D-02,
- &0.1011D-02,0.1020D-02,0.1029D-02,0.1038D-02,0.1046D-02,0.1055D-02,
- &0.1064D-02,0.1072D-02,0.1081D-02,0.1089D-02,0.1098D-02,0.1107D-02,
- &0.1115D-02,0.1124D-02,0.1132D-02,0.1141D-02,0.1149D-02,0.1158D-02,
- &0.1166D-02,0.1175D-02,0.1183D-02,0.1192D-02/
- DATA (XPV(I,2,0),I=1,100)/
- &0.1024D+00,0.1007D+00,0.9821D-01,0.9497D-01,0.9093D-01,0.8617D-01,
- &0.8086D-01,0.7731D-01,0.7566D-01,0.7338D-01,0.7048D-01,0.6700D-01,
- &0.6300D-01,0.5939D-01,0.5814D-01,0.5638D-01,0.5410D-01,0.5135D-01,
- &0.4819D-01,0.4580D-01,0.4460D-01,0.4293D-01,0.4087D-01,0.3843D-01,
- &0.3624D-01,0.3517D-01,0.3372D-01,0.3192D-01,0.2988D-01,0.2879D-01,
- &0.2755D-01,0.2602D-01,0.2454D-01,0.2352D-01,0.2224D-01,0.2097D-01,
- &0.1995D-01,0.1875D-01,0.1779D-01,0.1673D-01,0.1580D-01,0.1480D-01,
- &0.1393D-01,0.1305D-01,0.1218D-01,0.1136D-01,0.1055D-01,0.9801D-02,
- &0.9052D-02,0.8337D-02,0.7641D-02,0.6989D-02,0.6357D-02,0.5747D-02,
- &0.5179D-02,0.4637D-02,0.4127D-02,0.3663D-02,0.3232D-02,0.2840D-02,
- &0.2487D-02,0.2174D-02,0.1901D-02,0.1662D-02,0.1459D-02,0.1285D-02,
- &0.1137D-02,0.1010D-02,0.9006D-03,0.8023D-03,0.7126D-03,0.6276D-03,
- &0.5458D-03,0.4661D-03,0.3876D-03,0.3101D-03,0.2334D-03,0.1570D-03,
- &0.1486D-03,0.1404D-03,0.1322D-03,0.1242D-03,0.1162D-03,0.1084D-03,
- &0.1007D-03,0.9304D-04,0.8554D-04,0.7817D-04,0.7086D-04,0.6372D-04,
- &0.5670D-04,0.4982D-04,0.4307D-04,0.3647D-04,0.3005D-04,0.2382D-04,
- &0.1781D-04,0.1208D-04,0.6720D-05,0.1928D-05/
- DATA (XPV(I,2,1),I=1,100)/
- &0.1449D-02,0.1433D-02,0.1407D-02,0.1370D-02,0.1324D-02,0.1268D-02,
- &0.1204D-02,0.1163D-02,0.1147D-02,0.1123D-02,0.1089D-02,0.1048D-02,
- &0.1000D-02,0.9567D-03,0.9446D-03,0.9250D-03,0.8981D-03,0.8642D-03,
- &0.8244D-03,0.7951D-03,0.7821D-03,0.7623D-03,0.7362D-03,0.7043D-03,
- &0.6759D-03,0.6640D-03,0.6459D-03,0.6223D-03,0.5945D-03,0.5817D-03,
- &0.5660D-03,0.5455D-03,0.5256D-03,0.5132D-03,0.4963D-03,0.4794D-03,
- &0.4669D-03,0.4510D-03,0.4394D-03,0.4261D-03,0.4151D-03,0.4031D-03,
- &0.3934D-03,0.3838D-03,0.3747D-03,0.3666D-03,0.3591D-03,0.3533D-03,
- &0.3477D-03,0.3433D-03,0.3397D-03,0.3376D-03,0.3364D-03,0.3361D-03,
- &0.3375D-03,0.3399D-03,0.3437D-03,0.3492D-03,0.3562D-03,0.3648D-03,
- &0.3751D-03,0.3871D-03,0.4009D-03,0.4167D-03,0.4344D-03,0.4543D-03,
- &0.4760D-03,0.5003D-03,0.5268D-03,0.5558D-03,0.5876D-03,0.6226D-03,
- &0.6610D-03,0.7035D-03,0.7509D-03,0.8041D-03,0.8638D-03,0.9294D-03,
- &0.9367D-03,0.9440D-03,0.9511D-03,0.9581D-03,0.9648D-03,0.9714D-03,
- &0.9776D-03,0.9836D-03,0.9891D-03,0.9942D-03,0.9987D-03,0.1003D-02,
- &0.1006D-02,0.1008D-02,0.1008D-02,0.1007D-02,0.1004D-02,0.9977D-03,
- &0.9868D-03,0.9681D-03,0.9347D-03,0.8678D-03/
- DATA (XPV(I,2,2),I=1,100)/
- &0.3175D-02,0.3156D-02,0.3117D-02,0.3057D-02,0.2976D-02,0.2876D-02,
- &0.2760D-02,0.2689D-02,0.2666D-02,0.2625D-02,0.2566D-02,0.2489D-02,
- &0.2398D-02,0.2316D-02,0.2299D-02,0.2266D-02,0.2217D-02,0.2152D-02,
- &0.2073D-02,0.2018D-02,0.1998D-02,0.1962D-02,0.1911D-02,0.1847D-02,
- &0.1791D-02,0.1773D-02,0.1739D-02,0.1692D-02,0.1636D-02,0.1614D-02,
- &0.1586D-02,0.1545D-02,0.1506D-02,0.1485D-02,0.1452D-02,0.1420D-02,
- &0.1398D-02,0.1368D-02,0.1348D-02,0.1324D-02,0.1306D-02,0.1285D-02,
- &0.1271D-02,0.1256D-02,0.1243D-02,0.1233D-02,0.1224D-02,0.1220D-02,
- &0.1217D-02,0.1217D-02,0.1220D-02,0.1227D-02,0.1237D-02,0.1249D-02,
- &0.1267D-02,0.1288D-02,0.1313D-02,0.1345D-02,0.1381D-02,0.1422D-02,
- &0.1469D-02,0.1522D-02,0.1582D-02,0.1648D-02,0.1722D-02,0.1804D-02,
- &0.1893D-02,0.1992D-02,0.2099D-02,0.2216D-02,0.2345D-02,0.2486D-02,
- &0.2641D-02,0.2812D-02,0.3002D-02,0.3216D-02,0.3455D-02,0.3718D-02,
- &0.3748D-02,0.3777D-02,0.3806D-02,0.3833D-02,0.3861D-02,0.3887D-02,
- &0.3912D-02,0.3936D-02,0.3958D-02,0.3978D-02,0.3996D-02,0.4012D-02,
- &0.4024D-02,0.4032D-02,0.4035D-02,0.4031D-02,0.4018D-02,0.3993D-02,
- &0.3949D-02,0.3875D-02,0.3741D-02,0.3474D-02/
- DATA (XPV(I,2,3),I=1,100)/
- &0.1046D-02,0.1031D-02,0.1008D-02,0.9768D-03,0.9381D-03,0.8923D-03,
- &0.8410D-03,0.8074D-03,0.7928D-03,0.7720D-03,0.7450D-03,0.7121D-03,
- &0.6741D-03,0.6398D-03,0.6287D-03,0.6123D-03,0.5906D-03,0.5640D-03,
- &0.5332D-03,0.5101D-03,0.4988D-03,0.4827D-03,0.4624D-03,0.4380D-03,
- &0.4161D-03,0.4059D-03,0.3914D-03,0.3732D-03,0.3524D-03,0.3416D-03,
- &0.3290D-03,0.3133D-03,0.2981D-03,0.2878D-03,0.2747D-03,0.2616D-03,
- &0.2515D-03,0.2392D-03,0.2296D-03,0.2191D-03,0.2100D-03,0.2004D-03,
- &0.1923D-03,0.1842D-03,0.1764D-03,0.1694D-03,0.1627D-03,0.1571D-03,
- &0.1517D-03,0.1469D-03,0.1427D-03,0.1394D-03,0.1367D-03,0.1345D-03,
- &0.1333D-03,0.1327D-03,0.1329D-03,0.1340D-03,0.1360D-03,0.1387D-03,
- &0.1424D-03,0.1469D-03,0.1522D-03,0.1584D-03,0.1654D-03,0.1733D-03,
- &0.1819D-03,0.1915D-03,0.2019D-03,0.2132D-03,0.2257D-03,0.2396D-03,
- &0.2553D-03,0.2737D-03,0.2956D-03,0.3227D-03,0.3570D-03,0.4009D-03,
- &0.4064D-03,0.4119D-03,0.4175D-03,0.4231D-03,0.4287D-03,0.4344D-03,
- &0.4400D-03,0.4457D-03,0.4512D-03,0.4567D-03,0.4621D-03,0.4673D-03,
- &0.4723D-03,0.4769D-03,0.4811D-03,0.4848D-03,0.4875D-03,0.4891D-03,
- &0.4888D-03,0.4853D-03,0.4756D-03,0.4518D-03/
- DATA (XPV(I,2,4),I=1,100)/
- &0.1564D-02,0.1548D-02,0.1521D-02,0.1483D-02,0.1434D-02,0.1375D-02,
- &0.1308D-02,0.1265D-02,0.1249D-02,0.1223D-02,0.1188D-02,0.1145D-02,
- &0.1094D-02,0.1048D-02,0.1035D-02,0.1015D-02,0.9868D-03,0.9509D-03,
- &0.9086D-03,0.8776D-03,0.8644D-03,0.8436D-03,0.8161D-03,0.7822D-03,
- &0.7521D-03,0.7400D-03,0.7212D-03,0.6963D-03,0.6669D-03,0.6538D-03,
- &0.6377D-03,0.6163D-03,0.5956D-03,0.5832D-03,0.5658D-03,0.5486D-03,
- &0.5363D-03,0.5203D-03,0.5091D-03,0.4962D-03,0.4859D-03,0.4746D-03,
- &0.4661D-03,0.4578D-03,0.4502D-03,0.4441D-03,0.4387D-03,0.4355D-03,
- &0.4329D-03,0.4318D-03,0.4320D-03,0.4342D-03,0.4379D-03,0.4429D-03,
- &0.4503D-03,0.4594D-03,0.4704D-03,0.4839D-03,0.4996D-03,0.5177D-03,
- &0.5383D-03,0.5613D-03,0.5869D-03,0.6152D-03,0.6462D-03,0.6802D-03,
- &0.7167D-03,0.7565D-03,0.7995D-03,0.8461D-03,0.8972D-03,0.9538D-03,
- &0.1018D-02,0.1092D-02,0.1181D-02,0.1290D-02,0.1428D-02,0.1604D-02,
- &0.1626D-02,0.1649D-02,0.1671D-02,0.1694D-02,0.1716D-02,0.1739D-02,
- &0.1762D-02,0.1784D-02,0.1806D-02,0.1828D-02,0.1850D-02,0.1871D-02,
- &0.1891D-02,0.1909D-02,0.1926D-02,0.1941D-02,0.1952D-02,0.1958D-02,
- &0.1957D-02,0.1943D-02,0.1905D-02,0.1811D-02/
- DATA (XPV(I,3,0),I=1,100)/
- &0.1761D+00,0.1728D+00,0.1680D+00,0.1619D+00,0.1544D+00,0.1456D+00,
- &0.1358D+00,0.1292D+00,0.1260D+00,0.1218D+00,0.1165D+00,0.1101D+00,
- &0.1029D+00,0.9643D-01,0.9409D-01,0.9087D-01,0.8680D-01,0.8192D-01,
- &0.7638D-01,0.7217D-01,0.7000D-01,0.6708D-01,0.6352D-01,0.5934D-01,
- &0.5561D-01,0.5375D-01,0.5129D-01,0.4829D-01,0.4491D-01,0.4309D-01,
- &0.4104D-01,0.3857D-01,0.3618D-01,0.3454D-01,0.3252D-01,0.3053D-01,
- &0.2896D-01,0.2712D-01,0.2565D-01,0.2407D-01,0.2268D-01,0.2123D-01,
- &0.1997D-01,0.1870D-01,0.1748D-01,0.1634D-01,0.1523D-01,0.1422D-01,
- &0.1321D-01,0.1227D-01,0.1137D-01,0.1053D-01,0.9723D-02,0.8952D-02,
- &0.8241D-02,0.7563D-02,0.6926D-02,0.6345D-02,0.5801D-02,0.5298D-02,
- &0.4833D-02,0.4407D-02,0.4017D-02,0.3657D-02,0.3327D-02,0.3021D-02,
- &0.2735D-02,0.2469D-02,0.2217D-02,0.1976D-02,0.1746D-02,0.1522D-02,
- &0.1307D-02,0.1098D-02,0.8959D-03,0.7002D-03,0.5112D-03,0.3292D-03,
- &0.3097D-03,0.2906D-03,0.2718D-03,0.2534D-03,0.2354D-03,0.2178D-03,
- &0.2005D-03,0.1836D-03,0.1672D-03,0.1511D-03,0.1354D-03,0.1203D-03,
- &0.1055D-03,0.9128D-04,0.7756D-04,0.6440D-04,0.5185D-04,0.3998D-04,
- &0.2891D-04,0.1876D-04,0.9776D-05,0.2464D-05/
- DATA (XPV(I,3,1),I=1,100)/
- &0.3351D-02,0.3297D-02,0.3217D-02,0.3112D-02,0.2981D-02,0.2828D-02,
- &0.2656D-02,0.2543D-02,0.2493D-02,0.2422D-02,0.2332D-02,0.2223D-02,
- &0.2097D-02,0.1984D-02,0.1946D-02,0.1892D-02,0.1821D-02,0.1734D-02,
- &0.1635D-02,0.1560D-02,0.1523D-02,0.1471D-02,0.1406D-02,0.1329D-02,
- &0.1260D-02,0.1228D-02,0.1182D-02,0.1126D-02,0.1061D-02,0.1028D-02,
- &0.9902D-03,0.9426D-03,0.8967D-03,0.8664D-03,0.8274D-03,0.7890D-03,
- &0.7596D-03,0.7240D-03,0.6969D-03,0.6671D-03,0.6417D-03,0.6149D-03,
- &0.5928D-03,0.5708D-03,0.5502D-03,0.5317D-03,0.5144D-03,0.5002D-03,
- &0.4867D-03,0.4753D-03,0.4655D-03,0.4582D-03,0.4526D-03,0.4487D-03,
- &0.4475D-03,0.4480D-03,0.4506D-03,0.4559D-03,0.4632D-03,0.4729D-03,
- &0.4849D-03,0.4991D-03,0.5155D-03,0.5343D-03,0.5552D-03,0.5783D-03,
- &0.6033D-03,0.6307D-03,0.6600D-03,0.6915D-03,0.7256D-03,0.7626D-03,
- &0.8031D-03,0.8482D-03,0.8993D-03,0.9582D-03,0.1026D-02,0.1099D-02,
- &0.1107D-02,0.1115D-02,0.1122D-02,0.1129D-02,0.1136D-02,0.1142D-02,
- &0.1148D-02,0.1152D-02,0.1156D-02,0.1159D-02,0.1161D-02,0.1161D-02,
- &0.1160D-02,0.1156D-02,0.1150D-02,0.1141D-02,0.1127D-02,0.1107D-02,
- &0.1078D-02,0.1036D-02,0.9685D-03,0.8413D-03/
- DATA (XPV(I,3,2),I=1,100)/
- &0.5039D-02,0.4982D-02,0.4889D-02,0.4761D-02,0.4597D-02,0.4401D-02,
- &0.4179D-02,0.4036D-02,0.3979D-02,0.3893D-02,0.3777D-02,0.3634D-02,
- &0.3466D-02,0.3315D-02,0.3273D-02,0.3206D-02,0.3114D-02,0.2997D-02,
- &0.2860D-02,0.2760D-02,0.2717D-02,0.2650D-02,0.2562D-02,0.2454D-02,
- &0.2359D-02,0.2321D-02,0.2262D-02,0.2184D-02,0.2092D-02,0.2052D-02,
- &0.2003D-02,0.1938D-02,0.1875D-02,0.1839D-02,0.1787D-02,0.1736D-02,
- &0.1700D-02,0.1653D-02,0.1622D-02,0.1585D-02,0.1557D-02,0.1526D-02,
- &0.1504D-02,0.1483D-02,0.1464D-02,0.1450D-02,0.1438D-02,0.1433D-02,
- &0.1430D-02,0.1432D-02,0.1438D-02,0.1450D-02,0.1466D-02,0.1487D-02,
- &0.1515D-02,0.1547D-02,0.1585D-02,0.1631D-02,0.1683D-02,0.1742D-02,
- &0.1808D-02,0.1880D-02,0.1960D-02,0.2048D-02,0.2142D-02,0.2245D-02,
- &0.2354D-02,0.2471D-02,0.2596D-02,0.2729D-02,0.2872D-02,0.3025D-02,
- &0.3193D-02,0.3378D-02,0.3587D-02,0.3827D-02,0.4100D-02,0.4397D-02,
- &0.4429D-02,0.4461D-02,0.4490D-02,0.4519D-02,0.4545D-02,0.4570D-02,
- &0.4592D-02,0.4611D-02,0.4627D-02,0.4639D-02,0.4646D-02,0.4647D-02,
- &0.4642D-02,0.4628D-02,0.4604D-02,0.4566D-02,0.4510D-02,0.4431D-02,
- &0.4317D-02,0.4147D-02,0.3877D-02,0.3370D-02/
- DATA (XPV(I,3,3),I=1,100)/
- &0.2958D-02,0.2904D-02,0.2827D-02,0.2727D-02,0.2604D-02,0.2461D-02,
- &0.2301D-02,0.2195D-02,0.2146D-02,0.2079D-02,0.1995D-02,0.1894D-02,
- &0.1778D-02,0.1674D-02,0.1637D-02,0.1586D-02,0.1520D-02,0.1440D-02,
- &0.1349D-02,0.1280D-02,0.1245D-02,0.1197D-02,0.1138D-02,0.1068D-02,
- &0.1005D-02,0.9742D-03,0.9325D-03,0.8812D-03,0.8233D-03,0.7922D-03,
- &0.7568D-03,0.7138D-03,0.6722D-03,0.6438D-03,0.6084D-03,0.5735D-03,
- &0.5460D-03,0.5138D-03,0.4883D-03,0.4609D-03,0.4371D-03,0.4123D-03,
- &0.3912D-03,0.3704D-03,0.3507D-03,0.3327D-03,0.3158D-03,0.3012D-03,
- &0.2873D-03,0.2751D-03,0.2641D-03,0.2551D-03,0.2474D-03,0.2410D-03,
- &0.2365D-03,0.2334D-03,0.2318D-03,0.2321D-03,0.2339D-03,0.2372D-03,
- &0.2421D-03,0.2485D-03,0.2562D-03,0.2652D-03,0.2755D-03,0.2870D-03,
- &0.2995D-03,0.3131D-03,0.3278D-03,0.3438D-03,0.3615D-03,0.3814D-03,
- &0.4046D-03,0.4328D-03,0.4682D-03,0.5142D-03,0.5747D-03,0.6529D-03,
- &0.6625D-03,0.6722D-03,0.6819D-03,0.6916D-03,0.7012D-03,0.7107D-03,
- &0.7200D-03,0.7292D-03,0.7380D-03,0.7464D-03,0.7544D-03,0.7617D-03,
- &0.7681D-03,0.7735D-03,0.7776D-03,0.7798D-03,0.7796D-03,0.7761D-03,
- &0.7676D-03,0.7510D-03,0.7195D-03,0.6522D-03/
- DATA (XPV(I,3,4),I=1,100)/
- &0.3464D-02,0.3410D-02,0.3329D-02,0.3222D-02,0.3090D-02,0.2933D-02,
- &0.2758D-02,0.2643D-02,0.2593D-02,0.2521D-02,0.2430D-02,0.2318D-02,
- &0.2190D-02,0.2075D-02,0.2037D-02,0.1982D-02,0.1910D-02,0.1821D-02,
- &0.1720D-02,0.1643D-02,0.1607D-02,0.1554D-02,0.1489D-02,0.1410D-02,
- &0.1340D-02,0.1308D-02,0.1262D-02,0.1205D-02,0.1140D-02,0.1108D-02,
- &0.1070D-02,0.1023D-02,0.9772D-03,0.9482D-03,0.9103D-03,0.8732D-03,
- &0.8458D-03,0.8121D-03,0.7877D-03,0.7607D-03,0.7388D-03,0.7157D-03,
- &0.6981D-03,0.6812D-03,0.6662D-03,0.6540D-03,0.6438D-03,0.6377D-03,
- &0.6331D-03,0.6316D-03,0.6326D-03,0.6376D-03,0.6453D-03,0.6560D-03,
- &0.6708D-03,0.6887D-03,0.7102D-03,0.7361D-03,0.7656D-03,0.7991D-03,
- &0.8365D-03,0.8777D-03,0.9226D-03,0.9714D-03,0.1024D-02,0.1080D-02,
- &0.1138D-02,0.1201D-02,0.1267D-02,0.1338D-02,0.1415D-02,0.1501D-02,
- &0.1599D-02,0.1717D-02,0.1863D-02,0.2051D-02,0.2296D-02,0.2612D-02,
- &0.2650D-02,0.2689D-02,0.2729D-02,0.2767D-02,0.2806D-02,0.2844D-02,
- &0.2882D-02,0.2919D-02,0.2954D-02,0.2988D-02,0.3020D-02,0.3049D-02,
- &0.3075D-02,0.3097D-02,0.3114D-02,0.3123D-02,0.3122D-02,0.3108D-02,
- &0.3074D-02,0.3008D-02,0.2881D-02,0.2614D-02/
- DATA (XPV(I,4,0),I=1,100)/
- &0.2113D+00,0.2071D+00,0.2012D+00,0.1936D+00,0.1844D+00,0.1736D+00,
- &0.1616D+00,0.1536D+00,0.1497D+00,0.1445D+00,0.1380D+00,0.1303D+00,
- &0.1215D+00,0.1136D+00,0.1108D+00,0.1069D+00,0.1019D+00,0.9605D-01,
- &0.8939D-01,0.8432D-01,0.8171D-01,0.7821D-01,0.7395D-01,0.6897D-01,
- &0.6452D-01,0.6231D-01,0.5938D-01,0.5583D-01,0.5185D-01,0.4969D-01,
- &0.4728D-01,0.4438D-01,0.4158D-01,0.3967D-01,0.3731D-01,0.3500D-01,
- &0.3318D-01,0.3105D-01,0.2936D-01,0.2754D-01,0.2595D-01,0.2429D-01,
- &0.2285D-01,0.2141D-01,0.2003D-01,0.1874D-01,0.1749D-01,0.1635D-01,
- &0.1523D-01,0.1418D-01,0.1317D-01,0.1223D-01,0.1134D-01,0.1048D-01,
- &0.9692D-02,0.8938D-02,0.8227D-02,0.7578D-02,0.6967D-02,0.6398D-02,
- &0.5867D-02,0.5377D-02,0.4922D-02,0.4497D-02,0.4101D-02,0.3730D-02,
- &0.3379D-02,0.3048D-02,0.2732D-02,0.2429D-02,0.2139D-02,0.1858D-02,
- &0.1588D-02,0.1328D-02,0.1077D-02,0.8361D-03,0.6052D-03,0.3850D-03,
- &0.3616D-03,0.3387D-03,0.3162D-03,0.2943D-03,0.2728D-03,0.2518D-03,
- &0.2314D-03,0.2114D-03,0.1919D-03,0.1731D-03,0.1546D-03,0.1369D-03,
- &0.1197D-03,0.1032D-03,0.8729D-04,0.7214D-04,0.5778D-04,0.4429D-04,
- &0.3179D-04,0.2044D-04,0.1053D-04,0.2601D-05/
- DATA (XPV(I,4,1),I=1,100)/
- &0.4299D-02,0.4223D-02,0.4115D-02,0.3974D-02,0.3799D-02,0.3595D-02,
- &0.3367D-02,0.3216D-02,0.3148D-02,0.3054D-02,0.2934D-02,0.2790D-02,
- &0.2625D-02,0.2476D-02,0.2426D-02,0.2353D-02,0.2260D-02,0.2147D-02,
- &0.2018D-02,0.1920D-02,0.1871D-02,0.1804D-02,0.1720D-02,0.1620D-02,
- &0.1532D-02,0.1489D-02,0.1431D-02,0.1359D-02,0.1277D-02,0.1234D-02,
- &0.1185D-02,0.1125D-02,0.1067D-02,0.1028D-02,0.9791D-03,0.9308D-03,
- &0.8936D-03,0.8491D-03,0.8150D-03,0.7777D-03,0.7459D-03,0.7125D-03,
- &0.6849D-03,0.6575D-03,0.6318D-03,0.6088D-03,0.5872D-03,0.5693D-03,
- &0.5524D-03,0.5380D-03,0.5254D-03,0.5159D-03,0.5084D-03,0.5028D-03,
- &0.5003D-03,0.4998D-03,0.5017D-03,0.5066D-03,0.5139D-03,0.5237D-03,
- &0.5360D-03,0.5508D-03,0.5679D-03,0.5875D-03,0.6093D-03,0.6334D-03,
- &0.6593D-03,0.6876D-03,0.7177D-03,0.7500D-03,0.7848D-03,0.8225D-03,
- &0.8639D-03,0.9103D-03,0.9634D-03,0.1025D-02,0.1097D-02,0.1174D-02,
- &0.1183D-02,0.1191D-02,0.1199D-02,0.1206D-02,0.1212D-02,0.1219D-02,
- &0.1224D-02,0.1229D-02,0.1232D-02,0.1235D-02,0.1236D-02,0.1235D-02,
- &0.1232D-02,0.1227D-02,0.1219D-02,0.1207D-02,0.1190D-02,0.1167D-02,
- &0.1133D-02,0.1085D-02,0.1009D-02,0.8680D-03/
- DATA (XPV(I,4,2),I=1,100)/
- &0.5972D-02,0.5895D-02,0.5773D-02,0.5610D-02,0.5402D-02,0.5156D-02,
- &0.4878D-02,0.4698D-02,0.4623D-02,0.4513D-02,0.4369D-02,0.4191D-02,
- &0.3984D-02,0.3798D-02,0.3743D-02,0.3659D-02,0.3544D-02,0.3402D-02,
- &0.3235D-02,0.3113D-02,0.3058D-02,0.2976D-02,0.2870D-02,0.2740D-02,
- &0.2626D-02,0.2578D-02,0.2507D-02,0.2414D-02,0.2305D-02,0.2257D-02,
- &0.2198D-02,0.2121D-02,0.2046D-02,0.2003D-02,0.1942D-02,0.1882D-02,
- &0.1840D-02,0.1786D-02,0.1749D-02,0.1707D-02,0.1674D-02,0.1639D-02,
- &0.1613D-02,0.1589D-02,0.1567D-02,0.1551D-02,0.1538D-02,0.1533D-02,
- &0.1530D-02,0.1533D-02,0.1540D-02,0.1554D-02,0.1573D-02,0.1597D-02,
- &0.1628D-02,0.1665D-02,0.1709D-02,0.1760D-02,0.1818D-02,0.1884D-02,
- &0.1957D-02,0.2038D-02,0.2125D-02,0.2221D-02,0.2324D-02,0.2434D-02,
- &0.2551D-02,0.2676D-02,0.2807D-02,0.2946D-02,0.3095D-02,0.3254D-02,
- &0.3428D-02,0.3621D-02,0.3839D-02,0.4092D-02,0.4382D-02,0.4698D-02,
- &0.4731D-02,0.4764D-02,0.4795D-02,0.4824D-02,0.4851D-02,0.4876D-02,
- &0.4898D-02,0.4917D-02,0.4931D-02,0.4941D-02,0.4945D-02,0.4943D-02,
- &0.4933D-02,0.4913D-02,0.4881D-02,0.4833D-02,0.4766D-02,0.4671D-02,
- &0.4538D-02,0.4344D-02,0.4039D-02,0.3475D-02/
- DATA (XPV(I,4,3),I=1,100)/
- &0.3908D-02,0.3834D-02,0.3728D-02,0.3592D-02,0.3425D-02,0.3231D-02,
- &0.3015D-02,0.2871D-02,0.2804D-02,0.2714D-02,0.2600D-02,0.2464D-02,
- &0.2309D-02,0.2169D-02,0.2119D-02,0.2050D-02,0.1962D-02,0.1855D-02,
- &0.1735D-02,0.1643D-02,0.1596D-02,0.1532D-02,0.1453D-02,0.1361D-02,
- &0.1278D-02,0.1237D-02,0.1183D-02,0.1116D-02,0.1040D-02,0.9992D-03,
- &0.9531D-03,0.8972D-03,0.8434D-03,0.8065D-03,0.7608D-03,0.7159D-03,
- &0.6806D-03,0.6392D-03,0.6067D-03,0.5717D-03,0.5414D-03,0.5098D-03,
- &0.4831D-03,0.4567D-03,0.4317D-03,0.4090D-03,0.3877D-03,0.3693D-03,
- &0.3517D-03,0.3363D-03,0.3224D-03,0.3109D-03,0.3010D-03,0.2928D-03,
- &0.2869D-03,0.2826D-03,0.2801D-03,0.2799D-03,0.2814D-03,0.2848D-03,
- &0.2899D-03,0.2967D-03,0.3051D-03,0.3151D-03,0.3263D-03,0.3390D-03,
- &0.3528D-03,0.3678D-03,0.3841D-03,0.4018D-03,0.4214D-03,0.4437D-03,
- &0.4700D-03,0.5022D-03,0.5431D-03,0.5965D-03,0.6670D-03,0.7574D-03,
- &0.7684D-03,0.7795D-03,0.7905D-03,0.8015D-03,0.8124D-03,0.8230D-03,
- &0.8335D-03,0.8436D-03,0.8533D-03,0.8624D-03,0.8708D-03,0.8784D-03,
- &0.8849D-03,0.8901D-03,0.8934D-03,0.8945D-03,0.8925D-03,0.8863D-03,
- &0.8739D-03,0.8517D-03,0.8113D-03,0.7282D-03/
- DATA (XPV(I,4,4),I=1,100)/
- &0.4411D-02,0.4336D-02,0.4226D-02,0.4084D-02,0.3907D-02,0.3700D-02,
- &0.3469D-02,0.3316D-02,0.3248D-02,0.3153D-02,0.3032D-02,0.2886D-02,
- &0.2718D-02,0.2567D-02,0.2516D-02,0.2444D-02,0.2349D-02,0.2235D-02,
- &0.2103D-02,0.2004D-02,0.1956D-02,0.1888D-02,0.1804D-02,0.1703D-02,
- &0.1613D-02,0.1571D-02,0.1514D-02,0.1441D-02,0.1359D-02,0.1317D-02,
- &0.1269D-02,0.1210D-02,0.1153D-02,0.1116D-02,0.1069D-02,0.1022D-02,
- &0.9882D-03,0.9465D-03,0.9161D-03,0.8828D-03,0.8558D-03,0.8276D-03,
- &0.8060D-03,0.7854D-03,0.7672D-03,0.7526D-03,0.7404D-03,0.7330D-03,
- &0.7277D-03,0.7261D-03,0.7277D-03,0.7338D-03,0.7434D-03,0.7565D-03,
- &0.7745D-03,0.7963D-03,0.8222D-03,0.8532D-03,0.8886D-03,0.9283D-03,
- &0.9728D-03,0.1021D-02,0.1074D-02,0.1131D-02,0.1192D-02,0.1257D-02,
- &0.1325D-02,0.1397D-02,0.1473D-02,0.1554D-02,0.1642D-02,0.1739D-02,
- &0.1852D-02,0.1988D-02,0.2158D-02,0.2377D-02,0.2664D-02,0.3029D-02,
- &0.3074D-02,0.3119D-02,0.3163D-02,0.3207D-02,0.3251D-02,0.3294D-02,
- &0.3336D-02,0.3377D-02,0.3416D-02,0.3452D-02,0.3486D-02,0.3517D-02,
- &0.3543D-02,0.3564D-02,0.3578D-02,0.3582D-02,0.3574D-02,0.3549D-02,
- &0.3500D-02,0.3411D-02,0.3249D-02,0.2916D-02/
- DATA (XPV(I,5,0),I=1,100)/
- &0.3395D+00,0.3321D+00,0.3219D+00,0.3090D+00,0.2933D+00,0.2751D+00,
- &0.2550D+00,0.2414D+00,0.2348D+00,0.2261D+00,0.2153D+00,0.2025D+00,
- &0.1881D+00,0.1751D+00,0.1704D+00,0.1640D+00,0.1559D+00,0.1464D+00,
- &0.1357D+00,0.1276D+00,0.1233D+00,0.1178D+00,0.1110D+00,0.1032D+00,
- &0.9616D-01,0.9268D-01,0.8813D-01,0.8262D-01,0.7648D-01,0.7317D-01,
- &0.6948D-01,0.6506D-01,0.6083D-01,0.5795D-01,0.5442D-01,0.5097D-01,
- &0.4827D-01,0.4513D-01,0.4265D-01,0.4000D-01,0.3769D-01,0.3529D-01,
- &0.3322D-01,0.3117D-01,0.2920D-01,0.2737D-01,0.2561D-01,0.2402D-01,
- &0.2245D-01,0.2098D-01,0.1958D-01,0.1829D-01,0.1704D-01,0.1585D-01,
- &0.1476D-01,0.1370D-01,0.1270D-01,0.1178D-01,0.1090D-01,0.1007D-01,
- &0.9286D-02,0.8547D-02,0.7848D-02,0.7182D-02,0.6551D-02,0.5949D-02,
- &0.5372D-02,0.4823D-02,0.4298D-02,0.3794D-02,0.3314D-02,0.2852D-02,
- &0.2413D-02,0.1995D-02,0.1599D-02,0.1223D-02,0.8693D-03,0.5397D-03,
- &0.5052D-03,0.4716D-03,0.4388D-03,0.4068D-03,0.3757D-03,0.3454D-03,
- &0.3160D-03,0.2875D-03,0.2599D-03,0.2332D-03,0.2073D-03,0.1825D-03,
- &0.1587D-03,0.1359D-03,0.1142D-03,0.9370D-04,0.7445D-04,0.5655D-04,
- &0.4018D-04,0.2553D-04,0.1296D-04,0.3149D-05/
- DATA (XPV(I,5,1),I=1,100)/
- &0.7886D-02,0.7728D-02,0.7505D-02,0.7221D-02,0.6873D-02,0.6469D-02,
- &0.6022D-02,0.5723D-02,0.5585D-02,0.5398D-02,0.5164D-02,0.4885D-02,
- &0.4568D-02,0.4283D-02,0.4181D-02,0.4041D-02,0.3864D-02,0.3650D-02,
- &0.3408D-02,0.3225D-02,0.3131D-02,0.3005D-02,0.2850D-02,0.2668D-02,
- &0.2506D-02,0.2427D-02,0.2321D-02,0.2191D-02,0.2045D-02,0.1968D-02,
- &0.1880D-02,0.1774D-02,0.1672D-02,0.1604D-02,0.1519D-02,0.1435D-02,
- &0.1371D-02,0.1295D-02,0.1236D-02,0.1172D-02,0.1118D-02,0.1062D-02,
- &0.1015D-02,0.9690D-03,0.9257D-03,0.8867D-03,0.8503D-03,0.8197D-03,
- &0.7906D-03,0.7655D-03,0.7432D-03,0.7255D-03,0.7107D-03,0.6987D-03,
- &0.6911D-03,0.6864D-03,0.6850D-03,0.6876D-03,0.6934D-03,0.7025D-03,
- &0.7147D-03,0.7300D-03,0.7482D-03,0.7692D-03,0.7926D-03,0.8187D-03,
- &0.8465D-03,0.8768D-03,0.9089D-03,0.9431D-03,0.9801D-03,0.1020D-02,
- &0.1065D-02,0.1116D-02,0.1177D-02,0.1250D-02,0.1336D-02,0.1431D-02,
- &0.1441D-02,0.1451D-02,0.1460D-02,0.1468D-02,0.1476D-02,0.1483D-02,
- &0.1489D-02,0.1494D-02,0.1497D-02,0.1499D-02,0.1499D-02,0.1497D-02,
- &0.1492D-02,0.1483D-02,0.1471D-02,0.1454D-02,0.1430D-02,0.1398D-02,
- &0.1354D-02,0.1291D-02,0.1195D-02,0.1022D-02/
- DATA (XPV(I,5,2),I=1,100)/
- &0.9523D-02,0.9362D-02,0.9127D-02,0.8821D-02,0.8442D-02,0.7997D-02,
- &0.7501D-02,0.7174D-02,0.7029D-02,0.6828D-02,0.6569D-02,0.6258D-02,
- &0.5901D-02,0.5579D-02,0.5475D-02,0.5323D-02,0.5125D-02,0.4884D-02,
- &0.4606D-02,0.4399D-02,0.4301D-02,0.4162D-02,0.3986D-02,0.3776D-02,
- &0.3590D-02,0.3508D-02,0.3391D-02,0.3242D-02,0.3073D-02,0.2992D-02,
- &0.2897D-02,0.2777D-02,0.2663D-02,0.2592D-02,0.2499D-02,0.2408D-02,
- &0.2344D-02,0.2263D-02,0.2207D-02,0.2144D-02,0.2095D-02,0.2043D-02,
- &0.2005D-02,0.1970D-02,0.1939D-02,0.1917D-02,0.1898D-02,0.1891D-02,
- &0.1887D-02,0.1891D-02,0.1901D-02,0.1921D-02,0.1948D-02,0.1981D-02,
- &0.2025D-02,0.2076D-02,0.2134D-02,0.2204D-02,0.2281D-02,0.2367D-02,
- &0.2463D-02,0.2566D-02,0.2678D-02,0.2798D-02,0.2925D-02,0.3060D-02,
- &0.3199D-02,0.3347D-02,0.3500D-02,0.3659D-02,0.3827D-02,0.4007D-02,
- &0.4203D-02,0.4424D-02,0.4679D-02,0.4981D-02,0.5336D-02,0.5723D-02,
- &0.5764D-02,0.5803D-02,0.5840D-02,0.5875D-02,0.5906D-02,0.5934D-02,
- &0.5959D-02,0.5978D-02,0.5992D-02,0.6000D-02,0.6000D-02,0.5991D-02,
- &0.5971D-02,0.5938D-02,0.5890D-02,0.5821D-02,0.5726D-02,0.5597D-02,
- &0.5419D-02,0.5166D-02,0.4781D-02,0.4089D-02/
- DATA (XPV(I,5,3),I=1,100)/
- &0.7505D-02,0.7347D-02,0.7127D-02,0.6848D-02,0.6508D-02,0.6113D-02,
- &0.5677D-02,0.5385D-02,0.5248D-02,0.5065D-02,0.4837D-02,0.4566D-02,
- &0.4259D-02,0.3982D-02,0.3881D-02,0.3744D-02,0.3571D-02,0.3365D-02,
- &0.3131D-02,0.2953D-02,0.2861D-02,0.2738D-02,0.2589D-02,0.2414D-02,
- &0.2257D-02,0.2179D-02,0.2077D-02,0.1952D-02,0.1812D-02,0.1736D-02,
- &0.1651D-02,0.1549D-02,0.1451D-02,0.1384D-02,0.1302D-02,0.1222D-02,
- &0.1159D-02,0.1086D-02,0.1028D-02,0.9666D-03,0.9136D-03,0.8587D-03,
- &0.8123D-03,0.7666D-03,0.7236D-03,0.6846D-03,0.6479D-03,0.6163D-03,
- &0.5861D-03,0.5595D-03,0.5354D-03,0.5152D-03,0.4975D-03,0.4824D-03,
- &0.4710D-03,0.4620D-03,0.4558D-03,0.4530D-03,0.4527D-03,0.4552D-03,
- &0.4601D-03,0.4675D-03,0.4771D-03,0.4889D-03,0.5026D-03,0.5181D-03,
- &0.5351D-03,0.5540D-03,0.5746D-03,0.5972D-03,0.6228D-03,0.6525D-03,
- &0.6882D-03,0.7329D-03,0.7908D-03,0.8669D-03,0.9668D-03,0.1092D-02,
- &0.1106D-02,0.1121D-02,0.1136D-02,0.1150D-02,0.1164D-02,0.1178D-02,
- &0.1191D-02,0.1203D-02,0.1214D-02,0.1225D-02,0.1234D-02,0.1242D-02,
- &0.1247D-02,0.1250D-02,0.1251D-02,0.1247D-02,0.1239D-02,0.1224D-02,
- &0.1199D-02,0.1159D-02,0.1093D-02,0.9633D-03/
- DATA (XPV(I,5,4),I=1,100)/
- &0.7997D-02,0.7838D-02,0.7615D-02,0.7329D-02,0.6980D-02,0.6573D-02,
- &0.6123D-02,0.5823D-02,0.5684D-02,0.5497D-02,0.5261D-02,0.4981D-02,
- &0.4662D-02,0.4375D-02,0.4274D-02,0.4134D-02,0.3955D-02,0.3741D-02,
- &0.3497D-02,0.3313D-02,0.3221D-02,0.3095D-02,0.2940D-02,0.2758D-02,
- &0.2596D-02,0.2518D-02,0.2414D-02,0.2285D-02,0.2140D-02,0.2065D-02,
- &0.1981D-02,0.1877D-02,0.1779D-02,0.1715D-02,0.1634D-02,0.1555D-02,
- &0.1497D-02,0.1427D-02,0.1376D-02,0.1320D-02,0.1276D-02,0.1229D-02,
- &0.1194D-02,0.1161D-02,0.1131D-02,0.1108D-02,0.1089D-02,0.1077D-02,
- &0.1069D-02,0.1067D-02,0.1070D-02,0.1080D-02,0.1095D-02,0.1116D-02,
- &0.1144D-02,0.1178D-02,0.1218D-02,0.1265D-02,0.1318D-02,0.1378D-02,
- &0.1444D-02,0.1516D-02,0.1594D-02,0.1677D-02,0.1764D-02,0.1858D-02,
- &0.1954D-02,0.2056D-02,0.2162D-02,0.2275D-02,0.2398D-02,0.2536D-02,
- &0.2696D-02,0.2890D-02,0.3134D-02,0.3450D-02,0.3859D-02,0.4365D-02,
- &0.4425D-02,0.4485D-02,0.4544D-02,0.4602D-02,0.4658D-02,0.4713D-02,
- &0.4765D-02,0.4815D-02,0.4861D-02,0.4903D-02,0.4940D-02,0.4970D-02,
- &0.4993D-02,0.5007D-02,0.5008D-02,0.4994D-02,0.4961D-02,0.4900D-02,
- &0.4801D-02,0.4642D-02,0.4373D-02,0.3853D-02/
- DATA (XPV(I,6,0),I=1,100)/
- &0.4823D+00,0.4713D+00,0.4562D+00,0.4371D+00,0.4141D+00,0.3874D+00,
- &0.3580D+00,0.3381D+00,0.3284D+00,0.3157D+00,0.3000D+00,0.2816D+00,
- &0.2609D+00,0.2422D+00,0.2354D+00,0.2262D+00,0.2147D+00,0.2012D+00,
- &0.1860D+00,0.1744D+00,0.1685D+00,0.1606D+00,0.1511D+00,0.1401D+00,
- &0.1304D+00,0.1255D+00,0.1192D+00,0.1116D+00,0.1031D+00,0.9852D-01,
- &0.9345D-01,0.8740D-01,0.8162D-01,0.7769D-01,0.7289D-01,0.6822D-01,
- &0.6457D-01,0.6033D-01,0.5700D-01,0.5343D-01,0.5035D-01,0.4714D-01,
- &0.4439D-01,0.4166D-01,0.3905D-01,0.3663D-01,0.3429D-01,0.3219D-01,
- &0.3012D-01,0.2819D-01,0.2634D-01,0.2464D-01,0.2300D-01,0.2142D-01,
- &0.1997D-01,0.1857D-01,0.1723D-01,0.1600D-01,0.1482D-01,0.1370D-01,
- &0.1263D-01,0.1162D-01,0.1065D-01,0.9734D-02,0.8858D-02,0.8020D-02,
- &0.7218D-02,0.6455D-02,0.5727D-02,0.5031D-02,0.4372D-02,0.3743D-02,
- &0.3148D-02,0.2587D-02,0.2059D-02,0.1563D-02,0.1101D-02,0.6756D-03,
- &0.6315D-03,0.5886D-03,0.5468D-03,0.5062D-03,0.4667D-03,0.4284D-03,
- &0.3913D-03,0.3553D-03,0.3206D-03,0.2871D-03,0.2547D-03,0.2238D-03,
- &0.1942D-03,0.1660D-03,0.1392D-03,0.1139D-03,0.9030D-04,0.6843D-04,
- &0.4849D-04,0.3074D-04,0.1557D-04,0.3784D-05/
- DATA (XPV(I,6,1),I=1,100)/
- &0.1205D-01,0.1178D-01,0.1142D-01,0.1096D-01,0.1041D-01,0.9763D-02,
- &0.9053D-02,0.8577D-02,0.8354D-02,0.8057D-02,0.7688D-02,0.7251D-02,
- &0.6756D-02,0.6310D-02,0.6149D-02,0.5929D-02,0.5654D-02,0.5325D-02,
- &0.4953D-02,0.4670D-02,0.4526D-02,0.4332D-02,0.4097D-02,0.3822D-02,
- &0.3577D-02,0.3456D-02,0.3297D-02,0.3102D-02,0.2885D-02,0.2769D-02,
- &0.2639D-02,0.2483D-02,0.2333D-02,0.2232D-02,0.2107D-02,0.1985D-02,
- &0.1891D-02,0.1781D-02,0.1696D-02,0.1604D-02,0.1526D-02,0.1445D-02,
- &0.1377D-02,0.1310D-02,0.1248D-02,0.1192D-02,0.1139D-02,0.1094D-02,
- &0.1052D-02,0.1015D-02,0.9816D-03,0.9544D-03,0.9311D-03,0.9114D-03,
- &0.8975D-03,0.8872D-03,0.8810D-03,0.8801D-03,0.8830D-03,0.8899D-03,
- &0.9007D-03,0.9151D-03,0.9330D-03,0.9541D-03,0.9781D-03,0.1005D-02,
- &0.1034D-02,0.1065D-02,0.1099D-02,0.1135D-02,0.1174D-02,0.1217D-02,
- &0.1266D-02,0.1323D-02,0.1392D-02,0.1478D-02,0.1581D-02,0.1696D-02,
- &0.1708D-02,0.1720D-02,0.1731D-02,0.1741D-02,0.1751D-02,0.1759D-02,
- &0.1766D-02,0.1772D-02,0.1776D-02,0.1778D-02,0.1778D-02,0.1775D-02,
- &0.1769D-02,0.1759D-02,0.1744D-02,0.1723D-02,0.1695D-02,0.1657D-02,
- &0.1604D-02,0.1530D-02,0.1417D-02,0.1218D-02/
- DATA (XPV(I,6,2),I=1,100)/
- &0.1365D-01,0.1339D-01,0.1302D-01,0.1254D-01,0.1195D-01,0.1127D-01,
- &0.1051D-01,0.1001D-01,0.9777D-02,0.9465D-02,0.9073D-02,0.8604D-02,
- &0.8069D-02,0.7589D-02,0.7425D-02,0.7195D-02,0.6900D-02,0.6544D-02,
- &0.6138D-02,0.5834D-02,0.5686D-02,0.5481D-02,0.5226D-02,0.4925D-02,
- &0.4658D-02,0.4536D-02,0.4367D-02,0.4157D-02,0.3918D-02,0.3801D-02,
- &0.3667D-02,0.3499D-02,0.3340D-02,0.3241D-02,0.3112D-02,0.2987D-02,
- &0.2897D-02,0.2787D-02,0.2709D-02,0.2624D-02,0.2557D-02,0.2487D-02,
- &0.2436D-02,0.2387D-02,0.2346D-02,0.2315D-02,0.2290D-02,0.2279D-02,
- &0.2273D-02,0.2277D-02,0.2289D-02,0.2313D-02,0.2346D-02,0.2387D-02,
- &0.2441D-02,0.2503D-02,0.2575D-02,0.2660D-02,0.2755D-02,0.2859D-02,
- &0.2974D-02,0.3099D-02,0.3232D-02,0.3374D-02,0.3523D-02,0.3680D-02,
- &0.3841D-02,0.4010D-02,0.4183D-02,0.4363D-02,0.4552D-02,0.4754D-02,
- &0.4976D-02,0.5229D-02,0.5526D-02,0.5885D-02,0.6313D-02,0.6782D-02,
- &0.6832D-02,0.6879D-02,0.6924D-02,0.6966D-02,0.7004D-02,0.7038D-02,
- &0.7067D-02,0.7091D-02,0.7108D-02,0.7117D-02,0.7116D-02,0.7105D-02,
- &0.7081D-02,0.7041D-02,0.6982D-02,0.6899D-02,0.6786D-02,0.6631D-02,
- &0.6421D-02,0.6123D-02,0.5672D-02,0.4871D-02/
- DATA (XPV(I,6,3),I=1,100)/
- &0.1167D-01,0.1141D-01,0.1105D-01,0.1060D-01,0.1005D-01,0.9414D-02,
- &0.8715D-02,0.8245D-02,0.8024D-02,0.7730D-02,0.7367D-02,0.6937D-02,
- &0.6451D-02,0.6013D-02,0.5853D-02,0.5637D-02,0.5366D-02,0.5044D-02,
- &0.4680D-02,0.4403D-02,0.4259D-02,0.4069D-02,0.3839D-02,0.3571D-02,
- &0.3331D-02,0.3212D-02,0.3055D-02,0.2866D-02,0.2654D-02,0.2540D-02,
- &0.2413D-02,0.2260D-02,0.2114D-02,0.2014D-02,0.1892D-02,0.1773D-02,
- &0.1680D-02,0.1572D-02,0.1488D-02,0.1398D-02,0.1320D-02,0.1240D-02,
- &0.1173D-02,0.1106D-02,0.1044D-02,0.9874D-03,0.9342D-03,0.8881D-03,
- &0.8442D-03,0.8052D-03,0.7698D-03,0.7399D-03,0.7134D-03,0.6903D-03,
- &0.6722D-03,0.6574D-03,0.6463D-03,0.6397D-03,0.6365D-03,0.6368D-03,
- &0.6405D-03,0.6473D-03,0.6570D-03,0.6695D-03,0.6844D-03,0.7019D-03,
- &0.7213D-03,0.7431D-03,0.7673D-03,0.7943D-03,0.8253D-03,0.8617D-03,
- &0.9063D-03,0.9627D-03,0.1036D-02,0.1133D-02,0.1259D-02,0.1412D-02,
- &0.1430D-02,0.1448D-02,0.1465D-02,0.1482D-02,0.1499D-02,0.1514D-02,
- &0.1529D-02,0.1543D-02,0.1556D-02,0.1567D-02,0.1576D-02,0.1583D-02,
- &0.1587D-02,0.1588D-02,0.1586D-02,0.1578D-02,0.1563D-02,0.1539D-02,
- &0.1504D-02,0.1448D-02,0.1358D-02,0.1189D-02/
- DATA (XPV(I,6,4),I=1,100)/
- &0.1216D-01,0.1189D-01,0.1153D-01,0.1107D-01,0.1051D-01,0.9868D-02,
- &0.9154D-02,0.8677D-02,0.8454D-02,0.8157D-02,0.7787D-02,0.7349D-02,
- &0.6851D-02,0.6404D-02,0.6244D-02,0.6025D-02,0.5749D-02,0.5420D-02,
- &0.5047D-02,0.4764D-02,0.4621D-02,0.4429D-02,0.4195D-02,0.3920D-02,
- &0.3677D-02,0.3559D-02,0.3402D-02,0.3211D-02,0.2996D-02,0.2884D-02,
- &0.2759D-02,0.2608D-02,0.2463D-02,0.2369D-02,0.2251D-02,0.2138D-02,
- &0.2053D-02,0.1952D-02,0.1879D-02,0.1800D-02,0.1736D-02,0.1670D-02,
- &0.1619D-02,0.1572D-02,0.1531D-02,0.1498D-02,0.1470D-02,0.1454D-02,
- &0.1442D-02,0.1439D-02,0.1442D-02,0.1455D-02,0.1475D-02,0.1502D-02,
- &0.1539D-02,0.1584D-02,0.1637D-02,0.1699D-02,0.1769D-02,0.1847D-02,
- &0.1934D-02,0.2027D-02,0.2128D-02,0.2235D-02,0.2348D-02,0.2468D-02,
- &0.2591D-02,0.2721D-02,0.2857D-02,0.3001D-02,0.3158D-02,0.3333D-02,
- &0.3538D-02,0.3788D-02,0.4102D-02,0.4506D-02,0.5022D-02,0.5648D-02,
- &0.5720D-02,0.5792D-02,0.5862D-02,0.5931D-02,0.5997D-02,0.6060D-02,
- &0.6120D-02,0.6176D-02,0.6226D-02,0.6271D-02,0.6308D-02,0.6337D-02,
- &0.6354D-02,0.6359D-02,0.6348D-02,0.6316D-02,0.6257D-02,0.6163D-02,
- &0.6019D-02,0.5797D-02,0.5436D-02,0.4755D-02/
- DATA (XPV(I,7,0),I=1,100)/
- &0.6367D+00,0.6216D+00,0.6010D+00,0.5752D+00,0.5440D+00,0.5081D+00,
- &0.4686D+00,0.4418D+00,0.4287D+00,0.4116D+00,0.3907D+00,0.3662D+00,
- &0.3385D+00,0.3137D+00,0.3045D+00,0.2923D+00,0.2772D+00,0.2594D+00,
- &0.2393D+00,0.2241D+00,0.2163D+00,0.2060D+00,0.1936D+00,0.1792D+00,
- &0.1665D+00,0.1602D+00,0.1520D+00,0.1421D+00,0.1311D+00,0.1252D+00,
- &0.1187D+00,0.1109D+00,0.1035D+00,0.9842D-01,0.9228D-01,0.8630D-01,
- &0.8164D-01,0.7624D-01,0.7200D-01,0.6747D-01,0.6355D-01,0.5948D-01,
- &0.5601D-01,0.5255D-01,0.4926D-01,0.4620D-01,0.4326D-01,0.4061D-01,
- &0.3801D-01,0.3557D-01,0.3324D-01,0.3109D-01,0.2903D-01,0.2705D-01,
- &0.2521D-01,0.2344D-01,0.2175D-01,0.2018D-01,0.1868D-01,0.1725D-01,
- &0.1589D-01,0.1460D-01,0.1337D-01,0.1219D-01,0.1107D-01,0.9999D-02,
- &0.8975D-02,0.8003D-02,0.7079D-02,0.6199D-02,0.5369D-02,0.4581D-02,
- &0.3839D-02,0.3144D-02,0.2492D-02,0.1883D-02,0.1320D-02,0.8054D-03,
- &0.7523D-03,0.7006D-03,0.6504D-03,0.6016D-03,0.5543D-03,0.5084D-03,
- &0.4640D-03,0.4210D-03,0.3796D-03,0.3397D-03,0.3011D-03,0.2644D-03,
- &0.2292D-03,0.1957D-03,0.1640D-03,0.1342D-03,0.1063D-03,0.8046D-04,
- &0.5699D-04,0.3611D-04,0.1829D-04,0.4453D-05/
- DATA (XPV(I,7,1),I=1,100)/
- &0.1667D-01,0.1629D-01,0.1577D-01,0.1511D-01,0.1431D-01,0.1340D-01,
- &0.1239D-01,0.1171D-01,0.1139D-01,0.1097D-01,0.1045D-01,0.9835D-02,
- &0.9139D-02,0.8514D-02,0.8286D-02,0.7979D-02,0.7594D-02,0.7137D-02,
- &0.6621D-02,0.6230D-02,0.6029D-02,0.5762D-02,0.5438D-02,0.5061D-02,
- &0.4726D-02,0.4560D-02,0.4342D-02,0.4078D-02,0.3784D-02,0.3626D-02,
- &0.3451D-02,0.3240D-02,0.3038D-02,0.2902D-02,0.2735D-02,0.2572D-02,
- &0.2446D-02,0.2299D-02,0.2185D-02,0.2064D-02,0.1960D-02,0.1852D-02,
- &0.1762D-02,0.1673D-02,0.1591D-02,0.1516D-02,0.1446D-02,0.1386D-02,
- &0.1329D-02,0.1278D-02,0.1233D-02,0.1195D-02,0.1162D-02,0.1134D-02,
- &0.1113D-02,0.1096D-02,0.1084D-02,0.1078D-02,0.1077D-02,0.1081D-02,
- &0.1090D-02,0.1103D-02,0.1119D-02,0.1140D-02,0.1164D-02,0.1191D-02,
- &0.1220D-02,0.1253D-02,0.1288D-02,0.1325D-02,0.1367D-02,0.1413D-02,
- &0.1466D-02,0.1530D-02,0.1609D-02,0.1708D-02,0.1830D-02,0.1967D-02,
- &0.1981D-02,0.1995D-02,0.2008D-02,0.2021D-02,0.2032D-02,0.2042D-02,
- &0.2051D-02,0.2058D-02,0.2063D-02,0.2066D-02,0.2066D-02,0.2063D-02,
- &0.2057D-02,0.2045D-02,0.2029D-02,0.2005D-02,0.1973D-02,0.1929D-02,
- &0.1869D-02,0.1784D-02,0.1655D-02,0.1427D-02/
- DATA (XPV(I,7,2),I=1,100)/
- &0.1825D-01,0.1787D-01,0.1734D-01,0.1666D-01,0.1584D-01,0.1488D-01,
- &0.1382D-01,0.1312D-01,0.1280D-01,0.1236D-01,0.1182D-01,0.1117D-01,
- &0.1044D-01,0.9780D-02,0.9550D-02,0.9233D-02,0.8830D-02,0.8348D-02,
- &0.7799D-02,0.7387D-02,0.7184D-02,0.6906D-02,0.6565D-02,0.6163D-02,
- &0.5808D-02,0.5642D-02,0.5418D-02,0.5140D-02,0.4827D-02,0.4670D-02,
- &0.4493D-02,0.4274D-02,0.4067D-02,0.3936D-02,0.3769D-02,0.3607D-02,
- &0.3489D-02,0.3347D-02,0.3246D-02,0.3136D-02,0.3050D-02,0.2959D-02,
- &0.2893D-02,0.2830D-02,0.2777D-02,0.2736D-02,0.2703D-02,0.2687D-02,
- &0.2678D-02,0.2680D-02,0.2693D-02,0.2720D-02,0.2757D-02,0.2805D-02,
- &0.2867D-02,0.2940D-02,0.3024D-02,0.3123D-02,0.3233D-02,0.3355D-02,
- &0.3489D-02,0.3632D-02,0.3785D-02,0.3948D-02,0.4118D-02,0.4297D-02,
- &0.4479D-02,0.4668D-02,0.4863D-02,0.5063D-02,0.5274D-02,0.5499D-02,
- &0.5750D-02,0.6038D-02,0.6381D-02,0.6800D-02,0.7306D-02,0.7864D-02,
- &0.7924D-02,0.7980D-02,0.8034D-02,0.8085D-02,0.8131D-02,0.8172D-02,
- &0.8208D-02,0.8236D-02,0.8258D-02,0.8270D-02,0.8271D-02,0.8259D-02,
- &0.8233D-02,0.8188D-02,0.8122D-02,0.8027D-02,0.7897D-02,0.7721D-02,
- &0.7480D-02,0.7139D-02,0.6624D-02,0.5709D-02/
- DATA (XPV(I,7,3),I=1,100)/
- &0.1630D-01,0.1592D-01,0.1540D-01,0.1475D-01,0.1396D-01,0.1305D-01,
- &0.1205D-01,0.1138D-01,0.1107D-01,0.1065D-01,0.1013D-01,0.9526D-02,
- &0.8839D-02,0.8222D-02,0.7995D-02,0.7690D-02,0.7310D-02,0.6860D-02,
- &0.6352D-02,0.5966D-02,0.5766D-02,0.5502D-02,0.5183D-02,0.4813D-02,
- &0.4483D-02,0.4318D-02,0.4103D-02,0.3844D-02,0.3555D-02,0.3399D-02,
- &0.3225D-02,0.3018D-02,0.2820D-02,0.2685D-02,0.2521D-02,0.2360D-02,
- &0.2235D-02,0.2091D-02,0.1978D-02,0.1857D-02,0.1754D-02,0.1647D-02,
- &0.1557D-02,0.1468D-02,0.1385D-02,0.1310D-02,0.1239D-02,0.1177D-02,
- &0.1118D-02,0.1066D-02,0.1018D-02,0.9774D-03,0.9411D-03,0.9091D-03,
- &0.8835D-03,0.8619D-03,0.8450D-03,0.8338D-03,0.8268D-03,0.8242D-03,
- &0.8257D-03,0.8312D-03,0.8403D-03,0.8529D-03,0.8686D-03,0.8875D-03,
- &0.9087D-03,0.9331D-03,0.9605D-03,0.9915D-03,0.1028D-02,0.1070D-02,
- &0.1124D-02,0.1191D-02,0.1279D-02,0.1395D-02,0.1545D-02,0.1725D-02,
- &0.1746D-02,0.1766D-02,0.1786D-02,0.1805D-02,0.1823D-02,0.1841D-02,
- &0.1857D-02,0.1872D-02,0.1886D-02,0.1897D-02,0.1907D-02,0.1913D-02,
- &0.1916D-02,0.1915D-02,0.1909D-02,0.1897D-02,0.1877D-02,0.1846D-02,
- &0.1799D-02,0.1729D-02,0.1618D-02,0.1411D-02/
- DATA (XPV(I,7,4),I=1,100)/
- &0.1678D-01,0.1640D-01,0.1587D-01,0.1522D-01,0.1442D-01,0.1350D-01,
- &0.1249D-01,0.1181D-01,0.1149D-01,0.1107D-01,0.1055D-01,0.9935D-02,
- &0.9238D-02,0.8611D-02,0.8385D-02,0.8078D-02,0.7694D-02,0.7237D-02,
- &0.6721D-02,0.6331D-02,0.6132D-02,0.5867D-02,0.5545D-02,0.5170D-02,
- &0.4837D-02,0.4676D-02,0.4462D-02,0.4202D-02,0.3912D-02,0.3761D-02,
- &0.3592D-02,0.3388D-02,0.3194D-02,0.3068D-02,0.2911D-02,0.2759D-02,
- &0.2646D-02,0.2513D-02,0.2415D-02,0.2310D-02,0.2226D-02,0.2139D-02,
- &0.2072D-02,0.2010D-02,0.1955D-02,0.1911D-02,0.1875D-02,0.1852D-02,
- &0.1836D-02,0.1830D-02,0.1833D-02,0.1848D-02,0.1872D-02,0.1905D-02,
- &0.1950D-02,0.2004D-02,0.2069D-02,0.2145D-02,0.2231D-02,0.2327D-02,
- &0.2432D-02,0.2547D-02,0.2669D-02,0.2800D-02,0.2937D-02,0.3082D-02,
- &0.3232D-02,0.3389D-02,0.3553D-02,0.3727D-02,0.3917D-02,0.4130D-02,
- &0.4378D-02,0.4681D-02,0.5061D-02,0.5547D-02,0.6163D-02,0.6897D-02,
- &0.6981D-02,0.7063D-02,0.7144D-02,0.7221D-02,0.7296D-02,0.7367D-02,
- &0.7433D-02,0.7494D-02,0.7548D-02,0.7595D-02,0.7632D-02,0.7658D-02,
- &0.7671D-02,0.7667D-02,0.7644D-02,0.7595D-02,0.7513D-02,0.7388D-02,
- &0.7203D-02,0.6923D-02,0.6476D-02,0.5646D-02/
-
-C..fetching pdfs
- DO 5 IP=-6,6
- XPDF(IP)=ZEROD
- 5 CONTINUE
- DO 2 I=1,IX
- ENT(I)=LOG10(XT(I))
- 2 CONTINUE
- NA(1)=IX
- NA(2)=IQ
- DO 3 I=1,IQ
- ENT(IX+I)=LOG10(Q2T(I))
- 3 CONTINUE
- ARG(1)=LOG10(X)
- ARG(2)=LOG10(Q2)
-C..various flavours (u-->2,d-->1)
- XPDF(0)=PHO_DBFINT(NARG,ARG,NA,ENT,XPV(1,1,0))
- XPDF(1)=PHO_DBFINT(NARG,ARG,NA,ENT,XPV(1,1,1))
- XPDF(2)=PHO_DBFINT(NARG,ARG,NA,ENT,XPV(1,1,2))
- XPDF(3)=PHO_DBFINT(NARG,ARG,NA,ENT,XPV(1,1,3))
- XPDF(4)=PHO_DBFINT(NARG,ARG,NA,ENT,XPV(1,1,4))
- DO 21 JF=1,4
- XPDF(-JF)=XPDF(JF)
- 21 CONTINUE
-
- END
-
-CDECK ID>, PHO_DBFINT
- DOUBLE PRECISION FUNCTION PHO_DBFINT(NARG,ARG,NA,ENT,TABLE)
-C***********************************************************************
-C
-C routine based on CERN library E104
-C
-C multi-dimensional interpolation routine, needed for PHOJET
-C internal cross section tables and several PDF sets (GRV98 and AGL)
-C
-C changed to avoid recursive function calls (R.Engel, 09/98)
-C
-C***********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- INTEGER NA(NARG), INDEX(32)
- DOUBLE PRECISION ARG(NARG),ENT(NARG),TABLE(*),WEIGHT(32)
-
- DATA ZEROD/0.D0/
- DATA ONED/1.D0/
-
- DBFINT = ZEROD
- PHO_DBFINT = ZEROD
- IF(NARG .LT. 1 .OR. NARG .GT. 5) RETURN
-
- LMAX = 0
- ISTEP = 1
- KNOTS = 1
- INDEX(1) = 1
- WEIGHT(1) = ONED
- DO 100 N = 1, NARG
- X = ARG(N)
- NDIM = NA(N)
- LOCA = LMAX
- LMIN = LMAX + 1
- LMAX = LMAX + NDIM
- IF(NDIM .GT. 2) GOTO 10
- IF(NDIM .EQ. 1) GOTO 100
- H = X - ENT(LMIN)
- IF(H .EQ. ZEROD) GOTO 90
- ISHIFT = ISTEP
- IF(X-ENT(LMIN+1) .EQ. ZEROD) GOTO 21
- ISHIFT = 0
- ETA = H / (ENT(LMIN+1) - ENT(LMIN))
- GOTO 30
- 10 LOCB = LMAX + 1
- 11 LOCC = (LOCA+LOCB) / 2
- IF(X-ENT(LOCC)) 12, 20, 13
- 12 LOCB = LOCC
- GOTO 14
- 13 LOCA = LOCC
- 14 IF(LOCB-LOCA .GT. 1) GOTO 11
- LOCA = MIN ( MAX (LOCA,LMIN), LMAX-1 )
- ISHIFT = (LOCA - LMIN) * ISTEP
- ETA = (X - ENT(LOCA)) / (ENT(LOCA+1) - ENT(LOCA))
- GOTO 30
- 20 ISHIFT = (LOCC - LMIN) * ISTEP
- 21 DO 22 K = 1, KNOTS
- INDEX(K) = INDEX(K) + ISHIFT
- 22 CONTINUE
- GOTO 90
- 30 DO 31 K = 1, KNOTS
- INDEX(K) = INDEX(K) + ISHIFT
- INDEX(K+KNOTS) = INDEX(K) + ISTEP
- WEIGHT(K+KNOTS) = WEIGHT(K) * ETA
- WEIGHT(K) = WEIGHT(K) - WEIGHT(K+KNOTS)
- 31 CONTINUE
- KNOTS = 2*KNOTS
- 90 ISTEP = ISTEP * NDIM
- 100 CONTINUE
- DO 200 K = 1, KNOTS
- I = INDEX(K)
- DBFINT = DBFINT + WEIGHT(K) * TABLE(I)
- 200 CONTINUE
-
- PHO_DBFINT = DBFINT
-
- END
-
-CDECK ID>, PHVAL
- SUBROUTINE PHVAL(IGRP,ISET,XI,SCALE2,PD,IRET)
-C**********************************************************************
-C
-C dummy subroutine, remove to link PHOLIB
-C
-C**********************************************************************
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- DIMENSION PD(-6:6)
- END