]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 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 |