]>
Commit | Line | Data |
---|---|---|
ef94df36 | 1 | DOUBLE PRECISION FUNCTION JMAREA( B2 ) |
2 | c ---------------------------------------------------------------------- | |
3 | c Purpose: Returns area overlap A(B) | |
4 | c Mods: 20-Aug-1993 JMB. Allow use of CERNLIB. | |
5 | c Mods: 27-Jan-1995 RW. Allow e+e- (not NAGLIB!) | |
6 | c ---------------------------------------------------------------------- | |
7 | ||
8 | #include "herwig65.inc" | |
9 | #include "jimmy.inc" | |
10 | ||
11 | INTEGER NPHOTONS | |
12 | DOUBLE PRECISION B2,AREA | |
13 | DOUBLE PRECISION JMDBESK0, JMDBESK1, BESSEL(0:3) | |
14 | DOUBLE PRECISION X1, X2 | |
15 | ||
16 | IF (B2.LE.0.D0) THEN | |
17 | IF (JMBUG.GT.11) WRITE(JMOUT,*)'**** JMAREA:B2=',B2 | |
18 | JMAREA = 0.D0 | |
19 | RETURN | |
20 | ENDIF | |
21 | X1=(JMV2*B2)**.5 | |
22 | X2=(JMU2*B2)**.5 | |
23 | ||
24 | NPHOTONS=0 | |
25 | IF ((ABS(IDPDG(IPART1)).EQ.11).OR.(ABS(IDPDG(IPART1)).EQ.22)) | |
26 | $ NPHOTONS=NPHOTONS+1 | |
27 | IF ((ABS(IDPDG(IPART2)).EQ.11).OR.(ABS(IDPDG(IPART2)).EQ.22)) | |
28 | $ NPHOTONS=NPHOTONS+1 | |
29 | ||
30 | IF (NPHOTONS.EQ.1) THEN | |
31 | C `ep' type run | |
32 | C Modified Bessel function K0 | |
33 | AREA = JMDBESK0(X1) | |
34 | AREA = (AREA-JMDBESK0(X2))*JMU2/(JMU2-JMV2) | |
35 | ||
36 | C Modified Bessel function K1 | |
37 | AREA=(AREA-X2/TWO*JMDBESK1(X2))*JMU2*JMV2/(JMU2-JMV2)/ | |
38 | & (TWO*PIFAC) | |
39 | ||
40 | ELSE IF (NPHOTONS.EQ.2) THEN | |
41 | ||
42 | C `e+e-' type run. | |
43 | C Modified Bessel function K1 | |
44 | AREA = JMV2*X1*JMDBESK1(X1)/(4.D0*PIFAC) | |
45 | ||
46 | ||
47 | ELSE IF (NPHOTONS.EQ.0) THEN | |
48 | ||
49 | C `pp' type run. | |
50 | C Modified Bessel function K3 | |
51 | CALL JMDBSKA(X2,0,1,3,BESSEL) | |
52 | AREA = JMU2/96/PIFAC*(X2**3)*BESSEL(3) | |
53 | ||
54 | ENDIF | |
55 | ||
56 | JMAREA = AREA | |
57 | ||
58 | RETURN | |
59 | END |