]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HERWIG/src/hwdhgf.f
Change in CookdEdx() by Prashant
[u/mrichter/AliRoot.git] / HERWIG / src / hwdhgf.f
1
2 CDECK  ID>, HWDHGF.
3
4 *CMZ :-        -02/05/91  11.11.45  by  Federico Carminati
5
6 *-- Author :    Mike Seymour
7
8 C-----------------------------------------------------------------------
9
10       FUNCTION HWDHGF(X,Y)
11
12 C-----------------------------------------------------------------------
13
14 C  CALCULATE THE DOUBLE BREIT-WIGNER INTEGRAL
15
16 C  X=(EMV/EMH)**2 , Y=EMV*GAMV/EMH**2
17
18 C-----------------------------------------------------------------------
19
20       INCLUDE 'HERWIG61.INC'
21
22       DOUBLE PRECISION HWDHGF,X,Y,CHANGE,X1,X2,FAC1,FAC2,TH1,TH2,TH1HI,
23
24      & TH1LO,TH2HI,TH2LO,X2MAX,SQFAC
25
26       INTEGER NBIN,IBIN1,IBIN2
27
28 C  CHANGE IS THE POINT WHERE DIRECT INTEGRATION BEGINS TO CONVERGE
29
30 C  FASTER THAN STANDARD BREIT-WIGNER SUBSTITUTION
31
32       DATA CHANGE,NBIN/0.425,25/
33
34       HWDHGF=0
35
36       IF (Y.LT.ZERO) RETURN
37
38       IF (X.GT.CHANGE) THEN
39
40 C---DIRECT INTEGRATION
41
42         FAC1=0.25 / NBIN
43
44         DO 200 IBIN1=1,NBIN
45
46           X1=(IBIN1-0.5) * FAC1
47
48           FAC2=( (1-SQRT(X1))**2-X1 ) / NBIN
49
50           DO 100 IBIN2=1,NBIN
51
52             X2=(IBIN2-0.5) * FAC2 + X1
53
54             SQFAC=1+X1**2+X2**2-2*(X1+X2+X1*X2)
55
56             IF (SQFAC.LT.ZERO) GOTO 100
57
58             HWDHGF=HWDHGF + 2.
59
60      &        * ((1-X1-X2)**2+8*X1*X2)
61
62      &        * SQRT(SQFAC)
63
64      &        / ((X1-X)**2+Y**2) *Y
65
66      &        / ((X2-X)**2+Y**2) *Y
67
68      &        * FAC1*FAC2
69
70  100      CONTINUE
71
72  200    CONTINUE
73
74       ELSE
75
76 C---INTEGRATION USING TAN THETA SUBSTITUTIONS
77
78         TH1LO=ATAN((0-X)/Y)
79
80         TH1HI=ATAN((1-X)/Y)
81
82         FAC1=(TH1HI-TH1LO) / NBIN
83
84         DO 400 IBIN1=1,NBIN
85
86           TH1=(IBIN1-0.5) * FAC1 + TH1LO
87
88           X1=Y*TAN(TH1) + X
89
90           X2MAX=MIN(X1,(1-SQRT(X1))**2)
91
92           TH2LO=ATAN((0-X)/Y)
93
94           TH2HI=ATAN((X2MAX-X)/Y)
95
96           FAC2=(TH2HI-TH2LO) / NBIN
97
98           DO 300 IBIN2=1,NBIN
99
100             TH2=(IBIN2-0.5) * FAC2 + TH2LO
101
102             X2=Y*TAN(TH2) + X
103
104             SQFAC=1+X1**2+X2**2-2*(X1+X2+X1*X2)
105
106             IF (SQFAC.LT.ZERO) GOTO 300
107
108             HWDHGF=HWDHGF + 2.
109
110      &        * ((1-X1-X2)**2+8*X1*X2)
111
112      &        * SQRT(SQFAC)
113
114      &        * FAC1 * FAC2
115
116  300      CONTINUE
117
118  400    CONTINUE
119
120       ENDIF
121
122       HWDHGF=HWDHGF/(PIFAC*PIFAC)
123
124       END