CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
pdgEntryReplace.cc
Go to the documentation of this file.
3 #include <sstream>
4 using namespace std;
5 
6 string pdgEntryReplace(const string& in, HepPDT::ParticleDataTable const& pdt) {
7  string out = in;
8  for (;;) {
9  size_t p1 = out.find_first_of('{');
10  if (p1 == string::npos)
11  break;
12  size_t p2 = out.find_first_of('}', p1 + 1);
13  if (p2 == string::npos)
14  break;
15  size_t n = p2 - p1 - 1;
16  string name(out, p1 + 1, n);
17  PdtEntry particle(name);
18  particle.setup(pdt);
19  ostringstream o;
20  o << particle.pdgId();
21  string s = o.str();
22  out.replace(p1, n + 2, s);
23  }
24  return out;
25 }
void setup(const HepPDT::ParticleDataTable &)
fill data from Event Setup
Definition: PdtEntry.cc:26
const TString p2
Definition: fwPaths.cc:13
HepPDT::ParticleDataTable ParticleDataTable
std::string pdgEntryReplace(const std::string &, HepPDT::ParticleDataTable const &)
const TString p1
Definition: fwPaths.cc:12
int pdgId() const
PDG id.
Definition: PdtEntry.cc:5