Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pygbeh.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file pygbeh.f
1 
2 
3 C*********************************************************************
4 
5 C...PYGBEH
6 C...Evaluates the Bethe-Heitler cross section for heavy flavour
7 C...production.
8 C...Adapted from SaSgam library, authors G.A. Schuler and T. Sjostrand.
9 
10  SUBROUTINE pygbeh(KF,X,Q2,P2,PM2,XPBH)
11 
12 C...Double precision and integer declarations.
13  IMPLICIT DOUBLE PRECISION(a-h, o-z)
14  IMPLICIT INTEGER(i-n)
15  INTEGER pyk,pychge,pycomp
16 
17 C...Local data.
18  DATA aem2pi/0.0011614d0/
19 
20 C...Reset output.
21  xpbh=0d0
22  sigbh=0d0
23 
24 C...Check kinematics limits.
25  IF(x.GE.q2/(4d0*pm2+q2+p2)) RETURN
26  w2=q2*(1d0-x)/x-p2
27  beta2=1d0-4d0*pm2/w2
28  IF(beta2.LT.1d-10) RETURN
29  beta=sqrt(beta2)
30  rmq=4d0*pm2/q2
31 
32 C...Simple case: P2 = 0.
33  IF(p2.LT.1d-4) THEN
34  IF(beta.LT.0.99d0) THEN
35  xbl=log((1d0+beta)/(1d0-beta))
36  ELSE
37  xbl=log((1d0+beta)**2*w2/(4d0*pm2))
38  ENDIF
39  sigbh=beta*(8d0*x*(1d0-x)-1d0-rmq*x*(1d0-x))+
40  & xbl*(x**2+(1d0-x)**2+rmq*x*(1d0-3d0*x)-0.5d0*rmq**2*x**2)
41 
42 C...Complicated case: P2 > 0, based on approximation of
43 C...C.T. Hill and G.G. Ross, Nucl. Phys. B148 (1979) 373
44  ELSE
45  rpq=1d0-4d0*x**2*p2/q2
46  IF(rpq.GT.1d-10) THEN
47  rpbe=sqrt(rpq*beta2)
48  IF(rpbe.LT.0.99d0) THEN
49  xbl=log((1d0+rpbe)/(1d0-rpbe))
50  xbi=2d0*rpbe/(1d0-rpbe**2)
51  ELSE
52  rpbesn=4d0*pm2/w2+(4d0*x**2*p2/q2)*beta2
53  xbl=log((1d0+rpbe)**2/rpbesn)
54  xbi=2d0*rpbe/rpbesn
55  ENDIF
56  sigbh=beta*(6d0*x*(1d0-x)-1d0)+
57  & xbl*(x**2+(1d0-x)**2+rmq*x*(1d0-3d0*x)-0.5d0*rmq**2*x**2)+
58  & xbi*(2d0*x/q2)*(pm2*x*(2d0-rmq)-p2*x)
59  ENDIF
60  ENDIF
61 
62 C...Multiply by charge-squared etc. to get parton distribution.
63  chsq=1d0/9d0
64  IF(iabs(kf).EQ.2.OR.iabs(kf).EQ.4) chsq=4d0/9d0
65  xpbh=3d0*chsq*aem2pi*x*sigbh
66 
67  RETURN
68  END