Page MenuHomeHEPForge

PDG_codes.cc
No OneTemporary

Size
4 KB
Referenced Files
None
Subscribers
None

PDG_codes.cc

/**
* \authors The HEJ collaboration (see AUTHORS for details)
* \date 2019
* \copyright GPLv2 or later
*/
#include "HEJ/PDG_codes.hh"
#include <map>
#include "HEJ/exceptions.hh"
namespace HEJ{
ParticleID to_ParticleID(std::string const & name){
using namespace HEJ::pid;
static const std::map<std::string, ParticleID> known = {
{"d", d}, {"down", down}, {"1",static_cast<ParticleID>(1)},
{"u", u}, {"up", up}, {"2",static_cast<ParticleID>(2)},
{"s", s}, {"strange", strange}, {"3",static_cast<ParticleID>(3)},
{"c", c}, {"charm", charm}, {"4",static_cast<ParticleID>(4)},
{"b", b}, {"bottom", bottom}, {"5",static_cast<ParticleID>(5)},
{"t", t}, {"top", top}, {"6",static_cast<ParticleID>(6)},
{"e", e}, {"electron", electron}, {"e-", e}, {"11",static_cast<ParticleID>(11)},
{"nu_e", nu_e}, {"electron_neutrino", electron_neutrino},
{"12",static_cast<ParticleID>(12)},
{"mu", mu}, {"muon", muon}, {"mu-", mu}, {"13",static_cast<ParticleID>(13)},
{"nu_mu", nu_mu}, {"muon_neutrino", muon_neutrino}, {"14",static_cast<ParticleID>(14)},
{"tau", tau}, {"tau-", tau}, {"15",static_cast<ParticleID>(15)},
{"nu_tau", nu_tau}, {"tau_neutrino", tau_neutrino}, {"16",static_cast<ParticleID>(16)},
{"d_bar", d_bar}, {"antidown", antidown}, {"-1",static_cast<ParticleID>(-1)},
{"u_bar", u_bar}, {"antiup", antiup}, {"-2",static_cast<ParticleID>(-2)},
{"s_bar", s_bar}, {"antistrange", antistrange}, {"-3",static_cast<ParticleID>(-3)},
{"c_bar", c_bar}, {"anticharm", anticharm}, {"-4",static_cast<ParticleID>(-4)},
{"b_bar", b_bar}, {"antibottom", antibottom}, {"-5",static_cast<ParticleID>(-5)},
{"t_bar", t_bar}, {"antitop", antitop}, {"-6",static_cast<ParticleID>(-6)},
{"e_bar", e_bar}, {"antielectron", antielectron}, {"positron", positron},
{"e+", e_bar}, {"-11",static_cast<ParticleID>(-11)},
{"nu_e_bar", nu_e_bar}, {"electron-antineutrino", electron_antineutrino},
{"-12",static_cast<ParticleID>(-12)},
{"mu_bar", mu_bar}, {"mu+", mu_bar}, {"antimuon", antimuon},
{"-13",static_cast<ParticleID>(-13)},
{"nu_mu_bar", nu_mu_bar}, {"muon-antineutrino", muon_antineutrino},
{"-14",static_cast<ParticleID>(-14)},
{"tau_bar", tau_bar}, {"tau+", tau_bar}, {"antitau", antitau},
{"-15",static_cast<ParticleID>(-15)},
{"nu_tau_bar", nu_tau_bar}, {"tau-antineutrino", tau_antineutrino},
{"-16",static_cast<ParticleID>(-16)},
{"gluon", gluon}, {"g", g}, {"21",static_cast<ParticleID>(21)},
{"photon", photon}, {"gamma", gamma}, {"22",static_cast<ParticleID>(22)},
{"Z", Z}, {"23",static_cast<ParticleID>(23)},
{"Wp", Wp}, {"W+", Wp}, {"24",static_cast<ParticleID>(24)},
{"Wm", Wm}, {"W-", Wm}, {"-24",static_cast<ParticleID>(-24)},
{"h", h}, {"H", h}, {"Higgs", Higgs}, {"higgs", higgs},
{"25",static_cast<ParticleID>(25)},
{"p", p}, {"proton", proton}, {"2212",static_cast<ParticleID>(2212)},
{"p_bar", p_bar}, {"antiproton", antiproton}, {"-2212",static_cast<ParticleID>(-2212)}
};
const auto res = known.find(name);
if(res == known.end()){
throw std::invalid_argument("Unknown particle " + name);
}
return res->second;
}
std::string name(ParticleID id) {
using namespace HEJ::pid;
switch (id) {
case down: return "down";
case up: return "up";
case strange: return "strange";
case charm: return "charm";
case bottom: return "bottom";
case top: return "top";
case electron: return "electron";
case muon: return "muon";
case tau: return "tau";
case electron_neutrino: return "electron-neutrino";
case muon_neutrino: return "muon-neutrino";
case tau_neutrino: return "tau-neutrino";
case antidown: return "antidown";
case antiup: return "antiup";
case antistrange: return "antistrange";
case anticharm: return "anticharm";
case antibottom: return "antibottom";
case antitop: return "antitop";
case positron: return "positron";
case antimuon: return "antimuon";
case antitau: return "antitau";
case electron_antineutrino: return "electron-antineutrino";
case muon_antineutrino: return "muon-antineutrino";
case tau_antineutrino: return "tau-antineutrino";
case gluon: return "gluon";
case photon: return "photon";
case Z: return "Z";
case Wp: return "W+";
case Wm: return "W-";
case Higgs: return "Higgs";
case proton: return "proton";
case antiproton: return "antiproton";
}
throw std::logic_error{"unreachable"};
}
}

File Metadata

Mime Type
text/x-c
Expires
Tue, Sep 30, 6:11 AM (11 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6489384
Default Alt Text
PDG_codes.cc (4 KB)

Event Timeline