]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ISAJET/code/amass.F
Functions renamed to get a prefix PHOS
[u/mrichter/AliRoot.git] / ISAJET / code / amass.F
1 #include "isajet/pilot.h"
2       FUNCTION AMASS(ID)
3 C
4 C          Returns the mass of the particle with IDENT code ID.
5 C          Quark-based IDENT code.
6 C          Ver 7.10: Update masses and split B baryon degeneracy.
7 C
8 #if defined(CERNLIB_IMPNONE)
9       IMPLICIT NONE
10 #endif
11 #include "isajet/itapes.inc"
12 #include "isajet/qlmass.inc"
13       INTEGER ID
14       REAL AMASS
15       REAL AMMES0(10),AMMES1(10),AMBAR0(30),AMBAR1(30)
16       INTEGER IFL1,IFL2,IFL3,JSPIN,INDEX,IFL1A,IFL2A,IFL3A,IDA
17 C
18 C          0- meson mass table
19 C          pi0, pi+, eta, k+, k0, etap, ad0, d-, ds-, etac
20 C
21       DATA AMMES0/.13496,.13957,.54745,.49367,.49767,.95775,1.8645
22      $,1.8693,1.9688,2.9788/
23 C
24 C          1- meson mass table
25 C          rho0, rho+, omega, k*+, k*0, phi, ad*0, d*-, d*s-, jpsi
26 C
27       DATA AMMES1/.7681,.7681,.78195,.89159,.89610,1.0194,2.0071
28      $,2.0101,2.1103,3.0969/
29 C
30 C          1/2+ baryon mass table
31 C          x,p,n,-,-,s+,s0,s-,l,xi0,xi-,x,x,x
32 C          sc++,sc+,sc0,lc+,usc.,dsc.,ssc.,sdc.,suc.,ucc.,dcc.,scc.
33 C
34       DATA AMBAR0/-1.,.93828,.93957,2*-1.,1.1894,1.1925,1.1974
35      $,1.1156,1.3149,1.3213,3*-1.,2.4527,2.4529,2.4525,2.2849
36      $,2.50,2.50,2.60,2.40,2.40,3.55,3.55,3.70,4*-1./
37 C
38 C          3/2+ baryon mass table
39 C          dl++,dl+,dl0,dl-,-,s*+,s*0,s*-,x,xi*0,xi*-,om-,x,x
40 C          uuc*,udc*,ddc*,x,usc*,dsc*,ssc*,x,x,,ucc*,dcc*,scc*,ccc*
41 C
42       DATA AMBAR1/1.232,1.232,1.232,1.232,-1.,1.3823,1.3820
43      $,1.3875,-1.,1.5318,1.5350,1.6722,2*-1.
44      $,2.63,2.63,2.63,-1.,2.70,2.70,2.80,2*-1.,3.75,3.75
45      $,3.90,4.80,3*-1./
46 C
47 C          Entry
48 C
49       AMASS=-1.
50       CALL FLAVOR(ID,IFL1,IFL2,IFL3,JSPIN,INDEX)
51       IDA=IABS(ID)
52       IFL1A=IABS(IFL1)
53       IFL2A=IABS(IFL2)
54       IFL3A=IABS(IFL3)
55       IF(IDA.GT.10000.OR.JSPIN.GT.1) GO TO 500
56 C
57 C          Diquarks
58 C
59       IF(ID.NE.0.AND.MOD(ID,100).EQ.0) THEN
60         AMASS=AMLEP(IFL1A)+AMLEP(IFL2A)
61 C
62 C          b and t particles. Only a few b masses are known, but we
63 C          guess a few others to make sure decays are allowed:
64 C
65       ELSEIF(IFL3A.GT.4) THEN
66         IF(IDA.EQ.150.OR.IDA.EQ.250) THEN
67           AMASS=5.2786
68         ELSEIF(IDA.EQ.151.OR.IDA.EQ.251) THEN
69           AMASS=5.3246
70         ELSEIF(IDA.EQ.350) THEN
71           AMASS=5.3693
72         ELSEIF(IDA.EQ.351) THEN
73           AMASS=5.3693+0.04
74         ELSEIF(IDA.EQ.2150) THEN
75           AMASS=5.641
76         ELSEIF(IDA.EQ.1150.OR.IDA.EQ.1250.OR.IDA.EQ.2250) THEN
77           AMASS=5.641+0.171
78         ELSEIF(IDA.EQ.2151) THEN
79           AMASS=5.641+.04
80         ELSEIF(IDA.EQ.1151.OR.IDA.EQ.1251.OR.IDA.EQ.2251) THEN
81           AMASS=5.641+0.171+0.04
82         ELSE
83           AMASS=AMLEP(IFL2A)+AMLEP(IFL3A)-.03+.04*JSPIN
84           IF(IFL1.NE.0) AMASS=AMASS+AMLEP(IFL1A)
85         ENDIF
86 C
87 C          Quarks and leptons
88 C
89       ELSEIF(IFL2.EQ.0) THEN
90         AMASS=AMLEP(INDEX)
91 C
92 C          Mesons
93 C
94       ELSEIF(IFL1.EQ.0) THEN
95         INDEX=INDEX-36*JSPIN-NQLEP
96         INDEX=INDEX-13
97         AMASS=(1-JSPIN)*AMMES0(INDEX)+JSPIN*AMMES1(INDEX)
98 C
99 C          Baryons
100 C
101       ELSE
102         INDEX=INDEX-109*JSPIN-36*NMES-NQLEP
103         INDEX=INDEX-13
104         AMASS=(1-JSPIN)*AMBAR0(INDEX)+JSPIN*AMBAR1(INDEX)
105       ENDIF
106       RETURN
107 C
108 C          Special hadrons - used only in B decays
109 C
110 500   IF(IDA.EQ.10121.OR.IDA.EQ.10111) THEN
111         AMASS=1.230
112       ELSEIF(IDA.EQ.10131.OR.IDA.EQ.10231) THEN
113         AMASS=1.273
114       ELSEIF(IDA.EQ.30131.OR.IDA.EQ.30231) THEN
115         AMASS=1.412
116       ELSEIF(IDA.EQ.132) THEN
117         AMASS=1.4254
118       ELSEIF(IDA.EQ.232) THEN
119         AMASS=1.4324
120       ELSEIF(IDA.EQ.10110) THEN
121         AMASS=0.980+0.020
122       ELSEIF(IDA.EQ.112) THEN
123         AMASS=1.275
124       ELSEIF(IDA.EQ.10441) THEN
125         AMASS=3.686
126       ELSEIF(IDA.EQ.20440) THEN
127         AMASS=3.4151
128       ELSEIF(IDA.EQ.20441) THEN
129         AMASS=3.51053
130       ELSEIF(IDA.EQ.20442) THEN
131         AMASS=3.56617
132       ELSE
133         AMASS=0
134       ENDIF
135       RETURN
136       END