EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
dqcd.F
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file dqcd.F
1 
2 C **********************************************************************
3 
4  FUNCTION dqcd(ICOSFI,IPART,IP,XP,ZP,YY)
5 
6  IMPLICIT NONE
7 
8 C...First order QCD matrix elements from R.D. Peccei and R. Ruckl:
9 C...Nucl. Phys. B162 (1980) 125
10 
11 *
12 * to avoid variable conflictions, a second keep element is necessary
13 * with the same common block name (see LPTOU2)
14 *
15  COMMON /leptou/ cut(14),lst(40),parl(30),
16  & x,y,w2,q2,u
17  REAL cut,parl,x,y,w2,q2,u
18  INTEGER lst
19  SAVE /leptou/
20 
21 
22  INTEGER icosfi,ip,ipart
23  REAL dqcd,xp,zp,yy,c1,c2,c3,c4,c5
24 
25 C...Constants C1 to C5 are resp. 2/3/pi, 1/4/pi, 4/3/pi, 1/2/pi, 1/pi
26  DATA c1,c2,c3,c4,c5/0.2122066,0.0795775,0.4244132,0.1591549,
27  & 0.3183099/
28 
29  IF(lst(8).EQ.19.AND.ipart.EQ.1) THEN
30 C...No QCD Compton for Ariadne
31  dqcd=0.0
32  RETURN
33  ENDIF
34 
35  IF(icosfi.EQ.0) THEN
36  IF(ipart.EQ.1) THEN
37  IF(ip.EQ.1) THEN
38  dqcd=c1*((zp**2+xp**2)/(1.-xp)/(1.-zp)+2.*(xp*zp+1.))
39  ELSEIF(ip.EQ.2) THEN
40  dqcd=c1*4.*xp*zp
41  ELSEIF(ip.EQ.3) THEN
42  dqcd=c1*((zp**2+xp**2)/(1.-xp)/(1.-zp)+2.*(xp+zp))
43  ELSE
44  WRITE(6,1000) icosfi,ipart,ip
45  ENDIF
46  ELSEIF(ipart.EQ.2) THEN
47  IF(ip.EQ.1) THEN
48  dqcd=c2*(xp**2+(1.-xp)**2)*(zp**2+(1.-zp)**2)/(1.-zp)/zp
49  ELSEIF(ip.EQ.2) THEN
50  dqcd=c2*8.*xp*(1.-xp)
51  ELSEIF(ip.EQ.3) THEN
52  dqcd=c2*(xp**2+(1.-xp)**2)*(zp-(1.-zp))/(1.-zp)/zp
53  ELSE
54  WRITE(6,1000) icosfi,ipart,ip
55  ENDIF
56  ELSE
57  WRITE(6,1000) icosfi,ipart,ip
58  ENDIF
59 
60  ELSEIF(icosfi.EQ.1) THEN
61  IF(ipart.EQ.1) THEN
62  IF(ip.EQ.1) THEN
63  dqcd=c3*yy*sqrt((1.-yy)*xp*zp/(1.-xp)/(1.-zp))*
64  & (1.-2./yy)*(1.-zp-xp+2.*xp*zp)
65  ELSEIF(ip.EQ.3) THEN
66  dqcd=c3*yy*sqrt((1.-yy)*xp*zp/(1.-xp)/(1.-zp))*
67  & (1.-xp-zp)
68  ELSE
69  WRITE(6,1000) icosfi,ipart,ip
70  ENDIF
71  ELSEIF(ipart.EQ.2) THEN
72  IF(ip.EQ.1) THEN
73  dqcd=c4*yy*sqrt((1.-yy)*xp*(1.-xp)/zp/(1.-zp))*
74  & (1.-2./yy)*(1.-2.*zp)*(1.-2.*xp)
75  ELSEIF(ip.EQ.3) THEN
76  dqcd=c4*yy*sqrt((1.-yy)*xp*(1.-xp)/zp/(1.-zp))*
77  & (1.-2.*xp)
78  ELSE
79  WRITE(6,1000) icosfi,ipart,ip
80  ENDIF
81  ENDIF
82 
83  ELSEIF(icosfi.EQ.2) THEN
84  IF(ipart.EQ.1) THEN
85  dqcd=c3*(1.-yy)*xp*zp
86  ELSEIF(ipart.EQ.2) THEN
87  dqcd=c5*(1.-yy)*xp*(1.-xp)
88  ELSE
89  WRITE(6,1000) icosfi,ipart,ip
90  ENDIF
91 
92  ELSE
93  WRITE(6,1000) icosfi,ipart,ip
94  ENDIF
95  RETURN
96 
97  1000 FORMAT(' Error in routine DQCD ',
98  &' ICOSFI, IPART, IP = ',3i10)
99  END