EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
KFParticle_particleList.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file KFParticle_particleList.cc
1 /*
2  * This file is part of KFParticle package
3  * Copyright ( C ) 2007-2019 FIAS Frankfurt Institute for Advanced Studies
4  * 2007-2019 Goethe University of Frankfurt
5  * 2007-2019 Ivan Kisel <I.Kisel@compeng.uni-frankfurt.de>
6  * 2007-2019 Maksym Zyzak
7  *
8  * KFParticle is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * ( at your option ) any later version.
12  *
13  * KFParticle is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY ); without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program. If not, see <https://www.gnu.org/licenses/>.
20  */
21 
22 /*****************/
23 /* Cameron Dean */
24 /* LANL 2020 */
25 /* cdean@bnl.gov */
26 /*****************/
27 
52 //KFParticle stuff
54 
55 #include <KFParticleDatabase.h>
56 
57 
58 typedef std::pair<int, float> particle_pair;
59 
60 std::map<std::string, particle_pair> KFParticle_particleList::getParticleList()
61 {
62  //There is a scope issue here and kfpDatabase must be declared in function unlike in KFPTools
63  KFParticleDatabase kfpDatabase;
64  std::map<std::string, particle_pair> particleMasses;
65 
66  //Dummp particle for parser
67  particleMasses["X"] = std::make_pair(0, 0);
68  particleMasses["mother"] = std::make_pair(0, 0);
69  particleMasses["track"] = std::make_pair(0, 0);
70 
71  //Leptons
72  //particleMasses["electron"] = std::make_pair(11, kfpDatabase.GetMass(11));
73  particleMasses["electron"] = std::make_pair(11, 0.000511);
74  particleMasses["e+"] = std::make_pair(11, 0.000511);
75  particleMasses["e-"] = std::make_pair(11, 0.000511);
76  particleMasses["e"] = std::make_pair(11, 0.000511);
77  particleMasses["muon"] = std::make_pair(13, kfpDatabase.GetMass(13));
78  particleMasses["mu+"] = std::make_pair(13, kfpDatabase.GetMass(13));
79  particleMasses["mu-"] = std::make_pair(13, kfpDatabase.GetMass(13));
80  particleMasses["mu"] = std::make_pair(13, kfpDatabase.GetMass(13));
81  particleMasses["tau"] = std::make_pair(15, 1.77686);
82 
83  particleMasses["neutrino"] = std::make_pair(12, 0);
84  particleMasses["nu"] = std::make_pair(12, 0);
85  particleMasses["nu_e"] = std::make_pair(12, 0);
86  particleMasses["nu_mu"] = std::make_pair(14, 0);
87  particleMasses["nu_tau"] = std::make_pair(16, 0);
88 
89  //Gauge bosons and Higgs
90  particleMasses["W+"] = std::make_pair(24, 80.379);
91  particleMasses["W-"] = std::make_pair(24, 80.379);
92  particleMasses["Z"] = std::make_pair(23, 91.1876);
93  particleMasses["Higgs"] = std::make_pair(25, 125.10);
94 
95  //Light, unflavoured mesons
96  particleMasses["pion"] = std::make_pair(211, kfpDatabase.GetMass(211));
97  particleMasses["pi+"] = std::make_pair(211, kfpDatabase.GetMass(211));
98  particleMasses["pi-"] = std::make_pair(211, kfpDatabase.GetMass(211));
99  particleMasses["pi"] = std::make_pair(211, kfpDatabase.GetMass(211));
100  particleMasses["pi0"] = std::make_pair(111, kfpDatabase.GetPi0Mass());
101  particleMasses["eta"] = std::make_pair(221, 0.547862);
102  particleMasses["f0(500)"] = std::make_pair(9000221, 0.5);
103  particleMasses["rho"] = std::make_pair(113, 0.77526);
104  particleMasses["rho(770)"] = std::make_pair(113, 0.77526);
105  particleMasses["f0(980)"] = std::make_pair(9010221, 0.990);
106  particleMasses["phi"] = std::make_pair(333, 1.019461);
107  particleMasses["phi(1020)"] = std::make_pair(333, 1.019461);
108 
109  //Strange mesons
110  particleMasses["kaon"] = std::make_pair(321, kfpDatabase.GetMass(321));
111  particleMasses["Kaon"] = std::make_pair(321, kfpDatabase.GetMass(321));
112  particleMasses["K+"] = std::make_pair(321, kfpDatabase.GetMass(321));
113  particleMasses["K-"] = std::make_pair(321, kfpDatabase.GetMass(321));
114  particleMasses["K"] = std::make_pair(321, kfpDatabase.GetMass(321));
115  particleMasses["K0"] = std::make_pair(311, 0.497611);
116  particleMasses["KS0"] = std::make_pair(310, 0.497611);
117  particleMasses["KL0"] = std::make_pair(130, 0.497611); //130 is correct according to the PDG
118  particleMasses["K*(892)"] = std::make_pair(313, 0.89166);
119 
120  //Light baryons
121  particleMasses["proton"] = std::make_pair(2212, kfpDatabase.GetMass(2212));
122  particleMasses["neutron"] = std::make_pair(2112, 0.93957);
123  particleMasses["Lambda"] = std::make_pair(3122, 1.11568);
124  particleMasses["Sigma+"] = std::make_pair(3222, kfpDatabase.GetMass(3222));
125  particleMasses["Sigma0"] = std::make_pair(3212, 1.192642);
126  particleMasses["Sigma-"] = std::make_pair(3112, kfpDatabase.GetMass(3112));
127  particleMasses["Xi0"] = std::make_pair(3322, 1.31486);
128  particleMasses["Xi+"] = std::make_pair(3312, 1.32171);
129  particleMasses["Xi-"] = std::make_pair(3312, 1.32171);
130 
131  //Charm-hadrons
132  particleMasses["D0"] = std::make_pair(421, 1.86483);
133  particleMasses["D0bar"] = std::make_pair(421, 1.86483);
134  particleMasses["D+"] = std::make_pair(411, 1.86965);
135  particleMasses["D-"] = std::make_pair(411, 1.86965);
136  particleMasses["Ds+"] = std::make_pair(431, 1.96834);
137  particleMasses["Ds-"] = std::make_pair(431, 1.96834);
138  particleMasses["D*0"] = std::make_pair(423, 2.00685);
139  particleMasses["D*+"] = std::make_pair(413, 2.01026);
140  particleMasses["D*-"] = std::make_pair(413, 2.01026);
141  particleMasses["Ds*+"] = std::make_pair(433, 2.11220);
142  particleMasses["Ds*-"] = std::make_pair(433, 2.11220);
143  particleMasses["Lc+"] = std::make_pair(4122, 2.28646);
144  particleMasses["Lambdac"] = std::make_pair(4122, 2.28646);
145  particleMasses["Lambdac+"] = std::make_pair(4122, 2.28646);
146  particleMasses["Xic0"] = std::make_pair(4132, 2.47090);
147  particleMasses["Xic+"] = std::make_pair(4232, 2.46794);
148  particleMasses["Xic-"] = std::make_pair(4232, 2.46794);
149  particleMasses["Omegac"] = std::make_pair(4332, 2.6952);
150  particleMasses["Xicc++"] = std::make_pair(4422, 3.6212);
151 
152  //B-hadrons
153  particleMasses["B+"] = std::make_pair(521, 5.279);
154  particleMasses["Bp"] = std::make_pair(521, 5.279);
155  particleMasses["Bplus"] = std::make_pair(521, 5.279);
156  particleMasses["B-"] = std::make_pair(521, 5.279);
157  particleMasses["Bm"] = std::make_pair(521, 5.279);
158  particleMasses["Bminus"] = std::make_pair(521, 5.279);
159  particleMasses["B0"] = std::make_pair(511, 5.279);
160  particleMasses["Bs0"] = std::make_pair(531, 5.366);
161  particleMasses["B_s0"] = std::make_pair(531, 5.366);
162  particleMasses["Bc+"] = std::make_pair(541, 6.2749);
163  particleMasses["Bc-"] = std::make_pair(541, 6.2749);
164  particleMasses["Bc"] = std::make_pair(541, 6.2749);
165  particleMasses["Bc(2S)"] = std::make_pair(545, 6.8716);
166  particleMasses["Lambdab0"] = std::make_pair(5122, 5.61960);
167  particleMasses["Sigmab+"] = std::make_pair(5222, 5.81056);
168  particleMasses["Sigmab-"] = std::make_pair(5112, 5.81056);
169  particleMasses["Xib0"] = std::make_pair(5232, 5.7919);
170  particleMasses["Xib+"] = std::make_pair(5132, 5.7970);
171  particleMasses["Xib-"] = std::make_pair(5132, 5.7970);
172  particleMasses["Omegab+"] = std::make_pair(5332, 6.0461);
173  particleMasses["Omegab-"] = std::make_pair(5332, 6.0461);
174 
175  //Quarkonia
176  //c-cbar
177  particleMasses["J/psi"] = std::make_pair(443, 3.09690);
178  particleMasses["psi(2S)"] = std::make_pair(100443, 3.68610);
179  particleMasses["X(3872)"] = std::make_pair(0, 3.87169);
180  particleMasses["chic1(3872)"] = std::make_pair(0, 3.87169);
181  //b-bbar
182  particleMasses["Upsilon"] = std::make_pair(553, 9.46030);
183  particleMasses["Upsilon(1S)"] = std::make_pair(553, 9.46030);
184  particleMasses["Upsilon(2S)"] = std::make_pair(100553, 10.02326);
185  particleMasses["Upsilon(3S)"] = std::make_pair(200553, 10.3552);
186  particleMasses["Upsilon(4S)"] = std::make_pair(300553, 10.5794);
187  particleMasses["Upsilon(5S)"] = std::make_pair(9000553, 10.8852);
188 
189  return particleMasses;
190 }
191 
192 float KFParticle_particleList::returnPDGMass(const int pdgIndex)
193 {
194  KFParticleDatabase kfpDatabase;
195 
196  float mass, width;
197  kfpDatabase.GetMotherMass(pdgIndex, mass, width);
198  return mass;
199 }