Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:21:12

0001  
0002 C*********************************************************************
0003  
0004 C...PYMAEL
0005 C...Auxiliary to PYSHOW and PYPTFS.
0006 C...Matrix elements for gluon (or photon) emission from
0007 C...a two-body state; to be used by the parton shower routine.
0008 C...Here X_i = 2 E_i/E_cm, R_i = m_i/E_cm and
0009 C...1/sigma_0 d(sigma)/d(x_1)d(x_2) =
0010 C...      = (alpha-strong/2 pi) * CF * PYMAEL,
0011 C...i.e. normalization is such that one recovers the familiar
0012 C...(X1**2+X2**2)/((1-X1)*(1-X2)) for the massless case.
0013 C...Coupling structure:
0014 C...NI =  6- 9 : eikonal soft-gluon expression (spin-independent)
0015 C...   = 11-14 : V -> q qbar (V = vector/axial vector colour singlet)
0016 C...   = 16-19 : q -> q V
0017 C...   = 21-24 : S -> q qbar (S = scalar/pseudoscalar colour singlet)
0018 C...   = 26-29 : q -> q S
0019 C...   = 31-34 : V -> ~q ~qbar  (~q = squark)
0020 C...   = 36-39 : ~q -> ~q V
0021 C...   = 41-44 : S -> ~q ~qbar
0022 C...   = 46-49 : ~q -> ~q S
0023 C...   = 51-54 : chi -> q ~qbar (chi = neutralino/chargino)
0024 C...   = 56-59 : ~q -> q chi
0025 C...   = 61-64 : q -> ~q chi
0026 C...   = 66-69 : ~g -> q ~qbar
0027 C...   = 71-74 : ~q -> q ~g
0028 C...   = 76-79 : q -> ~q ~g
0029 C...   = 81-84 : (9/4)*(eikonal) for gg -> ~g ~g
0030 C...Note that the order of the decay products is important.
0031 C...In each set of four, the variants are ordered as:
0032 C...ICOMBI = 1 : pure non-gamma5, i.e. vector/scalar/...
0033 C...       = 2 : pure gamma5, i.e. axial vector/pseudoscalar/....
0034 C...       = 3 : mixture alpha*(ICOMBI=1) + (1-alpha)*(ICOMBI=2)
0035 C...       = 4 : mixture (ICOMBI=1) +- (ICOMBI=2)
0036  
0037       FUNCTION PYMAEL(NI,X1,X2,R1,R2,ALPHA)
0038  
0039 C...Double precision and integer declarations.
0040       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0041       IMPLICIT INTEGER(I-N)
0042  
0043 C...Check input values. Return zero outside allowed phase space.
0044       PYMAEL=0D0
0045       IF(X1.LE.2D0*R1.OR.X1.GE.1D0+R1**2-R2**2) RETURN
0046       IF(X2.LE.2D0*R2.OR.X2.GE.1D0+R2**2-R1**2) RETURN
0047       IF(X1+X2.LE.1D0+(R1+R2)**2) RETURN
0048       IF((2D0-2D0*X1-2D0*X2+X1*X2+2D0*R1**2+2D0*R2**2)**2.GE.
0049      &(X1**2-4D0*R1**2)*(X2**2-4D0*R2**2)) RETURN
0050       ALPCOR=MAX(0D0,MIN(1D0,ALPHA))
0051  
0052 C...Initial values and flags.
0053       ICLASS=NI/5
0054       ICOMBI=NI-5*ICLASS
0055       ISSET1=0
0056       ISSET2=0
0057       ISSET4=0
0058  
0059 C... Phase space.
0060       PS=SQRT((1D0-(R1+R2)**2)*(1D0-(R1-R2)**2))
0061  
0062 C...Eikonal expression; also acts as default.
0063       IF(ICLASS.LE.1.OR.ICLASS.GE.17.OR.ICOMBI.EQ.0) THEN
0064         RLO=PS
0065         IF(ICOMBI.EQ.0.OR.ICOMBI.EQ.1) THEN
0066           ANUM=0D0
0067         ELSEIF(ICOMBI.EQ.2) THEN
0068           ANUM=(2D0-X1-X2)**2
0069         ELSEIF(ICOMBI.EQ.3) THEN
0070           ANUM=ALPCOR*(2D0-X1-X2)**2
0071         ELSE
0072           ANUM=0.5D0*(2D0-X1-X2)**2
0073         ENDIF
0074         RFO=PS*2D0*((X1+X2-1D0+ANUM-R1**2-R2**2)/
0075      &       ((1D0+R1**2-R2**2-X1)*(1D0+R2**2-R1**2-X2))-
0076      &       R1**2/(1D0+R2**2-R1**2-X2)**2-
0077      &       R2**2/(1D0+R1**2-R2**2-X1)**2)
0078         ICOMBI=0
0079  
0080 C...V -> q qbar (V = gamma*/Z0/W+-/...).
0081       ELSEIF(ICLASS.EQ.2) THEN
0082         IF(ICOMBI.EQ.1.OR.ICOMBI.EQ.3) THEN
0083         RLO1=PS*(2-R1**2-R1**4+6*R1*R2-R2**2+2*R1**2*R2**2-R2**4)/2.D0
0084         RFO1=-1.D0*(3+6*R1**2+R1**4-6*R1*R2+6*R1**3*R2-2*R2**2
0085      &       -6*R1**2*R2**2+6*R1*R2**3+R2**4-3*X1+6*R1*R2*X1
0086      &       +2*R2**2*X1+X1**2-2*R1**2*X1**2+3*R1**2*(2-X1-X2)
0087      &       +6*R1*R2*(2-X1-X2)-R2**2*(2-X1-X2)-2*X1*(2-X1-X2)
0088      &       -5*R1**2*X1*(2-X1-X2)+R2**2*X1*(2-X1-X2)+X1**2*(2-X1-X2)
0089      &       -3*(2-X1-X2)**2-3*R1**2*(2-X1-X2)**2+R2**2*(2-X1-X2)**2
0090      &       +2*X1*(2-X1-X2)**2+(2-X1-X2)**3-X2)/
0091      &       (-1+R1**2-R2**2+X2)**2
0092         RFO1=RFO1-2*(-3+R1**2-6*R1*R2+6*R1**3*R2+3*R2**2-4*R1**2*R2**2
0093      &       +6*R1*R2**3+2*X1+3*R1**2*X1+R2**2*X1-X1**2-R1**2*X1**2
0094      &       -R2**2*X1**2+4*(2-X1-X2)+2*R1**2*(2-X1-X2)+3*R1*R2*(2-X1
0095      &       -X2)-R2**2*(2-X1-X2)-3*X1*(2-X1-X2)-2*R1**2*X1*(2-X1-X2)
0096      &       +X1**2*(2-X1-X2)-(2-X1-X2)**2-R1**2*(2-X1-X2)**2+R1*R2*(2
0097      &       -X1-X2)**2+X1*(2-X1-X2)**2)/
0098      &       (-1-R1**2+R2**2+X1)/(-1+R1**2-R2**2+X2)
0099         RFO1=RFO1-1.D0*(-1+2*R1**2+R1**4+6*R1*R2+6*R1**3*R2-2*R2**2
0100      &       -6*R1**2*R2**2+6*R1*R2**3+R2**4-X1-2*R1**2*X1-6*R1*R2*X1
0101      &       +8*R2**2*X1+X1**2-2*R2**2*X1**2-R1**2*(2-X1-X2)+R2**2*(2
0102      &       -X1-X2)-R1**2*X1*(2-X1-X2)+R2**2*X1*(2-X1-X2)+X1**2*
0103      &       (2-X1-X2)+X2)/(-1-R1**2+R2**2+X1)**2
0104         RFO1=RFO1/2.D0
0105         ISSET1=1
0106         ENDIF
0107         IF(ICOMBI.EQ.2.OR.ICOMBI.EQ.3) THEN
0108         RLO2=PS*(2-R1**2-R1**4-6*R1*R2-R2**2+2*R1**2*R2**2-R2**4)/2.D0
0109         RFO2=-1*(3+6*R1**2+R1**4+6*R1*R2-6*R1**3*R2-2*R2**2
0110      &       -6*R1**2*R2**2-6*R1*R2**3+R2**4-3*X1-6*R1*R2*X1+2*R2**2*X1
0111      &       +X1**2-2*R1**2*X1**2+3*R1**2*(2-X1-X2)-6*R1*R2*(2-X1-X2)
0112      &       -R2**2*(2-X1-X2)-2*X1*(2-X1-X2)-5*R1**2*X1*(2-X1-X2)
0113      &       +R2**2*X1*(2-X1-X2)+X1**2*(2-X1-X2)-3*(2-X1-X2)**2
0114      &       -3*R1**2*(2-X1-X2)**2+R2**2*(2-X1-X2)**2+2*X1*(2-X1-X2)**2
0115      &       +(2-X1-X2)**3-X2)/(-1+R1**2-R2**2+X2)**2
0116         RFO2=RFO2-2*(-3+R1**2+6*R1*R2-6*R1**3*R2+3*R2**2-4*R1**2*R2**2
0117      &       -6*R1*R2**3+2*X1+3*R1**2*X1+R2**2*X1-X1**2-R1**2*X1**2
0118      &       -R2**2*X1**2+4*(2-X1-X2)+2*R1**2*(2-X1-X2)-3*R1*R2*(2-X1
0119      &       -X2)-R2**2*(2-X1-X2)-3*X1*(2-X1-X2)-2*R1**2*X1*(2-X1-X2)
0120      &       +X1**2*(2-X1-X2)-(2-X1-X2)**2-R1**2*(2-X1-X2)**2-R1*R2*(2
0121      &       -X1-X2)**2+X1*(2-X1-X2)**2)/
0122      &       (-1-R1**2+R2**2+X1)/(-1+R1**2-R2**2+X2)
0123         RFO2=RFO2-1*(-1+2*R1**2+R1**4-6*R1*R2-6*R1**3*R2-2*R2**2
0124      &       -6*R1**2*R2**2-6*R1*R2**3+R2**4-X1-2*R1**2*X1+6*R1*R2*X1
0125      &       +8*R2**2*X1+X1**2-2*R2**2*X1**2-R1**2*(2-X1-X2)+R2**2*(2-X1
0126      &       -X2)-R1**2*X1*(2-X1-X2)+R2**2*X1*(2-X1-X2)+X1**2*(2-X1-X2)
0127      &       +X2)/(-1-R1**2+R2**2+X1)**2
0128         RFO2=RFO2/2.D0
0129         ISSET2=1
0130         ENDIF
0131         IF(ICOMBI.EQ.4) THEN
0132         RLO4=PS*(2D0-R1**2-R1**4-R2**2+2D0*R1**2*R2**2-R2**4)/2D0
0133         RFO4=(1-R1**4+6*R1**2*R2**2-R2**4+X1+3*R1**2*X1-9*R2**2*X1
0134      &       -3*X1**2-R1**2*X1**2+3*R2**2*X1**2+X1**3-X2-R1**2*X2
0135      &       +R2**2*X2-R1**2*X1*X2+R2**2*X1*X2+X1**2*X2)/
0136      &       (-1-R1**2+R2**2+X1)**2
0137         RFO4=RFO4
0138      &       -2*(1+R1**2+R2**2-4*R1**2*R2**2+R1**2*X1+2*R2**2*X1-X1**2
0139      &       -R2**2*X1**2+2*R1**2*X2+R2**2*X2-3*X1*X2+X1**2*X2-X2**2
0140      &       -R1**2*X2**2+X1*X2**2)/
0141      &       (-1-R1**2+R2**2+X1)/(-1+R1**2-R2**2+X2)
0142         RFO4=RFO4+(1-R1**4+6*R1**2*R2**2-R2**4-X1+R1**2*X1-R2**2*X1+X2
0143      &       -9*R1**2*X2+3*R2**2*X2+R1**2*X1*X2-R2**2*X1*X2-3*X2**2
0144      &       +3*R1**2*X2**2-R2**2*X2**2+X1*X2**2+X2**3)/
0145      &       (-1+R1**2-R2**2+X2)**2
0146         RFO4=RFO4/2.D0
0147         ISSET4=1
0148         ENDIF
0149  
0150 C...q -> q V.
0151       ELSEIF(ICLASS.EQ.3) THEN
0152         IF(ICOMBI.EQ.1.OR.ICOMBI.EQ.3) THEN
0153         RLO1=PS*(1D0-2D0*R1**2+R1**4+R2**2-6D0*R1*R2**2
0154      &        +R1**2*R2**2-2D0*R2**4)
0155         RFO1=2*(-1+R1-2*R1**2+2*R1**3-R1**4+R1**5-R2**2+R1*R2**2
0156      &       -5*R1**2*R2**2+R1**3*R2**2-2*R1*R2**4+2*X1-2*R1*X1
0157      &       +2*R1**2*X1-2*R1**3*X1+2*R2**2*X1+5*R1*R2**2*X1
0158      &       +R1**2*R2**2*X1+2*R2**4*X1-X1**2+R1*X1**2-R2**2*X1**2+3*X2
0159      &       +4*R1**2*X2+R1**4*X2+2*R2**2*X2+2*R1**2*R2**2*X2-4*X1*X2
0160      &       -2*R1**2*X1*X2-R2**2*X1*X2+X1**2*X2-2*X2**2
0161      &       -2*R1**2*X2**2+X1*X2**2)/(1-R1**2+R2**2-X2)/(-2+X1+X2)
0162         RFO1=RFO1+(2*R2**2+6*R1*R2**2-6*R1**2*R2**2+6*R1**3*R2**2
0163      &       +2*R2**4+6*R1*R2**4-R2**2*X1+R1**2*R2**2*X1-R2**4*X1+X2
0164      &       -R1**4*X2-3*R2**2*X2-6*R1*R2**2*X2+9*R1**2*R2**2*X2
0165      &       -2*R2**4*X2-X1*X2+R1**2*X1*X2-X2**2-3*R1**2*X2**2
0166      &       +2*R2**2*X2**2+X1*X2**2)/(-1+R1**2-R2**2+X2)**2
0167         RFO1=RFO1+(-4-8*R1**2-4*R1**4+4*R2**2-4*R1**2*R2**2+8*R2**4
0168      &       +9*X1+10*R1**2*X1+R1**4*X1-3*R2**2*X1+6*R1*R2**2*X1
0169      &       +R1**2*R2**2*X1-2*R2**4*X1-6*X1**2-2*R1**2*X1**2+X1**3
0170      &       +7*X2+8*R1**2*X2+R1**4*X2-7*R2**2*X2+6*R1*R2**2*X2
0171      &       +R1**2*R2**2*X2-2*R2**4*X2-9*X1*X2-3*R1**2*X1*X2
0172      &       +2*R2**2*X1*X2+2*X1**2*X2-3*X2**2-R1**2*X2**2
0173      &       +2*R2**2*X2**2+X1*X2**2)/(-2+X1+X2)**2
0174         ISSET1=1
0175         ENDIF
0176         IF(ICOMBI.EQ.2.OR.ICOMBI.EQ.3) THEN
0177         RLO2=PS*(1D0-2D0*R1**2+R1**4+R2**2+6D0*R1*R2**2
0178      &        +R1**2*R2**2-2D0*R2**4)
0179         RFO2=2*(1+R1+2*R1**2+2*R1**3+R1**4+R1**5+R2**2+R1*R2**2
0180      &       +5*R1**2*R2**2+R1**3*R2**2-2*R1*R2**4-2*X1-2*R1*X1
0181      &       -2*R1**2*X1-2*R1**3*X1-2*R2**2*X1+5*R1*R2**2*X1
0182      &       -R1**2*R2**2*X1-2*R2**4*X1+X1**2+R1*X1**2+R2**2*X1**2-3*X2
0183      &       -4*R1**2*X2-R1**4*X2-2*R2**2*X2-2*R1**2*R2**2*X2+4*X1*X2
0184      &       +2*R1**2*X1*X2+R2**2*X1*X2-X1**2*X2+2*X2**2+2*R1**2*X2**2
0185      &       -X1*X2**2)/(-1+R1**2-R2**2+X2)/(-2+X1+X2)
0186         RFO2=RFO2+(2*R2**2-6*R1*R2**2-6*R1**2*R2**2-6*R1**3*R2**2
0187      &       +2*R2**4-6*R1*R2**4-R2**2*X1+R1**2*R2**2*X1-R2**4*X1+X2
0188      &       -R1**4*X2-3*R2**2*X2+6*R1*R2**2*X2+9*R1**2*R2**2*X2
0189      &       -2*R2**4*X2-X1*X2+R1**2*X1*X2-X2**2-3*R1**2*X2**2
0190      &       +2*R2**2*X2**2+X1*X2**2)/(-1+R1**2-R2**2+X2)**2
0191         RFO2=RFO2+(-4-8*R1**2-4*R1**4+4*R2**2-4*R1**2*R2**2+8*R2**4+9*X1
0192      &       +10*R1**2*X1+R1**4*X1-3*R2**2*X1-6*R1*R2**2*X1
0193      &       +R1**2*R2**2*X1-2*R2**4*X1-6*X1**2-2*R1**2*X1**2+X1**3
0194      &       +7*X2+8*R1**2*X2+R1**4*X2-7*R2**2*X2-6*R1*R2**2*X2
0195      &       +R1**2*R2**2*X2-2*R2**4*X2-9*X1*X2-3*R1**2*X1*X2
0196      &       +2*R2**2*X1*X2+2*X1**2*X2-3*X2**2-R1**2*X2**2+2*R2**2*X2**2
0197      &       +X1*X2**2)/(-2+X1+X2)**2
0198         ISSET2=1
0199         ENDIF
0200         IF(ICOMBI.EQ.4) THEN
0201         RLO4=PS*(1.D0-2.D0*R1**2+R1**4+R2**2+R1**2*R2**2-2.D0*R2**4)
0202         RFO4=2*(1+2*R1**2+R1**4+R2**2+5*R1**2*R2**2-2*X1-2*R1**2*X1
0203      &       -2*R2**2*X1-R1**2*R2**2*X1-2*R2**4*X1+X1**2+R2**2*X1**2
0204      &       -3*X2-4*R1**2*X2-R1**4*X2-2*R2**2*X2-2*R1**2*R2**2*X2
0205      &       +4*X1*X2+2*R1**2*X1*X2+R2**2*X1*X2-X1**2*X2+2*X2**2
0206      &       +2*R1**2*X2**2-X1*X2**2)/(-1+R1**2-R2**2+X2)/(-2+X1+X2)
0207         RFO4=RFO4+(2*R2**2-6*R1**2*R2**2+2*R2**4-R2**2*X1+R1**2*R2**2*X1
0208      &       -R2**4*X1+X2-R1**4*X2-3*R2**2*X2+9*R1**2*R2**2*X2
0209      &       -2*R2**4*X2-X1*X2+R1**2*X1*X2-X2**2-3*R1**2*X2**2
0210      &       +2*R2**2*X2**2+X1*X2**2)/(-1+R1**2-R2**2+X2)**2
0211         RFO4=RFO4+(-4-8*R1**2-4*R1**4+4*R2**2-4*R1**2*R2**2+8*R2**4+9*X1
0212      &       +10*R1**2*X1+R1**4*X1-3*R2**2*X1+R1**2*R2**2*X1-2*R2**4*X1
0213      &       -6*X1**2-2*R1**2*X1**2+X1**3+7*X2+8*R1**2*X2+R1**4*X2
0214      &       -7*R2**2*X2+R1**2*R2**2*X2-2*R2**4*X2-9*X1*X2-3*R1**2*X1*X2
0215      &       +2*R2**2*X1*X2+2*X1**2*X2-3*X2**2-R1**2*X2**2+2*R2**2*X2**2
0216      &       +X1*X2**2)/(2-X1-X2)**2
0217         ISSET4=1
0218         ENDIF
0219  
0220 C...S -> q qbar    (S = h0/H0/A0/H+-/...).
0221       ELSEIF(ICLASS.EQ.4) THEN
0222         IF(ICOMBI.EQ.1.OR.ICOMBI.EQ.3) THEN
0223         RLO1=PS*(1D0-R1**2-R2**2-2D0*R1*R2)
0224         RFO1=-(-1+R1**4-2*R1*R2-2*R1**3*R2-6*R1**2*R2**2-2*R1*R2**3
0225      &       +R2**4+X1-R1**2*X1+2*R1*R2*X1+3*R2**2*X1+X2+R1**2*X2
0226      &       -R2**2*X2-X1*X2)/(-1-R1**2+R2**2+X1)**2
0227      &       -2*(R1**2+R1**4-2*R1**3*R2+R2**2-6*R1**2*R2**2-2*R1*R2**3
0228      &       +R2**4-R1**2*X1+R1*R2*X1+2*R2**2*X1+2*R1**2*X2+R1*R2*X2
0229      &       -R2**2*X2-X1*X2)/(-1-R1**2+R2**2+X1)/(-1+R1**2-R2**2+X2)
0230      &       -(-1+R1**4-2*R1*R2-2*R1**3*R2-6*R1**2*R2**2-2*R1*R2**3
0231      &       +R2**4+X1-R1**2*X1+R2**2*X1+X2+3*R1**2*X2+2*R1*R2*X2
0232      &       -R2**2*X2-X1*X2)/(-1+R1**2-R2**2+X2)**2
0233         ISSET1=1
0234         ENDIF
0235         IF(ICOMBI.EQ.2.OR.ICOMBI.EQ.3) THEN
0236         RLO2=PS*(1D0-R1**2-R2**2+2D0*R1*R2)
0237         RFO2=-(-1+R1**4+2*R1*R2+2*R1**3*R2-6*R1**2*R2**2+2*R1*R2**3
0238      &       +R2**4+X1-R1**2*X1-2*R1*R2*X1+3*R2**2*X1+X2+R1**2*X2
0239      &       -R2**2*X2-X1*X2)/(-1-R1**2+R2**2+X1)**2
0240      &       -(-1+R1**4+2*R1*R2+2*R1**3*R2-6*R1**2*R2**2+2*R1*R2**3
0241      &       +R2**4+X1-R1**2*X1+R2**2*X1+X2+3*R1**2*X2-2*R1*R2*X2
0242      &       -R2**2*X2-X1*X2)/(-1+R1**2-R2**2+X2)**2
0243      &       +2*(-R1**2-R1**4-2*R1**3*R2-R2**2+6*R1**2*R2**2
0244      &       -2*R1*R2**3-R2**4+R1**2*X1+R1*R2*X1-2*R2**2*X1
0245      &       -2*R1**2*X2+R1*R2*X2+R2**2*X2+X1*X2)/
0246      &       (-1-R1**2+R2**2+X1)/(-1+R1**2-R2**2+X2)
0247         ISSET2=1
0248         ENDIF
0249         IF(ICOMBI.EQ.4) THEN
0250         RLO4=PS*(1D0-R1**2-R2**2)
0251         RFO4=-(-1+R1**4-6*R1**2*R2**2+R2**4+X1-R1**2*X1+3*R2**2*X1+X2
0252      &       +R1**2*X2-R2**2*X2-X1*X2)/(-1-R1**2+R2**2+X1)**2
0253      &       -2*(R1**2+R1**4+R2**2-6*R1**2*R2**2+R2**4-R1**2*X1
0254      &       +2*R2**2*X1+2*R1**2*X2-R2**2*X2-X1*X2)/
0255      &       (-1-R1**2+R2**2+X1)/(-1+R1**2-R2**2+X2)
0256      &       -(-1+R1**4-6*R1**2*R2**2+R2**4+X1-R1**2*X1+R2**2*X1
0257      &       +X2+3*R1**2*X2-R2**2*X2-X1*X2)/(-1+R1**2-R2**2+X2)**2
0258         ISSET4=1
0259         ENDIF
0260  
0261 C...q -> q S.
0262       ELSEIF(ICLASS.EQ.5) THEN
0263         IF(ICOMBI.EQ.1.OR.ICOMBI.EQ.3) THEN
0264         RLO1=PS*(1D0+R1**2-R2**2+2D0*R1)
0265         RFO1=(4-4*R1**2+4*R2**2-3*X1-2*R1*X1+R1**2*X1-R2**2*X1-5*X2
0266      &       -2*R1*X2+R1**2*X2-R2**2*X2+X1*X2+X2**2)/(-2+X1+X2)**2
0267      &       +2*(3-R1-5*R1**2-R1**3+3*R2**2+R1*R2**2-2*X1-R1*X1
0268      &       +R1**2*X1-4*X2+2*R1**2*X2-R2**2*X2+X1*X2+X2**2)/
0269      &       (1-R1**2+R2**2-X2)/(-2+X1+X2)
0270      &       +(2-2*R1-6*R1**2-2*R1**3+2*R2**2-2*R1*R2**2-X1+R1**2*X1
0271      &       -R2**2*X1-3*X2+2*R1*X2+3*R1**2*X2-R2**2*X2+X1*X2+X2**2)/
0272      &       (-1+R1**2-R2**2+X2)**2
0273         ISSET1=1
0274         ENDIF
0275         IF(ICOMBI.EQ.2.OR.ICOMBI.EQ.3) THEN
0276         RLO2=PS*(1D0+R1**2-R2**2-2D0*R1)
0277         RFO2=(4-4*R1**2+4*R2**2-3*X1+2*R1*X1+R1**2*X1-R2**2*X1-5*X2
0278      &       +2*R1*X2+R1**2*X2-R2**2*X2+X1*X2+X2**2)/(-2+X1+X2)**2
0279      &       +2*(3+R1-5*R1**2+R1**3+3*R2**2-R1*R2**2-2*X1+R1*X1
0280      &       +R1**2*X1-4*X2+2*R1**2*X2-R2**2*X2+X1*X2+X2**2)/
0281      &       (1-R1**2+R2**2-X2)/(-2+X1+X2)
0282      &       +(2+2*R1-6*R1**2+2*R1**3+2*R2**2+2*R1*R2**2-X1+R1**2*X1
0283      &       -R2**2*X1-3*X2-2*R1*X2+3*R1**2*X2-R2**2*X2+X1*X2+X2**2)/
0284      &       (-1+R1**2-R2**2+X2)**2
0285         ISSET2=1
0286         ENDIF
0287         IF(ICOMBI.EQ.4) THEN
0288         RLO4=PS*(1D0+R1**2-R2**2)
0289         RFO4=(4-4*R1**2+4*R2**2-3*X1+R1**2*X1-R2**2*X1-5*X2+R1**2*X2
0290      &       -R2**2*X2+X1*X2+X2**2)/(-2+X1+X2)**2
0291      &       +2*(3-5*R1**2+3*R2**2-2*X1+R1**2*X1-4*X2+2*R1**2*X2
0292      &       -R2**2*X2+X1*X2+X2**2)/(1-R1**2+R2**2-X2)/(-2+X1+X2)
0293      &       +(2-6*R1**2+2*R2**2-X1+R1**2*X1-R2**2*X1-3*X2+3*R1**2*X2
0294      &       -R2**2*X2+X1*X2+X2**2)/(-1+R1**2-R2**2+X2)**2
0295         ISSET4=1
0296         ENDIF
0297  
0298 C...V -> ~q ~qbar  (~q = squark).
0299       ELSEIF(ICLASS.EQ.6) THEN
0300         RLO1=PS*(1D0-2D0*R1**2+R1**4-2D0*R2**2-2D0*R1**2*R2**2+R2**4)
0301         RFO1=2D0*3D0+(1+R1**2+R2**2-X1)*(4*R1**2-X1**2)/
0302      &       (-1-R1**2+R2**2+X1)**2
0303      &       -2D0*(-1-3*R1**2-R2**2+X1+X1**2/2+X2-X1*X2/2)/
0304      &       (-1-R1**2+R2**2+X1)
0305      &       +(1+R1**2+R2**2-X2)*(4*R2**2-X2**2)
0306      &       /(-1+R1**2-R2**2+X2)**2
0307      &       -2D0*(-1-R1**2-3*R2**2+X1+X2-X1*X2/2+X2**2/2)/
0308      &       (-1+R1**2-R2**2+X2)
0309      &       -(-4*R1**2-4*R1**4-4*R2**2-8*R1**2*R2**2-4*R2**4+2*X1
0310      &       +6*R1**2*X1+6*R2**2*X1-2*X1**2+2*X2+6*R1**2*X2+6*R2**2*X2
0311      &       -4*X1*X2-2*R1**2*X1*X2-2*R2**2*X1*X2+X1**2*X2-2*X2**2
0312      &       +X1*X2**2)/(-1-R1**2+R2**2+X1)/(-1+R1**2-R2**2+X2)
0313         ISSET1=1
0314  
0315 C...~q -> ~q V.
0316       ELSEIF(ICLASS.EQ.7) THEN
0317         RLO1=PS*(1D0-2D0*R1**2+R1**4-2D0*R2**2-2D0*R1**2*R2**2+R2**4)
0318         RFO1=16*R2**2+8*(4*R2**2+2*R2**2*X1+X2+R1**2*X2+R2**2*X2-X1*X2
0319      &       -2*X2**2)/(3*(-1+R1**2-R2**2+X2))+8*(1+R1**2+R2**2-X2)*
0320      &       (4*R2**2-X2**2)/(3*(-1+R1**2-R2**2+X2)**2)+8*(X1+X2)*
0321      &       (-1-2*R1**2-R1**4-2*R2**2+2*R1**2*R2**2-R2**4+2*X1
0322      &       +2*R1**2*X1+2*R2**2*X1-X1**2+2*X2+2*R1**2*X2+2*R2**2*X2
0323      &       -2*X1*X2-X2**2)/(3*(-2+X1+X2)**2)+8*(-1-R1**2+R2**2-X1)*
0324      &       (2*R2**2*X1+X2+R1**2*X2+R2**2*X2-X1*X2-X2**2)/
0325      &       (3*(-1+R1**2-R2**2+X2)*(-2+X1+X2))+8*(1+2*R1**2+R1**4
0326      &       +2*R2**2-2*R1**2*R2**2+R2**4-2*X1-2*R1**2*X1-4*R2**2*X1
0327      &       +X1**2-3*X2-3*R1**2*X2-3*R2**2*X2+3*X1*X2+2*X2**2)/
0328      &       (3*(-2+X1+X2))
0329         RFO1=3D0*RFO1/8D0
0330         ISSET1=1
0331  
0332 C...S -> ~q ~qbar.
0333       ELSEIF(ICLASS.EQ.8) THEN
0334         RLO1=PS
0335         RFO1=(-1-2*R1**2-R1**4-2*R2**2+2*R1**2*R2**2-R2**4+2*X1
0336      &       +2*R1**2*X1+2*R2**2*X1-X1**2-R2**2*X1**2+2*X2+2*R1**2*X2
0337      &       +2*R2**2*X2-3*X1*X2-R1**2*X1*X2-R2**2*X1*X2+X1**2*X2-X2**2
0338      &       -R1**2*X2**2+X1*X2**2)/
0339      &       (1+R1**2-R2**2-X1)**2/(-1+R1**2-R2**2+X2)**2
0340         RFO1=2D0*RFO1
0341         ISSET1=1
0342  
0343 C...~q -> ~q S.
0344       ELSEIF(ICLASS.EQ.9) THEN
0345         RLO1=PS
0346         RFO1=(-1-R1**2-R2**2+X2)/(-1+R1**2-R2**2+X2)**2
0347      &       +(1+R1**2-R2**2+X1)/(-1+R1**2-R2**2+X2)/(-2+X1+X2)
0348      &       -(X1+X2)/(-2+X1+X2)**2
0349         ISSET1=1
0350  
0351 C...chi -> q ~qbar   (chi = neutralino/chargino).
0352       ELSEIF(ICLASS.EQ.10) THEN
0353         IF(ICOMBI.EQ.1.OR.ICOMBI.EQ.3) THEN
0354         RLO1=PS*(1D0+R1**2-R2**2+2D0*R1)
0355         RFO1=(2*R1+X1)*(-1-R1**2-R2**2+X1)/(-1-R1**2+R2**2+X1)**2
0356      &       +2*(-1-R1**2-2*R1**3-R2**2-2*R1*R2**2+3*X1/2+R1*X1
0357      &       -R1**2*X1/2-R2**2*X1/2+X2+R1*X2+R1**2*X2-X1*X2/2)/
0358      &       (-1-R1**2+R2**2+X1)/(-1+R1**2-R2**2+X2)
0359      &       +(2-2*R1-6*R1**2-2*R1**3+2*R2**2-2*R1*R2**2-X1+R1**2*X1
0360      &       -R2**2*X1-3*X2+2*R1*X2+3*R1**2*X2-R2**2*X2+X1*X2+X2**2)/
0361      &       (-1+R1**2-R2**2+X2)**2
0362         ISSET1=1
0363         ENDIF
0364         IF(ICOMBI.EQ.2.OR.ICOMBI.EQ.3) THEN
0365         RLO2=PS*(1D0-2D0*R1+R1**2-R2**2)
0366         RFO2=(2*R1-X1)*(1+R1**2+R2**2-X1)/(-1-R1**2+R2**2+X1)**2
0367      &       +2*(-1-R1**2+2*R1**3-R2**2+2*R1*R2**2+3*X1/2-R1*X1
0368      &       -R1**2*X1/2-R2**2*X1/2+X2-R1*X2+R1**2*X2-X1*X2/2)/
0369      &       (-1-R1**2+R2**2+X1)/(-1+R1**2-R2**2+X2)
0370      &       +(2+2*R1-6*R1**2+2*R1**3+2*R2**2+2*R1*R2**2-X1+R1**2*X1
0371      &       -R2**2*X1-3*X2-2*R1*X2+3*R1**2*X2-R2**2*X2+X1*X2+X2**2)/
0372      &       (-1+R1**2-R2**2+X2)**2
0373         ISSET2=1
0374         ENDIF
0375         IF(ICOMBI.EQ.4) THEN
0376         RLO4=PS*(1+R1**2-R2**2)
0377         RFO4=X1*(-1-R1**2-R2**2+X1)/(-1-R1**2+R2**2+X1)**2
0378      &       +2D0*(-1-R1**2-R2**2+3*X1/2-R1**2*X1/2-R2**2*X1/2
0379      &       +X2+R1**2*X2-X1*X2/2)/
0380      &       (-1-R1**2+R2**2+X1)/(-1+R1**2-R2**2+X2)
0381      &       +(2-6*R1**2+2*R2**2-X1+R1**2*X1-R2**2*X1-3*X2+3*R1**2*X2
0382      &       -R2**2*X2+X1*X2+X2**2)/(-1+R1**2-R2**2+X2)**2
0383         ISSET4=1
0384         ENDIF
0385  
0386 C...~q -> q chi.
0387       ELSEIF(ICLASS.EQ.11) THEN
0388         IF(ICOMBI.EQ.1.OR.ICOMBI.EQ.3) THEN
0389         RLO1=PS*(1D0-(R1+R2)**2)
0390         RFO1=(1+R1**2+2*R1*R2+R2**2-X1-X2)*(X1+X2)/(-2+X1+X2)**2
0391      &       -(-1+R1**4-2*R1*R2-2*R1**3*R2-6*R1**2*R2**2-2*R1*R2**3
0392      &       +R2**4+X1-R1**2*X1+R2**2*X1+X2+3*R1**2*X2+2*R1*R2*X2
0393      &       -R2**2*X2-X1*X2)/(-1+R1**2-R2**2+X2)**2
0394      &       +(-1-2*R1**2-R1**4-2*R1*R2-2*R1**3*R2+2*R1*R2**3+R2**4
0395      &       +X1+R1**2*X1-2*R1*R2*X1-3*R2**2*X1+2*R1**2*X2-2*R2**2*X2
0396      &       +X1*X2+X2**2)/(-1+R1**2-R2**2+X2)/(-2+X1+X2)
0397         ISSET1=1
0398         ENDIF
0399         IF(ICOMBI.EQ.2.OR.ICOMBI.EQ.3) THEN
0400         RLO2=PS*(1D0-(R1-R2)**2)
0401         RFO2=(1+R1**2-2*R1*R2+R2**2-X1-X2)*(X1+X2)/
0402      &       (-2+X1+X2)**2
0403      &       -(-1+R1**4+2*R1*R2+2*R1**3*R2-6*R1**2*R2**2+2*R1*R2**3
0404      &       +R2**4+X1-R1**2*X1+R2**2*X1+X2+3*R1**2*X2-2*R1*R2*X2
0405      &       -R2**2*X2-X1*X2)/(-1+R1**2-R2**2+X2)**2
0406      &       +(-1-2*R1**2-R1**4+2*R1*R2+2*R1**3*R2-2*R1*R2**3+R2**4
0407      &       +X1+R1**2*X1+2*R1*R2*X1-3*R2**2*X1+2*R1**2*X2-2*R2**2*X2
0408      &       +X1*X2+X2**2)/(-1+R1**2-R2**2+X2)/(-2+X1+X2)
0409         ISSET2=1
0410         ENDIF
0411         IF(ICOMBI.EQ.4) THEN
0412         RLO4=PS*(1D0-R1**2-R2**2)
0413         RFO4=(1+R1**2+R2**2-X1-X2)*(X1+X2)/(-2+X1+X2)**2
0414      &       -(-1+R1**4-6*R1**2*R2**2+R2**4+X1-R1**2*X1+R2**2*X1+X2
0415      &       +3*R1**2*X2-R2**2*X2-X1*X2)/
0416      &       (-1+R1**2-R2**2+X2)**2
0417      &       -(-1-2*R1**2-R1**4+R2**4+X1+R1**2*X1-3*R2**2*X1
0418      &       +2*R1**2*X2-2*R2**2*X2+X1*X2+X2**2)/
0419      &       (2-X1-X2)/(-1+R1**2-R2**2+X2)
0420         ISSET4=1
0421         ENDIF
0422  
0423 C...q -> ~q chi.
0424       ELSEIF(ICLASS.EQ.12) THEN
0425         IF(ICOMBI.EQ.1.OR.ICOMBI.EQ.3) THEN
0426         RLO1=PS*(1D0-R1**2+R2**2+2D0*R2)
0427         RFO1=(2*R2+X2)*(-1-R1**2-R2**2+X2)/(-1+R1**2-R2**2+X2)**2
0428      &       +(4+4*R1**2-4*R2**2-5*X1-R1**2*X1-2*R2*X1+R2**2*X1+X1**2
0429      &       -3*X2-R1**2*X2-2*R2*X2+R2**2*X2+X1*X2)/
0430      &       (-2+X1+X2)**2-2*(-1-R1**2+R2+R1**2*R2-R2**2-R2**3+X1
0431      &       +R2*X1+R2**2*X1+2*X2+R1**2*X2-X1*X2/2-X2**2/2)/
0432      &       (2-X1-X2)/(-1+R1**2-R2**2+X2)
0433         ISSET1=1
0434         END IF
0435         IF(ICOMBI.EQ.2.OR.ICOMBI.EQ.3) THEN
0436         RLO2=PS*(1D0-R1**2+R2**2-2D0*R2)
0437         RFO2=(2*R2-X2)*(1+R1**2+R2**2-X2)/(-1+R1**2-R2**2+X2)**2
0438      &       +(4+4*R1**2-4*R2**2-5*X1-R1**2*X1+2*R2*X1+R2**2*X1+X1**2
0439      &       -3*X2-R1**2*X2+2*R2*X2+R2**2*X2+X1*X2)/
0440      &       (-2+X1+X2)**2-2*(-1-R1**2-R2-R1**2*R2-R2**2+R2**3+X1
0441      &       -R2*X1+R2**2*X1+2*X2+R1**2*X2-X1*X2/2-X2**2/2)/
0442      &       (2-X1-X2)/(-1+R1**2-R2**2+X2)
0443         ISSET2=1
0444         END IF
0445         IF(ICOMBI.EQ.4) THEN
0446         RLO4=PS*(1D0-R1**2+R2**2)
0447         RFO4=X2*(-1-R1**2-R2**2+X2)/(-1+R1**2-R2**2+X2)**2
0448      &       +(4+4*R1**2-4*R2**2-5*X1-R1**2*X1+R2**2*X1+X1**2
0449      &       -3*X2-R1**2*X2+R2**2*X2+X1*X2)/
0450      &       (-2+X1+X2)**2-2*(-1-R1**2-R2**2+X1+R2**2*X1+2*X2
0451      &       +R1**2*X2-X1*X2/2-X2**2/2)/
0452      &       (2-X1-X2)/(-1+R1**2-R2**2+X2)
0453         ISSET4=1
0454         END IF
0455  
0456 C...~g -> q ~qbar.
0457       ELSEIF(ICLASS.EQ.13) THEN
0458         IF(ICOMBI.EQ.1.OR.ICOMBI.EQ.3) THEN
0459         RLO1=PS*(1D0+R1**2-R2**2+2D0*R1)
0460         RFO1=4*(2*R1+X1)*(-1-R1**2-R2**2+X1)/(3*(-1-R1**2+R2**2+X1)**2)
0461      &       -(-1-R1**2-2*R1**3-R2**2-2*R1*R2**2+3*X1/2+R1*X1-R1**2*X1/2
0462      &       -R2**2*X1/2+X2+R1*X2+R1**2*X2-X1*X2/2)/(3*(-1-R1**2+R2**2
0463      &       +X1)*(-1+R1**2-R2**2+X2))-3*(-1+R1-R1**2-R1**3-R2**2
0464      &       +R1*R2**2+2*X1+R2**2*X1-X1**2/2+X2+R1*X2+R1**2*X2-X1*X2/2)/
0465      &       ((-1-R1**2+R2**2+X1)*(2-X1-X2))+3*(4-4*R1**2+4*R2**2-3*X1
0466      &       -2*R1*X1+R1**2*X1-R2**2*X1-5*X2-2*R1*X2+R1**2*X2-R2**2*X2
0467      &       +X1*X2+X2**2)/(-2+X1+X2)**2+3*(3-R1-5*R1**2-R1**3+3*R2**2
0468      &       +R1*R2**2-2*X1-R1*X1+R1**2*X1-4*X2+2*R1**2*X2-R2**2*X2
0469      &       +X1*X2+X2**2)/((1-R1**2+R2**2-X2)*(-2+X1+X2))+4*(2-2*R1
0470      &       -6*R1**2-2*R1**3+2*R2**2-2*R1*R2**2-X1+R1**2*X1-R2**2*X1
0471      &       -3*X2+2*R1*X2+3*R1**2*X2-R2**2*X2+X1*X2+X2**2)/
0472      &       (3*(-1+R1**2-R2**2+X2)**2)
0473         RFO1=3D0*RFO1/4D0
0474         ISSET1=1
0475         ENDIF
0476         IF(ICOMBI.EQ.2.OR.ICOMBI.EQ.3) THEN
0477         RLO2=PS*(1D0+R1**2-R2**2-2D0*R1)
0478         RFO2=4*(2*R1-X1)*(1+R1**2+R2**2-X1)/(3*(-1-R1**2+R2**2+X1)**2)
0479      &       -3*(-1-R1-R1**2+R1**3-R2**2-R1*R2**2+2*X1+R2**2*X1-X1**2/2
0480      &       +X2-R1*X2+R1**2*X2-X1*X2/2)/((-1-R1**2+R2**2+X1)*(2-X1-X2))
0481      &       +(2+2*R1**2-4*R1**3+2*R2**2-4*R1*R2**2-3*X1+2*R1*X1
0482      &       +R1**2*X1+R2**2*X1-2*X2+2*R1*X2-2*R1**2*X2+X1*X2)/
0483      &       (6*(-1-R1**2+R2**2+X1)*(-1+R1**2-R2**2+X2))+3*(4-4*R1**2
0484      &       +4*R2**2-3*X1+2*R1*X1+R1**2*X1-R2**2*X1-5*X2+2*R1*X2
0485      &       +R1**2*X2-R2**2*X2+X1*X2+X2**2)/(-2+X1+X2)**2+3*(3+R1
0486      &       -5*R1**2+R1**3+3*R2**2-R1*R2**2-2*X1+R1*X1+R1**2*X1-4*X2
0487      &       +2*R1**2*X2-R2**2*X2+X1*X2+X2**2)/
0488      &       ((1-R1**2+R2**2-X2)*(-2+X1+X2))+4*(2+2*R1-6*R1**2+2*R1**3
0489      &       +2*R2**2+2*R1*R2**2-X1+R1**2*X1-R2**2*X1-3*X2-2*R1*X2
0490      &       +3*R1**2*X2-R2**2*X2+X1*X2+X2**2)/
0491      &       (3*(-1+R1**2-R2**2+X2)**2)
0492         RFO2=3D0*RFO2/4D0
0493         ISSET2=1
0494         ENDIF
0495         IF(ICOMBI.EQ.4) THEN
0496         RLO4=PS*(1D0+R1**2-R2**2)
0497         RFO4=8*X1*(-1-R1**2-R2**2+X1)/(3*(-1-R1**2+R2**2+X1)**2)-6*(-1
0498      &       -R1**2-R2**2+2*X1+R2**2*X1-X1**2/2+X2+R1**2*X2-X1*X2/2)/
0499      &       ((-1-R1**2+R2**2+X1)*(2-X1-X2))+(2+2*R1**2+2*R2**2-3*X1
0500      &       +R1**2*X1+R2**2*X1-2*X2-2*R1**2*X2+X1*X2)/(3*(-1-R1**2
0501      &       +R2**2+X1)*(-1+R1**2-R2**2+X2))+6*(4-4*R1**2+4*R2**2-3*X1
0502      &       +R1**2*X1-R2**2*X1-5*X2+R1**2*X2-R2**2*X2+X1*X2+X2**2)/
0503      &       (-2+X1+X2)**2+6*(3-5*R1**2+3*R2**2-2*X1+R1**2*X1-4*X2
0504      &       +2*R1**2*X2-R2**2*X2+X1*X2+X2**2)/
0505      &       ((1-R1**2+R2**2-X2)*(-2+X1+X2))+8*(2-6*R1**2+2*R2**2-X1
0506      &       +R1**2*X1-R2**2*X1-3*X2+3*R1**2*X2-R2**2*X2+X1*X2+X2**2)/
0507      &       (3*(-1+R1**2-R2**2+X2)**2)
0508         RFO4=3D0*RFO4/8D0
0509         ISSET4=1
0510         ENDIF
0511  
0512 C...~q -> q ~g.
0513       ELSEIF(ICLASS.EQ.14) THEN
0514         IF(ICOMBI.EQ.1.OR.ICOMBI.EQ.3) THEN
0515         RLO1=PS*(1-R1**2-R2**2-2D0*R1*R2)
0516         RFO1=64*(1+R1**2+2*R1*R2+R2**2-X1-X2)*(X1+X2)/(9*(-2+X1+X2)**2)
0517      &       -16*(-1+R1**4-2*R1*R2-2*R1**3*R2-6*R1**2*R2**2-2*R1*R2**3
0518      &       +R2**4+X1-R1**2*X1+2*R1*R2*X1+3*R2**2*X1+X2+R1**2*X2
0519      &       -R2**2*X2-X1*X2)/(-1-R1**2+R2**2+X1)**2-16*(R1**2+R1**4
0520      &       -2*R1**3*R2+R2**2-6*R1**2*R2**2-2*R1*R2**3+R2**4
0521      &       -R1**2*X1+R1*R2*X1+2*R2**2*X1+2*R1**2*X2+R1*R2*X2-R2**2*X2
0522      &       -X1*X2)/((-1-R1**2+R2**2+X1)*(-1+R1**2-R2**2+X2))
0523      &       -64*(-1+R1**4-2*R1*R2-2*R1**3*R2-6*R1**2*R2**2-2*R1*R2**3
0524      &       +R2**4+X1-R1**2*X1+R2**2*X1+X2+3*R1**2*X2+2*R1*R2*X2
0525      &       -R2**2*X2-X1*X2)/(9*(-1+R1**2-R2**2+X2)**2)
0526      &       +8*(-1+R1**4-2*R1*R2+2*R1**3*R2-2*R2**2-2*R1*R2**3-R2**4
0527      &       -2*R1**2*X1+2*R2**2*X1+X1**2+X2-3*R1**2*X2-2*R1*R2*X2
0528      &       +R2**2*X2+X1*X2)/((-1-R1**2+R2**2+X1)*(-2+X1+X2))
0529         RFO1=RFO1
0530      &       +8*(-1-2*R1**2-R1**4-2*R1*R2-2*R1**3*R2+2*R1*R2**3+R2**4
0531      &       +X1+R1**2*X1-2*R1*R2*X1-3*R2**2*X1+2*R1**2*X2-2*R2**2*X2
0532      &       +X1*X2+X2**2)/(9*(2-X1-X2)*(-1+R1**2-R2**2+X2))
0533         RFO1=9D0*RFO1/64D0
0534         ISSET1=1
0535         ENDIF
0536         IF(ICOMBI.EQ.2.OR.ICOMBI.EQ.3) THEN
0537         RLO2=PS*(1-R1**2-R2**2+2D0*R1*R2)
0538         RFO2=64*(1+R1**2-2*R1*R2+R2**2-X1-X2)*(X1+X2)/(9*(-2+X1+X2)**2)
0539      &       -16*(-1+R1**4+2*R1*R2+2*R1**3*R2-6*R1**2*R2**2+2*R1*R2**3
0540      &       +R2**4+X1-R1**2*X1-2*R1*R2*X1+3*R2**2*X1+X2+R1**2*X2
0541      &       -R2**2*X2-X1*X2)/(-1-R1**2+R2**2+X1)**2-64*(-1+R1**4
0542      &       +2*R1*R2+2*R1**3*R2-6*R1**2*R2**2+2*R1*R2**3+R2**4+X1
0543      &       -R1**2*X1+R2**2*X1+X2+3*R1**2*X2-2*R1*R2*X2-R2**2*X2
0544      &       -X1*X2)/(9*(-1+R1**2-R2**2+X2)**2)+16*(-R1**2-R1**4
0545      &       -2*R1**3*R2-R2**2+6*R1**2*R2**2-2*R1*R2**3-R2**4+R1**2*X1
0546      &       +R1*R2*X1-2*R2**2*X1-2*R1**2*X2+R1*R2*X2+R2**2*X2+X1*X2)/
0547      &       ((-1-R1**2+R2**2+X1)*(-1+R1**2-R2**2+X2))
0548         RFO2=RFO2
0549      &       +8*(-1+R1**4+2*R1*R2-2*R1**3*R2-2*R2**2+2*R1*R2**3-R2**4
0550      &       -2*R1**2*X1+2*R2**2*X1+X1**2+X2-3*R1**2*X2+2*R1*R2*X2
0551      &       +R2**2*X2+X1*X2)/((-1-R1**2+R2**2+X1)*(-2+X1+X2))
0552      &       +8*(-1-2*R1**2-R1**4+2*R1*R2+2*R1**3*R2-2*R1*R2**3
0553      &       +R2**4+X1+R1**2*X1+2*R1*R2*X1-3*R2**2*X1+2*R1**2*X2
0554      &       -2*R2**2*X2+X1*X2+X2**2)/(9*(2-X1-X2)*(-1+R1**2-R2**2+X2))
0555         RFO2=9D0*RFO2/64D0
0556         ISSET2=1
0557         ENDIF
0558         IF(ICOMBI.EQ.4) THEN
0559         RLO4=PS*(1-R1**2-R2**2)
0560         RFO4=128*(1+R1**2+R2**2-X1-X2)*(X1+X2)/(9*(-2+X1+X2)**2)-32*(-1
0561      &       +R1**4-6*R1**2*R2**2+R2**4+X1-R1**2*X1+3*R2**2*X1+X2
0562      &       +R1**2*X2-R2**2*X2-X1*X2)/(-1-R1**2+R2**2+X1)**2
0563      &       -32*(R1**2+R1**4+R2**2-6*R1**2*R2**2+R2**4-R1**2*X1
0564      &       +2*R2**2*X1+2*R1**2*X2-R2**2*X2-X1*X2)/
0565      &       ((-1-R1**2+R2**2+X1)*(-1+R1**2-R2**2+X2))-128*(-1+R1**4
0566      &       -6*R1**2*R2**2+R2**4+X1-R1**2*X1+R2**2*X1+X2+3*R1**2*X2
0567      &       -R2**2*X2-X1*X2)/(9*(-1+R1**2-R2**2+X2)**2)
0568      &       +16*(-1+R1**4-2*R2**2-R2**4-2*R1**2*X1+2*R2**2*X1+X1**2
0569      &       +X2-3*R1**2*X2+R2**2*X2+X1*X2)/
0570      &       ((-1-R1**2+R2**2+X1)*(-2+X1+ X2))
0571         RFO4=RFO4+16*(-1-2*R1**2-R1**4+R2**4+X1+R1**2*X1-3*R2**2*X1
0572      &       +2*R1**2*X2-2*R2**2*X2+X1*X2+X2**2)/
0573      &       (9*(1-R1**2+R2**2-X2)*(-2+X1+X2))
0574         RFO4=9D0*RFO4/128D0
0575         ISSET4=1
0576         ENDIF
0577  
0578 C...q -> ~q ~g.
0579       ELSEIF(ICLASS.EQ.15) THEN
0580         IF(ICOMBI.EQ.1.OR.ICOMBI.EQ.3) THEN
0581         RLO1=PS*(1D0-R1**2+R2**2+2D0*R2)
0582         RFO1=32*(2*R2+X2)*(-1-R1**2-R2**2+X2)/(9*(-1+R1**2-R2**2+X2)**2)
0583      &       +8*(-1-R1**2-2*R1**2*R2-R2**2-2*R2**3+X1+R2*X1+R2**2*X1
0584      &       +3*X2/2-R1**2*X2/2+R2*X2-R2**2*X2/2-X1*X2/2)/
0585      &       ((-1-R1**2+R2**2+X1)*(-1+R1**2-R2**2+X2))+8*(2+2*R1**2-2*R2
0586      &       -2*R1**2*R2-6*R2**2-2*R2**3-3*X1-R1**2*X1+2*R2*X1
0587      &       +3*R2**2*X1+X1**2-X2-R1**2*X2+R2**2*X2+X1*X2)/
0588      &       (-1-R1**2+R2**2+X1)**2+32*(4+4*R1**2-4*R2**2-5*X1
0589      &       -R1**2*X1-2*R2*X1+R2**2*X1+X1**2-3*X2-R1**2*X2-2*R2*X2
0590      &       +R2**2*X2+X1*X2)/(9*(-2+X1+X2)**2)
0591         RFO1=RFO1+8*(3+3*R1**2-R2+R1**2*R2-5*R2**2-R2**3-4*X1-R1**2*X1
0592      &       +2*R2**2*X1+X1**2-2*X2-R2*X2+R2**2*X2+X1*X2)/
0593      &       ((-1-R1**2+R2**2+X1)*(2-X1-X2))+8*(-1-R1**2+R2+R1**2*R2
0594      &       -R2**2-R2**3+X1+R2*X1+R2**2*X1+2*X2+R1**2*X2-X1*X2/2
0595      &       -X2**2/2)/(9*(2-X1-X2)*(-1+R1**2-R2**2+X2))
0596         RFO1=9D0*RFO1/32D0
0597         ISSET1=1
0598         END IF
0599         IF(ICOMBI.EQ.2.OR.ICOMBI.EQ.3) THEN
0600         RLO2=PS*(1D0-R1**2+R2**2-2D0*R2)
0601         RFO2=32*(2*R2-X2)*(1+R1**2+R2**2-X2)/(9*(-1+R1**2-R2**2+X2)**2)
0602      &       +8*(-1-R1**2+2*R1**2*R2-R2**2+2*R2**3+X1-R2*X1+R2**2*X1
0603      &       +3*X2/2-R1**2*X2/2-R2*X2-R2**2*X2/2-X1*X2/2)/
0604      &       ((-1-R1**2+R2**2+X1)*(-1+R1**2-R2**2+X2))+8*(2+2*R1**2+2*R2
0605      &       +2*R1**2*R2-6*R2**2+2*R2**3-3*X1-R1**2*X1-2*R2*X1
0606      &       +3*R2**2*X1+X1**2-X2-R1**2*X2+R2**2*X2+X1*X2)/
0607      &       (-1-R1**2+R2**2+X1)**2+8*(3+3*R1**2+R2-R1**2*R2-5*R2**2
0608      &       +R2**3-4*X1-R1**2*X1+2*R2**2*X1+X1**2-2*X2+R2*X2+R2**2*X2
0609      &       +X1*X2)/((-1-R1**2+R2**2+X1)*(2-X1-X2))
0610         RFO2=RFO2+32*(4+4*R1**2-4*R2**2-5*X1-R1**2*X1+2*R2*X1+R2**2*X1
0611      &       +X1**2-3*X2-R1**2*X2+2*R2*X2+R2**2*X2+X1*X2)/
0612      &       (9*(-2+X1+X2)**2)+8*(-1-R1**2-R2-R1**2*R2-R2**2+R2**3+X1
0613      &       -R2*X1+R2**2*X1+2*X2+R1**2*X2-X1*X2/2-X2**2/2)/
0614      &       (9*(2-X1-X2)*(-1+R1**2-R2**2+X2))
0615         RFO2=9D0*RFO2/32D0
0616         ISSET2=1
0617         END IF
0618         IF(ICOMBI.EQ.4) THEN
0619         RLO4=PS*(1D0-R1**2+R2**2)
0620         RFO4=64*X2*(-1-R1**2-R2**2+X2)/(9*(-1+R1**2-R2**2+X2)**2)
0621      &       +16*(-1-R1**2-R2**2+X1+R2**2*X1+3*X2/2-R1**2*X2/2
0622      &       -R2**2*X2/2-X1*X2/2)/
0623      &       ((-1-R1**2+R2**2+X1)*(-1+R1**2-R2**2+X2))+16*(3+3*R1**2
0624      &       -5*R2**2-4*X1-R1**2*X1+2*R2**2*X1+X1**2-2*X2+R2**2*X2
0625      &       +X1*X2)/((-1-R1**2+R2**2+X1)*(2-X1-X2))
0626      &       +64*(4+4*R1**2-4*R2**2-5*X1-R1**2*X1+R2**2*X1+X1**2-3*X2
0627      &       -R1**2*X2+R2**2*X2+X1*X2)/(9*(-2+X1+X2)**2)
0628         RFO4=RFO4+16*(2+2*R1**2-6*R2**2-3*X1-R1**2*X1+3*R2**2*X1+X1**2
0629      &       -X2-R1**2*X2+R2**2*X2+X1*X2)/(-1-R1**2+R2**2+X1)**2
0630      &       +16*(-1-R1**2-R2**2+X1+R2**2*X1+2*X2+R1**2*X2-X1*X2/2
0631      &       -X2**2/2)/(9*(2-X1-X2)*(-1+R1**2-R2**2+X2))
0632         RFO4=9D0*RFO4/64D0
0633         ISSET4=1
0634         END IF
0635  
0636 C...g -> ~g ~g. Use (9/4)*eikonal. May be changed in the future.
0637       ELSEIF(ICLASS.EQ.16) THEN
0638         RLO=PS
0639         IF(ICOMBI.EQ.0.OR.ICOMBI.EQ.1) THEN
0640           ANUM=0D0
0641         ELSEIF(ICOMBI.EQ.2) THEN
0642           ANUM=(2D0-X1-X2)**2
0643         ELSEIF(ICOMBI.EQ.3) THEN
0644           ANUM=ALPCOR*(2D0-X1-X2)**2
0645         ELSE
0646           ANUM=0.5D0*(2D0-X1-X2)**2
0647         ENDIF
0648         RFO=PS*2D0*((X1+X2-1D0+ANUM-R1**2-R2**2)/
0649      &       ((1D0+R1**2-R2**2-X1)*(1D0+R2**2-R1**2-X2))-
0650      &       R1**2/(1D0+R2**2-R1**2-X2)**2-
0651      &       R2**2/(1D0+R1**2-R2**2-X1)**2)
0652         RFO=9D0*RFO/4D0
0653         ICOMBI=0
0654       ENDIF
0655  
0656 C...Find relevant LO and FO expression.
0657       IF(ICOMBI.EQ.0) THEN
0658       ELSEIF(ICOMBI.EQ.1.AND.ISSET1.EQ.1) THEN
0659         RLO=RLO1
0660         RFO=RFO1
0661       ELSEIF(ICOMBI.EQ.2.AND.ISSET2.EQ.1) THEN
0662         RLO=RLO2
0663         RFO=RFO2
0664       ELSEIF(ICOMBI.EQ.3.AND.ISSET1.EQ.1.AND.ISSET2.EQ.1) THEN
0665         RLO=ALPCOR*RLO1+(1D0-ALPCOR)*RLO2
0666         RFO=ALPCOR*RFO1+(1D0-ALPCOR)*RFO2
0667       ELSEIF(ISSET4.EQ.1) THEN
0668         RLO=RLO4
0669         RFO=RFO4
0670       ELSEIF(ICOMBI.EQ.4.AND.ISSET1.EQ.1.AND.ISSET2.EQ.1) THEN
0671         RLO=0.5D0*(RLO1+RLO2)
0672         RFO=0.5D0*(RFO1+RFO2)
0673       ELSEIF(ISSET1.EQ.1) THEN
0674         RLO=RLO1
0675         RFO=RFO1
0676       ELSE
0677         CALL PYERRM(16,'(PYMAEL:) not implemented ME code')
0678         RLO=1D0
0679         RFO=0D0
0680       ENDIF
0681  
0682 C...Output.
0683       PYMAEL=RFO/RLO
0684  
0685       RETURN
0686       END