]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/fluka/energi.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / GEANT321 / fluka / energi.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:20:00  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/02 29/03/94  15.41.44  by  S.Giani
11 *-- Author :
12 *$ CREATE ENERGI.FOR
13 *COPY ENERGI
14 *
15 *=== energi ===========================================================*
16 *
17       SUBROUTINE ENERGI(IT,LL,LT,IV,RE,HMA,HE,E0,A1)
18  
19 #include "geant321/dblprc.inc"
20 #include "geant321/dimpar.inc"
21 #include "geant321/iounit.inc"
22 *
23 *----------------------------------------------------------------------*
24 *  Energi89: slight revision by A. Ferrari                             *
25 *----------------------------------------------------------------------*
26 *
27 *      INCLUDE '(BAMJCM)'
28 #include "geant321/finpar2.inc"
29       DIMENSION IV(*),RE(*)
30       REAL RNDM(1)
31 C     SAMPLES THE ENERGY OF THE CREATED HADRON
32 C*****HE IS THE ENERGY OF THE ACTUAL HADRON
33       I=IT
34       J=IT-1
35       HMA=AMF(I)
36       IF(IT .EQ. 1) RX=E0
37       IF(IT .GT. 1) RX=RE(J)
38       CALL GRNDM(RNDM,1)
39       X   = RNDM(1)
40       IVY = IV(I)
41       GO TO (1,2,2,1,1,1,2,2,1,1),IVY
42 C     MESON VERTEX
43     1 AX=(1.D0-A1)/(3.D0*A1)
44       C=1.D0/((1.D0-A1)*(1.D0-HMA/RX)+3.D0*.5D0*A1*(1.D0-HMA/RX)**2)
45       ETA=-AX+SQRT(AX**2+X*2.D0/(3.D0*A1*C))
46       GO TO 3
47 C     BARYON VERTEX
48     2 CY=1.D0/((1.D0-A1)*(1.D0-HMA/RX)+A1*(1.D0-HMA/RX)**3)
49       BY=X/(2.D0*A1*CY)
50       BZ=((1.D0-A1)/(3.D0*A1))**3
51       BV=BY+SQRT(BY**2+BZ)
52       BU=BY-SQRT(BY**2+BZ)
53       IF(BU.LT.0.D0) BU1=ABS(BU)
54       BU3=BU1**(1.D0/3.D0)
55       BV3=BV**(1.D0/3.D0)
56       IF(BU.LT.0.D0) BU3=-BU3
57       ETA=BU3+BV3
58       GO TO 3
59     3 CONTINUE
60       RE(I)=ETA*RX
61       HE=(1.D0-ETA)*RX
62       HEF(I)=HE
63       RETURN
64       END