Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / fluka / fkzero.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:20:06  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/02 29/03/94  15.41.45  by  S.Giani
11 *-- Author :
12 *=== zeroin ===========================================================*
13 *
14       SUBROUTINE FKZERO
15  
16 #include "geant321/dblprc.inc"
17 #include "geant321/dimpar.inc"
18 #include "geant321/iounit.inc"
19 *
20 *======================================================================*
21 *                                                                      *
22 *     Created by Alfredo Ferrari on 11 july 1990   INFN - Milan        *
23 *                                                                      *
24 *     Last change  on    23-apr-93  by  Alfredo Ferrari                *
25 *                                                                      *
26 *     This routine zeroes a few arrays, and initialize some data       *
27 *                                                                      *
28 *======================================================================*
29 *
30 #include "geant321/paprop.inc"
31 #include "geant321/part2.inc"
32 *
33 *  +-------------------------------------------------------------------*
34 *  |               Set the "effective" masses for particles
35       DO 8000 I = 1, IDMAX8
36 *  |  +----------------------------------------------------------------*
37 *  |  |            Baryons: "effective" mass = actual one - baryon
38 *  |  |                      number x proton mass (final state of any
39 *  |  |                      baryon)
40          IF ( IIBAR (I) .GT. 0 ) THEN
41             AAMDSC (I) = AAM (I) - IIBAR (I) * AAM (1)
42 *  |  |
43 *  |  +----------------------------------------------------------------*
44 *  |  |            Antibaryons: "effective mass" = actual mass +
45 *  |  |                          |baryon number| x proton mass
46          ELSE IF ( IIBAR (I) .LT. 0 ) THEN
47             AAMDSC (I) = AAM (I) - IIBAR (I) * AAM (1)
48 *  |  |
49 *  |  +----------------------------------------------------------------*
50 *  |  |            Mesons: "effective" mass = actual mass
51          ELSE
52             AAMDSC (I) = AAM (I)
53          END IF
54 *  |  |
55 *  |  +----------------------------------------------------------------*
56  8000 CONTINUE
57 *  |
58 *  +-------------------------------------------------------------------*
59 *    Electron: "effective" mass = 0
60       AAMDSC (3) = ZERZER
61 *    Positron: "effective" mass = 2 x mass
62       AAMDSC (4) = 2.D+00 * AAM (4)
63 *    Neutron: "effective" mass = 0 (it should be taken into account the
64 *                         neutrino energy when decaying)
65       AAMDSC (8) = ZERZER
66 *    Muon+: "effective" mass = muon mass + positron mass
67       AAMDSC (10) = AAM (10) + AAM (4)
68 *    Muon-: "effective" mass = muon mass - electron mass
69 *           (final stable state)
70       AAMDSC (11) = AAM (11) - AAM (3)
71 *    Tau+: "effective" mass = Tau mass + positron mass
72       AAMDSC (131) = AAM (131) + AAM (4)
73 *    Tau-: "effective" mass = Tau mass - electron mass
74 *           (final stable state)
75       AAMDSC (132) = AAM (132) - AAM (3)
76 *  +-------------------------------------------------------------------*
77 *  |               Set the "effective" masses for particles in Paprop
78       DO 8500 I = 1, NALLWP
79          KP = IPTOKP (I)
80 *  |  +----------------------------------------------------------------*
81 *  |  |
82          IF ( KP .GT. 0 ) THEN
83             AMDISC (I) = AAMDSC (KP)
84             AM     (I) = AAM  (KP)
85             ICHRGE (I) = IICH (KP)
86             THALF  (I) = TAU  (KP)
87 *  |  |
88 *  |  +----------------------------------------------------------------*
89 *  |  |
90          ELSE IF ( I .NE. 30 ) THEN
91             AMDISC (I) = ZERZER
92             AM     (I) = ZERZER
93             ICHRGE (I) = 0
94             THALF  (I) = ZERZER
95 *  |  |
96 *  |  +----------------------------------------------------------------*
97 *  |  |
98          ELSE
99             AMDISC (I) = AAMDSC (1)
100             AM     (I) = AAM  (1)
101             ICHRGE (I) = IICH (1)
102             THALF  (I) = TAU  (1)
103          END IF
104 *  |  |
105 *  |  +----------------------------------------------------------------*
106 *  |  +----------------------------------------------------------------*
107 *  |  |   Set the particle spin (in 1/2 units)
108 *  |  |   If the particle is a hadron :
109 *  |  |            mesons         --> 0 spin
110 *  |  |       baryons,antibaryons --> 1/2 spin
111 *  |  |   otherwise :
112 *  |  |       e-/+,mu-/+,vu,vubar --> 1/2 spin
113 *  |  |             photons       --> 1 spin
114          IF ( LHADRO (I) .AND. IIBAR (KP) .EQ. 0 ) THEN
115             JSPINP (I) = 0
116 *  |  |
117 *  |  +----------------------------------------------------------------*
118 *  |  |
119          ELSE
120             IF ( I .EQ. 7 ) THEN
121                JSPINP (I) = 2
122             ELSE
123                JSPINP (I) = 1
124             END IF
125          END IF
126 *  |  |
127 *  |  +----------------------------------------------------------------*
128  8500 CONTINUE
129 *  |
130 *  +-------------------------------------------------------------------*
131 *=== end of subroutine zeroin =========================================*
132       RETURN
133       END