603def _fill_dicts():
604 pdgid_names.clear()
605 root_names.clear()
606 global _pdgtable
607 for line in _pdgtable.split ('\n'):
608 line = line.strip()
609 if len(line) == 0 or line[0] == '#':
610 continue
611 ll = line.split('=', 1)
612 if len(ll) < 2:
613 print ('bad line', line)
614 continue
615 mname = ll[0].
strip()
617 if len(ll) < 1:
618 print ('bad line', line)
619 continue
620 id = ll[0]
621 pname = None
622 if len(ll) >= 2 and ll[1] != '!':
623 pname = ll[1]
624 rname = None
625 if len(ll) >= 3 and ll[2] != '!':
626 rname = ll[2]
627 try:
628 id = int(id)
629 except ValueError:
630 id = globals().
get(id)
631 if id is None:
632 print ('bad line', line)
633 continue
634
635 if pname is None:
636 pname = mname
637 if rname is None:
638 rname = pname
639
640 globals()[mname] = id
641 if id not in pdgid_names:
642 pdgid_names[id] = pname
643 if id not in root_names:
644 root_names[id] = rname
645 return
646
647
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
std::vector< std::string > split(const std::string &s, const std::string &t=":")