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