4 *CMZ :S E26/04/91 11.11.54 by Bryan Webber
6 *-- Author : Bryan Webber
8 C-----------------------------------------------------------------------
10 C SUBROUTINE STRUCTM(X,QSCA,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GLU)
12 C-----------------------------------------------------------------------
14 C DUMMY SUBROUTINE: DELETE IF YOU USE PDFLIB CERN-LIBRARY
16 C PACKAGE FOR NUCLEON STRUCTURE FUNCTIONS
18 C-----------------------------------------------------------------------
20 C DOUBLE PRECISION X,QSCA,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GLU
24 C 10 FORMAT(/10X,'STRUCTM CALLED BUT NOT LINKED')
30 C-----------------------------------------------------------------------
32 C...SaSgam version 2 - parton distributions of the photon
34 C...by Gerhard A. Schuler and Torbjorn Sjostrand
36 C...For further information see Z. Phys. C68 (1995) 607
38 C...and CERN-TH/96-04 and LU TP 96-2.
40 C...Program last changed on 18 January 1996.
44 C!!!Note that one further call parameter - IP2 - has been added
46 C!!!to the SASGAM argument list compared with version 1.
50 C...The user should only need to call the SASGAM routine,
52 C...which in turn calls the auxiliary routines SASVMD, SASANO,
54 C...SASBEH and SASDIR. The package is self-contained.
58 C...One particular aspect of these parametrizations is that F2 for
60 C...the photon is not obtained just as the charge-squared-weighted
62 C...sum of quark distributions, but differ in the treatment of
64 C...heavy flavours (in F2 the DIS relation W2 = Q2*(1-x)/x restricts
66 C...the kinematics range of heavy-flavour production, but the same
68 C...kinematics is not relevant e.g. for jet production) and, for the
70 C...'MSbar' fits, in the addition of a Cgamma term related to the
72 C...separation of direct processes. Schematically:
74 C...PDF = VMD (rho, omega, phi) + anomalous (d, u, s, c, b).
76 C...F2 = VMD (rho, omega, phi) + anomalous (d, u, s) +
78 C... Bethe-Heitler (c, b) (+ Cgamma (d, u, s)).
80 C...The J/psi and Upsilon states have not been included in the VMD sum,
82 C...but low c and b masses in the other components should compensate
84 C...for this in a duality sense.
88 C...The calling sequence is the following:
90 C CALL SASGAM(ISET,X,Q2,P2,IP2,F2GM,XPDFGM)
92 C...with the following declaration statement:
94 C DIMENSION XPDFGM(-6:6)
96 C...and, optionally, further information in:
98 C COMMON/SASCOM/XPVMD(-6:6),XPANL(-6:6),XPANH(-6:6),XPBEH(-6:6),
102 C COMMON/SASVAL/VXPVMD(-6:6),VXPANL(-6:6),VXPANH(-6:6),VXPDGM(-6:6)
104 C...Input: ISET = 1 : SaS set 1D ('DIS', Q0 = 0.6 GeV)
106 C = 2 : SaS set 1M ('MSbar', Q0 = 0.6 GeV)
108 C = 3 : SaS set 2D ('DIS', Q0 = 2 GeV)
110 C = 4 : SaS set 2M ('MSbar', Q0 = 2 GeV)
116 C P2 : P2 value; should be = 0. for an on-shell photon.
118 C IP2 : scheme used to evaluate off-shell anomalous component.
120 C = 0 : recommended default, see = 7.
122 C = 1 : dipole dampening by integration; very time-consuming.
124 C = 2 : P_0^2 = max( Q_0^2, P^2 )
126 C = 3 : P'_0^2 = Q_0^2 + P^2.
128 C = 4 : P_{eff} that preserves momentum sum.
130 C = 5 : P_{int} that preserves momentum and average
134 C = 6 : P_{eff}, matched to P_0 in P2 -> Q2 limit.
136 C = 7 : P_{eff}, matched to P_0 in P2 -> Q2 limit.
138 C...Output: F2GM : F2 value of the photon (including factors of alpha_em).
140 C XPFDGM : x times parton distribution functions of the photon,
142 C with elements 0 = g, 1 = d, 2 = u, 3 = s, 4 = c, 5 = b,
144 C 6 = t (always empty!), - for antiquarks (result is same).
146 C...The breakdown by component is stored in the commonblock SASCOM,
148 C with elements as above.
150 C XPVMD : rho, omega, phi VMD part only of output.
152 C XPANL : d, u, s anomalous part only of output.
154 C XPANH : c, b anomalous part only of output.
156 C XPBEH : c, b Bethe-Heitler part only of output.
158 C XPDIR : Cgamma (direct contribution) part only of output.
160 C...The above arrays do not distinguish valence and sea contributions,
162 C...although this information is available internally. The additional
164 C...commonblock SASVAL provides the valence part only of the above
166 C...distributions. Array names VXPVMD, VXPANL and VXPANH correspond
168 C...to XPVMD, XPANL and XPANH, while XPBEH and XPDIR are valence only
170 C...and therefore not given doubly. VXPDGM gives the sum of valence
172 C...parts, and so matches XPDFGM. The difference, i.e. XPVMD-VXPVMD
174 C...and so on, gives the sea part only.
178 SUBROUTINE SASGAM(ISET,X,Q2,P2,IP2,F2GM,XPDFGM)
180 C...Purpose: to construct the F2 and parton distributions of the photon
182 C...by summing homogeneous (VMD) and inhomogeneous (anomalous) terms.
184 C...For F2, c and b are included by the Bethe-Heitler formula;
186 C...in the 'MSbar' scheme additionally a Cgamma term is added.
188 DIMENSION XPDFGM(-6:6)
190 COMMON/SASCOM/XPVMD(-6:6),XPANL(-6:6),XPANH(-6:6),XPBEH(-6:6),
194 COMMON/SASVAL/VXPVMD(-6:6),VXPANL(-6:6),VXPANH(-6:6),VXPDGM(-6:6)
196 SAVE /SASCOM/,/SASVAL/
202 DIMENSION XPGA(-6:6), VXPGA(-6:6)
204 C...Charm and bottom masses (low to compensate for J/psi etc.).
206 DATA PMC/1.3/, PMB/4.6/
208 C...alpha_em and alpha_em/(2*pi).
210 DATA AEM/0.007297/, AEM2PI/0.0011614/
212 C...Lambda value for 4 flavours.
216 C...Mixture u/(u+d), = 0.5 for incoherent and = 0.8 for coherent sum.
220 C...VMD couplings f_V**2/(4*pi).
222 DATA FRHO/2.20/, FOMEGA/23.6/, FPHI/18.4/
224 C...Masses for rho (=omega) and phi.
226 DATA PMRHO/0.770/, PMPHI/1.020/
228 C...Number of points in integration for IP2=1.
264 C...Check that input sensible.
266 IF(ISET.LE.0.OR.ISET.GE.5) THEN
268 WRITE(*,*) ' FATAL ERROR: SaSgam called for unknown set'
270 WRITE(*,*) ' ISET = ',ISET
276 IF(X.LE.0..OR.X.GT.1.) THEN
278 WRITE(*,*) ' FATAL ERROR: SaSgam called for unphysical x'
288 C...Set Q0 cut-off parameter as function of set used.
304 C...Scale choice for off-shell photon; common factors.
314 Q2A=Q2+P2*Q02/MAX(Q02,Q2)
316 FACNOR=LOG(Q2/Q02)/NSTEP
318 ELSEIF(IP2.EQ.2) THEN
322 ELSEIF(IP2.EQ.3) THEN
326 Q2A=Q2+P2*Q02/MAX(Q02,Q2)
328 ELSEIF(IP2.EQ.4) THEN
330 P2MX=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
332 & ((Q2+P2)*(Q02+P2)))
334 ELSEIF(IP2.EQ.5) THEN
336 P2MXA=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
338 & ((Q2+P2)*(Q02+P2)))
342 FACNOR=LOG(Q2/P2MXA)/LOG(Q2/P2MX)
344 ELSEIF(IP2.EQ.6) THEN
346 P2MX=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
348 & ((Q2+P2)*(Q02+P2)))
350 P2MX=MAX(0.,1.-P2/Q2)*P2MX+MIN(1.,P2/Q2)*MAX(P2,Q02)
354 P2MXA=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
356 & ((Q2+P2)*(Q02+P2)))
362 P2MX=MAX(0.,1.-P2/Q2)*P2MX+MIN(1.,P2/Q2)*MAX(P2,Q02)
364 P2MXB=MAX(0.,1.-P2/Q2)*P2MXB+MIN(1.,P2/Q2)*P2MXA
366 FACNOR=LOG(Q2/P2MXA)/LOG(Q2/P2MXB)
372 C...Call VMD parametrization for d quark and use to give rho, omega,
374 C...phi. Note dipole dampening for off-shell photon.
376 CALL SASVMD(ISET,1,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
384 FACUD=AEM*(1./FRHO+1./FOMEGA)*(PMRHO**2/(PMRHO**2+P2))**2
386 FACS=AEM*(1./FPHI)*(PMPHI**2/(PMPHI**2+P2))**2
390 XPVMD(KFL)=(FACUD+FACS)*XPGA(KFL)
394 XPVMD(1)=XPVMD(1)+(1.-FRACU)*FACUD*XFVAL
396 XPVMD(2)=XPVMD(2)+FRACU*FACUD*XFVAL
398 XPVMD(3)=XPVMD(3)+FACS*XFVAL
400 XPVMD(-1)=XPVMD(-1)+(1.-FRACU)*FACUD*XFVAL
402 XPVMD(-2)=XPVMD(-2)+FRACU*FACUD*XFVAL
404 XPVMD(-3)=XPVMD(-3)+FACS*XFVAL
406 VXPVMD(1)=(1.-FRACU)*FACUD*XFVAL
408 VXPVMD(2)=FRACU*FACUD*XFVAL
412 VXPVMD(-1)=(1.-FRACU)*FACUD*XFVAL
414 VXPVMD(-2)=FRACU*FACUD*XFVAL
416 VXPVMD(-3)=FACS*XFVAL
422 C...Anomalous parametrizations for different strategies
424 C...for off-shell photons; except full integration.
428 C...Call anomalous parametrization for d + u + s.
430 CALL SASANO(-3,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
434 XPANL(KFL)=FACNOR*XPGA(KFL)
436 VXPANL(KFL)=FACNOR*VXPGA(KFL)
442 C...Call anomalous parametrization for c and b.
444 CALL SASANO(4,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
448 XPANH(KFL)=FACNOR*XPGA(KFL)
450 VXPANH(KFL)=FACNOR*VXPGA(KFL)
454 CALL SASANO(5,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
458 XPANH(KFL)=XPANH(KFL)+FACNOR*XPGA(KFL)
460 VXPANH(KFL)=VXPANH(KFL)+FACNOR*VXPGA(KFL)
468 C...Special option: loop over flavours and integrate over k2.
474 Q2STEP=Q02*(Q2/Q02)**((ISTEP-0.5)/NSTEP)
476 IF((KF.EQ.4.AND.Q2STEP.LT.PMC**2).OR.
478 & (KF.EQ.5.AND.Q2STEP.LT.PMB**2)) GOTO 160
480 CALL SASVMD(0,KF,X,Q2,Q2STEP,ALAM,XPGA,VXPGA)
482 FACQ=AEM2PI*(Q2STEP/(Q2STEP+P2))**2*FACNOR
484 IF(MOD(KF,2).EQ.0) FACQ=FACQ*(8./9.)
486 IF(MOD(KF,2).EQ.1) FACQ=FACQ*(2./9.)
490 IF(KF.LE.3) XPANL(KFL)=XPANL(KFL)+FACQ*XPGA(KFL)
492 IF(KF.GE.4) XPANH(KFL)=XPANH(KFL)+FACQ*XPGA(KFL)
494 IF(KF.LE.3) VXPANL(KFL)=VXPANL(KFL)+FACQ*VXPGA(KFL)
496 IF(KF.GE.4) VXPANH(KFL)=VXPANH(KFL)+FACQ*VXPGA(KFL)
508 C...Call Bethe-Heitler term expression for charm and bottom.
510 CALL SASBEH(4,X,Q2,P2,PMC**2,XPBH)
516 CALL SASBEH(5,X,Q2,P2,PMB**2,XPBH)
524 C...For MSbar subtraction call C^gamma term expression for d, u, s.
526 IF(ISET.EQ.2.OR.ISET.EQ.4) THEN
528 CALL SASDIR(X,Q2,P2,Q02,XPGA)
540 C...Store result in output array.
546 IF(IABS(KFL).EQ.2.OR.IABS(KFL).EQ.4) CHSQ=4./9.
548 XPF2=XPVMD(KFL)+XPANL(KFL)+XPBEH(KFL)+XPDIR(KFL)
550 IF(KFL.NE.0) F2GM=F2GM+CHSQ*XPF2
552 XPDFGM(KFL)=XPVMD(KFL)+XPANL(KFL)+XPANH(KFL)
554 VXPDGM(KFL)=VXPVMD(KFL)+VXPANL(KFL)+VXPANH(KFL)