]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HERWIG/jimmy/jimmy/jmarea.F
Add AliMUONRawStream class
[u/mrichter/AliRoot.git] / HERWIG / jimmy / jimmy / jmarea.F
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