]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HERWIG/jimmy/jimmy/jmpn.F
JIMMY first commit.
[u/mrichter/AliRoot.git] / HERWIG / jimmy / jimmy / jmpn.F
1 *CMZ :          17/07/95  11.08.55  by  Jonathan Butterworth
2 *-- Author : J. M. Butterworth
3       SUBROUTINE JMPN( PROBS, ZDUB, K )
4 C --------------------------------------------------------------------------
5 C  Purpose: Returns the probabilities of N scatters at a given z, by
6 C           interpolating between the points stored during initialisation.
7 C           Returned arg. J is the lower edge of the s bin we are in.
8 C --------------------------------------------------------------------------
9 #include "herwig65.inc"
10 #include "jimmy.inc"
11
12
13       DOUBLE PRECISION ZDUB
14       DOUBLE PRECISION Z, PROBS( MAXMS )
15       DOUBLE PRECISION JMSC1, JMSC2, Z1, Z2, SCSIG, M, C
16       INTEGER I, J, K
17
18       Z=ZDUB
19       DO I=1,MAXMS
20          PROBS(I)=0.D0
21       ENDDO
22
23       IF (IERROR.NE.0) RETURN
24
25       IF (ZDUB.LT.-0.5D0) THEN
26         DO J=1,MAXMS
27            PROBS(J)=JMARRY(4+J,1)
28         ENDDO
29         RETURN
30       ENDIF
31
32       DO 1, I=1, NPSIMP
33
34         IF (Z.LE.JMARRY( 1, I )) GOTO 2
35
36  1    CONTINUE
37
38       WRITE(JMOUT,*) 'JMPN: ILLEGAL Z INPUT! ',Z
39       IERROR=200
40       RETURN
41
42 C     We are interpolating between JMARRY(J,I-1) and JMARRY(J,I)
43 C     Linear interpolation.
44  2    CONTINUE
45
46       K=I
47
48       DO J=1, MAXMS
49
50         IF (JMARRY(4+J,I-1).GT.0.0) THEN
51           JMSC1 = JMARRY(4+J,I-1)
52         ENDIF
53
54         IF (JMARRY(4+J,I).GT.0.D0) THEN
55           JMSC2 = JMARRY(4+J,I)
56         ENDIF
57
58         Z1 = JMARRY(1,I-1)
59         Z2 = JMARRY(1,I)
60
61         M = (JMSC2-JMSC1)/(Z2-Z1)
62         C = JMSC1-M*Z1
63
64         SCSIG = M*Z + C
65
66         PROBS(J) = SCSIG
67
68       ENDDO
69
70       RETURN
71       END