]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/fluka/enrg.F
Default compile option changed to -g (Alpha)
[u/mrichter/AliRoot.git] / GEANT321 / fluka / enrg.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:19:55  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/02 29/03/94  15.41.42  by  S.Giani
11 *-- Author :
12 *$ CREATE ENRG.FOR
13 *COPY ENRG
14 *                                                                      *
15 *=== enrg =============================================================*
16 *                                                                      *
17       FUNCTION ENRG(A,Z)
18  
19 #include "geant321/dblprc.inc"
20 #include "geant321/dimpar.inc"
21 #include "geant321/iounit.inc"
22 C--------------------------------------------------------------------
23 C SUBNAME = ENRG
24 C--------------------------------------------------------------------
25       PARAMETER ( O16OLD = 931.145  D+00 )
26       PARAMETER ( O16NEW = 931.19826D+00 )
27       PARAMETER ( O16RAT = O16NEW / O16OLD )
28       PARAMETER ( C12NEW = 931.49432D+00 )
29       PARAMETER ( ADJUST = -8.322737768178909D-02 )
30 #include "geant321/eva0.inc"
31       LOGICAL LFIRST
32       SAVE LFIRST, EXHYDR, EXNEUT
33       DATA LFIRST / .TRUE. /
34       IF ( LFIRST ) THEN
35          LFIRST = .FALSE.
36          EXHYDR = FKENER ( ONEONE, ONEONE )
37          EXNEUT = FKENER ( ONEONE, ZERZER )
38       END IF
39 C--------------------------------------------------------------------
40   100 IZ0 = NINT (Z)
41       IF ( IZ0 .LE. 0 ) THEN
42          ENRG = A * EXNEUT
43          RETURN
44       END IF
45       N   = NINT (A-Z)
46       IF ( N .LE. 0 ) THEN
47          ENRG = Z * EXHYDR
48          RETURN
49       END IF
50       AM2ZOA= (A-Z-Z)/A
51       AM2ZOA=AM2ZOA*AM2ZOA
52       A13 = RMASS(NINT(A))
53       AM13 = 1.D0/A13
54       EV=-17.0354D0*(1.D0 -1.84619D0*AM2ZOA)*A
55       ES= 25.8357D0*(1.D0 -1.712185D0*AM2ZOA)*
56      &    (1.D0 -0.62025D0*AM13*AM13)*
57      &    (A13*A13 -.62025D0)
58       EC= 0.799D0*Z*(Z-1.D0)*AM13*(((1.5772D0*AM13 +1.2273D0)*
59      &    AM13-1.5849D0)*
60      &    AM13*AM13 +1.D0)
61       EEX= -0.4323D0*AM13*Z**1.3333333D0*
62      &   (((0.49597D0*AM13 -0.14518D0)*AM13 -0.57811D0) * AM13 + 1.D0)
63       ENRG  =8.367D0*A -0.783D0*Z +EV +ES +EC +EEX +CAM2(IZ0)+CAM3(N)
64       ENRG  = ( ENRG + A * O16OLD ) * O16RAT - A * ( C12NEW - ADJUST )
65       ENRG  = MIN ( ENRG, Z * EXHYDR + ( A - Z ) * EXNEUT )
66       RETURN
67       END