EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
dqcdi.F
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file dqcdi.F
1 C **********************************************************************
2 
3  FUNCTION dqcdi(IPART,IP,XP,ZPMIN,ZPMAX)
4 
5  IMPLICIT NONE
6 
7 C...First order QCD matrix elements as in function DQCD but analytically
8 C...integrated over ZP from ZPMIN to ZPMAX, also a factor 1/(1-XP) is
9 C...factored out (since XP chosen randomly according to 1/(1-XP) distr.)
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 ipart,ip
23  REAL xp,zpmin,zpmax,c1,c2,zlog,dqcdi
24 
25  DATA c1,c2/0.2122066,0.0795775/
26 
27  IF(lst(8).EQ.19.AND.ipart.EQ.1) THEN
28 C...No QCD Compton for Ariadne
29  dqcdi=0.0
30  RETURN
31  ENDIF
32 
33  IF(ipart.EQ.1) THEN
34  IF(ip.EQ.1) THEN
35  zlog=alog(zpmax/zpmin)
36  dqcdi=c1*(xp**2*zlog+zpmin-zpmax+(zpmin**2-zpmax**2)/2.+zlog+
37  & xp*(1.-xp)*(zpmax**2-zpmin**2)+2.*(1.-xp)*(zpmax-zpmin))
38  ELSEIF(ip.EQ.2) THEN
39  dqcdi=c1*2.*xp*(1.-xp)*(zpmax**2-zpmin**2)
40  ELSEIF(ip.EQ.3) THEN
41  zlog=alog(zpmax/zpmin)
42  dqcdi=c1*(xp**2*zlog+zpmin-zpmax+(zpmin**2-zpmax**2)/2.+zlog+
43  & 2.*xp*(1.-xp)*(zpmax-zpmin)+(1.-xp)*(zpmax**2-zpmin**2))
44  ELSE
45  WRITE(6,1000) ipart,ip
46  ENDIF
47 
48  ELSEIF(ipart.EQ.2) THEN
49  IF(ip.EQ.1) THEN
50  dqcdi=c2*(1.-xp)*(xp**2+(1.-xp)**2)*(2.*(zpmin-zpmax)+
51  & alog(zpmax**2/zpmin**2))
52  ELSEIF(ip.EQ.2) THEN
53  dqcdi=c2*8.*xp*(1.-xp)**2*(zpmax-zpmin)
54  ELSEIF(ip.EQ.3) THEN
55  dqcdi=0.
56  ELSE
57  WRITE(6,1000) ipart,ip
58  ENDIF
59 
60  ELSE
61  WRITE(6,1000) ipart,ip
62  ENDIF
63  RETURN
64 
65  1000 FORMAT(' Error in routine DQCDI ',
66  &' IPART, IP = ',2i10)
67  END