EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ar3jet.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file ar3jet.f
1 
2 
3  SUBROUTINE ar3jet(S,X1,X3,JL)
4 c
5  common/hiparnt/hipr1(100),ihpr2(50),hint1(100),ihnt2(50)
6  SAVE /hiparnt/
7  common/lujets/n,k(9000,5),p(9000,5),v(9000,5)
8  SAVE /lujets/
9  common/ranseed/nseed
10  SAVE /ranseed/
11 c
12  c=1./3.
13  IF(k(jl,2).NE.21 .AND. k(jl+1,2).NE.21) c=8./27.
14  exp1=3
15  exp3=3
16  IF(k(jl,2).NE.21) exp1=2
17  IF(k(jl+1,2).NE.21) exp3=2
18  a=0.24**2/s
19  yma=alog(.5/sqrt(a)+sqrt(.25/a-1))
20  d=4.*c*yma
21  sm1=p(jl,5)**2/s
22  sm3=p(jl+1,5)**2/s
23  xt2m=(1.-2.*sqrt(sm1)+sm1-sm3)*(1.-2.*sqrt(sm3)-sm1+sm3)
24  xt2m=min(.25,xt2m)
25  ntry=0
26 1 IF(ntry.EQ.5000) THEN
27  x1=.5*(2.*sqrt(sm1)+1.+sm1-sm3)
28  x3=.5*(2.*sqrt(sm3)+1.-sm1+sm3)
29  RETURN
30  ENDIF
31  ntry=ntry+1
32 
33  xt2=a*(xt2m/a)**(atl_ran(nseed)**(1./d))
34 
35  ymax=alog(.5/sqrt(xt2)+sqrt(.25/xt2-1.))
36  y=(2.*atl_ran(nseed)-1.)*ymax
37  x1=1.-sqrt(xt2)*exp(y)
38  x3=1.-sqrt(xt2)*exp(-y)
39  x2=2.-x1-x3
40  neg=0
41  IF(k(jl,2).NE.21 .OR. k(jl+1,2).NE.21) THEN
42  IF((1.-x1)*(1.-x2)*(1.-x3)-x2*sm1*(1.-x1)-x2*sm3*(1.-x3).
43  & le.0..OR.x1.LE.2.*sqrt(sm1)-sm1+sm3.OR.x3.LE.2.*sqrt(sm3)
44  & -sm3+sm1) neg=1
45  x1=x1+sm1-sm3
46  x3=x3-sm1+sm3
47  ENDIF
48  IF(neg.EQ.1) goto 1
49 
50  fg=2.*ymax*c*(x1**exp1+x3**exp3)/d
51  xt2m=xt2
52  IF(fg.LT.atl_ran(nseed)) goto 1
53 
54  RETURN
55  END