Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
py4jts.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file py4jts.f
1 
2 C*********************************************************************
3 
4 C...PY4JTS
5 C...Auxiliary to PY4JET, to set up chosen configuration.
6 
7  SUBROUTINE py4jts(IA1,IA2,IA3,IA4,IA5,QMAX)
8 
9 C...Double precision and integer declarations.
10  IMPLICIT DOUBLE PRECISION(a-h, o-z)
11  IMPLICIT INTEGER(i-n)
12  INTEGER pyk,pychge,pycomp
13 C...Commonblocks.
14  common/pyjets/n,npad,k(4000,5),p(4000,5),v(4000,5)
15  SAVE /pyjets/
16 
17 C...Reset info.
18  DO 110 i=n+1,n+6
19  DO 100 j=1,5
20  k(i,j)=0
21  v(i,j)=v(ia2,j)
22  100 CONTINUE
23  k(i,1)=16
24  110 CONTINUE
25 
26 C...First case: when both original partons radiate.
27 C...N+1 -> (IA1=N+3) + (IA2=N+4), N+2 -> (IA3=N+5) + (IA4=N+6).
28  IF(ia1.NE.0) THEN
29 
30 C...Set up flavour and history pointers for new partons.
31  k(n+1,2)=k(ia1,2)
32  k(n+2,2)=k(ia3,2)
33  k(n+3,2)=k(ia1,2)
34  k(n+4,2)=k(ia2,2)
35  k(n+5,2)=k(ia3,2)
36  k(n+6,2)=k(ia4,2)
37  k(n+1,3)=ia1
38  k(n+1,4)=n+3
39  k(n+1,5)=n+4
40  k(n+2,3)=ia3
41  k(n+2,4)=n+5
42  k(n+2,5)=n+6
43  k(n+3,3)=n+1
44  k(n+4,3)=n+1
45  k(n+5,3)=n+2
46  k(n+6,3)=n+2
47 
48 C...Set up momenta for new partons.
49  DO 120 j=1,5
50  p(n+1,j)=p(ia1,j)+p(ia2,j)
51  p(n+2,j)=p(ia3,j)+p(ia4,j)
52  p(n+3,j)=p(ia1,j)
53  p(n+4,j)=p(ia2,j)
54  p(n+5,j)=p(ia3,j)
55  p(n+6,j)=p(ia4,j)
56  120 CONTINUE
57  p(n+1,5)=sqrt(max(0d0,p(n+1,4)**2-p(n+1,1)**2-p(n+1,2)**2-
58  & p(n+1,3)**2))
59  p(n+2,5)=sqrt(max(0d0,p(n+2,4)**2-p(n+2,1)**2-p(n+2,2)**2-
60  & p(n+2,3)**2))
61  qmax=min(p(n+1,5),p(n+2,5))
62 
63 C...Second case: q radiates twice.
64 C...N+1 -> (IA2=N+4) + N+3, N+3 -> (IA3=N+5) + (IA4=N+6),
65 C...IA5=N+2 does not radiate.
66  ELSEIF(k(ia2,2).EQ.21) THEN
67 
68 C...Set up flavour and history pointers for new partons.
69  k(n+1,2)=k(ia3,2)
70  k(n+2,2)=k(ia5,2)
71  k(n+3,2)=k(ia3,2)
72  k(n+4,2)=k(ia2,2)
73  k(n+5,2)=k(ia3,2)
74  k(n+6,2)=k(ia4,2)
75  k(n+1,3)=ia3
76  k(n+1,4)=n+3
77  k(n+1,5)=n+4
78  k(n+2,3)=ia5
79  k(n+3,3)=n+1
80  k(n+3,4)=n+5
81  k(n+3,5)=n+6
82  k(n+4,3)=n+1
83  k(n+5,3)=n+3
84  k(n+6,3)=n+3
85 
86 C...Set up momenta for new partons.
87  DO 130 j=1,5
88  p(n+1,j)=p(ia2,j)+p(ia3,j)+p(ia4,j)
89  p(n+2,j)=p(ia5,j)
90  p(n+3,j)=p(ia3,j)+p(ia4,j)
91  p(n+4,j)=p(ia2,j)
92  p(n+5,j)=p(ia3,j)
93  p(n+6,j)=p(ia4,j)
94  130 CONTINUE
95  p(n+1,5)=sqrt(max(0d0,p(n+1,4)**2-p(n+1,1)**2-p(n+1,2)**2-
96  & p(n+1,3)**2))
97  p(n+3,5)=sqrt(max(0d0,p(n+3,4)**2-p(n+3,1)**2-p(n+3,2)**2-
98  & p(n+3,3)**2))
99  qmax=p(n+3,5)
100 
101 C...Third case: q radiates g, g branches.
102 C...N+1 -> (IA2=N+3) + N+4, N+4 -> (IA3=N+5) + (IA4=N+6),
103 C...IA5=N+2 does not radiate.
104  ELSE
105 
106 C...Set up flavour and history pointers for new partons.
107  k(n+1,2)=k(ia2,2)
108  k(n+2,2)=k(ia5,2)
109  k(n+3,2)=k(ia2,2)
110  k(n+4,2)=21
111  k(n+5,2)=k(ia3,2)
112  k(n+6,2)=k(ia4,2)
113  k(n+1,3)=ia2
114  k(n+1,4)=n+3
115  k(n+1,5)=n+4
116  k(n+2,3)=ia5
117  k(n+3,3)=n+1
118  k(n+4,3)=n+1
119  k(n+4,4)=n+5
120  k(n+4,5)=n+6
121  k(n+5,3)=n+4
122  k(n+6,3)=n+4
123 
124 C...Set up momenta for new partons.
125  DO 140 j=1,5
126  p(n+1,j)=p(ia2,j)+p(ia3,j)+p(ia4,j)
127  p(n+2,j)=p(ia5,j)
128  p(n+3,j)=p(ia2,j)
129  p(n+4,j)=p(ia3,j)+p(ia4,j)
130  p(n+5,j)=p(ia3,j)
131  p(n+6,j)=p(ia4,j)
132  140 CONTINUE
133  p(n+1,5)=sqrt(max(0d0,p(n+1,4)**2-p(n+1,1)**2-p(n+1,2)**2-
134  & p(n+1,3)**2))
135  p(n+4,5)=sqrt(max(0d0,p(n+4,4)**2-p(n+4,1)**2-p(n+4,2)**2-
136  & p(n+4,3)**2))
137  qmax=p(n+4,5)
138 
139  ENDIF
140  n=n+6
141 
142  RETURN
143  END