]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HERWIG/src/hwhew2.f
Change in CookdEdx() by Prashant
[u/mrichter/AliRoot.git] / HERWIG / src / hwhew2.f
CommitLineData
3820ca8e 1
2CDECK ID>, HWHEW2.
3
4*CMZ :- -26/04/91 13.22.25 by Federico Carminati
5
6*-- Author : Zoltan Kunszt, modified by Bryan Webber
7
8C-----------------------------------------------------------------------
9
10 SUBROUTINE HWHEW2(NPART,PPCM,H,CH,D)
11
12C-----------------------------------------------------------------------
13
14C PCM SHOULD BE DEFINED SUCH THAT ALL 4-MOMENTA ARE OUTGOING.
15
16C CONVENTION FOR PCM AND P IS THAT DIRECTION 1 =BEAM, COMPONENT
17
18C 4 = ENERGY AND COMPONENT 2 AND 3 ARE TRANSVERSE COMPONENTS.
19
20C THUS INCOMING MOMENTA SHOULD CORRESPOND TO OUTGOING MOMENTA
21
22C OF NEGATIVE ENERGY.
23
24C PCM IS FILLED BY PHASE SPACE MONTE CARLO.
25
26C I1-I7 HERE REFER TO HOW PCM INDEXING IS MAPPED TO OUR STANDARD
27
28C 1-6=GLUON,GLUON,Q,QBAR,QP,QPBAR ORDERING `
29
30C-----------------------------------------------------------------------
31
32 IMPLICIT NONE
33
34 COMPLEX PT5,ZT,Z1,ZI,ZP,ZQ,ZD,ZPS,ZQS,ZDPM,ZDMP,H(7,7),CH(7,7),
35
36 & D(7,7)
37
38 DOUBLE PRECISION ZERO,ONE,PPCM(5,7),P(5,7),WRN(7),EPS,Q1,Q2,QP,QM,
39
40 & P1,P2,PP,PM,DMP,DPM,PT,QT,PTI,QTI
41
42 INTEGER J,L,IJ,II,JJ,I,NPART,IP1,IPP1
43
44 PARAMETER (ZERO=0.D0,ONE=1.D0)
45
46 EPS=0.0000001
47
48 ZI=CMPLX(0.,1.)
49
50 Z1=CMPLX(1.,0.)
51
52C FOLLOWING DO LOOP IS TO CONVERT TO OUR STANDARD INDEXING
53
54 DO 1 L=1,NPART
55
56 DO 1 IJ=1,4
57
581 P(IJ,L)=PPCM(IJ,L)
59
60 DO 2 II=1,7
61
62 WRN(II)=ONE
63
64 IF(P(4,II).LT.ZERO) WRN(II)=-ONE
65
66 DO 2 JJ=1,4
67
68 P(JJ,II)=WRN(II)*P(JJ,II)
69
70 2 CONTINUE
71
72C THE ABOVE CHECKS FOR MOMENTA WITH NEGATIVE ENERGY,INNER PRODUCTS
73
74C ARE EXPRESSED DIFFERENTLY FOR DIFFERENT CASES
75
76 DO 11 I=1,NPART-1
77
78 IP1=I+1
79
80 DO 11 J=IP1,NPART
81
82 Q1=P(4,I)+P(1,I)
83
84 QP=0.0
85
86 IF(Q1.GT.EPS)QP=SQRT(Q1)
87
88 Q2=P(4,I)-P(1,I)
89
90 QM=0.0
91
92 IF(Q2.GT.EPS)QM=SQRT(Q2)
93
94 P1=P(4,J)+P(1,J)
95
96 PP=0.
97
98 IF(P1.GT.EPS)PP=SQRT(P1)
99
100 P2=P(4,J)-P(1,J)
101
102 PM=0.
103
104 IF(P2.GT.EPS)PM=SQRT(P2)
105
106 DMP=PM*QP
107
108 ZDMP=CMPLX(DMP,ZERO)
109
110 DPM=PP*QM
111
112 ZDPM=CMPLX(DPM,ZERO)
113
114C NOTE THAT IN OUR INNER PRODUCT NOTATION WE ARE COMPUTING <P,Q>
115
116 PT=SQRT(P(2,J)**2+P(3,J)**2)
117
118 QT=SQRT(P(2,I)**2+P(3,I)**2)
119
120 IF(PT.GT.EPS) GOTO 99
121
122 ZP=Z1
123
124 GOTO 98
125
126 99 PTI=ONE/PT
127
128 ZP=CMPLX(PTI*P(2,J),PTI*P(3,J))
129
130 98 ZPS=CONJG(ZP)
131
132 IF(QT.GT.EPS) GOTO 89
133
134 ZQ=Z1
135
136 GOTO 88
137
138 89 QTI=ONE/QT
139
140 ZQ=CMPLX(QTI*P(2,I),QTI*P(3,I))
141
142 88 ZQS=CONJG(ZQ)
143
144 ZT=Z1
145
146 IF(WRN(I).LT.ZERO) ZT=ZT*ZI
147
148 IF(WRN(J).LT.ZERO) ZT=ZT*ZI
149
150 H(J,I)=(ZDMP*ZP-ZDPM*ZQ)*ZT
151
152 CH(J,I)=(ZDMP*ZPS-ZDPM*ZQS)*ZT
153
154 ZD=H(J,I)*CH(J,I)
155
156 PT5=CMPLX(.5,0.)
157
158 D(J,I)=PT5*ZD
159
160 11 CONTINUE
161
162 DO 60 I=1,NPART-1
163
164 IPP1=I+1
165
166 DO 60 J=IPP1,NPART
167
168 H(I,J)=-H(J,I)
169
170 CH(I,J)=-CH(J,I)
171
172 60 D(I,J)=D(J,I)
173
174 RETURN
175
176 END