]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HERWIG/src/hwbazf.f
ITS new Geometry files. Not yet ready for uses, committed to allow additional
[u/mrichter/AliRoot.git] / HERWIG / src / hwbazf.f
CommitLineData
3820ca8e 1
2CDECK ID>, HWBAZF.
3
4*CMZ :- -26/04/91 11.11.54 by Bryan Webber
5
6*-- Author : Ian Knowles
7
8C-----------------------------------------------------------------------
9
10 SUBROUTINE HWBAZF(IPAR,JPAR,VEC1,VEC2,VEC3,VEC)
11
12C-----------------------------------------------------------------------
13
14C Azimuthal correlation functions for Collins' algorithm,
15
16C see I.G.Knowles, Comp. Phys. Comm. 58 (90) 271 for notation.
17
18C-----------------------------------------------------------------------
19
20 INCLUDE 'HERWIG61.INC'
21
22 DOUBLE PRECISION Z1,Z2,DOT12,DOT23,DOT31,TR,FN(7),VEC1(2),VEC2(2),
23
24 & VEC3(2),VEC(2)
25
26 INTEGER IPAR,JPAR
27
28 LOGICAL GLUI,GLUJ
29
30 IF (.NOT.AZSPIN) RETURN
31
32 Z1=PPAR(4,JPAR)/PPAR(4,IPAR)
33
34 Z2=1.-Z1
35
36 GLUI=IDPAR(IPAR).EQ.13
37
38 GLUJ=IDPAR(JPAR).EQ.13
39
40 IF (GLUI) THEN
41
42 IF (GLUJ) THEN
43
44C Branching: g--->gg
45
46 FN(2)=Z2/Z1
47
48 FN(3)=1./FN(2)
49
50 FN(4)=Z1*Z2
51
52 FN(1)=FN(2)+FN(3)+FN(4)
53
54 FN(5)=FN(2)+2.*Z1
55
56 FN(6)=FN(3)+2.*Z2
57
58 FN(7)=FN(4)-2.
59
60 ELSE
61
62C Branching: g--->qqbar
63
64 FN(1)=(Z1*Z1+Z2*Z2)/2.
65
66 FN(2)=0.
67
68 FN(3)=0.
69
70 FN(4)=-Z1*Z2
71
72 FN(5)=-(2.*Z1-1.)/2.
73
74 FN(6)=-FN(5)
75
76 FN(7)=FN(1)
77
78 ENDIF
79
80 ELSE
81
82 IF (GLUJ) THEN
83
84C Branching: q--->gq
85
86 FN(1)=(1.+Z2*Z2)/(2.*Z1)
87
88 FN(2)=Z2/Z1
89
90 FN(3)=0.
91
92 FN(4)=0.
93
94 FN(5)=FN(1)
95
96 FN(6)=(1.+Z2)/2.
97
98 FN(7)=-FN(6)
99
100 ELSE
101
102C Branching: q--->qg
103
104 FN(1)=(1.+Z1*Z1)/(2.*Z2)
105
106 FN(2)=0.
107
108 FN(3)=Z1/Z2
109
110 FN(4)=0.
111
112 FN(5)=(1.+Z1)/2.
113
114 FN(6)=FN(1)
115
116 FN(7)=-FN(5)
117
118 ENDIF
119
120 ENDIF
121
122 DOT12=VEC1(1)*VEC2(1)+VEC1(2)*VEC2(2)
123
124 DOT23=VEC2(1)*VEC3(1)+VEC2(2)*VEC3(2)
125
126 DOT31=VEC3(1)*VEC1(1)+VEC3(2)*VEC1(2)
127
128 TR=1./(FN(1)+FN(2)*DOT23+FN(3)*DOT31+FN(4)*DOT12)
129
130 VEC(1)=((FN(2)+FN(5)*DOT23)*VEC1(1)
131
132 & +(FN(3)+FN(6)*DOT31)*VEC2(1)
133
134 & +(FN(4)+FN(7)*DOT12)*VEC3(1))*TR
135
136 VEC(2)=((FN(2)+FN(5)*DOT23)*VEC1(2)
137
138 & +(FN(3)+FN(6)*DOT31)*VEC2(2)
139
140 & +(FN(4)+FN(7)*DOT12)*VEC3(2))*TR
141
142 END